9router 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +5 -5
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -35
- package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +4 -4
- package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +4 -4
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +4 -4
- package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +5 -5
- package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +5 -5
- package/app/.next/server/chunks/126.js +1 -1
- package/app/.next/server/chunks/253.js +1 -1
- package/app/.next/server/chunks/2947.js +1 -1
- package/app/.next/server/chunks/3159.js +1 -1
- package/app/.next/server/chunks/450.js +1 -1
- package/app/.next/server/chunks/4627.js +1 -1
- package/app/.next/server/chunks/5290.js +1 -1
- package/app/.next/server/chunks/6379.js +1 -1
- package/app/.next/server/chunks/7770.js +1 -1
- package/app/.next/server/chunks/8202.js +2 -2
- package/app/.next/server/chunks/9981.js +1 -0
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/static/chunks/{4156-7e832a27a1200556.js → 4156-ac69d9fed0825642.js} +2 -2
- package/app/.next/static/chunks/505-3ffce20748d2fc09.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-394a2f89caf8c08f.js +1 -0
- package/app/.next/static/css/7ba68f4fd52a1ae0.css +1 -0
- package/app/package.json +1 -1
- package/app/src/lib/updater/updater.js +187 -0
- package/cli.js +10 -75
- package/package.json +1 -1
- package/app/.next/static/chunks/505-d28bf4f5bee3eb89.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-2485ee7c89798a7b.js +0 -1
- package/app/.next/static/css/522efebf318b326f.css +0 -1
- /package/app/.next/static/{DFz-I614MEHkP46c-vopk → Ihds3DOj3yt0tC1dSf2Hc}/_buildManifest.js +0 -0
- /package/app/.next/static/{DFz-I614MEHkP46c-vopk → Ihds3DOj3yt0tC1dSf2Hc}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=7770,exports.ids=[7770],exports.modules={37770:(a,b,c)=>{c.d(b,{CG:()=>ac,Dj:()=>_,Iq:()=>ae,K1:()=>an,KJ:()=>aq,L:()=>$,L9:()=>Y,Lh:()=>af,Mc:()=>M,OM:()=>R,Pc:()=>F,Q_:()=>J,Qu:()=>C,S8:()=>V,Uv:()=>Z,VT:()=>as,XW:()=>ah,Xx:()=>al,Yd:()=>K,ZO:()=>I,bI:()=>aj,c:()=>X,ek:()=>ai,fK:()=>P,fv:()=>T,getApiKeys:()=>ad,getPricingForModel:()=>ap,getProviderConnections:()=>A,getProviderNodes:()=>B,getSettings:()=>ak,ho:()=>E,hr:()=>H,i0:()=>D,iE:()=>N,jd:()=>aa,o5:()=>S,oG:()=>ab,op:()=>L,r4:()=>ao,rj:()=>O,uL:()=>W,ui:()=>G,uv:()=>U,yF:()=>ar,yg:()=>ag,zP:()=>am});var d=c(34278),e=c(73865),f=c(37873),g=c(76760),h=c.n(g),i=c(73024),j=c.n(i),k=c(48128),l=c.n(k),m=c(81372);let n="u">typeof caches||"object"==typeof caches,o=n?null:h().join(m.n,"db.json");n||j().existsSync(m.n)||j().mkdirSync(m.n,{recursive:!0});let p={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,observabilityEnabled:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:1024,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",rtkEnabled:!1};function q(){return{providerConnections:[],providerNodes:[],proxyPools:[],modelAliases:{},customModels:[],mitmAlias:{},combos:[],apiKeys:[],settings:{...p},pricing:{}}}function r(a){let b=q(),c=a&&"object"==typeof a?a:{},d=!1;for(let[a,e]of Object.entries(b)){if(void 0===c[a]||null===c[a]){c[a]=e,d=!0;continue}if("settings"===a&&("object"!=typeof c.settings||Array.isArray(c.settings))){c.settings={...e},d=!0;continue}if("settings"===a&&"object"==typeof c.settings&&!Array.isArray(c.settings))for(let[a,b]of Object.entries(e))void 0===c.settings[a]&&("outboundProxyEnabled"===a&&"string"==typeof c.settings.outboundProxyUrl&&c.settings.outboundProxyUrl.trim()?c.settings.outboundProxyEnabled=!0:c.settings[a]=b,d=!0);if("apiKeys"===a&&Array.isArray(c.apiKeys))for(let a of c.apiKeys)(void 0===a.isActive||null===a.isActive)&&(a.isActive=!0,d=!0)}return{data:c,changed:d}}n||!o||j().existsSync(o)||j().writeFileSync(o,JSON.stringify(q(),null,2));let s=null,t={retries:{retries:15,minTimeout:50,maxTimeout:3e3},stale:1e4};class u{constructor(){this._queue=[],this._locked=!1}async acquire(){return this._locked?new Promise(a=>{this._queue.push(()=>a(()=>this._release()))}):(this._locked=!0,()=>this._release())}_release(){let a=this._queue.shift();a?a():this._locked=!1}}let v=new u;async function w(a,b){if(n)return void await b();let c=await v.acquire(),d=null;try{d=await l().lock(o,t),await b()}catch(a){throw"ELOCKED"===a.code&&console.warn("[DB] File is locked, retrying..."),a}finally{if(d)try{await d()}catch(a){}c()}}async function x(a){await w(a,()=>a.read())}async function y(a){await w(a,()=>a.write())}async function z(){if(n){if(!s){let a=q();(s=new d.t({read:async()=>{},write:async()=>{}},a)).data=a}return s}s||(s=new d.t(new e.Pv(o),q()));try{await x(s)}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),s.data=q(),await y(s);else throw a}if(s.data){let{data:a,changed:b}=r(s.data);s.data=a,b&&await y(s)}else s.data=q(),await y(s);return s}async function A(a={}){let b=(await z()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function B(a={}){let b=(await z()).data.providerNodes||[];return a.type&&(b=b.filter(b=>b.type===a.type)),b}async function C(a){return(await z()).data.providerNodes.find(b=>b.id===a)||null}async function D(a){let b=await z();b.data.providerNodes||(b.data.providerNodes=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return b.data.providerNodes.push(d),await y(b),d}async function E(a,b){let c=await z();c.data.providerNodes||(c.data.providerNodes=[]);let d=c.data.providerNodes.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerNodes[d]={...c.data.providerNodes[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.providerNodes[d])}async function F(a){let b=await z();b.data.providerNodes||(b.data.providerNodes=[]);let c=b.data.providerNodes.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.providerNodes.splice(c,1);return await y(b),d}async function G(a={}){let b=(await z()).data.proxyPools||[];return void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),a.testStatus&&(b=b.filter(b=>b.testStatus===a.testStatus)),b.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0))}async function H(a){return((await z()).data.proxyPools||[]).find(b=>b.id===a)||null}async function I(a){let b=await z();b.data.proxyPools||(b.data.proxyPools=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return b.data.proxyPools.push(d),await y(b),d}async function J(a,b){let c=await z();c.data.proxyPools||(c.data.proxyPools=[]);let d=c.data.proxyPools.findIndex(b=>b.id===a);return -1===d?null:(c.data.proxyPools[d]={...c.data.proxyPools[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.proxyPools[d])}async function K(a){let b=await z();b.data.proxyPools||(b.data.proxyPools=[]);let c=b.data.proxyPools.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.proxyPools.splice(c,1);return await y(b),d}async function L(a){let b=await z(),c=b.data.providerConnections.length;b.data.providerConnections=b.data.providerConnections.filter(b=>b.provider!==a);let d=c-b.data.providerConnections.length;return await y(b),d}async function M(a){return(await z()).data.providerConnections.find(b=>b.id===a)||null}async function N(a){let b=await z(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await y(b),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await y(b),await Q(a.provider),h}async function O(a,b){let c=await z(),d=c.data.providerConnections.findIndex(b=>b.id===a);if(-1===d)return null;let e=c.data.providerConnections[d].provider;return c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await y(c),void 0!==b.priority&&await Q(e),c.data.providerConnections[d]}async function P(a){let b=await z(),c=b.data.providerConnections.findIndex(b=>b.id===a);if(-1===c)return!1;let d=b.data.providerConnections[c].provider;return b.data.providerConnections.splice(c,1),await y(b),await Q(d),!0}async function Q(a){let b=await z();b.data.providerConnections&&(b.data.providerConnections.filter(b=>b.provider===a).sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}).forEach((a,b)=>{a.priority=b+1}),await y(b))}async function R(){return(await z()).data.modelAliases||{}}async function S(a,b){let c=await z();c.data.modelAliases[a]=b,await y(c)}async function T(a){let b=await z();delete b.data.modelAliases[a],await y(b)}async function U(){return(await z()).data.customModels||[]}async function V({providerAlias:a,id:b,type:c="llm",name:d}){let e=await z();return e.data.customModels||(e.data.customModels=[]),!e.data.customModels.some(d=>d.providerAlias===a&&d.id===b&&(d.type||"llm")===c)&&(e.data.customModels.push({providerAlias:a,id:b,type:c,name:d||b}),await y(e),!0)}async function W({providerAlias:a,id:b,type:c="llm"}){let d=await z();d.data.customModels&&(d.data.customModels=d.data.customModels.filter(d=>d.providerAlias!==a||d.id!==b||(d.type||"llm")!==c),await y(d))}async function X(a){let b=(await z()).data.mitmAlias||{};return a?b[a]||{}:b}async function Y(a,b){let c=await z();c.data.mitmAlias||(c.data.mitmAlias={}),c.data.mitmAlias[a]=b||{},await y(c)}async function Z(){return(await z()).data.combos||[]}async function $(a){return((await z()).data.combos||[]).find(b=>b.id===a)||null}async function _(a){return((await z()).data.combos||[]).find(b=>b.name===a)||null}async function aa(a){let b=await z();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],createdAt:c,updatedAt:c};return b.data.combos.push(d),await y(b),d}async function ab(a,b){let c=await z();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.combos[d])}async function ac(a){let b=await z();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await y(b),!0)}async function ad(){return(await z()).data.apiKeys||[]}async function ae(a,b){if(!b)throw Error("machineId is required");let d=await z(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(64).then(c.bind(c,50064)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:e};return d.data.apiKeys.push(i),await y(d),i}async function af(a){let b=await z(),c=b.data.apiKeys.findIndex(b=>b.id===a);return -1!==c&&(b.data.apiKeys.splice(c,1),await y(b),!0)}async function ag(a){return(await z()).data.apiKeys.find(b=>b.id===a)||null}async function ah(a,b){let c=await z(),d=c.data.apiKeys.findIndex(b=>b.id===a);return -1===d?null:(c.data.apiKeys[d]={...c.data.apiKeys[d],...b},await y(c),c.data.apiKeys[d])}async function ai(a){let b=(await z()).data.apiKeys.find(b=>b.key===a);return b&&!1!==b.isActive}async function aj(){let a=await z(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await y(a),c}async function ak(){return(await z()).data.settings||{cloudEnabled:!1}}async function al(a){let b=await z();return b.data.settings={...b.data.settings,...a},await y(b),b.data.settings}async function am(){return(await z()).data||q()}async function an(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let{data:b}=r({...q(),...a,settings:{...q().settings,...a.settings&&"object"==typeof a.settings&&!Array.isArray(a.settings)?a.settings:{}}}),c=await z();return c.data=b,await y(c),c.data}async function ao(){let a=(await z()).data.pricing||{},{PROVIDER_PRICING:b}=await c.e(1249).then(c.bind(c,61249)),d={};for(let[c,e]of Object.entries(b))if(d[c]={...e},a[c])for(let[b,e]of Object.entries(a[c]))d[c][b]=d[c][b]?{...d[c][b],...e}:e;for(let[b,c]of Object.entries(a))if(d[b])for(let[a,e]of Object.entries(c))d[b][a]||(d[b][a]=e);else d[b]={...c};return d}async function ap(a,b){if(!b)return null;let d=(await z()).data.pricing||{};if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await c.e(1249).then(c.bind(c,61249));return e(a,b)}async function aq(a){let b=await z();for(let[c,d]of(b.data.pricing||(b.data.pricing={}),Object.entries(a)))for(let[a,e]of(b.data.pricing[c]||(b.data.pricing[c]={}),Object.entries(d)))b.data.pricing[c][a]=e;return await y(b),b.data.pricing}async function ar(a,b){let c=await z();return c.data.pricing||(c.data.pricing={}),b?c.data.pricing[a]&&(delete c.data.pricing[a][b],0===Object.keys(c.data.pricing[a]).length&&delete c.data.pricing[a]):delete c.data.pricing[a],await y(c),c.data.pricing}async function as(){let a=await z();return a.data.pricing={},await y(a),a.data.pricing}}};
|
|
1
|
+
"use strict";exports.id=7770,exports.ids=[7770],exports.modules={37770:(a,b,c)=>{c.d(b,{CG:()=>ac,Dj:()=>_,Iq:()=>ae,K1:()=>an,KJ:()=>aq,L:()=>$,L9:()=>Y,Lh:()=>af,Mc:()=>M,OM:()=>R,Pc:()=>F,Q_:()=>J,Qu:()=>C,S8:()=>V,Uv:()=>Z,VT:()=>as,XW:()=>ah,Xx:()=>al,Yd:()=>K,ZO:()=>I,bI:()=>aj,c:()=>X,ek:()=>ai,fK:()=>P,fv:()=>T,getApiKeys:()=>ad,getPricingForModel:()=>ap,getProviderConnections:()=>A,getProviderNodes:()=>B,getSettings:()=>ak,ho:()=>E,hr:()=>H,i0:()=>D,iE:()=>N,jd:()=>aa,o5:()=>S,oG:()=>ab,op:()=>L,r4:()=>ao,uL:()=>W,ui:()=>G,updateProviderConnection:()=>O,uv:()=>U,yF:()=>ar,yg:()=>ag,zP:()=>am});var d=c(34278),e=c(73865),f=c(37873),g=c(76760),h=c.n(g),i=c(73024),j=c.n(i),k=c(48128),l=c.n(k),m=c(81372);let n="u">typeof caches||"object"==typeof caches,o=n?null:h().join(m.n,"db.json");n||j().existsSync(m.n)||j().mkdirSync(m.n,{recursive:!0});let p={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,observabilityEnabled:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:1024,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",rtkEnabled:!1};function q(){return{providerConnections:[],providerNodes:[],proxyPools:[],modelAliases:{},customModels:[],mitmAlias:{},combos:[],apiKeys:[],settings:{...p},pricing:{}}}function r(a){let b=q(),c=a&&"object"==typeof a?a:{},d=!1;for(let[a,e]of Object.entries(b)){if(void 0===c[a]||null===c[a]){c[a]=e,d=!0;continue}if("settings"===a&&("object"!=typeof c.settings||Array.isArray(c.settings))){c.settings={...e},d=!0;continue}if("settings"===a&&"object"==typeof c.settings&&!Array.isArray(c.settings))for(let[a,b]of Object.entries(e))void 0===c.settings[a]&&("outboundProxyEnabled"===a&&"string"==typeof c.settings.outboundProxyUrl&&c.settings.outboundProxyUrl.trim()?c.settings.outboundProxyEnabled=!0:c.settings[a]=b,d=!0);if("apiKeys"===a&&Array.isArray(c.apiKeys))for(let a of c.apiKeys)(void 0===a.isActive||null===a.isActive)&&(a.isActive=!0,d=!0)}return{data:c,changed:d}}n||!o||j().existsSync(o)||j().writeFileSync(o,JSON.stringify(q(),null,2));let s=null,t={retries:{retries:15,minTimeout:50,maxTimeout:3e3},stale:1e4};class u{constructor(){this._queue=[],this._locked=!1}async acquire(){return this._locked?new Promise(a=>{this._queue.push(()=>a(()=>this._release()))}):(this._locked=!0,()=>this._release())}_release(){let a=this._queue.shift();a?a():this._locked=!1}}let v=new u;async function w(a,b){if(n)return void await b();let c=await v.acquire(),d=null;try{d=await l().lock(o,t),await b()}catch(a){throw"ELOCKED"===a.code&&console.warn("[DB] File is locked, retrying..."),a}finally{if(d)try{await d()}catch(a){}c()}}async function x(a){await w(a,()=>a.read())}async function y(a){await w(a,()=>a.write())}async function z(){if(n){if(!s){let a=q();(s=new d.t({read:async()=>{},write:async()=>{}},a)).data=a}return s}s||(s=new d.t(new e.Pv(o),q()));try{await x(s)}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),s.data=q(),await y(s);else throw a}if(s.data){let{data:a,changed:b}=r(s.data);s.data=a,b&&await y(s)}else s.data=q(),await y(s);return s}async function A(a={}){let b=(await z()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function B(a={}){let b=(await z()).data.providerNodes||[];return a.type&&(b=b.filter(b=>b.type===a.type)),b}async function C(a){return(await z()).data.providerNodes.find(b=>b.id===a)||null}async function D(a){let b=await z();b.data.providerNodes||(b.data.providerNodes=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return b.data.providerNodes.push(d),await y(b),d}async function E(a,b){let c=await z();c.data.providerNodes||(c.data.providerNodes=[]);let d=c.data.providerNodes.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerNodes[d]={...c.data.providerNodes[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.providerNodes[d])}async function F(a){let b=await z();b.data.providerNodes||(b.data.providerNodes=[]);let c=b.data.providerNodes.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.providerNodes.splice(c,1);return await y(b),d}async function G(a={}){let b=(await z()).data.proxyPools||[];return void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),a.testStatus&&(b=b.filter(b=>b.testStatus===a.testStatus)),b.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0))}async function H(a){return((await z()).data.proxyPools||[]).find(b=>b.id===a)||null}async function I(a){let b=await z();b.data.proxyPools||(b.data.proxyPools=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return b.data.proxyPools.push(d),await y(b),d}async function J(a,b){let c=await z();c.data.proxyPools||(c.data.proxyPools=[]);let d=c.data.proxyPools.findIndex(b=>b.id===a);return -1===d?null:(c.data.proxyPools[d]={...c.data.proxyPools[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.proxyPools[d])}async function K(a){let b=await z();b.data.proxyPools||(b.data.proxyPools=[]);let c=b.data.proxyPools.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.proxyPools.splice(c,1);return await y(b),d}async function L(a){let b=await z(),c=b.data.providerConnections.length;b.data.providerConnections=b.data.providerConnections.filter(b=>b.provider!==a);let d=c-b.data.providerConnections.length;return await y(b),d}async function M(a){return(await z()).data.providerConnections.find(b=>b.id===a)||null}async function N(a){let b=await z(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await y(b),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await y(b),await Q(a.provider),h}async function O(a,b){let c=await z(),d=c.data.providerConnections.findIndex(b=>b.id===a);if(-1===d)return null;let e=c.data.providerConnections[d].provider;return c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await y(c),void 0!==b.priority&&await Q(e),c.data.providerConnections[d]}async function P(a){let b=await z(),c=b.data.providerConnections.findIndex(b=>b.id===a);if(-1===c)return!1;let d=b.data.providerConnections[c].provider;return b.data.providerConnections.splice(c,1),await y(b),await Q(d),!0}async function Q(a){let b=await z();b.data.providerConnections&&(b.data.providerConnections.filter(b=>b.provider===a).sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}).forEach((a,b)=>{a.priority=b+1}),await y(b))}async function R(){return(await z()).data.modelAliases||{}}async function S(a,b){let c=await z();c.data.modelAliases[a]=b,await y(c)}async function T(a){let b=await z();delete b.data.modelAliases[a],await y(b)}async function U(){return(await z()).data.customModels||[]}async function V({providerAlias:a,id:b,type:c="llm",name:d}){let e=await z();return e.data.customModels||(e.data.customModels=[]),!e.data.customModels.some(d=>d.providerAlias===a&&d.id===b&&(d.type||"llm")===c)&&(e.data.customModels.push({providerAlias:a,id:b,type:c,name:d||b}),await y(e),!0)}async function W({providerAlias:a,id:b,type:c="llm"}){let d=await z();d.data.customModels&&(d.data.customModels=d.data.customModels.filter(d=>d.providerAlias!==a||d.id!==b||(d.type||"llm")!==c),await y(d))}async function X(a){let b=(await z()).data.mitmAlias||{};return a?b[a]||{}:b}async function Y(a,b){let c=await z();c.data.mitmAlias||(c.data.mitmAlias={}),c.data.mitmAlias[a]=b||{},await y(c)}async function Z(){return(await z()).data.combos||[]}async function $(a){return((await z()).data.combos||[]).find(b=>b.id===a)||null}async function _(a){return((await z()).data.combos||[]).find(b=>b.name===a)||null}async function aa(a){let b=await z();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],createdAt:c,updatedAt:c};return b.data.combos.push(d),await y(b),d}async function ab(a,b){let c=await z();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.combos[d])}async function ac(a){let b=await z();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await y(b),!0)}async function ad(){return(await z()).data.apiKeys||[]}async function ae(a,b){if(!b)throw Error("machineId is required");let d=await z(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(64).then(c.bind(c,50064)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:e};return d.data.apiKeys.push(i),await y(d),i}async function af(a){let b=await z(),c=b.data.apiKeys.findIndex(b=>b.id===a);return -1!==c&&(b.data.apiKeys.splice(c,1),await y(b),!0)}async function ag(a){return(await z()).data.apiKeys.find(b=>b.id===a)||null}async function ah(a,b){let c=await z(),d=c.data.apiKeys.findIndex(b=>b.id===a);return -1===d?null:(c.data.apiKeys[d]={...c.data.apiKeys[d],...b},await y(c),c.data.apiKeys[d])}async function ai(a){let b=(await z()).data.apiKeys.find(b=>b.key===a);return b&&!1!==b.isActive}async function aj(){let a=await z(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await y(a),c}async function ak(){return(await z()).data.settings||{cloudEnabled:!1}}async function al(a){let b=await z();return b.data.settings={...b.data.settings,...a},await y(b),b.data.settings}async function am(){return(await z()).data||q()}async function an(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let{data:b}=r({...q(),...a,settings:{...q().settings,...a.settings&&"object"==typeof a.settings&&!Array.isArray(a.settings)?a.settings:{}}}),c=await z();return c.data=b,await y(c),c.data}async function ao(){let a=(await z()).data.pricing||{},{PROVIDER_PRICING:b}=await c.e(1249).then(c.bind(c,61249)),d={};for(let[c,e]of Object.entries(b))if(d[c]={...e},a[c])for(let[b,e]of Object.entries(a[c]))d[c][b]=d[c][b]?{...d[c][b],...e}:e;for(let[b,c]of Object.entries(a))if(d[b])for(let[a,e]of Object.entries(c))d[b][a]||(d[b][a]=e);else d[b]={...c};return d}async function ap(a,b){if(!b)return null;let d=(await z()).data.pricing||{};if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await c.e(1249).then(c.bind(c,61249));return e(a,b)}async function aq(a){let b=await z();for(let[c,d]of(b.data.pricing||(b.data.pricing={}),Object.entries(a)))for(let[a,e]of(b.data.pricing[c]||(b.data.pricing[c]={}),Object.entries(d)))b.data.pricing[c][a]=e;return await y(b),b.data.pricing}async function ar(a,b){let c=await z();return c.data.pricing||(c.data.pricing={}),b?c.data.pricing[a]&&(delete c.data.pricing[a][b],0===Object.keys(c.data.pricing[a]).length&&delete c.data.pricing[a]):delete c.data.pricing[a],await y(c),c.data.pricing}async function as(){let a=await z();return a.data.pricing={},await y(a),a.data.pricing}}};
|
|
@@ -63,7 +63,7 @@ ${e.length} files in ${g.length} dirs:
|
|
|
63
63
|
<tool_call_id>${g(b||"")}</tool_call_id>
|
|
64
64
|
<result>${g(d)}</result>
|
|
65
65
|
</tool_result>`}function i(a){return"string"==typeof a?a.split("\n")[0]:""}function j(a,b,c,d){let e=function(a){let b=[],c=new Map,d=(a,b)=>{if(!a)return;let d=b||"tool";c.set(a,{name:d});let e=i(a);e&&e!==a&&c.set(e,{name:d})};for(let b of a){if("assistant"===b.role&&b.tool_calls)for(let a of b.tool_calls)d(a.id||"",a.function?.name||"tool");if("assistant"===b.role&&Array.isArray(b.content))for(let a of b.content)a?.type==="tool_use"&&d(a.id||"",a.name||"tool")}for(let d=0;d<a.length;d++){let e=a[d];if("system"===e.role){b.push({role:"user",content:`[System Instructions]
|
|
66
|
-
${f(e.content)}`});continue}if("tool"===e.role){let a=f(e.content),d=e.tool_call_id||"",g=c.get(d)||{},i=e.name||g.name||"tool";b.push({role:"user",content:h(i,d,a)});continue}if("user"===e.role||"assistant"===e.role){if("user"===e.role&&Array.isArray(e.content)){let a=[];for(let b of e.content)if(b&&"object"==typeof b){if("text"===b.type){"string"==typeof b.text&&a.push(b.text||"");continue}if("tool_result"===b.type){let d=b.tool_use_id||"",e=c.get(d)||c.get(i(d)),g=e?.name||"tool",j=f(b.content);a.push(h(g,d,j))}}let d=a.filter(Boolean).join("\n");d&&b.push({role:"user",content:d});continue}let a=f(e.content);if("assistant"===e.role&&e.tool_calls&&e.tool_calls.length>0){let c={role:"assistant",content:a||""};c.tool_calls=e.tool_calls.map(a=>{let{index:b,...c}=a||{};return c}),b.push(c)}else if("assistant"===e.role&&Array.isArray(e.content)){let c=e.content.filter(a=>a?.type==="tool_use").map(a=>({id:a.id||"",type:"function",function:{name:a.name||"tool",arguments:JSON.stringify(a.input||{})}})).filter(a=>a.id);c.length>0?b.push({role:"assistant",content:a||"",tool_calls:c}):a&&b.push({role:"assistant",content:a})}else a&&b.push({role:e.role,content:a})}}return b}(b.messages||[]),{user:g,metadata:j,tool_choice:k,stream_options:l,system:m,...n}=b;return{...n,messages:e,max_tokens:32e3}}(0,d.kz)(e.h.OPENAI,e.h.CURSOR,j,null)},39006:a=>{a.exports={rE:"0.4.
|
|
66
|
+
${f(e.content)}`});continue}if("tool"===e.role){let a=f(e.content),d=e.tool_call_id||"",g=c.get(d)||{},i=e.name||g.name||"tool";b.push({role:"user",content:h(i,d,a)});continue}if("user"===e.role||"assistant"===e.role){if("user"===e.role&&Array.isArray(e.content)){let a=[];for(let b of e.content)if(b&&"object"==typeof b){if("text"===b.type){"string"==typeof b.text&&a.push(b.text||"");continue}if("tool_result"===b.type){let d=b.tool_use_id||"",e=c.get(d)||c.get(i(d)),g=e?.name||"tool",j=f(b.content);a.push(h(g,d,j))}}let d=a.filter(Boolean).join("\n");d&&b.push({role:"user",content:d});continue}let a=f(e.content);if("assistant"===e.role&&e.tool_calls&&e.tool_calls.length>0){let c={role:"assistant",content:a||""};c.tool_calls=e.tool_calls.map(a=>{let{index:b,...c}=a||{};return c}),b.push(c)}else if("assistant"===e.role&&Array.isArray(e.content)){let c=e.content.filter(a=>a?.type==="tool_use").map(a=>({id:a.id||"",type:"function",function:{name:a.name||"tool",arguments:JSON.stringify(a.input||{})}})).filter(a=>a.id);c.length>0?b.push({role:"assistant",content:a||"",tool_calls:c}):a&&b.push({role:"assistant",content:a})}else a&&b.push({role:e.role,content:a})}}return b}(b.messages||[]),{user:g,metadata:j,tool_choice:k,stream_options:l,system:m,...n}=b;return{...n,messages:e,max_tokens:32e3}}(0,d.kz)(e.h.OPENAI,e.h.CURSOR,j,null)},39006:a=>{a.exports={rE:"0.4.3"}},39359:(a,b,c)=>{c.r(b),c.d(b,{openaiToClaudeRequest:()=>h,openaiToClaudeRequestForAntigravity:()=>j});var d=c(35131),e=c(56790),f=c(43528),g=c(19312);function h(a,b,c){var d;let e=new Map,h={model:a,max_tokens:(0,g.M)(b),stream:c};void 0!==b.temperature&&(h.temperature=b.temperature),h.messages=[];let j=[];if(b.messages&&Array.isArray(b.messages)){let a;for(let a of b.messages)"system"===a.role&&j.push("string"==typeof a.content?a.content:i(a.content));let c=b.messages.filter(a=>"system"!==a.role),d=[],f=()=>{a&&d.length>0&&(h.messages.push({role:a,content:d}),d=[])};for(let b of c){let c="user"===b.role||"tool"===b.role?"user":"assistant",g=function(a,b=new Map){let c=[];if("tool"===a.role)c.push({type:"tool_result",tool_use_id:a.tool_call_id,content:a.content});else if("user"===a.role){if("string"==typeof a.content)a.content&&c.push({type:"text",text:a.content});else if(Array.isArray(a.content))for(let b of a.content)if("text"===b.type&&b.text)c.push({type:"text",text:b.text});else if("tool_result"===b.type)c.push({type:"tool_result",tool_use_id:b.tool_use_id,content:b.content,...b.is_error&&{is_error:b.is_error}});else if("image_url"===b.type){let a=b.image_url.url,d=a.match(/^data:([^;]+);base64,(.+)$/);d?c.push({type:"image",source:{type:"base64",media_type:d[1],data:d[2]}}):(a.startsWith("http://")||a.startsWith("https://"))&&c.push({type:"image",source:{type:"url",url:a}})}else"image"===b.type&&b.source&&c.push({type:"image",source:b.source})}else if("assistant"===a.role){if(Array.isArray(a.content)){for(let b of a.content)if("text"===b.type&&b.text)c.push({type:"text",text:b.text});else if("tool_use"===b.type)c.push({type:"tool_use",id:b.id,name:b.name,input:b.input});else if("thinking"===b.type){let{cache_control:a,...d}=b;c.push(d)}}else if(a.content){let b="string"==typeof a.content?a.content:i(a.content);b&&c.push({type:"text",text:b})}if(a.tool_calls&&Array.isArray(a.tool_calls)){for(let b of a.tool_calls)if("function"===b.type){let a=""+b.function.name;c.push({type:"tool_use",id:b.id,name:a,input:function(a){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return a}}(b.function.arguments)})}}}return c}(b,e),j=g.some(a=>"tool_use"===a.type);if(g.some(a=>"tool_result"===a.type)){let b=g.filter(a=>"tool_result"===a.type),e=g.filter(a=>"tool_result"!==a.type);f(),b.length>0&&h.messages.push({role:"user",content:b}),e.length>0&&(a=c,d.push(...e));continue}a!==c&&(f(),a=c),d.push(...g),j&&f()}f();for(let a=h.messages.length-1;a>=0;a--){let b=h.messages[a];if("assistant"===b.role&&Array.isArray(b.content)&&b.content.length>0){let a=["text","tool_use","tool_result","image"];for(let c=b.content.length-1;c>=0;c--){let d=b.content[c];if(a.includes(d.type)){d.cache_control={type:"ephemeral"};break}}break}}}if(b.response_format){let a=b.response_format;if("json_schema"===a.type&&a.json_schema?.schema){let b=JSON.stringify(a.json_schema.schema,null,2);j.push(`You must respond with valid JSON that strictly follows this JSON schema:
|
|
67
67
|
\`\`\`json
|
|
68
68
|
${b}
|
|
69
69
|
\`\`\`
|
|
@@ -186,7 +186,7 @@ You are producing plain text that will later be styled by the CLI. Follow these
|
|
|
186
186
|
* Optionally include line/column (1‑based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
|
|
187
187
|
* Do not use URIs like file://, vscode://, or https://.
|
|
188
188
|
* Do not provide range of lines
|
|
189
|
-
* Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var g=c(62276),h=c(62970);async function i(a,b={}){let{signal:c,timeoutMs:d=1e4}=b;if(!a||!a.startsWith("http://")&&!a.startsWith("https://"))return null;let e=new AbortController,f=c?null:setTimeout(()=>e.abort(),d),g=c||e.signal;try{let b=await fetch(a,{signal:g});if(!b.ok)return null;let c=b.headers.get("Content-Type")||"image/jpeg",d=await b.arrayBuffer(),e=Buffer.from(d).toString("base64");return{url:`data:${c};base64,${e}`,mimeType:c}}catch{return null}finally{f&&clearTimeout(f)}}var j=c(99119);let k=new Map,l=null;function m(a){return(0,d.createHash)("sha256").update(a).digest("hex").slice(0,16)}function n(){return`sess_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`}(0,j.Xj)().then(a=>{l=a}),setInterval(()=>{let a=Date.now();for(let[b,c]of k)a-c.lastUsed>36e5&&k.delete(b)},6e5);class o extends e.H{constructor(){super("codex",g.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0){let c=super.buildHeaders(a,b);return c.session_id=this._currentSessionId||a?.connectionId||"default",c}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await i(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){return await this.prefetchImages(a.body),super.execute(a)}transformRequest(a,b,c,d){this._isCompact=!!b._compact,delete b._compact,this._currentSessionId=function(a,b){let c=b?`sess_${m(b)}`:n();if(!Array.isArray(a)||0===a.length)return c;let d="";for(let b of a)if("assistant"===b.role&&(d=b?"string"==typeof b.content?b.content:Array.isArray(b.content)?b.content.map(a=>a.text||a.output||"").filter(Boolean).join(""):"":""))break;if(!d)return c;let e=m((b||"")+d),f=k.get(e);if(f)return f.lastUsed=Date.now(),f.sessionId;let g=n();return k.set(e,{sessionId:g,lastUsed:Date.now()}),g}(b.input,l);let e=(0,h.m)(b.input);e&&(b.input=e),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),b.stream=!0,b.instructions&&""!==b.instructions.trim()||(b.instructions=f),b.store=!1;let g=null;for(let c of["none","low","medium","high","xhigh"])if(a.endsWith(`-${c}`)){g=c,b.model=b.model.replace(`-${c}`,"");break}if(b.reasoning)b.reasoning.summary||(b.reasoning.summary="auto");else{let a=b.reasoning_effort||g||"low";b.reasoning={effort:a,summary:"auto"}}return delete b.reasoning_effort,b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort&&(b.include=["reasoning.encrypted_content"]),delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,b}}},84868:(a,b,c)=>{c.d(b,{V:()=>g});var d=c(24353),e=c(62276),f=c(43528);class g extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return this._currentModel=a,!b.project&&d?.projectId&&(b.project=d.projectId),b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},86758:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{o:()=>s});var e=c(24353),f=c(62276),g=c(23016),h=c(48788),i=c(96946),j=c(68735),k=c(56790),l=c(37973),m=c(74075),n=c.n(m);let a=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{a=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let q="1"===process.env.CURSOR_STREAM_DEBUG,r=(...a)=>{q&&console.log(...a)};function o(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return r("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return n().gunzipSync(a)}catch(c){try{return n().inflateSync(a)}catch(d){try{return n().inflateRawSync(a)}catch(e){r(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),r("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}function p(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}class s extends e.H{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f=await (0,l.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:d},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(b,c,d,e){if(!a)throw Error("http2 module not available");return new Promise((f,g)=>{let h=new URL(b),i=a.connect(`https://${h.host}`),j=[],k={},l=!1,m=a=>(...b)=>{l||(l=!0,clearTimeout(n),i.close(),a(...b))},n=setTimeout(m(()=>{g(Error("HTTP/2 request timed out"))}),6e4);i.on("error",m(g));let o=i.request({":method":"POST",":path":h.pathname,":authority":h.host,":scheme":"https",...c});if(o.on("response",a=>{k=a}),o.on("data",a=>{j.push(a)}),o.on("end",m(()=>{f({status:k[":status"],headers:k,body:Buffer.concat(j)})})),o.on("error",m(g)),e){let a=m(()=>g(Error("Request aborted")));e.addEventListener("abort",a,{once:!0})}o.write(d),o.end()})}async execute({model:b,body:c,stream:d,credentials:e,signal:f,log:h,proxyOptions:i=null}){let j=this.buildUrl(),k=this.buildHeaders(e),l=this.transformRequest(b,c,d,e);try{let e=i?.enabled===!0||i?.connectionProxyEnabled===!0||!!i?.vercelRelayUrl,g=a&&!e?await this.makeHttp2Request(j,k,l,f):await this.makeFetchRequest(j,k,l,f,i);if(200!==g.status){let a=g.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${g.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:g.status,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}return{response:!1!==d?this.transformProtobufToSSE(g.body,b,c):this.transformProtobufToJSON(g.body,b,c),url:j,headers:k,transformedBody:c}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,i="",l=[],m=new Map,n=new Set,q=0;for(r(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){if(f+5>a.length){r(`[CURSOR BUFFER] Reached end, offset=${f}, remaining=${a.length-f}`);break}let b=a[f],c=a.readUInt32BE(f+1);if(r(`[CURSOR BUFFER] Frame ${q+1}: flags=0x${b.toString(16).padStart(2,"0")}, length=${c}`),f+5+c>a.length){r(`[CURSOR BUFFER] Incomplete frame, offset=${f}, length=${c}, buffer.length=${a.length}`);break}let d=a.slice(f+5,f+5+c);if(f+=5+c,q++,!(d=o(d,b))){r(`[CURSOR BUFFER] Frame ${q}: decompression failed, skipping`);continue}if(d.length>0&&123===d[0])try{let a=d.toString("utf-8");if(a.includes('"error"')){let b=i||m.size>0;if(r(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return p(JSON.parse(a))}}catch{}let e=(0,h.CP)(new Uint8Array(d));if(r(`[CURSOR DECODED] Frame ${q}:`,e),e.error){let a=i||m.size>0;if(r(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${e.error}`),a)break;return new Response(JSON.stringify({error:{message:e.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(e.toolCall){let a=e.toolCall;if(m.has(a.id)){let b=m.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else m.set(a.id,{...a});if(a.isLast){let b=m.get(a.id);n.add(a.id),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}e.text&&(i+=e.text)}for(let[a,b]of(r(`[CURSOR BUFFER] Parsed ${q} frames, toolCallsMap size: ${m.size}, finalized toolCalls: ${l.length}`),m.entries()))n.has(a)||(r(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));r(`[CURSOR BUFFER] Final toolCalls count: ${l.length}`);let s={role:"assistant",content:i||null};l.length>0&&(s.tool_calls=l);let t=(0,j.OF)(c,i.length,k.h.OPENAI),u={id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:s,finish_reason:l.length>0?"tool_calls":"stop"}],usage:t};return new Response(JSON.stringify(u),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],i=0,l="",m=[],n=new Map,q=new Set,s=new Set,t=0;for(r(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);i<a.length;){if(i+5>a.length){r(`[CURSOR BUFFER SSE] Reached end, offset=${i}, remaining=${a.length-i}`);break}let c=a[i],j=a.readUInt32BE(i+1);if(r(`[CURSOR BUFFER SSE] Frame ${t+1}: flags=0x${c.toString(16).padStart(2,"0")}, length=${j}`),i+5+j>a.length){r(`[CURSOR BUFFER SSE] Incomplete frame, offset=${i}, length=${j}, buffer.length=${a.length}`);break}let k=a.slice(i+5,i+5+j);if(i+=5+j,t++,!(k=o(k,c))){r(`[CURSOR BUFFER SSE] Frame ${t}: decompression failed, skipping`);continue}if(123===k[0])try{let a=k.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||l||n.size>0;if(r(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return p(JSON.parse(a))}}catch{}let u=(0,h.CP)(new Uint8Array(k));if(r(`[CURSOR DECODED SSE] Frame ${t}:`,u),u.error){let a=f.length>0||l||n.size>0;if(r(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${u.error}`),a)break;return new Response(JSON.stringify({error:{message:u.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(u.toolCall){let a=u.toolCall;if(0===f.length&&f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
189
|
+
* Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var g=c(62276),h=c(62970);async function i(a,b={}){let{signal:c,timeoutMs:d=1e4}=b;if(!a||!a.startsWith("http://")&&!a.startsWith("https://"))return null;let e=new AbortController,f=c?null:setTimeout(()=>e.abort(),d),g=c||e.signal;try{let b=await fetch(a,{signal:g});if(!b.ok)return null;let c=b.headers.get("Content-Type")||"image/jpeg",d=await b.arrayBuffer(),e=Buffer.from(d).toString("base64");return{url:`data:${c};base64,${e}`,mimeType:c}}catch{return null}finally{f&&clearTimeout(f)}}var j=c(99119);let k=new Map,l=null;function m(a){return(0,d.createHash)("sha256").update(a).digest("hex").slice(0,16)}function n(){return`sess_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`}(0,j.Xj)().then(a=>{l=a}),setInterval(()=>{let a=Date.now();for(let[b,c]of k)a-c.lastUsed>36e5&&k.delete(b)},6e5);class o extends e.H{constructor(){super("codex",g.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0){let c=super.buildHeaders(a,b);return c.session_id=this._currentSessionId||a?.connectionId||"default",c}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await i(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){return await this.prefetchImages(a.body),super.execute(a)}parseError(a,b){if(429===a.status&&b)try{let a=JSON.parse(b),c=a?.error;if(c?.type==="usage_limit_reached"){let a=Date.now(),d=null;if("number"==typeof c.resets_at&&c.resets_at>0){let b=1e3*c.resets_at;b>a&&(d=b)}if(!d&&"number"==typeof c.resets_in_seconds&&c.resets_in_seconds>0&&(d=a+1e3*c.resets_in_seconds),d)return{status:429,message:c.message||b,resetsAtMs:d}}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d){this._isCompact=!!b._compact,delete b._compact,this._currentSessionId=function(a,b){let c=b?`sess_${m(b)}`:n();if(!Array.isArray(a)||0===a.length)return c;let d="";for(let b of a)if("assistant"===b.role&&(d=b?"string"==typeof b.content?b.content:Array.isArray(b.content)?b.content.map(a=>a.text||a.output||"").filter(Boolean).join(""):"":""))break;if(!d)return c;let e=m((b||"")+d),f=k.get(e);if(f)return f.lastUsed=Date.now(),f.sessionId;let g=n();return k.set(e,{sessionId:g,lastUsed:Date.now()}),g}(b.input,l);let e=(0,h.m)(b.input);e&&(b.input=e),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),b.stream=!0,b.instructions&&""!==b.instructions.trim()||(b.instructions=f),b.store=!1;let g=null;for(let c of["none","low","medium","high","xhigh"])if(a.endsWith(`-${c}`)){g=c,b.model=b.model.replace(`-${c}`,"");break}if(b.reasoning)b.reasoning.summary||(b.reasoning.summary="auto");else{let a=b.reasoning_effort||g||"low";b.reasoning={effort:a,summary:"auto"}}return delete b.reasoning_effort,b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort&&(b.include=["reasoning.encrypted_content"]),delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,b}}},84868:(a,b,c)=>{c.d(b,{V:()=>g});var d=c(24353),e=c(62276),f=c(43528);class g extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return this._currentModel=a,!b.project&&d?.projectId&&(b.project=d.projectId),b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},86758:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{o:()=>s});var e=c(24353),f=c(62276),g=c(23016),h=c(48788),i=c(96946),j=c(68735),k=c(56790),l=c(37973),m=c(74075),n=c.n(m);let a=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{a=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let q="1"===process.env.CURSOR_STREAM_DEBUG,r=(...a)=>{q&&console.log(...a)};function o(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return r("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return n().gunzipSync(a)}catch(c){try{return n().inflateSync(a)}catch(d){try{return n().inflateRawSync(a)}catch(e){r(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),r("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}function p(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}class s extends e.H{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f=await (0,l.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:d},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(b,c,d,e){if(!a)throw Error("http2 module not available");return new Promise((f,g)=>{let h=new URL(b),i=a.connect(`https://${h.host}`),j=[],k={},l=!1,m=a=>(...b)=>{l||(l=!0,clearTimeout(n),i.close(),a(...b))},n=setTimeout(m(()=>{g(Error("HTTP/2 request timed out"))}),6e4);i.on("error",m(g));let o=i.request({":method":"POST",":path":h.pathname,":authority":h.host,":scheme":"https",...c});if(o.on("response",a=>{k=a}),o.on("data",a=>{j.push(a)}),o.on("end",m(()=>{f({status:k[":status"],headers:k,body:Buffer.concat(j)})})),o.on("error",m(g)),e){let a=m(()=>g(Error("Request aborted")));e.addEventListener("abort",a,{once:!0})}o.write(d),o.end()})}async execute({model:b,body:c,stream:d,credentials:e,signal:f,log:h,proxyOptions:i=null}){let j=this.buildUrl(),k=this.buildHeaders(e),l=this.transformRequest(b,c,d,e);try{let e=i?.enabled===!0||i?.connectionProxyEnabled===!0||!!i?.vercelRelayUrl,g=a&&!e?await this.makeHttp2Request(j,k,l,f):await this.makeFetchRequest(j,k,l,f,i);if(200!==g.status){let a=g.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${g.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:g.status,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}return{response:!1!==d?this.transformProtobufToSSE(g.body,b,c):this.transformProtobufToJSON(g.body,b,c),url:j,headers:k,transformedBody:c}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,i="",l=[],m=new Map,n=new Set,q=0;for(r(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){if(f+5>a.length){r(`[CURSOR BUFFER] Reached end, offset=${f}, remaining=${a.length-f}`);break}let b=a[f],c=a.readUInt32BE(f+1);if(r(`[CURSOR BUFFER] Frame ${q+1}: flags=0x${b.toString(16).padStart(2,"0")}, length=${c}`),f+5+c>a.length){r(`[CURSOR BUFFER] Incomplete frame, offset=${f}, length=${c}, buffer.length=${a.length}`);break}let d=a.slice(f+5,f+5+c);if(f+=5+c,q++,!(d=o(d,b))){r(`[CURSOR BUFFER] Frame ${q}: decompression failed, skipping`);continue}if(d.length>0&&123===d[0])try{let a=d.toString("utf-8");if(a.includes('"error"')){let b=i||m.size>0;if(r(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return p(JSON.parse(a))}}catch{}let e=(0,h.CP)(new Uint8Array(d));if(r(`[CURSOR DECODED] Frame ${q}:`,e),e.error){let a=i||m.size>0;if(r(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${e.error}`),a)break;return new Response(JSON.stringify({error:{message:e.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(e.toolCall){let a=e.toolCall;if(m.has(a.id)){let b=m.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else m.set(a.id,{...a});if(a.isLast){let b=m.get(a.id);n.add(a.id),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}e.text&&(i+=e.text)}for(let[a,b]of(r(`[CURSOR BUFFER] Parsed ${q} frames, toolCallsMap size: ${m.size}, finalized toolCalls: ${l.length}`),m.entries()))n.has(a)||(r(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));r(`[CURSOR BUFFER] Final toolCalls count: ${l.length}`);let s={role:"assistant",content:i||null};l.length>0&&(s.tool_calls=l);let t=(0,j.OF)(c,i.length,k.h.OPENAI),u={id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:s,finish_reason:l.length>0?"tool_calls":"stop"}],usage:t};return new Response(JSON.stringify(u),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],i=0,l="",m=[],n=new Map,q=new Set,s=new Set,t=0;for(r(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);i<a.length;){if(i+5>a.length){r(`[CURSOR BUFFER SSE] Reached end, offset=${i}, remaining=${a.length-i}`);break}let c=a[i],j=a.readUInt32BE(i+1);if(r(`[CURSOR BUFFER SSE] Frame ${t+1}: flags=0x${c.toString(16).padStart(2,"0")}, length=${j}`),i+5+j>a.length){r(`[CURSOR BUFFER SSE] Incomplete frame, offset=${i}, length=${j}, buffer.length=${a.length}`);break}let k=a.slice(i+5,i+5+j);if(i+=5+j,t++,!(k=o(k,c))){r(`[CURSOR BUFFER SSE] Frame ${t}: decompression failed, skipping`);continue}if(123===k[0])try{let a=k.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||l||n.size>0;if(r(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return p(JSON.parse(a))}}catch{}let u=(0,h.CP)(new Uint8Array(k));if(r(`[CURSOR DECODED SSE] Frame ${t}:`,u),u.error){let a=f.length>0||l||n.size>0;if(r(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${u.error}`),a)break;return new Response(JSON.stringify({error:{message:u.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(u.toolCall){let a=u.toolCall;if(0===f.length&&f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
190
190
|
|
|
191
191
|
`),n.has(a.id)){let c=n.get(a.id);c.function.arguments.length,c.function.arguments+=a.function.arguments,c.isLast=a.isLast,a.function.arguments&&(s.add(a.id),f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{tool_calls:[{index:c.index,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]},finish_reason:null}]})}
|
|
192
192
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=9981,exports.ids=[9981],exports.modules={9988:(a,b,c)=>{"use strict";c.d(b,{lz:()=>f});var d=c(55511),e=c.n(d);function f(){let a=e().randomBytes(32).toString("base64url"),b=e().createHash("sha256").update(a).digest("base64url");return{codeVerifier:a,codeChallenge:b,state:e().randomBytes(32).toString("base64url")}}},11909:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Gj:()=>m,PY:()=>p,Re:()=>n,Su:()=>o,kP:()=>l,sO:()=>k});var e=c(46379),f=c(9988),g=c(47978),h=a([e]);function i(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4,e=c+"=".repeat(d);return JSON.parse(Buffer.from(e,"base64").toString("utf8"))}catch{return null}}function j(a){let b=i(a);if(!b)return{};let c=b["https://api.openai.com/auth"]||{};return{email:b.email,chatgptAccountId:c.chatgpt_account_id,chatgptPlanType:c.chatgpt_plan_type}}e=(h.then?(await h)():h)[0];let q={claude:{config:g.OV,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d)=>{let e=new URLSearchParams({code:"true",client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c});return`${a.authorizeUrl}?${e.toString()}`},exchangeToken:async(a,b,c,d,e)=>{let f=b,g="";if(f.includes("#")){let a=f.split("#");f=a[0],g=a[1]||""}let h=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({code:f,state:g||e,grant_type:"authorization_code",client_id:a.clientId,redirect_uri:c,code_verifier:d})});if(!h.ok){let a=await h.text();throw Error(`Token exchange failed: ${a}`)}return await h.json()},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope})},codex:{config:g.DI,flowType:"authorization_code_pkce",fixedPort:1455,callbackPath:"/auth/callback",buildAuthUrl:(a,b,c,d)=>{let e={response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,...a.extraParams,state:c},f=Object.entries(e).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${f}`},exchangeToken:async(a,b,c,d)=>{let e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b=j(a.id_token),c={accessToken:a.access_token,refreshToken:a.refresh_token,idToken:a.id_token,expiresIn:a.expires_in};return b.email&&(c.email=b.email),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}},"gemini-cli":{config:g.LT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b=await fetch(`${g.LT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`}}),c=b.ok?await b.json():{},d="";try{let b=await fetch("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:getOAuthClientMetadata(),mode:1})});if(b.ok){let a=await b.json();d=a.cloudaicompanionProject?.id||a.cloudaicompanionProject||""}}catch(a){console.log("Failed to fetch project ID:",a)}return{userInfo:c,projectId:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},antigravity:{config:g.YT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b={Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json","User-Agent":g.YT.loadCodeAssistUserAgent,"X-Goog-Api-Client":g.YT.loadCodeAssistApiClient,"Client-Metadata":g.YT.loadCodeAssistClientMetadata,"x-request-source":"local"},c={ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"},d=await fetch(`${g.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`,"x-request-source":"local"}}),e=d.ok?await d.json():{},f="",h="legacy-tier";try{let a=await fetch(g.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c})});if(a.ok){let b=await a.json();if(f=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){h=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return f&&(async()=>{for(let a=0;a<10;a++){try{let a=await fetch(g.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:h,metadata:c})});if(a.ok){let b=await a.json();if(!0===b.done)break}}catch(a){break}await new Promise(a=>setTimeout(a,5e3))}})().catch(()=>{}),{userInfo:e,projectId:f}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},iflow:{config:g.ZL,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({loginMethod:a.extraParams.loginMethod,type:a.extraParams.type,redirect:b,state:c,client_id:a.clientId});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${g.ZL.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qoder:{config:g.hF,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,state:c});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${g.hF.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from Qoder");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qwen:{config:g.Hp,flowType:"device_code",requestDeviceCode:async(a,b)=>{let c=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scope,code_challenge:b,code_challenge_method:a.codeChallengeMethod})});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b,code_verifier:c})});return{ok:d.ok,data:await d.json()}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{resourceUrl:a.resource_url}})},github:{config:g.Nu,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scopes})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}return await b.json()},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,device_code:b,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},postExchange:async a=>{let b=await fetch(g.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":g.Nu.apiVersion,"User-Agent":g.Nu.userAgent}}),c=b.ok?await b.json():{},d=await fetch(g.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":g.Nu.apiVersion,"User-Agent":g.Nu.userAgent}}),e=d.ok?await d.json():{};return{copilotToken:c,userInfo:e}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{copilotToken:b?.copilotToken?.token,copilotTokenExpiresAt:b?.copilotToken?.expires_at,githubUserId:b?.userInfo?.id,githubLogin:b?.userInfo?.login,githubName:b?.userInfo?.name,githubEmail:b?.userInfo?.email}})},kiro:{config:g.Tx,flowType:"device_code",requestDeviceCode:async(a,b,c={})=>{let d=("string"==typeof c.region?c.region.trim():"")||"us-east-1",e=("string"==typeof c.startUrl?c.startUrl.trim():"")||a.startUrl,f="idc"===c.authMethod?"idc":"builder-id",g=`https://oidc.${d}.amazonaws.com/client/register`,h=`https://oidc.${d}.amazonaws.com/device_authorization`,i=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientName:a.clientName,clientType:a.clientType,scopes:a.scopes,grantTypes:a.grantTypes,issuerUrl:a.issuerUrl})});if(!i.ok){let a=await i.text();throw Error(`Client registration failed: ${a}`)}let j=await i.json(),k=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:j.clientId,clientSecret:j.clientSecret,startUrl:e})});if(!k.ok){let a=await k.text();throw Error(`Device authorization failed: ${a}`)}let l=await k.json();return{device_code:l.deviceCode,user_code:l.userCode,verification_uri:l.verificationUri,verification_uri_complete:l.verificationUriComplete,expires_in:l.expiresIn,interval:l.interval||5,_clientId:j.clientId,_clientSecret:j.clientSecret,_region:d,_authMethod:f,_startUrl:e}},pollToken:async(a,b,c,d)=>{let e,f=d?._region||"us-east-1",g=`https://oidc.${f}.amazonaws.com/token`,h=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:d?._clientId,clientSecret:d?._clientSecret,deviceCode:b,grantType:"urn:ietf:params:oauth:grant-type:device_code"})});try{e=await h.json()}catch(b){let a=await h.text();e={error:"invalid_response",error_description:a}}return e.accessToken?{ok:!0,data:{access_token:e.accessToken,refresh_token:e.refreshToken,expires_in:e.expiresIn,profile_arn:e?.profileArn||null,_clientId:d?._clientId,_clientSecret:d?._clientSecret,_region:d?._region,_authMethod:d?._authMethod,_startUrl:d?._startUrl}}:{ok:!1,data:{error:e.error||"authorization_pending",error_description:e.error_description||e.message}}},mapTokens:a=>{let b=function(a){let b=i(a);if(b)return b.email||b.preferred_username||b.sub||void 0}(a.access_token);return{accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,email:b,providerSpecificData:{profileArn:a?.profile_arn||null,clientId:a._clientId,clientSecret:a._clientSecret,region:a._region||"us-east-1",authMethod:a._authMethod||"builder-id",startUrl:a._startUrl||g.Tx.startUrl}}}},cursor:{config:g.WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})},"kimi-coding":{config:g.t,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}let c=await b.json();return{device_code:c.device_code,user_code:c.user_code,verification_uri:c.verification_uri||"https://www.kimi.com/code/authorize_device",verification_uri_complete:c.verification_uri_complete||`https://www.kimi.com/code/authorize_device?user_code=${c.user_code}`,expires_in:c.expires_in,interval:c.interval||5}},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in})},kilocode:{config:g.MZ,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.initiateUrl,{method:"POST",headers:{"Content-Type":"application/json"}});if(!b.ok){if(429===b.status)throw Error("Too many pending authorization requests. Please try again later.");let a=await b.text();throw Error(`Device auth initiation failed: ${a}`)}let c=await b.json();return{device_code:c.code,user_code:c.code,verification_uri:c.verificationUrl,verification_uri_complete:c.verificationUrl,expires_in:c.expiresIn||300,interval:3}},pollToken:async(a,b)=>{let c=await fetch(`${a.pollUrlBase}/${b}`);if(202===c.status)return{ok:!1,data:{error:"authorization_pending"}};if(403===c.status)return{ok:!1,data:{error:"access_denied",error_description:"Authorization denied by user"}};if(410===c.status)return{ok:!1,data:{error:"expired_token",error_description:"Authorization code expired"}};if(!c.ok)return{ok:!1,data:{error:"poll_failed",error_description:`Poll failed: ${c.status}`}};let d=await c.json();if("approved"===d.status&&d.token){let b=null;try{let c=await fetch(`${a.apiBaseUrl}/api/profile`,{headers:{Authorization:`Bearer ${d.token}`}});if(c.ok){let a=await c.json();b=a.organizations?.[0]?.id||null}}catch{}return{ok:!0,data:{access_token:d.token,_userEmail:d.userEmail,_orgId:b}}}return{ok:!1,data:{error:"authorization_pending"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:null,expiresIn:null,email:a._userEmail,...a._orgId?{providerSpecificData:{orgId:a._orgId}}:{}})},cline:{config:g.lB,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,b,c)=>{try{let a=b,c=4-a.length%4;4!==c&&(a+="=".repeat(c));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch(f){let d=await fetch(a.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:b,client_type:"extension",redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Cline token exchange failed: ${a}`)}let e=await d.json();return{access_token:e.data?.accessToken||e.accessToken,refresh_token:e.data?.refreshToken||e.refreshToken,email:e.data?.userInfo?.email||"",expires_at:e.data?.expiresAt||e.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})},gitlab:{config:g.f7,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d,e={})=>{let f=e.baseUrl||a.defaultBaseUrl,g=e.clientId||"",h=new URLSearchParams({client_id:g,redirect_uri:b,response_type:"code",state:c,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod});return`${f}${a.authorizeUrlPath}?${h.toString()}`},exchangeToken:async(a,b,c,d,e,f={})=>{let g=f.baseUrl||a.defaultBaseUrl,h=f.clientId||"",i=f.clientSecret||"",j=new URLSearchParams({client_id:h,grant_type:"authorization_code",code:b,redirect_uri:c,code_verifier:d});i&&j.set("client_secret",i);let k=await fetch(`${g}${a.tokenUrlPath}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:j.toString()});if(!k.ok)throw Error(`GitLab token exchange failed: ${await k.text()}`);let l=await k.json(),m=await fetch(`${g}${a.userInfoUrlPath}`,{headers:{Authorization:`Bearer ${l.access_token}`}}),n=m.ok?await m.json():{};return{...l,_user:n,_baseUrl:g,_clientId:h}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,providerSpecificData:{username:a._user?.username||"",email:a._user?.email||a._user?.public_email||"",name:a._user?.name||"",baseUrl:a._baseUrl,clientId:a._clientId,authKind:"oauth"}})},codebuddy:{config:g.Nl,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(`${a.stateUrl}?platform=${a.platform}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:"{}"});if(!b.ok)throw Error(`CodeBuddy state request failed: ${await b.text()}`);let c=await b.json();if(0!==c.code||!c.data?.state||!c.data?.authUrl)throw Error(`CodeBuddy state error: ${c.msg||"missing state/authUrl"}`);return{device_code:c.data.state,verification_uri:c.data.authUrl,user_code:"",interval:a.pollInterval/1e3,_isCodeBuddy:!0}},pollToken:async(a,b)=>{let c=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:JSON.stringify({state:b})});if(!c.ok)return{ok:!1,data:{error:"request_failed"}};let d=await c.json();return 0===d.code&&d.data?.accessToken?{ok:!0,data:{access_token:d.data.accessToken,refresh_token:d.data.refreshToken||"",token_type:d.data.tokenType||"Bearer"}}:11217===d.code?{ok:!0,data:{error:"authorization_pending"}}:{ok:!1,data:{error:d.msg||"unknown_error"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:86400,providerSpecificData:{}})}};function k(a){let b=q[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}function l(a,b,c){let d=k(a),{codeVerifier:e,codeChallenge:g,state:h}=(0,f.lz)();return{authUrl:"device_code"===d.flowType?null:"authorization_code_pkce"===d.flowType?d.buildAuthUrl(d.config,b,h,g,c||{}):d.buildAuthUrl(d.config,b,h,void 0,c||{}),state:h,codeVerifier:e,codeChallenge:g,redirectUri:b,flowType:d.flowType,fixedPort:d.fixedPort,callbackPath:d.callbackPath||"/callback"}}async function m(a,b,c,d,e,f){let g=k(a),h=await g.exchangeToken(g.config,b,c,d,e,f||{}),i=null;return g.postExchange&&(i=await g.postExchange(h)),g.mapTokens(h,i)}async function n(a,b,c){let d=k(a);if("device_code"!==d.flowType)throw Error(`Provider ${a} does not support device code flow`);return await d.requestDeviceCode(d.config,b,c||{})}async function o(a,b,c,d){let e=k(a);if("device_code"!==e.flowType)throw Error(`Provider ${a} does not support device code flow`);let f=await e.pollToken(e.config,b,c,d);if(f.ok)if(f.data.access_token){let a=null;return e.postExchange&&(a=await e.postExchange(f.data)),{success:!0,tokens:e.mapTokens(f.data,a)}}else if("authorization_pending"===f.data.error||"slow_down"===f.data.error)return{success:!1,error:f.data.error,errorDescription:f.data.error_description||f.data.message,pending:"authorization_pending"===f.data.error};else return{success:!1,error:f.data.error||"no_access_token",errorDescription:f.data.error_description||f.data.message||"No access token received"};return{success:!1,error:f.data.error,errorDescription:f.data.error_description}}let r=!1;async function p(){if(!r){r=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,37770));for(let c of(await a()).filter(a=>{if("codex"!==a.provider||"oauth"!==a.authType||!a.idToken)return!1;let b=!!a.email,c=!!a.providerSpecificData?.chatgptAccountId;return!b||!c})){let a=j(c.idToken);if(!a.email&&!a.chatgptAccountId)continue;let d={};!c.email&&a.email&&(d.email=a.email),(a.chatgptAccountId||a.chatgptPlanType)&&(d.providerSpecificData={...c.providerSpecificData||{},chatgptAccountId:a.chatgptAccountId,chatgptPlanType:a.chatgptPlanType}),Object.keys(d).length&&await b(c.id,d)}}catch(a){r=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})},24429:()=>{},47978:(a,b,c)=>{"use strict";c.d(b,{DI:()=>e,Hp:()=>g,LT:()=>f,MZ:()=>o,Nl:()=>r,Nu:()=>k,OV:()=>d,Tx:()=>l,WN:()=>m,YT:()=>j,ZL:()=>i,f7:()=>q,hF:()=>h,lB:()=>p,t:()=>n}),c(21820);let d={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},e={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},f={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},g={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},h={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},i={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},j={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},k={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},l={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},m={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},n={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},o={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},p={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},q={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},r={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3}},64749:()=>{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/Ihds3DOj3yt0tC1dSf2Hc/_buildManifest.js","static/Ihds3DOj3yt0tC1dSf2Hc/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-86e40ea2022f394c.js","static/chunks/c7879cf7-255d52e3eda24cb7.js","static/chunks/5158-4b48a3595c794bbc.js","static/chunks/main-app-2c8be355ba1c4e93.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|
|
@@ -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="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/7ba68f4fd52a1ae0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-86e40ea2022f394c.js"/><script src="/_next/static/chunks/c7879cf7-255d52e3eda24cb7.js" async=""></script><script src="/_next/static/chunks/5158-4b48a3595c794bbc.js" async=""></script><script src="/_next/static/chunks/main-app-2c8be355ba1c4e93.js" async=""></script><script src="/_next/static/chunks/c6123951-462cab681f34bf85.js" async=""></script><script src="/_next/static/chunks/6795-3ddcc1d55c65c001.js" async=""></script><script src="/_next/static/chunks/505-3ffce20748d2fc09.js" async=""></script><script src="/_next/static/chunks/4156-ac69d9fed0825642.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-380c1f4327a2a3bc.js" async=""></script><script src="/_next/static/chunks/app/layout-c47481f46f5ae72b.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?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><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/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 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/webpack-86e40ea2022f394c.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[98814,[\"4335\",\"static/chunks/c6123951-462cab681f34bf85.js\",\"6795\",\"static/chunks/6795-3ddcc1d55c65c001.js\",\"505\",\"static/chunks/505-3ffce20748d2fc09.js\",\"4156\",\"static/chunks/4156-ac69d9fed0825642.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-380c1f4327a2a3bc.js\"],\"ThemeProvider\"]\n3:I[70339,[\"505\",\"static/chunks/505-3ffce20748d2fc09.js\",\"7177\",\"static/chunks/app/layout-c47481f46f5ae72b.js\"],\"RuntimeI18nProvider\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[31872,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[31872,[],\"ViewportBoundary\"]\nc:I[31872,[],\"MetadataBoundary\"]\ne:I[57567,[],\"default\",1]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/7ba68f4fd52a1ae0.css\",\"style\"]\n:HL[\"/_next/static/css/081a0afca5a9bd20.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/css/7ba68f4fd52a1ae0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"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\":\"__variable_f367f3 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\":\"$undefined\",\"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\":{\"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.\"}]}]]}]}]],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\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Ihds3DOj3yt0tC1dSf2Hc\"}\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[12569,[],\"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?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"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/webpack-86e40ea2022f394c.js"/><script src="/_next/static/chunks/c7879cf7-255d52e3eda24cb7.js" async=""></script><script src="/_next/static/chunks/5158-4b48a3595c794bbc.js" async=""></script><script src="/_next/static/chunks/main-app-2c8be355ba1c4e93.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><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/polyfills-42372ed130431b0a.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/webpack-86e40ea2022f394c.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[91133,[],\"\"]\n3:I[4297,[],\"\"]\n4:I[31872,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[31872,[],\"ViewportBoundary\"]\na:I[31872,[],\"MetadataBoundary\"]\nc:I[57567,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"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\":[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\"]},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/webpack-86e40ea2022f394c.js"/><script src="/_next/static/chunks/c7879cf7-255d52e3eda24cb7.js" async=""></script><script src="/_next/static/chunks/5158-4b48a3595c794bbc.js" async=""></script><script src="/_next/static/chunks/main-app-2c8be355ba1c4e93.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><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/polyfills-42372ed130431b0a.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/webpack-86e40ea2022f394c.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[91133,[],\"\"]\n3:I[4297,[],\"\"]\n4:I[31872,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[31872,[],\"ViewportBoundary\"]\na:I[31872,[],\"MetadataBoundary\"]\nc:I[57567,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"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\":[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\"]},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\":\"Ihds3DOj3yt0tC1dSf2Hc\"}\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,"6:null\nb:[]\n"])</script></body></html>
|