@rabbi696/ezrouter 0.6.15 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -1
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +27 -27
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +10 -6
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/export/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/convoy/rules/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js +2 -2
- package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/enabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/enabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing-health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing-health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/token-saver/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/error-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +3 -3
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +27 -27
- package/app/.next-cli-build/server/chunks/1253.js +1 -1
- package/app/.next-cli-build/server/chunks/1482.js +4 -2
- package/app/.next-cli-build/server/chunks/1531.js +1 -1
- package/app/.next-cli-build/server/chunks/1641.js +1 -0
- package/app/.next-cli-build/server/chunks/1733.js +1 -1
- package/app/.next-cli-build/server/chunks/1847.js +1 -1
- package/app/.next-cli-build/server/chunks/2269.js +1 -1
- package/app/.next-cli-build/server/chunks/2348.js +1 -1
- package/app/.next-cli-build/server/chunks/2898.js +1 -1
- package/app/.next-cli-build/server/chunks/3583.js +2 -2
- package/app/.next-cli-build/server/chunks/3593.js +2 -2
- package/app/.next-cli-build/server/chunks/369.js +22 -22
- package/app/.next-cli-build/server/chunks/3886.js +1 -1
- package/app/.next-cli-build/server/chunks/3912.js +1 -1
- package/app/.next-cli-build/server/chunks/3977.js +2 -2
- package/app/.next-cli-build/server/chunks/412.js +1 -1
- package/app/.next-cli-build/server/chunks/4378.js +3 -3
- package/app/.next-cli-build/server/chunks/4485.js +1 -1
- package/app/.next-cli-build/server/chunks/4574.js +1 -1
- package/app/.next-cli-build/server/chunks/4646.js +1 -1
- package/app/.next-cli-build/server/chunks/4704.js +2 -2
- package/app/.next-cli-build/server/chunks/4739.js +2 -2
- package/app/.next-cli-build/server/chunks/4768.js +1 -1
- package/app/.next-cli-build/server/chunks/4780.js +2 -2
- package/app/.next-cli-build/server/chunks/4803.js +2 -2
- package/app/.next-cli-build/server/chunks/4827.js +1 -1
- package/app/.next-cli-build/server/chunks/4878.js +1 -1
- package/app/.next-cli-build/server/chunks/5011.js +1 -1
- package/app/.next-cli-build/server/chunks/507.js +2 -2
- package/app/.next-cli-build/server/chunks/5130.js +1 -1
- package/app/.next-cli-build/server/chunks/{8421.js → 5251.js} +1 -1
- package/app/.next-cli-build/server/chunks/5258.js +2 -2
- package/app/.next-cli-build/server/chunks/5434.js +1 -1
- package/app/.next-cli-build/server/chunks/5460.js +40 -0
- package/app/.next-cli-build/server/chunks/5704.js +254 -0
- package/app/.next-cli-build/server/chunks/5872.js +1 -0
- package/app/.next-cli-build/server/chunks/5875.js +1 -1
- package/app/.next-cli-build/server/chunks/6252.js +2 -2
- package/app/.next-cli-build/server/chunks/6420.js +1 -1
- package/app/.next-cli-build/server/chunks/6670.js +2 -2
- package/app/.next-cli-build/server/chunks/6769.js +1 -0
- package/app/.next-cli-build/server/chunks/6799.js +2 -2
- package/app/.next-cli-build/server/chunks/698.js +2 -2
- package/app/.next-cli-build/server/chunks/7073.js +2 -2
- package/app/.next-cli-build/server/chunks/7218.js +1 -1
- package/app/.next-cli-build/server/chunks/7239.js +2 -2
- package/app/.next-cli-build/server/chunks/7362.js +1 -1
- package/app/.next-cli-build/server/chunks/7594.js +6 -6
- package/app/.next-cli-build/server/chunks/7663.js +1 -1
- package/app/.next-cli-build/server/chunks/7677.js +1 -1
- package/app/.next-cli-build/server/chunks/7775.js +1 -1
- package/app/.next-cli-build/server/chunks/7811.js +1 -0
- package/app/.next-cli-build/server/chunks/7965.js +2 -2
- package/app/.next-cli-build/server/chunks/8062.js +2 -2
- package/app/.next-cli-build/server/chunks/8129.js +1 -1
- package/app/.next-cli-build/server/chunks/8231.js +1 -1
- package/app/.next-cli-build/server/chunks/8243.js +5 -5
- package/app/.next-cli-build/server/chunks/8306.js +1 -1
- package/app/.next-cli-build/server/chunks/8469.js +2 -2
- package/app/.next-cli-build/server/chunks/8520.js +2 -2
- package/app/.next-cli-build/server/chunks/8644.js +1 -1
- package/app/.next-cli-build/server/chunks/8772.js +1 -1
- package/app/.next-cli-build/server/chunks/8976.js +1 -1
- package/app/.next-cli-build/server/chunks/9026.js +24 -24
- package/app/.next-cli-build/server/chunks/9062.js +1 -1
- package/app/.next-cli-build/server/chunks/9303.js +1 -1
- package/app/.next-cli-build/server/chunks/9485.js +1 -1
- package/app/.next-cli-build/server/chunks/9718.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +3 -3
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/chunks/1321-73fdccd2b1bf151d.js +1 -0
- package/app/.next-cli-build/static/chunks/{5497-8766958582f95dc7.js → 5497-ff58e90f4053e184.js} +3 -3
- package/app/.next-cli-build/static/chunks/{6252-34f2d410651e1103.js → 6252-886aa8324e135e9c.js} +13 -13
- package/app/.next-cli-build/static/chunks/8105-9b41dc96e4b019cf.js +1 -0
- package/app/.next-cli-build/static/chunks/9227-4471c8f39a105c5f.js +5 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-89b4f70958736f2a.js → page-c35f746b4bd9fc90.js} +18 -14
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-fa195b4f7348e2d6.js → page-0868ecc0d2f1bd04.js} +2 -2
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-a31d9ca05cc3d528.js → page-6cb070834a750fdd.js} +1 -1
- package/app/CHANGELOG.md +54 -32
- package/app/package.json +1 -1
- package/app/public/CHANGELOG.md +54 -32
- package/app/src/mitm/server.js +24 -24
- package/cli.js +71 -69
- package/package.json +1 -1
- package/src/cli/commands/connect.js +157 -15
- package/src/cli/commands/connectTools.js +222 -4
- package/src/cli/commands/show.js +101 -0
- package/src/cli/menus/providers.js +8 -0
- package/app/.next-cli-build/server/chunks/3252.js +0 -1
- package/app/.next-cli-build/server/chunks/3267.js +0 -40
- package/app/.next-cli-build/server/chunks/6707.js +0 -1
- package/app/.next-cli-build/server/chunks/8450.js +0 -254
- package/app/.next-cli-build/server/chunks/9143.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-043afc56cba448b8.js +0 -1
- package/app/.next-cli-build/static/chunks/8105-9dfc2c5ffef6e778.js +0 -1
- package/app/.next-cli-build/static/chunks/9227-af65f6ac1fca28c9.js +0 -3
- /package/app/.next-cli-build/static/{zQapcWqcr7oLVi5jh7t01 → Y5Sk8uSUyB0vJ-ZgW1X1U}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{zQapcWqcr7oLVi5jh7t01 → Y5Sk8uSUyB0vJ-ZgW1X1U}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=412,exports.ids=[412],exports.modules={267:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429),g=c(51126),h=c(99258);let i=a=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},km:{name:"ខ្មែរ",flag:"\uD83C\uDDF0\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"},fa:{name:"فارسی",flag:"\uD83C\uDDEE\uD83C\uDDF7"}})[a]||{name:a,flag:"\uD83C\uDF10"};function j({className:a="",isOpen:b,onClose:c,hideTrigger:k=!1}){let[l,m]=(0,e.useState)("en"),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(null),s="boolean"==typeof b,t=s?b:p,u=(a,b=l)=>{s?!a&&c&&c(b):q(a)},v=async a=>{if(a!==l&&!n){o(!0);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:a})}),await (0,h.wn)(),m(a),u(!1,a)}catch(a){console.error("Failed to set locale:",a)}finally{o(!1)}}};return(0,d.jsxs)("div",{className:a,children:[!k&&(0,d.jsxs)("button",{onClick:()=>u(!t),disabled:n,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:i(l).name}),(0,d.jsx)("span",{className:"text-lg",children:i(l).flag})]}),t&&(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>u(!1)}),(0,d.jsxs)("div",{ref:r,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>u(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,d.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:g.YZ.map(a=>{let b=l===a,c=i(a);return(0,d.jsxs)("button",{onClick:()=>v(a),disabled:n,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${b?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${n?"opacity-70 cursor-wait":""}`,title:c.name,children:[(0,d.jsx)("span",{className:"text-2xl",children:c.flag}),(0,d.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:c.name}),b&&(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},a)})})})]})]}),document.body)]})}},818:(a,b,c)=>{c.d(b,{h:()=>d});let d={en:"\uD83C\uDDFA\uD83C\uDDF8",vi:"\uD83C\uDDFB\uD83C\uDDF3","zh-CN":"\uD83C\uDDE8\uD83C\uDDF3","zh-TW":"\uD83C\uDDF9\uD83C\uDDFC",ja:"\uD83C\uDDEF\uD83C\uDDF5","pt-BR":"\uD83C\uDDE7\uD83C\uDDF7","pt-PT":"\uD83C\uDDF5\uD83C\uDDF9",ko:"\uD83C\uDDF0\uD83C\uDDF7",es:"\uD83C\uDDEA\uD83C\uDDF8",de:"\uD83C\uDDE9\uD83C\uDDEA",fr:"\uD83C\uDDEB\uD83C\uDDF7",he:"\uD83C\uDDEE\uD83C\uDDF1",ar:"\uD83C\uDDF8\uD83C\uDDE6",ru:"\uD83C\uDDF7\uD83C\uDDFA",pl:"\uD83C\uDDF5\uD83C\uDDF1",cs:"\uD83C\uDDE8\uD83C\uDDFF",nl:"\uD83C\uDDF3\uD83C\uDDF1",tr:"\uD83C\uDDF9\uD83C\uDDF7",uk:"\uD83C\uDDFA\uD83C\uDDE6",tl:"\uD83C\uDDF5\uD83C\uDDED",id:"\uD83C\uDDEE\uD83C\uDDE9",th:"\uD83C\uDDF9\uD83C\uDDED",km:"\uD83C\uDDF0\uD83C\uDDED",hi:"\uD83C\uDDEE\uD83C\uDDF3",bn:"\uD83C\uDDE7\uD83C\uDDE9",ur:"\uD83C\uDDF5\uD83C\uDDF0",ro:"\uD83C\uDDF7\uD83C\uDDF4",sv:"\uD83C\uDDF8\uD83C\uDDEA",it:"\uD83C\uDDEE\uD83C\uDDF9",el:"\uD83C\uDDEC\uD83C\uDDF7",hu:"\uD83C\uDDED\uD83C\uDDFA",fi:"\uD83C\uDDEB\uD83C\uDDEE",da:"\uD83C\uDDE9\uD83C\uDDF0",no:"\uD83C\uDDF3\uD83C\uDDF4",fa:"\uD83C\uDDEE\uD83C\uDDF7"}},3236:(a,b,c)=>{c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(42118),i=c(11229),j=c(95145);function k({icon:a,label:b,onClick:c,trailing:e,danger:f}){return(0,d.jsxs)("button",{onClick:c,className:`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${f?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${f?"":"text-text-muted"}`,children:a}),(0,d.jsx)("span",{className:"flex-1 text-left",children:b}),e&&(0,d.jsx)("span",{className:"text-base",children:e})]})}function l({onLogout:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),{toggleTheme:q,isDark:r}=(0,h.D)(),s=(0,e.useRef)(null),t=async()=>{p(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(a){}p(!1),n(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",ref:s,children:[(0,d.jsx)("button",{onClick:()=>c(a=>!a),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Menu",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),b&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,d.jsx)(k,{icon:"history",label:"Change Log",onClick:()=>{c(!1),g(!0)}}),(0,d.jsx)(k,{icon:r?"light_mode":"dark_mode",label:"Theme",onClick:()=>{q(),c(!1)}}),(0,d.jsx)(k,{icon:"power_settings_new",label:"Shutdown",danger:!0,onClick:()=>{c(!1),n(!0)}}),(0,d.jsx)(k,{icon:"logout",label:"Logout",danger:!0,onClick:()=>{c(!1),a()}})]})]}),(0,d.jsx)(i.default,{isOpen:f,onClose:()=>g(!1)}),(0,d.jsx)(j.ConfirmModal,{isOpen:m,onClose:()=>n(!1),onConfirm:t,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:o})]})}k.propTypes={icon:g().string.isRequired,label:g().string.isRequired,onClick:g().func.isRequired,trailing:g().node,danger:g().bool},l.propTypes={onLogout:g().func.isRequired}},4770:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({label:a,options:b=[],value:c,onChange:g,placeholder:h="Select an option",error:i,hint:j,disabled:k=!1,required:l=!1,className:m,selectClassName:n,...o}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-col gap-1.5",m),children:[a&&(0,d.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[a,l&&(0,d.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("select",{value:c,onChange:g,disabled:k,className:(0,e.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",i&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",n),...o,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:h}),b.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),(0,d.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),i&&(0,d.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),i]}),j&&!i&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:j})]})}},5291:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(79346),i=c(31457),j=c(56110);function k({isOpen:a,providerInfo:b,onSuccess:c,onClose:f}){let[g,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),q=(0,e.useCallback)((a,b)=>{"builder-id"===a?l("builder-id"):"idc"===a?(l("idc"),p(b)):"social"===a?(l("social"),n(b.provider)):("import"===a||"import-cli-proxy"===a||"api-key"===a)&&c?.()},[c]),r=()=>{l(null),n(null),p(null)};return g?"builder-id"===g||"idc"===g?(0,d.jsx)(h.default,{isOpen:a,provider:"kiro",providerInfo:b,onSuccess:()=>{l(null),p(null),c?.(),f?.()},onClose:r,idcConfig:o}):"social"===g&&m?(0,d.jsx)(j.default,{isOpen:a,provider:m,onSuccess:()=>{l(null),n(null),c?.(),f?.()},onClose:r}):null:(0,d.jsx)(i.default,{isOpen:a,onMethodSelect:q,onClose:f})}k.propTypes={isOpen:g().bool.isRequired,providerInfo:g().shape({name:g().string}),onSuccess:g().func,onClose:g().func.isRequired}},11229:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(67484),f=c(74429),g=c(49885),h=c.n(g);function i({isOpen:a,onClose:b}){let[c,g]=(0,e.useState)(""),[h,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),m=(0,e.useRef)(null);return!a||"u"<typeof document?null:(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:b}),(0,d.jsxs)("div",{ref:m,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-3xl flex flex-col max-h-[85vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Change Log"}),(0,d.jsx)("button",{onClick:b,className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",children:[h&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),"Loading..."]}),k&&(0,d.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",k]}),!h&&!k&&c&&(0,d.jsx)("div",{className:"changelog-body text-text-main",dangerouslySetInnerHTML:{__html:c}})]})]})]}),document.body)}c(12020),i.propTypes={isOpen:h().bool.isRequired,onClose:h().func.isRequired}},11633:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(17660);let f={mode:{label:"Mode",format:a=>a},defaultModel:{label:"Model",format:a=>a,mono:!0},baseUrl:{label:"Endpoint",format:a=>a,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:a=>0===a?"Free":`$${a.toFixed(4)}`},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:a=>a},freeMonthlyQuota:{label:"Free quota",format:a=>0===a?"—":a>=999999?"Unlimited":`${a.toLocaleString()} / mo`},searchTypes:{label:"Types",format:a=>a.join(", ")},formats:{label:"Formats",format:a=>a.join(", ")},maxMaxResults:{label:"Max results",format:a=>a},maxCharacters:{label:"Max chars",format:a=>a.toLocaleString()}};function g({config:a,provider:b,title:c="Provider Info"}){if(!a)return null;let h=Object.entries(f).filter(([b])=>void 0!==a[b]&&null!==a[b]&&""!==a[b]).map(([b,c])=>({key:b,label:c.label,value:c.format(a[b]),isLink:c.isLink,mono:c.mono,raw:a[b]})),i=b?.notice?.apiKeyUrl||b?.website,j=b?.notice?.text;return(0,d.jsxs)(e.default,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:c}),i&&(0,d.jsxs)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:a.label}),a.isLink?(0,d.jsx)("a",{href:a.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${a.mono?"font-mono":""}`,children:a.value}):(0,d.jsx)("span",{className:`text-sm text-text-main truncate ${a.mono?"font-mono":""}`,children:a.value})]},a.key)),j&&(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,d.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:j})]})]})]})}},17174:(a,b,c)=>{c.d(b,{default:()=>x});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(2116),i=c.n(h),j=c(19099),k=c(71404),l=c(12020),m=c(92592),n=c(50377);c(91937);var o=c(99070),p=c(11229),q=c(17447);function r({currentVersion:a,latestVersion:b,installCmd:c,onClose:f}){let[g,h]=(0,e.useState)("auto"),[i,j]=(0,e.useState)("idle"),[k,m]=(0,e.useState)(null),[n,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(0),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)({bullets:[],truncated:!1,loading:!0,error:null,versions:[]}),[B,C]=(0,e.useState)(!1),D=(0,e.useRef)(null),E=(0,e.useRef)(null),F=(0,e.useRef)(!1),G=(0,e.useCallback)(()=>{D.current&&(clearInterval(D.current),D.current=null),E.current&&(clearInterval(E.current),E.current=null)},[]),H=(0,e.useCallback)(()=>{(0,q.TJ)(a)},[a]),I=(0,e.useCallback)(()=>{G();let a=function(a=l.h0.statusPort){return`http://127.0.0.1:${a}/update/status`}(),b=async()=>{if(!F.current)try{let b=await fetch(a,{cache:"no-store"});if(!b.ok)return;let c=await b.json();if(F.current)return;(m(c),j("running"),c&&c.done&&c.success)?(j("success"),E.current||(E.current=setInterval(()=>{globalThis.location.reload()},2e3),setTimeout(()=>{try{globalThis.location.reload()}catch{}},2500)),D.current&&(clearInterval(D.current),D.current=null)):c&&("error"===c.phase||c.done&&!c.success)&&(j("failed"),s(c.error||"Install failed"),h("manual"),D.current&&(clearInterval(D.current),D.current=null))}catch{}};b(),D.current=setInterval(b,l.h0.statusPollIntervalMs)},[G]),J=(0,e.useCallback)(async()=>{s(null),m(null),j("starting"),F.current=!1,H();try{let a=await fetch("/api/version/update",{method:"POST"}),b=await a.json().catch(()=>({}));if(!a.ok){s(b.message||`Auto-update unavailable (${a.status})`),j("failed"),h("manual");return}j("running"),I()}catch(a){j("running"),I(),a?.message&&s(null)}},[I,H]),K=async()=>{H();try{await navigator.clipboard.writeText(c)}catch{}u(!0);let a=l.h0.shutdownCountdownSec;w(a);let b=setInterval(()=>{w(a-=1),a<=0&&(clearInterval(b),fetch("/api/version/shutdown",{method:"POST"}).catch(()=>{}),y(!0))},1e3)},L=function(a){if(!a||"object"!=typeof a)return 5;let{phase:b,attempt:c=0,maxRetries:d=l.h0.installRetries,done:e,success:f}=a;if(e&&f)return 100;if("error"===b||e&&!f)return 90;switch(b){case"starting":return 8;case"waitingForExit":return 22;case"installing":{let a=Math.max(1,d);return Math.round(35+Math.min(c,a)/a*50)}case"done":return 100;default:return 5}}(k||{phase:"starting"===i?"starting":null}),M="starting"===i?"Contacting updater…":"success"===i?"Update complete — reloading when app is ready…":function(a,b={}){let c=b.attempt||0,d=b.maxRetries||l.h0.installRetries;switch(a){case"starting":return"Starting updater…";case"waitingForExit":return"Stopping current app (releasing file locks)…";case"installing":return c>0?`Installing package (attempt ${c}/${d})…`:"Installing package…";case"done":return"Update complete — restarting app…";case"error":return"Update failed";default:return a?String(a):"Preparing…"}}(k?.phase,{attempt:k?.attempt,maxRetries:k?.maxRetries}),N=Array.isArray(k?.logTail)?k.logTail:[],O="starting"===i||"running"===i||"success"===i,P=`Update EzRouter${b?` to v${b}`:""}`,Q=(0,d.jsxs)("div",{className:"mb-4 rounded-lg border border-white/10 bg-white/5 p-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-2",children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-white/90",children:["What's new",b?(0,d.jsxs)("span",{className:"font-normal text-white/50",children:[" ",a?`v${a} → `:"","v",b]}):null]}),(0,d.jsx)("button",{type:"button",onClick:()=>C(!0),className:"text-[10px] text-white/50 hover:text-white/80 transition-colors shrink-0",children:"Full changelog"})]}),z.loading&&(0,d.jsxs)("p",{className:"text-[11px] text-white/50 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] animate-spin",children:"progress_activity"}),"Loading release notes…"]}),!z.loading&&z.error&&(0,d.jsxs)("p",{className:"text-[11px] text-white/50",children:["Couldn't load release notes (",z.error,"). You can still update."]}),!z.loading&&!z.error&&0===z.bullets.length&&(0,d.jsx)("p",{className:"text-[11px] text-white/50",children:"No release notes found for this range yet. Check the full changelog after updating."}),!z.loading&&z.bullets.length>0&&(0,d.jsxs)("ul",{className:"max-h-40 overflow-y-auto space-y-1 text-[11px] text-white/75 list-disc list-inside",children:[z.bullets.map((a,b)=>(0,d.jsxs)("li",{className:"leading-snug",title:a.text,children:[(0,d.jsxs)("span",{className:"text-white/40 mr-1",children:["v",a.version]}),a.text]},`${a.version}-${b}`)),z.truncated&&(0,d.jsx)("li",{className:"list-none text-white/40 pl-0",children:"…more in full changelog"})]})]});if("auto"===g)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"w-full max-w-xl rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-green-500/20 text-green-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"success"===i?"check_circle":"system_update"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:P}),(0,d.jsx)("p",{className:"text-xs text-white/60",children:"One-click install. The app will stop, update, and restart automatically."})]})]}),"idle"===i&&(0,d.jsxs)(d.Fragment,{children:[Q,(0,d.jsxs)("ul",{className:"text-xs text-white/70 space-y-1.5 list-disc list-inside mb-4",children:[(0,d.jsxs)("li",{children:["Works with the production ",(0,d.jsx)("code",{className:"px-1 rounded bg-white/10",children:"ezrouter"})," CLI install"]}),(0,d.jsx)("li",{children:"Takes about 1–2 minutes (npm global install + restart)"}),(0,d.jsx)("li",{children:"You can switch to manual install if auto fails"})]}),(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(o.default,{variant:"secondary",onClick:f,className:"sm:w-auto",children:"Cancel"}),(0,d.jsx)(o.default,{variant:"primary",fullWidth:!0,onClick:J,children:"Update & Restart"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>h("manual"),className:"mt-3 w-full text-center text-[11px] text-white/50 hover:text-white/80 transition-colors",children:"Prefer manual install instead?"})]}),O&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1.5",children:[(0,d.jsx)("span",{className:"text-white/80",children:M}),(0,d.jsxs)("span",{className:"text-white/50 tabular-nums",children:[L,"%"]})]}),(0,d.jsx)("div",{className:"h-1.5 rounded-full bg-white/10 overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-green-500 transition-all duration-500",style:{width:`${Math.min(100,L)}%`}})})]}),N.length>0&&(0,d.jsx)("div",{className:"mb-3 max-h-32 overflow-y-auto rounded bg-black/40 px-2 py-1.5 font-mono text-[10px] text-white/60 space-y-0.5",children:N.map((a,b)=>(0,d.jsx)("div",{className:"truncate",children:a},`${b}-${a.slice(0,24)}`))}),"success"===i?(0,d.jsx)("p",{className:"text-xs text-green-400/90 mb-3",children:"Install succeeded. Waiting for the app to come back, then reloading…"}):(0,d.jsx)("p",{className:"text-xs text-white/50 mb-3",children:"Keep this tab open. Do not close the browser until the update finishes."}),"success"!==i&&(0,d.jsx)("button",{type:"button",onClick:()=>{G(),h("manual"),j("failed")},className:"w-full text-center text-[11px] text-white/50 hover:text-white/80 transition-colors",children:"Stuck? Switch to manual install"})]}),"failed"===i&&"auto"===g&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"mb-3 rounded border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:n||"Auto-update failed."}),(0,d.jsx)(o.default,{variant:"primary",fullWidth:!0,onClick:()=>h("manual"),children:"Open manual install"})]})]}),(0,d.jsx)(p.default,{isOpen:B,onClose:()=>C(!1)})]});let R=v>0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"w-full max-w-xl rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-amber-500/20 text-amber-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"content_copy"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:P}),(0,d.jsx)("p",{className:"text-xs text-white/60",children:x?"Server stopped. Paste the command into a terminal to install.":R?`Command copied. Server will stop in ${v}s...`:n?"Auto-update unavailable — install manually.":"Copy the install command, stop the server, then re-run ezrouter."})]})]}),!x&&!R&&Q,n&&(0,d.jsx)("div",{className:"mb-3 rounded border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-200",children:n}),(0,d.jsx)("p",{className:"text-sm text-white/80 mb-2",children:"Install command:"}),(0,d.jsx)("div",{className:"w-full px-3 py-2 rounded bg-white/5 mb-4",children:(0,d.jsx)("code",{className:"text-xs font-mono text-amber-400 break-all",children:c})}),(0,d.jsxs)("ol",{className:"text-xs text-white/70 space-y-1 list-decimal list-inside mb-4",children:[(0,d.jsxs)("li",{children:["Click ",(0,d.jsx)("strong",{children:"Copy & Shutdown"})," below."]}),(0,d.jsx)("li",{children:"Paste the command into your terminal and press Enter."}),(0,d.jsxs)("li",{children:["Run ",(0,d.jsx)("code",{className:"px-1 rounded bg-white/10 text-green-400",children:"ezrouter"})," again after install."]})]}),x?(0,d.jsx)(o.default,{variant:"secondary",fullWidth:!0,onClick:()=>globalThis.location.reload(),children:"Reload Page"}):(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(o.default,{variant:"secondary",onClick:()=>{O||f()},disabled:R,className:"sm:w-auto",children:"Cancel"}),(0,d.jsx)(o.default,{variant:"primary",fullWidth:!0,onClick:K,disabled:R,children:t?"✓ Copied — shutting down...":R?`Shutting down in ${v}s`:"Copy & Shutdown"})]}),!x&&!R&&(0,d.jsx)("button",{type:"button",onClick:()=>{h("auto"),j("idle"),s(null),m(null)},className:"mt-3 w-full text-center text-[11px] text-white/50 hover:text-white/80 transition-colors",children:"Try automatic update instead"})]}),(0,d.jsx)(p.default,{isOpen:B,onClose:()=>C(!1)})]})}r.propTypes={currentVersion:g().string,latestVersion:g().string,installCmd:g().string.isRequired,onClose:g().func.isRequired};let s=["embedding","image","video","tts","stt","systemone"],t="/dashboard/media-providers/web",u=[{href:"/dashboard/endpoint",label:"Endpoint & Key",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combo & Vision Adapter",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/routing-health",label:"Routing Health",icon:"speed"},{href:"/dashboard/token-saver",label:"Token Saver",icon:"savings"},{href:"/dashboard/convoy",label:"Input Guard",icon:"filter_alt"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"},{href:"/dashboard/mcp-gateway",label:"MCP Gateway",icon:"hub"}],v=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"},{href:"/dashboard/error-log",label:"Error Log",icon:"error"},{href:"/dashboard/translator",label:"Translator",icon:"translate"}],w=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/skills",label:"Skills",icon:"extension"}];function x({onClose:a}){let b=(0,j.usePathname)(),[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(null),[o,p]=(0,e.useState)(!1),[q,y]=(0,e.useState)(!1),{copied:z,copy:A}=(0,n.C)(2e3),B=l.h0.installCmdLatest,C=a=>"/dashboard/endpoint"===a?"/dashboard"===b||b.startsWith("/dashboard/endpoint"):b.startsWith(a);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("aside",{className:"flex w-72 flex-col border-r border-border-subtle bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,d.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,d.jsxs)(i(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,d.jsx)("img",{src:"/logo.png",alt:"EzRouter",className:"size-9 rounded-[10px] object-contain shadow-[var(--shadow-warm)]",onError:a=>{a.currentTarget.onerror=null,a.currentTarget.src="/favicon.svg"}}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:l.vQ.name}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["v",l.vQ.version]})]})]}),g&&(0,d.jsxs)("div",{className:"flex flex-col gap-1.5 rounded p-1 -m-1",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:["↑ New version available: v",g.latestVersion]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>p(!0),className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors cursor-pointer",children:"Update now"}),(0,d.jsx)("button",{onClick:()=>A(B),title:"Copy install command",className:"flex-1 text-left hover:opacity-80 transition-opacity cursor-pointer min-w-0",children:(0,d.jsx)("code",{className:"block text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono truncate",children:z?"✓ copied!":B})})]})]})]}),(0,d.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-0.5 overflow-y-auto custom-scrollbar",children:[u.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:b.label})]},b.href)),(0,d.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,d.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),(0,d.jsxs)("button",{onClick:()=>f(a=>!a),className:(0,k.cn)("w-full flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",b.startsWith("/dashboard/media-providers")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"perm_media"}),(0,d.jsx)("span",{className:"text-[13px] font-medium flex-1 text-left",children:"Media Providers"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] transition-transform",style:{transform:c?"rotate(180deg)":"rotate(0deg)"},children:"expand_more"})]}),c&&(0,d.jsxs)("div",{className:"pl-4",children:[m.rj.filter(a=>s.includes(a.id)).map(c=>(0,d.jsxs)(i(),{href:`/dashboard/media-providers/${c.id}`,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(`/dashboard/media-providers/${c.id}`)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:c.icon}),(0,d.jsx)("span",{className:"text-sm",children:c.label})]},c.id)),(0,d.jsxs)(i(),{href:t,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(t)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"travel_explore"}),(0,d.jsx)("span",{className:"text-sm",children:"Web Fetch & Search"})]},"web")]}),w.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:b.label})]},b.href)),v.map(b=>"/dashboard/translator"!==b.href||q?(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:b.label})]},b.href):null),(0,d.jsxs)(i(),{href:"/dashboard/profile",onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C("/dashboard/profile")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C("/dashboard/profile")?"fill-1":"group-hover:text-primary transition-colors"),children:"settings"}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:"Settings"})]})]})]})]}),o&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",children:(0,d.jsx)(r,{currentVersion:g?.currentVersion||l.vQ.version,latestVersion:g?.latestVersion,installCmd:B,onClose:()=>p(!1)})})]})}x.propTypes={onClose:g().func}},17447:(a,b,c)=>{c.d(b,{BM:()=>m,MY:()=>g,TJ:()=>l,eK:()=>i,yM:()=>n,zV:()=>h});let d="9router:lastSeenVersion",e="9router:updateFromVersion";function f(a,b){if(!a&&!b)return 0;if(!a)return -1;if(!b)return 1;let c=a=>String(a).trim().replace(/^v/i,"").split(/[.+-]/).map(a=>{let b=parseInt(a,10);return Number.isFinite(b)?b:0}),d=c(a),e=c(b),f=Math.max(d.length,e.length);for(let a=0;a<f;a++){let b=d[a]||0,c=e[a]||0;if(b>c)return 1;if(b<c)return -1}return 0}function g(a){let b;if(!a||"string"!=typeof a)return[];let c=/^#\s+v?(\d+\.\d+\.\d+[^\s)]*)\s*([^\n]*)/gm,d=[];for(;null!==(b=c.exec(a));)d.push({version:b[1].trim(),heading:b[0].replace(/^#\s+/,"").trim(),index:b.index,headerEnd:b.index+b[0].length});return 0===d.length?[]:d.map((b,c)=>{let e=b.headerEnd,f=c+1<d.length?d[c+1].index:a.length,g=a.slice(e,f).trim(),h=g.split(/\r?\n/).map(a=>a.trim()).filter(a=>/^[-*]\s+/.test(a)).map(a=>a.replace(/^[-*]\s+/,"").trim()).filter(Boolean);return{version:b.version,heading:b.heading,body:g,bullets:h}})}function h(a,b,c=null){let d=g(a);return 0===d.length?[]:d.filter(a=>!(c&&f(a.version,c)>0||b&&0>=f(a.version,b))&&(!!b||!!c&&0===f(a.version,c)))}function i(a,{maxBullets:b=10}={}){let c=[],d=[];for(let b of a)for(let a of(c.includes(b.version)||c.push(b.version),b.bullets)){var e;d.push({text:(e=a)?String(e).replace(/\*\*(.+?)\*\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").trim():"",version:b.version})}let f=d.length>b;return{bullets:d.slice(0,b),truncated:f,versions:c}}function j(a){try{if("u"<typeof localStorage)return null;return localStorage.getItem(a)}catch{return null}}function k(a,b){try{if("u"<typeof localStorage)return;localStorage.setItem(a,b)}catch{}}function l(a){a&&k(e,String(a).replace(/^v/i,""))}function m(a){let b=String(a||"").replace(/^v/i,"");if(!b)return{show:!1,fromVersion:null,toVersion:b};let c=j(e),g=j(d);return g||c?c&&f(b,c)>0?{show:!0,fromVersion:c,toVersion:b}:g&&f(b,g)>0?{show:!0,fromVersion:g,toVersion:b}:(g&&0===f(b,g)||k(d,b),{show:!1,fromVersion:null,toVersion:b}):(k(d,b),{show:!1,fromVersion:null,toVersion:b})}function n(a){let b=String(a||"").replace(/^v/i,"");b&&k(d,b),function(a){try{if("u"<typeof localStorage)return;localStorage.removeItem(a)}catch{}}(e)}},20084:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(95145);function g({isOpen:a,onClose:b,onAdd:c,addedNames:h=[]}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({}),[w,x]=(0,e.useState)({}),[y,z]=(0,e.useState)({}),A=(0,e.useMemo)(()=>new Set(h),[h]),B=(0,e.useMemo)(()=>{let a=m.trim().toLowerCase();return i.filter(b=>("authless"!==o||!b.oauth)&&("oauth"!==o||!!b.oauth)&&(!a||(b.title||"").toLowerCase().includes(a)||(b.description||"").toLowerCase().includes(a)||(b.name||"").toLowerCase().includes(a)))},[i,m,o]),C=async a=>{if(!u[a.url]){x(b=>({...b,[a.url]:!0}));try{let b=await fetch("/api/cli-tools/cowork-mcp-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url})}),c=await b.json(),d=c.tools||[],e=Array.isArray(a.toolNames)?a.toolNames:[],f=d.length>0?d.map(a=>a.name):e;v(b=>({...b,[a.url]:{tools:d,requiresAuth:!!c.requiresAuth,error:c.error}})),z(b=>({...b,[a.url]:Object.fromEntries(f.map(a=>[a,!0]))}))}catch(b){v(c=>({...c,[a.url]:{tools:[],error:b.message}}))}finally{x(b=>({...b,[a.url]:!1}))}}},D=(a,b)=>{let c=y[a]||{};z(d=>({...d,[a]:Object.fromEntries(Object.keys(c).map(a=>[a,b]))}))};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:"Browse MCP Marketplace",size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"Search by name or description...",className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"all",children:"All"}),(0,d.jsx)("option",{value:"authless",children:"Authless"}),(0,d.jsx)("option",{value:"oauth",children:"OAuth"})]})]}),q&&(0,d.jsx)("div",{className:"px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:q}),k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-xs py-4 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Loading registry..."})]}),!k&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 max-h-[60vh] overflow-y-auto",children:[0===B.length&&(0,d.jsx)("div",{className:"text-center text-xs text-text-muted py-6",children:"No servers match filter"}),B.map(a=>{let b=A.has(a.slug||a.name),e=s===a.url,f=u[a.url],g=w[a.url],h=y[a.url]||{},i=Object.keys(h),j=Object.values(h).filter(Boolean).length;return(0,d.jsxs)("div",{className:"rounded border border-transparent hover:border-border",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5",children:[a.iconUrl?(0,d.jsx)("img",{src:a.iconUrl,alt:"",className:"size-7 rounded shrink-0 object-contain",onError:a=>{a.target.style.display="none"},loading:"lazy",decoding:"async"}):(0,d.jsx)("div",{className:"size-7 rounded bg-surface shrink-0"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-xs",children:a.title}),a.oauth?(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-amber-500/10 text-amber-600",children:"OAuth"}):(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-green-500/10 text-green-600",children:"Authless"}),a.toolCount>0&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[a.toolCount," tools"]})]}),a.description&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted line-clamp-2 mt-0.5",children:a.description})]}),(0,d.jsx)("button",{onClick:()=>b?null:void(s===a.url?t(null):(t(a.url),C(a))),disabled:b,className:`shrink-0 px-2 py-1 rounded text-[10px] font-medium transition-colors ${b?"bg-green-500/10 text-green-600 cursor-default":e?"bg-surface border border-border text-text-muted hover:bg-black/5":"bg-primary/10 border border-primary/40 text-primary hover:bg-primary/20"}`,children:b?"Added":e?"Cancel":"+ Add"})]}),e&&(0,d.jsxs)("div",{className:"px-3 py-2 bg-surface/40 border-t border-border flex flex-col gap-2",children:[g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-[10px] py-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Probing server for tools..."})]}),!g&&f?.requiresAuth&&(0,d.jsx)("p",{className:"text-[10px] text-amber-600 bg-amber-500/10 px-2 py-1 rounded",children:"\uD83D\uDD10 OAuth required. Add now and authenticate after Apply; tool list will be discovered after first connect."}),!g&&f?.error&&!f?.requiresAuth&&(0,d.jsxs)("p",{className:"text-[10px] text-red-600 bg-red-500/10 px-2 py-1 rounded",children:["Probe failed: ",f.error]}),!g&&0===i.length&&!f?.requiresAuth&&!f?.error&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted",children:"No tools advertised by server."}),!g&&i.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[j,"/",i.length," tools enabled"]}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>D(a.url,!0),className:"text-[10px] text-primary hover:underline",children:"All"}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"\xb7"}),(0,d.jsx)("button",{onClick:()=>D(a.url,!1),className:"text-[10px] text-primary hover:underline",children:"None"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1 max-h-40 overflow-y-auto",children:i.map(b=>(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 px-1 rounded",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!h[b],onChange:()=>{var c;return c=a.url,void z(a=>({...a,[c]:{...a[c],[b]:!a[c]?.[b]}}))},className:"size-3"}),(0,d.jsx)("span",{className:"truncate",children:b})]},b))})]}),(0,d.jsx)("button",{onClick:()=>{let b,d;return d=Object.keys(b=y[a.url]||{}).filter(a=>b[a]),void(c?.({name:a.slug||a.name,title:a.title,description:a.description,url:a.url,transport:a.transport,oauth:a.oauth,toolNames:d}),t(null))},className:"self-end px-2 py-1 rounded text-[10px] font-medium bg-primary text-white hover:bg-primary/90",children:"✓ Confirm Add"})]})]},a.url)})]}),(0,d.jsxs)("div",{className:"text-[10px] text-text-muted text-right",children:[B.length," of ",i.length," servers"]})]})})}},24622:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(99258);let j=[{id:"cn",flag:"\uD83C\uDDE8\uD83C\uDDF3",name:"China (Mainland)",host:"mimo-server-cn"},{id:"sgp",flag:"\uD83C\uDDF8\uD83C\uDDEC",name:"Singapore",host:"mimo-server-sgp"},{id:"ams",flag:"\uD83C\uDDEA\uD83C\uDDFA",name:"Europe \xb7 Amsterdam",host:"mimo-server-ams"},{id:"ru",flag:"\uD83C\uDDF7\uD83C\uDDFA",name:"Russia",host:"mimo-server-ru"},{id:"in",flag:"\uD83C\uDDEE\uD83C\uDDF3",name:"India",host:"mimo-server-in"}];function k({isOpen:a,onSuccess:b,onClose:c}){let[f,g]=(0,e.useState)("detecting"),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)("cn"),D=(0,e.useRef)(null),E=()=>{D.current&&(clearInterval(D.current),D.current=null),w(!1)},F=async()=>{if(l?.apiKey){g("importing"),q(null);try{let a=await fetch("/api/oauth/xiaomi-mimo/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:l.apiKey,uid:l.uid,baseUrl:l.baseUrl,mimoPassToken:l.mimoPassToken||null,mimoUserId:l.mimoUserId||null,mimoCUserId:l.mimoCUserId||null})}),d=await a.json();if(!a.ok||!d.success)throw Error(d.error||"Import failed");b?.(d.connection),c()}catch(a){g("found"),q(a.message)}}},G=async a=>{u(!0),y(null),s(!1),C(a);try{let d=await fetch("/api/oauth/xiaomi-mimo/login/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({region:a})}),e=await d.json();if(!d.ok||!e.pageUrl)throw Error(e.error||"Failed to start login");A(e.pageUrl),window.open(e.pageUrl,"mimo-session-login","width=500,height=760"),w(!0);let f=Date.now();D.current=setInterval(async()=>{if(Date.now()-f>84e4){E(),y("Login timed out. Please retry.");return}try{let a=await fetch(`/api/oauth/xiaomi-mimo/login/status?state=${e.state}`),d=await a.json();if("pending"===d.status)return;if(E(),"done"!==d.status)return void y(d.error||"Login session expired — please retry.");let f=await fetch("/api/oauth/xiaomi-mimo/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:"",uid:d.userId||null,mimoPassToken:d.passToken,mimoUserId:d.userId||null,mimoCUserId:d.cUserId||null,region:d.region||B})}),g=await f.json();if(!f.ok||!g.success)throw Error(g.error||"Failed to save credentials");b?.(g.connection),c()}catch(a){E(),y(a.message)}},2500)}catch(a){y(a.message)}finally{u(!1)}},H=()=>(0,d.jsxs)("div",{className:"bg-card p-3 rounded-lg border border-border flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-base",children:"login"}),(0,d.jsx)("span",{className:"text-xs sm:text-sm font-semibold",children:"Browser Login"}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted",children:"No Desktop required"})]}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted",children:"Weekly quota"})]}),v?(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)(h.$n,{variant:"outline",size:"sm",fullWidth:!0,disabled:!0,children:"Waiting for login..."}),z&&(0,d.jsx)(h.$n,{onClick:()=>window.open(z,"mimo-session-login","width=500,height=760"),variant:"ghost",size:"sm",fullWidth:!0,children:"Reopen login window"})]}):(0,d.jsx)(h.$n,{onClick:()=>s(!0),variant:"outline",size:"sm",fullWidth:!0,disabled:t,children:t?"Starting...":"Choose cluster & sign in"}),x&&(0,d.jsx)("p",{className:"text-[11px] text-red-500",children:(0,i.Tl)(x)})]});return(0,d.jsx)(h.aF,{isOpen:a,title:(0,i.Tl)("Connect Xiaomi MiMo"),onClose:c,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3.5",children:["detecting"===f&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-12 mx-auto mb-3 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Reading local MiMo Desktop credentials..."})]}),"importing"===f&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-12 mx-auto mb-3 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("p",{className:"text-sm font-medium",children:"Connecting..."})]}),"found"===f&&l&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold text-text-muted px-0.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-sm",children:"desktop_windows"}),(0,d.jsx)("span",{children:"Desktop Plan \xb7 Local credentials"})]}),n?(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2.5 items-start",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400 text-lg mt-0.5",children:"check_circle"}),(0,d.jsxs)("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[(0,d.jsx)("p",{className:"font-medium",children:"This account is already connected (no need to import again)"}),(0,d.jsxs)("p",{className:"text-xs mt-0.5 opacity-80",children:["UID: ",l.uid||"—"," \xb7 Status: ","active"===n.testStatus?"Active":"Untested"]})]})]})}):(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,d.jsxs)("div",{className:"flex gap-2.5 items-start",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400 text-lg mt-0.5",children:"check_circle"}),(0,d.jsxs)("div",{className:"text-sm text-green-800 dark:text-green-200",children:[(0,d.jsx)("p",{className:"font-medium",children:"Xiaomi MiMo Desktop credentials found!"}),(0,d.jsxs)("p",{className:"text-xs mt-0.5 opacity-80",children:["UID: ",l.uid||"—"," \xb7 Source: ",l.source?.split(/[\\/]/).pop()]})]})]})}),p&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-2.5 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",children:(0,i.Tl)(p)})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:F,variant:n?"outline":"default",fullWidth:!0,children:n?"Re-sync local credentials":"Connect with local credentials"}),(0,d.jsx)(h.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:n?"Close":"Cancel"})]}),(0,d.jsxs)("div",{className:"relative my-1",children:[(0,d.jsx)("div",{className:"absolute inset-0 flex items-center",children:(0,d.jsx)("div",{className:"w-full border-t border-border"})}),(0,d.jsx)("div",{className:"relative flex justify-center text-xs text-text-muted",children:(0,d.jsx)("span",{className:"bg-card px-2",children:"or"})})]}),H()]}),"not-found"===f&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,d.jsxs)("div",{className:"flex gap-2.5 items-start",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400 text-lg mt-0.5",children:"info"}),(0,d.jsxs)("div",{className:"text-sm text-amber-800 dark:text-amber-200",children:[(0,d.jsx)("p",{className:"font-medium",children:"No local Desktop credentials found"}),(0,d.jsx)("p",{className:"text-xs mt-0.5 opacity-80",children:"You can still sign in via browser — no Desktop client needed."})]})]})}),H(),(0,d.jsx)("div",{className:"mt-1",children:(0,d.jsx)(h.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:"Cancel"})})]}),r&&(0,d.jsx)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4 bg-black/60 backdrop-blur-xs animate-in fade-in duration-150",children:(0,d.jsxs)("div",{className:"relative w-full max-w-sm bg-surface border border-border-subtle rounded-[14px] shadow-2xl p-5 flex flex-col gap-3.5 animate-in zoom-in-95 duration-150",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-lg",children:"public"}),(0,d.jsx)("h3",{className:"text-sm font-semibold",children:"Select account cluster"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>s(!1),className:"text-text-muted hover:text-text-primary p-1 rounded-md transition-colors cursor-pointer",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Choose the region cluster of your Xiaomi account:"}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:j.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>G(a.id),className:"p-3 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-all text-left flex items-start gap-3 group cursor-pointer",children:[(0,d.jsx)("span",{className:"text-2xl mt-0.5",children:a.flag}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"text-sm font-semibold group-hover:text-primary transition-colors",children:a.name}),(0,d.jsx)("div",{className:"text-xs text-text-muted mt-0.5",children:a.host})]})]},a.id))}),(0,d.jsx)(h.$n,{onClick:()=>s(!1),variant:"ghost",size:"sm",fullWidth:!0,children:"Cancel"})]})})]})})}k.propTypes={isOpen:g().bool.isRequired,onSuccess:g().func,onClose:g().func.isRequired}},24656:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(50377);function j({isOpen:a,providerInfo:b,onSuccess:c,onClose:f}){let[g,k]=(0,e.useState)("booting"),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(!1),v=(0,e.useRef)(null),w=(0,e.useRef)({proxyStarted:!1,stopSent:!1});(0,e.useRef)(!1);let x=(0,e.useRef)(!1),y=(0,e.useRef)(a),z=(0,e.useRef)(c),A=(0,e.useRef)(f),{copied:B,copy:C}=(0,i.C)(),D=(0,e.useCallback)(()=>{let a=w.current;a.proxyStarted&&!a.stopSent&&(a.stopSent=!0,fetch("/api/oauth/zed/stop-proxy").catch(()=>{}))},[]),E=(0,e.useCallback)(()=>{k("success"),z.current?.(),setTimeout(()=>A.current?.(),600)},[]),F=(0,e.useCallback)(async a=>{if(a?.accessToken&&a?.userId){u(!0),s(null),k("importing");try{let b=await fetch("/api/oauth/zed/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a.accessToken,userId:a.userId,...a.systemId?{systemId:a.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Import failed");D(),E()}catch(a){s(a.message),k("ide-found")}finally{u(!1)}}},[E,D]);(0,e.useCallback)(async()=>{s(null),o(null),q(""),w.current={proxyStarted:!1,stopSent:!1},x.current=!1;try{let a=await fetch("/api/oauth/zed/start-proxy"),b=await a.json();if(!a.ok||!b.success||!b.callbackUrl)throw Error(b.reason||b.error||"Failed to start Zed callback server");if(w.current.proxyStarted=!0,w.current.stopSent=!1,!y.current)return void D();let c=new URL("/api/oauth/zed/authorize",window.location.origin);c.searchParams.set("redirect_uri",b.callbackUrl);let d=await fetch(c),e=await d.json();if(!d.ok)throw D(),Error(e.error||"Failed to start Zed authorization");if(!y.current)return void D();let f={state:e.state};e.codeVerifier&&(f.codeVerifier=e.codeVerifier),e.systemId&&(f.systemId=e.systemId);let g=await fetch("/api/oauth/zed/register-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),h=null;try{h=await g.json()}catch{h=null}if(!g.ok||h?.success===!1)throw D(),Error(h?.error||"Failed to register Zed login session");if(!y.current)return;o(e),k(a=>"ide-found"===a||"importing"===a?a:"browser"),v.current=window.open(e.authUrl,"oauth_popup_zed","width=600,height=700")}catch(a){if(!y.current)return;s(a.message),k(a=>"ide-found"===a?a:"browser")}},[D]);let G=async()=>{let a=p.trim();if(a){u(!0),s(null);try{let b=await fetch("/api/oauth/zed/exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:n?.state,...n?.redirectUri?{redirectUri:n.redirectUri}:{},...n?.codeVerifier?{codeVerifier:n.codeVerifier}:{},...n?.systemId?{systemId:n.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Exchange failed");x.current=!0,D(),E()}catch(a){s(a.message),k("error")}finally{u(!1)}}},H=()=>{x.current=!0,D(),f()},I=`Connect ${b?.name||"Zed"}`;return(0,d.jsx)(h.aF,{isOpen:a,title:I,onClose:H,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[("booting"===g||"importing"===g)&&(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{className:"text-sm",children:"importing"===g?"Importing session from Zed IDE…":"Detecting Zed IDE session…"})]}),"ide-found"===g&&l&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,d.jsxs)("p",{className:"text-sm text-green-800 dark:text-green-200",children:["Zed IDE session detected (user ",l.userId,"). Import failed — retry or use browser sign-in below."]})]})}),(0,d.jsx)(h.$n,{onClick:()=>F(l),fullWidth:!0,disabled:t,children:t?"Importing…":"Import from Zed IDE"})]}),"success"===g&&(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800 text-sm text-green-800 dark:text-green-200",children:"Connected successfully."}),("browser"===g||"error"===g||"ide-found"===g)&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{className:"text-sm",children:"Waiting for popup authorization…"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,d.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,d.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:n?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"auth_url"===B?"check":"content_copy",onClick:()=>C(n?.authUrl,"auth_url"),disabled:!n?.authUrl,children:"Copy"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser (or the local callback page)."}),(0,d.jsx)(h.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"http://127.0.0.1:.../?user_id=...&access_token=...",className:"font-mono text-xs"})]})]}),r&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:r})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:G,fullWidth:!0,disabled:t||!p.trim()||!n,children:t?"Connecting…":"Connect"}),(0,d.jsx)(h.$n,{onClick:H,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}j.propTypes={isOpen:g().bool.isRequired,providerInfo:g().object,onSuccess:g().func,onClose:g().func.isRequired}},25144:(a,b,c)=>{c.d(b,{Q5:()=>function a(b,c=null,d=null,e=0){if(!b?.length||e>6)return null;let f=b.map(b=>{let f="string"==typeof b?b.trim():String(b?.model||b?.id||"").trim();if(!f)return null;if(!f.includes("/")&&c?.[f])return a(c[f],c,d,e+1)??d?.(f)??y(null,f);let g=f.indexOf("/"),h=y(-1===g?null:f.slice(0,g),-1===g?f:f.slice(g+1)),i=d?.(f);return i?{...h,...i}:h}).filter(Boolean);if(!f.length)return null;let g=f[0];return{vision:f.some(a=>a.vision),pdf:f.some(a=>a.pdf),audioInput:f.some(a=>a.audioInput),videoInput:f.some(a=>a.videoInput),imageOutput:f.some(a=>a.imageOutput),audioOutput:f.some(a=>a.audioOutput),search:f.some(a=>a.search),tools:f.every(a=>a.tools),reasoning:g.reasoning,thinkingFormat:g.thinkingFormat,thinkingCanDisable:g.thinkingCanDisable,thinkingRange:g.thinkingRange,contextWindow:Math.min(...f.map(a=>a.contextWindow)),maxOutput:Math.max(...f.map(a=>a.maxOutput))}},nl:()=>y});var d=c(80212);let e="[-_/:.]",f=RegExp(`(^|${e})(image|img)(${e}|$)|stable-image|gen[0-9]_image|nanobanana|imagine|t2v|i2v|flux|dall|sdxl|diffusion|embed|rerank|guard|moderation|tts|stt|whisper|voice|speech|audio`,"i"),g=RegExp(`(^|${e})(vision|vl|vlm|multimodal|omni|visual)(${e}|$)|[0-9]\\.[0-9]+v(${e}|$)|(^|${e})glm-[0-9]+v(${e}|$)|(^|[-_/:.])(llava|pixtral|internvl|cogvlm|minicpm-v|moondream|idefics|fuyu)`,"i"),h={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingLevels:null,thinkingCanDisable:!0,thinkingRange:null,thinkingEffortSupported:!1,contextWindow:2e5,maxOutput:64e3},i={"claude-fable-5-1":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"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-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-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"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-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:131072},"glm-4.6v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3,maxOutput:32768},"glm-4.5v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:64e3,maxOutput:16384},"glm-5.2":{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3,maxOutput:64e3},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"x-preview-f-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:1e6,maxOutput:131072},"big-pickle":{reasoning:!0,thinkingFormat:"opencode",contextWindow:2e5,maxOutput:32e3},"muse-spark-1.2":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:1048576,maxOutput:131072},"muse-spark-1.2-contributor-free":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:1048576,maxOutput:131072},"mimo-v2.5-free":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:2e5,maxOutput:32e3},"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},"muse-spark-1.2-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"union-alpha":{vision:!0,contextWindow:262144,maxOutput:131072}},j={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:272e3,maxOutput:128e3},k=["minimal","low","medium","high","xhigh","max","ultra"],l={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,thinkingLevels:k,contextWindow:372e3,maxOutput:128e3},m={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,thinkingLevels:k,contextWindow:272e3,maxOutput:128e3},n={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,thinkingLevels:["minimal","low","medium","high","xhigh","max"],contextWindow:272e3,maxOutput:128e3},o={...n,contextWindow:872e3},p={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},q={reasoning:!0,thinkingFormat:"qoder",thinkingCanDisable:!0,maxOutput:64e3},r={...q,vision:!0},s={auto:r,qmodel_preview:r,qmodel_latest:r,qmodel:r,q36fmodel:r,dmodel:r,dfmodel:{...r,reasoning:!1},gm51model:r,kmodel:r,mmodel:{reasoning:!1,vision:!1,thinkingFormat:"openai",thinkingCanDisable:!0,maxOutput:64e3},gmodel:r,gfmodel:r,kmodel_latest:r,qfmodel:r,qmodel_38max:r,ultimate:q,performance:q,efficient:q,lite:q},t={qoder:s,"qoderwork-cn":s,deepseek:{"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},nvidia:{"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-flash-0731":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},codex:{"gpt-6-astra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-astra[1m]":o,"gpt-6-sol[1m]":o,"gpt-6-luna[1m]":o,"gpt-5.6-sol[1m]":o,"gpt-5.6-terra[1m]":o,"gpt-5.6-luna[1m]":o,"gpt-5.6-sol":l,"gpt-5.6-sol-review":l,"gpt-5.6-terra":m,"gpt-5.6-terra-review":m,"gpt-5.6-luna":n,"gpt-5.6-luna-review":n},kiro:{"gpt-5.6-sol":j,"gpt-5.6-terra":j,"gpt-5.6-luna":j,"gpt-5.6-sol-thinking":j,"gpt-5.6-terra-thinking":j,"gpt-5.6-luna-thinking":j,"gpt-5.6-sol-agentic":j,"gpt-5.6-terra-agentic":j,"gpt-5.6-luna-agentic":j,"gpt-5.6-sol-thinking-agentic":j,"gpt-5.6-terra-thinking-agentic":j,"gpt-5.6-luna-thinking-agentic":j},"devin-cli":{"gpt-5.4-high":p,"gpt-5.4-medium":p,"gpt-5.4-low":p,"gpt-5.5-xhigh":p,"gpt-5.5-high":p,"gpt-5.5-medium":p,"gpt-5.5-low":p},"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},"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-flash":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:48e3},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:32e3},"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:!0,contextWindow:1e6,maxOutput:5e4},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:128e3}},"codebuddy-intl":{"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:128e3}},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}},nous:{"nousresearch/hermes-4-70b":{tools:!1,reasoning:!0,thinkingFormat:"nous",contextWindow:131072,maxOutput:32e3},"nousresearch/hermes-4-405b":{tools:!1,reasoning:!0,thinkingFormat:"nous",contextWindow:131072,maxOutput:32e3}},meta:{"muse-spark-1.2-contributor":{reasoning:!0,thinkingFormat:"meta",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:64e3},"muse-spark-1.2":{reasoning:!0,thinkingFormat:"meta",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:64e3},"muse-spark-1.1":{reasoning:!0,thinkingFormat:"meta",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:64e3}},ollama:{"deepseek-v4.1-flash:cloud":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}}};t["qoder-cn"]=t.qoder,t.cx=t.codex,t.dv=t["devin-cli"],t.devin=t["devin-cli"],t.ds=t.deepseek;let u=[{pattern:"*qoder*",caps:q},{pattern:"*claude*opus-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-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-adaptive",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-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.8*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.7*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{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-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{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.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,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:"*solar-pro*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*longcat*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{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.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{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:"*qwen3.8-2.4t*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen3.8*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*max*",caps:{vision:!0,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:"*qwen3.8*",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:"*longcat-2.5*",caps:{reasoning:!0,contextWindow:65e4}},{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.3-flash*",caps:{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:2e5,maxOutput:128e3}},{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*vision*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:384e3}},{pattern:"*deepseek-v4.1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,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:1e6,maxOutput:131072}},{pattern:"*minimax-m2.7*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax-m2.5*",caps:{vision:!0,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.6*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,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:"*muse-spark*free*",caps:{vision:!0,videoInput:!0,audioInput:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*muse-spark*",caps:{vision:!0,videoInput:!0,audioInput:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*muse*spark*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{pattern:"*muse-glimmer*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*muse*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"step",contextWindow:262144,maxOutput:65536}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}],v=["vision","pdf","audioInput","videoInput"];function w(a,b,c){let d={...h,...a},e="u"<typeof globalThis?null:globalThis.__9rCatalogSource||null;if(e){let a=e.getModalities(b,c);if(a)for(let b of v)!0===a[b]&&(d[b]=!0);let f=e.getLimits(b,c);f&&(f.contextWindow>0&&(d.contextWindow=f.contextWindow),f.maxOutput>0&&(d.maxOutput=f.maxOutput))}return!d.vision&&function(a){if(!a)return!1;let b=String(a).toLowerCase();return!f.test(b)&&g.test(b)}(c)&&(d.vision=!0),d}let x=new Set(["deepseek/deepseek-v4-pro","deepseek/deepseek-v4-flash","deepseek/deepseek-v4-flash-fast","zai-org/glm-5.3","zai-org/glm-5.2","zai-org/glm-5.2-fast","zai-org/glm-5.1","zai-org/glm-5","minimaxai/minimax-m2.7","minimax/minimax-m2.7-free","minimaxai/minimax-m2.5","xiaomi/mimo-v2.5-pro","qwen/qwen3.6-max-preview","qwen/qwen3.7-max","meituan/longcat-2.0:free","stepfun/step-3.5-flash","tencent/hy4-preview","tencent/hy3","tencent/hy3-paid","nvidia/nemotron-3-ultra-550b-a55b","poolside/laguna-s-2.1-free","inclusionai/ling-3.0-flash-free","inclusionai/ling-3.0-flash-sante:free"]);function y(a,b){if(!b)return{...h};let c=b.includes("/")?b.split("/").pop():b;if("commandcode"===a||"cmc"===a){let a=t.commandcode;return a?.[b]?{...h,...a[b]}:a?.[c]?{...h,...a[c]}:{...h,reasoning:!0,thinkingFormat:"commandcode",thinkingEffortSupported:!0,vision:!function(a){let b=String(a||"").toLowerCase();if(x.has(b))return!0;for(let a of x){let c=a.includes("/")?a.slice(a.lastIndexOf("/")+1):a;if(b===c||b.endsWith("/"+c))return!0}return!1}(b),contextWindow:1e6,maxOutput:384e3}}if(a){let d=t[a];if(d?.[b])return{...h,...d[b]};if(d?.[c])return{...h,...d[c]}}if(i[c])return w(i[c],a,b);if(i[b])return w(i[b],a,b);for(let{pattern:e,caps:f}of u)if((0,d.gH)(e,c)||(0,d.gH)(e,b))return w(f,a,b);return w(null,a,b)}},25919:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({src:a,alt:b="Avatar",name:c,size:g="md",className:h}){let i={xs:"size-6 text-xs",sm:"size-8 text-sm",md:"size-10 text-base",lg:"size-12 text-lg",xl:"size-16 text-xl"};return a?(0,d.jsx)("div",{className:(0,e.cn)("rounded-full bg-cover bg-center bg-no-repeat","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],h),style:{backgroundImage:`url(${a})`},role:"img","aria-label":b}):(0,d.jsx)("div",{className:(0,e.cn)("rounded-full flex items-center justify-center font-semibold text-white","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],(a=>{if(!a)return"bg-primary";let b=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"],c=a.charCodeAt(0)%b.length;return b[c]})(c),h),role:"img","aria-label":b,children:(a=>{if(!a)return"?";let b=a.split(" ");return b.length>=2?`${b[0][0]}${b[1][0]}`.toUpperCase():a.substring(0,2).toUpperCase()})(c)})}},29225:(a,b,c)=>{c.d(b,{HY:()=>g,Kw:()=>h});let d={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","opencode-zen":"opencode","ollama-search":"ollama"},e=new Set;function f(a){return a&&"string"==typeof a?a.trim().toLowerCase():""}function g(a){let b=function(a){let b=f(a);if(!b||e.has(b))return"";let c=d[b]||b;return e.has(c)?"":c}(a);return b?`/providers/${b}.png`:null}function h(a){let b=f(a);b&&e.add(b);let c=d[b];c&&e.add(c)}},29370:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429);let g=[{icon:"terminal",label:"Terminal",desc:"Full shell access"},{icon:"cast",label:"Desktop",desc:"Screen sharing"},{icon:"folder_open",label:"Files",desc:"Browse & edit files"}],h=[{icon:"qr_code_scanner",text:"Scan QR to connect instantly"},{icon:"wifi_off",text:"No port forwarding needed"},{icon:"devices",text:"Works on any device"}];function i({isOpen:a,onClose:b}){return a?(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:b}),(0,d.jsxs)("div",{className:"relative w-full max-w-sm rounded-[14px] overflow-hidden shadow-[var(--shadow-elev)] fade-in flex flex-col bg-surface border border-border-subtle",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border-subtle",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded-[8px] flex items-center justify-center bg-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-white text-base",children:"terminal"})}),(0,d.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-primary font-mono",children:"9Remote"})]}),(0,d.jsx)("button",{onClick:b,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-base",children:"close"})})]}),(0,d.jsxs)("div",{className:"px-7 py-7 pb-9 flex flex-col gap-6",children:[(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center mt-2",children:[(0,d.jsx)("div",{className:"w-14 h-14 rounded-[14px] flex items-center justify-center mb-1 bg-primary shadow-[var(--shadow-warm)]",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-white text-[30px]",children:"terminal"})}),(0,d.jsx)("h1",{className:"text-lg font-bold text-text-main tracking-tight",children:"9Remote"}),(0,d.jsx)("p",{className:"text-xs text-text-muted leading-5 max-w-[220px]",children:"Access your terminal, desktop & files from anywhere"})]}),(0,d.jsx)("div",{className:"flex gap-2 w-full",children:g.map(({icon:a,label:b,desc:c})=>(0,d.jsxs)("div",{className:"flex-1 flex flex-col items-center gap-1.5 py-4 px-1 rounded-[10px] border border-border-subtle bg-surface-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[22px]",children:a}),(0,d.jsx)("p",{className:"text-xs font-semibold text-text-main",children:b}),(0,d.jsx)("p",{className:"text-[10px] text-text-muted text-center leading-4",children:c})]},b))}),(0,d.jsx)("div",{className:"flex flex-col gap-3 w-full",children:h.map(({icon:a,text:b})=>(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex-shrink-0 text-primary text-[16px]",children:a}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:b})]},a))}),(0,d.jsxs)("button",{onClick:()=>window.open("https://9remote.cc","_blank"),className:"w-full py-3 flex items-center justify-center gap-2 text-sm font-semibold text-white rounded-[10px] bg-primary hover:bg-primary-hover shadow-[var(--shadow-warm)] active:scale-[0.98] transition-all",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base",children:"open_in_new"}),"Get 9Remote"]})]})]})]}),document.body):null}function j(){let[a,b]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{onClick:()=>b(!0),className:"relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-all text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5",title:"9Remote",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"computer"}),(0,d.jsx)("span",{className:"text-xs font-medium",children:"Remote"})]}),(0,d.jsx)(i,{isOpen:a,onClose:()=>b(!1)})]})}},29476:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(67484),e=c(25144);function f(){let[a,b]=(0,d.useState)(()=>({})),[c,f]=(0,d.useState)(()=>({}));return{getCaps:(0,d.useCallback)(b=>(function(a,b,c){if(!c)return null;if(a[c])return a[c];let d=c.includes("/")?c.slice(c.indexOf("/")+1):c;if(b[d])return b[d];let f=c.includes("/")?c.slice(0,c.indexOf("/")):null,g=(0,e.nl)(f,d);return{vision:g.vision,search:g.search,reasoning:g.reasoning,contextWindow:g.contextWindow,maxOutput:g.maxOutput}})(a,c,b),[a,c])}}},31457:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412);let i="auto",j=[{value:i,label:"Auto-detect (recommended)"},{value:"us-east-1",label:"US East (N. Virginia)"},{value:"eu-central-1",label:"Europe (Frankfurt)"}];function k({isOpen:a,onMethodSelect:b,onClose:c}){let[f,g]=(0,e.useState)(null),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)("us-east-1"),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(i),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(null),H=a=>{g(a),y(null)},I=()=>{g(null),y(null)},J=()=>{g(null),m(""),q(""),s(""),u(""),G(null),E(!1),y(null)},K=async()=>{if(!p.trim())return void y("Please enter a refresh token");A(!0),y(null);try{let a=await fetch("/api/oauth/kiro/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:p.trim(),...F||{}})}),c=await a.json();if(!a.ok)throw Error(c.error||"Import failed");J(),b("import")}catch(a){y(a.message)}finally{A(!1)}},L=async()=>{if(!r.trim())return void y("Please paste CLIProxyAPI auth JSON");A(!0),y(null);try{let a=await fetch("/api/oauth/kiro/import-cli-proxy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({json:r.trim()})}),c=await a.json();if(!a.ok)throw Error(c.error||"CLIProxyAPI import failed");J(),b("import-cli-proxy")}catch(a){y(a.message)}finally{A(!1)}},M=async()=>{if(!t.trim())return void y("Please enter an API key");A(!0),y(null);try{let a=await fetch("/api/oauth/kiro/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:t.trim(),region:v})}),c=await a.json();if(!a.ok)throw Error(c.error||"Import failed");J(),b("api-key")}catch(a){y(a.message)}finally{A(!1)}},N=a=>{b("social",{provider:a})};return(0,d.jsx)(h.aF,{isOpen:a,title:"Connect Kiro",onClose:()=>{J(),c()},size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[!f&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Choose your authentication method:"}),(0,d.jsx)("button",{onClick:()=>b("builder-id"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"shield"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"AWS Builder ID"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Recommended for most users. Free AWS account required."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("idc"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"business"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"AWS IAM Identity Center"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"For enterprise users with custom AWS IAM Identity Center."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("api-key"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"key"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"API Key"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Use a long-lived Kiro/CodeWhisperer API key (headless auth)."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("social-google"),className:"hidden w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"account_circle"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"Google Account"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Login with your Google account (manual callback)."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("social-github"),className:"hidden w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"code"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"GitHub Account"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Login with your GitHub account (manual callback)."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("import"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"file_upload"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"Import Token"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Paste refresh token from Kiro IDE."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("import-cli-proxy"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"data_object"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"Import CLIProxyAPI JSON"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Paste external_idp auth JSON from CLIProxyAPI/Kiro Microsoft login."})]})]})})]}),"idc"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["IDC Start URL ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(h.pd,{value:l,onChange:a=>m(a.target.value),placeholder:"https://your-org.awsapps.com/start",className:"font-mono text-sm"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Your organization's AWS IAM Identity Center URL"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium mb-2",children:"AWS Region"}),(0,d.jsx)(h.pd,{value:n,onChange:a=>o(a.target.value),placeholder:"us-east-1",className:"font-mono text-sm"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"AWS region for your Identity Center (default: us-east-1)"})]}),x&&(0,d.jsx)("p",{className:"text-sm text-red-600",children:x}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>{l.trim()?b("idc",{startUrl:l.trim(),region:n}):y("Please enter your IDC start URL")},fullWidth:!0,children:"Continue"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"api-key"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Paste a long-lived Kiro/CodeWhisperer API key. It is validated against AWS and stored directly as a bearer credential (no refresh)."})]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["API Key ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(h.pd,{value:t,onChange:a=>u(a.target.value),placeholder:"Paste your Kiro API key...",className:"font-mono text-sm"})]}),(0,d.jsx)(h.l6,{label:"AWS Region",value:v,onChange:a=>w(a.target.value),options:j}),x&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:x})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:M,fullWidth:!0,disabled:z||!t.trim(),children:z?"Validating...":"Add API Key"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"social-google"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-4 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,d.jsxs)("div",{className:"flex-1 text-sm",children:[(0,d.jsx)("p",{className:"font-medium text-amber-900 dark:text-amber-100 mb-1",children:"Manual Callback Required"}),(0,d.jsx)("p",{className:"text-amber-800 dark:text-amber-200",children:"After login, you'll need to copy the callback URL from your browser and paste it back here."})]})]})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>N("google"),fullWidth:!0,children:"Continue with Google"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"social-github"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-4 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,d.jsxs)("div",{className:"flex-1 text-sm",children:[(0,d.jsx)("p",{className:"font-medium text-amber-900 dark:text-amber-100 mb-1",children:"Manual Callback Required"}),(0,d.jsx)("p",{className:"text-amber-800 dark:text-amber-200",children:"After login, you'll need to copy the callback URL from your browser and paste it back here."})]})]})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>N("github"),fullWidth:!0,children:"Continue with GitHub"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"import"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[B&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Auto-detecting token..."}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Reading from AWS SSO cache"})]}),!B&&(0,d.jsxs)(d.Fragment,{children:[D&&(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,d.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200",children:"Token auto-detected from Kiro IDE successfully!"})]})}),!D&&!x&&(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Kiro IDE not detected. Please paste your refresh token manually."})]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Refresh Token ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(h.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"Token will be auto-filled...",className:"font-mono text-sm"})]}),x&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:x})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:K,fullWidth:!0,disabled:z||!p.trim(),children:z?"Importing...":"Import Token"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]})]}),"import-cli-proxy"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Paste the Kiro CLIProxyAPI auth JSON containing auth_method=external_idp. Only Microsoft login token endpoints are accepted."})]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["CLIProxyAPI Auth JSON ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)("textarea",{value:r,onChange:a=>s(a.target.value),placeholder:'{"auth_method":"external_idp","access_token":"...","refresh_token":"...","client_id":"...","token_endpoint":"https://login.microsoftonline.com/.../oauth2/v2.0/token","profile_arn":"...","scopes":"..."}',className:"min-h-40 w-full rounded-md border border-border bg-background p-3 font-mono text-sm outline-none focus:border-primary"})]}),x&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:x})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:L,fullWidth:!0,disabled:z||!r.trim(),children:z?"Importing...":"Import CLIProxyAPI JSON"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})})}k.propTypes={isOpen:g().bool.isRequired,onMethodSelect:g().func.isRequired,onClose:g().func.isRequired}},32456:(a,b,c)=>{c.d(b,{default:()=>v});var d=c(48249),e=c(67484),f=c(19099),g=c(2116),h=c.n(g),i=c(49885),j=c.n(i),k=c(72738),l=c(3236);c(51126);var m=c(818),n=c(267);function o(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)("en");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>b(!0),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Language","data-i18n-skip":"true",children:(0,d.jsx)("span",{className:"text-lg leading-none",children:m.h[c]||"\uD83C\uDF10"})}),(0,d.jsx)(n.default,{hideTrigger:!0,isOpen:a,onClose:a=>{b(!1),f(a)}})]})}var p=c(53845),q=c(37365),r=c(12020),s=c(92592),t=c(29225),u=c(99258);function v({onMenuClick:a,showMenuButton:b=!0}){let c=(0,f.usePathname)(),[g,i]=(0,e.useState)(""),[j,m]=(0,e.useState)(""),{title:n,description:q,icon:x,breadcrumbs:y}=(0,e.useMemo)(()=>(a=>{if(!a)return{title:"",description:"",breadcrumbs:[]};let b=a.match(/\/media-providers\/([^/]+)\/([^/]+)$/);if(b){let a=b[1],c=b[2],d=s.rj.find(b=>b.id===a),e=s.Q2[c];return{title:e?.name||c,description:"",breadcrumbs:[{label:"Media Providers",href:`/dashboard/media-providers/${a}`},{label:d?.label||a,href:`/dashboard/media-providers/${a}`},{label:e?.name||c,image:(0,t.HY)(c)}]}}let c=a.match(/\/media-providers\/([^/]+)$/);if(c){let a=c[1],b=s.rj.find(b=>b.id===a);return{title:b?.label||a,description:`Manage your ${b?.label||a} providers`,icon:b?.icon||"perm_media",breadcrumbs:[]}}let d=a.match(/\/providers\/([^/]+)$/);if(d){let a=d[1],b=r.zN[a]||r.fg[a];if(b)return{title:b.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:b.name,image:(0,t.HY)(b.id)}]}}return a.includes("/providers")&&!a.includes("/media-providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:a.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:a.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:a.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:a.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:a.includes("/mitm")?{title:"MITM Proxy",description:"Intercept CLI tool traffic and route through EzRouter",icon:"security",breadcrumbs:[]}:a.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"savings",breadcrumbs:[]}:a.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:a.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"lan",breadcrumbs:[]}:a.includes("/skills")?{title:"Agent Skills",description:"Copy a link and paste to your AI to use EzRouter — no install needed",icon:"extension",breadcrumbs:[]}:a.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:a.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:a.includes("/translator")?{title:"Translator",description:"Debug translation flow between formats",icon:"translate",breadcrumbs:[]}:a.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===a?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(c),[c]),z=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(a){console.error("Failed to logout:",a)}};return(0,d.jsxs)("header",{className:"shrink-0 flex items-center justify-between gap-3 px-4 lg:px-8 pt-3 pb-2 border-b border-border-subtle bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,d.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:b&&(0,d.jsx)("button",{onClick:a,className:"text-text-main hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,d.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:y.length>0?(0,d.jsx)("div",{className:"flex items-center gap-2",children:y.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[b>0&&(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),a.href?(0,d.jsx)(h(),{href:a.href,className:"text-text-muted hover:text-primary transition-colors",children:a.label}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.image&&(0,d.jsx)(k.A,{src:a.image,alt:a.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:a.label.slice(0,2).toUpperCase()}),(0,d.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-text-main tracking-tight truncate",children:(0,u.Tl)(a.label)})]})]},`${a.label}-${a.href||"current"}`))}):n?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[x&&(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-xl lg:text-2xl",children:x}),(0,d.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,u.Tl)(n)})]}),q&&(0,d.jsx)("p",{className:"hidden lg:block text-sm text-text-muted truncate",children:(0,u.Tl)(q)})]}):null}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[g&&("OIDC"===j||"SAML"===j)&&(0,d.jsxs)("div",{className:"hidden sm:flex items-center max-w-[220px] px-3 py-1.5 rounded-full border border-border bg-surface/70 text-xs text-text-muted truncate",title:g,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1.5 text-primary",children:"person"}),(0,d.jsx)("span",{className:"truncate",children:g}),(0,d.jsx)("span",{className:"ml-2 shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-primary",children:j})]}),(0,d.jsx)(w,{}),(0,d.jsxs)("a",{href:"https://www.supportkori.com/golamrabbi",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 px-3 h-8 rounded-lg border border-pink-500/30 bg-pink-500/10 text-pink-600 dark:text-pink-400 hover:bg-pink-500/20 transition-colors text-sm font-medium","aria-label":"Donate",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"volunteer_activism"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Donate"})]}),(0,d.jsx)(p.default,{}),(0,d.jsx)(o,{}),(0,d.jsx)(l.default,{onLogout:z})]})]})}function w(){let a=(0,q.C)(a=>a.visible),b=(0,q.C)(a=>a.query),c=(0,q.C)(a=>a.placeholder),e=(0,q.C)(a=>a.setQuery);return a?(0,d.jsxs)("div",{className:"relative w-[160px] sm:w-[220px]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-2 top-1/2 -translate-y-1/2 text-text-muted text-[16px] pointer-events-none",children:"search"}),(0,d.jsx)("input",{type:"text",value:b,onChange:a=>e(a.target.value),placeholder:c,className:"w-full h-8 pl-7 pr-7 rounded-lg border border-border bg-surface/60 text-sm focus:outline-none focus:border-primary/50 transition-colors"}),b&&(0,d.jsx)("button",{type:"button",onClick:()=>e(""),className:"absolute right-1 top-1/2 -translate-y-1/2 text-text-muted hover:text-text-main p-0.5 rounded","aria-label":"Clear search",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]}):null}v.propTypes={onMenuClick:j().func,showMenuButton:j().bool}},32971:(a,b,c)=>{c.d(b,{default:()=>e});var d=c(48249);function e({text:a,children:b,position:c="top",color:f}){let g=f?"":"bg-gray-900";return(0,d.jsxs)("div",{className:"relative inline-flex group/tt",children:[b,(0,d.jsx)("div",{className:`pointer-events-none absolute ${{top:"bottom-full left-1/2 -translate-x-1/2 mb-1.5",bottom:"top-full left-1/2 -translate-x-1/2 mt-1.5",left:"right-full top-1/2 -translate-y-1/2 mr-1.5",right:"left-full top-1/2 -translate-y-1/2 ml-1.5"}[c]} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug ${g} text-white opacity-0 group-hover/tt:opacity-100 transition-opacity duration-150 whitespace-normal`,style:f?{backgroundColor:f}:{},children:a})]})}},37365:(a,b,c)=>{c.d(b,{C:()=>d});let d=(0,c(31417).v)(a=>({query:"",placeholder:"",visible:!1,setQuery:b=>a({query:b}),register:(b="Search...")=>a({visible:!0,placeholder:b,query:""}),unregister:()=>a({visible:!1,placeholder:"",query:""})}))},38930:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(91431),f=c(32971);function g({caps:a,className:b="",colorOverride:c,size:h=16}){if(!a)return null;let i=Object.keys(e.bs).filter(b=>a[b]);return 0===i.length?null:(0,d.jsx)("span",{className:`inline-flex items-center gap-0.5 ${b}`,children:i.map(a=>(0,d.jsx)(f.default,{text:`${e.bs[a].label} — ${e.bs[a].desc}`,children:(0,d.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${c||e.bs[a].color}`,style:{fontSize:`${h}px`},children:e.bs[a].icon})},a))})}},39645:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(67484),f=c(95145),g=c(99070),h=c(50377);function i({isOpen:a,onClose:b,title:c="Manual Configuration",configs:j=[]}){let{copy:k}=(0,h.C)(),[l,m]=(0,e.useState)(null);return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:c,size:"xl",children:(0,d.jsx)("div",{className:"flex flex-col gap-4",children:j.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.filename}),(0,d.jsxs)(g.default,{variant:"ghost",size:"sm",onClick:()=>{var c;return c=a.content,void(k(c,`manualconfig-${b}`),m(b),setTimeout(()=>m(null),2e3))},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:l===b?"check":"content_copy"}),l===b?"Copied!":"Copy"]})]}),(0,d.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:a.content})]},b))})})}},41371:(a,b,c)=>{c.d(b,{i:()=>f});var d=c(31417);let e=0,f=(0,d.v)((a,b)=>({notifications:[],addNotification:c=>{let d=++e,f={id:d,type:c.type||"info",message:c.message,title:c.title||null,duration:c.duration??5e3,dismissible:c.dismissible??!0,createdAt:Date.now()};return a(a=>({notifications:[...a.notifications,f]})),f.duration>0&&setTimeout(()=>b().removeNotification(d),f.duration),d},removeNotification:b=>{a(a=>({notifications:a.notifications.filter(a=>a.id!==b)}))},clearAll:()=>a({notifications:[]}),success:(a,c)=>b().addNotification({type:"success",message:a,title:c}),error:(a,c)=>b().addNotification({type:"error",message:a,title:c,duration:8e3}),warning:(a,c)=>b().addNotification({type:"warning",message:a,title:c}),info:(a,c)=>b().addNotification({type:"info",message:a,title:c})}))},42118:(a,b,c)=>{c.d(b,{D:()=>i});var d=c(67484),e=c(13033);function f(a){return()=>{}}function g(){return!1}function h(){return!1}function i(){let{theme:a,setTheme:b,toggleTheme:c,initTheme:i}=(0,e.A)(),j=(0,d.useSyncExternalStore)(f,g,h);return{theme:a,setTheme:b,toggleTheme:c,isDark:"dark"===a||"system"===a&&j}}},42285:(a,b,c)=>{c.d(b,{default:()=>m});var d=c(48249),e=c(67484),f=c(95145),g=c(99070),h=c(83552),i=c(91099),j=c(38930),k=c(29476),l=c(50377);function m({isOpen:a,combo:b,onClose:c,strategy:n={}}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)("Halo, berikan respon singkat."),[s,t]=(0,e.useState)("fallback"),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(""),{getCaps:y}=(0,k.y)(),{copied:z,copy:A}=(0,l.C)(),B=n.fallbackStrategy||"fallback";if(!b)return null;let C=async()=>{p(!0),x(""),v(null);try{let a=b.id?`/api/combos/${b.id}/test`:"/api/combos/test",c=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b.name,models:b.models,kind:b.kind||"llm",prompt:q.trim()||"Halo, berikan respon singkat.",mode:s})}),d=await c.json();c.ok?v(d):x(d.error||"Failed to execute combo test")}catch(a){console.error("Error testing combo:",a),x("Network or server error during combo test")}finally{p(!1)}},D=u?.steps?.filter(a=>a.fallbackTriggered).length||0;return(0,d.jsx)(f.default,{isOpen:a,onClose:c,title:`Test Combo: ${b.name}`,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"rounded-lg border border-border-subtle bg-surface-2 p-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 mb-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-lg",children:"layers"}),(0,d.jsx)("code",{className:"font-mono text-sm font-semibold text-text-main",children:b.name}),(0,d.jsxs)("span",{className:"rounded bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary capitalize",children:["Strategy: ",B]})]}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[b.models?.length||0," model(s) in fallback sequence"]})]}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 overflow-x-auto py-1 custom-scrollbar text-xs",children:b.models?.map((a,c)=>(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1 rounded bg-surface border border-border-subtle px-2 py-1 font-mono text-[11px] text-text-main shadow-xs",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted font-bold",children:["#",c+1]}),(0,d.jsx)("span",{className:"truncate max-w-[140px]",children:a}),(0,d.jsx)(j.default,{caps:y?.(a)})]}),c<b.models.length-1&&(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"})]},c))})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 items-end",children:[(0,d.jsx)("div",{className:"sm:col-span-2",children:(0,d.jsx)(h.default,{label:"Test Prompt",value:q,onChange:a=>r(a.target.value),placeholder:"Enter test prompt...",disabled:o})}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{className:"text-xs font-medium text-text-muted",children:"Execution Mode"}),(0,d.jsx)(i.default,{options:[{value:"fallback",label:"Fallback Mode (Real Request)"},{value:"all",label:"Full Diagnostic (All Models)"}],value:s,onChange:t,disabled:o})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-1",children:[(0,d.jsx)("p",{className:"text-[11px] text-text-muted",children:"fallback"===s?"Evaluates models in order until one succeeds (simulates real client hit).":"Tests every model in order to verify individual model availability."}),(0,d.jsx)(g.default,{onClick:C,loading:o,disabled:o||!b.models?.length,icon:"play_arrow",size:"sm",children:o?"Running Combo Test...":"Run Test"})]}),w&&(0,d.jsxs)("div",{className:"rounded-lg bg-red-500/10 border border-red-500/20 p-3 text-xs text-red-500 flex items-start gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-lg shrink-0",children:"error"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-semibold mb-0.5",children:"Test Error"}),(0,d.jsx)("p",{children:w})]})]}),o&&(0,d.jsxs)("div",{className:"py-8 flex flex-col items-center justify-center gap-3 border border-dashed border-border-subtle rounded-lg bg-surface-2/50",children:[(0,d.jsx)("div",{className:"size-8 rounded-full border-2 border-primary border-t-transparent animate-spin"}),(0,d.jsx)("p",{className:"text-xs font-medium text-text-main animate-pulse",children:"Testing hit to combo models based on sequence..."}),(0,d.jsx)("p",{className:"text-[11px] text-text-muted",children:"Simulating fallbacks if upstream models return errors."})]}),u&&!o&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("div",{className:`rounded-lg p-3.5 border ${"success"===u.comboStatus?"bg-emerald-500/10 border-emerald-500/30 text-emerald-600 dark:text-emerald-400":"bg-red-500/10 border-red-500/30 text-red-600 dark:text-red-400"}`,children:(0,d.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl",children:"success"===u.comboStatus?"check_circle":"cancel"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"text-sm font-semibold leading-snug",children:"success"===u.comboStatus?"Combo Test Succeeded":"Combo Test Failed"}),(0,d.jsx)("p",{className:"text-xs opacity-90",children:"success"===u.comboStatus?`Served by model #${u.servedStepIndex}: ${u.servingModel}`:"All models in combo failed to respond"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 text-xs font-medium",children:[D>0&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-amber-500/20 px-2 py-0.5 text-amber-700 dark:text-amber-300",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"swap_calls"}),D," Fallback",D>1?"s":""]}),(0,d.jsxs)("span",{className:"rounded bg-black/10 dark:bg-white/10 px-2 py-0.5",children:["Total: ",u.totalLatencyMs,"ms"]})]})]})}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-xs font-medium text-text-muted",children:["Fallback Execution Sequence (",u.steps?.length||0," steps)"]}),(0,d.jsxs)("button",{onClick:()=>A((()=>{if(!u)return"";let a=`Combo Test: ${u.comboName}
|
|
1
|
+
"use strict";exports.id=412,exports.ids=[412],exports.modules={267:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429),g=c(51126),h=c(99258);let i=a=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},km:{name:"ខ្មែរ",flag:"\uD83C\uDDF0\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"},fa:{name:"فارسی",flag:"\uD83C\uDDEE\uD83C\uDDF7"}})[a]||{name:a,flag:"\uD83C\uDF10"};function j({className:a="",isOpen:b,onClose:c,hideTrigger:k=!1}){let[l,m]=(0,e.useState)("en"),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(null),s="boolean"==typeof b,t=s?b:p,u=(a,b=l)=>{s?!a&&c&&c(b):q(a)},v=async a=>{if(a!==l&&!n){o(!0);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:a})}),await (0,h.wn)(),m(a),u(!1,a)}catch(a){console.error("Failed to set locale:",a)}finally{o(!1)}}};return(0,d.jsxs)("div",{className:a,children:[!k&&(0,d.jsxs)("button",{onClick:()=>u(!t),disabled:n,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:i(l).name}),(0,d.jsx)("span",{className:"text-lg",children:i(l).flag})]}),t&&(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>u(!1)}),(0,d.jsxs)("div",{ref:r,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>u(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,d.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:g.YZ.map(a=>{let b=l===a,c=i(a);return(0,d.jsxs)("button",{onClick:()=>v(a),disabled:n,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${b?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${n?"opacity-70 cursor-wait":""}`,title:c.name,children:[(0,d.jsx)("span",{className:"text-2xl",children:c.flag}),(0,d.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:c.name}),b&&(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},a)})})})]})]}),document.body)]})}},818:(a,b,c)=>{c.d(b,{h:()=>d});let d={en:"\uD83C\uDDFA\uD83C\uDDF8",vi:"\uD83C\uDDFB\uD83C\uDDF3","zh-CN":"\uD83C\uDDE8\uD83C\uDDF3","zh-TW":"\uD83C\uDDF9\uD83C\uDDFC",ja:"\uD83C\uDDEF\uD83C\uDDF5","pt-BR":"\uD83C\uDDE7\uD83C\uDDF7","pt-PT":"\uD83C\uDDF5\uD83C\uDDF9",ko:"\uD83C\uDDF0\uD83C\uDDF7",es:"\uD83C\uDDEA\uD83C\uDDF8",de:"\uD83C\uDDE9\uD83C\uDDEA",fr:"\uD83C\uDDEB\uD83C\uDDF7",he:"\uD83C\uDDEE\uD83C\uDDF1",ar:"\uD83C\uDDF8\uD83C\uDDE6",ru:"\uD83C\uDDF7\uD83C\uDDFA",pl:"\uD83C\uDDF5\uD83C\uDDF1",cs:"\uD83C\uDDE8\uD83C\uDDFF",nl:"\uD83C\uDDF3\uD83C\uDDF1",tr:"\uD83C\uDDF9\uD83C\uDDF7",uk:"\uD83C\uDDFA\uD83C\uDDE6",tl:"\uD83C\uDDF5\uD83C\uDDED",id:"\uD83C\uDDEE\uD83C\uDDE9",th:"\uD83C\uDDF9\uD83C\uDDED",km:"\uD83C\uDDF0\uD83C\uDDED",hi:"\uD83C\uDDEE\uD83C\uDDF3",bn:"\uD83C\uDDE7\uD83C\uDDE9",ur:"\uD83C\uDDF5\uD83C\uDDF0",ro:"\uD83C\uDDF7\uD83C\uDDF4",sv:"\uD83C\uDDF8\uD83C\uDDEA",it:"\uD83C\uDDEE\uD83C\uDDF9",el:"\uD83C\uDDEC\uD83C\uDDF7",hu:"\uD83C\uDDED\uD83C\uDDFA",fi:"\uD83C\uDDEB\uD83C\uDDEE",da:"\uD83C\uDDE9\uD83C\uDDF0",no:"\uD83C\uDDF3\uD83C\uDDF4",fa:"\uD83C\uDDEE\uD83C\uDDF7"}},3236:(a,b,c)=>{c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(42118),i=c(11229),j=c(95145);function k({icon:a,label:b,onClick:c,trailing:e,danger:f}){return(0,d.jsxs)("button",{onClick:c,className:`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${f?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${f?"":"text-text-muted"}`,children:a}),(0,d.jsx)("span",{className:"flex-1 text-left",children:b}),e&&(0,d.jsx)("span",{className:"text-base",children:e})]})}function l({onLogout:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),{toggleTheme:q,isDark:r}=(0,h.D)(),s=(0,e.useRef)(null),t=async()=>{p(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(a){}p(!1),n(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",ref:s,children:[(0,d.jsx)("button",{onClick:()=>c(a=>!a),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Menu",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),b&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,d.jsx)(k,{icon:"history",label:"Change Log",onClick:()=>{c(!1),g(!0)}}),(0,d.jsx)(k,{icon:r?"light_mode":"dark_mode",label:"Theme",onClick:()=>{q(),c(!1)}}),(0,d.jsx)(k,{icon:"power_settings_new",label:"Shutdown",danger:!0,onClick:()=>{c(!1),n(!0)}}),(0,d.jsx)(k,{icon:"logout",label:"Logout",danger:!0,onClick:()=>{c(!1),a()}})]})]}),(0,d.jsx)(i.default,{isOpen:f,onClose:()=>g(!1)}),(0,d.jsx)(j.ConfirmModal,{isOpen:m,onClose:()=>n(!1),onConfirm:t,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:o})]})}k.propTypes={icon:g().string.isRequired,label:g().string.isRequired,onClick:g().func.isRequired,trailing:g().node,danger:g().bool},l.propTypes={onLogout:g().func.isRequired}},4770:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({label:a,options:b=[],value:c,onChange:g,placeholder:h="Select an option",error:i,hint:j,disabled:k=!1,required:l=!1,className:m,selectClassName:n,...o}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-col gap-1.5",m),children:[a&&(0,d.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[a,l&&(0,d.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("select",{value:c,onChange:g,disabled:k,className:(0,e.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",i&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",n),...o,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:h}),b.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),(0,d.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),i&&(0,d.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),i]}),j&&!i&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:j})]})}},5291:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(79346),i=c(31457),j=c(56110);function k({isOpen:a,providerInfo:b,onSuccess:c,onClose:f}){let[g,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),q=(0,e.useCallback)((a,b)=>{"builder-id"===a?l("builder-id"):"idc"===a?(l("idc"),p(b)):"social"===a?(l("social"),n(b.provider)):("import"===a||"import-cli-proxy"===a||"api-key"===a)&&c?.()},[c]),r=()=>{l(null),n(null),p(null)};return g?"builder-id"===g||"idc"===g?(0,d.jsx)(h.default,{isOpen:a,provider:"kiro",providerInfo:b,onSuccess:()=>{l(null),p(null),c?.(),f?.()},onClose:r,idcConfig:o}):"social"===g&&m?(0,d.jsx)(j.default,{isOpen:a,provider:m,onSuccess:()=>{l(null),n(null),c?.(),f?.()},onClose:r}):null:(0,d.jsx)(i.default,{isOpen:a,onMethodSelect:q,onClose:f})}k.propTypes={isOpen:g().bool.isRequired,providerInfo:g().shape({name:g().string}),onSuccess:g().func,onClose:g().func.isRequired}},11229:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(67484),f=c(74429),g=c(49885),h=c.n(g);function i({isOpen:a,onClose:b}){let[c,g]=(0,e.useState)(""),[h,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),m=(0,e.useRef)(null);return!a||"u"<typeof document?null:(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:b}),(0,d.jsxs)("div",{ref:m,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-3xl flex flex-col max-h-[85vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Change Log"}),(0,d.jsx)("button",{onClick:b,className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",children:[h&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),"Loading..."]}),k&&(0,d.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",k]}),!h&&!k&&c&&(0,d.jsx)("div",{className:"changelog-body text-text-main",dangerouslySetInnerHTML:{__html:c}})]})]})]}),document.body)}c(12020),i.propTypes={isOpen:h().bool.isRequired,onClose:h().func.isRequired}},11633:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(17660);let f={mode:{label:"Mode",format:a=>a},defaultModel:{label:"Model",format:a=>a,mono:!0},baseUrl:{label:"Endpoint",format:a=>a,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:a=>0===a?"Free":`$${a.toFixed(4)}`},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:a=>a},freeMonthlyQuota:{label:"Free quota",format:a=>0===a?"—":a>=999999?"Unlimited":`${a.toLocaleString()} / mo`},searchTypes:{label:"Types",format:a=>a.join(", ")},formats:{label:"Formats",format:a=>a.join(", ")},maxMaxResults:{label:"Max results",format:a=>a},maxCharacters:{label:"Max chars",format:a=>a.toLocaleString()}};function g({config:a,provider:b,title:c="Provider Info"}){if(!a)return null;let h=Object.entries(f).filter(([b])=>void 0!==a[b]&&null!==a[b]&&""!==a[b]).map(([b,c])=>({key:b,label:c.label,value:c.format(a[b]),isLink:c.isLink,mono:c.mono,raw:a[b]})),i=b?.notice?.apiKeyUrl||b?.website,j=b?.notice?.text;return(0,d.jsxs)(e.default,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:c}),i&&(0,d.jsxs)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:a.label}),a.isLink?(0,d.jsx)("a",{href:a.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${a.mono?"font-mono":""}`,children:a.value}):(0,d.jsx)("span",{className:`text-sm text-text-main truncate ${a.mono?"font-mono":""}`,children:a.value})]},a.key)),j&&(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,d.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:j})]})]})]})}},17174:(a,b,c)=>{c.d(b,{default:()=>x});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(2116),i=c.n(h),j=c(19099),k=c(71404),l=c(12020),m=c(92592),n=c(50377);c(91937);var o=c(99070),p=c(11229),q=c(17447);function r({currentVersion:a,latestVersion:b,installCmd:c,onClose:f}){let[g,h]=(0,e.useState)("auto"),[i,j]=(0,e.useState)("idle"),[k,m]=(0,e.useState)(null),[n,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(0),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)({bullets:[],truncated:!1,loading:!0,error:null,versions:[]}),[B,C]=(0,e.useState)(!1),D=(0,e.useRef)(null),E=(0,e.useRef)(null),F=(0,e.useRef)(!1),G=(0,e.useCallback)(()=>{D.current&&(clearInterval(D.current),D.current=null),E.current&&(clearInterval(E.current),E.current=null)},[]),H=(0,e.useCallback)(()=>{(0,q.TJ)(a)},[a]),I=(0,e.useCallback)(()=>{G();let a=function(a=l.h0.statusPort){return`http://127.0.0.1:${a}/update/status`}(),b=async()=>{if(!F.current)try{let b=await fetch(a,{cache:"no-store"});if(!b.ok)return;let c=await b.json();if(F.current)return;(m(c),j("running"),c&&c.done&&c.success)?(j("success"),E.current||(E.current=setInterval(()=>{globalThis.location.reload()},2e3),setTimeout(()=>{try{globalThis.location.reload()}catch{}},2500)),D.current&&(clearInterval(D.current),D.current=null)):c&&("error"===c.phase||c.done&&!c.success)&&(j("failed"),s(c.error||"Install failed"),h("manual"),D.current&&(clearInterval(D.current),D.current=null))}catch{}};b(),D.current=setInterval(b,l.h0.statusPollIntervalMs)},[G]),J=(0,e.useCallback)(async()=>{s(null),m(null),j("starting"),F.current=!1,H();try{let a=await fetch("/api/version/update",{method:"POST"}),b=await a.json().catch(()=>({}));if(!a.ok){s(b.message||`Auto-update unavailable (${a.status})`),j("failed"),h("manual");return}j("running"),I()}catch(a){j("running"),I(),a?.message&&s(null)}},[I,H]),K=async()=>{H();try{await navigator.clipboard.writeText(c)}catch{}u(!0);let a=l.h0.shutdownCountdownSec;w(a);let b=setInterval(()=>{w(a-=1),a<=0&&(clearInterval(b),fetch("/api/version/shutdown",{method:"POST"}).catch(()=>{}),y(!0))},1e3)},L=function(a){if(!a||"object"!=typeof a)return 5;let{phase:b,attempt:c=0,maxRetries:d=l.h0.installRetries,done:e,success:f}=a;if(e&&f)return 100;if("error"===b||e&&!f)return 90;switch(b){case"starting":return 8;case"waitingForExit":return 22;case"installing":{let a=Math.max(1,d);return Math.round(35+Math.min(c,a)/a*50)}case"done":return 100;default:return 5}}(k||{phase:"starting"===i?"starting":null}),M="starting"===i?"Contacting updater…":"success"===i?"Update complete — reloading when app is ready…":function(a,b={}){let c=b.attempt||0,d=b.maxRetries||l.h0.installRetries;switch(a){case"starting":return"Starting updater…";case"waitingForExit":return"Stopping current app (releasing file locks)…";case"installing":return c>0?`Installing package (attempt ${c}/${d})…`:"Installing package…";case"done":return"Update complete — restarting app…";case"error":return"Update failed";default:return a?String(a):"Preparing…"}}(k?.phase,{attempt:k?.attempt,maxRetries:k?.maxRetries}),N=Array.isArray(k?.logTail)?k.logTail:[],O="starting"===i||"running"===i||"success"===i,P=`Update EzRouter${b?` to v${b}`:""}`,Q=(0,d.jsxs)("div",{className:"mb-4 rounded-lg border border-white/10 bg-white/5 p-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-2",children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-white/90",children:["What's new",b?(0,d.jsxs)("span",{className:"font-normal text-white/50",children:[" ",a?`v${a} → `:"","v",b]}):null]}),(0,d.jsx)("button",{type:"button",onClick:()=>C(!0),className:"text-[10px] text-white/50 hover:text-white/80 transition-colors shrink-0",children:"Full changelog"})]}),z.loading&&(0,d.jsxs)("p",{className:"text-[11px] text-white/50 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] animate-spin",children:"progress_activity"}),"Loading release notes…"]}),!z.loading&&z.error&&(0,d.jsxs)("p",{className:"text-[11px] text-white/50",children:["Couldn't load release notes (",z.error,"). You can still update."]}),!z.loading&&!z.error&&0===z.bullets.length&&(0,d.jsx)("p",{className:"text-[11px] text-white/50",children:"No release notes found for this range yet. Check the full changelog after updating."}),!z.loading&&z.bullets.length>0&&(0,d.jsxs)("ul",{className:"max-h-40 overflow-y-auto space-y-1 text-[11px] text-white/75 list-disc list-inside",children:[z.bullets.map((a,b)=>(0,d.jsxs)("li",{className:"leading-snug",title:a.text,children:[(0,d.jsxs)("span",{className:"text-white/40 mr-1",children:["v",a.version]}),a.text]},`${a.version}-${b}`)),z.truncated&&(0,d.jsx)("li",{className:"list-none text-white/40 pl-0",children:"…more in full changelog"})]})]});if("auto"===g)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"w-full max-w-xl rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-green-500/20 text-green-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"success"===i?"check_circle":"system_update"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:P}),(0,d.jsx)("p",{className:"text-xs text-white/60",children:"One-click install. The app will stop, update, and restart automatically."})]})]}),"idle"===i&&(0,d.jsxs)(d.Fragment,{children:[Q,(0,d.jsxs)("ul",{className:"text-xs text-white/70 space-y-1.5 list-disc list-inside mb-4",children:[(0,d.jsxs)("li",{children:["Works with the production ",(0,d.jsx)("code",{className:"px-1 rounded bg-white/10",children:"ezrouter"})," CLI install"]}),(0,d.jsx)("li",{children:"Takes about 1–2 minutes (npm global install + restart)"}),(0,d.jsx)("li",{children:"You can switch to manual install if auto fails"})]}),(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(o.default,{variant:"secondary",onClick:f,className:"sm:w-auto",children:"Cancel"}),(0,d.jsx)(o.default,{variant:"primary",fullWidth:!0,onClick:J,children:"Update & Restart"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>h("manual"),className:"mt-3 w-full text-center text-[11px] text-white/50 hover:text-white/80 transition-colors",children:"Prefer manual install instead?"})]}),O&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1.5",children:[(0,d.jsx)("span",{className:"text-white/80",children:M}),(0,d.jsxs)("span",{className:"text-white/50 tabular-nums",children:[L,"%"]})]}),(0,d.jsx)("div",{className:"h-1.5 rounded-full bg-white/10 overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-green-500 transition-all duration-500",style:{width:`${Math.min(100,L)}%`}})})]}),N.length>0&&(0,d.jsx)("div",{className:"mb-3 max-h-32 overflow-y-auto rounded bg-black/40 px-2 py-1.5 font-mono text-[10px] text-white/60 space-y-0.5",children:N.map((a,b)=>(0,d.jsx)("div",{className:"truncate",children:a},`${b}-${a.slice(0,24)}`))}),"success"===i?(0,d.jsx)("p",{className:"text-xs text-green-400/90 mb-3",children:"Install succeeded. Waiting for the app to come back, then reloading…"}):(0,d.jsx)("p",{className:"text-xs text-white/50 mb-3",children:"Keep this tab open. Do not close the browser until the update finishes."}),"success"!==i&&(0,d.jsx)("button",{type:"button",onClick:()=>{G(),h("manual"),j("failed")},className:"w-full text-center text-[11px] text-white/50 hover:text-white/80 transition-colors",children:"Stuck? Switch to manual install"})]}),"failed"===i&&"auto"===g&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"mb-3 rounded border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:n||"Auto-update failed."}),(0,d.jsx)(o.default,{variant:"primary",fullWidth:!0,onClick:()=>h("manual"),children:"Open manual install"})]})]}),(0,d.jsx)(p.default,{isOpen:B,onClose:()=>C(!1)})]});let R=v>0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"w-full max-w-xl rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-amber-500/20 text-amber-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"content_copy"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:P}),(0,d.jsx)("p",{className:"text-xs text-white/60",children:x?"Server stopped. Paste the command into a terminal to install.":R?`Command copied. Server will stop in ${v}s...`:n?"Auto-update unavailable — install manually.":"Copy the install command, stop the server, then re-run ezrouter."})]})]}),!x&&!R&&Q,n&&(0,d.jsx)("div",{className:"mb-3 rounded border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-200",children:n}),(0,d.jsx)("p",{className:"text-sm text-white/80 mb-2",children:"Install command:"}),(0,d.jsx)("div",{className:"w-full px-3 py-2 rounded bg-white/5 mb-4",children:(0,d.jsx)("code",{className:"text-xs font-mono text-amber-400 break-all",children:c})}),(0,d.jsxs)("ol",{className:"text-xs text-white/70 space-y-1 list-decimal list-inside mb-4",children:[(0,d.jsxs)("li",{children:["Click ",(0,d.jsx)("strong",{children:"Copy & Shutdown"})," below."]}),(0,d.jsx)("li",{children:"Paste the command into your terminal and press Enter."}),(0,d.jsxs)("li",{children:["Run ",(0,d.jsx)("code",{className:"px-1 rounded bg-white/10 text-green-400",children:"ezrouter"})," again after install."]})]}),x?(0,d.jsx)(o.default,{variant:"secondary",fullWidth:!0,onClick:()=>globalThis.location.reload(),children:"Reload Page"}):(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(o.default,{variant:"secondary",onClick:()=>{O||f()},disabled:R,className:"sm:w-auto",children:"Cancel"}),(0,d.jsx)(o.default,{variant:"primary",fullWidth:!0,onClick:K,disabled:R,children:t?"✓ Copied — shutting down...":R?`Shutting down in ${v}s`:"Copy & Shutdown"})]}),!x&&!R&&(0,d.jsx)("button",{type:"button",onClick:()=>{h("auto"),j("idle"),s(null),m(null)},className:"mt-3 w-full text-center text-[11px] text-white/50 hover:text-white/80 transition-colors",children:"Try automatic update instead"})]}),(0,d.jsx)(p.default,{isOpen:B,onClose:()=>C(!1)})]})}r.propTypes={currentVersion:g().string,latestVersion:g().string,installCmd:g().string.isRequired,onClose:g().func.isRequired};let s=["embedding","image","video","tts","stt","systemone"],t="/dashboard/media-providers/web",u=[{href:"/dashboard/endpoint",label:"Endpoint & Key",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combo & Vision Adapter",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/routing-health",label:"Routing Health",icon:"speed"},{href:"/dashboard/token-saver",label:"Token Saver",icon:"savings"},{href:"/dashboard/convoy",label:"Input Guard",icon:"filter_alt"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"},{href:"/dashboard/mcp-gateway",label:"MCP Gateway",icon:"hub"}],v=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"},{href:"/dashboard/error-log",label:"Error Log",icon:"error"},{href:"/dashboard/translator",label:"Translator",icon:"translate"}],w=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/skills",label:"Skills",icon:"extension"}];function x({onClose:a}){let b=(0,j.usePathname)(),[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(null),[o,p]=(0,e.useState)(!1),[q,y]=(0,e.useState)(!1),{copied:z,copy:A}=(0,n.C)(2e3),B=l.h0.installCmdLatest,C=a=>"/dashboard/endpoint"===a?"/dashboard"===b||b.startsWith("/dashboard/endpoint"):b.startsWith(a);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("aside",{className:"flex w-72 flex-col border-r border-border-subtle bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,d.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,d.jsxs)(i(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,d.jsx)("img",{src:"/logo.png",alt:"EzRouter",className:"size-9 rounded-[10px] object-contain shadow-[var(--shadow-warm)]",onError:a=>{a.currentTarget.onerror=null,a.currentTarget.src="/favicon.svg"}}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:l.vQ.name}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["v",l.vQ.version]})]})]}),g&&(0,d.jsxs)("div",{className:"flex flex-col gap-1.5 rounded p-1 -m-1",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:["↑ New version available: v",g.latestVersion]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>p(!0),className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors cursor-pointer",children:"Update now"}),(0,d.jsx)("button",{onClick:()=>A(B),title:"Copy install command",className:"flex-1 text-left hover:opacity-80 transition-opacity cursor-pointer min-w-0",children:(0,d.jsx)("code",{className:"block text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono truncate",children:z?"✓ copied!":B})})]})]})]}),(0,d.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-0.5 overflow-y-auto custom-scrollbar",children:[u.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:b.label})]},b.href)),(0,d.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,d.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),(0,d.jsxs)("button",{onClick:()=>f(a=>!a),className:(0,k.cn)("w-full flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",b.startsWith("/dashboard/media-providers")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"perm_media"}),(0,d.jsx)("span",{className:"text-[13px] font-medium flex-1 text-left",children:"Media Providers"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] transition-transform",style:{transform:c?"rotate(180deg)":"rotate(0deg)"},children:"expand_more"})]}),c&&(0,d.jsxs)("div",{className:"pl-4",children:[m.rj.filter(a=>s.includes(a.id)).map(c=>(0,d.jsxs)(i(),{href:`/dashboard/media-providers/${c.id}`,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(`/dashboard/media-providers/${c.id}`)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:c.icon}),(0,d.jsx)("span",{className:"text-sm",children:c.label})]},c.id)),(0,d.jsxs)(i(),{href:t,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(t)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"travel_explore"}),(0,d.jsx)("span",{className:"text-sm",children:"Web Fetch & Search"})]},"web")]}),w.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:b.label})]},b.href)),v.map(b=>"/dashboard/translator"!==b.href||q?(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:b.label})]},b.href):null),(0,d.jsxs)(i(),{href:"/dashboard/profile",onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",C("/dashboard/profile")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",C("/dashboard/profile")?"fill-1":"group-hover:text-primary transition-colors"),children:"settings"}),(0,d.jsx)("span",{className:"text-[13px] font-medium",children:"Settings"})]})]})]})]}),o&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",children:(0,d.jsx)(r,{currentVersion:g?.currentVersion||l.vQ.version,latestVersion:g?.latestVersion,installCmd:B,onClose:()=>p(!1)})})]})}x.propTypes={onClose:g().func}},17447:(a,b,c)=>{c.d(b,{BM:()=>m,MY:()=>g,TJ:()=>l,eK:()=>i,yM:()=>n,zV:()=>h});let d="9router:lastSeenVersion",e="9router:updateFromVersion";function f(a,b){if(!a&&!b)return 0;if(!a)return -1;if(!b)return 1;let c=a=>String(a).trim().replace(/^v/i,"").split(/[.+-]/).map(a=>{let b=parseInt(a,10);return Number.isFinite(b)?b:0}),d=c(a),e=c(b),f=Math.max(d.length,e.length);for(let a=0;a<f;a++){let b=d[a]||0,c=e[a]||0;if(b>c)return 1;if(b<c)return -1}return 0}function g(a){let b;if(!a||"string"!=typeof a)return[];let c=/^#\s+v?(\d+\.\d+\.\d+[^\s)]*)\s*([^\n]*)/gm,d=[];for(;null!==(b=c.exec(a));)d.push({version:b[1].trim(),heading:b[0].replace(/^#\s+/,"").trim(),index:b.index,headerEnd:b.index+b[0].length});return 0===d.length?[]:d.map((b,c)=>{let e=b.headerEnd,f=c+1<d.length?d[c+1].index:a.length,g=a.slice(e,f).trim(),h=g.split(/\r?\n/).map(a=>a.trim()).filter(a=>/^[-*]\s+/.test(a)).map(a=>a.replace(/^[-*]\s+/,"").trim()).filter(Boolean);return{version:b.version,heading:b.heading,body:g,bullets:h}})}function h(a,b,c=null){let d=g(a);return 0===d.length?[]:d.filter(a=>!(c&&f(a.version,c)>0||b&&0>=f(a.version,b))&&(!!b||!!c&&0===f(a.version,c)))}function i(a,{maxBullets:b=10}={}){let c=[],d=[];for(let b of a)for(let a of(c.includes(b.version)||c.push(b.version),b.bullets)){var e;d.push({text:(e=a)?String(e).replace(/\*\*(.+?)\*\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").trim():"",version:b.version})}let f=d.length>b;return{bullets:d.slice(0,b),truncated:f,versions:c}}function j(a){try{if("u"<typeof localStorage)return null;return localStorage.getItem(a)}catch{return null}}function k(a,b){try{if("u"<typeof localStorage)return;localStorage.setItem(a,b)}catch{}}function l(a){a&&k(e,String(a).replace(/^v/i,""))}function m(a){let b=String(a||"").replace(/^v/i,"");if(!b)return{show:!1,fromVersion:null,toVersion:b};let c=j(e),g=j(d);return g||c?c&&f(b,c)>0?{show:!0,fromVersion:c,toVersion:b}:g&&f(b,g)>0?{show:!0,fromVersion:g,toVersion:b}:(g&&0===f(b,g)||k(d,b),{show:!1,fromVersion:null,toVersion:b}):(k(d,b),{show:!1,fromVersion:null,toVersion:b})}function n(a){let b=String(a||"").replace(/^v/i,"");b&&k(d,b),function(a){try{if("u"<typeof localStorage)return;localStorage.removeItem(a)}catch{}}(e)}},20084:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(95145);function g({isOpen:a,onClose:b,onAdd:c,addedNames:h=[]}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({}),[w,x]=(0,e.useState)({}),[y,z]=(0,e.useState)({}),A=(0,e.useMemo)(()=>new Set(h),[h]),B=(0,e.useMemo)(()=>{let a=m.trim().toLowerCase();return i.filter(b=>("authless"!==o||!b.oauth)&&("oauth"!==o||!!b.oauth)&&(!a||(b.title||"").toLowerCase().includes(a)||(b.description||"").toLowerCase().includes(a)||(b.name||"").toLowerCase().includes(a)))},[i,m,o]),C=async a=>{if(!u[a.url]){x(b=>({...b,[a.url]:!0}));try{let b=await fetch("/api/cli-tools/cowork-mcp-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url})}),c=await b.json(),d=c.tools||[],e=Array.isArray(a.toolNames)?a.toolNames:[],f=d.length>0?d.map(a=>a.name):e;v(b=>({...b,[a.url]:{tools:d,requiresAuth:!!c.requiresAuth,error:c.error}})),z(b=>({...b,[a.url]:Object.fromEntries(f.map(a=>[a,!0]))}))}catch(b){v(c=>({...c,[a.url]:{tools:[],error:b.message}}))}finally{x(b=>({...b,[a.url]:!1}))}}},D=(a,b)=>{let c=y[a]||{};z(d=>({...d,[a]:Object.fromEntries(Object.keys(c).map(a=>[a,b]))}))};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:"Browse MCP Marketplace",size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"Search by name or description...",className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"all",children:"All"}),(0,d.jsx)("option",{value:"authless",children:"Authless"}),(0,d.jsx)("option",{value:"oauth",children:"OAuth"})]})]}),q&&(0,d.jsx)("div",{className:"px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:q}),k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-xs py-4 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Loading registry..."})]}),!k&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 max-h-[60vh] overflow-y-auto",children:[0===B.length&&(0,d.jsx)("div",{className:"text-center text-xs text-text-muted py-6",children:"No servers match filter"}),B.map(a=>{let b=A.has(a.slug||a.name),e=s===a.url,f=u[a.url],g=w[a.url],h=y[a.url]||{},i=Object.keys(h),j=Object.values(h).filter(Boolean).length;return(0,d.jsxs)("div",{className:"rounded border border-transparent hover:border-border",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5",children:[a.iconUrl?(0,d.jsx)("img",{src:a.iconUrl,alt:"",className:"size-7 rounded shrink-0 object-contain",onError:a=>{a.target.style.display="none"},loading:"lazy",decoding:"async"}):(0,d.jsx)("div",{className:"size-7 rounded bg-surface shrink-0"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-xs",children:a.title}),a.oauth?(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-amber-500/10 text-amber-600",children:"OAuth"}):(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-green-500/10 text-green-600",children:"Authless"}),a.toolCount>0&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[a.toolCount," tools"]})]}),a.description&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted line-clamp-2 mt-0.5",children:a.description})]}),(0,d.jsx)("button",{onClick:()=>b?null:void(s===a.url?t(null):(t(a.url),C(a))),disabled:b,className:`shrink-0 px-2 py-1 rounded text-[10px] font-medium transition-colors ${b?"bg-green-500/10 text-green-600 cursor-default":e?"bg-surface border border-border text-text-muted hover:bg-black/5":"bg-primary/10 border border-primary/40 text-primary hover:bg-primary/20"}`,children:b?"Added":e?"Cancel":"+ Add"})]}),e&&(0,d.jsxs)("div",{className:"px-3 py-2 bg-surface/40 border-t border-border flex flex-col gap-2",children:[g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-[10px] py-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Probing server for tools..."})]}),!g&&f?.requiresAuth&&(0,d.jsx)("p",{className:"text-[10px] text-amber-600 bg-amber-500/10 px-2 py-1 rounded",children:"\uD83D\uDD10 OAuth required. Add now and authenticate after Apply; tool list will be discovered after first connect."}),!g&&f?.error&&!f?.requiresAuth&&(0,d.jsxs)("p",{className:"text-[10px] text-red-600 bg-red-500/10 px-2 py-1 rounded",children:["Probe failed: ",f.error]}),!g&&0===i.length&&!f?.requiresAuth&&!f?.error&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted",children:"No tools advertised by server."}),!g&&i.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[j,"/",i.length," tools enabled"]}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>D(a.url,!0),className:"text-[10px] text-primary hover:underline",children:"All"}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"\xb7"}),(0,d.jsx)("button",{onClick:()=>D(a.url,!1),className:"text-[10px] text-primary hover:underline",children:"None"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1 max-h-40 overflow-y-auto",children:i.map(b=>(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 px-1 rounded",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!h[b],onChange:()=>{var c;return c=a.url,void z(a=>({...a,[c]:{...a[c],[b]:!a[c]?.[b]}}))},className:"size-3"}),(0,d.jsx)("span",{className:"truncate",children:b})]},b))})]}),(0,d.jsx)("button",{onClick:()=>{let b,d;return d=Object.keys(b=y[a.url]||{}).filter(a=>b[a]),void(c?.({name:a.slug||a.name,title:a.title,description:a.description,url:a.url,transport:a.transport,oauth:a.oauth,toolNames:d}),t(null))},className:"self-end px-2 py-1 rounded text-[10px] font-medium bg-primary text-white hover:bg-primary/90",children:"✓ Confirm Add"})]})]},a.url)})]}),(0,d.jsxs)("div",{className:"text-[10px] text-text-muted text-right",children:[B.length," of ",i.length," servers"]})]})})}},24622:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(99258);let j=[{id:"cn",flag:"\uD83C\uDDE8\uD83C\uDDF3",name:"China (Mainland)",host:"mimo-server-cn"},{id:"sgp",flag:"\uD83C\uDDF8\uD83C\uDDEC",name:"Singapore",host:"mimo-server-sgp"},{id:"ams",flag:"\uD83C\uDDEA\uD83C\uDDFA",name:"Europe \xb7 Amsterdam",host:"mimo-server-ams"},{id:"ru",flag:"\uD83C\uDDF7\uD83C\uDDFA",name:"Russia",host:"mimo-server-ru"},{id:"in",flag:"\uD83C\uDDEE\uD83C\uDDF3",name:"India",host:"mimo-server-in"}];function k({isOpen:a,onSuccess:b,onClose:c}){let[f,g]=(0,e.useState)("detecting"),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)("cn"),D=(0,e.useRef)(null),E=()=>{D.current&&(clearInterval(D.current),D.current=null),w(!1)},F=async()=>{if(l?.apiKey){g("importing"),q(null);try{let a=await fetch("/api/oauth/xiaomi-mimo/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:l.apiKey,uid:l.uid,baseUrl:l.baseUrl,mimoPassToken:l.mimoPassToken||null,mimoUserId:l.mimoUserId||null,mimoCUserId:l.mimoCUserId||null})}),d=await a.json();if(!a.ok||!d.success)throw Error(d.error||"Import failed");b?.(d.connection),c()}catch(a){g("found"),q(a.message)}}},G=async a=>{u(!0),y(null),s(!1),C(a);try{let d=await fetch("/api/oauth/xiaomi-mimo/login/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({region:a})}),e=await d.json();if(!d.ok||!e.pageUrl)throw Error(e.error||"Failed to start login");A(e.pageUrl),window.open(e.pageUrl,"mimo-session-login","width=500,height=760"),w(!0);let f=Date.now();D.current=setInterval(async()=>{if(Date.now()-f>84e4){E(),y("Login timed out. Please retry.");return}try{let a=await fetch(`/api/oauth/xiaomi-mimo/login/status?state=${e.state}`),d=await a.json();if("pending"===d.status)return;if(E(),"done"!==d.status)return void y(d.error||"Login session expired — please retry.");let f=await fetch("/api/oauth/xiaomi-mimo/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:"",uid:d.userId||null,mimoPassToken:d.passToken,mimoUserId:d.userId||null,mimoCUserId:d.cUserId||null,region:d.region||B})}),g=await f.json();if(!f.ok||!g.success)throw Error(g.error||"Failed to save credentials");b?.(g.connection),c()}catch(a){E(),y(a.message)}},2500)}catch(a){y(a.message)}finally{u(!1)}},H=()=>(0,d.jsxs)("div",{className:"bg-card p-3 rounded-lg border border-border flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-base",children:"login"}),(0,d.jsx)("span",{className:"text-xs sm:text-sm font-semibold",children:"Browser Login"}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted",children:"No Desktop required"})]}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted",children:"Weekly quota"})]}),v?(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)(h.$n,{variant:"outline",size:"sm",fullWidth:!0,disabled:!0,children:"Waiting for login..."}),z&&(0,d.jsx)(h.$n,{onClick:()=>window.open(z,"mimo-session-login","width=500,height=760"),variant:"ghost",size:"sm",fullWidth:!0,children:"Reopen login window"})]}):(0,d.jsx)(h.$n,{onClick:()=>s(!0),variant:"outline",size:"sm",fullWidth:!0,disabled:t,children:t?"Starting...":"Choose cluster & sign in"}),x&&(0,d.jsx)("p",{className:"text-[11px] text-red-500",children:(0,i.Tl)(x)})]});return(0,d.jsx)(h.aF,{isOpen:a,title:(0,i.Tl)("Connect Xiaomi MiMo"),onClose:c,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3.5",children:["detecting"===f&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-12 mx-auto mb-3 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Reading local MiMo Desktop credentials..."})]}),"importing"===f&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-12 mx-auto mb-3 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("p",{className:"text-sm font-medium",children:"Connecting..."})]}),"found"===f&&l&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold text-text-muted px-0.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-sm",children:"desktop_windows"}),(0,d.jsx)("span",{children:"Desktop Plan \xb7 Local credentials"})]}),n?(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2.5 items-start",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400 text-lg mt-0.5",children:"check_circle"}),(0,d.jsxs)("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[(0,d.jsx)("p",{className:"font-medium",children:"This account is already connected (no need to import again)"}),(0,d.jsxs)("p",{className:"text-xs mt-0.5 opacity-80",children:["UID: ",l.uid||"—"," \xb7 Status: ","active"===n.testStatus?"Active":"Untested"]})]})]})}):(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,d.jsxs)("div",{className:"flex gap-2.5 items-start",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400 text-lg mt-0.5",children:"check_circle"}),(0,d.jsxs)("div",{className:"text-sm text-green-800 dark:text-green-200",children:[(0,d.jsx)("p",{className:"font-medium",children:"Xiaomi MiMo Desktop credentials found!"}),(0,d.jsxs)("p",{className:"text-xs mt-0.5 opacity-80",children:["UID: ",l.uid||"—"," \xb7 Source: ",l.source?.split(/[\\/]/).pop()]})]})]})}),p&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-2.5 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",children:(0,i.Tl)(p)})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:F,variant:n?"outline":"default",fullWidth:!0,children:n?"Re-sync local credentials":"Connect with local credentials"}),(0,d.jsx)(h.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:n?"Close":"Cancel"})]}),(0,d.jsxs)("div",{className:"relative my-1",children:[(0,d.jsx)("div",{className:"absolute inset-0 flex items-center",children:(0,d.jsx)("div",{className:"w-full border-t border-border"})}),(0,d.jsx)("div",{className:"relative flex justify-center text-xs text-text-muted",children:(0,d.jsx)("span",{className:"bg-card px-2",children:"or"})})]}),H()]}),"not-found"===f&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,d.jsxs)("div",{className:"flex gap-2.5 items-start",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400 text-lg mt-0.5",children:"info"}),(0,d.jsxs)("div",{className:"text-sm text-amber-800 dark:text-amber-200",children:[(0,d.jsx)("p",{className:"font-medium",children:"No local Desktop credentials found"}),(0,d.jsx)("p",{className:"text-xs mt-0.5 opacity-80",children:"You can still sign in via browser — no Desktop client needed."})]})]})}),H(),(0,d.jsx)("div",{className:"mt-1",children:(0,d.jsx)(h.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:"Cancel"})})]}),r&&(0,d.jsx)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4 bg-black/60 backdrop-blur-xs animate-in fade-in duration-150",children:(0,d.jsxs)("div",{className:"relative w-full max-w-sm bg-surface border border-border-subtle rounded-[14px] shadow-2xl p-5 flex flex-col gap-3.5 animate-in zoom-in-95 duration-150",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-lg",children:"public"}),(0,d.jsx)("h3",{className:"text-sm font-semibold",children:"Select account cluster"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>s(!1),className:"text-text-muted hover:text-text-primary p-1 rounded-md transition-colors cursor-pointer",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Choose the region cluster of your Xiaomi account:"}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:j.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>G(a.id),className:"p-3 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-all text-left flex items-start gap-3 group cursor-pointer",children:[(0,d.jsx)("span",{className:"text-2xl mt-0.5",children:a.flag}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"text-sm font-semibold group-hover:text-primary transition-colors",children:a.name}),(0,d.jsx)("div",{className:"text-xs text-text-muted mt-0.5",children:a.host})]})]},a.id))}),(0,d.jsx)(h.$n,{onClick:()=>s(!1),variant:"ghost",size:"sm",fullWidth:!0,children:"Cancel"})]})})]})})}k.propTypes={isOpen:g().bool.isRequired,onSuccess:g().func,onClose:g().func.isRequired}},24656:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(50377);function j({isOpen:a,providerInfo:b,onSuccess:c,onClose:f}){let[g,k]=(0,e.useState)("booting"),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(!1),v=(0,e.useRef)(null),w=(0,e.useRef)({proxyStarted:!1,stopSent:!1});(0,e.useRef)(!1);let x=(0,e.useRef)(!1),y=(0,e.useRef)(a),z=(0,e.useRef)(c),A=(0,e.useRef)(f),{copied:B,copy:C}=(0,i.C)(),D=(0,e.useCallback)(()=>{let a=w.current;a.proxyStarted&&!a.stopSent&&(a.stopSent=!0,fetch("/api/oauth/zed/stop-proxy").catch(()=>{}))},[]),E=(0,e.useCallback)(()=>{k("success"),z.current?.(),setTimeout(()=>A.current?.(),600)},[]),F=(0,e.useCallback)(async a=>{if(a?.accessToken&&a?.userId){u(!0),s(null),k("importing");try{let b=await fetch("/api/oauth/zed/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a.accessToken,userId:a.userId,...a.systemId?{systemId:a.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Import failed");D(),E()}catch(a){s(a.message),k("ide-found")}finally{u(!1)}}},[E,D]);(0,e.useCallback)(async()=>{s(null),o(null),q(""),w.current={proxyStarted:!1,stopSent:!1},x.current=!1;try{let a=await fetch("/api/oauth/zed/start-proxy"),b=await a.json();if(!a.ok||!b.success||!b.callbackUrl)throw Error(b.reason||b.error||"Failed to start Zed callback server");if(w.current.proxyStarted=!0,w.current.stopSent=!1,!y.current)return void D();let c=new URL("/api/oauth/zed/authorize",window.location.origin);c.searchParams.set("redirect_uri",b.callbackUrl);let d=await fetch(c),e=await d.json();if(!d.ok)throw D(),Error(e.error||"Failed to start Zed authorization");if(!y.current)return void D();let f={state:e.state};e.codeVerifier&&(f.codeVerifier=e.codeVerifier),e.systemId&&(f.systemId=e.systemId);let g=await fetch("/api/oauth/zed/register-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),h=null;try{h=await g.json()}catch{h=null}if(!g.ok||h?.success===!1)throw D(),Error(h?.error||"Failed to register Zed login session");if(!y.current)return;o(e),k(a=>"ide-found"===a||"importing"===a?a:"browser"),v.current=window.open(e.authUrl,"oauth_popup_zed","width=600,height=700")}catch(a){if(!y.current)return;s(a.message),k(a=>"ide-found"===a?a:"browser")}},[D]);let G=async()=>{let a=p.trim();if(a){u(!0),s(null);try{let b=await fetch("/api/oauth/zed/exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:n?.state,...n?.redirectUri?{redirectUri:n.redirectUri}:{},...n?.codeVerifier?{codeVerifier:n.codeVerifier}:{},...n?.systemId?{systemId:n.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Exchange failed");x.current=!0,D(),E()}catch(a){s(a.message),k("error")}finally{u(!1)}}},H=()=>{x.current=!0,D(),f()},I=`Connect ${b?.name||"Zed"}`;return(0,d.jsx)(h.aF,{isOpen:a,title:I,onClose:H,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[("booting"===g||"importing"===g)&&(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{className:"text-sm",children:"importing"===g?"Importing session from Zed IDE…":"Detecting Zed IDE session…"})]}),"ide-found"===g&&l&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,d.jsxs)("p",{className:"text-sm text-green-800 dark:text-green-200",children:["Zed IDE session detected (user ",l.userId,"). Import failed — retry or use browser sign-in below."]})]})}),(0,d.jsx)(h.$n,{onClick:()=>F(l),fullWidth:!0,disabled:t,children:t?"Importing…":"Import from Zed IDE"})]}),"success"===g&&(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800 text-sm text-green-800 dark:text-green-200",children:"Connected successfully."}),("browser"===g||"error"===g||"ide-found"===g)&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{className:"text-sm",children:"Waiting for popup authorization…"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,d.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,d.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:n?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"auth_url"===B?"check":"content_copy",onClick:()=>C(n?.authUrl,"auth_url"),disabled:!n?.authUrl,children:"Copy"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser (or the local callback page)."}),(0,d.jsx)(h.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"http://127.0.0.1:.../?user_id=...&access_token=...",className:"font-mono text-xs"})]})]}),r&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:r})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:G,fullWidth:!0,disabled:t||!p.trim()||!n,children:t?"Connecting…":"Connect"}),(0,d.jsx)(h.$n,{onClick:H,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}j.propTypes={isOpen:g().bool.isRequired,providerInfo:g().object,onSuccess:g().func,onClose:g().func.isRequired}},25144:(a,b,c)=>{c.d(b,{Q5:()=>function a(b,c=null,d=null,e=0){if(!b?.length||e>6)return null;let f=b.map(b=>{let f="string"==typeof b?b.trim():String(b?.model||b?.id||"").trim();if(!f)return null;if(!f.includes("/")&&c?.[f])return a(c[f],c,d,e+1)??d?.(f)??y(null,f);let g=f.indexOf("/"),h=y(-1===g?null:f.slice(0,g),-1===g?f:f.slice(g+1)),i=d?.(f);return i?{...h,...i}:h}).filter(Boolean);if(!f.length)return null;let g=f[0];return{vision:f.some(a=>a.vision),pdf:f.some(a=>a.pdf),audioInput:f.some(a=>a.audioInput),videoInput:f.some(a=>a.videoInput),imageOutput:f.some(a=>a.imageOutput),audioOutput:f.some(a=>a.audioOutput),search:f.some(a=>a.search),tools:f.every(a=>a.tools),reasoning:g.reasoning,thinkingFormat:g.thinkingFormat,thinkingCanDisable:g.thinkingCanDisable,thinkingRange:g.thinkingRange,contextWindow:Math.min(...f.map(a=>a.contextWindow)),maxOutput:Math.max(...f.map(a=>a.maxOutput))}},nl:()=>y});var d=c(80212);let e="[-_/:.]",f=RegExp(`(^|${e})(image|img)(${e}|$)|stable-image|gen[0-9]_image|nanobanana|imagine|t2v|i2v|flux|dall|sdxl|diffusion|embed|rerank|guard|moderation|tts|stt|whisper|voice|speech|audio`,"i"),g=RegExp(`(^|${e})(vision|vl|vlm|multimodal|omni|visual)(${e}|$)|[0-9]\\.[0-9]+v(${e}|$)|(^|${e})glm-[0-9]+v(${e}|$)|(^|[-_/:.])(llava|pixtral|internvl|cogvlm|minicpm-v|moondream|idefics|fuyu)`,"i"),h={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingLevels:null,thinkingCanDisable:!0,thinkingRange:null,thinkingEffortSupported:!1,contextWindow:2e5,maxOutput:64e3},i={"claude-fable-5-1":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-thinking-agentic":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"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-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-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"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-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:131072},"glm-4.6v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3,maxOutput:32768},"glm-4.5v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:64e3,maxOutput:16384},"glm-5.2":{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3,maxOutput:64e3},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"x-preview-f-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:1e6,maxOutput:131072},"big-pickle":{reasoning:!0,thinkingFormat:"opencode",contextWindow:2e5,maxOutput:32e3},"muse-spark-1.2":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:1048576,maxOutput:131072},"muse-spark-1.2-contributor-free":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:1048576,maxOutput:131072},"mimo-v2.5-free":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"opencode",contextWindow:2e5,maxOutput:32e3},"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},"muse-spark-1.2-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"union-alpha":{vision:!0,contextWindow:262144,maxOutput:131072}},j={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:272e3,maxOutput:128e3},k=["minimal","low","medium","high","xhigh","max","ultra"],l={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,thinkingLevels:k,contextWindow:372e3,maxOutput:128e3},m={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,thinkingLevels:k,contextWindow:272e3,maxOutput:128e3},n={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",thinkingCanDisable:!1,thinkingLevels:["minimal","low","medium","high","xhigh","max"],contextWindow:272e3,maxOutput:128e3},o={...n,contextWindow:872e3},p={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},q={reasoning:!0,thinkingFormat:"qoder",thinkingCanDisable:!0,maxOutput:64e3},r={...q,vision:!0},s={auto:r,qmodel_preview:r,qmodel_latest:r,qmodel:r,q36fmodel:r,dmodel:r,dfmodel:{...r,reasoning:!1},gm51model:r,kmodel:r,mmodel:{reasoning:!1,vision:!1,thinkingFormat:"openai",thinkingCanDisable:!0,maxOutput:64e3},gmodel:r,gfmodel:r,kmodel_latest:r,qfmodel:r,qmodel_38max:r,ultimate:q,performance:q,efficient:q,lite:q},t={qoder:s,"qoderwork-cn":s,deepseek:{"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},nvidia:{"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-flash-0731":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},codex:{"gpt-6-astra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6.1-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:872e3,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-astra[1m]":o,"gpt-6-sol[1m]":o,"gpt-6-luna[1m]":o,"gpt-5.6-sol[1m]":o,"gpt-5.6-terra[1m]":o,"gpt-5.6-luna[1m]":o,"gpt-5.6-sol":l,"gpt-5.6-sol-review":l,"gpt-5.6-terra":m,"gpt-5.6-terra-review":m,"gpt-5.6-luna":n,"gpt-5.6-luna-review":n},kiro:{"gpt-5.6-sol":j,"gpt-5.6-terra":j,"gpt-5.6-luna":j,"gpt-5.6-sol-thinking":j,"gpt-5.6-terra-thinking":j,"gpt-5.6-luna-thinking":j,"gpt-5.6-sol-agentic":j,"gpt-5.6-terra-agentic":j,"gpt-5.6-luna-agentic":j,"gpt-5.6-sol-thinking-agentic":j,"gpt-5.6-terra-thinking-agentic":j,"gpt-5.6-luna-thinking-agentic":j},"devin-cli":{"gpt-5.4-high":p,"gpt-5.4-medium":p,"gpt-5.4-low":p,"gpt-5.5-xhigh":p,"gpt-5.5-high":p,"gpt-5.5-medium":p,"gpt-5.5-low":p},"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},"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-flash":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:48e3},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:32e3},"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:!0,contextWindow:1e6,maxOutput:5e4},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:128e3}},"codebuddy-intl":{"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:128e3}},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}},nous:{"nousresearch/hermes-4-70b":{tools:!1,reasoning:!0,thinkingFormat:"nous",contextWindow:131072,maxOutput:32e3},"nousresearch/hermes-4-405b":{tools:!1,reasoning:!0,thinkingFormat:"nous",contextWindow:131072,maxOutput:32e3}},meta:{"muse-spark-1.2-contributor":{reasoning:!0,thinkingFormat:"meta",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:64e3},"muse-spark-1.2":{reasoning:!0,thinkingFormat:"meta",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:64e3},"muse-spark-1.1":{reasoning:!0,thinkingFormat:"meta",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:64e3}},ollama:{"deepseek-v4.1-flash:cloud":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}}};t["qoder-cn"]=t.qoder,t.cx=t.codex,t.dv=t["devin-cli"],t.devin=t["devin-cli"],t.ds=t.deepseek;let u=[{pattern:"*qoder*",caps:q},{pattern:"*claude*opus-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-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-adaptive",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-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.8*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.7*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{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-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{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.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,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:"*solar-pro*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*longcat*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{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.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{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:"*qwen3.8-2.4t*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen3.8*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*max*",caps:{vision:!0,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:"*qwen3.8*",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:"*longcat-2.5*",caps:{reasoning:!0,contextWindow:65e4}},{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.3-flash*",caps:{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{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*vision*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:384e3}},{pattern:"*deepseek-v4.1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,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:1e6,maxOutput:131072}},{pattern:"*minimax-m2.7*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax-m2.5*",caps:{vision:!0,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.6*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,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:"*muse-spark*",caps:{vision:!0,videoInput:!0,audioInput:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{pattern:"*muse*spark*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{pattern:"*muse-glimmer*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*muse*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"step",contextWindow:262144,maxOutput:65536}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}],v=["vision","pdf","audioInput","videoInput"];function w(a,b,c){let d={...h,...a},e="u"<typeof globalThis?null:globalThis.__9rCatalogSource||null;if(e){let a=e.getModalities(b,c);if(a)for(let b of v)!0===a[b]&&(d[b]=!0);let f=e.getLimits(b,c);f&&(f.contextWindow>0&&(d.contextWindow=f.contextWindow),f.maxOutput>0&&(d.maxOutput=f.maxOutput))}return!d.vision&&function(a){if(!a)return!1;let b=String(a).toLowerCase();return!f.test(b)&&g.test(b)}(c)&&(d.vision=!0),d}let x=new Set(["deepseek/deepseek-v4-pro","deepseek/deepseek-v4-flash","deepseek/deepseek-v4-flash-fast","zai-org/glm-5.3","zai-org/glm-5.2","zai-org/glm-5.2-fast","zai-org/glm-5.1","zai-org/glm-5","minimaxai/minimax-m2.7","minimax/minimax-m2.7-free","minimaxai/minimax-m2.5","xiaomi/mimo-v2.5-pro","qwen/qwen3.6-max-preview","qwen/qwen3.7-max","meituan/longcat-2.0:free","stepfun/step-3.5-flash","tencent/hy4-preview","tencent/hy3","tencent/hy3-paid","nvidia/nemotron-3-ultra-550b-a55b","poolside/laguna-s-2.1-free","inclusionai/ling-3.0-flash-free","inclusionai/ling-3.0-flash-sante:free"]);function y(a,b){if(!b)return{...h};let c=b.includes("/")?b.split("/").pop():b;if("commandcode"===a||"cmc"===a){let a=t.commandcode;return a?.[b]?{...h,...a[b]}:a?.[c]?{...h,...a[c]}:{...h,reasoning:!0,thinkingFormat:"commandcode",thinkingEffortSupported:!0,vision:!function(a){let b=String(a||"").toLowerCase();if(x.has(b))return!0;for(let a of x){let c=a.includes("/")?a.slice(a.lastIndexOf("/")+1):a;if(b===c||b.endsWith("/"+c))return!0}return!1}(b),contextWindow:1e6,maxOutput:384e3}}if(a){let d=t[a];if(d?.[b])return{...h,...d[b]};if(d?.[c])return{...h,...d[c]}}if(i[c])return w(i[c],a,b);if(i[b])return w(i[b],a,b);for(let{pattern:e,caps:f}of u)if((0,d.gH)(e,c)||(0,d.gH)(e,b))return w(f,a,b);return w(null,a,b)}},25919:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({src:a,alt:b="Avatar",name:c,size:g="md",className:h}){let i={xs:"size-6 text-xs",sm:"size-8 text-sm",md:"size-10 text-base",lg:"size-12 text-lg",xl:"size-16 text-xl"};return a?(0,d.jsx)("div",{className:(0,e.cn)("rounded-full bg-cover bg-center bg-no-repeat","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],h),style:{backgroundImage:`url(${a})`},role:"img","aria-label":b}):(0,d.jsx)("div",{className:(0,e.cn)("rounded-full flex items-center justify-center font-semibold text-white","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],(a=>{if(!a)return"bg-primary";let b=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"],c=a.charCodeAt(0)%b.length;return b[c]})(c),h),role:"img","aria-label":b,children:(a=>{if(!a)return"?";let b=a.split(" ");return b.length>=2?`${b[0][0]}${b[1][0]}`.toUpperCase():a.substring(0,2).toUpperCase()})(c)})}},29225:(a,b,c)=>{c.d(b,{HY:()=>g,Kw:()=>h});let d={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","opencode-zen":"opencode","ollama-search":"ollama"},e=new Set;function f(a){return a&&"string"==typeof a?a.trim().toLowerCase():""}function g(a){let b=function(a){let b=f(a);if(!b||e.has(b))return"";let c=d[b]||b;return e.has(c)?"":c}(a);return b?`/providers/${b}.png`:null}function h(a){let b=f(a);b&&e.add(b);let c=d[b];c&&e.add(c)}},29370:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429);let g=[{icon:"terminal",label:"Terminal",desc:"Full shell access"},{icon:"cast",label:"Desktop",desc:"Screen sharing"},{icon:"folder_open",label:"Files",desc:"Browse & edit files"}],h=[{icon:"qr_code_scanner",text:"Scan QR to connect instantly"},{icon:"wifi_off",text:"No port forwarding needed"},{icon:"devices",text:"Works on any device"}];function i({isOpen:a,onClose:b}){return a?(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:b}),(0,d.jsxs)("div",{className:"relative w-full max-w-sm rounded-[14px] overflow-hidden shadow-[var(--shadow-elev)] fade-in flex flex-col bg-surface border border-border-subtle",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border-subtle",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded-[8px] flex items-center justify-center bg-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-white text-base",children:"terminal"})}),(0,d.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-primary font-mono",children:"9Remote"})]}),(0,d.jsx)("button",{onClick:b,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-base",children:"close"})})]}),(0,d.jsxs)("div",{className:"px-7 py-7 pb-9 flex flex-col gap-6",children:[(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center mt-2",children:[(0,d.jsx)("div",{className:"w-14 h-14 rounded-[14px] flex items-center justify-center mb-1 bg-primary shadow-[var(--shadow-warm)]",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-white text-[30px]",children:"terminal"})}),(0,d.jsx)("h1",{className:"text-lg font-bold text-text-main tracking-tight",children:"9Remote"}),(0,d.jsx)("p",{className:"text-xs text-text-muted leading-5 max-w-[220px]",children:"Access your terminal, desktop & files from anywhere"})]}),(0,d.jsx)("div",{className:"flex gap-2 w-full",children:g.map(({icon:a,label:b,desc:c})=>(0,d.jsxs)("div",{className:"flex-1 flex flex-col items-center gap-1.5 py-4 px-1 rounded-[10px] border border-border-subtle bg-surface-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[22px]",children:a}),(0,d.jsx)("p",{className:"text-xs font-semibold text-text-main",children:b}),(0,d.jsx)("p",{className:"text-[10px] text-text-muted text-center leading-4",children:c})]},b))}),(0,d.jsx)("div",{className:"flex flex-col gap-3 w-full",children:h.map(({icon:a,text:b})=>(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined flex-shrink-0 text-primary text-[16px]",children:a}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:b})]},a))}),(0,d.jsxs)("button",{onClick:()=>window.open("https://9remote.cc","_blank"),className:"w-full py-3 flex items-center justify-center gap-2 text-sm font-semibold text-white rounded-[10px] bg-primary hover:bg-primary-hover shadow-[var(--shadow-warm)] active:scale-[0.98] transition-all",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base",children:"open_in_new"}),"Get 9Remote"]})]})]})]}),document.body):null}function j(){let[a,b]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{onClick:()=>b(!0),className:"relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-all text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5",title:"9Remote",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"computer"}),(0,d.jsx)("span",{className:"text-xs font-medium",children:"Remote"})]}),(0,d.jsx)(i,{isOpen:a,onClose:()=>b(!1)})]})}},29476:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(67484),e=c(25144);function f(){let[a,b]=(0,d.useState)(()=>({})),[c,f]=(0,d.useState)(()=>({}));return{getCaps:(0,d.useCallback)(b=>(function(a,b,c){if(!c)return null;if(a[c])return a[c];let d=c.includes("/")?c.slice(c.indexOf("/")+1):c;if(b[d])return b[d];let f=c.includes("/")?c.slice(0,c.indexOf("/")):null,g=(0,e.nl)(f,d);return{vision:g.vision,search:g.search,reasoning:g.reasoning,contextWindow:g.contextWindow,maxOutput:g.maxOutput}})(a,c,b),[a,c])}}},31457:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412);let i="auto",j=[{value:i,label:"Auto-detect (recommended)"},{value:"us-east-1",label:"US East (N. Virginia)"},{value:"eu-central-1",label:"Europe (Frankfurt)"}];function k({isOpen:a,onMethodSelect:b,onClose:c}){let[f,g]=(0,e.useState)(null),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)("us-east-1"),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(i),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(null),H=a=>{g(a),y(null)},I=()=>{g(null),y(null)},J=()=>{g(null),m(""),q(""),s(""),u(""),G(null),E(!1),y(null)},K=async()=>{if(!p.trim())return void y("Please enter a refresh token");A(!0),y(null);try{let a=await fetch("/api/oauth/kiro/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:p.trim(),...F||{}})}),c=await a.json();if(!a.ok)throw Error(c.error||"Import failed");J(),b("import")}catch(a){y(a.message)}finally{A(!1)}},L=async()=>{if(!r.trim())return void y("Please paste CLIProxyAPI auth JSON");A(!0),y(null);try{let a=await fetch("/api/oauth/kiro/import-cli-proxy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({json:r.trim()})}),c=await a.json();if(!a.ok)throw Error(c.error||"CLIProxyAPI import failed");J(),b("import-cli-proxy")}catch(a){y(a.message)}finally{A(!1)}},M=async()=>{if(!t.trim())return void y("Please enter an API key");A(!0),y(null);try{let a=await fetch("/api/oauth/kiro/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:t.trim(),region:v})}),c=await a.json();if(!a.ok)throw Error(c.error||"Import failed");J(),b("api-key")}catch(a){y(a.message)}finally{A(!1)}},N=a=>{b("social",{provider:a})};return(0,d.jsx)(h.aF,{isOpen:a,title:"Connect Kiro",onClose:()=>{J(),c()},size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[!f&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Choose your authentication method:"}),(0,d.jsx)("button",{onClick:()=>b("builder-id"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"shield"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"AWS Builder ID"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Recommended for most users. Free AWS account required."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("idc"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"business"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"AWS IAM Identity Center"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"For enterprise users with custom AWS IAM Identity Center."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("api-key"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"key"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"API Key"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Use a long-lived Kiro/CodeWhisperer API key (headless auth)."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("social-google"),className:"hidden w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"account_circle"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"Google Account"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Login with your Google account (manual callback)."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("social-github"),className:"hidden w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"code"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"GitHub Account"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Login with your GitHub account (manual callback)."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("import"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"file_upload"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"Import Token"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Paste refresh token from Kiro IDE."})]})]})}),(0,d.jsx)("button",{onClick:()=>H("import-cli-proxy"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"data_object"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold mb-1",children:"Import CLIProxyAPI JSON"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Paste external_idp auth JSON from CLIProxyAPI/Kiro Microsoft login."})]})]})})]}),"idc"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["IDC Start URL ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(h.pd,{value:l,onChange:a=>m(a.target.value),placeholder:"https://your-org.awsapps.com/start",className:"font-mono text-sm"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Your organization's AWS IAM Identity Center URL"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium mb-2",children:"AWS Region"}),(0,d.jsx)(h.pd,{value:n,onChange:a=>o(a.target.value),placeholder:"us-east-1",className:"font-mono text-sm"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"AWS region for your Identity Center (default: us-east-1)"})]}),x&&(0,d.jsx)("p",{className:"text-sm text-red-600",children:x}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>{l.trim()?b("idc",{startUrl:l.trim(),region:n}):y("Please enter your IDC start URL")},fullWidth:!0,children:"Continue"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"api-key"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Paste a long-lived Kiro/CodeWhisperer API key. It is validated against AWS and stored directly as a bearer credential (no refresh)."})]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["API Key ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(h.pd,{value:t,onChange:a=>u(a.target.value),placeholder:"Paste your Kiro API key...",className:"font-mono text-sm"})]}),(0,d.jsx)(h.l6,{label:"AWS Region",value:v,onChange:a=>w(a.target.value),options:j}),x&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:x})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:M,fullWidth:!0,disabled:z||!t.trim(),children:z?"Validating...":"Add API Key"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"social-google"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-4 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,d.jsxs)("div",{className:"flex-1 text-sm",children:[(0,d.jsx)("p",{className:"font-medium text-amber-900 dark:text-amber-100 mb-1",children:"Manual Callback Required"}),(0,d.jsx)("p",{className:"text-amber-800 dark:text-amber-200",children:"After login, you'll need to copy the callback URL from your browser and paste it back here."})]})]})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>N("google"),fullWidth:!0,children:"Continue with Google"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"social-github"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-4 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,d.jsxs)("div",{className:"flex-1 text-sm",children:[(0,d.jsx)("p",{className:"font-medium text-amber-900 dark:text-amber-100 mb-1",children:"Manual Callback Required"}),(0,d.jsx)("p",{className:"text-amber-800 dark:text-amber-200",children:"After login, you'll need to copy the callback URL from your browser and paste it back here."})]})]})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>N("github"),fullWidth:!0,children:"Continue with GitHub"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"import"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[B&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Auto-detecting token..."}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Reading from AWS SSO cache"})]}),!B&&(0,d.jsxs)(d.Fragment,{children:[D&&(0,d.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,d.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200",children:"Token auto-detected from Kiro IDE successfully!"})]})}),!D&&!x&&(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Kiro IDE not detected. Please paste your refresh token manually."})]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Refresh Token ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)(h.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"Token will be auto-filled...",className:"font-mono text-sm"})]}),x&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:x})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:K,fullWidth:!0,disabled:z||!p.trim(),children:z?"Importing...":"Import Token"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]})]}),"import-cli-proxy"===f&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,d.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Paste the Kiro CLIProxyAPI auth JSON containing auth_method=external_idp. Only Microsoft login token endpoints are accepted."})]})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["CLIProxyAPI Auth JSON ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)("textarea",{value:r,onChange:a=>s(a.target.value),placeholder:'{"auth_method":"external_idp","access_token":"...","refresh_token":"...","client_id":"...","token_endpoint":"https://login.microsoftonline.com/.../oauth2/v2.0/token","profile_arn":"...","scopes":"..."}',className:"min-h-40 w-full rounded-md border border-border bg-background p-3 font-mono text-sm outline-none focus:border-primary"})]}),x&&(0,d.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,d.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:x})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:L,fullWidth:!0,disabled:z||!r.trim(),children:z?"Importing...":"Import CLIProxyAPI JSON"}),(0,d.jsx)(h.$n,{onClick:I,variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})})}k.propTypes={isOpen:g().bool.isRequired,onMethodSelect:g().func.isRequired,onClose:g().func.isRequired}},32456:(a,b,c)=>{c.d(b,{default:()=>v});var d=c(48249),e=c(67484),f=c(19099),g=c(2116),h=c.n(g),i=c(49885),j=c.n(i),k=c(72738),l=c(3236);c(51126);var m=c(818),n=c(267);function o(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)("en");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>b(!0),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Language","data-i18n-skip":"true",children:(0,d.jsx)("span",{className:"text-lg leading-none",children:m.h[c]||"\uD83C\uDF10"})}),(0,d.jsx)(n.default,{hideTrigger:!0,isOpen:a,onClose:a=>{b(!1),f(a)}})]})}var p=c(53845),q=c(37365),r=c(12020),s=c(92592),t=c(29225),u=c(99258);function v({onMenuClick:a,showMenuButton:b=!0}){let c=(0,f.usePathname)(),[g,i]=(0,e.useState)(""),[j,m]=(0,e.useState)(""),{title:n,description:q,icon:x,breadcrumbs:y}=(0,e.useMemo)(()=>(a=>{if(!a)return{title:"",description:"",breadcrumbs:[]};let b=a.match(/\/media-providers\/([^/]+)\/([^/]+)$/);if(b){let a=b[1],c=b[2],d=s.rj.find(b=>b.id===a),e=s.Q2[c];return{title:e?.name||c,description:"",breadcrumbs:[{label:"Media Providers",href:`/dashboard/media-providers/${a}`},{label:d?.label||a,href:`/dashboard/media-providers/${a}`},{label:e?.name||c,image:(0,t.HY)(c)}]}}let c=a.match(/\/media-providers\/([^/]+)$/);if(c){let a=c[1],b=s.rj.find(b=>b.id===a);return{title:b?.label||a,description:`Manage your ${b?.label||a} providers`,icon:b?.icon||"perm_media",breadcrumbs:[]}}let d=a.match(/\/providers\/([^/]+)$/);if(d){let a=d[1],b=r.zN[a]||r.fg[a];if(b)return{title:b.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:b.name,image:(0,t.HY)(b.id)}]}}return a.includes("/providers")&&!a.includes("/media-providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:a.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:a.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:a.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:a.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:a.includes("/mitm")?{title:"MITM Proxy",description:"Intercept CLI tool traffic and route through EzRouter",icon:"security",breadcrumbs:[]}:a.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"savings",breadcrumbs:[]}:a.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:a.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"lan",breadcrumbs:[]}:a.includes("/skills")?{title:"Agent Skills",description:"Copy a link and paste to your AI to use EzRouter — no install needed",icon:"extension",breadcrumbs:[]}:a.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:a.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:a.includes("/translator")?{title:"Translator",description:"Debug translation flow between formats",icon:"translate",breadcrumbs:[]}:a.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===a?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(c),[c]),z=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(a){console.error("Failed to logout:",a)}};return(0,d.jsxs)("header",{className:"shrink-0 flex items-center justify-between gap-3 px-4 lg:px-8 pt-3 pb-2 border-b border-border-subtle bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,d.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:b&&(0,d.jsx)("button",{onClick:a,className:"text-text-main hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,d.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:y.length>0?(0,d.jsx)("div",{className:"flex items-center gap-2",children:y.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[b>0&&(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),a.href?(0,d.jsx)(h(),{href:a.href,className:"text-text-muted hover:text-primary transition-colors",children:a.label}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.image&&(0,d.jsx)(k.A,{src:a.image,alt:a.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:a.label.slice(0,2).toUpperCase()}),(0,d.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-text-main tracking-tight truncate",children:(0,u.Tl)(a.label)})]})]},`${a.label}-${a.href||"current"}`))}):n?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[x&&(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-xl lg:text-2xl",children:x}),(0,d.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,u.Tl)(n)})]}),q&&(0,d.jsx)("p",{className:"hidden lg:block text-sm text-text-muted truncate",children:(0,u.Tl)(q)})]}):null}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[g&&("OIDC"===j||"SAML"===j)&&(0,d.jsxs)("div",{className:"hidden sm:flex items-center max-w-[220px] px-3 py-1.5 rounded-full border border-border bg-surface/70 text-xs text-text-muted truncate",title:g,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1.5 text-primary",children:"person"}),(0,d.jsx)("span",{className:"truncate",children:g}),(0,d.jsx)("span",{className:"ml-2 shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-primary",children:j})]}),(0,d.jsx)(w,{}),(0,d.jsxs)("a",{href:"https://www.supportkori.com/golamrabbi",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 px-3 h-8 rounded-lg border border-pink-500/30 bg-pink-500/10 text-pink-600 dark:text-pink-400 hover:bg-pink-500/20 transition-colors text-sm font-medium","aria-label":"Donate",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"volunteer_activism"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Donate"})]}),(0,d.jsx)(p.default,{}),(0,d.jsx)(o,{}),(0,d.jsx)(l.default,{onLogout:z})]})]})}function w(){let a=(0,q.C)(a=>a.visible),b=(0,q.C)(a=>a.query),c=(0,q.C)(a=>a.placeholder),e=(0,q.C)(a=>a.setQuery);return a?(0,d.jsxs)("div",{className:"relative w-[160px] sm:w-[220px]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-2 top-1/2 -translate-y-1/2 text-text-muted text-[16px] pointer-events-none",children:"search"}),(0,d.jsx)("input",{type:"text",value:b,onChange:a=>e(a.target.value),placeholder:c,className:"w-full h-8 pl-7 pr-7 rounded-lg border border-border bg-surface/60 text-sm focus:outline-none focus:border-primary/50 transition-colors"}),b&&(0,d.jsx)("button",{type:"button",onClick:()=>e(""),className:"absolute right-1 top-1/2 -translate-y-1/2 text-text-muted hover:text-text-main p-0.5 rounded","aria-label":"Clear search",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]}):null}v.propTypes={onMenuClick:j().func,showMenuButton:j().bool}},32971:(a,b,c)=>{c.d(b,{default:()=>e});var d=c(48249);function e({text:a,children:b,position:c="top",color:f}){let g=f?"":"bg-gray-900";return(0,d.jsxs)("div",{className:"relative inline-flex group/tt",children:[b,(0,d.jsx)("div",{className:`pointer-events-none absolute ${{top:"bottom-full left-1/2 -translate-x-1/2 mb-1.5",bottom:"top-full left-1/2 -translate-x-1/2 mt-1.5",left:"right-full top-1/2 -translate-y-1/2 mr-1.5",right:"left-full top-1/2 -translate-y-1/2 ml-1.5"}[c]} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug ${g} text-white opacity-0 group-hover/tt:opacity-100 transition-opacity duration-150 whitespace-normal`,style:f?{backgroundColor:f}:{},children:a})]})}},37365:(a,b,c)=>{c.d(b,{C:()=>d});let d=(0,c(31417).v)(a=>({query:"",placeholder:"",visible:!1,setQuery:b=>a({query:b}),register:(b="Search...")=>a({visible:!0,placeholder:b,query:""}),unregister:()=>a({visible:!1,placeholder:"",query:""})}))},38930:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(91431),f=c(32971);function g({caps:a,className:b="",colorOverride:c,size:h=16}){if(!a)return null;let i=Object.keys(e.bs).filter(b=>a[b]);return 0===i.length?null:(0,d.jsx)("span",{className:`inline-flex items-center gap-0.5 ${b}`,children:i.map(a=>(0,d.jsx)(f.default,{text:`${e.bs[a].label} — ${e.bs[a].desc}`,children:(0,d.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${c||e.bs[a].color}`,style:{fontSize:`${h}px`},children:e.bs[a].icon})},a))})}},39645:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(67484),f=c(95145),g=c(99070),h=c(50377);function i({isOpen:a,onClose:b,title:c="Manual Configuration",configs:j=[]}){let{copy:k}=(0,h.C)(),[l,m]=(0,e.useState)(null);return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:c,size:"xl",children:(0,d.jsx)("div",{className:"flex flex-col gap-4",children:j.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.filename}),(0,d.jsxs)(g.default,{variant:"ghost",size:"sm",onClick:()=>{var c;return c=a.content,void(k(c,`manualconfig-${b}`),m(b),setTimeout(()=>m(null),2e3))},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:l===b?"check":"content_copy"}),l===b?"Copied!":"Copy"]})]}),(0,d.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:a.content})]},b))})})}},41371:(a,b,c)=>{c.d(b,{i:()=>f});var d=c(31417);let e=0,f=(0,d.v)((a,b)=>({notifications:[],addNotification:c=>{let d=++e,f={id:d,type:c.type||"info",message:c.message,title:c.title||null,duration:c.duration??5e3,dismissible:c.dismissible??!0,createdAt:Date.now()};return a(a=>({notifications:[...a.notifications,f]})),f.duration>0&&setTimeout(()=>b().removeNotification(d),f.duration),d},removeNotification:b=>{a(a=>({notifications:a.notifications.filter(a=>a.id!==b)}))},clearAll:()=>a({notifications:[]}),success:(a,c)=>b().addNotification({type:"success",message:a,title:c}),error:(a,c)=>b().addNotification({type:"error",message:a,title:c,duration:8e3}),warning:(a,c)=>b().addNotification({type:"warning",message:a,title:c}),info:(a,c)=>b().addNotification({type:"info",message:a,title:c})}))},42118:(a,b,c)=>{c.d(b,{D:()=>i});var d=c(67484),e=c(13033);function f(a){return()=>{}}function g(){return!1}function h(){return!1}function i(){let{theme:a,setTheme:b,toggleTheme:c,initTheme:i}=(0,e.A)(),j=(0,d.useSyncExternalStore)(f,g,h);return{theme:a,setTheme:b,toggleTheme:c,isDark:"dark"===a||"system"===a&&j}}},42285:(a,b,c)=>{c.d(b,{default:()=>m});var d=c(48249),e=c(67484),f=c(95145),g=c(99070),h=c(83552),i=c(91099),j=c(38930),k=c(29476),l=c(50377);function m({isOpen:a,combo:b,onClose:c,strategy:n={}}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)("Halo, berikan respon singkat."),[s,t]=(0,e.useState)("fallback"),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(""),{getCaps:y}=(0,k.y)(),{copied:z,copy:A}=(0,l.C)(),B=n.fallbackStrategy||"fallback";if(!b)return null;let C=async()=>{p(!0),x(""),v(null);try{let a=b.id?`/api/combos/${b.id}/test`:"/api/combos/test",c=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b.name,models:b.models,kind:b.kind||"llm",prompt:q.trim()||"Halo, berikan respon singkat.",mode:s})}),d=await c.json();c.ok?v(d):x(d.error||"Failed to execute combo test")}catch(a){console.error("Error testing combo:",a),x("Network or server error during combo test")}finally{p(!1)}},D=u?.steps?.filter(a=>a.fallbackTriggered).length||0;return(0,d.jsx)(f.default,{isOpen:a,onClose:c,title:`Test Combo: ${b.name}`,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"rounded-lg border border-border-subtle bg-surface-2 p-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 mb-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-lg",children:"layers"}),(0,d.jsx)("code",{className:"font-mono text-sm font-semibold text-text-main",children:b.name}),(0,d.jsxs)("span",{className:"rounded bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary capitalize",children:["Strategy: ",B]})]}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[b.models?.length||0," model(s) in fallback sequence"]})]}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 overflow-x-auto py-1 custom-scrollbar text-xs",children:b.models?.map((a,c)=>(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1 rounded bg-surface border border-border-subtle px-2 py-1 font-mono text-[11px] text-text-main shadow-xs",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted font-bold",children:["#",c+1]}),(0,d.jsx)("span",{className:"truncate max-w-[140px]",children:a}),(0,d.jsx)(j.default,{caps:y?.(a)})]}),c<b.models.length-1&&(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"})]},c))})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 items-end",children:[(0,d.jsx)("div",{className:"sm:col-span-2",children:(0,d.jsx)(h.default,{label:"Test Prompt",value:q,onChange:a=>r(a.target.value),placeholder:"Enter test prompt...",disabled:o})}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{className:"text-xs font-medium text-text-muted",children:"Execution Mode"}),(0,d.jsx)(i.default,{options:[{value:"fallback",label:"Fallback Mode (Real Request)"},{value:"all",label:"Full Diagnostic (All Models)"}],value:s,onChange:t,disabled:o})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-1",children:[(0,d.jsx)("p",{className:"text-[11px] text-text-muted",children:"fallback"===s?"Evaluates models in order until one succeeds (simulates real client hit).":"Tests every model in order to verify individual model availability."}),(0,d.jsx)(g.default,{onClick:C,loading:o,disabled:o||!b.models?.length,icon:"play_arrow",size:"sm",children:o?"Running Combo Test...":"Run Test"})]}),w&&(0,d.jsxs)("div",{className:"rounded-lg bg-red-500/10 border border-red-500/20 p-3 text-xs text-red-500 flex items-start gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-lg shrink-0",children:"error"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-semibold mb-0.5",children:"Test Error"}),(0,d.jsx)("p",{children:w})]})]}),o&&(0,d.jsxs)("div",{className:"py-8 flex flex-col items-center justify-center gap-3 border border-dashed border-border-subtle rounded-lg bg-surface-2/50",children:[(0,d.jsx)("div",{className:"size-8 rounded-full border-2 border-primary border-t-transparent animate-spin"}),(0,d.jsx)("p",{className:"text-xs font-medium text-text-main animate-pulse",children:"Testing hit to combo models based on sequence..."}),(0,d.jsx)("p",{className:"text-[11px] text-text-muted",children:"Simulating fallbacks if upstream models return errors."})]}),u&&!o&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("div",{className:`rounded-lg p-3.5 border ${"success"===u.comboStatus?"bg-emerald-500/10 border-emerald-500/30 text-emerald-600 dark:text-emerald-400":"bg-red-500/10 border-red-500/30 text-red-600 dark:text-red-400"}`,children:(0,d.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl",children:"success"===u.comboStatus?"check_circle":"cancel"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"text-sm font-semibold leading-snug",children:"success"===u.comboStatus?"Combo Test Succeeded":"Combo Test Failed"}),(0,d.jsx)("p",{className:"text-xs opacity-90",children:"success"===u.comboStatus?`Served by model #${u.servedStepIndex}: ${u.servingModel}`:"All models in combo failed to respond"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 text-xs font-medium",children:[D>0&&(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-amber-500/20 px-2 py-0.5 text-amber-700 dark:text-amber-300",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"swap_calls"}),D," Fallback",D>1?"s":""]}),(0,d.jsxs)("span",{className:"rounded bg-black/10 dark:bg-white/10 px-2 py-0.5",children:["Total: ",u.totalLatencyMs,"ms"]})]})]})}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-xs font-medium text-text-muted",children:["Fallback Execution Sequence (",u.steps?.length||0," steps)"]}),(0,d.jsxs)("button",{onClick:()=>A((()=>{if(!u)return"";let a=`Combo Test: ${u.comboName}
|
|
2
2
|
Status: ${u.comboStatus.toUpperCase()}
|
|
3
3
|
Serving Model: ${u.servingModel||"None"}
|
|
4
4
|
Total Latency: ${u.totalLatencyMs}ms
|