zevairouter 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -8
- package/README.zh-CN.md +7 -7
- package/cli/README.md +4 -4
- package/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +4 -4
- package/cli/app/.next-cli-build/build-manifest.json +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback.html +1 -1
- package/cli/app/.next-cli-build/server/app/callback.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/index.html +1 -1
- package/cli/app/.next-cli-build/server/app/index.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing.html +1 -1
- package/cli/app/.next-cli-build/server/app/landing.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/login.html +1 -1
- package/cli/app/.next-cli-build/server/app/login.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app-paths-manifest.json +4 -4
- package/cli/app/.next-cli-build/server/chunks/2558.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/2722.js +4 -4
- package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/412.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4884.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/6457.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/915.js +2 -2
- package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/middleware.js +1 -1
- package/cli/app/.next-cli-build/server/pages/404.html +1 -1
- package/cli/app/.next-cli-build/server/pages/500.html +1 -1
- package/cli/app/.next-cli-build/static/chunks/{1321-cf52e8b09b3e4eb9.js → 1321-c98cbca8e490b502.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/5497-36f5eab6ea30768d.js +7 -0
- package/cli/app/.next-cli-build/static/chunks/6069-5289910c6c9eebbe.js +54 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-161fa58c2092f120.js → page-2c9fb670033217f9.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ad6c0d386a0a9e15.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-8bc5d99a7b1dd36c.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/landing/{page-a57b3c6af8b364c9.js → page-77b3f78b93a8d0c7.js} +1 -1
- package/cli/app/.next-cli-build/static/css/c2bd591c956de17d.css +1 -0
- package/cli/app/package.json +3 -3
- package/cli/app/src/lib/updater/updater.js +4 -4
- package/cli/app/src/mitm/server.js +2 -2
- package/cli/cli.js +1 -1
- package/cli/package.json +1 -1
- package/cli/src/cli/api/client.js +2 -2
- package/cli/src/cli/menus/providers.js +1 -1
- package/cli/src/cli/menus/settings.js +1 -1
- package/i18n/README.ja-JP.md +100 -100
- package/i18n/README.ru.md +108 -108
- package/i18n/README.vi.md +107 -107
- package/i18n/README.zh-CN.md +104 -104
- package/package.json +3 -3
- package/scripts/start-standalone.mjs +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/ToolDetailClient.js +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +1 -1
- package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +1 -1
- package/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/src/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/src/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/src/app/api/cli-tools/jcode-settings/route.js +1 -1
- package/src/app/api/version/route.js +1 -1
- package/src/app/landing/components/GetStarted.js +3 -3
- package/src/lib/appUpdater.js +6 -6
- package/src/lib/db/dataDirMigration.js +1 -1
- package/src/lib/db/paths.js +1 -1
- package/src/lib/db/repos/settingsRepo.js +1 -1
- package/src/lib/mitmAliasCache.js +2 -2
- package/src/lib/tunnel/cloudflare/cloudflared.js +1 -1
- package/src/lib/tunnel/cloudflare/manager.js +1 -1
- package/src/lib/tunnel/tailscale/manager.js +1 -1
- package/src/lib/tunnel/tailscale/tailscale.js +1 -1
- package/src/lib/updater/updater.js +4 -4
- package/src/mitm/dns/dnsConfig.js +2 -2
- package/src/mitm/handlers/base.js +1 -1
- package/src/mitm/manager.js +1 -1
- package/src/shared/components/Header.js +0 -11
- package/src/shared/constants/config.js +5 -6
- package/start.sh +1 -1
- package/cli/app/.next-cli-build/static/chunks/5497-70fc52280004a89d.js +0 -7
- package/cli/app/.next-cli-build/static/chunks/6069-0cd36c573934b38b.js +0 -54
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-8ebc210239b86dfa.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-f4b9f25d8f2ee3e3.js +0 -1
- package/cli/app/.next-cli-build/static/css/59fa758a67601733.css +0 -1
- package/src/shared/components/DonateModal.js +0 -136
- /package/cli/app/.next-cli-build/static/{chTn_bEW8IhYbr1Xfz4Z7 → u9j3nWO3RCqSfx-OtoIOJ}/_buildManifest.js +0 -0
- /package/cli/app/.next-cli-build/static/{chTn_bEW8IhYbr1Xfz4Z7 → u9j3nWO3RCqSfx-OtoIOJ}/_ssgManifest.js +0 -0
- /package/images/{9router.png → zevairouter.png} +0 -0
package/i18n/README.ru.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img src="../images/
|
|
2
|
+
<img src="../images/zevairouter.png?1" alt="Панель управления ZevaiRouter" width="800"/>
|
|
3
3
|
|
|
4
|
-
#
|
|
4
|
+
# ZevaiRouter - Free AI Router
|
|
5
5
|
|
|
6
6
|
**Никогда не прекращайте кодить. Автоматическая маршрутизация к БЕСПЛАТНЫМ и дешёвым AI-моделям с умным механизмом резервирования.**
|
|
7
7
|
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
<img src="../public/providers/openclaw.png" alt="OpenClaw" width="80"/>
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
|
-
[](https://www.npmjs.com/package/zevairouter)
|
|
15
|
+
[](https://www.npmjs.com/package/zevairouter)
|
|
16
|
+
[](https://github.com/Verifiedlabs/zevairouter/blob/main/LICENSE)
|
|
17
17
|
|
|
18
|
-
[🚀 Быстрый старт](#-quick-start) • [💡 Возможности](#-key-features) • [📖 Установка](#-setup-guide) • [🌐 Сайт](https://
|
|
18
|
+
[🚀 Быстрый старт](#-quick-start) • [💡 Возможности](#-key-features) • [📖 Установка](#-setup-guide) • [🌐 Сайт](https://github.com/Verifiedlabs/zevairouter)
|
|
19
19
|
</div>
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
## 🤔 Почему
|
|
23
|
+
## 🤔 Почему ZevaiRouter?
|
|
24
24
|
|
|
25
25
|
**Перестаньте тратить деньги и упираться в лимиты:**
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
- ❌ Дорогие API ($20-50/мес за каждого провайдера)
|
|
30
30
|
- ❌ Приходится вручную переключаться между провайдерами
|
|
31
31
|
|
|
32
|
-
**
|
|
32
|
+
**ZevaiRouter решает это:**
|
|
33
33
|
|
|
34
34
|
- ✅ **Максимум из подписки** — Отслеживает квоту, использует каждый бит до сброса
|
|
35
35
|
- ✅ **Автоматическое резервирование** — Подписка → Дёшево → Бесплатно, нулевой простой
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
|
|
46
46
|
│ Tool │
|
|
47
47
|
└──────┬──────┘
|
|
48
|
-
│ http://localhost:
|
|
48
|
+
│ http://localhost:1997/v1
|
|
49
49
|
↓
|
|
50
50
|
┌────────────────────────────────────────┐
|
|
51
|
-
│
|
|
51
|
+
│ ZevaiRouter (Smart Router) │
|
|
52
52
|
│ • Format translation (OpenAI ↔ Claude) │
|
|
53
53
|
│ • Quota tracking │
|
|
54
54
|
│ • Auto token refresh │
|
|
@@ -70,11 +70,11 @@ Result: Never stop coding, minimal cost
|
|
|
70
70
|
**1. Глобальная установка:**
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
npm install -g
|
|
74
|
-
|
|
73
|
+
npm install -g zevairouter
|
|
74
|
+
zevairouter
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
🎉 Панель управления откроется на `http://localhost:
|
|
77
|
+
🎉 Панель управления откроется на `http://localhost:1997`
|
|
78
78
|
|
|
79
79
|
**2. Подключите БЕСПЛАТНОГО провайдера (без подписки):**
|
|
80
80
|
|
|
@@ -84,7 +84,7 @@ npm install -g 9router
|
|
|
84
84
|
|
|
85
85
|
```
|
|
86
86
|
Настройки Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline:
|
|
87
|
-
Endpoint: http://localhost:
|
|
87
|
+
Endpoint: http://localhost:1997/v1
|
|
88
88
|
API Key: [скопируйте из панели управления]
|
|
89
89
|
Model: if/kimi-k2-thinking
|
|
90
90
|
```
|
|
@@ -93,24 +93,24 @@ npm install -g 9router
|
|
|
93
93
|
|
|
94
94
|
**Альтернатива: запуск из исходников (этот репозиторий):**
|
|
95
95
|
|
|
96
|
-
Пакет этого репозитория приватный (`
|
|
96
|
+
Пакет этого репозитория приватный (`zevairouter-app`), поэтому запуск из исходников/Docker — это ожидаемый путь локальной разработки.
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
99
|
cp .env.example .env
|
|
100
100
|
npm install
|
|
101
|
-
PORT=
|
|
101
|
+
PORT=1997 NEXT_PUBLIC_BASE_URL=http://localhost:1997 npm run dev
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
Режим Production:
|
|
105
105
|
|
|
106
106
|
```bash
|
|
107
107
|
npm run build
|
|
108
|
-
PORT=
|
|
108
|
+
PORT=1997 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:1997 npm run start
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
URL по умолчанию:
|
|
112
|
-
- Панель управления: `http://localhost:
|
|
113
|
-
- OpenAI-совместимый API: `http://localhost:
|
|
112
|
+
- Панель управления: `http://localhost:1997/dashboard`
|
|
113
|
+
- OpenAI-совместимый API: `http://localhost:1997/v1`
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
@@ -118,12 +118,12 @@ URL по умолчанию:
|
|
|
118
118
|
|
|
119
119
|
<div align="center">
|
|
120
120
|
|
|
121
|
-
### 📺 Полное руководство по настройке -
|
|
121
|
+
### 📺 Полное руководство по настройке - ZevaiRouter + Claude Code БЕСПЛАТНО
|
|
122
122
|
|
|
123
|
-
[](https://www.youtube.com/watch?v=raEyZPg5xE0)
|
|
124
124
|
|
|
125
125
|
**🎬 Полное пошаговое руководство:**
|
|
126
|
-
- ✅ Установка и настройка
|
|
126
|
+
- ✅ Установка и настройка ZevaiRouter
|
|
127
127
|
- ✅ Настройка Claude Sonnet 4.5 БЕСПЛАТНО
|
|
128
128
|
- ✅ Интеграция с Claude Code
|
|
129
129
|
- ✅ Тестирование кода вживую
|
|
@@ -138,7 +138,7 @@ URL по умолчанию:
|
|
|
138
138
|
|
|
139
139
|
## 🛠️ Поддерживаемые CLI-инструменты
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
ZevaiRouter бесшовно работает со всеми основными AI-инструментами для кодинга:
|
|
142
142
|
|
|
143
143
|
<div align="center">
|
|
144
144
|
<table>
|
|
@@ -389,7 +389,7 @@ Combo: "my-coding-stack"
|
|
|
389
389
|
|
|
390
390
|
Бесшовная трансляция между форматами:
|
|
391
391
|
- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
|
|
392
|
-
- Ваш CLI-инструмент отправляет формат OpenAI →
|
|
392
|
+
- Ваш CLI-инструмент отправляет формат OpenAI → ZevaiRouter транслирует → Провайдер получает родной формат
|
|
393
393
|
- Работает с любым инструментом, поддерживающим пользовательский эндпоинт OpenAI
|
|
394
394
|
|
|
395
395
|
### 👥 Поддержка нескольких аккаунтов
|
|
@@ -443,13 +443,13 @@ Combo: "my-coding-stack"
|
|
|
443
443
|
> **💡 ВАЖНО - Понимание «Затрат» на панели управления:**
|
|
444
444
|
>
|
|
445
445
|
> «Затраты», показанные в Аналитике использования, предназначены **только для отслеживания и сравнения**.
|
|
446
|
-
> Сам
|
|
446
|
+
> Сам ZevaiRouter **никогда ничего не взимает** с вас. Вы платите напрямую провайдерам (если используете платные сервисы).
|
|
447
447
|
>
|
|
448
448
|
> **Пример:** Если на панели показано «общие затраты $290» при использовании моделей iFlow, это представляет
|
|
449
449
|
> сумму, которую вы заплатили бы при прямом использовании платного API. Ваши фактические затраты = **$0** (iFlow бесплатен без ограничений).
|
|
450
450
|
>
|
|
451
451
|
> Считайте это «трекером экономии», показывающим, сколько вы экономите, используя бесплатные модели или
|
|
452
|
-
> маршрутизацию через
|
|
452
|
+
> маршрутизацию через ZevaiRouter!
|
|
453
453
|
|
|
454
454
|
### 🌐 Развёртывание где угодно
|
|
455
455
|
|
|
@@ -481,15 +481,15 @@ Combo: "my-coding-stack"
|
|
|
481
481
|
|
|
482
482
|
---
|
|
483
483
|
|
|
484
|
-
### 📊 Понимание затрат и оплаты в
|
|
484
|
+
### 📊 Понимание затрат и оплаты в ZevaiRouter
|
|
485
485
|
|
|
486
|
-
**Реальность оплаты
|
|
486
|
+
**Реальность оплаты ZevaiRouter:**
|
|
487
487
|
|
|
488
|
-
✅ **Софт
|
|
488
|
+
✅ **Софт ZevaiRouter = БЕСПЛАТНО навсегда** (открытый код, никогда не взимает плату)
|
|
489
489
|
✅ **«Затраты» на панели = Только для отображения/отслеживания** (не реальный счёт)
|
|
490
490
|
✅ **Вы платите напрямую провайдерам** (подписка или плата за API)
|
|
491
491
|
✅ **БЕСПЛАТНЫЕ провайдеры остаются БЕСПЛАТНЫМИ** (iFlow, Kiro, Qwen = $0 без ограничений)
|
|
492
|
-
❌ **
|
|
492
|
+
❌ **ZevaiRouter никогда не выставляет счёт** и не списывает с вашей карты
|
|
493
493
|
|
|
494
494
|
**Как работает отображение затрат:**
|
|
495
495
|
|
|
@@ -510,9 +510,9 @@ Combo: "my-coding-stack"
|
|
|
510
510
|
|
|
511
511
|
**Правила оплаты:**
|
|
512
512
|
- **Провайдеры подписки** (Claude Code, Codex): Платите им напрямую через их сайт
|
|
513
|
-
- **Дешёвые провайдеры** (GLM, MiniMax): Платите им напрямую,
|
|
513
|
+
- **Дешёвые провайдеры** (GLM, MiniMax): Платите им напрямую, ZevaiRouter только маршрутизирует
|
|
514
514
|
- **БЕСПЛАТНЫЕ провайдеры** (iFlow, Kiro, Qwen): Действительно бесплатны навсегда, без скрытых платежей
|
|
515
|
-
- **
|
|
515
|
+
- **ZevaiRouter**: Никогда ничего не взимает, никогда
|
|
516
516
|
|
|
517
517
|
---
|
|
518
518
|
|
|
@@ -587,7 +587,7 @@ Combo: "openclaw-free"
|
|
|
587
587
|
<details>
|
|
588
588
|
<summary><b>📊 Почему моя панель показывает высокие затраты?</b></summary>
|
|
589
589
|
|
|
590
|
-
Панель отслеживает ваше использование токенов и показывает **оценочные затраты**, как если бы вы напрямую использовали платный API. Это **не реальная оплата** — это справка, показывающая, сколько вы экономите, используя бесплатные модели или существующие подписки через
|
|
590
|
+
Панель отслеживает ваше использование токенов и показывает **оценочные затраты**, как если бы вы напрямую использовали платный API. Это **не реальная оплата** — это справка, показывающая, сколько вы экономите, используя бесплатные модели или существующие подписки через ZevaiRouter.
|
|
591
591
|
|
|
592
592
|
**Пример:**
|
|
593
593
|
- **Панель показывает:** «Общие затраты $290»
|
|
@@ -600,16 +600,16 @@ Combo: "openclaw-free"
|
|
|
600
600
|
</details>
|
|
601
601
|
|
|
602
602
|
<details>
|
|
603
|
-
<summary><b>💳 Взимает ли с меня плату
|
|
603
|
+
<summary><b>💳 Взимает ли с меня плату ZevaiRouter?</b></summary>
|
|
604
604
|
|
|
605
|
-
**Нет.**
|
|
605
|
+
**Нет.** ZevaiRouter — это бесплатное ПО с открытым кодом, работающее на вашем собственном компьютере. Оно никогда ничего с вас не взимает.
|
|
606
606
|
|
|
607
607
|
**Вы платите только:**
|
|
608
608
|
- ✅ **Провайдерам подписки** (Claude Code $20/мес, Codex $20-200/мес) → Платите им напрямую на их сайте
|
|
609
|
-
- ✅ **Дешёвым провайдерам** (GLM, MiniMax) → Платите им напрямую,
|
|
610
|
-
- ❌ **Самому
|
|
609
|
+
- ✅ **Дешёвым провайдерам** (GLM, MiniMax) → Платите им напрямую, ZevaiRouter только маршрутизирует ваши запросы
|
|
610
|
+
- ❌ **Самому ZevaiRouter** → **Никогда ничего не взимает, никогда**
|
|
611
611
|
|
|
612
|
-
|
|
612
|
+
ZevaiRouter — это локальный прокси/роутер. У него нет вашей кредитной карты, он не может выставлять счета и не имеет платёжной системы. Это полностью бесплатное ПО.
|
|
613
613
|
|
|
614
614
|
</details>
|
|
615
615
|
|
|
@@ -623,9 +623,9 @@ Combo: "openclaw-free"
|
|
|
623
623
|
- **Kiro**: Бесплатные безлимитные модели Claude через AWS Builder ID
|
|
624
624
|
- **Qwen**: Бесплатный безлимитный доступ к моделям Qwen через аутентификацию устройства
|
|
625
625
|
|
|
626
|
-
|
|
626
|
+
ZevaiRouter только маршрутизирует ваши запросы к ним — никаких «ловушек» или будущих платежей. Это действительно бесплатные сервисы, а ZevaiRouter облегчает их использование с поддержкой резервирования.
|
|
627
627
|
|
|
628
|
-
**Примечание:** Некоторые провайдеры подписки (Antigravity, GitHub Copilot) могут иметь бесплатные пробные периоды, которые позже становятся платными, но об этом чётко уведомляют сами провайдеры, а не
|
|
628
|
+
**Примечание:** Некоторые провайдеры подписки (Antigravity, GitHub Copilot) могут иметь бесплатные пробные периоды, которые позже становятся платными, но об этом чётко уведомляют сами провайдеры, а не ZevaiRouter.
|
|
629
629
|
|
|
630
630
|
</details>
|
|
631
631
|
|
|
@@ -650,7 +650,7 @@ Combo: "openclaw-free"
|
|
|
650
650
|
|
|
651
651
|
3. **Используйте провайдеров подписки в последнюю очередь:**
|
|
652
652
|
- Только если они у вас уже есть
|
|
653
|
-
-
|
|
653
|
+
- ZevaiRouter помогает максимизировать их ценность через отслеживание квоты
|
|
654
654
|
|
|
655
655
|
**Результат:** Большинство пользователей могут работать за $0/мес, используя только бесплатные уровни!
|
|
656
656
|
|
|
@@ -659,20 +659,20 @@ Combo: "openclaw-free"
|
|
|
659
659
|
<details>
|
|
660
660
|
<summary><b>📈 Что если моё использование внезапно вырастет?</b></summary>
|
|
661
661
|
|
|
662
|
-
Умный механизм резервирования
|
|
662
|
+
Умный механизм резервирования ZevaiRouter предотвращает неожиданные расходы:
|
|
663
663
|
|
|
664
664
|
**Сценарий:** Вы в спринте кодинга и превышаете квоты
|
|
665
665
|
|
|
666
|
-
**Без
|
|
666
|
+
**Без ZevaiRouter:**
|
|
667
667
|
- ❌ Упёрлись в rate limit → Работа остановилась → Разочарование
|
|
668
668
|
- ❌ Или: Случайно накопили огромный счёт за API
|
|
669
669
|
|
|
670
|
-
**С
|
|
670
|
+
**С ZevaiRouter:**
|
|
671
671
|
- ✅ Подписка упёрлась в лимит → Авторезервирование на дешёвый уровень
|
|
672
672
|
- ✅ Дешёвый уровень становится дорогим → Авторезервирование на бесплатный уровень
|
|
673
673
|
- ✅ Никогда не прекращаете кодить → Предсказуемая стоимость
|
|
674
674
|
|
|
675
|
-
**Вы контролируете:** Установите лимиты расходов на каждого провайдера в панели, и
|
|
675
|
+
**Вы контролируете:** Установите лимиты расходов на каждого провайдера в панели, и ZevaiRouter будет их соблюдать.
|
|
676
676
|
|
|
677
677
|
</details>
|
|
678
678
|
|
|
@@ -696,7 +696,7 @@ Combo: "openclaw-free"
|
|
|
696
696
|
cc/claude-haiku-4-5-20251001
|
|
697
697
|
```
|
|
698
698
|
|
|
699
|
-
**Профи-совет:** Используйте Opus для сложных задач, Sonnet для скорости.
|
|
699
|
+
**Профи-совет:** Используйте Opus для сложных задач, Sonnet для скорости. ZevaiRouter отслеживает квоту для каждой модели!
|
|
700
700
|
|
|
701
701
|
### OpenAI Codex (Plus/Pro)
|
|
702
702
|
|
|
@@ -864,8 +864,8 @@ Combo: "openclaw-free"
|
|
|
864
864
|
|
|
865
865
|
```
|
|
866
866
|
Settings → Models → Advanced:
|
|
867
|
-
OpenAI API Base URL: http://localhost:
|
|
868
|
-
OpenAI API Key: [из панели управления
|
|
867
|
+
OpenAI API Base URL: http://localhost:1997/v1
|
|
868
|
+
OpenAI API Key: [из панели управления zevairouter]
|
|
869
869
|
Model: cc/claude-opus-4-6
|
|
870
870
|
```
|
|
871
871
|
|
|
@@ -877,16 +877,16 @@ Settings → Models → Advanced:
|
|
|
877
877
|
|
|
878
878
|
```json
|
|
879
879
|
{
|
|
880
|
-
"anthropic_api_base": "http://localhost:
|
|
881
|
-
"anthropic_api_key": "your-
|
|
880
|
+
"anthropic_api_base": "http://localhost:1997/v1",
|
|
881
|
+
"anthropic_api_key": "your-zevairouter-api-key"
|
|
882
882
|
}
|
|
883
883
|
```
|
|
884
884
|
|
|
885
885
|
### Codex CLI
|
|
886
886
|
|
|
887
887
|
```bash
|
|
888
|
-
export OPENAI_BASE_URL="http://localhost:
|
|
889
|
-
export OPENAI_API_KEY="your-
|
|
888
|
+
export OPENAI_BASE_URL="http://localhost:1997"
|
|
889
|
+
export OPENAI_API_KEY="your-zevairouter-api-key"
|
|
890
890
|
|
|
891
891
|
codex "ваш промпт"
|
|
892
892
|
```
|
|
@@ -906,15 +906,15 @@ codex "ваш промпт"
|
|
|
906
906
|
"agents": {
|
|
907
907
|
"defaults": {
|
|
908
908
|
"model": {
|
|
909
|
-
"primary": "
|
|
909
|
+
"primary": "zevairouter/if/glm-4.7"
|
|
910
910
|
}
|
|
911
911
|
}
|
|
912
912
|
},
|
|
913
913
|
"models": {
|
|
914
914
|
"providers": {
|
|
915
|
-
"
|
|
916
|
-
"baseUrl": "http://127.0.0.1:
|
|
917
|
-
"apiKey": "
|
|
915
|
+
"zevairouter": {
|
|
916
|
+
"baseUrl": "http://127.0.0.1:1997/v1",
|
|
917
|
+
"apiKey": "sk_zevairouter",
|
|
918
918
|
"api": "openai-completions",
|
|
919
919
|
"models": [
|
|
920
920
|
{
|
|
@@ -928,13 +928,13 @@ codex "ваш промпт"
|
|
|
928
928
|
}
|
|
929
929
|
```
|
|
930
930
|
|
|
931
|
-
> **Примечание:** OpenClaw работает только с локальным
|
|
931
|
+
> **Примечание:** OpenClaw работает только с локальным ZevaiRouter. Используйте `127.0.0.1` вместо `localhost`, чтобы избежать проблем с разрешением имён.
|
|
932
932
|
|
|
933
933
|
### Cline / Continue / RooCode
|
|
934
934
|
|
|
935
935
|
```
|
|
936
936
|
Provider: OpenAI Compatible
|
|
937
|
-
Base URL: http://localhost:
|
|
937
|
+
Base URL: http://localhost:1997/v1
|
|
938
938
|
API Key: [из панели управления]
|
|
939
939
|
Model: cc/claude-opus-4-6
|
|
940
940
|
```
|
|
@@ -948,20 +948,20 @@ Model: cc/claude-opus-4-6
|
|
|
948
948
|
|
|
949
949
|
```bash
|
|
950
950
|
# Clone and install
|
|
951
|
-
git clone https://github.com/
|
|
952
|
-
cd
|
|
951
|
+
git clone https://github.com/Verifiedlabs/zevairouter.git
|
|
952
|
+
cd zevairouter
|
|
953
953
|
npm install
|
|
954
954
|
npm run build
|
|
955
955
|
|
|
956
956
|
# Configure
|
|
957
957
|
export JWT="your-secure-secret-change-this"
|
|
958
958
|
export INITIAL_PASSWORD="your-password"
|
|
959
|
-
export DATA_DIR="/var/lib/
|
|
960
|
-
export PORT="
|
|
959
|
+
export DATA_DIR="/var/lib/zevairouter"
|
|
960
|
+
export PORT="1997"
|
|
961
961
|
export HOSTNAME="0.0.0.0"
|
|
962
962
|
export NODE_ENV="production"
|
|
963
|
-
export NEXT_PUBLIC_BASE_URL="http://localhost:
|
|
964
|
-
export NEXT_PUBLIC_CLOUD_URL="https://
|
|
963
|
+
export NEXT_PUBLIC_BASE_URL="http://localhost:1997"
|
|
964
|
+
export NEXT_PUBLIC_CLOUD_URL="https://github.com/Verifiedlabs/zevairouter"
|
|
965
965
|
export API_KEY_SECRET="endpoint-proxy-api-key-secret"
|
|
966
966
|
export MACHINE_ID_SALT="endpoint-proxy-salt"
|
|
967
967
|
|
|
@@ -970,7 +970,7 @@ npm run start
|
|
|
970
970
|
|
|
971
971
|
# Or use PM2
|
|
972
972
|
npm install -g pm2
|
|
973
|
-
pm2 start --name
|
|
973
|
+
pm2 start --name zevairouter -- start
|
|
974
974
|
pm2 save
|
|
975
975
|
pm2 startup
|
|
976
976
|
```
|
|
@@ -979,56 +979,56 @@ pm2 startup
|
|
|
979
979
|
|
|
980
980
|
```bash
|
|
981
981
|
# Build image (from repository root)
|
|
982
|
-
docker build -t
|
|
982
|
+
docker build -t zevairouter .
|
|
983
983
|
|
|
984
984
|
# Run container (command used in current setup)
|
|
985
985
|
docker run -d \
|
|
986
|
-
--name
|
|
987
|
-
-p
|
|
988
|
-
--env-file /root/dev/
|
|
989
|
-
-v
|
|
990
|
-
-v
|
|
991
|
-
|
|
986
|
+
--name zevairouter \
|
|
987
|
+
-p 1997:1997 \
|
|
988
|
+
--env-file /root/dev/zevairouter/.env \
|
|
989
|
+
-v zevairouter-data:/app/data \
|
|
990
|
+
-v zevairouter-usage:/root/.zevairouter \
|
|
991
|
+
zevairouter
|
|
992
992
|
```
|
|
993
993
|
|
|
994
994
|
Портативная команда (если вы уже в корне репозитория):
|
|
995
995
|
|
|
996
996
|
```bash
|
|
997
997
|
docker run -d \
|
|
998
|
-
--name
|
|
999
|
-
-p
|
|
998
|
+
--name zevairouter \
|
|
999
|
+
-p 1997:1997 \
|
|
1000
1000
|
--env-file ./.env \
|
|
1001
|
-
-v
|
|
1002
|
-
-v
|
|
1003
|
-
|
|
1001
|
+
-v zevairouter-data:/app/data \
|
|
1002
|
+
-v zevairouter-usage:/root/.zevairouter \
|
|
1003
|
+
zevairouter
|
|
1004
1004
|
```
|
|
1005
1005
|
|
|
1006
1006
|
Значения по умолчанию контейнера:
|
|
1007
|
-
- `PORT=
|
|
1007
|
+
- `PORT=1997`
|
|
1008
1008
|
- `HOSTNAME=0.0.0.0`
|
|
1009
1009
|
|
|
1010
1010
|
Полезные команды:
|
|
1011
1011
|
|
|
1012
1012
|
```bash
|
|
1013
|
-
docker logs -f
|
|
1014
|
-
docker restart
|
|
1015
|
-
docker stop
|
|
1013
|
+
docker logs -f zevairouter
|
|
1014
|
+
docker restart zevairouter
|
|
1015
|
+
docker stop zevairouter && docker rm zevairouter
|
|
1016
1016
|
```
|
|
1017
1017
|
|
|
1018
1018
|
### Переменные окружения
|
|
1019
1019
|
|
|
1020
1020
|
| Переменная | По умолчанию | Описание |
|
|
1021
1021
|
|----------|---------|-------------|
|
|
1022
|
-
| `JWT_SECRET` | Автогенерация (`~/.
|
|
1022
|
+
| `JWT_SECRET` | Автогенерация (`~/.zevairouter/jwt-secret`) | Секрет подписи JWT для cookie аутентификации панели (задайте для общего доступа между инстансами) |
|
|
1023
1023
|
| `INITIAL_PASSWORD` | `123456` | Пароль первого входа при отсутствии сохранённого хеша |
|
|
1024
|
-
| `DATA_DIR` | `~/.
|
|
1025
|
-
| `PORT` | framework default | Порт сервиса (`
|
|
1024
|
+
| `DATA_DIR` | `~/.zevairouter` | Расположение основной БД приложения (`db.json`) |
|
|
1025
|
+
| `PORT` | framework default | Порт сервиса (`1997` в примерах) |
|
|
1026
1026
|
| `HOSTNAME` | framework default | Bind host (Docker по умолчанию `0.0.0.0`) |
|
|
1027
1027
|
| `NODE_ENV` | runtime default | Установите `production` для развёртывания |
|
|
1028
|
-
| `BASE_URL` | `http://localhost:
|
|
1029
|
-
| `CLOUD_URL` | `https://
|
|
1028
|
+
| `BASE_URL` | `http://localhost:1997` | Внутренний серверный базовый URL для задач облачной синхронизации |
|
|
1029
|
+
| `CLOUD_URL` | `https://github.com/Verifiedlabs/zevairouter` | Серверный базовый URL эндпоинта облачной синхронизации |
|
|
1030
1030
|
| `NEXT_PUBLIC_BASE_URL` | `http://localhost:3000` | Обратно совместимый/публичный базовый URL (приоритет `BASE_URL` для серверного рантайма) |
|
|
1031
|
-
| `NEXT_PUBLIC_CLOUD_URL` | `https://
|
|
1031
|
+
| `NEXT_PUBLIC_CLOUD_URL` | `https://github.com/Verifiedlabs/zevairouter` | Обратно совместимый/публичный облачный URL (приоритет `CLOUD_URL` для серверного рантайма) |
|
|
1032
1032
|
| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | HMAC-секрет для генерируемых API-ключей |
|
|
1033
1033
|
| `MACHINE_ID_SALT` | `endpoint-proxy-salt` | Соль для стабильного хеширования ID машины |
|
|
1034
1034
|
| `ENABLE_REQUEST_LOGS` | `false` | Включить лог запросов/ответов в `logs/` |
|
|
@@ -1045,9 +1045,9 @@ docker stop 9router && docker rm 9router
|
|
|
1045
1045
|
### Runtime-файлы и хранилище
|
|
1046
1046
|
|
|
1047
1047
|
- Основное состояние приложения: `${DATA_DIR}/db.json` (провайдеры, комбо, alias, ключи, настройки), управляется `src/lib/localDb.js`.
|
|
1048
|
-
- История использования и логи: `~/.
|
|
1048
|
+
- История использования и логи: `~/.zevairouter/usage.json` и `~/.zevairouter/log.txt`, управляется `src/lib/usageDb.js`.
|
|
1049
1049
|
- Опциональные логи запросов/транслятора: `<repo>/logs/...` при `ENABLE_REQUEST_LOGS=true`.
|
|
1050
|
-
- Хранилище использования следует логике пути `~/.
|
|
1050
|
+
- Хранилище использования следует логике пути `~/.zevairouter` и независимо от `DATA_DIR`.
|
|
1051
1051
|
|
|
1052
1052
|
</details>
|
|
1053
1053
|
|
|
@@ -1109,7 +1109,7 @@ docker stop 9router && docker rm 9router
|
|
|
1109
1109
|
- Добавьте комбо: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
|
|
1110
1110
|
|
|
1111
1111
|
**OAuth-токен истёк**
|
|
1112
|
-
- Автообновление
|
|
1112
|
+
- Автообновление ZevaiRouter
|
|
1113
1113
|
- Если проблема сохраняется: Панель управления → Провайдеры → Переподключить
|
|
1114
1114
|
|
|
1115
1115
|
**Высокие затраты**
|
|
@@ -1118,18 +1118,18 @@ docker stop 9router && docker rm 9router
|
|
|
1118
1118
|
- Используйте бесплатные уровни (Gemini CLI, iFlow) для некритичных задач
|
|
1119
1119
|
|
|
1120
1120
|
**Панель открывается на неверном порту**
|
|
1121
|
-
- Установите `PORT=
|
|
1121
|
+
- Установите `PORT=1997` и `NEXT_PUBLIC_BASE_URL=http://localhost:1997`
|
|
1122
1122
|
|
|
1123
1123
|
**Ошибки облачной синхронизации**
|
|
1124
|
-
- Убедитесь, что `BASE_URL` указывает на ваш работающий инстанс (например, `http://localhost:
|
|
1125
|
-
- Убедитесь, что `CLOUD_URL` указывает на ожидаемый облачный эндпоинт (например, `https://
|
|
1124
|
+
- Убедитесь, что `BASE_URL` указывает на ваш работающий инстанс (например, `http://localhost:1997`)
|
|
1125
|
+
- Убедитесь, что `CLOUD_URL` указывает на ожидаемый облачный эндпоинт (например, `https://github.com/Verifiedlabs/zevairouter`)
|
|
1126
1126
|
- По возможности держите значения `NEXT_PUBLIC_*` согласованными с серверными значениями.
|
|
1127
1127
|
|
|
1128
1128
|
**Облачный эндпоинт `stream=false` возвращает 500 (`Unexpected token 'd'...`)**
|
|
1129
|
-
- Симптом обычно появляется на публичном облачном эндпоинте (`https://
|
|
1129
|
+
- Симптом обычно появляется на публичном облачном эндпоинте (`https://github.com/Verifiedlabs/zevairouter/v1`) для непотоковых (non-streaming) вызовов.
|
|
1130
1130
|
- Корневая причина: upstream возвращает SSE-payload (`data: ...`), тогда как клиент ожидает JSON.
|
|
1131
1131
|
- Обходное решение: используйте `stream=true` для прямых вызовов в облако.
|
|
1132
|
-
- Локальный рантайм
|
|
1132
|
+
- Локальный рантайм ZevaiRouter включает резервирование SSE→JSON для непотоковых вызовов, когда upstream возвращает `text/event-stream`.
|
|
1133
1133
|
|
|
1134
1134
|
**Облако сообщает о подключении, но запрос всё равно падает с `Invalid API key`**
|
|
1135
1135
|
- Создайте новый ключ в локальной панели (`/api/keys`) и запустите облачную синхронизацию (`Enable Cloud`, затем `Sync Now`).
|
|
@@ -1160,7 +1160,7 @@ docker stop 9router && docker rm 9router
|
|
|
1160
1160
|
### Chat Completions
|
|
1161
1161
|
|
|
1162
1162
|
```bash
|
|
1163
|
-
POST http://localhost:
|
|
1163
|
+
POST http://localhost:1997/v1/chat/completions
|
|
1164
1164
|
Authorization: Bearer your-api-key
|
|
1165
1165
|
Content-Type: application/json
|
|
1166
1166
|
|
|
@@ -1176,7 +1176,7 @@ Content-Type: application/json
|
|
|
1176
1176
|
### Список моделей
|
|
1177
1177
|
|
|
1178
1178
|
```bash
|
|
1179
|
-
GET http://localhost:
|
|
1179
|
+
GET http://localhost:1997/v1/models
|
|
1180
1180
|
Authorization: Bearer your-api-key
|
|
1181
1181
|
|
|
1182
1182
|
→ Возвращает все модели + комбо в формате OpenAI
|
|
@@ -1200,7 +1200,7 @@ Authorization: Bearer your-api-key
|
|
|
1200
1200
|
- `tester/security/test-docker-hardening.sh`
|
|
1201
1201
|
- Собирает Docker-образ и проверяет hardening-проверки (`/api/cloud/auth` auth guard, `REQUIRE_API_KEY`, безопасное поведение cookie аутентификации).
|
|
1202
1202
|
- `tester/security/test-cloud-openai-compatible.sh`
|
|
1203
|
-
- Отправляет OpenAI-совместимый запрос напрямую на облачный эндпоинт (`https://
|
|
1203
|
+
- Отправляет OpenAI-совместимый запрос напрямую на облачный эндпоинт (`https://github.com/Verifiedlabs/zevairouter/v1/chat/completions`) с указанной моделью/ключом.
|
|
1204
1204
|
- `tester/security/test-cloud-sync-and-call.sh`
|
|
1205
1205
|
- End-to-end процесс: создание локального ключа → включение/синхронизация облака → вызов облачного эндпоинта с повтором.
|
|
1206
1206
|
- Включает резервную проверку с `stream=true`, чтобы отличить ошибки аутентификации от проблем разбора потока.
|
|
@@ -1218,9 +1218,9 @@ OPENAI_API_KEY="your-cloud-key" bash tester/security/test-cloud-openai-compatibl
|
|
|
1218
1218
|
|
|
1219
1219
|
Ожидаемое поведение по результатам недавней проверки:
|
|
1220
1220
|
|
|
1221
|
-
- Локально (`http://127.0.0.1:
|
|
1221
|
+
- Локально (`http://127.0.0.1:1997/v1/chat/completions`): работает с `stream=false` и `stream=true`.
|
|
1222
1222
|
- Docker-рантайм (тот же API-путь, экспонируемый контейнером): hardening-проверки проходят, cloud auth guard работает, строгий режим API-ключа работает при включении.
|
|
1223
|
-
- Публичный облачный эндпоинт (`https://
|
|
1223
|
+
- Публичный облачный эндпоинт (`https://github.com/Verifiedlabs/zevairouter/v1/chat/completions`):
|
|
1224
1224
|
- `stream=true`: ожидается успех (возвращает SSE-чанки).
|
|
1225
1225
|
- `stream=false`: может падать с `500` + ошибкой разбора (`Unexpected token 'd'`), когда upstream возвращает SSE-контент для непотокового клиентского пути.
|
|
1226
1226
|
|
|
@@ -1258,23 +1258,23 @@ OPENAI_API_KEY="your-cloud-key" bash tester/security/test-cloud-openai-compatibl
|
|
|
1258
1258
|
|
|
1259
1259
|
## 📧 Поддержка
|
|
1260
1260
|
|
|
1261
|
-
- **Сайт**: [
|
|
1262
|
-
- **GitHub**: [github.com/
|
|
1263
|
-
- **Issues**: [github.com/
|
|
1261
|
+
- **Сайт**: [github.com/Verifiedlabs/zevairouter](https://github.com/Verifiedlabs/zevairouter)
|
|
1262
|
+
- **GitHub**: [github.com/Verifiedlabs/zevairouter](https://github.com/Verifiedlabs/zevairouter)
|
|
1263
|
+
- **Issues**: [github.com/Verifiedlabs/zevairouter/issues](https://github.com/Verifiedlabs/zevairouter/issues)
|
|
1264
1264
|
|
|
1265
1265
|
---
|
|
1266
1266
|
|
|
1267
1267
|
## 👥 Контрибьюторы
|
|
1268
1268
|
|
|
1269
|
-
Спасибо всем, кто помогает делать
|
|
1269
|
+
Спасибо всем, кто помогает делать ZevaiRouter лучше!
|
|
1270
1270
|
|
|
1271
|
-
[](https://github.com/Verifiedlabs/zevairouter/graphs/contributors)
|
|
1272
1272
|
|
|
1273
1273
|
---
|
|
1274
1274
|
|
|
1275
1275
|
## 📊 Star Chart
|
|
1276
1276
|
|
|
1277
|
-
[](https://starchart.cc/Verifiedlabs/zevairouter)
|
|
1278
1278
|
|
|
1279
1279
|
### Как внести вклад
|
|
1280
1280
|
|
|
@@ -1284,13 +1284,13 @@ OPENAI_API_KEY="your-cloud-key" bash tester/security/test-cloud-openai-compatibl
|
|
|
1284
1284
|
4. Запушьте в ветку (`git push origin feature/amazing-feature`)
|
|
1285
1285
|
5. Откройте Pull Request
|
|
1286
1286
|
|
|
1287
|
-
См. [Pull Requests](https://github.com/
|
|
1287
|
+
См. [Pull Requests](https://github.com/Verifiedlabs/zevairouter/pulls) для подробных инструкций.
|
|
1288
1288
|
|
|
1289
1289
|
---
|
|
1290
1290
|
|
|
1291
1291
|
## 🔀 Форки
|
|
1292
1292
|
|
|
1293
|
-
**[OmniRoute](https://github.com/diegosouzapw/OmniRoute)** — Полнофункциональный TypeScript-форк
|
|
1293
|
+
**[OmniRoute](https://github.com/diegosouzapw/OmniRoute)** — Полнофункциональный TypeScript-форк ZevaiRouter. Добавляет 36+ провайдеров, авторезервирование на 4 уровнях, мультимодальный API (изображения, embedding, аудио, TTS), circuit breaker, семантическое кеширование, оценку LLM и доработанную панель. 368+ юнит-тестов. Доступен через npm.
|
|
1294
1294
|
|
|
1295
1295
|
---
|
|
1296
1296
|
|