n9router 0.4.49 → 0.4.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -17
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +30 -24
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/react-loadable-manifest.json +2 -2
- package/app/.next/required-server-files.json +2 -1
- package/app/.next/routes-manifest.json +38 -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 +24 -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 +10 -10
- 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 +3 -3
- 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 +7 -5
- 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 +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +2 -2
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/antigravity-app/route.js +1 -1
- package/app/.next/server/app/api/antigravity-app-v2/route.js +1 -1
- package/app/.next/server/app/api/antigravity-ide/route.js +1 -1
- package/app/.next/server/app/api/antigravity-targets/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js +1 -1
- package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next/server/app/api/auth/status/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js +17 -4
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- 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 +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/devin-settings/route.js +2 -0
- package/app/.next/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/devin-settings/route_client-reference-manifest.js +1 -0
- 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 +15 -0
- package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/grok-build-settings/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- 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 +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/donate/route.js +1 -1
- package/app/.next/server/app/api/headroom/extras/route.js +1 -1
- package/app/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next/server/app/api/headroom/start/route.js +1 -1
- package/app/.next/server/app/api/headroom/status/route.js +1 -1
- package/app/.next/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/internal/account-health/route.js +1 -1
- package/app/.next/server/app/api/internal/request-detail/route.js +1 -1
- package/app/.next/server/app/api/internal/usage/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/reset-usage/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/usage/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +2 -2
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/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/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/health/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/install/route.js +1 -1
- package/app/.next/server/app/api/pxpipe/logs/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/restart/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/start/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/stats/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/status/route.js +2 -2
- package/app/.next/server/app/api/pxpipe/stop/route.js +2 -2
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/database/selective/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +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 +3 -3
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/report/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/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/info/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/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 -0
- package/app/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/videos/[id]/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/videos/edits/route.js +1 -0
- package/app/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/videos/edits/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/videos/extensions/route.js +1 -0
- package/app/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/videos/extensions/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/videos/generations/route.js +1 -0
- package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +4 -4
- package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.rsc +6 -6
- 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 +6 -6
- package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next/server/app/dashboard/pxpipe.rsc +6 -6
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +5 -5
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.html +1 -1
- package/app/.next/server/app/dashboard/skills.rsc +6 -6
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.html +1 -1
- package/app/.next/server/app/dashboard/token-saver.rsc +6 -6
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +4 -4
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +5 -5
- package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +5 -5
- package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +30 -24
- package/app/.next/server/chunks/112.js +3 -0
- package/app/.next/server/chunks/1470.js +1 -1
- package/app/.next/server/chunks/2051.js +1 -0
- package/app/.next/server/chunks/2251.js +2 -2
- package/app/.next/server/chunks/318.js +75 -7
- package/app/.next/server/chunks/3225.js +10 -0
- package/app/.next/server/chunks/3481.js +71 -0
- package/app/.next/server/chunks/3535.js +1 -1
- package/app/.next/server/chunks/365.js +1 -0
- package/app/.next/server/chunks/3913.js +1 -0
- package/app/.next/server/chunks/3943.js +1 -0
- package/app/.next/server/chunks/3962.js +1 -0
- package/app/.next/server/chunks/4037.js +1 -0
- package/app/.next/server/chunks/412.js +5 -5
- package/app/.next/server/chunks/4123.js +7 -0
- package/app/.next/server/chunks/4125.js +1 -0
- package/app/.next/server/chunks/4443.js +1 -0
- package/app/.next/server/chunks/4676.js +45 -0
- package/app/.next/server/chunks/4705.js +1 -0
- package/app/.next/server/chunks/4963.js +1 -0
- package/app/.next/server/chunks/4975.js +1 -0
- package/app/.next/server/chunks/4989.js +1 -1
- package/app/.next/server/chunks/5612.js +1 -1
- package/app/.next/server/chunks/5615.js +3 -3
- package/app/.next/server/chunks/5619.js +1 -0
- package/app/.next/server/chunks/5699.js +1 -1
- package/app/.next/server/chunks/6070.js +1 -1
- package/app/.next/server/chunks/615.js +1 -1
- package/app/.next/server/chunks/63.js +3 -3
- package/app/.next/server/chunks/6306.js +1 -1
- package/app/.next/server/chunks/6457.js +1 -1
- package/app/.next/server/chunks/6671.js +1 -0
- package/app/.next/server/chunks/6763.js +1 -1
- package/app/.next/server/chunks/6777.js +1 -1
- package/app/.next/server/chunks/6818.js +1 -0
- package/app/.next/server/chunks/6877.js +1 -0
- package/app/.next/server/chunks/7137.js +1 -0
- package/app/.next/server/chunks/7211.js +1 -0
- package/app/.next/server/chunks/7828.js +1 -1
- package/app/.next/server/chunks/8145.js +1 -0
- package/app/.next/server/chunks/8301.js +91 -0
- package/app/.next/server/chunks/8499.js +71 -0
- package/app/.next/server/chunks/869.js +1 -0
- package/app/.next/server/chunks/8845.js +1 -0
- package/app/.next/server/chunks/8895.js +11 -55
- package/app/.next/server/chunks/8910.js +1 -1
- package/app/.next/server/chunks/8920.js +1 -1
- package/app/.next/server/instrumentation.js +1 -0
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware-react-loadable-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-fbaaa3c33f83ea85.js +1 -0
- package/app/.next/static/chunks/1a258343.e25ce4decd2c9ea4.js +1 -0
- package/app/.next/static/chunks/3521.a9e2daf685420cc7.js +1 -0
- package/app/.next/static/chunks/4028-33d2ebbce3016284.js +91 -0
- package/app/.next/static/chunks/5497-dd7adaddb5a1e51d.js +7 -0
- package/app/.next/static/chunks/705-10f93cd2550e6494.js +1 -0
- package/app/.next/static/chunks/8198-b19a16e6810e84a2.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-7fa7d21642523ca3.js → page-0fd819f7f5548f88.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-ddcb29448c366123.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-bc35ad34049d7ff5.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-d6943540c8897df0.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-818b1bc14711e0a7.js → page-308fc8a3b8a069fe.js} +10 -10
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-81c185a6977c1eb4.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-5c73d27e6379f748.js → page-a571e53340e18f91.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-2eaaf5721c2e8376.js +14 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d6c97bcabadb38ca.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-6916d780a2d54b89.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-ide/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-targets/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/reset-password/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/donate/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/extras/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/restart/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/start/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/status/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/headroom/stop/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/internal/account-health/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/internal/request-detail/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/internal/usage/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/models/disabled/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/health/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/install/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/logs/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/restart/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/start/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/stats/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/status/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/pxpipe/stop/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/selective/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/report/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/info/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/[id]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/edits/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/extensions/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/version/shutdown/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/landing/page-a438c82535cc676a.js +1 -0
- package/app/.next/static/chunks/app/login/page-7b85623bf9ba8d60.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/app/page-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c74ff3c527010d28.js +1 -0
- package/app/.next/static/chunks/{webpack-121fdf903e7acc97.js → webpack-6b46812a5ae291a1.js} +1 -1
- package/app/.next/static/css/d16761d8d90e43ab.css +1 -0
- package/app/.next/static/zErBl-HUgBtz1iz9LeFt5/_buildManifest.js +1 -0
- package/app/open-sse/config/appConstants.js +58 -10
- package/app/open-sse/config/grokCli.js +10 -0
- package/app/open-sse/config/kiroConstants.js +123 -3
- package/app/open-sse/config/providerModels.js +7 -3
- package/app/open-sse/config/runtimeConfig.js +2 -0
- package/app/open-sse/config/ttsModels.js +23 -0
- package/app/open-sse/executors/antigravity.js +5 -1
- package/app/open-sse/executors/base.js +3 -2
- package/app/open-sse/executors/codebuddy-cn.js +29 -0
- package/app/open-sse/executors/codebuddy-intl.js +44 -0
- package/app/open-sse/executors/codex.js +9 -4
- package/app/open-sse/executors/cursor.js +427 -2
- package/app/open-sse/executors/default.js +21 -27
- package/app/open-sse/executors/devin-cli.js +847 -0
- package/app/open-sse/executors/grok-cli.js +194 -39
- package/app/open-sse/executors/index.js +15 -3
- package/app/open-sse/executors/qoder.js +82 -41
- package/app/open-sse/executors/trae.js +339 -0
- package/app/open-sse/executors/windsurf.js +588 -0
- package/app/open-sse/executors/zed.js +304 -0
- package/app/open-sse/handlers/chatCore/nonStreamingHandler.js +92 -6
- package/app/open-sse/handlers/chatCore/sseToJsonHandler.js +131 -11
- package/app/open-sse/handlers/chatCore/streamingHandler.js +6 -6
- package/app/open-sse/handlers/chatCore.js +84 -31
- package/app/open-sse/handlers/embeddingProviders/index.js +7 -0
- package/app/open-sse/handlers/embeddingProviders/selfhostedEmbedding.js +46 -0
- package/app/open-sse/handlers/embeddingsCore.js +23 -8
- package/app/open-sse/handlers/fetch/index.js +11 -5
- package/app/open-sse/handlers/search/callers.js +0 -1
- package/app/open-sse/handlers/search/normalizers.js +0 -1
- package/app/open-sse/handlers/sttCore.js +9 -1
- package/app/open-sse/handlers/ttsCore.js +3 -3
- package/app/open-sse/handlers/ttsProviders/index.js +4 -0
- package/app/open-sse/handlers/ttsProviders/selfhostedTts.js +69 -0
- package/app/open-sse/handlers/ttsProviders/xiaomi-mimo.js +65 -0
- package/app/open-sse/handlers/videoCore.js +166 -0
- package/app/open-sse/index.js +0 -1
- package/app/open-sse/providers/capabilities.js +67 -7
- package/app/open-sse/providers/pricing.js +132 -1
- package/app/open-sse/providers/registry/alicode-intl.js +3 -3
- package/app/open-sse/providers/registry/alims-intl.js +32 -0
- package/app/open-sse/providers/registry/anthropic.js +1 -3
- package/app/open-sse/providers/registry/antigravity.js +7 -3
- package/app/open-sse/providers/registry/api-airforce.js +36 -0
- package/app/open-sse/providers/registry/baidu.js +33 -0
- package/app/open-sse/providers/registry/bazaarlink.js +47 -0
- package/app/open-sse/providers/registry/bluesminds.js +38 -0
- package/app/open-sse/providers/registry/claude.js +1 -5
- package/app/open-sse/providers/registry/cloudflare-ai.js +2 -0
- package/app/open-sse/providers/registry/codebuddy-intl.js +77 -0
- package/app/open-sse/providers/registry/cursor.js +3 -3
- package/app/open-sse/providers/registry/deepseek.js +4 -0
- package/app/open-sse/providers/registry/devin-cli.js +63 -0
- package/app/open-sse/providers/registry/gemini-cli.js +17 -6
- package/app/open-sse/providers/registry/gemini.js +4 -0
- package/app/open-sse/providers/registry/grok-cli.js +28 -18
- package/app/open-sse/providers/registry/index.js +87 -49
- package/app/open-sse/providers/registry/kilo-gateway.js +34 -0
- package/app/open-sse/providers/registry/kimchi.js +1 -1
- package/app/open-sse/providers/registry/kimi.js +43 -7
- package/app/open-sse/providers/registry/kiro.js +16 -1
- package/app/open-sse/providers/registry/llm7.js +35 -0
- package/app/open-sse/providers/registry/mimo-free.js +3 -0
- package/app/open-sse/providers/registry/morph.js +29 -0
- package/app/open-sse/providers/registry/nvidia.js +2 -0
- package/app/open-sse/providers/registry/ollama.js +3 -0
- package/app/open-sse/providers/registry/openrouter.js +2 -0
- package/app/open-sse/providers/registry/poolside.js +30 -0
- package/app/open-sse/providers/registry/qoder.js +19 -15
- package/app/open-sse/providers/registry/sambanova.js +27 -0
- package/app/open-sse/providers/registry/selfhosted-embedding.js +73 -0
- package/app/open-sse/providers/registry/selfhosted-stt.js +48 -0
- package/app/open-sse/providers/registry/selfhosted-tts.js +44 -0
- package/app/open-sse/providers/registry/tencent.js +27 -0
- package/app/open-sse/providers/registry/tokenrouter.js +162 -0
- package/app/open-sse/providers/registry/trae.js +76 -0
- package/app/open-sse/providers/registry/windsurf.js +143 -0
- package/app/open-sse/providers/registry/xai.js +5 -1
- package/app/open-sse/providers/registry/xiaomi-mimo.js +9 -1
- package/app/open-sse/providers/registry/zed.js +71 -0
- package/app/open-sse/providers/shared.js +21 -1
- package/app/open-sse/providers/thinkingLevels.js +10 -3
- package/app/open-sse/rtk/headroom.js +12 -1
- package/app/open-sse/services/capacityAdapter.js +173 -0
- package/app/open-sse/services/combo.js +21 -4
- package/app/open-sse/services/cursorModels.js +187 -0
- package/app/open-sse/services/grokCliModels.js +127 -0
- package/app/open-sse/services/model.js +7 -1
- package/app/open-sse/services/projectId.js +13 -10
- package/app/open-sse/services/provider.js +14 -8
- package/app/open-sse/services/qoderModels.js +146 -7
- package/app/open-sse/services/tokenRefresh/providers.js +221 -185
- package/app/open-sse/services/tokenRefresh.js +21 -5
- package/app/open-sse/services/usage/codebuddy-cn.js +14 -6
- package/app/open-sse/services/usage/deepseek.js +112 -0
- package/app/open-sse/services/usage/google.js +22 -58
- package/app/open-sse/services/usage/grok-cli.js +157 -7
- package/app/open-sse/services/usage/grokCliQuotaFrame.js +191 -0
- package/app/open-sse/services/usage/kimi.js +211 -0
- package/app/open-sse/services/usage/misc.js +78 -32
- package/app/open-sse/services/usage.js +14 -5
- package/app/open-sse/shared/qoder/constants.js +8 -0
- package/app/open-sse/shared/zedAuth.js +415 -0
- package/app/open-sse/translator/concerns/kiroConversation.js +435 -0
- package/app/open-sse/translator/concerns/thinkingUnified.js +22 -4
- package/app/open-sse/translator/formats/claude.js +3 -1
- package/app/open-sse/translator/formats/gemini.js +20 -1
- package/app/open-sse/translator/index.js +19 -4
- package/app/open-sse/translator/request/claude-to-kiro.js +93 -232
- package/app/open-sse/translator/request/openai-responses.js +51 -7
- package/app/open-sse/translator/request/openai-to-kiro.js +77 -252
- package/app/open-sse/translator/response/openai-responses.js +57 -18
- package/app/open-sse/translator/schema/blocks.js +3 -0
- package/app/open-sse/utils/clientDetector.js +5 -2
- package/app/open-sse/utils/cursorChecksum.js +2 -1
- package/app/open-sse/utils/kiroSessionReplay.js +144 -0
- package/app/open-sse/utils/sessionManager.js +48 -12
- package/app/open-sse/utils/stream.js +6 -2
- package/app/package.json +1 -1
- package/app/public/i18n/literals/ar.json +2 -0
- package/app/public/i18n/literals/bn.json +2 -0
- package/app/public/i18n/literals/cs.json +2 -0
- package/app/public/i18n/literals/da.json +2 -0
- package/app/public/i18n/literals/de.json +2 -0
- package/app/public/i18n/literals/el.json +2 -0
- package/app/public/i18n/literals/es.json +2 -0
- package/app/public/i18n/literals/fa.json +1369 -171
- package/app/public/i18n/literals/fi.json +2 -0
- package/app/public/i18n/literals/fr.json +2 -0
- package/app/public/i18n/literals/he.json +2 -0
- package/app/public/i18n/literals/hi.json +2 -0
- package/app/public/i18n/literals/hu.json +2 -0
- package/app/public/i18n/literals/id.json +2 -0
- package/app/public/i18n/literals/it.json +2 -0
- package/app/public/i18n/literals/ja.json +2 -0
- package/app/public/i18n/literals/km.json +1398 -0
- package/app/public/i18n/literals/ko.json +2 -0
- package/app/public/i18n/literals/nl.json +2 -0
- package/app/public/i18n/literals/no.json +2 -0
- package/app/public/i18n/literals/pl.json +2 -0
- package/app/public/i18n/literals/pt-BR.json +958 -163
- package/app/public/i18n/literals/pt-PT.json +2 -0
- package/app/public/i18n/literals/ro.json +2 -0
- package/app/public/i18n/literals/ru.json +2 -0
- package/app/public/i18n/literals/sv.json +2 -0
- package/app/public/i18n/literals/th.json +1374 -176
- package/app/public/i18n/literals/tl.json +2 -0
- package/app/public/i18n/literals/tr.json +2 -0
- package/app/public/i18n/literals/uk.json +2 -0
- package/app/public/i18n/literals/ur.json +2 -0
- package/app/public/i18n/literals/vi.json +2 -0
- package/app/public/i18n/literals/zh-CN.json +2 -0
- package/app/public/i18n/literals/zh-TW.json +2 -0
- package/app/public/providers/agentrouter.png +0 -0
- package/app/public/providers/api-airforce.png +0 -0
- package/app/public/providers/baidu.png +0 -0
- package/app/public/providers/bazaarlink.png +0 -0
- package/app/public/providers/bluesminds.png +0 -0
- package/app/public/providers/codebuddy-cn.png +0 -0
- package/app/public/providers/codebuddy-intl.png +0 -0
- package/app/public/providers/commandcode.png +0 -0
- package/app/public/providers/devin-cli.png +0 -0
- package/app/public/providers/featherless.png +0 -0
- package/app/public/providers/gitlab.png +0 -0
- package/app/public/providers/kilo-gateway.png +0 -0
- package/app/public/providers/llm7.png +0 -0
- package/app/public/providers/longcat.png +0 -0
- package/app/public/providers/mmf.png +0 -0
- package/app/public/providers/morph.png +0 -0
- package/app/public/providers/novita.png +0 -0
- package/app/public/providers/opendesign.png +0 -0
- package/app/public/providers/perplexity-agent.png +0 -0
- package/app/public/providers/poolside.png +0 -0
- package/app/public/providers/qoder.png +0 -0
- package/app/public/providers/reka.png +0 -0
- package/app/public/providers/sambanova.png +0 -0
- package/app/public/providers/tencent.png +0 -0
- package/app/public/providers/tokenrouter.png +0 -0
- package/app/public/providers/trae.png +0 -0
- package/app/public/providers/venice.png +0 -0
- package/app/public/providers/vercel-ai-gateway.png +0 -0
- package/app/public/providers/vercel.png +0 -0
- package/app/public/providers/windsurf.png +0 -0
- package/app/public/providers/workbuddy.png +0 -0
- package/app/public/providers/zed.png +0 -0
- package/app/src/mitm/config.js +42 -1
- package/app/src/shared/constants/cliTools.js +99 -16
- package/app/src/shared/constants/locales.js +1 -0
- package/app/src/shared/constants/providers.js +1 -1
- package/app/src/shared/constants/ttsProviders.js +12 -0
- package/app/src/shared/services/quotaAutoPing.js +313 -0
- package/app/src/sse/services/backgroundTokenRefresh.js +196 -0
- package/package.json +1 -1
- package/app/.next/server/chunks/1051.js +0 -1
- package/app/.next/server/chunks/1350.js +0 -1
- package/app/.next/server/chunks/1719.js +0 -1
- package/app/.next/server/chunks/2701.js +0 -10
- package/app/.next/server/chunks/3621.js +0 -1
- package/app/.next/server/chunks/4177.js +0 -1
- package/app/.next/server/chunks/4632.js +0 -1
- package/app/.next/server/chunks/6182.js +0 -71
- package/app/.next/server/chunks/6675.js +0 -53
- package/app/.next/server/chunks/7181.js +0 -1
- package/app/.next/server/chunks/7444.js +0 -1
- package/app/.next/server/chunks/7886.js +0 -1
- package/app/.next/server/chunks/8056.js +0 -7
- package/app/.next/server/chunks/8238.js +0 -1
- package/app/.next/server/chunks/8271.js +0 -1
- package/app/.next/server/chunks/8794.js +0 -1
- package/app/.next/server/chunks/8833.js +0 -79
- package/app/.next/server/chunks/9489.js +0 -3
- package/app/.next/static/4eHcO0iL_6PDYZfGNLlqJ/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1321-221797845867fc50.js +0 -1
- package/app/.next/static/chunks/1a258343.5938f676ed376386.js +0 -1
- package/app/.next/static/chunks/3521.8dce45f121472d5c.js +0 -1
- package/app/.next/static/chunks/5396-a003e096a6013f2e.js +0 -53
- package/app/.next/static/chunks/5497-fd6ad8ecc491258d.js +0 -7
- package/app/.next/static/chunks/705-979ff3eb195b9023.js +0 -1
- package/app/.next/static/chunks/8198-34a5f75f939a0642.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-199ad55a0a07b99e.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-891aa409aec4569e.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-064162ae8176ea08.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-6079eec94c4ca9a9.js +0 -4
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-64902d9374382b6c.js +0 -12
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-541efe7992c8e9d2.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-d5dd8461c18931fc.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-app-v2/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-ide/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-targets/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/reset-password/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/auth/status/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/donate/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/extras/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/restart/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/start/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/status/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/headroom/stop/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/internal/account-health/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/internal/request-detail/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/internal/usage/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/usage/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/models/disabled/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/health/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/install/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/logs/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/restart/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/start/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/stats/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/status/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/pxpipe/stop/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/selective/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/report/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/info/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/search/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/version/shutdown/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/landing/page-cc37244748faf1e0.js +0 -1
- package/app/.next/static/chunks/app/login/page-8c5c8f2f058d5e2f.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/app/page-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9ed8f7909a84e383.js +0 -1
- package/app/.next/static/css/79e49d401b07510e.css +0 -1
- package/app/open-sse/executors/qwen.js +0 -129
- package/app/open-sse/providers/registry/kimi-coding.js +0 -65
- package/app/open-sse/providers/registry/qwen.js +0 -33
- package/app/open-sse/utils/claudeHeaderCache.js +0 -70
- /package/app/.next/static/{4eHcO0iL_6PDYZfGNLlqJ → zErBl-HUgBtz1iz9LeFt5}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// Windsurf provider registry — Firebase+Codeium+Devin auth chain.
|
|
2
|
+
// Chat = Codeium gRPC-web protobuf:
|
|
3
|
+
// POST {base} Content-Type: application/grpc-web+proto
|
|
4
|
+
// Service: exa.language_server_pb.LanguageServerService / GetChatMessage
|
|
5
|
+
export default {
|
|
6
|
+
id: "windsurf",
|
|
7
|
+
alias: "ws",
|
|
8
|
+
uiAlias: "ws",
|
|
9
|
+
display: {
|
|
10
|
+
name: "Windsurf",
|
|
11
|
+
icon: "surfing",
|
|
12
|
+
color: "#14B8A6",
|
|
13
|
+
website: "https://windsurf.com",
|
|
14
|
+
notice: { signupUrl: "https://windsurf.com" },
|
|
15
|
+
},
|
|
16
|
+
category: "oauth",
|
|
17
|
+
authType: "oauth",
|
|
18
|
+
hasOAuth: true,
|
|
19
|
+
authModes: ["oauth", "apikey"],
|
|
20
|
+
|
|
21
|
+
transport: {
|
|
22
|
+
baseUrl: "https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",
|
|
23
|
+
format: "openai",
|
|
24
|
+
headers: {
|
|
25
|
+
"Content-Type": "application/grpc-web+proto",
|
|
26
|
+
"Accept": "application/grpc-web+proto",
|
|
27
|
+
"X-Grpc-Web": "1",
|
|
28
|
+
},
|
|
29
|
+
// apiKey (sk-ws-... or Firebase-derived) as Bearer + in protobuf Metadata.api_key.
|
|
30
|
+
auth: { combined: true, header: "Authorization", scheme: "Bearer" },
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
// Auth chain (4 terminal paths, all yield apiKey):
|
|
34
|
+
// 1) OAuth web → Firebase JWT → POST register.windsurf.com/.../RegisterUser {firebase_id_token} → {apiKey, apiServerUrl, name}
|
|
35
|
+
// 2) sk-ws-... direct API key (apiKey used as metadata.apiKey on GetUserStatus)
|
|
36
|
+
// 3) Firebase JWT (eyJ...) → same RegisterUser exchange as #1
|
|
37
|
+
// 4) Devin auth1_... → self-serve chain → ide_token used as apiKey on server.self-serve.windsurf.com
|
|
38
|
+
oauth: {
|
|
39
|
+
clientId: "3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",
|
|
40
|
+
firebaseApiKey: "AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",
|
|
41
|
+
firebaseSignInUrl: "https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword",
|
|
42
|
+
registerUrl: "https://register.windsurf.com/exa.seat_management_pb.SeatManagementService/RegisterUser",
|
|
43
|
+
apiServerUrl: "https://server.codeium.com",
|
|
44
|
+
auth1ApiServerUrl: "https://server.self-serve.windsurf.com",
|
|
45
|
+
platform: "windsurf",
|
|
46
|
+
// Quota (Connect RPC, protobuf): POST windsurf.com/_backend/.../GetPlanStatus,
|
|
47
|
+
// headers Content-Type:application/proto + Connect-Protocol-Version:1 + X-Auth-Token:<session>,
|
|
48
|
+
// body = field1:session_token, field2:varint 1.
|
|
49
|
+
quotaUrl: "https://windsurf.com/_backend/exa.seat_management_pb.SeatManagementService/GetPlanStatus",
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
// Catalog verified against model_configs_v2.bin from Devin CLI (2026.5.x).
|
|
53
|
+
// Dot-notation ids; the executor MODEL_ALIAS_MAP maps these to Windsurf modelUid.
|
|
54
|
+
// contextLength dropped — 9router schema uses id+name only.
|
|
55
|
+
models: [
|
|
56
|
+
// Cognition / SWE
|
|
57
|
+
{ id: "swe-1.6-fast", name: "SWE-1.6 Fast" },
|
|
58
|
+
{ id: "swe-1.6", name: "SWE-1.6" },
|
|
59
|
+
{ id: "swe-1.5-fast", name: "SWE-1.5 Fast" },
|
|
60
|
+
{ id: "swe-1.5", name: "SWE-1.5" },
|
|
61
|
+
// Claude Opus 4.7 — effort-tiered
|
|
62
|
+
{ id: "claude-opus-4.7-max", name: "Claude Opus 4.7 Max" },
|
|
63
|
+
{ id: "claude-opus-4.7-xhigh", name: "Claude Opus 4.7 XHigh" },
|
|
64
|
+
{ id: "claude-opus-4.7-high", name: "Claude Opus 4.7 High" },
|
|
65
|
+
{ id: "claude-opus-4.7-medium", name: "Claude Opus 4.7 Medium" },
|
|
66
|
+
{ id: "claude-opus-4.7-low", name: "Claude Opus 4.7 Low" },
|
|
67
|
+
{ id: "claude-opus-4.7-review", name: "Claude Opus 4.7 Review" },
|
|
68
|
+
// Claude Sonnet/Opus 4.6
|
|
69
|
+
{ id: "claude-sonnet-4.6-thinking-1m", name: "Claude Sonnet 4.6 Thinking 1M" },
|
|
70
|
+
{ id: "claude-sonnet-4.6-1m", name: "Claude Sonnet 4.6 1M" },
|
|
71
|
+
{ id: "claude-sonnet-4.6-thinking", name: "Claude Sonnet 4.6 Thinking" },
|
|
72
|
+
{ id: "claude-sonnet-4.6", name: "Claude Sonnet 4.6" },
|
|
73
|
+
{ id: "claude-opus-4.6-thinking", name: "Claude Opus 4.6 Thinking" },
|
|
74
|
+
{ id: "claude-opus-4.6", name: "Claude Opus 4.6" },
|
|
75
|
+
// Claude 4.5
|
|
76
|
+
{ id: "claude-opus-4.5-thinking", name: "Claude Opus 4.5 Thinking" },
|
|
77
|
+
{ id: "claude-opus-4.5", name: "Claude Opus 4.5" },
|
|
78
|
+
{ id: "claude-sonnet-4.5-thinking", name: "Claude Sonnet 4.5 Thinking" },
|
|
79
|
+
{ id: "claude-sonnet-4.5", name: "Claude Sonnet 4.5" },
|
|
80
|
+
{ id: "claude-haiku-4.5", name: "Claude Haiku 4.5" },
|
|
81
|
+
// GPT-5.5 — effort-tiered
|
|
82
|
+
{ id: "gpt-5.5-xhigh-fast", name: "GPT-5.5 XHigh Fast" },
|
|
83
|
+
{ id: "gpt-5.5-xhigh", name: "GPT-5.5 XHigh" },
|
|
84
|
+
{ id: "gpt-5.5-high-fast", name: "GPT-5.5 High Fast" },
|
|
85
|
+
{ id: "gpt-5.5-high", name: "GPT-5.5 High" },
|
|
86
|
+
{ id: "gpt-5.5-medium-fast", name: "GPT-5.5 Medium Fast" },
|
|
87
|
+
{ id: "gpt-5.5-medium", name: "GPT-5.5 Medium" },
|
|
88
|
+
{ id: "gpt-5.5-low-fast", name: "GPT-5.5 Low Fast" },
|
|
89
|
+
{ id: "gpt-5.5-low", name: "GPT-5.5 Low" },
|
|
90
|
+
{ id: "gpt-5.5-none-fast", name: "GPT-5.5 None Fast" },
|
|
91
|
+
{ id: "gpt-5.5-none", name: "GPT-5.5 None" },
|
|
92
|
+
// GPT-5.4 — effort-tiered
|
|
93
|
+
{ id: "gpt-5.4-xhigh-fast", name: "GPT-5.4 XHigh Fast" },
|
|
94
|
+
{ id: "gpt-5.4-xhigh", name: "GPT-5.4 XHigh" },
|
|
95
|
+
{ id: "gpt-5.4-high-fast", name: "GPT-5.4 High Fast" },
|
|
96
|
+
{ id: "gpt-5.4-high", name: "GPT-5.4 High" },
|
|
97
|
+
{ id: "gpt-5.4-medium-fast", name: "GPT-5.4 Medium Fast" },
|
|
98
|
+
{ id: "gpt-5.4-medium", name: "GPT-5.4 Medium" },
|
|
99
|
+
{ id: "gpt-5.4-low-fast", name: "GPT-5.4 Low Fast" },
|
|
100
|
+
{ id: "gpt-5.4-low", name: "GPT-5.4 Low" },
|
|
101
|
+
{ id: "gpt-5.4-none-fast", name: "GPT-5.4 None Fast" },
|
|
102
|
+
{ id: "gpt-5.4-none", name: "GPT-5.4 None" },
|
|
103
|
+
{ id: "gpt-5.4-mini-xhigh", name: "GPT-5.4 Mini XHigh" },
|
|
104
|
+
{ id: "gpt-5.4-mini-high", name: "GPT-5.4 Mini High" },
|
|
105
|
+
{ id: "gpt-5.4-mini-medium", name: "GPT-5.4 Mini Medium" },
|
|
106
|
+
{ id: "gpt-5.4-mini-low", name: "GPT-5.4 Mini Low" },
|
|
107
|
+
// GPT-5.3 Codex
|
|
108
|
+
{ id: "gpt-5.3-codex-xhigh-fast", name: "GPT-5.3 Codex XHigh Fast" },
|
|
109
|
+
{ id: "gpt-5.3-codex-xhigh", name: "GPT-5.3 Codex XHigh" },
|
|
110
|
+
{ id: "gpt-5.3-codex-high-fast", name: "GPT-5.3 Codex High Fast" },
|
|
111
|
+
{ id: "gpt-5.3-codex-high", name: "GPT-5.3 Codex High" },
|
|
112
|
+
{ id: "gpt-5.3-codex-medium-fast", name: "GPT-5.3 Codex Medium Fast" },
|
|
113
|
+
{ id: "gpt-5.3-codex-medium", name: "GPT-5.3 Codex Medium" },
|
|
114
|
+
{ id: "gpt-5.3-codex-low-fast", name: "GPT-5.3 Codex Low Fast" },
|
|
115
|
+
{ id: "gpt-5.3-codex-low", name: "GPT-5.3 Codex Low" },
|
|
116
|
+
// GPT-5.2 / 5
|
|
117
|
+
{ id: "gpt-5.2-xhigh", name: "GPT-5.2 XHigh" },
|
|
118
|
+
{ id: "gpt-5.2-high", name: "GPT-5.2 High" },
|
|
119
|
+
{ id: "gpt-5.2-medium", name: "GPT-5.2 Medium" },
|
|
120
|
+
{ id: "gpt-5.2-low", name: "GPT-5.2 Low" },
|
|
121
|
+
{ id: "gpt-5.2-none", name: "GPT-5.2 None" },
|
|
122
|
+
{ id: "gpt-5", name: "GPT-5" },
|
|
123
|
+
// GPT-4.1 / 4o
|
|
124
|
+
{ id: "gpt-4.1", name: "GPT-4.1" },
|
|
125
|
+
{ id: "gpt-4.1-mini", name: "GPT-4.1 Mini" },
|
|
126
|
+
{ id: "gpt-4.1-nano", name: "GPT-4.1 Nano" },
|
|
127
|
+
{ id: "gpt-4o", name: "GPT-4o" },
|
|
128
|
+
{ id: "gpt-4o-mini", name: "GPT-4o Mini" },
|
|
129
|
+
// Gemini
|
|
130
|
+
{ id: "gemini-3.1-pro-high", name: "Gemini 3.1 Pro High" },
|
|
131
|
+
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro Low" },
|
|
132
|
+
{ id: "gemini-3.0-flash-high", name: "Gemini 3 Flash High" },
|
|
133
|
+
{ id: "gemini-3.0-flash-medium", name: "Gemini 3 Flash Medium" },
|
|
134
|
+
{ id: "gemini-3.0-flash-low", name: "Gemini 3 Flash Low" },
|
|
135
|
+
{ id: "gemini-3.0-flash-minimal", name: "Gemini 3 Flash Minimal" },
|
|
136
|
+
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
|
|
137
|
+
// Others
|
|
138
|
+
{ id: "deepseek-v4", name: "DeepSeek V4" },
|
|
139
|
+
{ id: "kimi-k2.6", name: "Kimi K2.6" },
|
|
140
|
+
{ id: "kimi-k2.5", name: "Kimi K2.5" },
|
|
141
|
+
{ id: "glm-5.1", name: "GLM-5.1" },
|
|
142
|
+
],
|
|
143
|
+
};
|
|
@@ -32,9 +32,13 @@ export default {
|
|
|
32
32
|
{ id: "grok-code-fast-1", name: "Grok Code Fast" },
|
|
33
33
|
{ id: "grok-3", name: "Grok 3" },
|
|
34
34
|
{ id: "grok-2-image-1212", name: "Grok 2 Image", params: ["n","response_format"], kind: "image" },
|
|
35
|
+
{ id: "grok-imagine-video", name: "Grok Imagine Video", params: ["duration","aspect_ratio","resolution"], kind: "video" },
|
|
35
36
|
],
|
|
36
|
-
serviceKinds: ["llm","imageToText","webSearch","image"],
|
|
37
|
+
serviceKinds: ["llm","imageToText","webSearch","image","video"],
|
|
37
38
|
imageConfig: { baseUrl: "https://api.x.ai/v1/images/generations", bodyFields: ["model","prompt","n","response_format"] },
|
|
39
|
+
// Async video jobs (POST returns { request_id }, GET polls until done/failed).
|
|
40
|
+
// Docs: https://docs.x.ai/developers/rest-api-reference/inference/videos
|
|
41
|
+
videoConfig: { baseUrl: "https://api.x.ai/v1/videos" },
|
|
38
42
|
searchViaChat: {
|
|
39
43
|
defaultModel: "grok-4.20-reasoning",
|
|
40
44
|
endpoint: "https://api.x.ai/v1/responses",
|
|
@@ -15,10 +15,11 @@ export default {
|
|
|
15
15
|
textIcon: "XM",
|
|
16
16
|
website: "https://xiaomimimo.com",
|
|
17
17
|
notice: {
|
|
18
|
-
apiKeyUrl: "https://xiaomimimo.com",
|
|
18
|
+
apiKeyUrl: "https://platform.xiaomimimo.com/console/api-keys",
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
category: "apikey",
|
|
22
|
+
serviceKinds: ["llm", "tts"],
|
|
22
23
|
transport: {
|
|
23
24
|
baseUrl: "https://api.xiaomimimo.com/v1/chat/completions",
|
|
24
25
|
validateUrl: "https://api.xiaomimimo.com/v1/models",
|
|
@@ -42,5 +43,12 @@ export default {
|
|
|
42
43
|
{ id: "mimo-v2.5", name: "MiMo V2.5" },
|
|
43
44
|
{ id: "mimo-v2-omni", name: "MiMo V2 Omni" },
|
|
44
45
|
{ id: "mimo-v2-flash", name: "MiMo V2 Flash" },
|
|
46
|
+
{ id: "mimo-v2.5-tts", name: "MiMo V2.5 TTS", kind: "tts" },
|
|
45
47
|
],
|
|
48
|
+
ttsConfig: {
|
|
49
|
+
baseUrl: "https://api.xiaomimimo.com/v1/chat/completions",
|
|
50
|
+
authType: "apikey",
|
|
51
|
+
authHeader: "bearer",
|
|
52
|
+
format: "xiaomi-mimo-tts",
|
|
53
|
+
},
|
|
46
54
|
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Zed provider — RSA keypair callback auth (NOT standard OAuth).
|
|
2
|
+
export default {
|
|
3
|
+
id: "zed",
|
|
4
|
+
priority: 10,
|
|
5
|
+
alias: "zd",
|
|
6
|
+
uiAlias: "zd",
|
|
7
|
+
hidden: true,
|
|
8
|
+
display: {
|
|
9
|
+
name: "Zed",
|
|
10
|
+
icon: "code",
|
|
11
|
+
color: "#A855F7",
|
|
12
|
+
website: "https://zed.dev",
|
|
13
|
+
notice: {
|
|
14
|
+
signupUrl: "https://zed.dev/native_app_signin",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
category: "oauth",
|
|
18
|
+
authType: "oauth",
|
|
19
|
+
hasOAuth: true,
|
|
20
|
+
|
|
21
|
+
transport: {
|
|
22
|
+
// Zed hosted LLM aggregator: cloud.zed.dev/completions is a
|
|
23
|
+
// multi-format proxy fronting Anthropic/OpenAI/Google/xAI depending on the model.
|
|
24
|
+
// Wire protocol = NDJSON/SSE-ish stream authenticated with a short-lived LLM bearer
|
|
25
|
+
// token exchanged from the RSA-decrypted access_token (see open-sse/shared/zedAuth).
|
|
26
|
+
baseUrl: "https://cloud.zed.dev/completions",
|
|
27
|
+
format: "openai",
|
|
28
|
+
forceStream: true,
|
|
29
|
+
headers: {
|
|
30
|
+
"content-type": "application/json",
|
|
31
|
+
},
|
|
32
|
+
// Auth scheme is non-standard: "Authorization: <user_id> <access_token>" plus a duplicate
|
|
33
|
+
// x-zed-cloud-token header (verified in zed_account.rs build_authorization_header +
|
|
34
|
+
// cloud fetch). Executor builds both; scheme here is a marker for config-driven tooling.
|
|
35
|
+
auth: {
|
|
36
|
+
combined: true,
|
|
37
|
+
header: "Authorization",
|
|
38
|
+
scheme: "<user_id> <access_token>", // placeholder — real value built in executor
|
|
39
|
+
},
|
|
40
|
+
usage: {
|
|
41
|
+
url: "https://cloud.zed.dev/client/users/me", // verified in zed_account.rs
|
|
42
|
+
},
|
|
43
|
+
// Live catalog discovery — Zed's hosted model list changes frequently and is fetched
|
|
44
|
+
// per-connection rather than hardcoded.
|
|
45
|
+
modelsUrl: "https://cloud.zed.dev/models",
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
// Empty static catalog + passthrough: Zed fronts a rotating set of upstream models
|
|
49
|
+
// (Claude/GPT/Gemini/Grok). Resolved live via modelsUrl; any client-sent model id is
|
|
50
|
+
// forwarded as-is rather than validated against a frozen list.
|
|
51
|
+
models: [],
|
|
52
|
+
passthroughModels: true,
|
|
53
|
+
|
|
54
|
+
oauth: {
|
|
55
|
+
// Zed auth flow is RSA-based, NOT OAuth2/PKCE:
|
|
56
|
+
// 1. App generates RSA-2048 keypair locally (PKCS#1 DER, URL-safe base64).
|
|
57
|
+
// 2. Bind random TCP port on 127.0.0.1.
|
|
58
|
+
// 3. Open https://zed.dev/native_app_signin?native_app_port={port}&native_app_public_key={pub}.
|
|
59
|
+
// 4. After login, browser redirects http://127.0.0.1:{port}/?user_id=...&access_token=...
|
|
60
|
+
// where access_token = base64(RSA-encrypted plaintext token).
|
|
61
|
+
// 5. Decrypt with private key (OAEP-SHA256, fallback PKCS1v15). Store user_id + plaintext token.
|
|
62
|
+
// No clientId/clientSecret/tokenUrl/refreshUrl — long-lived access_token, no refresh.
|
|
63
|
+
authorizeUrl: "https://zed.dev/native_app_signin",
|
|
64
|
+
platform: "zed",
|
|
65
|
+
rsaKeyExchange: true, // new flag: signals frontend/router this flow needs local RSA + TCP listener.
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
features: {
|
|
69
|
+
usage: true,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
@@ -47,6 +47,26 @@ export const CLAUDE_CLI_SPOOF_HEADERS = {
|
|
|
47
47
|
"X-Stainless-Timeout": "600"
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
+
const ANTHROPIC_BETA_BASE = [
|
|
51
|
+
"claude-code-20250219",
|
|
52
|
+
"oauth-2025-04-20",
|
|
53
|
+
"interleaved-thinking-2025-05-14",
|
|
54
|
+
"context-management-2025-06-27",
|
|
55
|
+
"prompt-caching-scope-2026-01-05",
|
|
56
|
+
"structured-outputs-2025-12-15",
|
|
57
|
+
"fast-mode-2026-02-01",
|
|
58
|
+
"redact-thinking-2026-02-12",
|
|
59
|
+
"token-efficient-tools-2026-03-28",
|
|
60
|
+
];
|
|
61
|
+
const ANTHROPIC_BETA_HEAVY_AGENT = ["advanced-tool-use-2025-11-20", "effort-2025-11-24"];
|
|
62
|
+
|
|
63
|
+
// Heavy-agent beta flags are gated to opus/sonnet — cheaper models don't need them.
|
|
64
|
+
export function selectAnthropicBeta(model = "") {
|
|
65
|
+
const flags = [...ANTHROPIC_BETA_BASE];
|
|
66
|
+
if (/^claude-(opus|sonnet)/.test(model)) flags.push(...ANTHROPIC_BETA_HEAVY_AGENT);
|
|
67
|
+
return flags.join(",");
|
|
68
|
+
}
|
|
69
|
+
|
|
50
70
|
// Shared baseUrls
|
|
51
71
|
export const KIMI_CODING_BASE_URL = "https://api.kimi.com/coding/v1/messages";
|
|
52
72
|
|
|
@@ -58,7 +78,7 @@ export const ANTHROPIC_COMPAT_BASE = "https://api.anthropic.com/v1";
|
|
|
58
78
|
// Keep this static even when 9router runs on Linux: the provider profile is
|
|
59
79
|
// intentionally matching the IDE client, not the server host.
|
|
60
80
|
export const ANTIGRAVITY_IDE_VERSION = "2.1.1";
|
|
61
|
-
export const ANTIGRAVITY_IDE_BASE_URL = "https://cloudcode-pa.googleapis.com";
|
|
81
|
+
export const ANTIGRAVITY_IDE_BASE_URL = "https://daily-cloudcode-pa.googleapis.com";
|
|
62
82
|
export const ANTIGRAVITY_IDE_USER_AGENT = `antigravity/ide/${ANTIGRAVITY_IDE_VERSION} darwin/arm64`;
|
|
63
83
|
|
|
64
84
|
// Antigravity OAuth client credentials (public CLI client — duplicated in usage.js + src/lib/oauth)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Reuses capabilities.js (thinkingFormat/canDisable) so this file only maps format→levels (DRY).
|
|
3
3
|
import { getCapabilitiesForModel } from "./capabilities.js";
|
|
4
4
|
import { matchPattern } from "./pricing.js";
|
|
5
|
+
import { resolveKiroEffortPath } from "../config/kiroConstants.js";
|
|
5
6
|
|
|
6
7
|
// Shared level sets (deduped) — verified against provider docs + wire in thinkingUnified.applyFormat.
|
|
7
8
|
const L = {
|
|
@@ -30,18 +31,24 @@ const FORMAT_LEVELS = {
|
|
|
30
31
|
step: L.base,
|
|
31
32
|
};
|
|
32
33
|
|
|
34
|
+
const CODEX_GPT_5_6_LEVELS = ["none", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
35
|
+
|
|
33
36
|
// Model-name pattern overrides (glob, first match wins) — more precise than format default.
|
|
34
37
|
const PATTERN_THINKING = [
|
|
35
|
-
|
|
36
|
-
{ pattern: "*gpt-5.6-
|
|
38
|
+
{ provider: "codex", pattern: "*gpt-5.6-sol*", levels: [...CODEX_GPT_5_6_LEVELS, "ultra"] },
|
|
39
|
+
{ provider: "codex", pattern: "*gpt-5.6-terra*", levels: [...CODEX_GPT_5_6_LEVELS, "ultra"] },
|
|
40
|
+
{ provider: "codex", pattern: "*gpt-5.6-luna*", levels: CODEX_GPT_5_6_LEVELS },
|
|
37
41
|
{ pattern: "*codex*", levels: ["low", "medium", "high", "xhigh"] }, // codex cannot disable thinking
|
|
38
42
|
];
|
|
39
43
|
|
|
40
44
|
// Returns valid thinking levels for a model, or null when the model has no reasoning.
|
|
41
45
|
export function getThinkingLevels(provider, model) {
|
|
46
|
+
if (provider === "kiro" && resolveKiroEffortPath(model) === null) return null;
|
|
42
47
|
const caps = getCapabilitiesForModel(provider, model);
|
|
43
48
|
if (!caps.reasoning) return null;
|
|
44
|
-
const hit = PATTERN_THINKING.find((
|
|
49
|
+
const hit = PATTERN_THINKING.find((entry) =>
|
|
50
|
+
(!entry.provider || entry.provider === provider) && matchPattern(entry.pattern, model)
|
|
51
|
+
);
|
|
45
52
|
let levels = hit?.levels || FORMAT_LEVELS[caps.thinkingFormat] || L.base;
|
|
46
53
|
if (caps.thinkingCanDisable === false) levels = levels.filter((l) => l !== "none");
|
|
47
54
|
return levels;
|
|
@@ -25,9 +25,17 @@ function messagePayload(body) {
|
|
|
25
25
|
|
|
26
26
|
function captureSizeSnapshot(body) {
|
|
27
27
|
const messages = messagePayload(body);
|
|
28
|
+
const toolHistory = messages?.filter((message) =>
|
|
29
|
+
message?.role === "tool"
|
|
30
|
+
|| message?.role === "function"
|
|
31
|
+
|| message?.tool_calls?.length
|
|
32
|
+
|| message?.content?.some?.((part) => part?.type === "tool_use" || part?.type === "tool_result")
|
|
33
|
+
) || [];
|
|
28
34
|
return {
|
|
29
35
|
bodyBytes: jsonBytes(body),
|
|
30
36
|
messageBytes: messages ? jsonBytes(messages) : 0,
|
|
37
|
+
toolSchemaBytes: jsonBytes(body?.tools || []),
|
|
38
|
+
toolHistoryBytes: jsonBytes(toolHistory),
|
|
31
39
|
};
|
|
32
40
|
}
|
|
33
41
|
|
|
@@ -336,7 +344,10 @@ export function formatHeadroomSizeLog(diagnostics) {
|
|
|
336
344
|
const before = diagnostics?.before;
|
|
337
345
|
const after = diagnostics?.after;
|
|
338
346
|
if (!before || !after) return "";
|
|
339
|
-
|
|
347
|
+
const effective = before.bodyBytes > 0
|
|
348
|
+
? (((before.bodyBytes - after.bodyBytes) / before.bodyBytes) * 100).toFixed(1)
|
|
349
|
+
: "0.0";
|
|
350
|
+
return `body=${before.bodyBytes}B→${after.bodyBytes}B messages=${before.messageBytes}B→${after.messageBytes}B tools=${before.toolSchemaBytes || 0}B→${after.toolSchemaBytes || 0}B toolHistory=${before.toolHistoryBytes || 0}B→${after.toolHistoryBytes || 0}B effective=${effective}%`;
|
|
340
351
|
}
|
|
341
352
|
|
|
342
353
|
export function isHeadroomPhantomSavings(stats, diagnostics, minShrinkRatio = 0.05) {
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capacity Adapter — global fallback pools of models per input-modality capability
|
|
3
|
+
* (vision / pdf / audioInput / videoInput).
|
|
4
|
+
*
|
|
5
|
+
* The pool models are appended as extra fallback candidates behind whatever models
|
|
6
|
+
* were already going to be tried (a combo's members, or a single target model).
|
|
7
|
+
* combo.js's existing reorderByCapabilities then floats a capable pool model to the
|
|
8
|
+
* front only when none of the original models can handle the request — so this
|
|
9
|
+
* never overrides a combo that already has a member covering the capability.
|
|
10
|
+
*/
|
|
11
|
+
import { getCapabilitiesForModel } from "../providers/capabilities.js";
|
|
12
|
+
|
|
13
|
+
const CAPABILITY_KEYS = ["vision", "pdf", "audioInput", "videoInput"];
|
|
14
|
+
const HARD_CAPS = new Set(CAPABILITY_KEYS);
|
|
15
|
+
const DEFAULT_FALLBACK_MODEL = "oc/mimo-v2.5-free";
|
|
16
|
+
|
|
17
|
+
// Normalize a capability entry to { enabled, roundRobin, models }. Backward-compat:
|
|
18
|
+
// accept the legacy array form [{model, enabled}] (treated as enabled, fallback).
|
|
19
|
+
function normalizeCapEntry(entry) {
|
|
20
|
+
if (Array.isArray(entry)) {
|
|
21
|
+
return { enabled: true, roundRobin: false, models: entry.map((e) => e?.model || e).filter(Boolean) };
|
|
22
|
+
}
|
|
23
|
+
if (entry && typeof entry === "object") {
|
|
24
|
+
return {
|
|
25
|
+
enabled: entry.enabled !== false,
|
|
26
|
+
roundRobin: !!entry.roundRobin,
|
|
27
|
+
models: Array.isArray(entry.models) ? entry.models.filter(Boolean) : [],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return { enabled: false, roundRobin: false, models: [] };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Resolve one capability's full config. Enabled pools with no models fall back
|
|
34
|
+
// to DEFAULT_FALLBACK_MODEL so the toggle is never a no-op.
|
|
35
|
+
export function getCapacityAdapterConfig(cap, settings) {
|
|
36
|
+
const entry = normalizeCapEntry(settings?.capacityAdapter?.[cap]);
|
|
37
|
+
if (entry.enabled && entry.models.length === 0) {
|
|
38
|
+
return { ...entry, models: [DEFAULT_FALLBACK_MODEL] };
|
|
39
|
+
}
|
|
40
|
+
return entry;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Flatten enabled models across all capability pools, in priority order, deduped.
|
|
44
|
+
export function getCapacityAdapterModels(settings) {
|
|
45
|
+
const seen = new Set();
|
|
46
|
+
const models = [];
|
|
47
|
+
for (const cap of CAPABILITY_KEYS) {
|
|
48
|
+
const { enabled, models: pool } = getCapacityAdapterConfig(cap, settings);
|
|
49
|
+
if (!enabled) continue;
|
|
50
|
+
for (const m of pool) {
|
|
51
|
+
if (!seen.has(m)) {
|
|
52
|
+
seen.add(m);
|
|
53
|
+
models.push(m);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return models;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Strategy for a capability: "round-robin" when enabled+roundRobin, else "fallback".
|
|
61
|
+
export function getCapacityAdapterStrategy(cap, settings) {
|
|
62
|
+
const { enabled, roundRobin } = getCapacityAdapterConfig(cap, settings);
|
|
63
|
+
return enabled && roundRobin ? "round-robin" : "fallback";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Strategy from the request's required capabilities: picks the first capability
|
|
67
|
+
// whose adapter pool is enabled and can satisfy a hard requirement.
|
|
68
|
+
export function getActiveAdapterStrategy(requiredCapabilities, settings) {
|
|
69
|
+
const hard = [...(requiredCapabilities || [])].filter((c) => HARD_CAPS.has(c));
|
|
70
|
+
for (const cap of hard) {
|
|
71
|
+
const { enabled, models } = getCapacityAdapterConfig(cap, settings);
|
|
72
|
+
if (!enabled || models.length === 0) continue;
|
|
73
|
+
return getCapacityAdapterStrategy(cap, settings);
|
|
74
|
+
}
|
|
75
|
+
return "fallback";
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function modelSatisfies(modelStr, requiredHard) {
|
|
79
|
+
const slash = modelStr.indexOf("/");
|
|
80
|
+
const provider = slash > 0 ? modelStr.slice(0, slash) : "";
|
|
81
|
+
const model = slash > 0 ? modelStr.slice(slash + 1) : modelStr;
|
|
82
|
+
const caps = getCapabilitiesForModel(provider, model);
|
|
83
|
+
return requiredHard.every((c) => caps[c] === true);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Prepend capacity-adapter models as priority candidates when NONE of the
|
|
87
|
+
// original models (combo members, or the single target model) can satisfy the
|
|
88
|
+
// request's required capabilities. Adapter models go FIRST (priority); the
|
|
89
|
+
// original models follow as fallback. Leaves `models` untouched when the
|
|
90
|
+
// original list already covers it (combo.js's reorderByCapabilities handles
|
|
91
|
+
// that case via autoSwitch).
|
|
92
|
+
export function augmentModelsWithCapacityAdapter(models, requiredCapabilities, settings) {
|
|
93
|
+
const hard = [...(requiredCapabilities || [])].filter((c) => HARD_CAPS.has(c));
|
|
94
|
+
if (hard.length === 0 || !Array.isArray(models) || models.length === 0) return models;
|
|
95
|
+
if (models.some((m) => modelSatisfies(m, hard))) return models;
|
|
96
|
+
|
|
97
|
+
const pool = getCapacityAdapterModels(settings).filter((m) => !models.includes(m) && modelSatisfies(m, hard));
|
|
98
|
+
if (pool.length === 0) return models;
|
|
99
|
+
return [...pool, ...models];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const CHARS_PER_TOKEN = 4; // rough estimate; avoids pulling in a tokenizer dependency
|
|
103
|
+
const HEAD_KEEP = 6; // messages after system kept verbatim before dropping the middle
|
|
104
|
+
|
|
105
|
+
function blockLength(content) {
|
|
106
|
+
if (typeof content === "string") return content.length;
|
|
107
|
+
if (Array.isArray(content)) {
|
|
108
|
+
return content.reduce((sum, b) => sum + (typeof b?.text === "string" ? b.text.length : 50), 0);
|
|
109
|
+
}
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Trim history to fit a (possibly smaller) context window by dropping the MIDDLE.
|
|
114
|
+
// Preserves: all system/instruction messages (head), and the trailing user run
|
|
115
|
+
// carrying the media the switch happened for (tail). Older middle turns between
|
|
116
|
+
// the head instructions and the current turn are dropped first.
|
|
117
|
+
export function stripHistoryForContext(body, contextWindow) {
|
|
118
|
+
const key = Array.isArray(body.messages) ? "messages"
|
|
119
|
+
: Array.isArray(body.input) ? "input"
|
|
120
|
+
: Array.isArray(body.contents) ? "contents"
|
|
121
|
+
: null;
|
|
122
|
+
if (!key) return body;
|
|
123
|
+
const arr = body[key];
|
|
124
|
+
if (!arr || arr.length === 0) return body;
|
|
125
|
+
|
|
126
|
+
const isSystem = (r) => r === "system" || r === "developer";
|
|
127
|
+
const systemMsgs = arr.filter((m) => isSystem(m?.role));
|
|
128
|
+
const rest = arr.filter((m) => !isSystem(m?.role));
|
|
129
|
+
if (rest.length === 0) return body;
|
|
130
|
+
|
|
131
|
+
const isAssistant = (r) => r === "assistant" || r === "model";
|
|
132
|
+
let i = rest.length - 1;
|
|
133
|
+
while (i >= 0 && !isAssistant(rest[i]?.role)) i--;
|
|
134
|
+
const tail = rest.slice(i + 1); // current user turn (has media) — always kept
|
|
135
|
+
const older = rest.slice(0, i + 1); // everything before it
|
|
136
|
+
if (older.length === 0) return body;
|
|
137
|
+
|
|
138
|
+
const contentOf = (m) => m.content ?? m.parts;
|
|
139
|
+
// Cap at 80% of the adapter model's context window — leaves room for the response.
|
|
140
|
+
const budgetChars = (contextWindow || 200000) * 0.8 * CHARS_PER_TOKEN;
|
|
141
|
+
|
|
142
|
+
// Prefer keeping the first HEAD_KEEP messages (initial instructions/context) verbatim;
|
|
143
|
+
// only trim further if even that exceeds the adapter model's context window.
|
|
144
|
+
const headKept = older.slice(0, HEAD_KEEP);
|
|
145
|
+
let total = systemMsgs.concat(headKept, tail).reduce((s, m) => s + blockLength(contentOf(m)), 0);
|
|
146
|
+
|
|
147
|
+
// If head + tail overflow, drop head turns from the end (closest to middle) first.
|
|
148
|
+
let head = headKept;
|
|
149
|
+
while (total > budgetChars && head.length > 0) {
|
|
150
|
+
const dropped = head.pop();
|
|
151
|
+
total -= blockLength(contentOf(dropped));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (head.length === older.length) return body;
|
|
155
|
+
return { ...body, [key]: [...systemMsgs, ...head, ...tail] };
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Wrap a handleSingleModel callback so calls to a capacity-adapter model strip
|
|
159
|
+
// history to fit its context window first. No-op passthrough when the pool is empty.
|
|
160
|
+
export function withCapacityAdapterStripping(handleSingleModel, adapterModels) {
|
|
161
|
+
const adapterSet = new Set(adapterModels);
|
|
162
|
+
if (adapterSet.size === 0) return handleSingleModel;
|
|
163
|
+
return (body, modelStr, ...rest) => {
|
|
164
|
+
if (adapterSet.has(modelStr)) {
|
|
165
|
+
const slash = modelStr.indexOf("/");
|
|
166
|
+
const provider = slash > 0 ? modelStr.slice(0, slash) : "";
|
|
167
|
+
const model = slash > 0 ? modelStr.slice(slash + 1) : modelStr;
|
|
168
|
+
const { contextWindow } = getCapabilitiesForModel(provider, model);
|
|
169
|
+
body = stripHistoryForContext(body, contextWindow);
|
|
170
|
+
}
|
|
171
|
+
return handleSingleModel(body, modelStr, ...rest);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
@@ -106,15 +106,32 @@ export function detectRequiredCapabilities(body) {
|
|
|
106
106
|
const required = new Set();
|
|
107
107
|
if (!body || typeof body !== "object") return required;
|
|
108
108
|
|
|
109
|
+
const addByMime = (mime) => {
|
|
110
|
+
if (typeof mime !== "string") return;
|
|
111
|
+
if (mime.startsWith("image/")) required.add("vision");
|
|
112
|
+
else if (mime === "application/pdf") required.add("pdf");
|
|
113
|
+
else if (mime.startsWith("audio/")) required.add("audioInput");
|
|
114
|
+
else if (mime.startsWith("video/")) required.add("videoInput");
|
|
115
|
+
};
|
|
116
|
+
|
|
109
117
|
const scanBlock = (b) => {
|
|
110
118
|
if (!b || typeof b !== "object") return;
|
|
111
119
|
const t = b.type;
|
|
112
120
|
if (t === "image_url" || t === "image" || t === "input_image") required.add("vision");
|
|
113
|
-
if (t === "
|
|
121
|
+
if (t === "input_audio" || t === "audio_url" || t === "audio") required.add("audioInput");
|
|
122
|
+
if (t === "input_video" || t === "video_url" || t === "video") required.add("videoInput");
|
|
123
|
+
if (t === "file" || t === "document" || t === "input_file") {
|
|
124
|
+
// Infer modality from embedded mime when available; fall back to pdf for generic files.
|
|
125
|
+
let fmime = null;
|
|
126
|
+
if (b.input_audio?.format) fmime = `audio/${b.input_audio.format}`;
|
|
127
|
+
else if (b.file?.file_data) fmime = String(b.file.file_data).match(/^data:([^;,]+)/)?.[1];
|
|
128
|
+
else if (b.source?.media_type) fmime = b.source.media_type;
|
|
129
|
+
else if (b.source?.data) fmime = String(b.source.data).match(/^data:([^;,]+)/)?.[1];
|
|
130
|
+
if (fmime) addByMime(fmime);
|
|
131
|
+
else required.add("pdf");
|
|
132
|
+
}
|
|
114
133
|
// gemini parts: inlineData/fileData carry a mime
|
|
115
|
-
|
|
116
|
-
if (typeof mime === "string" && mime.startsWith("image/")) required.add("vision");
|
|
117
|
-
if (mime === "application/pdf") required.add("pdf");
|
|
134
|
+
addByMime(b.inlineData?.mimeType || b.fileData?.mimeType);
|
|
118
135
|
};
|
|
119
136
|
|
|
120
137
|
const scanContent = (content) => {
|