zevairouter 1.0.142 → 1.0.143
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/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +11 -11
- package/cli/app/.next-cli-build/build-manifest.json +3 -3
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
- 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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +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 +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +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/context/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +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.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +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 +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/playground/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/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.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +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/pxpipe/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +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/terminal/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +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.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +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.js.nft.json +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.js +2 -2
- package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +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 +5 -5
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- 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/cache/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +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.nft.json +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/claude-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/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/codex-settings/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-mcp-registry/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/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/deepseek-tui-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +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/context/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/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/locale/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/media-providers/tts/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/metrics/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.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/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/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/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/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/auto-import/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/auto-import/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-authorize/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/provider-nodes/validate/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.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/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/kilo/free-models/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/suggested-models/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/pxpipe/health/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/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/proxy-test/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/shutdown/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/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/route.js.nft.json +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/console-logs/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +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/aggregate/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/audio/voices/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/count_tokens/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/info/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/v1beta/models/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/route.js.nft.json +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.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page.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 +5 -5
- package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +3 -3
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +3 -3
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +3 -3
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +3 -3
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +3 -3
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +3 -3
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- 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 +8 -8
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -3
- 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/token-saver.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.html +1 -1
- package/cli/app/.next-cli-build/server/app/index.rsc +5 -5
- 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 +5 -5
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +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 +6 -6
- package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +3 -3
- 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.js +1 -1
- package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +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 +6 -6
- package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- 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 +5 -5
- package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +3 -3
- 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/manifest.webmanifest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/page.js.nft.json +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 +11 -11
- package/cli/app/.next-cli-build/server/chunks/3155.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/5189.js +66 -0
- package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/8242.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/9071.js +1 -0
- package/cli/app/.next-cli-build/server/chunks/9621.js +1 -0
- package/cli/app/.next-cli-build/server/middleware-build-manifest.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/3745-7e7bb6aaf8a63e86.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/523-078802482e95c757.js +3 -0
- package/cli/app/.next-cli-build/static/chunks/5497-bdcd991813da7f3d.js +7 -0
- package/cli/app/.next-cli-build/static/chunks/620-d349e71d9ce49f85.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/9802-1969f16a588b05f6.js +66 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/{page-d55c4e337a98302a.js → page-bf069c081a5ae279.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-b9e61d29da8941f7.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-2361fd82cdac58f9.js → page-f16310d2b403445e.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-0186f028c4f68aa9.js → page-27b7575d0d2d59fa.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-81c25ef219dfc38b.js → page-92aed83e0b2aba47.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-b055dfe6fb0c0172.js → page-eb2a18df1f1f3808.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/context/{page-fb93d56bfaccdc19.js → page-86fa4f45899539b7.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-9762b5d12b9faca6.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-eb43268c6d46f931.js → page-a35d16eda369d68e.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-7b6e1ef525e44bd1.js → page-5317928a78e74942.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-85e7b6f5b4af1dd4.js → page-e7989e6397c3cd28.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-29893b095259085d.js → page-72eb287b8ed78360.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-c03ae64868d6bc4d.js → page-81eaa9fe75830559.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-93b75c738ae813fe.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-35b97573fd86a9fb.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-3daabb58a77d3b0d.js → page-ceb414eddc31fbfc.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-d2cd046c2bea1692.js → page-4f6f0b7c3b3da037.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-c38381db33d5aafc.js → page-8692640e1920d5fd.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-2cedde97aaf3c729.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-eb11e852f7a314c9.js → page-9e3ac0e62a8bba94.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-f1c47c7778f23895.js → page-95719c850f15a0cd.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-ac445dab96ac6223.js → page-6050ac2547c62b54.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/terminal/{page-a3689f5a124bc27a.js → page-e08897cf6cbe1b49.js} +3 -3
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-26d372726ae6df38.js → page-8b89eccb0440a492.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-a408f0954e4812ab.js → page-7027d915ac07c723.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-2de7b12af94b8721.js → page-bc3ada97fab644b3.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-2ae824d2d09c81ea.js → layout-59c5060c7f023ab8.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/landing/page-06b42dda19642072.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/layout-f01c49fcec50ff21.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/login/{page-b5822dd005b1f5c2.js → page-9ea3f794879db097.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/{webpack-948b910ed7afd0b8.js → webpack-99944d59834ca8f9.js} +1 -1
- package/cli/app/.next-cli-build/static/css/{f0a349c70ab9fca8.css → 081a0afca5a9bd20.css} +1 -1
- package/cli/app/.next-cli-build/static/css/0f044621c3f6b6c6.css +1 -0
- package/cli/app/package.json +1 -1
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +80 -55
- package/src/app/(dashboard)/dashboard/providers/page.js +140 -58
- package/src/app/(dashboard)/dashboard/usage/components/OverviewCards.js +72 -25
- package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.js +39 -28
- package/src/app/(dashboard)/dashboard/usage/components/UsageChart.js +27 -14
- package/src/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/src/app/globals.css +59 -48
- package/src/app/landing/components/HeroSection.js +31 -6
- package/src/app/landing/components/Navigation.js +14 -9
- package/src/app/layout.js +0 -1
- package/src/shared/components/Button.js +3 -3
- package/src/shared/components/Header.js +21 -17
- package/src/shared/components/SegmentedControl.js +2 -2
- package/src/shared/components/Sidebar.js +52 -69
- package/src/shared/components/UsageStats.js +14 -7
- package/cli/app/.next-cli-build/server/chunks/4491.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/6269.js +0 -1
- package/cli/app/.next-cli-build/server/chunks/9476.js +0 -66
- package/cli/app/.next-cli-build/static/chunks/4343-ccad00872974a61b.js +0 -66
- package/cli/app/.next-cli-build/static/chunks/523-dd1081e3c6074114.js +0 -3
- package/cli/app/.next-cli-build/static/chunks/5242-bb1a1a7ec3bfb62f.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/5497-471618863a988f25.js +0 -7
- package/cli/app/.next-cli-build/static/chunks/85-527f8960e00da0e4.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-fa9d3452d69f2fc7.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-09e6213a0742752b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-fd2453044462eb4f.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-13833a8f417b8d7e.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-5ab697596491a658.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/landing/page-a5bcf36367dce737.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/layout-2aaca42ecdf3a056.js +0 -1
- package/cli/app/.next-cli-build/static/css/62b104778c7fb066.css +0 -1
- /package/cli/app/.next-cli-build/static/{v3XjbfP9HOIoFNp8g293E → wIIWddjvOxdnEAnkATMEo}/_buildManifest.js +0 -0
- /package/cli/app/.next-cli-build/static/{v3XjbfP9HOIoFNp8g293E → wIIWddjvOxdnEAnkATMEo}/_ssgManifest.js +0 -0
|
@@ -833,14 +833,21 @@ export default function APIPageClient({ machineId }) {
|
|
|
833
833
|
return (
|
|
834
834
|
<div className="flex flex-col gap-6 lg:gap-7">
|
|
835
835
|
{/* Endpoint Card */}
|
|
836
|
-
<Card>
|
|
837
|
-
<
|
|
838
|
-
<span className="material-symbols-outlined text-primary">
|
|
839
|
-
|
|
840
|
-
|
|
836
|
+
<Card padding="none">
|
|
837
|
+
<div className="flex items-center gap-3 rounded-t-[13px] border-b border-border-subtle bg-linear-to-r from-primary/[0.07] via-primary/[0.025] to-transparent px-4 py-4 sm:px-5">
|
|
838
|
+
<span className="material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/12 text-[22px] text-primary ring-1 ring-primary/15">
|
|
839
|
+
terminal
|
|
840
|
+
</span>
|
|
841
|
+
<div>
|
|
842
|
+
<h2 className="text-lg font-semibold leading-tight">API Endpoint</h2>
|
|
843
|
+
<p className="mt-0.5 text-xs text-text-muted">Choose how local and remote clients connect to Zevai Router.</p>
|
|
844
|
+
</div>
|
|
845
|
+
</div>
|
|
846
|
+
|
|
847
|
+
<div className="p-4 sm:p-5">
|
|
841
848
|
|
|
842
849
|
{/* Endpoint rows */}
|
|
843
|
-
<div className="flex flex-col gap-
|
|
850
|
+
<div className="flex flex-col gap-3">
|
|
844
851
|
{/* Local */}
|
|
845
852
|
<EndpointRow
|
|
846
853
|
label="Local"
|
|
@@ -850,13 +857,13 @@ export default function APIPageClient({ machineId }) {
|
|
|
850
857
|
onCopy={copy}
|
|
851
858
|
/>
|
|
852
859
|
{/* Cloudflare Tunnel */}
|
|
853
|
-
<div className="
|
|
854
|
-
<span className={`
|
|
860
|
+
<div className="grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex">
|
|
861
|
+
<span className={`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${
|
|
855
862
|
tunnelEnabled ? "bg-primary/10 text-primary" : "bg-surface-2 text-text-muted"
|
|
856
863
|
}`}>Tunnel</span>
|
|
857
864
|
{tunnelEnabled && !tunnelLoading && tunnelReachable ? (
|
|
858
865
|
<>
|
|
859
|
-
<Input aria-label="Cloudflare Tunnel endpoint URL" value={`${tunnelPublicUrl || tunnelUrl}/v1`} readOnly className="
|
|
866
|
+
<Input aria-label="Cloudflare Tunnel endpoint URL" value={`${tunnelPublicUrl || tunnelUrl}/v1`} readOnly className="w-full min-w-0 font-mono text-sm sm:flex-1" />
|
|
860
867
|
<button
|
|
861
868
|
onClick={() => copy(`${tunnelPublicUrl || tunnelUrl}/v1`, "tunnel_url")}
|
|
862
869
|
className="p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0"
|
|
@@ -942,13 +949,13 @@ export default function APIPageClient({ machineId }) {
|
|
|
942
949
|
)}
|
|
943
950
|
</div>
|
|
944
951
|
{/* Tailscale */}
|
|
945
|
-
<div className="
|
|
946
|
-
<span className={`
|
|
952
|
+
<div className="grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex">
|
|
953
|
+
<span className={`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${
|
|
947
954
|
tsEnabled ? "bg-primary/10 text-primary" : "bg-surface-2 text-text-muted"
|
|
948
955
|
}`}>Tailscale</span>
|
|
949
956
|
{tsEnabled && !tsLoading && tsReachable ? (
|
|
950
957
|
<>
|
|
951
|
-
<Input aria-label="Tailscale endpoint URL" value={`${tsUrl}/v1`} readOnly className="
|
|
958
|
+
<Input aria-label="Tailscale endpoint URL" value={`${tsUrl}/v1`} readOnly className="w-full min-w-0 font-mono text-sm sm:flex-1" />
|
|
952
959
|
<button
|
|
953
960
|
onClick={() => copy(`${tsUrl}/v1`, "ts_url")}
|
|
954
961
|
className="p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0"
|
|
@@ -1070,31 +1077,31 @@ export default function APIPageClient({ machineId }) {
|
|
|
1070
1077
|
checked={tunnelDashboardAccess}
|
|
1071
1078
|
onChange={() => handleTunnelDashboardAccess(!tunnelDashboardAccess)}
|
|
1072
1079
|
/>
|
|
1073
|
-
<
|
|
1074
|
-
<p className="font-medium text-sm">Allow dashboard access via tunnel</p>
|
|
1075
|
-
<Tooltip text="When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked." />
|
|
1076
|
-
</div>
|
|
1080
|
+
<Tooltip text="When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked." />
|
|
1077
1081
|
</div>
|
|
1078
1082
|
)}
|
|
1083
|
+
</div>
|
|
1079
1084
|
</Card>
|
|
1080
1085
|
|
|
1081
1086
|
{/* Token Saver moved to its own page */}
|
|
1082
|
-
<Card id="rtk">
|
|
1083
|
-
<div className="flex items-center justify-between
|
|
1084
|
-
<div className="min-w-0">
|
|
1085
|
-
<
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1087
|
+
<Card id="rtk" padding="none" className="relative overflow-hidden border-primary/20 bg-linear-to-br from-primary/[0.08] via-surface to-surface">
|
|
1088
|
+
<div className="relative flex flex-col gap-4 p-5 sm:flex-row sm:items-center sm:justify-between">
|
|
1089
|
+
<div className="flex min-w-0 items-center gap-3.5">
|
|
1090
|
+
<span className="material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary text-[22px] text-white shadow-[0_10px_24px_-14px_rgba(229,106,74,0.9)]">
|
|
1091
|
+
bolt
|
|
1092
|
+
</span>
|
|
1093
|
+
<div className="min-w-0">
|
|
1094
|
+
<h2 className="text-lg font-semibold leading-tight">Token Saver</h2>
|
|
1095
|
+
<p className="mt-1 text-sm text-text-muted">
|
|
1096
|
+
Tune RTK, Caveman, Ponytail, Headroom, and PXPIPE in one workspace.
|
|
1097
|
+
</p>
|
|
1098
|
+
</div>
|
|
1092
1099
|
</div>
|
|
1093
1100
|
<Link
|
|
1094
1101
|
href="/dashboard/token-saver"
|
|
1095
|
-
className="shrink-0
|
|
1102
|
+
className="inline-flex w-full shrink-0 items-center justify-center gap-1.5 rounded-lg border border-primary/25 bg-surface/80 px-3.5 py-2 text-sm font-semibold text-text-main shadow-sm transition-[border-color,color,transform] hover:translate-x-0.5 hover:border-primary/50 hover:text-primary sm:w-auto"
|
|
1096
1103
|
>
|
|
1097
|
-
Open
|
|
1104
|
+
Open workspace
|
|
1098
1105
|
<span className="material-symbols-outlined text-[16px]">arrow_forward</span>
|
|
1099
1106
|
</Link>
|
|
1100
1107
|
</div>
|
|
@@ -1102,12 +1109,22 @@ export default function APIPageClient({ machineId }) {
|
|
|
1102
1109
|
|
|
1103
1110
|
{/* API Keys */}
|
|
1104
1111
|
<Card id="require-api-key">
|
|
1105
|
-
<div className="flex items-center justify-between
|
|
1106
|
-
<
|
|
1107
|
-
<span className="material-symbols-outlined text-primary">
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1112
|
+
<div className="mb-5 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
|
1113
|
+
<div className="flex min-w-0 items-center gap-3">
|
|
1114
|
+
<span className="material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-[21px] text-primary ring-1 ring-primary/15">
|
|
1115
|
+
vpn_key
|
|
1116
|
+
</span>
|
|
1117
|
+
<div className="min-w-0">
|
|
1118
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
1119
|
+
<h2 className="text-lg font-semibold leading-tight">API Keys</h2>
|
|
1120
|
+
<span className="rounded-full bg-surface-2 px-2 py-0.5 text-[10px] font-semibold text-text-muted ring-1 ring-border-subtle">
|
|
1121
|
+
{keys.length} {keys.length === 1 ? "key" : "keys"}
|
|
1122
|
+
</span>
|
|
1123
|
+
</div>
|
|
1124
|
+
<p className="mt-0.5 text-xs text-text-muted">Control authentication and spending per client.</p>
|
|
1125
|
+
</div>
|
|
1126
|
+
</div>
|
|
1127
|
+
<Button icon="add" onClick={() => setShowAddModal(true)} className="w-full sm:w-auto">
|
|
1111
1128
|
Create Key
|
|
1112
1129
|
</Button>
|
|
1113
1130
|
</div>
|
|
@@ -1118,18 +1135,25 @@ export default function APIPageClient({ machineId }) {
|
|
|
1118
1135
|
</p>
|
|
1119
1136
|
)}
|
|
1120
1137
|
|
|
1121
|
-
<div className="flex flex-
|
|
1122
|
-
<div>
|
|
1123
|
-
<
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1138
|
+
<div className="mb-4 flex flex-col gap-3 rounded-xl border border-primary/15 bg-primary/[0.045] p-4 sm:flex-row sm:items-center sm:justify-between">
|
|
1139
|
+
<div className="flex items-start gap-3">
|
|
1140
|
+
<span className="material-symbols-outlined mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-surface text-[17px] text-primary ring-1 ring-border-subtle">
|
|
1141
|
+
shield_lock
|
|
1142
|
+
</span>
|
|
1143
|
+
<div>
|
|
1144
|
+
<p className="font-medium">Require API key</p>
|
|
1145
|
+
<p className="mt-0.5 text-sm text-text-muted">
|
|
1146
|
+
Reject requests that do not include a valid client key.
|
|
1147
|
+
</p>
|
|
1148
|
+
</div>
|
|
1149
|
+
</div>
|
|
1150
|
+
<div className="shrink-0 self-end sm:self-auto">
|
|
1151
|
+
<Toggle
|
|
1152
|
+
label="Require API key"
|
|
1153
|
+
checked={requireApiKey}
|
|
1154
|
+
onChange={() => handleRequireApiKey(!requireApiKey)}
|
|
1155
|
+
/>
|
|
1127
1156
|
</div>
|
|
1128
|
-
<Toggle
|
|
1129
|
-
label="Require API key"
|
|
1130
|
-
checked={requireApiKey}
|
|
1131
|
-
onChange={() => handleRequireApiKey(!requireApiKey)}
|
|
1132
|
-
/>
|
|
1133
1157
|
</div>
|
|
1134
1158
|
|
|
1135
1159
|
{isRemoteHost && !requireApiKey && (
|
|
@@ -1139,7 +1163,7 @@ export default function APIPageClient({ machineId }) {
|
|
|
1139
1163
|
)}
|
|
1140
1164
|
|
|
1141
1165
|
{keys.length === 0 ? (
|
|
1142
|
-
<div className="
|
|
1166
|
+
<div className="rounded-xl border border-dashed border-border bg-surface-2/25 py-12 text-center">
|
|
1143
1167
|
<div className="inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4">
|
|
1144
1168
|
<span className="material-symbols-outlined text-[32px]">vpn_key</span>
|
|
1145
1169
|
</div>
|
|
@@ -1150,11 +1174,11 @@ export default function APIPageClient({ machineId }) {
|
|
|
1150
1174
|
</Button>
|
|
1151
1175
|
</div>
|
|
1152
1176
|
) : (
|
|
1153
|
-
<div className="
|
|
1177
|
+
<div className="grid grid-cols-1 gap-3 lg:grid-cols-2">
|
|
1154
1178
|
{keys.map((key) => (
|
|
1155
1179
|
<div
|
|
1156
1180
|
key={key.id}
|
|
1157
|
-
className={`group flex flex-wrap items-center justify-between gap-3
|
|
1181
|
+
className={`group flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-xl border border-border-subtle bg-surface-2/25 p-4 transition-[border-color,box-shadow,opacity] hover:border-primary/20 hover:shadow-[0_14px_28px_-26px_rgba(15,23,42,0.65)] ${key.isActive === false ? "opacity-60" : ""}`}
|
|
1158
1182
|
>
|
|
1159
1183
|
<div className="flex-1 min-w-0">
|
|
1160
1184
|
<p className="text-sm font-medium">{key.name}</p>
|
|
@@ -1192,7 +1216,7 @@ export default function APIPageClient({ machineId }) {
|
|
|
1192
1216
|
<p className="text-xs text-orange-500 mt-1">Paused</p>
|
|
1193
1217
|
)}
|
|
1194
1218
|
{/* Per-key budget caps (0 = unlimited) */}
|
|
1195
|
-
<div className="flex items-center gap-3
|
|
1219
|
+
<div className="mt-3 flex flex-wrap items-center gap-3">
|
|
1196
1220
|
<label className="flex items-center gap-1 text-[11px] text-text-muted">
|
|
1197
1221
|
Daily $
|
|
1198
1222
|
<input
|
|
@@ -1200,7 +1224,7 @@ export default function APIPageClient({ machineId }) {
|
|
|
1200
1224
|
disabled={keyPending === `budget:${key.id}`}
|
|
1201
1225
|
defaultValue={key.budgetDaily || 0}
|
|
1202
1226
|
onBlur={(e) => handleBudgetChange(key.id, "budgetDaily", e.target.value)}
|
|
1203
|
-
className="w-16 px-1 py-0.5 text-[11px]
|
|
1227
|
+
className="w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]"
|
|
1204
1228
|
title="Daily budget cap in USD (0 = unlimited)"
|
|
1205
1229
|
/>
|
|
1206
1230
|
</label>
|
|
@@ -1211,7 +1235,7 @@ export default function APIPageClient({ machineId }) {
|
|
|
1211
1235
|
disabled={keyPending === `budget:${key.id}`}
|
|
1212
1236
|
defaultValue={key.budgetMonthly || 0}
|
|
1213
1237
|
onBlur={(e) => handleBudgetChange(key.id, "budgetMonthly", e.target.value)}
|
|
1214
|
-
className="w-16 px-1 py-0.5 text-[11px]
|
|
1238
|
+
className="w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]"
|
|
1215
1239
|
title="Monthly budget cap in USD (0 = unlimited)"
|
|
1216
1240
|
/>
|
|
1217
1241
|
</label>
|
|
@@ -1484,14 +1508,15 @@ export default function APIPageClient({ machineId }) {
|
|
|
1484
1508
|
/** Reusable endpoint row component */
|
|
1485
1509
|
function EndpointRow({ label, url, copyId, copied, onCopy, badge, actions }) {
|
|
1486
1510
|
return (
|
|
1487
|
-
<div className="
|
|
1488
|
-
<span className={`
|
|
1511
|
+
<div className="grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex">
|
|
1512
|
+
<span className={`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${
|
|
1489
1513
|
(badge === "CF" || badge === "TS") ? "bg-primary/10 text-primary" : "bg-surface-2 text-text-muted"
|
|
1490
1514
|
}`}>{label}</span>
|
|
1491
|
-
<Input aria-label={`${label} endpoint URL`} value={url} readOnly className="
|
|
1515
|
+
<Input aria-label={`${label} endpoint URL`} value={url} readOnly className="w-full min-w-0 font-mono text-sm sm:flex-1" />
|
|
1492
1516
|
<button
|
|
1493
1517
|
onClick={() => onCopy(url, copyId)}
|
|
1494
1518
|
className="p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0"
|
|
1519
|
+
aria-label={`Copy ${label} endpoint URL`}
|
|
1495
1520
|
>
|
|
1496
1521
|
<span className="material-symbols-outlined text-[18px]">{copied === copyId ? "check" : "content_copy"}</span>
|
|
1497
1522
|
</button>
|
|
@@ -1528,7 +1553,7 @@ function Tooltip({ text }) {
|
|
|
1528
1553
|
return (
|
|
1529
1554
|
<span className="relative group inline-flex items-center">
|
|
1530
1555
|
<span className="material-symbols-outlined text-[14px] text-text-muted cursor-help">help</span>
|
|
1531
|
-
<span className="pointer-events-none absolute
|
|
1556
|
+
<span className="pointer-events-none absolute right-0 top-full z-50 mt-2 w-[min(16rem,calc(100vw-2rem))] rounded bg-gray-900 px-2.5 py-1.5 text-xs text-white opacity-0 shadow-lg transition-opacity group-hover:opacity-100 dark:bg-gray-800">
|
|
1532
1557
|
{text}
|
|
1533
1558
|
</span>
|
|
1534
1559
|
</span>
|
|
@@ -218,6 +218,11 @@ export default function ProvidersPage() {
|
|
|
218
218
|
() => connections.filter((c) => c.isActive !== false).length,
|
|
219
219
|
[connections],
|
|
220
220
|
);
|
|
221
|
+
const connectedProviderCount = connectionsByProvider.size;
|
|
222
|
+
const pausedConnections = Math.max(0, totalConnections - activeConnections);
|
|
223
|
+
const activePercent = totalConnections > 0
|
|
224
|
+
? Math.round((activeConnections / totalConnections) * 100)
|
|
225
|
+
: 0;
|
|
221
226
|
|
|
222
227
|
const getProviderStats = (providerId, authType) => {
|
|
223
228
|
const authTypes = Array.isArray(authType) ? authType : [authType];
|
|
@@ -375,19 +380,40 @@ export default function ProvidersPage() {
|
|
|
375
380
|
anthropicCompatibleProviders.length > 0;
|
|
376
381
|
|
|
377
382
|
return (
|
|
378
|
-
<div className="flex min-w-0 flex-col gap-6 px-1 sm:px-0">
|
|
383
|
+
<div className="flex min-w-0 flex-col gap-6 px-1 sm:px-0 lg:gap-7">
|
|
379
384
|
{totalConnections > 0 && (
|
|
380
|
-
<div className="
|
|
381
|
-
<
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
385
|
+
<div className="overflow-hidden rounded-2xl border border-primary/15 bg-surface/85 shadow-[0_20px_45px_-38px_rgba(229,106,74,0.8)] backdrop-blur-sm">
|
|
386
|
+
<div className="grid grid-cols-2 divide-x divide-y divide-border-subtle sm:grid-cols-4 sm:divide-y-0">
|
|
387
|
+
<div className="col-span-2 flex items-center gap-3 px-4 py-3.5 sm:col-span-1">
|
|
388
|
+
<span className="flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-primary ring-1 ring-primary/15">
|
|
389
|
+
<span aria-hidden="true" className="material-symbols-outlined" style={{ fontSize: 20 }}>dns</span>
|
|
390
|
+
</span>
|
|
391
|
+
<div>
|
|
392
|
+
<p className="text-[10px] font-bold uppercase tracking-[0.12em] text-text-muted">Connection health</p>
|
|
393
|
+
<p className="mt-0.5 text-sm font-semibold text-text-main">{activePercent}% active</p>
|
|
394
|
+
</div>
|
|
395
|
+
</div>
|
|
396
|
+
<div className="px-4 py-3.5">
|
|
397
|
+
<p className="text-[10px] font-bold uppercase tracking-[0.1em] text-text-muted">Connections</p>
|
|
398
|
+
<p className="mt-1 text-xl font-bold tracking-tight text-text-main">{totalConnections}</p>
|
|
399
|
+
</div>
|
|
400
|
+
<div className="px-4 py-3.5">
|
|
401
|
+
<p className="text-[10px] font-bold uppercase tracking-[0.1em] text-text-muted">Active</p>
|
|
402
|
+
<div className="mt-1 flex items-baseline gap-2">
|
|
403
|
+
<p className="text-xl font-bold tracking-tight text-success">{activeConnections}</p>
|
|
404
|
+
{pausedConnections > 0 && <span className="text-[10px] text-text-muted">{pausedConnections} paused</span>}
|
|
405
|
+
</div>
|
|
406
|
+
</div>
|
|
407
|
+
<div className="px-4 py-3.5">
|
|
408
|
+
<p className="text-[10px] font-bold uppercase tracking-[0.1em] text-text-muted">Providers</p>
|
|
409
|
+
<p className="mt-1 text-xl font-bold tracking-tight text-info">{connectedProviderCount}</p>
|
|
410
|
+
</div>
|
|
411
|
+
</div>
|
|
387
412
|
{totalConnections >= 100 && (
|
|
388
|
-
<
|
|
389
|
-
|
|
390
|
-
|
|
413
|
+
<div className="flex items-center gap-2 border-t border-border-subtle bg-surface-2/35 px-4 py-2 text-[11px] text-text-muted">
|
|
414
|
+
<span aria-hidden="true" className="material-symbols-outlined text-[15px] text-primary">filter_alt</span>
|
|
415
|
+
Open a provider to search and filter its paginated connections.
|
|
416
|
+
</div>
|
|
391
417
|
)}
|
|
392
418
|
</div>
|
|
393
419
|
)}
|
|
@@ -408,10 +434,11 @@ export default function ProvidersPage() {
|
|
|
408
434
|
|
|
409
435
|
{/* Custom Providers (OpenAI/Anthropic Compatible) — dynamic */}
|
|
410
436
|
<div className="flex flex-col gap-4">
|
|
411
|
-
<
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
437
|
+
<ProviderSectionHeader
|
|
438
|
+
icon="extension"
|
|
439
|
+
title="Custom Providers"
|
|
440
|
+
description="OpenAI and Anthropic-compatible endpoints"
|
|
441
|
+
>
|
|
415
442
|
<div className="grid grid-cols-1 gap-2 sm:flex sm:w-auto">
|
|
416
443
|
<Button
|
|
417
444
|
size="sm"
|
|
@@ -431,12 +458,15 @@ export default function ProvidersPage() {
|
|
|
431
458
|
Add OpenAI Compatible
|
|
432
459
|
</Button>
|
|
433
460
|
</div>
|
|
434
|
-
</
|
|
461
|
+
</ProviderSectionHeader>
|
|
435
462
|
{compatibleProviders.length === 0 &&
|
|
436
463
|
anthropicCompatibleProviders.length === 0 ? (
|
|
437
|
-
<div className="flex items-center
|
|
438
|
-
<span className="material-symbols-outlined text-[18px]">
|
|
439
|
-
<
|
|
464
|
+
<div className="flex items-center gap-3 rounded-xl border border-dashed border-border bg-surface/45 px-4 py-3 text-text-muted">
|
|
465
|
+
<span aria-hidden="true" className="material-symbols-outlined flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-[18px]">add_link</span>
|
|
466
|
+
<div>
|
|
467
|
+
<p className="text-sm font-medium text-text-main">No custom endpoints yet</p>
|
|
468
|
+
<p className="mt-0.5 text-xs">Add an OpenAI or Anthropic-compatible endpoint when you need one.</p>
|
|
469
|
+
</div>
|
|
440
470
|
</div>
|
|
441
471
|
) : (
|
|
442
472
|
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4">
|
|
@@ -461,10 +491,11 @@ export default function ProvidersPage() {
|
|
|
461
491
|
{/* OAuth Providers */}
|
|
462
492
|
{oauthEntries.length > 0 && (
|
|
463
493
|
<div className="flex flex-col gap-4">
|
|
464
|
-
<
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
494
|
+
<ProviderSectionHeader
|
|
495
|
+
icon="passkey"
|
|
496
|
+
title="OAuth Providers"
|
|
497
|
+
description="Connect existing provider accounts securely"
|
|
498
|
+
>
|
|
468
499
|
<div className="flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center">
|
|
469
500
|
<ModelAvailabilityBadge />
|
|
470
501
|
<button
|
|
@@ -486,7 +517,7 @@ export default function ProvidersPage() {
|
|
|
486
517
|
{testingMode === "oauth" ? "Testing..." : "Test All"}
|
|
487
518
|
</button>
|
|
488
519
|
</div>
|
|
489
|
-
</
|
|
520
|
+
</ProviderSectionHeader>
|
|
490
521
|
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4">
|
|
491
522
|
{oauthEntries.map(([key, info]) => (
|
|
492
523
|
<ProviderCard
|
|
@@ -505,10 +536,11 @@ export default function ProvidersPage() {
|
|
|
505
536
|
{/* Free Tier Providers */}
|
|
506
537
|
{(freeEntries.length > 0 || freeTierEntries.length > 0) && (
|
|
507
538
|
<div className="flex flex-col gap-4">
|
|
508
|
-
<
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
539
|
+
<ProviderSectionHeader
|
|
540
|
+
icon="savings"
|
|
541
|
+
title="Free Tier Providers"
|
|
542
|
+
description="Ready-to-use and free-tier routing options"
|
|
543
|
+
>
|
|
512
544
|
<button
|
|
513
545
|
onClick={() => handleBatchTest("free")}
|
|
514
546
|
disabled={!!testingMode}
|
|
@@ -527,7 +559,7 @@ export default function ProvidersPage() {
|
|
|
527
559
|
</span>
|
|
528
560
|
{testingMode === "free" ? "Testing..." : "Test All"}
|
|
529
561
|
</button>
|
|
530
|
-
</
|
|
562
|
+
</ProviderSectionHeader>
|
|
531
563
|
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4">
|
|
532
564
|
{freeEntries.map(([key, info]) => {
|
|
533
565
|
const hasApiKeyMode = Array.isArray(info?.authModes) && info.authModes.includes("apikey");
|
|
@@ -560,10 +592,11 @@ export default function ProvidersPage() {
|
|
|
560
592
|
{/* API Key Providers — fixed list */}
|
|
561
593
|
{apikeyEntries.length > 0 && (
|
|
562
594
|
<div className="flex flex-col gap-4">
|
|
563
|
-
<
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
595
|
+
<ProviderSectionHeader
|
|
596
|
+
icon="key"
|
|
597
|
+
title="API Key Providers"
|
|
598
|
+
description="Bring your own provider credentials"
|
|
599
|
+
>
|
|
567
600
|
<button
|
|
568
601
|
onClick={() => handleBatchTest("apikey")}
|
|
569
602
|
disabled={!!testingMode}
|
|
@@ -582,7 +615,7 @@ export default function ProvidersPage() {
|
|
|
582
615
|
</span>
|
|
583
616
|
{testingMode === "apikey" ? "Testing..." : "Test All"}
|
|
584
617
|
</button>
|
|
585
|
-
</
|
|
618
|
+
</ProviderSectionHeader>
|
|
586
619
|
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4">
|
|
587
620
|
{visibleApikeyEntries.map(([key, info]) => (
|
|
588
621
|
<ApiKeyProviderCard
|
|
@@ -679,9 +712,34 @@ export default function ProvidersPage() {
|
|
|
679
712
|
);
|
|
680
713
|
}
|
|
681
714
|
|
|
715
|
+
function ProviderSectionHeader({ icon, title, description, children }) {
|
|
716
|
+
return (
|
|
717
|
+
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
|
718
|
+
<div className="flex min-w-0 items-center gap-3">
|
|
719
|
+
<span aria-hidden="true" className="material-symbols-outlined flex size-10 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-[20px] text-primary ring-1 ring-primary/15">
|
|
720
|
+
{icon}
|
|
721
|
+
</span>
|
|
722
|
+
<div className="min-w-0">
|
|
723
|
+
<h2 className="text-lg font-semibold leading-tight sm:text-xl">{title}</h2>
|
|
724
|
+
<p className="mt-0.5 text-xs text-text-muted">{description}</p>
|
|
725
|
+
</div>
|
|
726
|
+
</div>
|
|
727
|
+
{children}
|
|
728
|
+
</div>
|
|
729
|
+
);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
ProviderSectionHeader.propTypes = {
|
|
733
|
+
icon: PropTypes.string.isRequired,
|
|
734
|
+
title: PropTypes.string.isRequired,
|
|
735
|
+
description: PropTypes.string.isRequired,
|
|
736
|
+
children: PropTypes.node,
|
|
737
|
+
};
|
|
738
|
+
|
|
682
739
|
function ProviderCard({ providerId, provider, stats, authType, onToggle }) {
|
|
683
|
-
const { connected, error, errorCode,
|
|
740
|
+
const { connected, error, errorCode, allDisabled } = stats;
|
|
684
741
|
const isNoAuth = !!provider.noAuth;
|
|
742
|
+
const isReady = !allDisabled && (connected > 0 || isNoAuth);
|
|
685
743
|
|
|
686
744
|
const dotColors = {
|
|
687
745
|
free: "bg-green-500",
|
|
@@ -699,22 +757,27 @@ function ProviderCard({ providerId, provider, stats, authType, onToggle }) {
|
|
|
699
757
|
return (
|
|
700
758
|
<Link href={`/dashboard/providers/${providerId}`} className="group min-w-0">
|
|
701
759
|
<Card
|
|
702
|
-
padding="
|
|
703
|
-
className={`h-
|
|
760
|
+
padding="none"
|
|
761
|
+
className={`relative h-[82px] min-h-[82px] cursor-pointer overflow-hidden transition-[border-color,box-shadow,opacity] sm:h-[94px] sm:min-h-[94px] ${
|
|
762
|
+
isReady
|
|
763
|
+
? "border-success/25 bg-linear-to-br from-success/[0.045] to-transparent"
|
|
764
|
+
: "group-hover:border-primary/25"
|
|
765
|
+
} ${allDisabled ? "opacity-55" : ""}`}
|
|
704
766
|
>
|
|
705
|
-
<
|
|
767
|
+
{isReady && <span className="absolute inset-y-3 left-0 w-0.5 rounded-r-full bg-success" />}
|
|
768
|
+
<div className="flex h-full min-w-0 items-center justify-between gap-3 p-3.5">
|
|
706
769
|
<div className="flex min-w-0 items-center gap-3">
|
|
707
770
|
<div
|
|
708
|
-
className="size-
|
|
771
|
+
className="flex size-10 shrink-0 items-center justify-center rounded-xl ring-1 ring-black/[0.04] dark:ring-white/[0.06]"
|
|
709
772
|
style={{
|
|
710
773
|
backgroundColor: `${provider.color?.length > 7 ? provider.color : provider.color + "15"}`,
|
|
711
774
|
}}
|
|
712
775
|
>
|
|
713
776
|
<ProviderIcon
|
|
714
777
|
src={`/providers/${provider.id}.png`}
|
|
715
|
-
alt=
|
|
778
|
+
alt=""
|
|
716
779
|
size={30}
|
|
717
|
-
className="
|
|
780
|
+
className="max-h-[32px] max-w-[32px] rounded-lg object-contain"
|
|
718
781
|
fallbackText={
|
|
719
782
|
provider.textIcon || provider.id.slice(0, 2).toUpperCase()
|
|
720
783
|
}
|
|
@@ -722,8 +785,12 @@ function ProviderCard({ providerId, provider, stats, authType, onToggle }) {
|
|
|
722
785
|
/>
|
|
723
786
|
</div>
|
|
724
787
|
<div className="min-w-0">
|
|
725
|
-
<h3 className="truncate font-semibold">{provider.name}</h3>
|
|
726
|
-
<div className="flex min-w-0 items-center gap-1.5 text-xs
|
|
788
|
+
<h3 className="truncate text-sm font-semibold text-text-main">{provider.name}</h3>
|
|
789
|
+
<div className="mt-1 flex min-w-0 items-center gap-1.5 overflow-hidden whitespace-nowrap text-xs">
|
|
790
|
+
<span className="inline-flex items-center gap-1 text-[10px] font-medium text-text-muted">
|
|
791
|
+
<span aria-hidden="true" className={`size-1.5 rounded-full ${dotColors[authType] || "bg-text-muted"}`} />
|
|
792
|
+
{dotLabels[authType] || "Provider"}
|
|
793
|
+
</span>
|
|
727
794
|
{allDisabled ? (
|
|
728
795
|
<Badge variant="default" size="sm">
|
|
729
796
|
<span className="flex items-center gap-1">
|
|
@@ -738,9 +805,6 @@ function ProviderCard({ providerId, provider, stats, authType, onToggle }) {
|
|
|
738
805
|
) : (
|
|
739
806
|
<>
|
|
740
807
|
{getStatusDisplay(connected, error, errorCode)}
|
|
741
|
-
{errorTime && (
|
|
742
|
-
<span className="text-text-muted">{errorTime}</span>
|
|
743
|
-
)}
|
|
744
808
|
</>
|
|
745
809
|
)}
|
|
746
810
|
</div>
|
|
@@ -764,6 +828,9 @@ function ProviderCard({ providerId, provider, stats, authType, onToggle }) {
|
|
|
764
828
|
/>
|
|
765
829
|
</div>
|
|
766
830
|
)}
|
|
831
|
+
<span aria-hidden="true" className="material-symbols-outlined text-[18px] text-text-subtle transition-[transform,color] group-hover:translate-x-0.5 group-hover:text-primary">
|
|
832
|
+
chevron_right
|
|
833
|
+
</span>
|
|
767
834
|
</div>
|
|
768
835
|
</div>
|
|
769
836
|
</Card>
|
|
@@ -784,6 +851,8 @@ ProviderCard.propTypes = {
|
|
|
784
851
|
error: PropTypes.number,
|
|
785
852
|
errorCode: PropTypes.string,
|
|
786
853
|
errorTime: PropTypes.string,
|
|
854
|
+
total: PropTypes.number,
|
|
855
|
+
allDisabled: PropTypes.bool,
|
|
787
856
|
}).isRequired,
|
|
788
857
|
authType: PropTypes.string,
|
|
789
858
|
onToggle: PropTypes.func,
|
|
@@ -796,7 +865,8 @@ function ApiKeyProviderCard({
|
|
|
796
865
|
authType,
|
|
797
866
|
onToggle,
|
|
798
867
|
}) {
|
|
799
|
-
const { connected, error, errorCode,
|
|
868
|
+
const { connected, error, errorCode, allDisabled } = stats;
|
|
869
|
+
const isReady = !allDisabled && connected > 0;
|
|
800
870
|
const isCompatible = providerId.startsWith(OPENAI_COMPATIBLE_PREFIX);
|
|
801
871
|
const isAnthropicCompatible = providerId.startsWith(
|
|
802
872
|
ANTHROPIC_COMPATIBLE_PREFIX,
|
|
@@ -816,6 +886,7 @@ function ApiKeyProviderCard({
|
|
|
816
886
|
};
|
|
817
887
|
|
|
818
888
|
const getIconPath = () => {
|
|
889
|
+
if (provider.id === "featherless") return null;
|
|
819
890
|
if (isCompatible)
|
|
820
891
|
return provider.apiType === "responses"
|
|
821
892
|
? "/providers/oai-r.png"
|
|
@@ -827,22 +898,27 @@ function ApiKeyProviderCard({
|
|
|
827
898
|
return (
|
|
828
899
|
<Link href={`/dashboard/providers/${providerId}`} className="group min-w-0">
|
|
829
900
|
<Card
|
|
830
|
-
padding="
|
|
831
|
-
className={`h-
|
|
901
|
+
padding="none"
|
|
902
|
+
className={`relative h-[82px] min-h-[82px] cursor-pointer overflow-hidden transition-[border-color,box-shadow,opacity] sm:h-[94px] sm:min-h-[94px] ${
|
|
903
|
+
isReady
|
|
904
|
+
? "border-success/25 bg-linear-to-br from-success/[0.045] to-transparent"
|
|
905
|
+
: "group-hover:border-primary/25"
|
|
906
|
+
} ${allDisabled ? "opacity-55" : ""}`}
|
|
832
907
|
>
|
|
833
|
-
<
|
|
908
|
+
{isReady && <span className="absolute inset-y-3 left-0 w-0.5 rounded-r-full bg-success" />}
|
|
909
|
+
<div className="flex h-full min-w-0 items-center justify-between gap-3 p-3.5">
|
|
834
910
|
<div className="flex min-w-0 items-center gap-3">
|
|
835
911
|
<div
|
|
836
|
-
className="size-
|
|
912
|
+
className="flex size-10 shrink-0 items-center justify-center rounded-xl ring-1 ring-black/[0.04] dark:ring-white/[0.06]"
|
|
837
913
|
style={{
|
|
838
914
|
backgroundColor: `${provider.color?.length > 7 ? provider.color : provider.color + "15"}`,
|
|
839
915
|
}}
|
|
840
916
|
>
|
|
841
917
|
<ProviderIcon
|
|
842
918
|
src={getIconPath()}
|
|
843
|
-
alt=
|
|
919
|
+
alt=""
|
|
844
920
|
size={30}
|
|
845
|
-
className="
|
|
921
|
+
className="max-h-[32px] max-w-[32px] rounded-lg object-contain"
|
|
846
922
|
fallbackText={
|
|
847
923
|
provider.textIcon || provider.id.slice(0, 2).toUpperCase()
|
|
848
924
|
}
|
|
@@ -850,8 +926,12 @@ function ApiKeyProviderCard({
|
|
|
850
926
|
/>
|
|
851
927
|
</div>
|
|
852
928
|
<div className="min-w-0">
|
|
853
|
-
<h3 className="truncate font-semibold">{provider.name}</h3>
|
|
854
|
-
<div className="flex min-w-0 items-center gap-1.5 text-xs
|
|
929
|
+
<h3 className="truncate text-sm font-semibold text-text-main">{provider.name}</h3>
|
|
930
|
+
<div className="mt-1 flex min-w-0 items-center gap-1.5 overflow-hidden whitespace-nowrap text-xs">
|
|
931
|
+
<span className="inline-flex items-center gap-1 text-[10px] font-medium text-text-muted">
|
|
932
|
+
<span aria-hidden="true" className={`size-1.5 rounded-full ${dotColors[authType] || "bg-text-muted"}`} />
|
|
933
|
+
{dotLabels[authType] || "Provider"}
|
|
934
|
+
</span>
|
|
855
935
|
{allDisabled ? (
|
|
856
936
|
<Badge variant="default" size="sm">
|
|
857
937
|
<span className="flex items-center gap-1">
|
|
@@ -876,9 +956,6 @@ function ApiKeyProviderCard({
|
|
|
876
956
|
Messages
|
|
877
957
|
</Badge>
|
|
878
958
|
)}
|
|
879
|
-
{errorTime && (
|
|
880
|
-
<span className="text-text-muted">{errorTime}</span>
|
|
881
|
-
)}
|
|
882
959
|
</>
|
|
883
960
|
)}
|
|
884
961
|
</div>
|
|
@@ -902,6 +979,9 @@ function ApiKeyProviderCard({
|
|
|
902
979
|
/>
|
|
903
980
|
</div>
|
|
904
981
|
)}
|
|
982
|
+
<span aria-hidden="true" className="material-symbols-outlined text-[18px] text-text-subtle transition-[transform,color] group-hover:translate-x-0.5 group-hover:text-primary">
|
|
983
|
+
chevron_right
|
|
984
|
+
</span>
|
|
905
985
|
</div>
|
|
906
986
|
</div>
|
|
907
987
|
</Card>
|
|
@@ -923,6 +1003,8 @@ ApiKeyProviderCard.propTypes = {
|
|
|
923
1003
|
error: PropTypes.number,
|
|
924
1004
|
errorCode: PropTypes.string,
|
|
925
1005
|
errorTime: PropTypes.string,
|
|
1006
|
+
total: PropTypes.number,
|
|
1007
|
+
allDisabled: PropTypes.bool,
|
|
926
1008
|
}).isRequired,
|
|
927
1009
|
authType: PropTypes.string,
|
|
928
1010
|
onToggle: PropTypes.func,
|