9router 0.3.91 ā 0.3.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +7 -5
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/routes-manifest.json +12 -0
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +6 -6
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +2 -2
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -0
- package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -0
- package/app/.next/server/app/api/models/custom/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -0
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +4 -4
- package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +4 -4
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +5 -5
- package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +5 -5
- package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +7 -5
- package/app/.next/server/chunks/126.js +2 -2
- package/app/.next/server/chunks/1389.js +1 -1
- package/app/.next/server/chunks/1574.js +1 -1
- package/app/.next/server/chunks/1578.js +1 -1
- package/app/.next/server/chunks/2049.js +1 -1
- package/app/.next/server/chunks/253.js +1 -0
- package/app/.next/server/chunks/2947.js +1 -1
- package/app/.next/server/chunks/3030.js +1 -0
- package/app/.next/server/chunks/3159.js +1 -1
- package/app/.next/server/chunks/3774.js +3 -3
- package/app/.next/server/chunks/450.js +2 -2
- package/app/.next/server/chunks/4627.js +1 -1
- package/app/.next/server/chunks/5053.js +64 -0
- package/app/.next/server/chunks/5445.js +1 -1
- package/app/.next/server/chunks/6379.js +1 -1
- package/app/.next/server/chunks/7243.js +1 -1
- package/app/.next/server/chunks/7770.js +1 -1
- package/app/.next/server/chunks/7973.js +1 -1
- package/app/.next/server/chunks/8035.js +1 -0
- package/app/.next/server/chunks/8202.js +12 -7
- package/app/.next/server/chunks/8480.js +2 -2
- package/app/.next/server/chunks/8513.js +5 -0
- package/app/.next/server/chunks/9737.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +3 -3
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/static/AXp1L9TYXuSG-iT0TKIs2/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1237-ce7cc27452c0087f.js +18 -0
- package/app/.next/static/chunks/4156-218a86687f643d2f.js +7 -0
- package/app/.next/static/chunks/505-9410e3e98f835f3f.js +1 -0
- package/app/.next/static/chunks/6795-3ddcc1d55c65c001.js +64 -0
- package/app/.next/static/chunks/8035-122ffa9582ac6dd4.js +3 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-2c8c481b0fc0bb1b.js ā page-cd02fe7b10810144.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-f2206753c04da01d.js ā page-1266463402c761f6.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-8556b646c8002338.js ā page-fcb74a9294486c9a.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-2ffb4689f161ca33.js ā page-af58c67a4e409aad.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-79a243ddf837f243.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-841102262fc5fd15.js ā page-446fb4958f931207.js} +6 -6
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-ebe4ae25d01f731a.js ā page-7b7477044f123993.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-21fffa0f231796e9.js ā page-7ab6931e5032e32c.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-354de24a25e94694.js ā page-8d500331b6e10813.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-202eec8d33670a47.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-426e797917337fd8.js ā page-510b667ad2defe52.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d8aedd72c61ec172.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-34d04900ddd6932a.js ā page-b675d50ce82d5577.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-eec871b45fffd58e.js ā page-2485ee7c89798a7b.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-f87aca0195ce41ad.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-1308b9d445962823.js ā page-538a897db589c145.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-380c1f4327a2a3bc.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/landing/{page-c004b08edc4d4637.js ā page-297a1c9230927b6f.js} +1 -1
- package/app/.next/static/chunks/app/login/{page-c0d5d5c52ff7317f.js ā page-2424ce8673ecf5cb.js} +1 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/page-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f301b776dca4839c.js +1 -0
- package/app/.next/static/css/58f44142c32a3776.css +1 -0
- package/app/package.json +2 -1
- package/app/public/providers/opencode-go.png +0 -0
- package/app/src/mitm/server.js +27 -6
- package/cli.js +95 -39
- package/package.json +1 -1
- package/app/.next/server/chunks/149.js +0 -1
- package/app/.next/server/chunks/242.js +0 -1
- package/app/.next/server/chunks/514.js +0 -5
- package/app/.next/server/chunks/6502.js +0 -1
- package/app/.next/server/chunks/8354.js +0 -1
- package/app/.next/static/VI5XrgPaPsUOg-Uel9spT/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1237-06ab8ceb0847165d.js +0 -18
- package/app/.next/static/chunks/2599-ef3aca3d4fdaa96d.js +0 -1
- package/app/.next/static/chunks/4156-e1e79523d2efa7c1.js +0 -7
- package/app/.next/static/chunks/505-7a55d180affbd4d3.js +0 -1
- package/app/.next/static/chunks/8035-0bbf141cee7024b0.js +0 -3
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-0b58256fd5ccd8b7.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-9533adb8cd2aa0ac.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-77e9b2d982a01e23.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-09e7d6bd4d08202c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-82c184348fd5c917.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-757a35dbb4539aad.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/page-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-786efea7f9ddd575.js +0 -1
- package/app/.next/static/css/357a3570ee0fa8c1.css +0 -1
- /package/app/.next/static/{VI5XrgPaPsUOg-Uel9spT ā AXp1L9TYXuSG-iT0TKIs2}/_ssgManifest.js +0 -0
package/cli.js
CHANGED
|
@@ -117,6 +117,9 @@ function compareVersions(a, b) {
|
|
|
117
117
|
function killAllAppProcesses() {
|
|
118
118
|
return new Promise((resolve) => {
|
|
119
119
|
try {
|
|
120
|
+
// Kill MITM first (admin/sudo process, needs special handling)
|
|
121
|
+
killMitmByPidFile();
|
|
122
|
+
|
|
120
123
|
const platform = process.platform;
|
|
121
124
|
let pids = [];
|
|
122
125
|
|
|
@@ -143,6 +146,18 @@ function killAllAppProcesses() {
|
|
|
143
146
|
} catch (e) {
|
|
144
147
|
// No processes found or error - continue
|
|
145
148
|
}
|
|
149
|
+
|
|
150
|
+
// Also kill cloudflared.exe (tunnel holds file locks on Windows)
|
|
151
|
+
try {
|
|
152
|
+
const cfCmd = `powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process cloudflared -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;
|
|
153
|
+
const cfOut = execSync(cfCmd, { encoding: "utf8", windowsHide: true, timeout: 5000 });
|
|
154
|
+
cfOut.split("\n").forEach(l => {
|
|
155
|
+
const pid = l.trim();
|
|
156
|
+
if (pid && !isNaN(pid)) pids.push(pid);
|
|
157
|
+
});
|
|
158
|
+
} catch (e) {
|
|
159
|
+
// No cloudflared running - continue
|
|
160
|
+
}
|
|
146
161
|
} else {
|
|
147
162
|
// macOS/Linux: use ps to find all matching processes
|
|
148
163
|
try {
|
|
@@ -153,7 +168,7 @@ function killAllAppProcesses() {
|
|
|
153
168
|
const lines = output.split('\n');
|
|
154
169
|
|
|
155
170
|
lines.forEach(line => {
|
|
156
|
-
const isAppProcess = line.includes("9router") || line.includes("next-server");
|
|
171
|
+
const isAppProcess = line.includes("9router") || line.includes("next-server") || line.includes("cloudflared");
|
|
157
172
|
if (isAppProcess) {
|
|
158
173
|
const parts = line.trim().split(/\s+/);
|
|
159
174
|
const pid = parts[1];
|
|
@@ -193,6 +208,34 @@ function killAllAppProcesses() {
|
|
|
193
208
|
});
|
|
194
209
|
}
|
|
195
210
|
|
|
211
|
+
// Kill MITM server by PID file (MITM runs as admin/sudo, needs special handling)
|
|
212
|
+
function killMitmByPidFile() {
|
|
213
|
+
try {
|
|
214
|
+
const mitmPidFile = path.join(
|
|
215
|
+
process.platform === "win32"
|
|
216
|
+
? path.join(process.env.APPDATA || "", "9router")
|
|
217
|
+
: path.join(os.homedir(), ".9router"),
|
|
218
|
+
"mitm", ".mitm.pid"
|
|
219
|
+
);
|
|
220
|
+
if (!fs.existsSync(mitmPidFile)) return;
|
|
221
|
+
const pid = parseInt(fs.readFileSync(mitmPidFile, "utf8").trim(), 10);
|
|
222
|
+
if (!pid) return;
|
|
223
|
+
|
|
224
|
+
if (process.platform === "win32") {
|
|
225
|
+
// Admin CLI ā admin MITM ā same token ā OK
|
|
226
|
+
execSync(`taskkill /F /T /PID ${pid}`, { stdio: "ignore", windowsHide: true, timeout: 3000 });
|
|
227
|
+
} else {
|
|
228
|
+
// Try sudo -n first (uses cached sudo token if still valid)
|
|
229
|
+
try { execSync(`sudo -n kill -9 ${pid} 2>/dev/null`, { stdio: "ignore", timeout: 3000 }); }
|
|
230
|
+
catch {
|
|
231
|
+
// Fallback: direct kill (works if MITM not root, or CLI is root)
|
|
232
|
+
try { process.kill(pid, "SIGKILL"); } catch { }
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
try { fs.unlinkSync(mitmPidFile); } catch { }
|
|
236
|
+
} catch { }
|
|
237
|
+
}
|
|
238
|
+
|
|
196
239
|
// Kill any process on specific port
|
|
197
240
|
function killProcessOnPort(port) {
|
|
198
241
|
return new Promise((resolve) => {
|
|
@@ -312,41 +355,31 @@ function performUpdate() {
|
|
|
312
355
|
|
|
313
356
|
try {
|
|
314
357
|
if (process.platform === "win32") {
|
|
315
|
-
// Windows:
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
358
|
+
// Windows: spawn detached .bat then exit CLI to release all file locks
|
|
359
|
+
const updateScript = `@echo off
|
|
360
|
+
timeout /t 3 /nobreak >nul
|
|
361
|
+
echo Installing new version...
|
|
362
|
+
npm install -g ${pkg.name}@latest --prefer-online
|
|
363
|
+
if %ERRORLEVEL% EQU 0 (
|
|
364
|
+
echo.
|
|
365
|
+
echo Update completed. Run "${pkg.name}" to start.
|
|
366
|
+
) else (
|
|
367
|
+
echo.
|
|
368
|
+
echo Update failed. Try manually: npm install -g ${pkg.name}@latest
|
|
369
|
+
)
|
|
370
|
+
pause
|
|
371
|
+
`;
|
|
372
|
+
const scriptPath = path.join(os.tmpdir(), `${APP_NAME}-update.bat`);
|
|
373
|
+
fs.writeFileSync(scriptPath, updateScript);
|
|
324
374
|
|
|
325
|
-
|
|
326
|
-
|
|
375
|
+
spawn("cmd", ["/c", "start", "", "cmd", "/c", scriptPath], {
|
|
376
|
+
detached: true,
|
|
377
|
+
stdio: "ignore",
|
|
378
|
+
windowsHide: false
|
|
379
|
+
}).unref();
|
|
327
380
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
console.log(`š„ Installing new version... (attempt ${attempt}/${MAX_RETRIES})`);
|
|
331
|
-
execSync(`npm install -g ${pkg.name}@latest --prefer-online`, {
|
|
332
|
-
stdio: "inherit",
|
|
333
|
-
timeout: 120000,
|
|
334
|
-
windowsHide: true
|
|
335
|
-
});
|
|
336
|
-
console.log(`\nā
Update completed. Run '${pkg.name}' to start.`);
|
|
337
|
-
process.exit(0);
|
|
338
|
-
} catch (err) {
|
|
339
|
-
if (attempt < MAX_RETRIES) {
|
|
340
|
-
console.log(`ā³ Retry ${attempt}/${MAX_RETRIES} in ${RETRY_DELAY_MS / 1000}s...`);
|
|
341
|
-
const end = Date.now() + RETRY_DELAY_MS;
|
|
342
|
-
while (Date.now() < end) { /* wait */ }
|
|
343
|
-
} else {
|
|
344
|
-
console.error(`\nā Update failed after ${MAX_RETRIES} attempts.`);
|
|
345
|
-
console.log(`š” Try manually: npm install -g ${pkg.name}@latest\n`);
|
|
346
|
-
process.exit(1);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
}
|
|
381
|
+
console.log("\nš Update started in new window. This window will close...");
|
|
382
|
+
process.exit(0);
|
|
350
383
|
} else {
|
|
351
384
|
// macOS/Linux: spawn detached update script (no file-lock issues on Unix)
|
|
352
385
|
const updateScript = `#!/bin/bash
|
|
@@ -402,7 +435,7 @@ function openBrowser(url) {
|
|
|
402
435
|
cmd = `xdg-open "${url}"`;
|
|
403
436
|
}
|
|
404
437
|
|
|
405
|
-
exec(cmd, (err) => {
|
|
438
|
+
exec(cmd, { windowsHide: true }, (err) => {
|
|
406
439
|
if (err) {
|
|
407
440
|
console.log(`Open browser manually: ${url}`);
|
|
408
441
|
}
|
|
@@ -483,18 +516,31 @@ function startServer(latestVersion) {
|
|
|
483
516
|
let restartCount = 0;
|
|
484
517
|
let serverStartTime = Date.now();
|
|
485
518
|
|
|
519
|
+
const CRASH_LOG_LINES = 50;
|
|
520
|
+
let crashLog = [];
|
|
521
|
+
|
|
486
522
|
function spawnServer() {
|
|
487
523
|
serverStartTime = Date.now();
|
|
488
|
-
|
|
524
|
+
crashLog = [];
|
|
525
|
+
const child = spawn(RUNTIME, [serverPath], {
|
|
489
526
|
cwd: standaloneDir,
|
|
490
|
-
stdio: showLog ? "inherit" : "ignore",
|
|
527
|
+
stdio: showLog ? "inherit" : ["ignore", "ignore", "pipe"],
|
|
491
528
|
detached: true,
|
|
529
|
+
windowsHide: true,
|
|
492
530
|
env: {
|
|
493
531
|
...process.env,
|
|
494
532
|
PORT: port.toString(),
|
|
495
533
|
HOSTNAME: host
|
|
496
534
|
}
|
|
497
535
|
});
|
|
536
|
+
if (!showLog && child.stderr) {
|
|
537
|
+
child.stderr.on("data", (data) => {
|
|
538
|
+
const lines = data.toString().split("\n").filter(Boolean);
|
|
539
|
+
crashLog.push(...lines);
|
|
540
|
+
if (crashLog.length > CRASH_LOG_LINES) crashLog = crashLog.slice(-CRASH_LOG_LINES);
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
return child;
|
|
498
544
|
}
|
|
499
545
|
|
|
500
546
|
let server = spawnServer();
|
|
@@ -510,6 +556,8 @@ function startServer(latestVersion) {
|
|
|
510
556
|
const { killTray } = require("./src/cli/tray/tray");
|
|
511
557
|
killTray();
|
|
512
558
|
} catch (e) { }
|
|
559
|
+
// Kill MITM server (admin/sudo process) via PID file
|
|
560
|
+
killMitmByPidFile();
|
|
513
561
|
// Kill server process directly
|
|
514
562
|
if (server.pid) {
|
|
515
563
|
process.kill(server.pid, "SIGKILL");
|
|
@@ -591,8 +639,10 @@ function startServer(latestVersion) {
|
|
|
591
639
|
|
|
592
640
|
if (choice === "update") {
|
|
593
641
|
cleanup();
|
|
594
|
-
//
|
|
595
|
-
await
|
|
642
|
+
// Kill ALL lingering processes (server/next-server/cloudflared/tray) to release file locks on Windows
|
|
643
|
+
await killAllAppProcesses();
|
|
644
|
+
await killProcessOnPort(port);
|
|
645
|
+
await new Promise(r => setTimeout(r, 1500));
|
|
596
646
|
performUpdate();
|
|
597
647
|
return;
|
|
598
648
|
} else if (choice === "web") {
|
|
@@ -623,6 +673,7 @@ function startServer(latestVersion) {
|
|
|
623
673
|
const bgProcess = spawn(process.execPath, [__filename, "--tray", "--skip-update", "-p", port.toString()], {
|
|
624
674
|
detached: true,
|
|
625
675
|
stdio: "ignore",
|
|
676
|
+
windowsHide: true,
|
|
626
677
|
env: { ...process.env }
|
|
627
678
|
});
|
|
628
679
|
bgProcess.unref();
|
|
@@ -690,6 +741,11 @@ function startServer(latestVersion) {
|
|
|
690
741
|
restartCount++;
|
|
691
742
|
const delay = Math.min(1000 * restartCount, 10000);
|
|
692
743
|
console.error(`\nā ļø Server exited (code=${code ?? "unknown"}). Restarting in ${delay / 1000}s... (${restartCount}/${MAX_RESTARTS})`);
|
|
744
|
+
if (crashLog.length) {
|
|
745
|
+
console.error("\n--- Server crash log ---");
|
|
746
|
+
crashLog.forEach(l => console.error(l));
|
|
747
|
+
console.error("--- End crash log ---\n");
|
|
748
|
+
}
|
|
693
749
|
|
|
694
750
|
setTimeout(() => {
|
|
695
751
|
server = spawnServer();
|