n9router 0.4.59 → 0.4.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +20 -18
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/routes-manifest.json +12 -0
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
- 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 +2 -2
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- 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 +1 -1
- 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 +6 -6
- 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-mcp-tools/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- 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 +2 -2
- 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/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/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/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 -1
- package/app/.next/server/app/api/models/custom/route.js +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/test/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/[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/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/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-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -0
- package/app/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -0
- package/app/.next/server/app/api/oauth/xiaomi-mimo/api-key/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +4 -0
- package/app/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -0
- package/app/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/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/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/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/stream/route.js +2 -2
- 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/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/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 -1
- package/app/.next/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js +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/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/version/route.js +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next/server/app/dashboard/pxpipe.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +6 -6
- 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 +6 -6
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.html +1 -1
- package/app/.next/server/app/dashboard/skills.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.html +1 -1
- package/app/.next/server/app/dashboard/token-saver.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +5 -5
- 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 +5 -5
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.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 +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- 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/1998.js +1 -1
- package/app/.next/server/chunks/2251.js +2 -2
- package/app/.next/server/chunks/24.js +1 -1
- package/app/.next/server/chunks/318.js +23 -15
- package/app/.next/server/chunks/3225.js +1 -1
- package/app/.next/server/chunks/3490.js +1 -0
- package/app/.next/server/chunks/3535.js +1 -1
- package/app/.next/server/chunks/3676.js +1 -0
- package/app/.next/server/chunks/3753.js +1 -1
- 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/3998.js +1 -0
- package/app/.next/server/chunks/4037.js +1 -1
- package/app/.next/server/chunks/412.js +5 -5
- package/app/.next/server/chunks/4123.js +1 -1
- package/app/.next/server/chunks/4152.js +1 -0
- package/app/.next/server/chunks/436.js +1 -1
- package/app/.next/server/chunks/5615.js +21 -2
- package/app/.next/server/chunks/5729.js +1 -1
- package/app/.next/server/chunks/6630.js +1 -1
- package/app/.next/server/chunks/6763.js +1 -1
- package/app/.next/server/chunks/6922.js +1 -1
- package/app/.next/server/chunks/7137.js +1 -1
- package/app/.next/server/chunks/7211.js +1 -1
- package/app/.next/server/chunks/7220.js +1 -0
- package/app/.next/server/chunks/7247.js +1 -1
- package/app/.next/server/chunks/7828.js +1 -1
- package/app/.next/server/chunks/8145.js +1 -1
- package/app/.next/server/chunks/8236.js +1 -1
- package/app/.next/server/chunks/{4940.js → 8351.js} +8 -8
- package/app/.next/server/chunks/8402.js +1 -1
- package/app/.next/server/chunks/8416.js +1 -0
- package/app/.next/server/chunks/8499.js +8 -8
- package/app/.next/server/chunks/8635.js +1 -1
- package/app/.next/server/chunks/869.js +1 -1
- package/app/.next/server/chunks/8895.js +10 -16
- package/app/.next/server/chunks/8920.js +1 -1
- package/app/.next/server/chunks/8965.js +1 -0
- package/app/.next/server/chunks/9927.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/1321-75194193c4ebeb63.js +1 -0
- package/app/.next/static/chunks/{5497-378030367985bec2.js → 5497-885ce51ad3573289.js} +5 -5
- package/app/.next/static/chunks/{511-12d7a4aee984e083.js → 7391-b0886b3efb5ba015.js} +11 -11
- package/app/.next/static/chunks/8198-022f6b876963a14e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-fbd0e639f6248423.js → page-3ac201b4c0d2f9aa.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-de0a6e91c2d4eedd.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-c8943c6168a7bc3f.js → page-37c7894b246793c9.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-07e99971e712f435.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-731ec27cfa6d662d.js +27 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-ae6574b656f3faf2.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/layout-29965adee8720b71.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-ide/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-targets/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/reset-password/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/acs/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/metadata/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/start/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/saml/test/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/donate/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/extras/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/restart/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/start/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/status/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/stop/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/internal/account-health/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/internal/request-detail/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/internal/usage/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/catalog-sync/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/disabled/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/health/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/install/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/logs/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/restart/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/start/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/stats/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/status/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/stop/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/selective/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/report/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/[...model]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/info/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/[id]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/edits/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/extensions/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/version/shutdown/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/app/page-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bec89eeae5edc8d0.js +1 -0
- package/app/.next/static/pVz30g5r-30_iNnN7XF0H/_buildManifest.js +1 -0
- package/app/open-sse/config/appConstants.js +3 -0
- package/app/open-sse/config/providerModels.js +1 -1
- package/app/open-sse/executors/antigravity.js +35 -19
- package/app/open-sse/executors/codex.js +11 -1
- package/app/open-sse/executors/default.js +12 -1
- package/app/open-sse/executors/index.js +6 -0
- package/app/open-sse/executors/kiro.js +36 -16
- package/app/open-sse/executors/opencode-go.js +182 -0
- package/app/open-sse/executors/qoder.js +150 -31
- package/app/open-sse/executors/xiaomi-mimo.js +99 -0
- package/app/open-sse/handlers/chatCore/nonStreamingHandler.js +6 -11
- package/app/open-sse/handlers/chatCore/streamingHandler.js +5 -5
- package/app/open-sse/handlers/chatCore.js +31 -5
- package/app/open-sse/handlers/imageProviders/codex.js +26 -6
- package/app/open-sse/handlers/videoCore.js +55 -12
- package/app/open-sse/handlers/videoProviders/index.js +13 -0
- package/app/open-sse/handlers/videoProviders/openrouter.js +39 -0
- package/app/open-sse/handlers/videoProviders/vertex.js +159 -0
- package/app/open-sse/providers/capabilities.js +63 -20
- package/app/open-sse/providers/pricing.js +1 -0
- package/app/open-sse/providers/registry/antigravity.js +1 -0
- package/app/open-sse/providers/registry/api-airforce.js +6 -3
- package/app/open-sse/providers/registry/cline.js +4 -0
- package/app/open-sse/providers/registry/clinepass.js +6 -1
- package/app/open-sse/providers/registry/codebuddy-cn.js +12 -11
- package/app/open-sse/providers/registry/codex.js +15 -1
- package/app/open-sse/providers/registry/deepseek.js +15 -0
- package/app/open-sse/providers/registry/glm-cn.js +1 -0
- package/app/open-sse/providers/registry/glm.js +1 -0
- package/app/open-sse/providers/registry/index.js +0 -1
- package/app/open-sse/providers/registry/minimax-cn.js +1 -0
- package/app/open-sse/providers/registry/minimax.js +1 -0
- package/app/open-sse/providers/registry/openai.js +3 -0
- package/app/open-sse/providers/registry/opencode-go.js +22 -0
- package/app/open-sse/providers/registry/openrouter.js +10 -1
- package/app/open-sse/providers/registry/qoder.js +5 -2
- package/app/open-sse/providers/registry/vertex.js +8 -1
- package/app/open-sse/providers/registry/xiaomi-mimo.js +31 -1
- package/app/open-sse/providers/thinkingLevels.js +9 -3
- package/app/open-sse/rtk/systemInject.js +28 -72
- package/app/open-sse/services/clinepassModels.js +47 -15
- package/app/open-sse/services/projectId.js +8 -5
- package/app/open-sse/services/qoderModels.js +24 -0
- package/app/open-sse/services/thoughtSignatureStore.js +170 -0
- package/app/open-sse/services/tokenRefresh.js +2 -0
- package/app/open-sse/services/usage/antigravity-weekly.js +150 -0
- package/app/open-sse/services/usage/claude.js +16 -0
- package/app/open-sse/services/usage/codex.js +8 -1
- package/app/open-sse/services/usage/google.js +60 -2
- package/app/open-sse/services/usage/opencode-go.js +107 -0
- package/app/open-sse/services/usage/xiaomi-mimo.js +125 -0
- package/app/open-sse/services/usage.js +4 -0
- package/app/open-sse/shared/clineAuth.js +8 -1
- package/app/open-sse/shared/clineEnvelope.js +19 -0
- package/app/open-sse/shared/mimoAccount.js +264 -0
- package/app/open-sse/shared/qoder/attachments.js +341 -0
- package/app/open-sse/shared/qoder/constants.js +37 -1
- package/app/open-sse/shared/qoder/contextTier.js +160 -0
- package/app/open-sse/shared/qoder/sse.js +208 -0
- package/app/open-sse/translator/concerns/paramSupport.js +3 -0
- package/app/open-sse/translator/concerns/thinkingUnified.js +1 -1
- package/app/open-sse/translator/concerns/toolCall.js +15 -0
- package/app/open-sse/translator/formats/claude.js +122 -6
- package/app/open-sse/translator/formats/gemini.js +18 -0
- package/app/open-sse/translator/formats/responsesApi.js +53 -0
- package/app/open-sse/translator/request/claude-to-kiro.js +3 -6
- package/app/open-sse/translator/request/claude-to-openai.js +7 -0
- package/app/open-sse/translator/request/openai-responses.js +38 -17
- package/app/open-sse/translator/request/openai-to-gemini.js +36 -27
- package/app/open-sse/translator/request/openai-to-kiro.js +3 -6
- package/app/open-sse/translator/response/gemini-to-openai.js +23 -7
- package/app/open-sse/translator/response/openai-responses.js +45 -6
- package/app/open-sse/utils/codexToolSchema.js +80 -0
- package/app/open-sse/utils/stream.js +6 -4
- package/app/package.json +1 -1
- package/app/src/lib/oauth/providers/xiaomi-mimo.js +123 -0
- package/app/src/shared/constants/cliTools.js +29 -27
- package/app/src/sse/services/backgroundTokenRefresh.js +35 -46
- package/package.json +1 -1
- package/app/.next/server/chunks/2051.js +0 -1
- package/app/.next/server/chunks/5612.js +0 -1
- package/app/.next/server/chunks/7637.js +0 -1
- package/app/.next/server/chunks/9441.js +0 -1
- package/app/.next/server/chunks/9896.js +0 -1
- package/app/.next/static/4aSob9BYLKkmEZKpVTTCD/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1321-c56f714b48ec75b1.js +0 -1
- package/app/.next/static/chunks/8198-2f2b63f52e0d44f9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-9dd5b20bf0221838.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-0d1269add49cb3e2.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e6ee66418932601a.js +0 -27
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c48d4a86c94ab13a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-a0e61866894b6cee.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-ide/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-targets/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/reset-password/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/acs/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/metadata/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/start/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/saml/test/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/status/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/donate/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/extras/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/restart/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/start/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/status/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/stop/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/internal/account-health/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/internal/request-detail/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/internal/usage/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/catalog-sync/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/disabled/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/health/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/install/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/logs/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/restart/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/start/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/stats/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/status/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/stop/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/selective/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/report/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/[...model]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/info/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/search/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/[id]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/edits/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/extensions/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/version/shutdown/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/app/page-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-b3fe65cd692af32a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b3fe65cd692af32a.js +0 -1
- /package/app/.next/static/{4aSob9BYLKkmEZKpVTTCD → pVz30g5r-30_iNnN7XF0H}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { makeKv } from "../../src/lib/kvStore.js";
|
|
2
|
+
|
|
3
|
+
const MAX_SIGNATURES = 2000;
|
|
4
|
+
const MAX_PERSISTED_SIGNATURES = 10_000;
|
|
5
|
+
const MEMORY_TTL_MS = 1000 * 60 * 60; // 1 hour
|
|
6
|
+
const PERSISTED_TTL_MS = 1000 * 60 * 60 * 24 * 7; // 7 days
|
|
7
|
+
const SCOPE = "gemini_thought_signatures";
|
|
8
|
+
|
|
9
|
+
const signatureKv = makeKv(SCOPE);
|
|
10
|
+
const memorySignatures = new Map();
|
|
11
|
+
let pruneCounter = 0;
|
|
12
|
+
|
|
13
|
+
function pruneMemoryExpired() {
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
for (const [key, value] of memorySignatures.entries()) {
|
|
16
|
+
if (value.expiresAt <= now) {
|
|
17
|
+
memorySignatures.delete(key);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
while (memorySignatures.size > MAX_SIGNATURES) {
|
|
22
|
+
const oldestKey = memorySignatures.keys().next().value;
|
|
23
|
+
if (!oldestKey) break;
|
|
24
|
+
memorySignatures.delete(oldestKey);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async function maybePrunePersisted() {
|
|
29
|
+
pruneCounter++;
|
|
30
|
+
if (pruneCounter % 100 !== 0) return;
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
const all = await signatureKv.getAll();
|
|
34
|
+
const keys = Object.keys(all);
|
|
35
|
+
const now = Date.now();
|
|
36
|
+
const expiredKeys = [];
|
|
37
|
+
const valid = [];
|
|
38
|
+
|
|
39
|
+
for (const k of keys) {
|
|
40
|
+
const entry = all[k];
|
|
41
|
+
if (!entry || typeof entry.signature !== "string" || (entry.expiresAt && entry.expiresAt <= now)) {
|
|
42
|
+
expiredKeys.push(k);
|
|
43
|
+
} else {
|
|
44
|
+
valid.push({ key: k, createdAt: entry.createdAt || 0 });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
for (const k of expiredKeys) {
|
|
49
|
+
await signatureKv.remove(k).catch(() => {});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (valid.length > MAX_PERSISTED_SIGNATURES) {
|
|
53
|
+
valid.sort((a, b) => b.createdAt - a.createdAt);
|
|
54
|
+
const toRemove = valid.slice(MAX_PERSISTED_SIGNATURES);
|
|
55
|
+
for (const item of toRemove) {
|
|
56
|
+
await signatureKv.remove(item.key).catch(() => {});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
} catch {
|
|
60
|
+
// Fail-open
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Store a thought signature for a tool_call_id with optional sessionId namespace (RAM + persisted kv async)
|
|
66
|
+
*/
|
|
67
|
+
export function storeGeminiThoughtSignature(toolCallId, signature, sessionId = null) {
|
|
68
|
+
if (typeof toolCallId !== "string" || !toolCallId) return;
|
|
69
|
+
if (typeof signature !== "string" || !signature) return;
|
|
70
|
+
|
|
71
|
+
const now = Date.now();
|
|
72
|
+
pruneMemoryExpired();
|
|
73
|
+
|
|
74
|
+
const keys = [];
|
|
75
|
+
if (sessionId && typeof sessionId === "string") {
|
|
76
|
+
keys.push(`${sessionId}:${toolCallId}`);
|
|
77
|
+
}
|
|
78
|
+
keys.push(toolCallId);
|
|
79
|
+
|
|
80
|
+
for (const k of keys) {
|
|
81
|
+
memorySignatures.set(k, {
|
|
82
|
+
signature,
|
|
83
|
+
expiresAt: now + MEMORY_TTL_MS,
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Async persist to the kv store without blocking
|
|
87
|
+
signatureKv.set(k, {
|
|
88
|
+
signature,
|
|
89
|
+
createdAt: now,
|
|
90
|
+
expiresAt: now + PERSISTED_TTL_MS,
|
|
91
|
+
}).catch(() => {});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
maybePrunePersisted().catch(() => {});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Retrieve a thought signature by tool_call_id (RAM first, then persisted kv fallback)
|
|
99
|
+
*/
|
|
100
|
+
export async function getGeminiThoughtSignature(toolCallId, sessionId = null) {
|
|
101
|
+
if (typeof toolCallId !== "string" || !toolCallId) return null;
|
|
102
|
+
|
|
103
|
+
pruneMemoryExpired();
|
|
104
|
+
|
|
105
|
+
if (sessionId && typeof sessionId === "string") {
|
|
106
|
+
const sessionKey = `${sessionId}:${toolCallId}`;
|
|
107
|
+
const sessionEntry = memorySignatures.get(sessionKey);
|
|
108
|
+
if (sessionEntry && sessionEntry.expiresAt > Date.now()) {
|
|
109
|
+
return sessionEntry.signature;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const entry = memorySignatures.get(toolCallId);
|
|
114
|
+
if (entry && entry.expiresAt > Date.now()) {
|
|
115
|
+
return entry.signature;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
try {
|
|
119
|
+
if (sessionId && typeof sessionId === "string") {
|
|
120
|
+
const sessionKey = `${sessionId}:${toolCallId}`;
|
|
121
|
+
const sessionRow = await signatureKv.get(sessionKey);
|
|
122
|
+
if (sessionRow && typeof sessionRow.signature === "string" && (!sessionRow.expiresAt || sessionRow.expiresAt > Date.now())) {
|
|
123
|
+
memorySignatures.set(sessionKey, {
|
|
124
|
+
signature: sessionRow.signature,
|
|
125
|
+
expiresAt: Date.now() + MEMORY_TTL_MS,
|
|
126
|
+
});
|
|
127
|
+
return sessionRow.signature;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const row = await signatureKv.get(toolCallId);
|
|
132
|
+
if (row && typeof row.signature === "string") {
|
|
133
|
+
if (row.expiresAt && row.expiresAt <= Date.now()) {
|
|
134
|
+
signatureKv.remove(toolCallId).catch(() => {});
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
memorySignatures.set(toolCallId, {
|
|
138
|
+
signature: row.signature,
|
|
139
|
+
expiresAt: Date.now() + MEMORY_TTL_MS,
|
|
140
|
+
});
|
|
141
|
+
return row.signature;
|
|
142
|
+
}
|
|
143
|
+
} catch {
|
|
144
|
+
// Fail-open
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Synchronous get from RAM cache only (for sync translators)
|
|
152
|
+
*/
|
|
153
|
+
export function getGeminiThoughtSignatureSync(toolCallId, sessionId = null) {
|
|
154
|
+
if (typeof toolCallId !== "string" || !toolCallId) return null;
|
|
155
|
+
pruneMemoryExpired();
|
|
156
|
+
|
|
157
|
+
if (sessionId && typeof sessionId === "string") {
|
|
158
|
+
const sessionKey = `${sessionId}:${toolCallId}`;
|
|
159
|
+
const sessionEntry = memorySignatures.get(sessionKey);
|
|
160
|
+
if (sessionEntry && sessionEntry.expiresAt > Date.now()) {
|
|
161
|
+
return sessionEntry.signature;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const entry = memorySignatures.get(toolCallId);
|
|
166
|
+
if (entry && entry.expiresAt > Date.now()) {
|
|
167
|
+
return entry.signature;
|
|
168
|
+
}
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
@@ -148,6 +148,8 @@ const REFRESH_HANDLERS = {
|
|
|
148
148
|
"codebuddy-intl": (c, log) => refreshCodebuddyIntlToken(c.refreshToken, log),
|
|
149
149
|
trae: (c, log) => refreshTraeToken(c.refreshToken, c, log),
|
|
150
150
|
cline: (c, log) => refreshClineToken(c.refreshToken, log),
|
|
151
|
+
// ClinePass shares Cline's WorkOS auth endpoints, so the same refresh works.
|
|
152
|
+
clinepass: (c, log) => refreshClineToken(c.refreshToken, log),
|
|
151
153
|
zed: () => refreshZedToken(),
|
|
152
154
|
windsurf: (c, log) => refreshWindsurfToken(c, log),
|
|
153
155
|
// Kimi Code OAuth (merged into id `kimi`); legacy id still routes here
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Antigravity weekly quota — best-effort retrieval from retrieveUserQuotaSummary.
|
|
3
|
+
* Failure never breaks existing per-model quota display.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { U, parseResetTime, fetchWithTimeout } from "./shared.js";
|
|
7
|
+
import { ANTIGRAVITY_IDE_USER_AGENT, ANTIGRAVITY_IDE_VERSION } from "../../providers/shared.js";
|
|
8
|
+
|
|
9
|
+
// — Weekly quota summary config ——————————————————————————————
|
|
10
|
+
const WEEKLY_CONFIG = {
|
|
11
|
+
...U("antigravity"),
|
|
12
|
+
userAgent: ANTIGRAVITY_IDE_USER_AGENT,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// — Cache: TTL + in-flight dedup per project ———————————————
|
|
16
|
+
const WEEKLY_CACHE_TTL_MS = 180_000; // 3 minutes
|
|
17
|
+
const weeklyCache = new Map(); // cacheKey -> { result, expiresAt } | { promise }
|
|
18
|
+
|
|
19
|
+
function cacheKey(accessToken, projectId) {
|
|
20
|
+
return `${accessToken}::${projectId || ""}`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Exported for tests only
|
|
24
|
+
export function _clearWeeklyCache() {
|
|
25
|
+
weeklyCache.clear();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// — Group-name to stable key mapping ——————————————————————
|
|
29
|
+
const GROUP_MATCHERS = [
|
|
30
|
+
{ pattern: /gemini/i, key: "gemini_weekly", displayName: "Gemini (Weekly)" },
|
|
31
|
+
{ pattern: /claude|gpt/i, key: "claude_gpt_weekly", displayName: "Claude & GPT (Weekly)" },
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Parse a retrieveUserQuotaSummary response into normalized weekly quotas.
|
|
36
|
+
* Pure function — safe to unit-test without network.
|
|
37
|
+
*
|
|
38
|
+
* @param {Object|null} data Raw JSON response
|
|
39
|
+
* @returns {Object} e.g. { gemini_weekly: { used, total, ... }, claude_gpt_weekly: { ... } }
|
|
40
|
+
*/
|
|
41
|
+
export function parseWeeklyQuotaSummary(data) {
|
|
42
|
+
if (!data || typeof data !== "object") return {};
|
|
43
|
+
|
|
44
|
+
// Groups may live at data.groups or data.quotaSummary.groups
|
|
45
|
+
const groups = Array.isArray(data.groups)
|
|
46
|
+
? data.groups
|
|
47
|
+
: Array.isArray(data.quotaSummary?.groups)
|
|
48
|
+
? data.quotaSummary.groups
|
|
49
|
+
: null;
|
|
50
|
+
|
|
51
|
+
if (!groups) return {};
|
|
52
|
+
|
|
53
|
+
const result = {};
|
|
54
|
+
|
|
55
|
+
for (const group of groups) {
|
|
56
|
+
if (!group || typeof group !== "object") continue;
|
|
57
|
+
const displayName = group.displayName || "";
|
|
58
|
+
|
|
59
|
+
const buckets = Array.isArray(group.buckets) ? group.buckets : [];
|
|
60
|
+
for (const bucket of buckets) {
|
|
61
|
+
if (!bucket || typeof bucket !== "object") continue;
|
|
62
|
+
|
|
63
|
+
// Identify weekly buckets by checking bucketId + displayName for "weekly"
|
|
64
|
+
const bucketText = `${bucket.bucketId || ""} ${bucket.displayName || ""}`.toLowerCase();
|
|
65
|
+
if (!bucketText.includes("weekly")) continue;
|
|
66
|
+
|
|
67
|
+
// Skip disabled buckets
|
|
68
|
+
if (bucket.disabled === true) continue;
|
|
69
|
+
|
|
70
|
+
const remainingFraction = Number(bucket.remainingFraction);
|
|
71
|
+
if (!Number.isFinite(remainingFraction)) continue;
|
|
72
|
+
|
|
73
|
+
// Match group to a known family
|
|
74
|
+
for (const matcher of GROUP_MATCHERS) {
|
|
75
|
+
if (matcher.pattern.test(displayName)) {
|
|
76
|
+
const total = 1000;
|
|
77
|
+
const remaining = Math.round(total * remainingFraction);
|
|
78
|
+
const used = Math.max(0, total - remaining);
|
|
79
|
+
|
|
80
|
+
result[matcher.key] = {
|
|
81
|
+
used,
|
|
82
|
+
total,
|
|
83
|
+
resetAt: parseResetTime(bucket.resetTime),
|
|
84
|
+
remainingPercentage: remainingFraction * 100,
|
|
85
|
+
unlimited: false,
|
|
86
|
+
displayName: matcher.displayName,
|
|
87
|
+
};
|
|
88
|
+
break; // first matching bucket per family wins
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Fetch weekly quota summary — cached, deduped, never throws.
|
|
99
|
+
*/
|
|
100
|
+
export async function fetchAntigravityWeeklyQuota(accessToken, projectId, proxyOptions = null) {
|
|
101
|
+
const key = cacheKey(accessToken, projectId);
|
|
102
|
+
|
|
103
|
+
// Serve in-flight or cached
|
|
104
|
+
const hit = weeklyCache.get(key);
|
|
105
|
+
if (hit?.promise) return hit.promise;
|
|
106
|
+
if (hit && hit.expiresAt > Date.now()) return hit.result;
|
|
107
|
+
|
|
108
|
+
const promise = (async () => {
|
|
109
|
+
try {
|
|
110
|
+
const url = WEEKLY_CONFIG.quotaSummaryApiUrl;
|
|
111
|
+
if (!url) return {};
|
|
112
|
+
|
|
113
|
+
const response = await fetchWithTimeout(url, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers: {
|
|
116
|
+
"Authorization": `Bearer ${accessToken}`,
|
|
117
|
+
"User-Agent": WEEKLY_CONFIG.userAgent,
|
|
118
|
+
"Content-Type": "application/json",
|
|
119
|
+
"X-Client-Name": "antigravity",
|
|
120
|
+
"X-Client-Version": ANTIGRAVITY_IDE_VERSION,
|
|
121
|
+
},
|
|
122
|
+
body: JSON.stringify({
|
|
123
|
+
...(projectId ? { project: projectId } : {}),
|
|
124
|
+
}),
|
|
125
|
+
}, 10000, proxyOptions);
|
|
126
|
+
|
|
127
|
+
if (!response.ok) return {};
|
|
128
|
+
|
|
129
|
+
const data = await response.json();
|
|
130
|
+
return parseWeeklyQuotaSummary(data);
|
|
131
|
+
} catch {
|
|
132
|
+
return {};
|
|
133
|
+
}
|
|
134
|
+
})();
|
|
135
|
+
|
|
136
|
+
weeklyCache.set(key, { promise });
|
|
137
|
+
|
|
138
|
+
try {
|
|
139
|
+
const result = await promise;
|
|
140
|
+
if (result && Object.keys(result).length > 0) {
|
|
141
|
+
weeklyCache.set(key, { result, expiresAt: Date.now() + WEEKLY_CACHE_TTL_MS });
|
|
142
|
+
} else {
|
|
143
|
+
weeklyCache.delete(key);
|
|
144
|
+
}
|
|
145
|
+
return result;
|
|
146
|
+
} catch {
|
|
147
|
+
weeklyCache.delete(key);
|
|
148
|
+
return {};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -110,6 +110,22 @@ async function fetchClaudeUsageRaw(accessToken, proxyOptions = null) {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
// Model-scoped weekly limits (e.g. Fable) arrive in limits[], not as
|
|
114
|
+
// seven_day_* keys: { kind: "weekly_scoped", percent, resets_at,
|
|
115
|
+
// scope: { model: { display_name: "Fable" } } }. No limits entry means
|
|
116
|
+
// the account has no such window — omit the row, never fabricate one.
|
|
117
|
+
if (Array.isArray(data.limits)) {
|
|
118
|
+
for (const limit of data.limits) {
|
|
119
|
+
if (limit?.kind !== "weekly_scoped") continue;
|
|
120
|
+
const modelName = String(limit?.scope?.model?.display_name || "").trim().toLowerCase();
|
|
121
|
+
if (!modelName || typeof limit.percent !== "number") continue;
|
|
122
|
+
quotas[`weekly ${modelName} (7d)`] = createQuotaObject({
|
|
123
|
+
utilization: Math.max(0, Math.min(100, limit.percent)),
|
|
124
|
+
resets_at: limit.resets_at,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
113
129
|
return {
|
|
114
130
|
plan: "Claude Code",
|
|
115
131
|
extraUsage: data.extra_usage ?? null,
|
|
@@ -21,6 +21,13 @@ function toIsoDate(value) {
|
|
|
21
21
|
return Number.isFinite(time) ? date.toISOString() : null;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
function errorMessage(value, fallback) {
|
|
25
|
+
if (!value) return fallback;
|
|
26
|
+
if (typeof value === "string") return value;
|
|
27
|
+
if (typeof value.message === "string") return value.message;
|
|
28
|
+
return JSON.stringify(value);
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
function getCodexAccountId(providerSpecificData) {
|
|
25
32
|
return providerSpecificData?.workspaceId || providerSpecificData?.accountId || providerSpecificData?.chatgptAccountId || null;
|
|
26
33
|
}
|
|
@@ -162,7 +169,7 @@ export async function getCodexRateLimitResetCredits(accessToken, proxyOptions =
|
|
|
162
169
|
}
|
|
163
170
|
|
|
164
171
|
if (!response.ok) {
|
|
165
|
-
const message = data?.message || data?.error || data?.detail
|
|
172
|
+
const message = errorMessage(data?.message || data?.error || data?.detail, `Codex reset credits API unavailable (${response.status}).`);
|
|
166
173
|
throw new Error(message);
|
|
167
174
|
}
|
|
168
175
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { CLIENT_METADATA } from "../../config/appConstants.js";
|
|
6
6
|
import { ANTIGRAVITY_IDE_USER_AGENT, ANTIGRAVITY_IDE_VERSION, ANTIGRAVITY_OAUTH_CLIENT } from "../../providers/shared.js";
|
|
7
7
|
import { U, parseResetTime, normalizeCloudCodeProjectId, fetchWithTimeout } from "./shared.js";
|
|
8
|
+
import { fetchAntigravityWeeklyQuota } from "./antigravity-weekly.js";
|
|
8
9
|
|
|
9
10
|
// Antigravity API config (from Quotio) — urls from registry, oauth client + dynamic UA kept here
|
|
10
11
|
const ANTIGRAVITY_CONFIG = {
|
|
@@ -185,8 +186,15 @@ export async function getAntigravityUsage(accessToken, providerSpecificData, pro
|
|
|
185
186
|
}
|
|
186
187
|
const quotas = {};
|
|
187
188
|
|
|
188
|
-
//
|
|
189
|
-
|
|
189
|
+
// Detect tier: free-tier accounts only have weekly quotas (no separate 5h window).
|
|
190
|
+
// On free-tier, fetchAvailableModels returns misleading per-model quota info
|
|
191
|
+
// (missing remainingFraction defaults to 0, or reflects the weekly limit not a 5h window).
|
|
192
|
+
const paidTierId = subscriptionInfo?.paidTier?.id;
|
|
193
|
+
const isFreeTier = !paidTierId || paidTierId === "free-tier";
|
|
194
|
+
|
|
195
|
+
// Parse model quotas only for paid-tier accounts.
|
|
196
|
+
// Free-tier accounts skip this — their only meaningful quota is the weekly limit.
|
|
197
|
+
if (!isFreeTier && data.models) {
|
|
190
198
|
// Filter only recommended/important models (must match PROVIDER_MODELS ag ids,
|
|
191
199
|
// plus live fetchAvailableModels keys that have not been split into tiers yet).
|
|
192
200
|
const importantModels = {
|
|
@@ -245,6 +253,56 @@ export async function getAntigravityUsage(accessToken, providerSpecificData, pro
|
|
|
245
253
|
}
|
|
246
254
|
}
|
|
247
255
|
|
|
256
|
+
// Best-effort weekly quota overlay — never blocks or breaks per-model results
|
|
257
|
+
try {
|
|
258
|
+
const weeklyQuotas = await fetchAntigravityWeeklyQuota(
|
|
259
|
+
accessToken,
|
|
260
|
+
projectId,
|
|
261
|
+
proxyOptions
|
|
262
|
+
);
|
|
263
|
+
|
|
264
|
+
// Reconcile weekly quota against model family status:
|
|
265
|
+
// If every model in a family is locked/exhausted (remainingPercentage === 0)
|
|
266
|
+
// until a future reset time, the weekly limit cannot be 100% available.
|
|
267
|
+
// On Google's Free Starter tier, retrieveUserQuotaSummary buggily reports
|
|
268
|
+
// remainingFraction: 1 even after the starter quota is depleted and all models 429.
|
|
269
|
+
const entries = Object.entries(quotas);
|
|
270
|
+
const geminiModels = entries.filter(([k]) => k.startsWith("gemini-") && !k.includes("image"));
|
|
271
|
+
const claudeModels = entries.filter(([k]) => k.startsWith("claude-"));
|
|
272
|
+
|
|
273
|
+
if (weeklyQuotas.gemini_weekly && geminiModels.length > 0) {
|
|
274
|
+
const allGeminiExhausted = geminiModels.every(([, q]) => (q.remainingPercentage ?? 0) === 0);
|
|
275
|
+
if (allGeminiExhausted && weeklyQuotas.gemini_weekly.remainingPercentage > 0) {
|
|
276
|
+
const maxResetAt = geminiModels.reduce((max, [, q]) =>
|
|
277
|
+
!max || (q.resetAt && new Date(q.resetAt) > new Date(max)) ? q.resetAt : max, null
|
|
278
|
+
);
|
|
279
|
+
weeklyQuotas.gemini_weekly.used = weeklyQuotas.gemini_weekly.total;
|
|
280
|
+
weeklyQuotas.gemini_weekly.remainingPercentage = 0;
|
|
281
|
+
if (maxResetAt) {
|
|
282
|
+
weeklyQuotas.gemini_weekly.resetAt = maxResetAt;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
if (weeklyQuotas.claude_gpt_weekly && claudeModels.length > 0) {
|
|
288
|
+
const allClaudeExhausted = claudeModels.every(([, q]) => (q.remainingPercentage ?? 0) === 0);
|
|
289
|
+
if (allClaudeExhausted && weeklyQuotas.claude_gpt_weekly.remainingPercentage > 0) {
|
|
290
|
+
const maxResetAt = claudeModels.reduce((max, [, q]) =>
|
|
291
|
+
!max || (q.resetAt && new Date(q.resetAt) > new Date(max)) ? q.resetAt : max, null
|
|
292
|
+
);
|
|
293
|
+
weeklyQuotas.claude_gpt_weekly.used = weeklyQuotas.claude_gpt_weekly.total;
|
|
294
|
+
weeklyQuotas.claude_gpt_weekly.remainingPercentage = 0;
|
|
295
|
+
if (maxResetAt) {
|
|
296
|
+
weeklyQuotas.claude_gpt_weekly.resetAt = maxResetAt;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
Object.assign(quotas, weeklyQuotas);
|
|
302
|
+
} catch {
|
|
303
|
+
// Silently ignore — weekly is best-effort
|
|
304
|
+
}
|
|
305
|
+
|
|
248
306
|
return {
|
|
249
307
|
plan: subscriptionInfo?.currentTier?.name || "Unknown",
|
|
250
308
|
quotas,
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode Go usage — GET https://opencode.ai/zen/go/v1/usage
|
|
3
|
+
* Auth: Bearer <apiKey>
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { proxyAwareFetch } from "../../utils/proxyFetch.js";
|
|
7
|
+
import { parseResetTime, toFiniteNumber, U } from "./shared.js";
|
|
8
|
+
|
|
9
|
+
const USAGE_URL = U("opencode-go").url;
|
|
10
|
+
const QUOTA_NAMES = {
|
|
11
|
+
rolling: "Rolling",
|
|
12
|
+
weekly: "Weekly",
|
|
13
|
+
monthly: "Monthly",
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
function parsePercent(value) {
|
|
17
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
18
|
+
if (typeof value === "string" && value.trim()) {
|
|
19
|
+
const parsed = Number(value);
|
|
20
|
+
if (Number.isFinite(parsed)) return parsed;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export async function getOpenCodeGoUsage(apiKey = null, proxyOptions = null) {
|
|
26
|
+
if (!apiKey || typeof apiKey !== "string" || !apiKey.trim()) {
|
|
27
|
+
return {
|
|
28
|
+
message: "OpenCode Go API key not available. Add a key to view usage.",
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
const response = await proxyAwareFetch(
|
|
34
|
+
USAGE_URL,
|
|
35
|
+
{
|
|
36
|
+
method: "GET",
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `Bearer ${apiKey.trim()}`,
|
|
39
|
+
Accept: "application/json",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
proxyOptions,
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
if (response.status === 401) {
|
|
46
|
+
return {
|
|
47
|
+
plan: "OpenCode Go",
|
|
48
|
+
message: "OpenCode Go authentication failed. Check the API key.",
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (response.status === 403) {
|
|
53
|
+
const error = await response.json().catch(() => null);
|
|
54
|
+
const subscriptionRequired = error?.error?.type === "EntitlementError";
|
|
55
|
+
return {
|
|
56
|
+
plan: "OpenCode Go",
|
|
57
|
+
message: subscriptionRequired
|
|
58
|
+
? "OpenCode Go subscription required for this API key."
|
|
59
|
+
: "OpenCode Go access forbidden for this API key.",
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
return {
|
|
65
|
+
plan: "OpenCode Go",
|
|
66
|
+
message: `OpenCode Go usage API error (${response.status}).`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const data = await response.json().catch(() => null);
|
|
71
|
+
if (!data?.usage || typeof data.usage !== "object") {
|
|
72
|
+
return {
|
|
73
|
+
plan: "OpenCode Go",
|
|
74
|
+
message: "OpenCode Go usage response did not contain quota data.",
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const quotas = {};
|
|
79
|
+
for (const [period, name] of Object.entries(QUOTA_NAMES)) {
|
|
80
|
+
const quota = data.usage[period];
|
|
81
|
+
if (!quota || typeof quota !== "object") continue;
|
|
82
|
+
const percent = parsePercent(quota.percent);
|
|
83
|
+
if (percent === null) continue;
|
|
84
|
+
const used = Math.max(0, Math.min(100, toFiniteNumber(percent, 0)));
|
|
85
|
+
quotas[name] = {
|
|
86
|
+
used,
|
|
87
|
+
total: 100,
|
|
88
|
+
remaining: 100 - used,
|
|
89
|
+
remainingPercentage: 100 - used,
|
|
90
|
+
resetAt: parseResetTime(quota.resetsAt),
|
|
91
|
+
unlimited: false,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
if (Object.keys(quotas).length === 0) {
|
|
97
|
+
return {
|
|
98
|
+
plan: "OpenCode Go",
|
|
99
|
+
message: "OpenCode Go usage response did not contain valid quota data.",
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return { plan: "OpenCode Go", quotas };
|
|
104
|
+
} catch (error) {
|
|
105
|
+
return { message: `OpenCode Go error: ${error.message}` };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Xiaomi MiMo usage — weekly quota from the Xiaomi account session.
|
|
3
|
+
*
|
|
4
|
+
* Primary path: GET {mimo-server}/api/user/usage authorized by the account-session
|
|
5
|
+
* cookie (see shared/mimoAccount.js). Response: { code: 0, data: { percent (remaining
|
|
6
|
+
* %), resetDate, resetAt } }.
|
|
7
|
+
*
|
|
8
|
+
* Fallback: the sk- API key cannot read the quota, so when no account session is
|
|
9
|
+
* available we surface a graceful message instead of failing.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { proxyAwareFetch } from "../../utils/proxyFetch.js";
|
|
13
|
+
import { getMimoAccountUsage } from "../../shared/mimoAccount.js";
|
|
14
|
+
|
|
15
|
+
const USAGE_URL = "https://aistudio.xiaomimimo.com/open-apis/v1/user/usage";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {string|null|undefined} accessToken - sk- API key
|
|
19
|
+
* @param {object|null} providerSpecificData - may contain mimoPassToken, uid, etc.
|
|
20
|
+
* @param {object|null} proxyOptions
|
|
21
|
+
*/
|
|
22
|
+
export async function getXiaomiMimoUsage(accessToken = null, providerSpecificData = null, proxyOptions = null) {
|
|
23
|
+
// Preferred path: the weekly quota comes from the account service session
|
|
24
|
+
// (mimo-server /api/user/usage), which the sk- key cannot reach. The session is
|
|
25
|
+
// derived from MiMo Desktop's persisted passToken via the SSO/sts handshake.
|
|
26
|
+
const account = await getMimoAccountUsage(providerSpecificData, proxyOptions);
|
|
27
|
+
if (typeof account.percent === "number" && Number.isFinite(account.percent)) {
|
|
28
|
+
const remaining = Math.max(0, Math.min(100, Math.round(account.percent)));
|
|
29
|
+
const used = 100 - remaining;
|
|
30
|
+
let resetAt = null;
|
|
31
|
+
if (typeof account.resetAt === "number" && account.resetAt > 0) {
|
|
32
|
+
resetAt = new Date(account.resetAt * 1000).toISOString();
|
|
33
|
+
} else if (typeof account.resetDate === "string") {
|
|
34
|
+
const parsed = new Date(`${account.resetDate}T00:00:00Z`);
|
|
35
|
+
if (!Number.isNaN(parsed.getTime())) resetAt = parsed.toISOString();
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
plan: "Xiaomi MiMo Desktop",
|
|
39
|
+
quotas: {
|
|
40
|
+
Weekly: { used, total: 100, remainingPercentage: remaining, resetAt, unlimited: false },
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Fallback: no account session available (Desktop never logged in, or its cookie
|
|
46
|
+
// store is locked). The sk- key cannot read the quota, so surface a clear message.
|
|
47
|
+
const key = accessToken || providerSpecificData?.apiKey;
|
|
48
|
+
if (!key || typeof key !== "string" || !key.trim()) {
|
|
49
|
+
return { message: "Xiaomi MiMo Desktop not connected. Add credentials to view usage." };
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
const response = await proxyAwareFetch(
|
|
54
|
+
USAGE_URL,
|
|
55
|
+
{
|
|
56
|
+
method: "GET",
|
|
57
|
+
headers: {
|
|
58
|
+
Authorization: `Bearer ${key.trim()}`,
|
|
59
|
+
"X-Mimo-Source": "mimocode-cli",
|
|
60
|
+
Accept: "application/json",
|
|
61
|
+
},
|
|
62
|
+
signal: AbortSignal.timeout(10000),
|
|
63
|
+
},
|
|
64
|
+
proxyOptions,
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
if (response.status === 401) {
|
|
68
|
+
return {
|
|
69
|
+
plan: "Xiaomi MiMo Desktop",
|
|
70
|
+
message: "Weekly quota requires Xiaomi account session. API key alone is insufficient.",
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
return {
|
|
76
|
+
plan: "Xiaomi MiMo Desktop",
|
|
77
|
+
message: `Usage API error (${response.status})`,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const data = await response.json().catch(() => null);
|
|
82
|
+
if (!data || data.code !== 0 || !data.data) {
|
|
83
|
+
return {
|
|
84
|
+
plan: "Xiaomi MiMo Desktop",
|
|
85
|
+
message: "Usage endpoint returned unexpected response.",
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const { percent, resetDate } = data.data;
|
|
90
|
+
if (typeof percent !== "number" || !Number.isFinite(percent)) {
|
|
91
|
+
return {
|
|
92
|
+
plan: "Xiaomi MiMo Desktop",
|
|
93
|
+
message: "Usage data missing percent field.",
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// percent = remaining percentage (e.g. 94 means 94% remaining)
|
|
98
|
+
const remaining = Math.max(0, Math.min(100, Math.round(percent)));
|
|
99
|
+
const used = 100 - remaining;
|
|
100
|
+
|
|
101
|
+
// Parse resetDate — expected format "2026-09-16"
|
|
102
|
+
let resetAt = null;
|
|
103
|
+
if (resetDate && typeof resetDate === "string") {
|
|
104
|
+
const parsed = new Date(`${resetDate}T00:00:00Z`);
|
|
105
|
+
if (!Number.isNaN(parsed.getTime())) {
|
|
106
|
+
resetAt = parsed.toISOString();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return {
|
|
111
|
+
plan: "Xiaomi MiMo Desktop",
|
|
112
|
+
quotas: {
|
|
113
|
+
Weekly: {
|
|
114
|
+
used,
|
|
115
|
+
total: 100,
|
|
116
|
+
remainingPercentage: remaining,
|
|
117
|
+
resetAt,
|
|
118
|
+
unlimited: false,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
} catch (error) {
|
|
123
|
+
return { message: `Xiaomi MiMo Desktop usage error: ${error.message}` };
|
|
124
|
+
}
|
|
125
|
+
}
|