n9router 0.4.57 → 0.4.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +20 -18
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/routes-manifest.json +16 -4
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +5 -5
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +17 -4
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +2 -2
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/antigravity-app/route.js +1 -1
- package/app/.next/server/app/api/antigravity-app-v2/route.js +1 -1
- package/app/.next/server/app/api/antigravity-ide/route.js +1 -1
- package/app/.next/server/app/api/antigravity-targets/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next/server/app/api/auth/saml/test/route.js +2 -2
- package/app/.next/server/app/api/auth/status/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js +7 -7
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/devin-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/donate/route.js +1 -1
- package/app/.next/server/app/api/headroom/extras/route.js +1 -1
- package/app/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next/server/app/api/headroom/start/route.js +1 -1
- package/app/.next/server/app/api/headroom/status/route.js +1 -1
- package/app/.next/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/internal/account-health/route.js +1 -1
- package/app/.next/server/app/api/internal/request-detail/route.js +1 -1
- package/app/.next/server/app/api/internal/usage/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/reset-usage/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/usage/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +2 -2
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/catalog-sync/route.js +1 -0
- package/app/.next/server/app/api/models/catalog-sync/route.js.nft.json +1 -0
- package/app/.next/server/app/api/models/catalog-sync/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/models/custom/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/disabled/route.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -0
- package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -0
- package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/health/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/install/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/logs/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/restart/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/start/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/stats/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/status/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/stop/route.js +2 -2
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/database/selective/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/report/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/[...model]/route.js +1 -0
- package/app/.next/server/app/api/v1/models/{[kind] → [...model]}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/[...model]/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/search/route.js +1 -1
- package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +4 -4
- package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.rsc +15 -14
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +15 -14
- package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +15 -14
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +15 -14
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next/server/app/dashboard/pxpipe.rsc +6 -6
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +5 -5
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.html +1 -1
- package/app/.next/server/app/dashboard/skills.rsc +6 -6
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.html +1 -1
- package/app/.next/server/app/dashboard/token-saver.rsc +6 -6
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +4 -4
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +5 -5
- package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +5 -5
- package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +20 -18
- package/app/.next/server/chunks/1470.js +1 -1
- package/app/.next/server/chunks/24.js +1 -0
- package/app/.next/server/chunks/318.js +7 -7
- package/app/.next/server/chunks/3481.js +1 -1
- package/app/.next/server/chunks/3662.js +1 -0
- package/app/.next/server/chunks/3726.js +1 -0
- package/app/.next/server/chunks/3753.js +1 -0
- package/app/.next/server/chunks/3913.js +1 -1
- package/app/.next/server/chunks/3943.js +1 -1
- package/app/.next/server/chunks/3962.js +1 -1
- package/app/.next/server/chunks/4037.js +1 -1
- package/app/.next/server/chunks/412.js +1 -1
- package/app/.next/server/chunks/4123.js +1 -1
- package/app/.next/server/chunks/4125.js +1 -1
- package/app/.next/server/chunks/436.js +1 -0
- package/app/.next/server/chunks/4940.js +95 -0
- package/app/.next/server/chunks/{4676.js → 5139.js} +2 -2
- package/app/.next/server/chunks/5612.js +1 -1
- package/app/.next/server/chunks/5615.js +1 -1
- package/app/.next/server/chunks/5729.js +1 -0
- package/app/.next/server/chunks/6070.js +1 -1
- package/app/.next/server/chunks/615.js +1 -1
- package/app/.next/server/chunks/6763.js +1 -1
- package/app/.next/server/chunks/6777.js +1 -1
- package/app/.next/server/chunks/6818.js +1 -1
- package/app/.next/server/chunks/6922.js +1 -0
- package/app/.next/server/chunks/7137.js +1 -1
- package/app/.next/server/chunks/7211.js +1 -1
- package/app/.next/server/chunks/7247.js +1 -0
- package/app/.next/server/chunks/{4705.js → 7637.js} +1 -1
- package/app/.next/server/chunks/7716.js +1 -0
- package/app/.next/server/chunks/8145.js +1 -1
- package/app/.next/server/chunks/8236.js +1 -0
- package/app/.next/server/chunks/8402.js +1 -0
- package/app/.next/server/chunks/8499.js +8 -8
- package/app/.next/server/chunks/8635.js +3 -0
- package/app/.next/server/chunks/869.js +1 -1
- package/app/.next/server/chunks/8895.js +19 -13
- package/app/.next/server/chunks/8910.js +1 -1
- package/app/.next/server/chunks/8920.js +1 -1
- package/app/.next/server/chunks/9441.js +1 -0
- package/app/.next/server/chunks/9718.js +1 -1
- package/app/.next/server/chunks/9820.js +1 -0
- package/app/.next/server/chunks/9896.js +1 -0
- package/app/.next/server/chunks/{4443.js → 9927.js} +1 -1
- package/app/.next/server/instrumentation.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/4aSob9BYLKkmEZKpVTTCD/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1321-c56f714b48ec75b1.js +1 -0
- package/app/.next/static/chunks/511-12d7a4aee984e083.js +95 -0
- package/app/.next/static/chunks/5497-378030367985bec2.js +7 -0
- package/app/.next/static/chunks/{705-10f93cd2550e6494.js → 705-f07c546a169bc3d2.js} +1 -1
- package/app/.next/static/chunks/8198-2f2b63f52e0d44f9.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-ddcb29448c366123.js → page-fbd0e639f6248423.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-bc35ad34049d7ff5.js → page-9dd5b20bf0221838.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-00363c4bec619120.js +59 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-a571e53340e18f91.js → page-c8943c6168a7bc3f.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e6ee66418932601a.js +27 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-b2e8e7af27239aef.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c48d4a86c94ab13a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-156920b6e519dc17.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-6aae3d87e3964ab9.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/layout-a0e61866894b6cee.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-ide/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-targets/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/reset-password/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/acs/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/metadata/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/start/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/test/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/donate/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/extras/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/restart/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/start/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/status/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/stop/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/internal/account-health/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/internal/request-detail/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/internal/usage/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/catalog-sync/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/disabled/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/health/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/install/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/logs/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/restart/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/start/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/stats/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/status/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/stop/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/selective/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/report/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/[...model]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/info/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/[id]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/edits/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/extensions/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/version/shutdown/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/landing/page-8aa1b64c49edfaf2.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/app/page-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b3fe65cd692af32a.js +1 -0
- package/app/.next/static/css/e88d3a3f66f134dd.css +1 -0
- package/app/open-sse/config/appConstants.js +7 -0
- package/app/open-sse/config/providerModels.js +5 -1
- package/app/open-sse/executors/antigravity.js +5 -5
- package/app/open-sse/executors/commandcode.js +235 -7
- package/app/open-sse/executors/opencode.js +56 -10
- package/app/open-sse/handlers/chatCore/requestDetail.js +8 -2
- package/app/open-sse/handlers/chatCore.js +15 -3
- package/app/open-sse/handlers/fetch/index.js +70 -3
- package/app/open-sse/handlers/imageProviders/antigravity.js +15 -2
- package/app/open-sse/handlers/search/callers.js +78 -0
- package/app/open-sse/handlers/search/chatSearch.js +101 -3
- package/app/open-sse/handlers/search/index.js +11 -2
- package/app/open-sse/handlers/search/normalizers.js +87 -1
- package/app/open-sse/providers/capabilities.js +98 -7
- package/app/open-sse/providers/catalogOverride.js +72 -0
- package/app/open-sse/providers/models/helpers.js +7 -0
- package/app/open-sse/providers/pricing.js +1 -0
- package/app/open-sse/providers/registry/antigravity.js +7 -3
- package/app/open-sse/providers/registry/claude.js +3 -2
- package/app/open-sse/providers/registry/codebuddy-cn.js +10 -2
- package/app/open-sse/providers/registry/deepseek.js +1 -0
- package/app/open-sse/providers/registry/glm-cn.js +2 -0
- package/app/open-sse/providers/registry/glm.js +15 -0
- package/app/open-sse/providers/registry/groq.js +10 -0
- package/app/open-sse/providers/registry/index.js +4 -0
- package/app/open-sse/providers/registry/ollama-search.js +35 -0
- package/app/open-sse/providers/registry/ollama.js +10 -1
- package/app/open-sse/providers/registry/opencode-go.js +2 -0
- package/app/open-sse/providers/registry/opencode.js +6 -1
- package/app/open-sse/providers/registry/tokenrouter.js +11 -109
- package/app/open-sse/providers/registry/xai.js +2 -0
- package/app/open-sse/providers/registry/xquik.js +35 -0
- package/app/open-sse/providers/shared.js +4 -4
- package/app/open-sse/providers/thinkingLevels.js +7 -0
- package/app/open-sse/providers/visionPatterns.js +42 -0
- package/app/open-sse/rtk/headroom.js +11 -1
- package/app/open-sse/rtk/systemInject.js +307 -68
- package/app/open-sse/services/tokenRefresh/providers.js +47 -0
- package/app/open-sse/services/tokenRefresh.js +3 -0
- package/app/open-sse/services/usage/codex.js +20 -0
- package/app/open-sse/services/usage/glm.js +88 -0
- package/app/open-sse/services/usage/groq.js +133 -0
- package/app/open-sse/services/usage/misc.js +2 -61
- package/app/open-sse/services/usage/zed.js +222 -0
- package/app/open-sse/services/usage.js +5 -1
- package/app/open-sse/shared/zedAuth.js +11 -7
- package/app/open-sse/translator/concerns/thinkingUnified.js +31 -11
- package/app/open-sse/translator/concerns/toolCall.js +14 -0
- package/app/open-sse/translator/formats/claude.js +62 -2
- package/app/open-sse/translator/formats/gemini.js +35 -0
- package/app/open-sse/translator/index.js +7 -4
- package/app/open-sse/translator/request/claude-to-kiro.js +0 -1
- package/app/open-sse/translator/request/openai-responses.js +17 -2
- package/app/open-sse/translator/request/openai-to-kiro.js +0 -1
- package/app/open-sse/translator/schema/blocks.js +2 -0
- package/app/open-sse/utils/claudeCloaking.js +33 -6
- package/app/open-sse/utils/claudeToolTypeSelfCheck.mjs +117 -0
- package/app/open-sse/utils/modelMarkers.js +20 -0
- package/app/open-sse/utils/sessionManager.js +5 -1
- package/app/open-sse/utils/stream.js +54 -33
- package/app/open-sse/utils/streamHandler.js +2 -1
- package/app/open-sse/utils/usageTracking.js +4 -1
- package/app/package.json +1 -1
- package/app/public/i18n/literals/id.json +1365 -169
- package/app/public/i18n/literals/pt-BR.json +144 -0
- package/app/public/i18n/literals/zh-CN.json +1 -0
- package/app/public/providers/alims-intl.png +0 -0
- package/app/public/providers/alitp-intl.png +0 -0
- package/app/public/providers/fish-audio.png +0 -0
- package/app/public/providers/selfhosted-embedding.png +0 -0
- package/app/public/providers/selfhosted-stt.png +0 -0
- package/app/public/providers/selfhosted-tts.png +0 -0
- package/app/public/providers/xquik.png +0 -0
- package/app/src/mitm/antigravityIdeVersion.js +49 -13
- package/app/src/mitm/config.js +1 -0
- package/app/src/mitm/handlers/kiro.js +573 -3
- package/app/src/mitm/server.js +1 -1
- package/app/src/shared/constants/providers.js +1 -1
- package/app/src/shared/constants/skills.js +1 -1
- package/package.json +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js +0 -1
- package/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +0 -1
- package/app/.next/server/chunks/112.js +0 -3
- package/app/.next/server/chunks/4953.js +0 -1
- package/app/.next/server/chunks/4975.js +0 -1
- package/app/.next/server/chunks/5285.js +0 -1
- package/app/.next/server/chunks/5699.js +0 -1
- package/app/.next/server/chunks/6292.js +0 -1
- package/app/.next/server/chunks/6306.js +0 -1
- package/app/.next/server/chunks/6671.js +0 -1
- package/app/.next/server/chunks/8301.js +0 -92
- package/app/.next/static/KyRBZmQI6kYmOhE879dai/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1321-13f12c43bc4c573f.js +0 -1
- package/app/.next/static/chunks/4028-85ab0e23e6b475d3.js +0 -92
- package/app/.next/static/chunks/5497-b32d50ab4f6874e1.js +0 -7
- package/app/.next/static/chunks/8198-8a92496ac8c02cb7.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-308fc8a3b8a069fe.js +0 -59
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-2eaaf5721c2e8376.js +0 -14
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d6c97bcabadb38ca.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c8a6e0e2bef2932e.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-3a3fbf978b69dabd.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-46e9c726ae1032e0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-98dba0673f8af6ad.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-ide/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-targets/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/reset-password/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/acs/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/metadata/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/start/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/test/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/auth/status/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/donate/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/extras/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/restart/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/start/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/status/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/stop/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/internal/account-health/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/internal/request-detail/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/internal/usage/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/models/disabled/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/health/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/install/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/logs/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/restart/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/start/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/stats/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/status/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/stop/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/selective/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/report/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/info/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/search/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/[id]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/edits/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/extensions/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/version/shutdown/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/landing/page-a438c82535cc676a.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/app/page-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1a2fcb867d9ffccf.js +0 -1
- package/app/.next/static/css/c5181f678ef0b6e0.css +0 -1
- /package/app/.next/static/{KyRBZmQI6kYmOhE879dai → 4aSob9BYLKkmEZKpVTTCD}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groq usage — no dedicated quota endpoint. Rate-limit info instead rides on
|
|
3
|
+
* every API response as x-ratelimit-* headers (requests + tokens, always
|
|
4
|
+
* included). We piggyback on the models list (already used as
|
|
5
|
+
* transport.validateUrl) so reading usage never costs tokens.
|
|
6
|
+
*
|
|
7
|
+
* Headers:
|
|
8
|
+
* x-ratelimit-limit-requests / x-ratelimit-remaining-requests
|
|
9
|
+
* x-ratelimit-limit-tokens / x-ratelimit-remaining-tokens
|
|
10
|
+
* x-ratelimit-reset-requests / x-ratelimit-reset-tokens (duration strings, e.g. "2m59.56s")
|
|
11
|
+
*
|
|
12
|
+
* Docs: https://console.groq.com/docs/rate-limits
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { proxyAwareFetch } from "../../utils/proxyFetch.js";
|
|
16
|
+
import { U } from "./shared.js";
|
|
17
|
+
|
|
18
|
+
const MODELS_URL = U("groq").url;
|
|
19
|
+
|
|
20
|
+
// Groq reset headers are Go-style duration strings ("2m59.56s", "7.66s"), not
|
|
21
|
+
// timestamps — parse the h/m/s/ms components and add them to now().
|
|
22
|
+
function parseGroqDurationMs(value) {
|
|
23
|
+
if (typeof value !== "string" || !value.trim()) return null;
|
|
24
|
+
|
|
25
|
+
const re = /(\d+(?:\.\d+)?)(ms|s|m|h)/g;
|
|
26
|
+
let match;
|
|
27
|
+
let totalMs = 0;
|
|
28
|
+
let matched = false;
|
|
29
|
+
while ((match = re.exec(value))) {
|
|
30
|
+
matched = true;
|
|
31
|
+
const amount = Number(match[1]);
|
|
32
|
+
const unit = match[2];
|
|
33
|
+
const unitMs = unit === "h" ? 3600000 : unit === "m" ? 60000 : unit === "ms" ? 1 : 1000;
|
|
34
|
+
totalMs += amount * unitMs;
|
|
35
|
+
}
|
|
36
|
+
return matched ? totalMs : null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function resetAtFromDuration(value) {
|
|
40
|
+
const ms = parseGroqDurationMs(value);
|
|
41
|
+
return ms === null ? null : new Date(Date.now() + ms).toISOString();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function buildRateLimitQuota(headers, limitKey, remainingKey, resetKey) {
|
|
45
|
+
// headers.get() returns null when absent, and Number(null) is 0 (a finite
|
|
46
|
+
// number) — check presence explicitly so a missing header can't masquerade
|
|
47
|
+
// as a real "0 remaining" quota.
|
|
48
|
+
const limitRaw = headers.get(limitKey);
|
|
49
|
+
const remainingRaw = headers.get(remainingKey);
|
|
50
|
+
if (limitRaw === null || remainingRaw === null) return null;
|
|
51
|
+
|
|
52
|
+
const limit = Number(limitRaw);
|
|
53
|
+
const remaining = Number(remainingRaw);
|
|
54
|
+
if (!Number.isFinite(limit) || !Number.isFinite(remaining)) return null;
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
used: Math.max(0, limit - remaining),
|
|
58
|
+
total: limit,
|
|
59
|
+
resetAt: resetAtFromDuration(headers.get(resetKey)),
|
|
60
|
+
unlimited: false,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @param {string|null|undefined} apiKey
|
|
66
|
+
* @param {object|null} proxyOptions
|
|
67
|
+
*/
|
|
68
|
+
export async function getGroqUsage(apiKey, proxyOptions = null) {
|
|
69
|
+
if (!apiKey || typeof apiKey !== "string" || !apiKey.trim()) {
|
|
70
|
+
return { message: "Groq API key not available. Add a key to view usage." };
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
const response = await proxyAwareFetch(
|
|
75
|
+
MODELS_URL,
|
|
76
|
+
{
|
|
77
|
+
method: "GET",
|
|
78
|
+
headers: {
|
|
79
|
+
Authorization: `Bearer ${apiKey.trim()}`,
|
|
80
|
+
Accept: "application/json",
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
proxyOptions,
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
if (response.status === 401 || response.status === 403) {
|
|
87
|
+
return { plan: "Groq", message: "Groq authentication failed. Check the API key." };
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (!response.ok) {
|
|
91
|
+
const errText = await response.text().catch(() => "");
|
|
92
|
+
return {
|
|
93
|
+
plan: "Groq",
|
|
94
|
+
message: `Groq usage API error (${response.status})${errText ? `: ${errText.slice(0, 120)}` : ""}`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// The quota data lives in headers, not the body — drain it so the
|
|
99
|
+
// connection can be released without needing the payload.
|
|
100
|
+
await response.text().catch(() => {});
|
|
101
|
+
|
|
102
|
+
const requests = buildRateLimitQuota(
|
|
103
|
+
response.headers,
|
|
104
|
+
"x-ratelimit-limit-requests",
|
|
105
|
+
"x-ratelimit-remaining-requests",
|
|
106
|
+
"x-ratelimit-reset-requests",
|
|
107
|
+
);
|
|
108
|
+
const tokens = buildRateLimitQuota(
|
|
109
|
+
response.headers,
|
|
110
|
+
"x-ratelimit-limit-tokens",
|
|
111
|
+
"x-ratelimit-remaining-tokens",
|
|
112
|
+
"x-ratelimit-reset-tokens",
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
if (!requests && !tokens) {
|
|
116
|
+
// Key is valid (request succeeded) but no rate-limit bucket reported —
|
|
117
|
+
// distinguish "not tracked yet" from an auth/error state.
|
|
118
|
+
return {
|
|
119
|
+
plan: "Groq",
|
|
120
|
+
message: "Groq connected. No rate-limit data reported for this key yet.",
|
|
121
|
+
quotas: {},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const quotas = {};
|
|
126
|
+
if (requests) quotas["Requests"] = requests;
|
|
127
|
+
if (tokens) quotas["Tokens"] = tokens;
|
|
128
|
+
|
|
129
|
+
return { plan: "Groq", quotas };
|
|
130
|
+
} catch (error) {
|
|
131
|
+
return { message: `Groq error: ${error.message}` };
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -5,11 +5,8 @@
|
|
|
5
5
|
import { proxyAwareFetch } from "../../utils/proxyFetch.js";
|
|
6
6
|
import { U } from "./shared.js";
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
international: U("glm").url,
|
|
11
|
-
china: U("glm-cn").url,
|
|
12
|
-
};
|
|
8
|
+
export { getGlmUsage } from "./glm.js";
|
|
9
|
+
|
|
13
10
|
|
|
14
11
|
// Vercel AI Gateway credits endpoint
|
|
15
12
|
// Returns { balance: "95.50", total_used: "4.50" } (USD as decimal strings).
|
|
@@ -112,63 +109,7 @@ export async function getOllamaUsage(apiKey, providerSpecificData, proxyOptions
|
|
|
112
109
|
}
|
|
113
110
|
}
|
|
114
111
|
|
|
115
|
-
/**
|
|
116
|
-
* GLM Coding Plan usage (international + China regions)
|
|
117
|
-
*/
|
|
118
|
-
export async function getGlmUsage(apiKey, provider, proxyOptions = null) {
|
|
119
|
-
if (!apiKey) {
|
|
120
|
-
return { message: "GLM API key not available." };
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const region = provider === "glm-cn" ? "china" : "international";
|
|
124
|
-
const quotaUrl = GLM_QUOTA_URLS[region];
|
|
125
|
-
|
|
126
|
-
try {
|
|
127
|
-
const response = await proxyAwareFetch(quotaUrl, {
|
|
128
|
-
headers: {
|
|
129
|
-
Authorization: `Bearer ${apiKey}`,
|
|
130
|
-
Accept: "application/json",
|
|
131
|
-
},
|
|
132
|
-
}, proxyOptions);
|
|
133
112
|
|
|
134
|
-
if (!response.ok) {
|
|
135
|
-
if (response.status === 401) {
|
|
136
|
-
return { message: "GLM API key invalid or expired." };
|
|
137
|
-
}
|
|
138
|
-
return { message: `GLM quota API error (${response.status}).` };
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const json = await response.json();
|
|
142
|
-
const data = json?.data && typeof json.data === "object" ? json.data : {};
|
|
143
|
-
const limits = Array.isArray(data.limits) ? data.limits : [];
|
|
144
|
-
const quotas = {};
|
|
145
|
-
|
|
146
|
-
for (const limit of limits) {
|
|
147
|
-
if (!limit || limit.type !== "TOKENS_LIMIT") continue;
|
|
148
|
-
const usedPercent = Number(limit.percentage) || 0;
|
|
149
|
-
const resetMs = Number(limit.nextResetTime) || 0;
|
|
150
|
-
const remaining = Math.max(0, 100 - usedPercent);
|
|
151
|
-
|
|
152
|
-
quotas["session"] = {
|
|
153
|
-
used: usedPercent,
|
|
154
|
-
total: 100,
|
|
155
|
-
remaining,
|
|
156
|
-
remainingPercentage: remaining,
|
|
157
|
-
resetAt: resetMs > 0 ? new Date(resetMs).toISOString() : null,
|
|
158
|
-
unlimited: false,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
const levelRaw = typeof data.level === "string" ? data.level : "";
|
|
163
|
-
const plan = levelRaw
|
|
164
|
-
? levelRaw.charAt(0).toUpperCase() + levelRaw.slice(1).toLowerCase()
|
|
165
|
-
: "Unknown";
|
|
166
|
-
|
|
167
|
-
return { plan, quotas };
|
|
168
|
-
} catch (error) {
|
|
169
|
-
return { message: `GLM error: ${error.message}` };
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
113
|
|
|
173
114
|
/**
|
|
174
115
|
* Vercel AI Gateway usage — credit balance for the API key
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zed usage — GET https://cloud.zed.dev/client/users/me
|
|
3
|
+
* Auth: Authorization: {user_id} {access_token}
|
|
4
|
+
*
|
|
5
|
+
* Quota rows are derived from plan.usage (edit_predictions, optional model_requests)
|
|
6
|
+
* and subscription_period.ended_at for billing-cycle reset.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { fetchZedAuthenticatedUser } from "../../shared/zedAuth.js";
|
|
10
|
+
import { parseResetTime, toFiniteNumber } from "./shared.js";
|
|
11
|
+
|
|
12
|
+
/** Map plan_v3 ids to dashboard labels (CodexBar-compatible). */
|
|
13
|
+
export function formatZedPlanLabel(rawPlan) {
|
|
14
|
+
const raw = String(rawPlan || "").trim();
|
|
15
|
+
if (!raw) return "Zed";
|
|
16
|
+
switch (raw.toLowerCase()) {
|
|
17
|
+
case "zed_free":
|
|
18
|
+
return "Zed Free";
|
|
19
|
+
case "zed_pro":
|
|
20
|
+
return "Zed Pro";
|
|
21
|
+
case "zed_pro_trial":
|
|
22
|
+
return "Zed Pro Trial";
|
|
23
|
+
case "zed_student":
|
|
24
|
+
return "Zed Student";
|
|
25
|
+
case "zed_business":
|
|
26
|
+
return "Zed Business";
|
|
27
|
+
default:
|
|
28
|
+
return raw
|
|
29
|
+
.replace(/_/g, " ")
|
|
30
|
+
.split(/\s+/)
|
|
31
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
32
|
+
.join(" ");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Parse Zed UsageLimit JSON: "unlimited", a number, or { limited: N }.
|
|
38
|
+
*/
|
|
39
|
+
export function parseZedUsageLimit(limit) {
|
|
40
|
+
if (limit == null) return { unlimited: false, total: 0 };
|
|
41
|
+
|
|
42
|
+
if (limit === "unlimited" || limit?.unlimited === true) {
|
|
43
|
+
return { unlimited: true, total: 0 };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (typeof limit === "number" && Number.isFinite(limit)) {
|
|
47
|
+
return { unlimited: false, total: Math.max(0, limit) };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (typeof limit === "string") {
|
|
51
|
+
const trimmed = limit.trim();
|
|
52
|
+
if (trimmed === "unlimited") return { unlimited: true, total: 0 };
|
|
53
|
+
const parsed = Number(trimmed);
|
|
54
|
+
if (Number.isFinite(parsed)) return { unlimited: false, total: Math.max(0, parsed) };
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const limited = limit.limited ?? limit.Limited;
|
|
58
|
+
if (typeof limited === "number" && Number.isFinite(limited)) {
|
|
59
|
+
return { unlimited: false, total: Math.max(0, limited) };
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return { unlimited: false, total: 0 };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** limit `{ limited: 0 }` on Pro/Student means token billing, not a 0-cap request quota. */
|
|
66
|
+
export function isZedTokenBillingModelRequestsLimit(limitRaw) {
|
|
67
|
+
const info = parseZedUsageLimit(limitRaw);
|
|
68
|
+
return !info.unlimited && info.total === 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function makeZedQuotaRow(name, usedRaw, limitRaw, resetAt = null) {
|
|
72
|
+
const used = Math.max(0, toFiniteNumber(usedRaw, 0));
|
|
73
|
+
const limitInfo = parseZedUsageLimit(limitRaw);
|
|
74
|
+
|
|
75
|
+
if (limitInfo.unlimited) {
|
|
76
|
+
return {
|
|
77
|
+
used,
|
|
78
|
+
total: 0,
|
|
79
|
+
remainingPercentage: 100,
|
|
80
|
+
resetAt: resetAt || null,
|
|
81
|
+
unlimited: true,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const total = limitInfo.total;
|
|
86
|
+
if (total <= 0) {
|
|
87
|
+
return {
|
|
88
|
+
used,
|
|
89
|
+
total: 0,
|
|
90
|
+
remainingPercentage: 0,
|
|
91
|
+
resetAt: resetAt || null,
|
|
92
|
+
unlimited: false,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const clampedUsed = Math.min(used, total);
|
|
97
|
+
const remaining = Math.max(0, total - clampedUsed);
|
|
98
|
+
return {
|
|
99
|
+
used: clampedUsed,
|
|
100
|
+
total,
|
|
101
|
+
remainingPercentage: (remaining / total) * 100,
|
|
102
|
+
resetAt: resetAt || null,
|
|
103
|
+
unlimited: false,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function usageBucketLimit(bucket) {
|
|
108
|
+
if (!bucket || typeof bucket !== "object") return null;
|
|
109
|
+
if (bucket.limit != null) return bucket.limit;
|
|
110
|
+
return bucket;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Map /client/users/me JSON → { plan, quotas, message } for the dashboard.
|
|
115
|
+
*/
|
|
116
|
+
export function parseZedAuthenticatedUserUsage(userInfo) {
|
|
117
|
+
const plan = userInfo?.plan || {};
|
|
118
|
+
const planId =
|
|
119
|
+
plan.plan_v3 || plan.plan_v2 || plan.plan || userInfo?.plan_v3 || null;
|
|
120
|
+
const resetAt =
|
|
121
|
+
parseResetTime(plan.subscription_period?.ended_at) ||
|
|
122
|
+
parseResetTime(plan.subscriptionPeriod?.endedAt) ||
|
|
123
|
+
null;
|
|
124
|
+
|
|
125
|
+
const quotas = {};
|
|
126
|
+
const usage = plan.usage || {};
|
|
127
|
+
|
|
128
|
+
const editPredictions = usage.edit_predictions || usage.editPredictions;
|
|
129
|
+
if (editPredictions) {
|
|
130
|
+
quotas["Edit Predictions"] = makeZedQuotaRow(
|
|
131
|
+
"Edit Predictions",
|
|
132
|
+
editPredictions.used,
|
|
133
|
+
editPredictions.limit,
|
|
134
|
+
resetAt,
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const modelRequests = usage.model_requests || usage.modelRequests;
|
|
139
|
+
if (modelRequests) {
|
|
140
|
+
const limitRaw =
|
|
141
|
+
modelRequests.limit != null
|
|
142
|
+
? modelRequests.limit
|
|
143
|
+
: usageBucketLimit(modelRequests)?.limit;
|
|
144
|
+
const limitInfo = parseZedUsageLimit(limitRaw);
|
|
145
|
+
// Token-billed plans report model_requests.limit=0 — not a request quota.
|
|
146
|
+
if (limitInfo.unlimited || limitInfo.total > 0) {
|
|
147
|
+
quotas["Hosted Model Requests"] = makeZedQuotaRow(
|
|
148
|
+
"Hosted Model Requests",
|
|
149
|
+
modelRequests.used,
|
|
150
|
+
limitRaw,
|
|
151
|
+
resetAt,
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const tokenBillingNote =
|
|
157
|
+
modelRequests &&
|
|
158
|
+
isZedTokenBillingModelRequestsLimit(
|
|
159
|
+
modelRequests.limit ?? usageBucketLimit(modelRequests)?.limit,
|
|
160
|
+
)
|
|
161
|
+
? "Hosted AI models are billed per token (not request count). Edit Predictions are tracked below. Token spend is on dashboard.zed.dev."
|
|
162
|
+
: null;
|
|
163
|
+
|
|
164
|
+
let planLabel = formatZedPlanLabel(planId);
|
|
165
|
+
if (plan.trial_started_at || plan.trialStartedAt) {
|
|
166
|
+
if (!/trial/i.test(planLabel)) planLabel = `${planLabel} (Trial active)`;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
let message = tokenBillingNote;
|
|
170
|
+
if (plan.has_overdue_invoices || plan.hasOverdueInvoices) {
|
|
171
|
+
message = "This Zed account has overdue invoices. Usage may be blocked until billing is resolved.";
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return {
|
|
175
|
+
plan: planLabel,
|
|
176
|
+
quotas,
|
|
177
|
+
message,
|
|
178
|
+
hasOverdueInvoices: !!(plan.has_overdue_invoices || plan.hasOverdueInvoices),
|
|
179
|
+
trialStarted: !!(plan.trial_started_at || plan.trialStartedAt),
|
|
180
|
+
planId: planId || null,
|
|
181
|
+
resetAt,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* @param {string|null|undefined} accessToken
|
|
187
|
+
* @param {object|null|undefined} providerSpecificData
|
|
188
|
+
* @param {object|null|undefined} proxyOptions
|
|
189
|
+
*/
|
|
190
|
+
export async function getZedUsage(
|
|
191
|
+
accessToken = null,
|
|
192
|
+
providerSpecificData = {},
|
|
193
|
+
proxyOptions = null,
|
|
194
|
+
) {
|
|
195
|
+
const psd = providerSpecificData || {};
|
|
196
|
+
const userId = psd.userId;
|
|
197
|
+
|
|
198
|
+
if (!accessToken || typeof accessToken !== "string" || !accessToken.trim()) {
|
|
199
|
+
return { message: "Zed access token not available. Re-connect Zed to view quota." };
|
|
200
|
+
}
|
|
201
|
+
if (!userId) {
|
|
202
|
+
return { message: "Zed credential is missing user id. Re-connect Zed to view quota." };
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const credentials = {
|
|
206
|
+
accessToken: accessToken.trim(),
|
|
207
|
+
providerSpecificData: psd,
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
try {
|
|
211
|
+
const userInfo = await fetchZedAuthenticatedUser(credentials, { proxyOptions });
|
|
212
|
+
return parseZedAuthenticatedUserUsage(userInfo);
|
|
213
|
+
} catch (error) {
|
|
214
|
+
const status = error?.status;
|
|
215
|
+
if (status === 401 || status === 403) {
|
|
216
|
+
return {
|
|
217
|
+
message: "Zed authentication failed. Sign in again from the dashboard or Zed editor.",
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
return { message: `Zed error: ${error.message || "Failed to fetch quota"}` };
|
|
221
|
+
}
|
|
222
|
+
}
|
|
@@ -14,11 +14,13 @@ import { getCodeBuddyCnUsage, getCodeBuddyIntlUsage } from "./usage/codebuddy-cn
|
|
|
14
14
|
import { getGrokCliUsage } from "./usage/grok-cli.js";
|
|
15
15
|
import { getKimiUsage } from "./usage/kimi.js";
|
|
16
16
|
import { getDeepseekUsage } from "./usage/deepseek.js";
|
|
17
|
+
import { getGroqUsage } from "./usage/groq.js";
|
|
18
|
+
import { getZedUsage } from "./usage/zed.js";
|
|
17
19
|
import { resolveQoderCredentials } from "./qoderModels.js";
|
|
20
|
+
import { getGlmUsage } from "./usage/glm.js";
|
|
18
21
|
import {
|
|
19
22
|
getIflowUsage,
|
|
20
23
|
getOllamaUsage,
|
|
21
|
-
getGlmUsage,
|
|
22
24
|
getVercelAiGatewayUsage,
|
|
23
25
|
getQoderUsage,
|
|
24
26
|
} from "./usage/misc.js";
|
|
@@ -54,6 +56,8 @@ const USAGE_HANDLERS = {
|
|
|
54
56
|
"grok-cli": (c) => getGrokCliUsage(c.accessToken, c.providerSpecificData, c.proxyOptions),
|
|
55
57
|
kimi: (c) => getKimiUsage(c.accessToken, c.apiKey, c.proxyOptions, c.providerSpecificData),
|
|
56
58
|
deepseek: (c) => getDeepseekUsage(c.apiKey, c.proxyOptions),
|
|
59
|
+
groq: (c) => getGroqUsage(c.apiKey, c.proxyOptions),
|
|
60
|
+
zed: (c) => getZedUsage(c.accessToken, c.providerSpecificData, c.proxyOptions),
|
|
57
61
|
};
|
|
58
62
|
|
|
59
63
|
export async function getUsageForProvider(connection, proxyOptions = null, options = {}) {
|
|
@@ -172,8 +172,8 @@ function getSystemId(credentials) {
|
|
|
172
172
|
);
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
async function fetchJson(url, options) {
|
|
176
|
-
const res = await proxyAwareFetch(url, options);
|
|
175
|
+
async function fetchJson(url, options, proxyOptions = null) {
|
|
176
|
+
const res = await proxyAwareFetch(url, options, proxyOptions);
|
|
177
177
|
const text = await res.text();
|
|
178
178
|
let data = null;
|
|
179
179
|
if (text) {
|
|
@@ -203,11 +203,15 @@ export async function fetchZedAuthenticatedUser(credentials, options = {}) {
|
|
|
203
203
|
const systemId = getSystemId(credentials);
|
|
204
204
|
if (systemId) headers[ZED_HEADERS.systemId] = systemId;
|
|
205
205
|
|
|
206
|
-
return fetchJson(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
206
|
+
return fetchJson(
|
|
207
|
+
zedUrl(config, "cloudBaseUrl", "/client/users/me", ZED_CLOUD_BASE_URL),
|
|
208
|
+
{
|
|
209
|
+
method: "GET",
|
|
210
|
+
headers,
|
|
211
|
+
signal: options.signal ?? undefined,
|
|
212
|
+
},
|
|
213
|
+
options.proxyOptions ?? null,
|
|
214
|
+
);
|
|
211
215
|
}
|
|
212
216
|
|
|
213
217
|
function normalizeOrganizationId(value) {
|
|
@@ -58,6 +58,15 @@ export function extractThinking(body) {
|
|
|
58
58
|
return { mode: "level", level: e };
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
// OpenAI chat / Responses shape — check effort first (zai sends both thinking object and reasoning.effort)
|
|
62
|
+
const effort = body.reasoning_effort ?? (typeof body.reasoning === "object" ? body.reasoning?.effort : null);
|
|
63
|
+
if (typeof effort === "string" && effort) {
|
|
64
|
+
const e = effort.toLowerCase();
|
|
65
|
+
if (e === "none" || e === "off") return { mode: "none" };
|
|
66
|
+
if (e === "auto") return { mode: "auto" };
|
|
67
|
+
return { mode: "level", level: e };
|
|
68
|
+
}
|
|
69
|
+
|
|
61
70
|
// Claude shape
|
|
62
71
|
const t = body.thinking;
|
|
63
72
|
if (t && typeof t === "object") {
|
|
@@ -69,15 +78,6 @@ export function extractThinking(body) {
|
|
|
69
78
|
}
|
|
70
79
|
}
|
|
71
80
|
|
|
72
|
-
// OpenAI chat / Responses shape
|
|
73
|
-
const effort = body.reasoning_effort ?? (typeof body.reasoning === "object" ? body.reasoning?.effort : null);
|
|
74
|
-
if (typeof effort === "string" && effort) {
|
|
75
|
-
const e = effort.toLowerCase();
|
|
76
|
-
if (e === "none" || e === "off") return { mode: "none" };
|
|
77
|
-
if (e === "auto") return { mode: "auto" };
|
|
78
|
-
return { mode: "level", level: e };
|
|
79
|
-
}
|
|
80
|
-
|
|
81
81
|
// Gemini shape (top-level, generationConfig, or request envelope)
|
|
82
82
|
const tc = body.thinkingConfig || body.generationConfig?.thinkingConfig || body.request?.generationConfig?.thinkingConfig;
|
|
83
83
|
if (tc && typeof tc === "object") {
|
|
@@ -105,12 +105,16 @@ export function extractThinking(body) {
|
|
|
105
105
|
// at the call-site where intent is snapshotted before format translation.
|
|
106
106
|
export const captureThinking = extractThinking;
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
const NATIVE_ONLY_FORMATS = new Set(["gemini-level", "gemini-budget", "claude-budget", "claude-adaptive", "kiro"]);
|
|
109
|
+
|
|
109
110
|
function resolveFormat(targetFormat, model, provider) {
|
|
110
111
|
const providerFmt = provider ? PROVIDERS[provider]?.thinkingFormat : null;
|
|
111
112
|
if (providerFmt) return providerFmt;
|
|
112
113
|
const caps = getCapabilitiesForModel(provider, model);
|
|
113
|
-
|
|
114
|
+
const isOpenAIWire = targetFormat === "openai" || targetFormat === "openai-responses";
|
|
115
|
+
if (caps.thinkingFormat && !(isOpenAIWire && NATIVE_ONLY_FORMATS.has(caps.thinkingFormat))) {
|
|
116
|
+
return caps.thinkingFormat;
|
|
117
|
+
}
|
|
114
118
|
return FORMAT_TO_NATIVE[targetFormat] || "openai";
|
|
115
119
|
}
|
|
116
120
|
|
|
@@ -237,6 +241,10 @@ function applyFormat(fmt, body, cfg, caps, supportedLevels) {
|
|
|
237
241
|
}
|
|
238
242
|
case "claude-adaptive": {
|
|
239
243
|
if (none && canDisable) { body.thinking = { type: "disabled" }; break; }
|
|
244
|
+
// Models that can disable thinking need the explicit adaptive switch.
|
|
245
|
+
// Permanently adaptive models such as Fable 5.1 accept effort directly.
|
|
246
|
+
if (canDisable) body.thinking = { type: "adaptive" };
|
|
247
|
+
else delete body.thinking;
|
|
240
248
|
const level = toLevel(eff);
|
|
241
249
|
body.output_config = { effort: level === "xhigh" ? "high" : level };
|
|
242
250
|
break;
|
|
@@ -264,6 +272,18 @@ function applyFormat(fmt, body, cfg, caps, supportedLevels) {
|
|
|
264
272
|
// Z.ai ignores thinking.disabled → must use enable_thinking:false to turn off.
|
|
265
273
|
if (none && canDisable) { body.enable_thinking = false; delete body.thinking; break; }
|
|
266
274
|
body.thinking = { type: "enabled" };
|
|
275
|
+
// reasoning_effort is only read by z.ai from GLM-5.2 onward — older GLM ignores it
|
|
276
|
+
// (see thinkingEffortSupported in capabilities.js). Skip on unsupported models so we
|
|
277
|
+
// don't send a field the API doesn't recognize.
|
|
278
|
+
if (caps.thinkingEffortSupported) {
|
|
279
|
+
const zaiLvl = toLevel(eff);
|
|
280
|
+
// GLM-5.3 only accepts exactly low|high|max (anything else errors); GLM-5.2 accepts
|
|
281
|
+
// a wider set but z.ai maps low/medium->high and xhigh->max server-side anyway, so
|
|
282
|
+
// this 3-value mapping matches both.
|
|
283
|
+
body.reasoning_effort = (zaiLvl === "low" || zaiLvl === "minimal") ? "low"
|
|
284
|
+
: (zaiLvl === "high" || zaiLvl === "medium") ? "high"
|
|
285
|
+
: "max";
|
|
286
|
+
}
|
|
267
287
|
break;
|
|
268
288
|
}
|
|
269
289
|
case "qwen": {
|
|
@@ -151,3 +151,17 @@ export function fixMissingToolResponses(body) {
|
|
|
151
151
|
return body;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
// Default `type: "custom"` on Claude-format tools that arrive without one.
|
|
155
|
+
// Anthropic's Claude tool schema requires `type` to be explicitly set; strict gateways
|
|
156
|
+
// (e.g., MiniMax Anthropic-compatible endpoint, error 2013) reject legacy payloads that
|
|
157
|
+
// omit it with HTTP 400. Tools that already carry a truthy `type` (e.g., `computer_use`,
|
|
158
|
+
// `bash`, `web_search_20250305`) are passed through untouched.
|
|
159
|
+
//
|
|
160
|
+
// Spread order matters: `{ ...tool, type: "custom" }` (spread first, override last)
|
|
161
|
+
// ensures that falsy `type` values (null, undefined, "") in the original tool don't
|
|
162
|
+
// overwrite the default. `{ type: "custom", ...tool }` would let `type: null` survive.
|
|
163
|
+
export function defaultClaudeToolType(tools) {
|
|
164
|
+
if (!Array.isArray(tools)) return tools;
|
|
165
|
+
return tools.map(tool => tool?.type ? tool : { ...tool, type: "custom" });
|
|
166
|
+
}
|
|
167
|
+
|