zevairouter 1.1.18 → 1.1.19
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/CHANGELOG.md +23 -6
- package/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +33 -32
- package/cli/app/.next-cli-build/build-manifest.json +2 -2
- package/cli/app/.next-cli-build/prerender-manifest.json +5 -5
- package/cli/app/.next-cli-build/routes-manifest.json +6 -0
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
- package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
- package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -0
- package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -0
- package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -0
- package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback.html +1 -1
- package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.html +1 -1
- package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing.html +1 -1
- package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/login.html +1 -1
- package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/page.js +1 -1
- package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js +2 -2
- package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app-paths-manifest.json +33 -32
- package/cli/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/1133.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/1890.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/3101.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/3410.js +70 -0
- package/cli/app/.next-cli-build/server/chunks/3477.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/3721.js +3 -3
- package/cli/app/.next-cli-build/server/chunks/3792.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4586.js +29 -0
- package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4897.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/492.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/5000.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5019.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5295.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5330.js +23 -17
- package/cli/app/.next-cli-build/server/chunks/5434.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5436.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/6182.js +3 -3
- package/cli/app/.next-cli-build/server/chunks/6306.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/6846.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/7319.js +160 -154
- package/cli/app/.next-cli-build/server/chunks/7634.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/8574.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/8895.js +7 -7
- package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/9835.js +1 -1
- package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/middleware.js +2 -2
- package/cli/app/.next-cli-build/server/pages/404.html +1 -1
- package/cli/app/.next-cli-build/server/pages/500.html +1 -1
- package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/cli/app/.next-cli-build/static/chunks/{5497-27b73ecf920843b1.js → 5497-e9d1db8fdeb5d244.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/620-09b3c6378553ac05.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/756-ce6e7590e83c0743.js +70 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-8aaa1c79069eec02.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-7773ceed661bcb34.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-a096025e3edc5150.js → page-f769b7591eebddf5.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-8a3bd56e53cbbdbd.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-ca3d31524c44540f.js → page-00cdd20ce7dd6c79.js} +2 -2
- package/cli/app/.next-cli-build/static/chunks/app/_global-error/{page-db8d22293b86486b.js → page-770f86851dc3d3f5.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/{route-db8d22293b86486b.js → route-770f86851dc3d3f5.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-db8d22293b86486b.js → route-770f86851dc3d3f5.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-db8d22293b86486b.js → route-770f86851dc3d3f5.js} +1 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/context/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/health/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/init/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/version/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/page-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-770f86851dc3d3f5.js +1 -0
- package/cli/app/.next-cli-build/static/gFlyP1hZMOjzII2uDU2xn/_buildManifest.js +1 -0
- package/cli/app/CHANGELOG.md +23 -6
- package/cli/app/package.json +1 -1
- package/cli/package.json +1 -1
- package/cli/src/cli/menus/cliTools.js +3 -5
- package/cli/src/cli/utils/modelSelector.js +252 -84
- package/package.json +1 -1
- package/cli/app/.next-cli-build/server/chunks/4025.js +0 -70
- package/cli/app/.next-cli-build/server/chunks/6651.js +0 -29
- package/cli/app/.next-cli-build/static/3cn8Os-pqpQO0HatsLztJ/_buildManifest.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/4686-1b72aa88999710a7.js +0 -70
- package/cli/app/.next-cli-build/static/chunks/620-49fbd016da0b741e.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-489aca87c755610e.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-f4f22350020fab17.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-c3ec6bd67f2b1d69.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/context/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/health/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/init/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/version/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/page-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-db8d22293b86486b.js +0 -1
- package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-db8d22293b86486b.js +0 -1
- /package/cli/app/.next-cli-build/static/{3cn8Os-pqpQO0HatsLztJ → gFlyP1hZMOjzII2uDU2xn}/_ssgManifest.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";exports.id=6182,exports.ids=[6182],exports.modules={8578:(a,b,c)=>{let d=c(33873),e=c(29021),f=c(15296),{MITM_DIR:g}=c(82193),h=d.join(g,"rootCA.key"),i=d.join(g,"rootCA.crt");function j(a){try{let b=f.pki.certificateFromPem(e.readFileSync(a,"utf8")),c=new Date(Date.now()+2592e6);return b.validity.notAfter<c}catch{return!0}}a.exports={generateRootCA:async function a(){let a=e.existsSync(h)&&e.existsSync(i);if(a&&!j(i))return console.log("✅ Root CA already exists"),{key:h,cert:i};if(a){console.log("\uD83D\uDD10 Root CA expired or expiring soon — regenerating...");try{e.unlinkSync(h)}catch{}try{e.unlinkSync(i)}catch{}}e.existsSync(g)||e.mkdirSync(g,{recursive:!0}),console.log("\uD83D\uDD10 Generating Root CA certificate...");let b=f.pki.rsa.generateKeyPair(2048),c=f.pki.createCertificate();c.publicKey=b.publicKey,c.serialNumber="01",c.validity.notBefore=new Date,c.validity.notAfter=new Date,c.validity.notAfter.setFullYear(c.validity.notBefore.getFullYear()+10);let d=[{name:"commonName",value:"ZevaiRouter MITM Root CA"},{name:"organizationName",value:"ZevaiRouter"},{name:"countryName",value:"US"}];c.setSubject(d),c.setIssuer(d),c.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),c.sign(b.privateKey,f.md.sha256.create());let k=f.pki.privateKeyToPem(b.privateKey),l=f.pki.certificateToPem(c);return e.writeFileSync(h,k),e.writeFileSync(i,l),console.log("✅ Root CA generated successfully"),{key:h,cert:i}},loadRootCA:function(){if(!e.existsSync(h)||!e.existsSync(i))throw Error("Root CA not found. Generate it first.");let a=e.readFileSync(h,"utf8"),b=e.readFileSync(i,"utf8");return{key:f.pki.privateKeyFromPem(a),cert:f.pki.certificateFromPem(b)}},generateLeafCert:function(a,b){let c=f.pki.rsa.generateKeyPair(2048),d=f.pki.createCertificate();return d.publicKey=c.publicKey,d.serialNumber=Math.floor(1e6*Math.random()).toString(),d.validity.notBefore=new Date,d.validity.notAfter=new Date,d.validity.notAfter.setFullYear(d.validity.notBefore.getFullYear()+1),d.setSubject([{name:"commonName",value:a}]),d.setIssuer(b.cert.subject.attributes),d.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:a},{type:2,value:`*.${a}`}]}]),d.sign(b.key,f.md.sha256.create()),{key:f.pki.privateKeyToPem(c.privateKey),cert:f.pki.certificateToPem(d)}},isCertExpired:j,ROOT_CA_CERT_PATH:i,ROOT_CA_KEY_PATH:h}},9631:(a,b,c)=>{let d=c(29021),e=c(55511),{exec:f}=c(79646),{execWithPassword:g,isSudoAvailable:h}=c(66936),{runElevatedPowerShell:i,quotePs:j}=c(64809),{log:k,err:l}=c(87777),m="win32"===process.platform,n="darwin"===process.platform,o=[{dir:"/usr/local/share/ca-certificates",cmd:"update-ca-certificates"},{dir:"/etc/ca-certificates/trust-source/anchors",cmd:"update-ca-trust"},{dir:"/etc/pki/ca-trust/source/anchors",cmd:"update-ca-trust"},{dir:"/etc/pki/trust/anchors",cmd:"update-ca-certificates"}];function p(){for(let a of o)if(d.existsSync(a.dir))return a;return o[0]}let q="ZevaiRouter MITM Root CA"
|
|
1
|
+
"use strict";exports.id=6182,exports.ids=[6182],exports.modules={8578:(a,b,c)=>{let d=c(33873),e=c(29021),f=c(15296),{MITM_DIR:g}=c(82193),h=d.join(g,"rootCA.key"),i=d.join(g,"rootCA.crt");function j(a){try{let b=f.pki.certificateFromPem(e.readFileSync(a,"utf8")),c=new Date(Date.now()+2592e6);return b.validity.notAfter<c}catch{return!0}}a.exports={generateRootCA:async function a(){let a=e.existsSync(h)&&e.existsSync(i);if(a&&!j(i))return console.log("✅ Root CA already exists"),{key:h,cert:i};if(a){console.log("\uD83D\uDD10 Root CA expired or expiring soon — regenerating...");try{e.unlinkSync(h)}catch{}try{e.unlinkSync(i)}catch{}}e.existsSync(g)||e.mkdirSync(g,{recursive:!0}),console.log("\uD83D\uDD10 Generating Root CA certificate...");let b=f.pki.rsa.generateKeyPair(2048),c=f.pki.createCertificate();c.publicKey=b.publicKey,c.serialNumber="01",c.validity.notBefore=new Date,c.validity.notAfter=new Date,c.validity.notAfter.setFullYear(c.validity.notBefore.getFullYear()+10);let d=[{name:"commonName",value:"ZevaiRouter MITM Root CA"},{name:"organizationName",value:"ZevaiRouter"},{name:"countryName",value:"US"}];c.setSubject(d),c.setIssuer(d),c.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),c.sign(b.privateKey,f.md.sha256.create());let k=f.pki.privateKeyToPem(b.privateKey),l=f.pki.certificateToPem(c);return e.writeFileSync(h,k),e.writeFileSync(i,l),console.log("✅ Root CA generated successfully"),{key:h,cert:i}},loadRootCA:function(){if(!e.existsSync(h)||!e.existsSync(i))throw Error("Root CA not found. Generate it first.");let a=e.readFileSync(h,"utf8"),b=e.readFileSync(i,"utf8");return{key:f.pki.privateKeyFromPem(a),cert:f.pki.certificateFromPem(b)}},generateLeafCert:function(a,b){let c=f.pki.rsa.generateKeyPair(2048),d=f.pki.createCertificate();return d.publicKey=c.publicKey,d.serialNumber=Math.floor(1e6*Math.random()).toString(),d.validity.notBefore=new Date,d.validity.notAfter=new Date,d.validity.notAfter.setFullYear(d.validity.notBefore.getFullYear()+1),d.setSubject([{name:"commonName",value:a}]),d.setIssuer(b.cert.subject.attributes),d.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:a},{type:2,value:`*.${a}`}]}]),d.sign(b.key,f.md.sha256.create()),{key:f.pki.privateKeyToPem(c.privateKey),cert:f.pki.certificateToPem(d)}},isCertExpired:j,ROOT_CA_CERT_PATH:i,ROOT_CA_KEY_PATH:h}},9631:(a,b,c)=>{let d=c(29021),e=c(55511),{exec:f}=c(79646),{execWithPassword:g,isSudoAvailable:h}=c(66936),{runElevatedPowerShell:i,quotePs:j}=c(64809),{log:k,err:l}=c(87777),m="win32"===process.platform,n="darwin"===process.platform,o=[{dir:"/usr/local/share/ca-certificates",cmd:"update-ca-certificates"},{dir:"/etc/ca-certificates/trust-source/anchors",cmd:"update-ca-trust"},{dir:"/etc/pki/ca-trust/source/anchors",cmd:"update-ca-trust"},{dir:"/etc/pki/trust/anchors",cmd:"update-ca-certificates"}];function p(){for(let a of o)if(d.existsSync(a.dir))return a;return o[0]}let q="ZevaiRouter MITM Root CA";function r(a){let b=d.readFileSync(a,"utf-8"),c=Buffer.from(b.replace(/-----[^-]+-----/g,"").replace(/\s/g,""),"base64");return e.createHash("sha1").update(c).digest("hex").toUpperCase().match(/.{2}/g).join(":")}async function s(a){var b,c;let e,g;return m?(b=a,new Promise(a=>{let c;try{c=r(b).replace(/:/g,"")}catch{return a(!1)}f(`certutil -store Root ${c}`,{windowsHide:!0},b=>{a(!b)})})):n?(c=a,new Promise(a=>{try{let b=r(c).replace(/:/g,"");f(`security find-certificate -a -c "${q}" -Z /Library/Keychains/System.keychain 2>/dev/null`,{windowsHide:!0},(d,e)=>{if(d||!e||!RegExp(`SHA-1 hash:\\s*${b}`,"i").test(e))return a(!1);f(`security verify-cert -c "${c}" -p ssl -k /Library/Keychains/System.keychain 2>/dev/null`,{windowsHide:!0},b=>{a(!b)})})}catch{a(!1)}})):(e=p(),g=`${e.dir}/zevai-root-ca.crt`,Promise.resolve(d.existsSync(g)))}async function t(a,b){let c,d=[q,(c=Buffer.from("OQ==","base64").toString("ascii"),`${c}Router MITM Root CA`)].map(a=>`security delete-certificate -c "${a}" /Library/Keychains/System.keychain 2>/dev/null || true`).join(" && "),e=`security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "${b}"`;try{await g(`${d} && ${e}`,a),k("\uD83D\uDD10 Cert: ✅ installed to system keychain")}catch(a){throw Error(a.message?.includes("canceled")?"User canceled authorization":"Certificate install failed")}}async function u(a){let b=`
|
|
2
2
|
certutil -delstore Root ${j(q)} 2>$null | Out-Null
|
|
3
3
|
$exit = & certutil -addstore Root ${j(a)} 2>&1
|
|
4
4
|
if ($LASTEXITCODE -ne 0) { throw "certutil exit $LASTEXITCODE" }
|
|
5
|
-
`;try{await i(b),k("\uD83D\uDD10 Cert: ✅ installed to Windows Root store")}catch(a){throw Error(`Failed to install certificate: ${a.message}`)}}async function
|
|
5
|
+
`;try{await i(b),k("\uD83D\uDD10 Cert: ✅ installed to Windows Root store")}catch(a){throw Error(`Failed to install certificate: ${a.message}`)}}async function v(a,b){let c=r(b).replace(/:/g,""),d=`security delete-certificate -Z "${c}" /Library/Keychains/System.keychain`;try{await g(d,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from system keychain")}catch(a){throw Error("Failed to uninstall certificate")}}async function w(){let a=`certutil -delstore Root ${j(q)}`;try{await i(a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Windows Root store")}catch(a){throw Error(`Failed to uninstall certificate: ${a.message}`)}}async function x(a,b="add"){let c="ZevaiRouter MITM Root CA",d=`
|
|
6
6
|
if ! command -v certutil &> /dev/null; then
|
|
7
7
|
exit 0
|
|
8
8
|
fi
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
fi
|
|
37
37
|
fi
|
|
38
38
|
done
|
|
39
|
-
`;return new Promise(a=>{f(d,{shell:"/bin/bash"},()=>a())})}async function z(a,b){if(!h()){k(`🔐 Cert: cannot install to system store without sudo — trust this file on clients: ${b}`),await y(b,"add");return}let c=p(),d=`${c.dir}/zevai-root-ca.crt`,e=`cp "${b}" "${d}" && (${c.cmd} 2>/dev/null || true)`;try{await g(e,a),await y(b,"add"),k(`🔐 Cert: ✅ installed to Linux trust store (${c.dir}) and user browser databases`)}catch(a){throw Error(`Certificate install failed: ${a.message}`)}}async function A(a){if(await y(null,"delete"),!h())return;let b=p(),c=`${b.dir}/zevai-root-ca.crt`,d=`rm -f "${c}" && (${b.cmd} 2>/dev/null || true)`;try{await g(d,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Linux trust store and user browser databases")}catch(a){throw Error("Failed to uninstall certificate")}}a.exports={installCert:async function a(a,b){if(!d.existsSync(b))throw Error(`Certificate file not found: ${b}`);await t(b)?k("\uD83D\uDD10 Cert: already trusted ✅"):m?await v(b):n?await u(a,b):await z(a,b)},uninstallCert:async function a(a,b){await t(b)?m?await x():n?await w(a,b):await A(a):k("\uD83D\uDD10 Cert: not found in system store")},checkCertInstalled:t}},26033:(a,b,c)=>{c(33873),c(29021);let{MITM_DIR:d}=c(82193),{generateRootCA:e,loadRootCA:f,generateLeafCert:g}=c(8578);a.exports={generateCert:async function a(){return await e()},getCertForDomain:function(a){try{let b=f(),c=g(a,b);return{key:c.key,cert:c.cert}}catch(b){return console.error(`Failed to generate cert for ${a}:`,b.message),null}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),{isProcessAlive:G,writePidFile:H,resolveVerifiedPid:I,removePidFile:J}=c(15754),K="http://localhost:1997";function L(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function M(){if(!ai)return K;try{let a=await ai(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return K;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return K;return b.replace(/\/+$/,"")}catch{return K}}let N=g.join(C,".mitm.pid"),O=[5e3,1e4,2e4,3e4,6e4],P=0,Q=0,R=!1,S=0,T=!1,U=new WeakSet;function V({isCurrent:a,intentional:b,code:c,restarting:d}){return a?b?{clearState:!0,restart:!1}:{clearState:!0,restart:0!==c&&!d}:{clearState:!1,restart:!1}}function W(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function X(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{let b=h.statSync(a),d=h.statSync(c);if(b.size===d.size&&d.mtimeMs>=b.mtimeMs)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let Y=X(W()),Z="aes-256-gcm",$="zevai-mitm-pwd",_=String.fromCharCode(57,114,111,117,116,101,114)+"-mitm-pwd",aa=null,ab=null;function ac(){return globalThis.__mitmSudoPassword||null}function ad(a){globalThis.__mitmSudoPassword=a}let ae=/(mitm[\\/]server\.js|mitm[\\/]+server\b)/i;function af({dropStalePidFile:a=!0}={}){let b=I(N,{commandPattern:ae});return!b.pid&&b.pidFileStale&&a&&("pid_recycled"===b.reason&&D(`⚠️ Ignoring recycled PID in ${N} — not the MITM server; leaving it alone`),J(N)),b}function ag(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"KILL":"TERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function ah(a=$){try{let{machineIdSync:b}=c(19713),d=b();return l.createHash("sha256").update(d+a).digest()}catch{return l.createHash("sha256").update(a).digest()}}let ai=null,aj=null;async function ak(a,b){if(aj)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=ah($),d=l.randomBytes(12),e=l.createCipheriv(Z,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aj(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function al(){if(aj)try{await aj({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function am(){if(!ai)return null;try{var a;let b,c=await ai();if(!c.mitmSudoEncrypted)return null;return a=c.mitmSudoEncrypted,(b=b=>{try{let[c,d,e]=a.split(":");if(!c||!d||!e)return null;let f=ah(b),g=l.createDecipheriv(Z,f,Buffer.from(c,"hex"));return g.setAuthTag(Buffer.from(d,"hex")),Buffer.concat([g.update(Buffer.from(e,"hex")),g.final()]).toString("utf8")}catch{return null}})($)||b(_)}catch{return null}}async function an(a,b){if(aj&&ai)try{let c={...(await ai()).dnsToolEnabled||{},[a]:b};await aj({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function ao(){if(!ai)return{};try{return(await ai()).dnsToolEnabled||{}}catch{return{}}}async function ap(a){let b=await ao(),c=a||ac()||await am();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function aq(){return v?u():!(!u()&&t())||!!(ac()||await am())}function ar(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function as(a){if(aa&&!aa.killed){U.add(aa);try{aa.kill("SIGKILL")}catch{}aa=null,ab=null}try{let{pid:b}=af({dropStalePidFile:!1});b&&(ag(b,!0,a),await new Promise(a=>setTimeout(a,500))),J(N)}catch{}if(!v&&Y)try{let b=L(Y);if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}function at(a,b=443){return new Promise(c=>{let d=Date.now()+a,e=!1,f=null,g=null,h=a=>{if(!e){if(e=!0,clearTimeout(f),clearTimeout(i),g)try{g.destroy()}catch{}c(a)}},i=setTimeout(()=>h(null),a),j=()=>{if(e)return;let a=d-Date.now();if(a<=0)return h(null);f=setTimeout(l,Math.min(500,a))},l=()=>{if(e)return;let a=k.request({hostname:"127.0.0.1",port:b,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1,timeout:Math.max(500,Math.min(2e3,d-Date.now()))},a=>{let b="";a.on("data",a=>{b+=a}),a.on("end",()=>{let a=null;try{a=JSON.parse(b)}catch{}if(a?.ok===!0)return h({ok:!0,pid:a.pid||null});j()}),a.on("error",j)});g=a,a.on("timeout",()=>{try{a.destroy()}catch{}}),a.on("error",j),a.end()};l()})}async function au(){let a=null!==aa&&!aa.killed,b=ab;if(!a)try{let{pid:c}=af();c&&(a=!0,b=c)}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}function av({restarting:a,blocked:b,count:c,lastStartAt:d,lastAttemptAt:e,now:f,maxRestarts:g,resetMs:h,delays:i}){if(a||b)return{proceed:!1,reason:a?"in-flight":"blocked"};let j=(d||0)>(e||0)&&f-d>=h?0:c;return j>=g?{proceed:!1,reason:"exhausted",count:j}:{proceed:!0,count:j+1,delay:i[Math.min(j,i.length-1)]}}async function aw(a){let b=av({restarting:R,blocked:T,count:P,lastStartAt:Q,lastAttemptAt:S,now:Date.now(),maxRestarts:5,resetMs:6e4,delays:O});if(!b.proceed)return void("exhausted"===b.reason?E("Max restart attempts reached. Giving up."):"blocked"===b.reason&&E("Auto-restart blocked: sudo password was rejected. Restart MITM from the dashboard."));P=b.count,S=Date.now(),R=!0;let c=!1;D(`Restarting in ${b.delay/1e3}s... (${P}/5)`),await new Promise(a=>setTimeout(a,b.delay));try{let b=ai?await ai():null;if(b&&!b.mitmEnabled)return void D("MITM disabled, skipping restart");let c=ac()||await am();if(!c&&!v)return void E("No cached password, cannot auto-restart");await ay(a,c),D("\uD83D\uDD04 Restarted successfully"),P=0}catch(a){E(`Restart attempt ${P}/5 failed: ${a.message}`),c=!0}finally{R=!1}c&&aw(a)}async function ax(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function ay(a,b,k=!1){if(!aa||aa.killed)try{let{pid:a}=af();if(a)return ab=a,D(`♻️ Reusing existing process (PID: ${a})`),await ak(!0,b),b&&ad(b),{running:!0,pid:a}}catch{}if(aa&&!aa.killed)throw Error("MITM server is already running");if(await as(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ar(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(k)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await ax(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let l=g.join(C,"rootCA.crt"),m=g.join(C,"rootCA.key"),n=h.existsSync(l)&&h.existsSync(m);if(!n||A(l)){if(n){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||ac()||await am();try{await z(a,l)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:o}=c(9631),p=await o(l),r=!v&&!w&&!s();if(p)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||ac()||await am();if(r)D(`🔐 Cert: skipping system trust (no sudo). Install ${l} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,l),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let u=Y;if((!u||!h.existsSync(u))&&(D(`[MITM] server.js missing at ${u} → recopying`),!(u=X(W()))||!h.existsSync(u)))throw Error(`MITM server.js not found at ${u}. Reinstall zevairouter.`);let B=await M();if(D(`🚀 Starting server... (router: ${B})`),v){let c=await ar(b);if(c)if(k)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await ax(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}aa=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}}),aj&&await aj({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){(aa=e("sudo",["-S","-E","sh","-c",[`HOME=${L(i.homedir())}`,`ROUTER_API_KEY=${L(a)}`,`MITM_ROUTER_BASE=${L(B)}`,"NODE_ENV=production",L(process.execPath),L(u)].join(" ")],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.on("error",a=>{D(`[MITM] sudo stdin closed early: ${a.code||a.message}`)});try{aa.stdin.write(`${b}
|
|
39
|
+
`;return new Promise(a=>{f(d,{shell:"/bin/bash"},()=>a())})}async function y(a,b){if(!h()){k(`🔐 Cert: cannot install to system store without sudo — trust this file on clients: ${b}`),await x(b,"add");return}let c=p(),d=`${c.dir}/zevai-root-ca.crt`,e=`cp "${b}" "${d}" && (${c.cmd} 2>/dev/null || true)`;try{await g(e,a),await x(b,"add"),k(`🔐 Cert: ✅ installed to Linux trust store (${c.dir}) and user browser databases`)}catch(a){throw Error(`Certificate install failed: ${a.message}`)}}async function z(a){if(await x(null,"delete"),!h())return;let b=p(),c=`${b.dir}/zevai-root-ca.crt`,d=`rm -f "${c}" && (${b.cmd} 2>/dev/null || true)`;try{await g(d,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Linux trust store and user browser databases")}catch(a){throw Error("Failed to uninstall certificate")}}a.exports={installCert:async function a(a,b){if(!d.existsSync(b))throw Error(`Certificate file not found: ${b}`);await s(b)?k("\uD83D\uDD10 Cert: already trusted ✅"):m?await u(b):n?await t(a,b):await y(a,b)},uninstallCert:async function a(a,b){await s(b)?m?await w():n?await v(a,b):await z(a):k("\uD83D\uDD10 Cert: not found in system store")},checkCertInstalled:s}},26033:(a,b,c)=>{c(33873),c(29021);let{MITM_DIR:d}=c(82193),{generateRootCA:e,loadRootCA:f,generateLeafCert:g}=c(8578);a.exports={generateCert:async function a(){return await e()},getCertForDomain:function(a){try{let b=f(),c=g(a,b);return{key:c.key,cert:c.cert}}catch(b){return console.error(`Failed to generate cert for ${a}:`,b.message),null}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),{isProcessAlive:G,writePidFile:H,resolveVerifiedPid:I,removePidFile:J}=c(15754),K="http://localhost:1997";function L(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function M(){if(!ai)return K;try{let a=await ai(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return K;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return K;return b.replace(/\/+$/,"")}catch{return K}}let N=g.join(C,".mitm.pid"),O=[5e3,1e4,2e4,3e4,6e4],P=0,Q=0,R=!1,S=0,T=!1,U=new WeakSet;function V({isCurrent:a,intentional:b,code:c,restarting:d}){return a?b?{clearState:!0,restart:!1}:{clearState:!0,restart:0!==c&&!d}:{clearState:!1,restart:!1}}function W(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function X(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{let b=h.statSync(a),d=h.statSync(c);if(b.size===d.size&&d.mtimeMs>=b.mtimeMs)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let Y=X(W()),Z="aes-256-gcm",$="zevai-mitm-pwd",_=String.fromCharCode(57,114,111,117,116,101,114)+"-mitm-pwd",aa=null,ab=null;function ac(){return globalThis.__mitmSudoPassword||null}function ad(a){globalThis.__mitmSudoPassword=a}let ae=/(mitm[\\/]server\.js|mitm[\\/]+server\b)/i;function af({dropStalePidFile:a=!0}={}){let b=I(N,{commandPattern:ae});return!b.pid&&b.pidFileStale&&a&&("pid_recycled"===b.reason&&D(`⚠️ Ignoring recycled PID in ${N} — not the MITM server; leaving it alone`),J(N)),b}function ag(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"KILL":"TERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function ah(a=$){try{let{machineIdSync:b}=c(19713),d=b();return l.createHash("sha256").update(d+a).digest()}catch{return l.createHash("sha256").update(a).digest()}}let ai=null,aj=null;async function ak(a,b){if(aj)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=ah($),d=l.randomBytes(12),e=l.createCipheriv(Z,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aj(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function al(){if(aj)try{await aj({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function am(){if(!ai)return null;try{var a;let b,c=await ai();if(!c.mitmSudoEncrypted)return null;return a=c.mitmSudoEncrypted,(b=b=>{try{let[c,d,e]=a.split(":");if(!c||!d||!e)return null;let f=ah(b),g=l.createDecipheriv(Z,f,Buffer.from(c,"hex"));return g.setAuthTag(Buffer.from(d,"hex")),Buffer.concat([g.update(Buffer.from(e,"hex")),g.final()]).toString("utf8")}catch{return null}})($)||b(_)}catch{return null}}async function an(a,b){if(aj&&ai)try{let c={...(await ai()).dnsToolEnabled||{},[a]:b};await aj({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function ao(){if(!ai)return{};try{return(await ai()).dnsToolEnabled||{}}catch{return{}}}async function ap(a){let b=await ao(),c=a||ac()||await am();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function aq(){return v?u():!(!u()&&t())||!!(ac()||await am())}function ar(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function as(a){if(aa&&!aa.killed){U.add(aa);try{aa.kill("SIGKILL")}catch{}aa=null,ab=null}try{let{pid:b}=af({dropStalePidFile:!1});b&&(ag(b,!0,a),await new Promise(a=>setTimeout(a,500))),J(N)}catch{}if(!v&&Y)try{let b=L(Y);if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}function at(a,b=443){return new Promise(c=>{let d=Date.now()+a,e=!1,f=null,g=null,h=a=>{if(!e){if(e=!0,clearTimeout(f),clearTimeout(i),g)try{g.destroy()}catch{}c(a)}},i=setTimeout(()=>h(null),a),j=()=>{if(e)return;let a=d-Date.now();if(a<=0)return h(null);f=setTimeout(l,Math.min(500,a))},l=()=>{if(e)return;let a=k.request({hostname:"127.0.0.1",port:b,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1,timeout:Math.max(500,Math.min(2e3,d-Date.now()))},a=>{let b="";a.on("data",a=>{b+=a}),a.on("end",()=>{let a=null;try{a=JSON.parse(b)}catch{}if(a?.ok===!0)return h({ok:!0,pid:a.pid||null});j()}),a.on("error",j)});g=a,a.on("timeout",()=>{try{a.destroy()}catch{}}),a.on("error",j),a.end()};l()})}async function au(){let a=null!==aa&&!aa.killed,b=ab;if(!a)try{let{pid:c}=af();c&&(a=!0,b=c)}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}function av({restarting:a,blocked:b,count:c,lastStartAt:d,lastAttemptAt:e,now:f,maxRestarts:g,resetMs:h,delays:i}){if(a||b)return{proceed:!1,reason:a?"in-flight":"blocked"};let j=(d||0)>(e||0)&&f-d>=h?0:c;return j>=g?{proceed:!1,reason:"exhausted",count:j}:{proceed:!0,count:j+1,delay:i[Math.min(j,i.length-1)]}}async function aw(a){let b=av({restarting:R,blocked:T,count:P,lastStartAt:Q,lastAttemptAt:S,now:Date.now(),maxRestarts:5,resetMs:6e4,delays:O});if(!b.proceed)return void("exhausted"===b.reason?E("Max restart attempts reached. Giving up."):"blocked"===b.reason&&E("Auto-restart blocked: sudo password was rejected. Restart MITM from the dashboard."));P=b.count,S=Date.now(),R=!0;let c=!1;D(`Restarting in ${b.delay/1e3}s... (${P}/5)`),await new Promise(a=>setTimeout(a,b.delay));try{let b=ai?await ai():null;if(b&&!b.mitmEnabled)return void D("MITM disabled, skipping restart");let c=ac()||await am();if(!c&&!v)return void E("No cached password, cannot auto-restart");await ay(a,c),D("\uD83D\uDD04 Restarted successfully"),P=0}catch(a){E(`Restart attempt ${P}/5 failed: ${a.message}`),c=!0}finally{R=!1}c&&aw(a)}async function ax(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function ay(a,b,k=!1){if(!aa||aa.killed)try{let{pid:a}=af();if(a)return ab=a,D(`♻️ Reusing existing process (PID: ${a})`),await ak(!0,b),b&&ad(b),{running:!0,pid:a}}catch{}if(aa&&!aa.killed)throw Error("MITM server is already running");if(await as(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ar(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(k)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await ax(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let l=g.join(C,"rootCA.crt"),m=g.join(C,"rootCA.key"),n=h.existsSync(l)&&h.existsSync(m);if(!n||A(l)){if(n){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||ac()||await am();try{await z(a,l)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:o}=c(9631),p=await o(l),r=!v&&!w&&!s();if(p)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||ac()||await am();if(r)D(`🔐 Cert: skipping system trust (no sudo). Install ${l} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,l),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let u=Y;if((!u||!h.existsSync(u))&&(D(`[MITM] server.js missing at ${u} → recopying`),!(u=X(W()))||!h.existsSync(u)))throw Error(`MITM server.js not found at ${u}. Reinstall zevairouter.`);let B=await M();if(D(`🚀 Starting server... (router: ${B})`),v){let c=await ar(b);if(c)if(k)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await ax(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}aa=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}}),aj&&await aj({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){(aa=e("sudo",["-S","-E","sh","-c",[`HOME=${L(i.homedir())}`,`ROUTER_API_KEY=${L(a)}`,`MITM_ROUTER_BASE=${L(B)}`,"NODE_ENV=production",L(process.execPath),L(u)].join(" ")],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.on("error",a=>{D(`[MITM] sudo stdin closed early: ${a.code||a.message}`)});try{aa.stdin.write(`${b}
|
|
40
40
|
`),aa.stdin.end()}catch(a){D(`[MITM] could not hand the password to sudo: ${a.code||a.message}`)}}else aa=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}});if(aa&&(H(N,ab=aa.pid,{kind:"mitm-server"}),Q=Date.now()),w){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?D(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):D(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(v){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?D(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):D("[setx] NODE_EXTRA_CA_CERTS set for current user")})}let G=null;if(aa){aa.on("error",a=>{G=`spawn failed: ${a.code||a.message}`,E(`[MITM] ${G}`)}),aa.stdout.on("data",a=>{process.stdout.write(a)}),aa.stderr.on("data",a=>{let b=a.toString().trim();b&&(v||!b.includes("Password:")&&!b.includes("password for"))&&(E(b),G=b),!v&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(ad(null),al().catch(()=>{}),T=!0)});let b=aa;b.on("exit",c=>{let d=V({isCurrent:aa===b,intentional:U.has(b),code:c,restarting:R});if(D(`Server exited (code: ${c})${d.clearState?"":" (stale process, ignoring)"}`),d.clearState){aa=null,ab=null;try{h.unlinkSync(N)}catch{}d.restart&&aw(a)}})}let I=await at(8e3,443);if(!I){if(aa&&!aa.killed){U.add(aa);try{aa.kill()}catch{}aa=null,ab=null;try{h.unlinkSync(N)}catch{}}let a=function(){try{if(v){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${F} -nP -iTCP:443 -sTCP:LISTEN`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=G||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}for(let[a,b]of(aj&&await aj({mitmCertInstalled:!0}).catch(()=>{}),D(`✅ Server healthy (PID: ${ab||I.pid})`),Object.entries(q())))D(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);return await ak(!0,b),b&&ad(b),T=!1,{running:!0,pid:ab}}async function az(a,{preserveEnabled:b=!1}={}){R=!0,P=0,D("⏹ Stopping server...");let e=aa,f=e&&!e.killed?e.pid:af({dropStalePidFile:!1}).pid;if(e&&U.add(e),f&&G(f)&&(D(`Killing server (PID: ${f})...`),ag(f,!1,a),await new Promise(a=>setTimeout(a,1e3)),G(f)&&ag(f,!0,a)),aa=null,ab=null,v){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}D("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
|
|
41
41
|
$hosts = @(${c})
|
|
42
42
|
$lines = Get-Content -LiteralPath ${f(a)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6306,exports.ids=[6306],exports.modules={66306:(a,b,c)=>{function d(a,b){if("string"!=typeof a||"string"!=typeof b)return!1;let c=a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*");return RegExp(`^${c}$`,"i").test(b)}c.d(b,{a0:()=>g,nl:()=>o});let e={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},f={imageToText:{vision:!0},image:{imageOutput:!0},stt:{audioInput:!0},tts:{audioOutput:!0},embedding:{tools:!1}};function g(a){return f[a]||null}let h={"claude-opus-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"kimi-k3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},k3:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-for-coding":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-for-coding-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},i={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},j={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:372e3,maxOutput:128e3},k={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},l={nvidia:{"minimaxai/minimax-m2.7":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072},"minimaxai/minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:131072},"z-ai/glm-5.2":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"deepseek-ai/deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-ai/deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},codex:{"gpt-5.6-sol":j,"gpt-5.6-sol-review":j,"gpt-5.6-terra":k,"gpt-5.6-terra-review":k,"gpt-5.6-luna":k,"gpt-5.6-luna-review":k},kiro:{"gpt-5.6-sol":i,"gpt-5.6-terra":i,"gpt-5.6-luna":i,"gpt-5.6-sol-thinking":i,"gpt-5.6-terra-thinking":i,"gpt-5.6-luna-thinking":i,"gpt-5.6-sol-agentic":i,"gpt-5.6-terra-agentic":i,"gpt-5.6-luna-agentic":i,"gpt-5.6-sol-thinking-agentic":i,"gpt-5.6-terra-thinking-agentic":i,"gpt-5.6-luna-thinking-agentic":i},"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}},poolside:{"laguna-s-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3},"laguna-xs-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}}},m=[{pattern:"*claude*opus-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*omni*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144,maxOutput:65536}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwen*max*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.5*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.6*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k3*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*kimi*for-coding*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*laguna-s-2.1*free*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*laguna-s-2.1*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3}},{pattern:"*laguna*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function n(a){if(!a||"object"!=typeof a)return{};let b=Array.isArray(a.modalities?.input)?a.modalities.input:[],c=Array.isArray(a.modalities?.output)?a.modalities.output:[],d=Number(a.contextWindow??a.contextLength??a.maxInputTokens??a.limit?.context),e=Number(a.maxOutput??a.maxOutputTokens??a.limit?.output),f={...b.includes("image")?{vision:!0}:{},...b.includes("pdf")?{pdf:!0}:{},...b.includes("audio")?{audioInput:!0}:{},...b.includes("video")?{videoInput:!0}:{},...c.includes("image")?{imageOutput:!0}:{},...c.includes("audio")?{audioOutput:!0}:{}};return"boolean"==typeof a.reasoning&&(f.reasoning=a.reasoning),"boolean"==typeof a.tool_call&&(f.tools=a.tool_call),"boolean"==typeof a.tools&&(f.tools=a.tools),Number.isSafeInteger(d)&&d>0&&(f.contextWindow=d),Number.isSafeInteger(e)&&e>0&&(f.maxOutput=e),f}function o(a,b,c=null){if(!b)return{...e};let f=b.includes("/")?b.split("/").pop():b;if(a){let d=l[a];if(d?.[b])return{...e,...d[b],...n(c)};if(d?.[f])return{...e,...d[f],...n(c)}}if(h[f])return{...e,...h[f],...n(c)};if(h[b])return{...e,...h[b],...n(c)};for(let{pattern:a,caps:g}of m)if(d(a,f)||d(a,b))return{...e,...g,...n(c)};return{...e,...n(c)}}}};
|
|
1
|
+
"use strict";exports.id=6306,exports.ids=[6306],exports.modules={66306:(a,b,c)=>{function d(a,b){if("string"!=typeof a||"string"!=typeof b)return!1;let c=a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*");return RegExp(`^${c}$`,"i").test(b)}c.d(b,{a0:()=>g,nl:()=>o});let e={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},f={imageToText:{vision:!0},image:{imageOutput:!0},stt:{audioInput:!0},tts:{audioOutput:!0},embedding:{tools:!1}};function g(a){return f[a]||null}let h={"claude-opus-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"kimi-k3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},k3:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-for-coding":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-for-coding-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},i={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},j={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:372e3,maxOutput:128e3},k={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},l={nvidia:{"minimaxai/minimax-m2.7":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072},"minimaxai/minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:131072},"z-ai/glm-5.2":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"deepseek-ai/deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-ai/deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},codex:{"gpt-5.6-sol":j,"gpt-5.6-sol-review":j,"gpt-5.6-terra":k,"gpt-5.6-terra-review":k,"gpt-5.6-luna":k,"gpt-5.6-luna-review":k},kiro:{"gpt-5.6-sol":i,"gpt-5.6-terra":i,"gpt-5.6-luna":i,"gpt-5.6-sol-thinking":i,"gpt-5.6-terra-thinking":i,"gpt-5.6-luna-thinking":i,"gpt-5.6-sol-agentic":i,"gpt-5.6-terra-agentic":i,"gpt-5.6-luna-agentic":i,"gpt-5.6-sol-thinking-agentic":i,"gpt-5.6-terra-thinking-agentic":i,"gpt-5.6-luna-thinking-agentic":i},"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},hy3:{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"glm-5.3":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"glm-5.3-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"kimi-k3-1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:32e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4.1-flash":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4}},poolside:{"laguna-s-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3},"laguna-xs-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}}},m=[{pattern:"*claude*opus-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*omni*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144,maxOutput:65536}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwen*max*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.5*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.6*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k3*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*kimi*for-coding*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*laguna-s-2.1*free*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*laguna-s-2.1*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3}},{pattern:"*laguna*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function n(a){if(!a||"object"!=typeof a)return{};let b=Array.isArray(a.modalities?.input)?a.modalities.input:[],c=Array.isArray(a.modalities?.output)?a.modalities.output:[],d=Number(a.contextWindow??a.contextLength??a.maxInputTokens??a.limit?.context),e=Number(a.maxOutput??a.maxOutputTokens??a.limit?.output),f={...b.includes("image")?{vision:!0}:{},...b.includes("pdf")?{pdf:!0}:{},...b.includes("audio")?{audioInput:!0}:{},...b.includes("video")?{videoInput:!0}:{},...c.includes("image")?{imageOutput:!0}:{},...c.includes("audio")?{audioOutput:!0}:{}};return"boolean"==typeof a.reasoning&&(f.reasoning=a.reasoning),"boolean"==typeof a.tool_call&&(f.tools=a.tool_call),"boolean"==typeof a.tools&&(f.tools=a.tools),Number.isSafeInteger(d)&&d>0&&(f.contextWindow=d),Number.isSafeInteger(e)&&e>0&&(f.maxOutput=e),f}function o(a,b,c=null){if(!b)return{...e};let f=b.includes("/")?b.split("/").pop():b;if(a){let d=l[a];if(d?.[b])return{...e,...d[b],...n(c)};if(d?.[f])return{...e,...d[f],...n(c)}}if(h[f])return{...e,...h[f],...n(c)};if(h[b])return{...e,...h[b],...n(c)};for(let{pattern:a,caps:g}of m)if(d(a,f)||d(a,b))return{...e,...g,...n(c)};return{...e,...n(c)}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6846,exports.ids=[6846],exports.modules={11175:(a,b,c)=>{c.d(b,{WY:()=>ad,F8:()=>af,NJ:()=>ae});var d,e=c(43659),f=c(41004),g=c(8590),h=c(35024),i=c(83477),j=c(75681),k=c(48806),l=c(87098),m=c(17559),n=c(25433),o=c(34204),p=c(15082),q=c(90874),r=c(79875),s=c(91861),t=c(64991);let u=/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/,v=new Set(["free","freeTier","oauth","apikey"]),w=new Set(["none","oauth","apikey"]),x=new Set(["llm","embedding","image","imageToText","music","stt","tts","video","webFetch","webSearch"]),y=new Set(["antigravity","claude","codex","commandcode","cursor","gemini","gemini-cli","kiro","ollama","openai","openai-response","openai-responses","vertex"]),z=new Set(["public","trusted-local","loopback-service"]),A=new Set(["terminal","kiro-eventstream","none"]),B=["embeddingConfig","imageConfig","imageToTextConfig","musicConfig","sttConfig","ttsConfig","videoConfig"],C=["connectMs","firstEventMs","progressIdleMs","absoluteMs"],D=Object.freeze({quotaSource:Object.freeze({strategy:"none",provenance:"none"}),deadlineProfile:Object.freeze({connectMs:15e3,firstEventMs:6e4,progressIdleMs:6e4,absoluteMs:3e5}),integrityProfile:Object.freeze({mode:"terminal",requireTerminal:!0})});class E extends Error{constructor(a,b){super(`Invalid provider descriptor ${a}: ${b}`),this.name="ProviderDescriptorError",this.path=a}}function F(a,b){throw new E(a,b)}function G(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function H(a,b){"string"==typeof a&&u.test(a)||F(b,"must be a stable lowercase ID")}function I(a,b,c){Array.isArray(a)&&0!==a.length||F(b,"must be a non-empty array");let d=new Set;for(let e of a)"string"==typeof e&&c.has(e)||F(b,"contains an unsupported value"),d.has(e)&&F(b,"contains a duplicate value"),d.add(e)}function J(a){let b=[];for(let[c,d]of Object.entries(a||{}))/(?:base|validate|responses|messages|token|auth|refresh)urls?$/i.test(c)&&("string"==typeof d?b.push(d):Array.isArray(d)&&b.push(...d));return b}function K(a,b,c="public"){for(let d of J(a)){let a;try{a=new URL(d)}catch{F(b,"contains a malformed endpoint")}(a.username||a.password)&&F(b,"endpoint credentials are not allowed"),"public"===c&&"https:"!==a.protocol&&F(b,"public endpoints must use HTTPS"),"public"===c||["http:","https:"].includes(a.protocol)||F(b,"trusted local endpoints must use HTTP or HTTPS")}}function L(a,b){Array.isArray(a)&&0!==a.length||F(b,"must contain a static fallback");let c=new Set;for(let d of a)G(d)&&"string"==typeof d.id&&0!==d.id.length||F(b,"contains a model without an ID"),c.has(d.id)&&F(b,`contains duplicate model ${d.id}`),c.add(d.id)}function M(a,b){for(let c of(G(a)||F(b,"must be an object"),C))(!Number.isInteger(a[c])||a[c]<1e3||a[c]>9e5)&&F(`${b}.${c}`,"must be between 1000 and 900000 milliseconds");a.absoluteMs<a.connectMs&&F(`${b}.absoluteMs`,"must cover connect time")}let N={id:"antigravity",alias:"ag",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.antigravity},serviceKinds:j.AI_PROVIDERS.antigravity.serviceKinds,capabilities:{streaming:!0,tools:!0,thinking:!0},transport:h.xq.antigravity,models:i.vq.ag,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:{...D.deadlineProfile,variants:{thinking:{connectMs:D.deadlineProfile.connectMs,firstEventMs:f.iL,progressIdleMs:f.SI,absoluteMs:f.P4}}},integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"quota-or-model"}},O={id:"kiro",alias:"kr",category:"oauth",authModes:j.AI_PROVIDERS.kiro.authModes,display:{...j.AI_PROVIDERS.kiro},serviceKinds:["llm"],capabilities:{streaming:!0,tools:!0,thinking:!0},transport:h.xq.kiro,models:i.vq.kr,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:(0,t.JJ)("kiro"),deadlineProfile:D.deadlineProfile,integrityProfile:{mode:"kiro-eventstream",requireTerminal:!0,verifiedWindowMs:9e5,cleanProbesToRecover:5,memoryLimitBytes:2097152,maxBytes:0x4000000},dashboard:{connection:"oauth-or-apikey",validation:"profile-or-model"}},P={id:"codex",alias:"cx",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.codex},serviceKinds:j.AI_PROVIDERS.codex.serviceKinds,capabilities:{streaming:!0,tools:!0,thinking:!0},transport:h.xq.codex,models:i.vq.cx,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:D.deadlineProfile,integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"catalog-or-quota"}},Q={id:"cursor",alias:"cu",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.cursor},serviceKinds:["llm"],capabilities:{streaming:!0,tools:!0,liveCatalog:!0},transport:h.xq.cursor,models:i.vq.cu,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:D.deadlineProfile,integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"account-or-model"}},R={id:"github",alias:"gh",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.github},serviceKinds:j.AI_PROVIDERS.github.serviceKinds,capabilities:{streaming:!0,tools:!0,responseEscalation:!0},transport:h.xq.github,models:i.vq.gh,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:D.deadlineProfile,integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"quota-or-model"},embeddingConfig:j.AI_PROVIDERS.github.embeddingConfig},S=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],T=[k.A,l.A,m.A,n.A,o.A,p.A,q.A,r.A,s.A,N,O,P,Q,R];function U(a={}){return Object.fromEntries(S.filter(b=>void 0!==a[b]).map(b=>[b,a[b]]))}let V=new Set([...Object.keys(j.AI_PROVIDERS),...Object.keys(h.xq)]),W=new Map(T.map(a=>[a.id,a])),X=new Set(["antigravity","kiro","codex","cursor","github"]),Y={};for(let a of V){let b=function(a){let b=j.AI_PROVIDERS[a]||{},c=b.alias||a;return{id:a,alias:c,category:b.noAuth?"free":b.hasOAuth?"oauth":"apikey",authModes:b.authModes,hasOAuth:b.hasOAuth,noAuth:b.noAuth,passthroughModels:b.passthroughModels,display:function(a={}){let b=new Set(S);return Object.fromEntries(Object.entries(a).filter(([a])=>!b.has(a)))}(b),transport:h.xq[a],models:i.vq[c]||i.vq[a]||[],...U(b)}}(a),c=W.has(a)?(d=W.get(a),{...b,...d,display:{...b.display,...d.display},transport:{...b.transport,...d.transport},models:function(a=[],b=[]){let c=new Map;for(let d of[...a,...b])d?.id&&c.set(d.id,{...c.get(d.id),...d});return[...c.values()]}(b.models,d.models)}):b;Y[a]=X.has(a)?function(a,{optional:b=!1}={}){try{return function(a){if(G(a)||F("root","must be an object"),H(a.id,"id"),H(a.alias,"alias"),void 0!==a.aliases)for(let b of(Array.isArray(a.aliases)||F("aliases","must be an array"),a.aliases))H(b,"aliases");v.has(a.category)||F("category","is unsupported"),I(a.authModes,"authModes",w),I(a.serviceKinds,"serviceKinds",x),G(a.display)&&"string"==typeof a.display.name&&a.display.name.trim()||F("display.name","is required"),G(a.capabilities)||F("capabilities","must be an object"),G(a.transport)||F("transport","must be an object"),y.has(a.transport.format)||F("transport.format","is unsupported");let b=a.transport.trustClass||"public";z.has(b)||F("transport.trustClass","is unsupported"),0===J(a.transport).length&&F("transport","requires an endpoint"),K(a.transport,"transport",b),L(a.models,"models"),G(a.quotaSource)&&"string"==typeof a.quotaSource.strategy&&"string"==typeof a.quotaSource.provenance||F("quotaSource","must declare strategy and provenance"),G(c=a.refreshProfile)||F("refreshProfile","must be an object"),(!Number.isInteger(c.maxConcurrent)||c.maxConcurrent<1)&&F("refreshProfile.maxConcurrent","must be a positive integer"),(!Number.isInteger(c.minDelayMs)||c.minDelayMs<0)&&F("refreshProfile.minDelayMs","must be a non-negative integer");var c,d=a.deadlineProfile;if(M(d,"deadlineProfile"),void 0!==d.variants)for(let[a,b]of(G(d.variants)||F("deadlineProfile.variants","must be an object"),Object.entries(d.variants)))M(b,`deadlineProfile.variants.${a}`);var e=a.integrityProfile;for(let a of(G(e)&&A.has(e.mode)||F("integrityProfile.mode","is unsupported"),"boolean"!=typeof e.requireTerminal&&F("integrityProfile.requireTerminal","must be boolean"),["memoryLimitBytes","maxBytes","verifiedWindowMs","cleanProbesToRecover"]))void 0!==e[a]&&(!Number.isInteger(e[a])||e[a]<=0)&&F(`integrityProfile.${a}`,"must be a positive integer");G(a.dashboard)&&"string"==typeof a.dashboard.connection&&"string"==typeof a.dashboard.validation||F("dashboard","must declare connection and validation modes");for(let b of B){let c=a[b];void 0!==c&&(G(c)||F(b,"must be an object"),K(c,b,c.trustClass||"public"),void 0!==c.models&&L(c.models,`${b}.models`))}return function a(b,c=new WeakMap){if(null===b||"object"!=typeof b)return b;if(c.has(b))return c.get(b);let d=Array.isArray(b)?[]:{};for(let[e,f]of(c.set(b,d),Object.entries(b)))d[e]=a(f,c);return Object.freeze(d)}(a)}(a)}catch(d){let c;if(!b)throw d;return Object.freeze({id:"string"==typeof a?.id&&u.test(a.id)?a.id:"optional-provider",disabled:!0,diagnostic:(c=d instanceof E?d.path:"unknown",`Provider descriptor disabled: invalid ${c}`.slice(0,160))})}}(c):c}let Z={},$={},_={};for(let a of Object.values(Y)){a.transport&&(Z[a.id]=a.transport),$[a.alias||a.id]=a.models||[];let b=U(a);Object.keys(b).length>0&&(_[a.id]=b)}let aa=Number(process.env.VIDEO_FETCH_TIMEOUT_MS),ab=Number.isFinite(aa)?Math.max(5e3,Math.min(aa,6e5)):12e4,ac=new Set(["generations","edits","extensions"]);function ad(a){return _[a]?.videoConfig||null}function ae(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function af({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:h=null,idempotencyKey:i=null,credentials:j,signal:k,timeoutMs:l=ab,log:m,onCredentialsRefreshed:n}){let o,p,q,r=ad(a);if(!r)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!ac.has(b))return(0,e.A1)(f.gx.BAD_REQUEST,`Unknown video action: ${b}`);let s=c?"GET":"POST",t=(p=r.baseUrl.replace(/\/$/,""),c?`${p}/${encodeURIComponent(c)}`:`${p}/${b}`),u=(q="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(l):null,k&&q&&"function"==typeof AbortSignal.any?AbortSignal.any([k,q]):k||q||void 0),v=a=>fetch(t,{method:s,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};if(a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c){let a=String(c).replace(/[\r\n\t]/g,"").slice(0,256);a&&(d["Idempotency-Key"]=a)}return d}({token:a,contentType:"POST"===s?h:null,idempotencyKey:"POST"===s?i:null}),body:"POST"===s?d:void 0,signal:u});try{o=await v(j?.accessToken||j?.apiKey)}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,e.A1)(f.gx.REQUEST_TIMEOUT,`[${a}] video ${s} aborted: ${b.message}`);return(0,e.A1)(f.gx.BAD_GATEWAY,ae(`[${a}] video upstream fetch failed: ${b.message}`,j))}if((o.status===f.gx.UNAUTHORIZED||o.status===f.gx.FORBIDDEN)&&j?.refreshToken){let b=null;try{b=await (0,g.$B)(a,j,m)}catch(b){m?.warn?.("TOKEN",`${a} | video refresh error: ${ae(b.message,j)}`)}if(b?.accessToken){m?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${s}`),Object.assign(j,b),n&&await n(b);try{await o.body?.cancel?.()}catch{}try{o=await v(j.accessToken||j.apiKey)}catch(b){return(0,e.A1)(f.gx.BAD_GATEWAY,ae(`[${a}] video retry after refresh failed: ${b.message}`,j))}}else m?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let w=await o.text().catch(()=>"");if(!o.ok){let b=ae(w||`HTTP ${o.status}`,j);return(0,e.A1)(o.status,`[${a}] ${b.slice(0,2e3)}`)}return{success:!0,response:new Response(w,{status:o.status,headers:{"Content-Type":o.headers.get("content-type")||"application/json","Access-Control-Allow-Origin":"*"}})}}},11410:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>k});var e=c(89718),f=c(29240),g=c(43659),h=c(41004),i=c(79489),j=a([i]);async function k(a,b){if(!a)return{finish:a=>a};let d=await (0,e.uH)(a);if(b&&!(0,f.GJ)(b,d))return{error:(0,g.yj)(h.gx.FORBIDDEN,`Model ${b} is not allowed for this API key`)};let{checkApiKeyBudget:j,admitApiKeyRequest:k}=await Promise.resolve().then(c.bind(c,93999)),l=await j(a);if(!l.allowed)return{error:(0,g.yj)(l.error?h.gx.SERVICE_UNAVAILABLE:h.gx.PAYMENT_REQUIRED,l.reason||"Budget exceeded")};let m=await k(a);if(!m.allowed){let a=m.retryAfter?{"Retry-After":String(m.retryAfter)}:void 0;return{error:new Response(JSON.stringify({error:{message:m.reason}}),{status:m.status||429,headers:{"Content-Type":"application/json",...a}})}}return{policy:d,finish:a=>(0,i.L)(a,m.release,m.touch)}}i=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},96846:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{g:()=>t,s:()=>v});var e=c(80238),f=c(89718),g=c(38775),h=c(11175),i=c(43659),j=c(41004),k=c(58136),l=c(11410),m=c(7803),n=a([l]);function o(a){return a.headers.get("x-zevai-connection-id")||a.headers.get("x-connection-id")||null}l=(n.then?(await n)():n)[0];let w=new Set([j.gx.UNAUTHORIZED,j.gx.FORBIDDEN,j.gx.RATE_LIMITED]);async function p(a){let b=(0,e.Tr)(a);if((await (0,f.mt)()).requireApiKey){if(!b)return(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(b))return(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}return null}async function q(a){let b,c=a.headers.get("content-type")||"",d=(b=Number(process.env.MAX_VIDEO_REQUEST_BYTES),Number.isFinite(b)?Math.max(1024,Math.min(b,0x4000000)):0x2000000),e=Number(a.headers.get("content-length"));if(Number.isFinite(e)&&e>d)return{error:(0,i.yj)(j.gx.PAYLOAD_TOO_LARGE,"Video request body is too large")};if(c.includes("application/json")){let b,e=await a.text();if(Buffer.byteLength(e)>d)return{error:(0,i.yj)(j.gx.PAYLOAD_TOO_LARGE,"Video request body is too large")};try{b=JSON.parse(e)}catch{return{error:(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:e,parsed:b,contentType:c}}let f=Buffer.from(await a.arrayBuffer());return f.byteLength>d?{error:(0,i.yj)(j.gx.PAYLOAD_TOO_LARGE,"Video request body is too large")}:{raw:f,parsed:null,contentType:c}}async function r(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,g.mA)(b);return c.provider?(0,h.WY)(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,i.yj)(j.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,i.yj)(j.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function s(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-zevai-connection-id",String(b)),c.set("x-connection-id",String(b)),c.set("Access-Control-Expose-Headers","x-zevai-connection-id, x-connection-id"),new Response(a.body,{status:a.status,headers:c})}async function t(a,b){let c=await p(a);if(c)return c;let d=await q(a);if(d.error)return d.error;let f=await r(d.parsed);if(f.error)return f.error;let{provider:g,model:h}=f,i=await (0,l.M)((0,e.Tr)(a),d.parsed?.model?String(d.parsed.model):null);return i.error?i.error:i.finish(await u(a,b,d,g,h))}async function u(a,b,c,d,f){let g=c.raw;c.parsed&&f&&c.parsed.model!==f&&(g=JSON.stringify({...c.parsed,model:f}));let l=o(a),n=(0,e.Tr)(a),p=a.headers.get("idempotency-key")||null,q=new Set,r=null,t=null;for(;;){let o=await (0,e.c1)(d,q,f,{preferredConnectionId:l,...n?{apiKey:n}:{}});if(!o||o.allRateLimited){if(o?.allRateLimited){let a=r||o.lastError||"Unavailable",b=t||Number(o.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return(0,i.wO)(b,`[${d}/${f||"video"}] ${a}`,o.retryAfter,o.retryAfterHuman)}if(0===q.size)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${d}`);return(0,i.yj)(t||j.gx.SERVICE_UNAVAILABLE,r||"All accounts unavailable")}let u=await (0,k.eU)(d,o),v=await (0,h.F8)({provider:d,action:b,rawBody:g,contentType:c.contentType||null,idempotencyKey:p,credentials:u,signal:a.signal,log:m,onCredentialsRefreshed:async a=>{await (0,k.vN)(o.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(v.success)return await (0,e.Pt)(o.connectionId,o,f),m.info("VIDEO",`${d.toUpperCase()} | ${b} accepted (connection ${o.connectionId})`),s(v.response,o.connectionId);let{shouldFallback:x}=await (0,e.vk)(o.connectionId,v.status,(0,h.NJ)(v.error,u),d,f);if(x&&w.has(v.status)){q.add(o.connectionId),r=v.error,t=v.status;continue}return v.response}}async function v(a,b){let c=await p(a);if(c)return c;if(!b)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing video request id");if(String(b).length>256)return(0,i.yj)(j.gx.BAD_REQUEST,"Video request id is too long");let d=o(a),f=(0,e.Tr)(a),g=await (0,e.c1)("xai",null,null,{preferredConnectionId:d,strictPreferred:!!d,...f?{apiKey:f}:{}});if(!g||g.allRateLimited)return(0,i.yj)(j.gx.BAD_REQUEST,"No credentials for provider: xai");let l=await (0,k.eU)("xai",g),n=await (0,h.F8)({provider:"xai",requestId:b,credentials:l,signal:a.signal,log:m,onCredentialsRefreshed:async a=>{await (0,k.vN)(g.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return n.success?(await (0,e.Pt)(g.connectionId,g,null),s(n.response,g.connectionId)):(await (0,e.vk)(g.connectionId,n.status,(0,h.NJ)(n.error,l),"xai",null),n.response)}d()}catch(a){d(a)}})}};
|
|
1
|
+
"use strict";exports.id=6846,exports.ids=[6846],exports.modules={11410:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>k});var e=c(89718),f=c(29240),g=c(43659),h=c(41004),i=c(79489),j=a([i]);async function k(a,b){if(!a)return{finish:a=>a};let d=await (0,e.uH)(a);if(b&&!(0,f.GJ)(b,d))return{error:(0,g.yj)(h.gx.FORBIDDEN,`Model ${b} is not allowed for this API key`)};let{checkApiKeyBudget:j,admitApiKeyRequest:k}=await Promise.resolve().then(c.bind(c,93999)),l=await j(a);if(!l.allowed)return{error:(0,g.yj)(l.error?h.gx.SERVICE_UNAVAILABLE:h.gx.PAYMENT_REQUIRED,l.reason||"Budget exceeded")};let m=await k(a);if(!m.allowed){let a=m.retryAfter?{"Retry-After":String(m.retryAfter)}:void 0;return{error:new Response(JSON.stringify({error:{message:m.reason}}),{status:m.status||429,headers:{"Content-Type":"application/json",...a}})}}return{policy:d,finish:a=>(0,i.L)(a,m.release,m.touch)}}i=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},56895:(a,b,c)=>{c.d(b,{WY:()=>ap,F8:()=>ar,NJ:()=>aq});var d,e=c(43659),f=c(41004),g=c(8590),h=c(35024),i=c(83477),j=c(75681),k=c(48806),l=c(87098),m=c(17559),n=c(25433),o=c(34204),p=c(15082),q=c(90874),r=c(79875),s=c(91861),t=c(64991);let u=/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/,v=new Set(["free","freeTier","oauth","apikey"]),w=new Set(["none","oauth","apikey"]),x=new Set(["llm","embedding","image","imageToText","music","stt","tts","video","webFetch","webSearch"]),y=new Set(["antigravity","claude","codex","commandcode","cursor","gemini","gemini-cli","kiro","ollama","openai","openai-response","openai-responses","vertex"]),z=new Set(["public","trusted-local","loopback-service"]),A=new Set(["terminal","kiro-eventstream","none"]),B=["embeddingConfig","imageConfig","imageToTextConfig","musicConfig","sttConfig","ttsConfig","videoConfig"],C=["connectMs","firstEventMs","progressIdleMs","absoluteMs"],D=Object.freeze({quotaSource:Object.freeze({strategy:"none",provenance:"none"}),deadlineProfile:Object.freeze({connectMs:15e3,firstEventMs:6e4,progressIdleMs:6e4,absoluteMs:3e5}),integrityProfile:Object.freeze({mode:"terminal",requireTerminal:!0})});class E extends Error{constructor(a,b){super(`Invalid provider descriptor ${a}: ${b}`),this.name="ProviderDescriptorError",this.path=a}}function F(a,b){throw new E(a,b)}function G(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function H(a,b){"string"==typeof a&&u.test(a)||F(b,"must be a stable lowercase ID")}function I(a,b,c){Array.isArray(a)&&0!==a.length||F(b,"must be a non-empty array");let d=new Set;for(let e of a)"string"==typeof e&&c.has(e)||F(b,"contains an unsupported value"),d.has(e)&&F(b,"contains a duplicate value"),d.add(e)}function J(a){let b=[];for(let[c,d]of Object.entries(a||{}))/(?:base|validate|responses|messages|token|auth|refresh)urls?$/i.test(c)&&("string"==typeof d?b.push(d):Array.isArray(d)&&b.push(...d));return b}function K(a,b,c="public"){for(let d of J(a)){let a;try{a=new URL(d)}catch{F(b,"contains a malformed endpoint")}(a.username||a.password)&&F(b,"endpoint credentials are not allowed"),"public"===c&&"https:"!==a.protocol&&F(b,"public endpoints must use HTTPS"),"public"===c||["http:","https:"].includes(a.protocol)||F(b,"trusted local endpoints must use HTTP or HTTPS")}}function L(a,b){Array.isArray(a)&&0!==a.length||F(b,"must contain a static fallback");let c=new Set;for(let d of a)G(d)&&"string"==typeof d.id&&0!==d.id.length||F(b,"contains a model without an ID"),c.has(d.id)&&F(b,`contains duplicate model ${d.id}`),c.add(d.id)}function M(a,b){for(let c of(G(a)||F(b,"must be an object"),C))(!Number.isInteger(a[c])||a[c]<1e3||a[c]>9e5)&&F(`${b}.${c}`,"must be between 1000 and 900000 milliseconds");a.absoluteMs<a.connectMs&&F(`${b}.absoluteMs`,"must cover connect time")}let N={id:"antigravity",alias:"ag",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.antigravity},serviceKinds:j.AI_PROVIDERS.antigravity.serviceKinds,capabilities:{streaming:!0,tools:!0,thinking:!0},transport:h.xq.antigravity,models:i.vq.ag,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:{...D.deadlineProfile,variants:{thinking:{connectMs:D.deadlineProfile.connectMs,firstEventMs:f.iL,progressIdleMs:f.SI,absoluteMs:f.P4}}},integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"quota-or-model"}},O={id:"kiro",alias:"kr",category:"oauth",authModes:j.AI_PROVIDERS.kiro.authModes,display:{...j.AI_PROVIDERS.kiro},serviceKinds:["llm"],capabilities:{streaming:!0,tools:!0,thinking:!0},transport:h.xq.kiro,models:i.vq.kr,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:(0,t.JJ)("kiro"),deadlineProfile:D.deadlineProfile,integrityProfile:{mode:"kiro-eventstream",requireTerminal:!0,verifiedWindowMs:9e5,cleanProbesToRecover:5,memoryLimitBytes:2097152,maxBytes:0x4000000},dashboard:{connection:"oauth-or-apikey",validation:"profile-or-model"}},P={id:"codex",alias:"cx",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.codex},serviceKinds:j.AI_PROVIDERS.codex.serviceKinds,capabilities:{streaming:!0,tools:!0,thinking:!0},transport:h.xq.codex,models:i.vq.cx,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:D.deadlineProfile,integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"catalog-or-quota"}},Q={id:"cursor",alias:"cu",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.cursor},serviceKinds:["llm"],capabilities:{streaming:!0,tools:!0,liveCatalog:!0},transport:h.xq.cursor,models:i.vq.cu,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:D.deadlineProfile,integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"account-or-model"}},R={id:"github",alias:"gh",category:"oauth",authModes:["oauth"],display:{...j.AI_PROVIDERS.github},serviceKinds:j.AI_PROVIDERS.github.serviceKinds,capabilities:{streaming:!0,tools:!0,responseEscalation:!0},transport:h.xq.github,models:i.vq.gh,quotaSource:{strategy:"provider-api",provenance:"live-or-last-success"},refreshProfile:t.Wk,deadlineProfile:D.deadlineProfile,integrityProfile:D.integrityProfile,dashboard:{connection:"oauth",validation:"quota-or-model"},embeddingConfig:j.AI_PROVIDERS.github.embeddingConfig},S=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],T=[k.A,l.A,m.A,n.A,o.A,p.A,q.A,r.A,s.A,N,O,P,Q,R];function U(a={}){return Object.fromEntries(S.filter(b=>void 0!==a[b]).map(b=>[b,a[b]]))}let V=new Set([...Object.keys(j.AI_PROVIDERS),...Object.keys(h.xq)]),W=new Map(T.map(a=>[a.id,a])),X=new Set(["antigravity","kiro","codex","cursor","github"]),Y={};for(let a of V){let b=function(a){let b=j.AI_PROVIDERS[a]||{},c=b.alias||a;return{id:a,alias:c,category:b.noAuth?"free":b.hasOAuth?"oauth":"apikey",authModes:b.authModes,hasOAuth:b.hasOAuth,noAuth:b.noAuth,passthroughModels:b.passthroughModels,display:function(a={}){let b=new Set(S);return Object.fromEntries(Object.entries(a).filter(([a])=>!b.has(a)))}(b),transport:h.xq[a],models:i.vq[c]||i.vq[a]||[],...U(b)}}(a),c=W.has(a)?(d=W.get(a),{...b,...d,display:{...b.display,...d.display},transport:{...b.transport,...d.transport},models:function(a=[],b=[]){let c=new Map;for(let d of[...a,...b])d?.id&&c.set(d.id,{...c.get(d.id),...d});return[...c.values()]}(b.models,d.models)}):b;Y[a]=X.has(a)?function(a,{optional:b=!1}={}){try{return function(a){if(G(a)||F("root","must be an object"),H(a.id,"id"),H(a.alias,"alias"),void 0!==a.aliases)for(let b of(Array.isArray(a.aliases)||F("aliases","must be an array"),a.aliases))H(b,"aliases");v.has(a.category)||F("category","is unsupported"),I(a.authModes,"authModes",w),I(a.serviceKinds,"serviceKinds",x),G(a.display)&&"string"==typeof a.display.name&&a.display.name.trim()||F("display.name","is required"),G(a.capabilities)||F("capabilities","must be an object"),G(a.transport)||F("transport","must be an object"),y.has(a.transport.format)||F("transport.format","is unsupported");let b=a.transport.trustClass||"public";z.has(b)||F("transport.trustClass","is unsupported"),0===J(a.transport).length&&F("transport","requires an endpoint"),K(a.transport,"transport",b),L(a.models,"models"),G(a.quotaSource)&&"string"==typeof a.quotaSource.strategy&&"string"==typeof a.quotaSource.provenance||F("quotaSource","must declare strategy and provenance"),G(c=a.refreshProfile)||F("refreshProfile","must be an object"),(!Number.isInteger(c.maxConcurrent)||c.maxConcurrent<1)&&F("refreshProfile.maxConcurrent","must be a positive integer"),(!Number.isInteger(c.minDelayMs)||c.minDelayMs<0)&&F("refreshProfile.minDelayMs","must be a non-negative integer");var c,d=a.deadlineProfile;if(M(d,"deadlineProfile"),void 0!==d.variants)for(let[a,b]of(G(d.variants)||F("deadlineProfile.variants","must be an object"),Object.entries(d.variants)))M(b,`deadlineProfile.variants.${a}`);var e=a.integrityProfile;for(let a of(G(e)&&A.has(e.mode)||F("integrityProfile.mode","is unsupported"),"boolean"!=typeof e.requireTerminal&&F("integrityProfile.requireTerminal","must be boolean"),["memoryLimitBytes","maxBytes","verifiedWindowMs","cleanProbesToRecover"]))void 0!==e[a]&&(!Number.isInteger(e[a])||e[a]<=0)&&F(`integrityProfile.${a}`,"must be a positive integer");G(a.dashboard)&&"string"==typeof a.dashboard.connection&&"string"==typeof a.dashboard.validation||F("dashboard","must declare connection and validation modes");for(let b of B){let c=a[b];void 0!==c&&(G(c)||F(b,"must be an object"),K(c,b,c.trustClass||"public"),void 0!==c.models&&L(c.models,`${b}.models`))}return function a(b,c=new WeakMap){if(null===b||"object"!=typeof b)return b;if(c.has(b))return c.get(b);let d=Array.isArray(b)?[]:{};for(let[e,f]of(c.set(b,d),Object.entries(b)))d[e]=a(f,c);return Object.freeze(d)}(a)}(a)}catch(d){let c;if(!b)throw d;return Object.freeze({id:"string"==typeof a?.id&&u.test(a.id)?a.id:"optional-provider",disabled:!0,diagnostic:(c=d instanceof E?d.path:"unknown",`Provider descriptor disabled: invalid ${c}`.slice(0,160))})}}(c):c}let Z={},$={},_={};for(let a of Object.values(Y)){a.transport&&(Z[a.id]=a.transport),$[a.alias||a.id]=a.models||[];let b=U(a);Object.keys(b).length>0&&(_[a.id]=b)}let aa="application/json";function ab(a){let b=Error(a);return b.status=400,b}let ac="application/json",ad=new Set(["veo-3.1-generate-preview","veo-3.1-fast-generate-preview","veo-3.0-generate-001","veo-2.0-generate-001"]),ae={duration:"durationSeconds",aspect_ratio:"aspectRatio",resolution:"resolution",negative_prompt:"negativePrompt",seed:"seed",storage_uri:"storageUri",generate_audio:"generateAudio"};function af(a){let b=Error(a);return b.status=400,b}function ag(a){return"string"==typeof a&&a.length>0&&"."!==a&&".."!==a&&/^[A-Za-z0-9._~-]+$/.test(a)}function ah(a){if("string"!=typeof a)return null;let b=a.split("/");return 10===b.length&&"projects"===b[0]&&"locations"===b[2]&&"publishers"===b[4]&&"google"===b[5]&&"models"===b[6]&&"operations"===b[8]&&ag(b[1])&&ag(b[3])&&ag(b[7])&&ag(b[9])?{name:a,project:b[1],location:b[3],model:b[7],operation:b[9]}:null}function ai(a){if("string"!=typeof a||!/^[A-Za-z0-9_-]+$/.test(a))return null;try{let b=Buffer.from(a,"base64url").toString("utf8");if(Buffer.from(b,"utf8").toString("base64url")!==a)return null;return ah(b)?.name||null}catch{return null}}function aj(a){return`https://${a}-aiplatform.googleapis.com/v1`}function ak(a){return Response.json(a,{headers:{"Access-Control-Allow-Origin":"*"}})}let al={openrouter:{buildRequest({config:a,action:b,requestId:c,model:d,parsedBody:e,contentType:f,token:g}){let i=a.baseUrl.replace(/\/$/,""),j={Accept:aa,...h.xq.openrouter.headers};if(g&&(j.Authorization=`Bearer ${g}`),c)return{url:`${i}/${encodeURIComponent(c)}`,init:{method:"GET",headers:j}};if("generations"!==b)throw ab(`OpenRouter does not support video action: ${b}`);if(f?.split(";",1)[0].trim().toLowerCase()!==aa||!e||"object"!=typeof e||Array.isArray(e))throw ab("OpenRouter video generation requires an application/json object body");return j["Content-Type"]=aa,{url:i,init:{method:"POST",headers:j,body:JSON.stringify({...e,model:d})}}},parseResponse:async a=>new Response(await a.arrayBuffer(),{status:a.status,headers:{"Content-Type":a.headers.get("content-type")||aa,"Access-Control-Allow-Origin":"*"}})},vertex:{buildRequest({action:a,requestId:b,model:c,parsedBody:d,credentials:e}){let f={Accept:ac,"Content-Type":ac};if(e?.accessToken&&(f.Authorization=`Bearer ${e.accessToken}`),b){let a=ai(b),c=a&&ah(a);if(!c)throw af("Invalid Vertex operation ID");if(!ad.has(c.model))throw af("Invalid or unsupported Vertex video model");return{url:`${aj(c.location)}/projects/${c.project}/locations/${c.location}/publishers/google/models/${c.model}:fetchPredictOperation`,init:{method:"POST",headers:f,body:JSON.stringify({operationName:a})}}}if("generations"!==a)throw af(`Vertex does not support video action: ${a}`);if(!ag(c)||!ad.has(c))throw af("Invalid or unsupported Vertex video model");if(!d||"object"!=typeof d||Array.isArray(d))throw af("Vertex video generation requires a JSON object body");let{project:g,location:h}=function(a){let b=function(a){let b=a?.apiKey;if(b&&"object"==typeof b)return b;if("string"!=typeof b||!b.trim().startsWith("{"))return null;try{let a=JSON.parse(b);return a&&"object"==typeof a?a:null}catch{return null}}(a),c=a?.projectId||a?.providerSpecificData?.projectId||b?.project_id,d=a?.providerSpecificData?.location||"us-central1";if(!ag(c))throw af("Invalid or missing Vertex project ID");if(!ag(d))throw af("Invalid Vertex location");return{project:c,location:d}}(e),i={prompt:d.prompt};void 0!==d.image&&(i.image=d.image);let j={};for(let[a,b]of Object.entries(ae))void 0!==d[a]&&(j[b]=d[a]);return{url:`${aj(h)}/projects/${g}/locations/${h}/publishers/google/models/${c}:predictLongRunning`,init:{method:"POST",headers:f,body:JSON.stringify({instances:[i],parameters:j})}}},async parseResponse(a,{requestId:b}){let c=await a.json();if(!b){var d;let a=ah(d=c?.name)?Buffer.from(d,"utf8").toString("base64url"):null;if(!a)throw af("Vertex returned an invalid operation name");return ak({request_id:a,status:"pending"})}if(!c?.done){let a=c?.metadata?.progressPercent;return Number.isFinite(a)?ak({status:"processing",progress:a}):ak({status:"pending"})}if(c.error){let a=ai(b),d=String(c.error.message||"");return ak({status:"failed",error:{code:c.error.code,message:a?d.split(a).join("[redacted]"):d}})}let e=c?.response?.videos?.[0];return e?.gcsUri!==void 0?ak({status:"done",video:{url:e.gcsUri}}):e?.bytesBase64Encoded!==void 0?ak({status:"done",video:{b64_json:e.bytesBase64Encoded}}):ak({status:"done"})}}},am=Number(process.env.VIDEO_FETCH_TIMEOUT_MS),an=Number.isFinite(am)?Math.max(5e3,Math.min(am,6e5)):12e4,ao=new Set(["generations","edits","extensions"]);function ap(a){return _[a]?.videoConfig||null}function aq(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function ar({provider:a,action:b=null,requestId:c=null,rawBody:d=null,model:h=null,parsedBody:i=null,contentType:j=null,idempotencyKey:k=null,credentials:l,signal:m,timeoutMs:n=an,log:o,prepareCredentials:p,onCredentialsRefreshed:q}){let r,s,t=ap(a);if(!t)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!ao.has(b))return(0,e.A1)(f.gx.BAD_REQUEST,`Unknown video action: ${b}`);let u=al[a]||null,v="vertex"===a||"vertex-partner"===a,w=c?"GET":"POST",x=(s="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(n):null,m&&s&&"function"==typeof AbortSignal.any?AbortSignal.any([m,s]):m||s||void 0),y=()=>v?l?.accessToken:l?.accessToken||l?.apiKey,z=a=>u.buildRequest({config:t,action:b,requestId:c,model:h,parsedBody:i,rawBody:d,contentType:j,token:a,idempotencyKey:k,credentials:l}),A=null;if(u)try{A=z(y())}catch(b){if(b?.status===f.gx.BAD_REQUEST)return(0,e.A1)(f.gx.BAD_REQUEST,b.message);return(0,e.A1)(f.gx.BAD_GATEWAY,aq(`[${a}] video request build failed: ${b.message}`,l))}if(p){let b=await p(l);if(b&&(l=b),u)try{A=z(y())}catch(b){if(b?.status===f.gx.BAD_REQUEST)return(0,e.A1)(f.gx.BAD_REQUEST,b.message);return(0,e.A1)(f.gx.BAD_GATEWAY,aq(`[${a}] video request build failed: ${b.message}`,l))}}let B=(a,e=null)=>{let f;if(u){let b=e||z(a);return fetch(b.url,{...b.init,signal:x})}return fetch((f=t.baseUrl.replace(/\/$/,""),c?`${f}/${encodeURIComponent(c)}`:`${f}/${b}`),{method:w,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};if(a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c){let a=String(c).replace(/[\r\n\t]/g,"").slice(0,256);a&&(d["Idempotency-Key"]=a)}return d}({token:a,contentType:"POST"===w?j:null,idempotencyKey:"POST"===w?k:null}),body:"POST"===w?d:void 0,signal:x})};if(v&&!l?.accessToken){let b;try{b=await (0,g.$B)(a,l,o)}catch(b){return(0,e.A1)(f.gx.BAD_GATEWAY,aq(`[${a}] video access token mint failed: ${b.message}`,l))}if(!b?.accessToken)return(0,e.A1)(f.gx.BAD_GATEWAY,aq(`[${a}] video access token mint failed`,l));Object.assign(l,b),q&&await q(b),A=z(y())}try{r=await B(y(),A)}catch(b){if(b?.status===f.gx.BAD_REQUEST)return(0,e.A1)(f.gx.BAD_REQUEST,b.message);if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,e.A1)(f.gx.REQUEST_TIMEOUT,`[${a}] video ${w} aborted: ${b.message}`);return(0,e.A1)(f.gx.BAD_GATEWAY,aq(`[${a}] video upstream fetch failed: ${b.message}`,l))}if((r.status===f.gx.UNAUTHORIZED||r.status===f.gx.FORBIDDEN)&&(l?.refreshToken||v)){let b=null;try{b=await (0,g.$B)(a,l,o)}catch(b){o?.warn?.("TOKEN",`${a} | video refresh error: ${aq(b.message,l)}`)}if(b?.accessToken){o?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${w}`),Object.assign(l,b),q&&await q(b);try{await r.body?.cancel?.()}catch{}try{r=await B(y())}catch(b){return(0,e.A1)(f.gx.BAD_GATEWAY,aq(`[${a}] video retry after refresh failed: ${b.message}`,l))}}else o?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}if(r.ok&&u)return{success:!0,response:await u.parseResponse(r,{config:t,provider:a,action:b,requestId:c,model:h,parsedBody:i})};let C=await r.text().catch(()=>"");if(!r.ok){let b=aq(C||`HTTP ${r.status}`,l);return(0,e.A1)(r.status,`[${a}] ${b.slice(0,2e3)}`)}return{success:!0,response:new Response(C,{status:r.status,headers:{"Content-Type":r.headers.get("content-type")||"application/json","Access-Control-Allow-Origin":"*"}})}}},96846:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{g:()=>t,s:()=>v});var e=c(80238),f=c(89718),g=c(38775),h=c(56895),i=c(43659),j=c(41004),k=c(58136),l=c(11410),m=c(7803),n=a([l]);function o(a){return a.headers.get("x-zevai-connection-id")||a.headers.get("x-connection-id")||null}l=(n.then?(await n)():n)[0];let w=new Set([j.gx.UNAUTHORIZED,j.gx.FORBIDDEN,j.gx.RATE_LIMITED]);async function p(a){let b=(0,e.Tr)(a);if((await (0,f.mt)()).requireApiKey){if(!b)return(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(b))return(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}return null}async function q(a){let b,c=a.headers.get("content-type")||"",d=(b=Number(process.env.MAX_VIDEO_REQUEST_BYTES),Number.isFinite(b)?Math.max(1024,Math.min(b,0x4000000)):0x2000000),e=Number(a.headers.get("content-length"));if(Number.isFinite(e)&&e>d)return{error:(0,i.yj)(j.gx.PAYLOAD_TOO_LARGE,"Video request body is too large")};if(c.includes("application/json")){let b,e=await a.text();if(Buffer.byteLength(e)>d)return{error:(0,i.yj)(j.gx.PAYLOAD_TOO_LARGE,"Video request body is too large")};try{b=JSON.parse(e)}catch{return{error:(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:e,parsed:b,contentType:c}}let f=Buffer.from(await a.arrayBuffer());return f.byteLength>d?{error:(0,i.yj)(j.gx.PAYLOAD_TOO_LARGE,"Video request body is too large")}:{raw:f,parsed:null,contentType:c}}async function r(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,g.mA)(b);return c.provider?(0,h.WY)(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,i.yj)(j.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,i.yj)(j.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function s(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-zevai-connection-id",String(b)),c.set("x-connection-id",String(b)),c.set("Access-Control-Expose-Headers","x-zevai-connection-id, x-connection-id"),new Response(a.body,{status:a.status,headers:c})}async function t(a,b){let c=await p(a);if(c)return c;let d=await q(a);if(d.error)return d.error;let f=await r(d.parsed);if(f.error)return f.error;let{provider:g,model:h}=f,i=await (0,l.M)((0,e.Tr)(a),d.parsed?.model?String(d.parsed.model):null);return i.error?i.error:i.finish(await u(a,b,d,g,h))}async function u(a,b,c,d,f){let g=c.raw;c.parsed&&f&&c.parsed.model!==f&&(g=JSON.stringify({...c.parsed,model:f}));let l=o(a),n=(0,e.Tr)(a),p=a.headers.get("idempotency-key")||null,q=new Set,r=null,t=null;for(;;){let o=await (0,e.c1)(d,q,f,{preferredConnectionId:l,...n?{apiKey:n}:{}});if(!o||o.allRateLimited){if(o?.allRateLimited){let a=r||o.lastError||"Unavailable",b=t||Number(o.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return(0,i.wO)(b,`[${d}/${f||"video"}] ${a}`,o.retryAfter,o.retryAfterHuman)}if(0===q.size)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${d}`);return(0,i.yj)(t||j.gx.SERVICE_UNAVAILABLE,r||"All accounts unavailable")}let u=await (0,h.F8)({provider:d,action:b,model:f,parsedBody:c.parsed,rawBody:g,contentType:c.contentType||null,idempotencyKey:p,credentials:o,prepareCredentials:async a=>(Object.assign(a,await (0,k.eU)(d,a)),a),signal:a.signal,log:m,onCredentialsRefreshed:async a=>{await (0,k.vN)(o.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(u.success)return await (0,e.Pt)(o.connectionId,o,f),m.info("VIDEO",`${d.toUpperCase()} | ${b} accepted (connection ${o.connectionId})`),s(u.response,o.connectionId);let{shouldFallback:v}=await (0,e.vk)(o.connectionId,u.status,(0,h.NJ)(u.error,o),d,f);if(v&&w.has(u.status)){q.add(o.connectionId),r=u.error,t=u.status;continue}return u.response}}async function v(a,b){let c=await p(a);if(c)return c;if(!b)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing video request id");if(String(b).length>256)return(0,i.yj)(j.gx.BAD_REQUEST,"Video request id is too long");let d=o(a),g=d?await (0,f.Mc)(d):null,l=g?.provider&&(0,h.WY)(g.provider)?g.provider:null,n=new URL(a.url).searchParams.get("provider");if(!l&&n&&!(0,h.WY)(n))return(0,i.yj)(j.gx.BAD_REQUEST,`Provider '${n}' does not support video generation`);let q=l||n||"xai",r=!!d,t=(0,e.Tr)(a),u=await (0,e.c1)(q,null,null,{preferredConnectionId:d,strictPreferred:r,...t?{apiKey:t}:{}});if(!u||u.allRateLimited)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${q}`);let v=await (0,h.F8)({provider:q,requestId:b,credentials:u,prepareCredentials:async a=>(Object.assign(a,await (0,k.eU)(q,a)),a),signal:a.signal,log:m,onCredentialsRefreshed:async a=>{await (0,k.vN)(u.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return v.success?(await (0,e.Pt)(u.connectionId,u,null),s(v.response,u.connectionId)):(await (0,e.vk)(u.connectionId,v.status,(0,h.NJ)(v.error,u),q,null),v.response)}d()}catch(a){d(a)}})}};
|