vansrouter 0.9.2 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +12 -12
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- 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/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/media-providers/[kind]/[id]/page.js +1 -1
- 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/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 +2 -2
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/auth/check/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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/cli-tools/all-statuses/route.js +4 -4
- 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 +2 -2
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- 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 +2 -2
- 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/codex-settings/route.js +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 +2 -2
- 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 +2 -2
- 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/deepseek-tui-settings/route.js +2 -2
- 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/droid-settings/route.js +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/hermes-settings/route.js +2 -2
- 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 +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 +2 -2
- 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/openclaw-settings/route.js +2 -2
- 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 +2 -2
- 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/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/route.js.nft.json +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.nft.json +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.nft.json +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.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/keys/[id]/route.js.nft.json +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.nft.json +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/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.nft.json +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 +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.nft.json +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/custom/route.js.nft.json +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/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/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.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.nft.json +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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +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/pricing/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/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]/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/circuit-breakers/[name]/reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/circuit-breakers/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.nft.json +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.nft.json +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.nft.json +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.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.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/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.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/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 +2 -2
- 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.nft.json +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.nft.json +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.nft.json +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 +2 -2
- 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]/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.nft.json +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.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/[id]/route.js.nft.json +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.nft.json +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.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 +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/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 +1 -1
- 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/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/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/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 +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 +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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
- 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 +8 -8
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
- 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 +8 -8
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- 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 +8 -8
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- 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 +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
- 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 +7 -7
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
- 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 +8 -8
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +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 +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- 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 +6 -6
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- 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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- 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/masuk/page.js +1 -1
- package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +12 -12
- package/app/.next-cli-build/server/chunks/1253.js +1 -1
- package/app/.next-cli-build/server/chunks/{2056.js → 2146.js} +1 -1
- package/app/.next-cli-build/server/chunks/2445.js +1 -1
- package/app/.next-cli-build/server/chunks/3736.js +1 -1
- package/app/.next-cli-build/server/chunks/383.js +1 -1
- package/app/.next-cli-build/server/chunks/4418.js +1 -1
- package/app/.next-cli-build/server/chunks/4574.js +5 -4
- package/app/.next-cli-build/server/chunks/5006.js +2 -2
- package/app/.next-cli-build/server/chunks/5577.js +1 -1
- package/app/.next-cli-build/server/chunks/6159.js +1 -1
- package/app/.next-cli-build/server/chunks/6723.js +1 -1
- package/app/.next-cli-build/server/chunks/7164.js +1 -1
- package/app/.next-cli-build/server/chunks/8711.js +1 -1
- package/app/.next-cli-build/server/chunks/9673.js +1 -1
- package/app/.next-cli-build/server/chunks/9984.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- 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/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/2940-1e929ea2e5237751.js +1 -0
- package/app/.next-cli-build/static/chunks/4385-7348e05bdf1cfa9a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-fbb93561483790fe.js → page-02645c9e3a37b707.js} +4 -4
- package/app/.next-cli-build/static/css/{5279f70cd3c74275.css → 57657390ed1d1be8.css} +1 -1
- package/app/package.json +1 -1
- package/app/public/providers/ai21.webp +0 -0
- package/app/public/providers/alibaba.webp +0 -0
- package/app/public/providers/baseten.webp +0 -0
- package/app/public/providers/bytez.webp +0 -0
- package/app/public/providers/clinepass.webp +0 -0
- package/app/public/providers/codestral.webp +0 -0
- package/app/public/providers/databricks.webp +0 -0
- package/app/public/providers/deepinfra.webp +0 -0
- package/app/public/providers/default.webp +0 -0
- package/app/public/providers/featherless.webp +0 -0
- package/app/public/providers/friendliai.webp +0 -0
- package/app/public/providers/galadriel.webp +0 -0
- package/app/public/providers/gitlab.webp +0 -0
- package/app/public/providers/grok-cli.webp +0 -0
- package/app/public/providers/mmf.webp +0 -0
- package/app/public/providers/muse-spark-web.webp +0 -0
- package/app/public/providers/muse.webp +0 -0
- package/app/public/providers/perplexity-agent.webp +0 -0
- package/app/public/providers/publicai.webp +0 -0
- package/app/public/providers/sambanova.webp +0 -0
- package/app/public/providers/snowflake.webp +0 -0
- package/app/public/providers/upstage.webp +0 -0
- package/app/public/providers/venice.webp +0 -0
- package/app/public/providers/vercel-ai-gateway.webp +0 -0
- package/app/public/providers/volcengine.webp +0 -0
- package/app/public/providers/wandb.webp +0 -0
- package/package.json +2 -1
- package/app/.next-cli-build/static/chunks/2940-7bfb9676e41c3baa.js +0 -1
- package/app/.next-cli-build/static/chunks/4385-d76278174392bc6b.js +0 -1
- /package/app/.next-cli-build/static/{DgZGtay5XqIXdPv9nJfvo → lqEAs4FJg1FMV3_ck65PD}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{DgZGtay5XqIXdPv9nJfvo → lqEAs4FJg1FMV3_ck65PD}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2940],{7665:(e,t,s)=>{s.d(t,{A:()=>d,u:()=>c});var r=s(15102),a=s(82030),l=s(83916),n=s(88140),i=s(18419);let o={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"};function d({isOpen:e,onClose:t,title:s,children:n,footer:c,size:x="md",closeOnOverlay:m=!0,showTrafficLights:u=!0,className:p}){let h=o[x]||o.md,b=(0,a.useRef)(t);return((0,a.useEffect)(()=>{b.current=t}),(0,a.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,a.useEffect)(()=>{let t=t=>{"Escape"===t.key&&e&&b.current()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),e)?(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:m?t:void 0,"aria-hidden":"true"}),(0,r.jsxs)("div",{className:(0,l.cn)("relative w-full bg-surface","border border-border-subtle","rounded-[14px] shadow-[var(--shadow-elev)]","fade-in",h,p),children:[(s||u)&&(0,r.jsxs)("div",{className:"flex items-center justify-between p-2 border-b border-border-subtle",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[u&&(0,r.jsxs)("div",{className:"hidden md:flex items-center gap-2 mr-4 ml-2",children:[(0,r.jsx)(i.A,{text:"Close",position:"top",color:"#FF5F56",children:(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",title:"Close",className:"w-4 h-4 rounded-full bg-[#FF5F56] hover:brightness-90 transition-all cursor-pointer flex items-center justify-center group/dot",children:(0,r.jsx)("span",{className:"text-[9px] font-bold text-white opacity-0 group-hover/dot:opacity-100 transition-opacity leading-none",children:"✕"})})}),(0,r.jsx)("div",{className:"w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed"}),(0,r.jsx)("div",{className:"w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed"})]}),s&&(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})]}),(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",className:"md:hidden p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsx)("div",{className:"p-6 max-h-[calc(85vh-100px)] overflow-y-auto custom-scrollbar",children:n}),c&&(0,r.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-border-subtle",children:c})]})]}):null}function c({isOpen:e,onClose:t,onConfirm:s,title:a="Confirm",message:l,confirmText:i="Confirm",cancelText:o="Cancel",variant:x="danger",loading:m=!1}){return(0,r.jsx)(d,{isOpen:e,onClose:t,title:a,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.A,{variant:"ghost",onClick:t,disabled:m,children:o}),(0,r.jsx)(n.A,{variant:x,onClick:s,loading:m,children:i})]}),children:(0,r.jsx)("p",{className:"text-text-muted",children:l})})}},18419:(e,t,s)=>{s.d(t,{A:()=>a});var r=s(15102);function a({text:e,children:t,position:s="top",color:l}){let n=l?"":"bg-gray-900";return(0,r.jsxs)("div",{className:"relative inline-flex group/tt",children:[t,(0,r.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"}[s]} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug ${n} text-white opacity-0 group-hover/tt:opacity-100 transition-opacity duration-150 whitespace-normal`,style:l?{backgroundColor:l}:{},children:e})]})}},21577:(e,t,s)=>{s.d(t,{C:()=>a});var r=s(82030);function a(e=2e3){let[t,s]=(0,r.useState)(null),l=(0,r.useRef)(null);return{copied:t,copy:(0,r.useCallback)((t,r="default")=>{(async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(t);else{let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}})(),s(r),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{s(null)},e)},[e])}}},23812:(e,t,s)=>{s.d(t,{A:()=>n});var r=s(15102),a=s(83916),l=s(88140);function n({currentPage:e,pageSize:t,totalItems:s,onPageChange:i,onPageSizeChange:o,className:d}){let c=Math.ceil(s/t),x=s>0?(e-1)*t+1:0,m=Math.min(e*t,s),u=(()=>{let t=[],s=Math.max(1,e-2),r=Math.min(c,s+5-1);r-s+1<5&&(s=Math.max(1,r-5+1));for(let e=s;e<=r;e++)t.push(e);return t})();return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4 px-2",d),children:[s>0&&(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,r.jsx)("span",{className:"font-medium text-text-main",children:x})," to"," ",(0,r.jsx)("span",{className:"font-medium text-text-main",children:m})," of"," ",(0,r.jsx)("span",{className:"font-medium text-text-main",children:s})," results"]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[o&&(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,r.jsx)("select",{value:t,onChange:e=>o(Number(e.target.value)),className:(0,a.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),style:{colorScheme:"auto"},children:[10,20,50].map(e=>(0,r.jsx)("option",{value:e,children:e},e))})]}),c>1&&(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(l.A,{variant:"outline",size:"sm",onClick:()=>i(e-1),disabled:1===e,className:"w-9 px-0",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),u[0]>1&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.A,{variant:"ghost",size:"sm",onClick:()=>i(1),className:"w-9 px-0 hidden sm:inline-flex",children:"1"}),u[0]>2&&(0,r.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."})]}),u.map(t=>(0,r.jsx)(l.A,{variant:e===t?"primary":"ghost",size:"sm",onClick:()=>i(t),className:(0,a.cn)("w-9 px-0",e===t?"inline-flex":"hidden sm:inline-flex"),children:t},t)),u[u.length-1]<c&&(0,r.jsxs)(r.Fragment,{children:[u[u.length-1]<c-1&&(0,r.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."}),(0,r.jsx)(l.A,{variant:"ghost",size:"sm",onClick:()=>i(c),className:"w-9 px-0 hidden sm:inline-flex",children:c})]}),(0,r.jsx)(l.A,{variant:"outline",size:"sm",onClick:()=>i(e+1),disabled:e===c,className:"w-9 px-0",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}},24260:(e,t,s)=>{s.d(t,{A:()=>n});var r=s(15102),a=s(55223),l=s(18419);function n({caps:e,className:t="",colorOverride:s,size:i=16}){if(!e)return null;let o=Object.keys(a.bs).filter(t=>e[t]);return 0===o.length?null:(0,r.jsx)("span",{className:`inline-flex items-center gap-0.5 ${t}`,children:o.map(e=>(0,r.jsx)(l.A,{text:`${a.bs[e].label} — ${a.bs[e].desc}`,children:(0,r.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${s||a.bs[e].color}`,style:{fontSize:`${i}px`},children:a.bs[e].icon})},e))})}},25795:(e,t,s)=>{s.d(t,{i:()=>l});var r=s(84156);let a=0,l=(0,r.v)((e,t)=>({notifications:[],addNotification:s=>{let r=++a,l={id:r,type:s.type||"info",message:s.message,title:s.title||null,duration:s.duration??5e3,dismissible:s.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,l]})),l.duration>0&&setTimeout(()=>t().removeNotification(r),l.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,s)=>t().addNotification({type:"success",message:e,title:s}),error:(e,s)=>t().addNotification({type:"error",message:e,title:s,duration:8e3}),warning:(e,s)=>t().addNotification({type:"warning",message:e,title:s}),info:(e,s)=>t().addNotification({type:"info",message:e,title:s})}))},31704:(e,t,s)=>{s.d(t,{A:()=>n});var r=s(15102),a=s(82030),l=s(37837);function n({src:e,alt:t,size:s=32,className:i="",fallbackText:o="?",fallbackColor:d}){let[c,x]=(0,a.useState)(!1);return!e||c?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${i}`.trim(),style:{width:s,height:s,color:d,fontSize:Math.max(10,Math.floor(.38*s))},children:o}):(0,r.jsx)(l.default,{src:e,alt:t,width:s,height:s,className:i,onError:()=>x(!0),unoptimized:!0})}},41488:(e,t,s)=>{s.d(t,{A:()=>l});var r=s(15102),a=s(83916);function l({label:e,type:t="text",placeholder:s,value:n,onChange:i,error:o,hint:d,icon:c,disabled:x=!1,required:m=!1,className:u,inputClassName:p,...h}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col gap-1.5",u),children:[e&&(0,r.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[e,m&&(0,r.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,r.jsxs)("div",{className:"relative",children:[c&&(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:c})}),(0,r.jsx)("input",{type:t,placeholder:s,value:n,onChange:i,disabled:x,className:(0,a.cn)("w-full py-2.5 px-3 text-sm text-text-main bg-surface-2 rounded-[10px]","border border-transparent placeholder-text-muted/70","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 ease-out disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",c&&"pl-10",o&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",p),...h})]}),o&&(0,r.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),o]}),d&&!o&&(0,r.jsx)("p",{className:"text-xs text-text-muted",children:d})]})}},44104:(e,t,s)=>{s.d(t,{h:()=>r});let r={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",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"}},47056:(e,t,s)=>{s.d(t,{Ay:()=>c,CardSkeleton:()=>d,EA:()=>o,WL:()=>i,y$:()=>n});var r=s(15102),a=s(83916);let l={sm:"size-4",md:"size-6",lg:"size-8",xl:"size-12"};function n({size:e="md",className:t}){return(0,r.jsx)("span",{className:(0,a.cn)("material-symbols-outlined animate-spin text-brand-500",l[e],t),children:"progress_activity"})}function i({message:e="Loading..."}){return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg",children:[(0,r.jsx)(n,{size:"xl"}),(0,r.jsx)("p",{className:"mt-4 text-text-muted",children:e})]})}function o({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-[10px] bg-surface-2",e),...t})}function d(){return(0,r.jsxs)("div",{className:"p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)(o,{className:"h-4 w-24"}),(0,r.jsx)(o,{className:"size-10 rounded-[10px]"})]}),(0,r.jsx)(o,{className:"h-8 w-16 mb-2"}),(0,r.jsx)(o,{className:"h-3 w-20"})]})}function c({type:e="spinner",...t}){switch(e){case"page":return(0,r.jsx)(i,{...t});case"skeleton":return(0,r.jsx)(o,{...t});case"card":return(0,r.jsx)(d,{...t});default:return(0,r.jsx)(n,{...t})}}},49526:(e,t,s)=>{s.d(t,{D:()=>o});var r=s(82030),a=s(43603);function l(e){let t=window.matchMedia("(prefers-color-scheme: dark)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function n(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function i(){return!1}function o(){let{theme:e,setTheme:t,toggleTheme:s,initTheme:o}=(0,a.A)(),d=(0,r.useSyncExternalStore)(l,n,i);(0,r.useEffect)(()=>{o()},[o]),(0,r.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>o();return t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[e,o]);let c="dark"===e||"system"===e&&d;return{theme:e,setTheme:t,toggleTheme:s,isDark:c}}},52252:(e,t,s)=>{s.d(t,{A:()=>n});var r=s(15102),a=s(83916);let l={sm:{track:"w-8 h-4",thumb:"size-3",translate:"translate-x-4"},md:{track:"w-11 h-6",thumb:"size-5",translate:"translate-x-5"},lg:{track:"w-14 h-7",thumb:"size-6",translate:"translate-x-7"}};function n({checked:e=!1,onChange:t,label:s,description:i,disabled:o=!1,size:d="md",className:c,"aria-label":x,title:m}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex items-center gap-3",o&&"opacity-50 cursor-not-allowed",c),children:[(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":x||s||m||"Toggle",disabled:o,onClick:()=>{!o&&t&&t(!e)},className:(0,a.cn)("relative inline-flex shrink-0 cursor-pointer rounded-full","transition-colors duration-200 ease-in-out","focus:outline-none focus:ring-2 focus:ring-brand-500/30",e?"bg-brand-500":"bg-surface-3",l[d].track,o&&"cursor-not-allowed"),children:(0,r.jsx)("span",{className:(0,a.cn)("pointer-events-none inline-block rounded-full bg-white shadow-sm","transform transition duration-200 ease-in-out",e?l[d].translate:"translate-x-0.5",l[d].thumb,"mt-0.5")})}),(s||i)&&(0,r.jsxs)("div",{className:"flex flex-col",children:[s&&(0,r.jsx)("span",{className:"text-sm font-medium text-text-main",children:s}),i&&(0,r.jsx)("span",{className:"text-xs text-text-muted",children:i})]})]})}},62758:(e,t,s)=>{s.d(t,{A:()=>n});var r=s(15102),a=s(83916);let l={none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"};function n({children:e,title:t,subtitle:s,icon:i,action:o,padding:d="md",hover:c=!1,elev:x=!1,className:m,...u}){return(0,r.jsxs)("div",{className:(0,a.cn)("bg-surface border border-border-subtle",x?"rounded-[14px] shadow-[var(--shadow-elev)]":"rounded-[14px] shadow-[var(--shadow-soft)]",c&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",l[d],m),...u,children:[(t||o)&&(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[i&&(0,r.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:i})}),(0,r.jsxs)("div",{children:[t&&(0,r.jsx)("h3",{className:"text-text-main font-semibold",children:t}),s&&(0,r.jsx)("p",{className:"text-sm text-text-muted",children:s})]})]}),o]}),e]})}n.Section=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",t),...s,children:e})},n.Row=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",t),...s,children:e})},n.ListItem=function({children:e,actions:t,className:s,...l}){return(0,r.jsxs)("div",{className:(0,a.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",s),...l,children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:e}),t&&(0,r.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:t})]})}},71389:(e,t,s)=>{s.d(t,{C:()=>r});let r=(0,s(84156).v)(e=>({query:"",placeholder:"",visible:!1,setQuery:t=>e({query:t}),register:(t="Search...")=>e({visible:!0,placeholder:t,query:""}),unregister:()=>e({visible:!1,placeholder:"",query:""})}))},76860:(e,t,s)=>{s.d(t,{A:()=>n});var r=s(15102),a=s(83916);let l=[];function n({label:e,options:t=l,value:s,onChange:i,placeholder:o="Select an option",error:d,hint:c,disabled:x=!1,required:m=!1,className:u,selectClassName:p,...h}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col gap-1.5",u),children:[e&&(0,r.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[e,m&&(0,r.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("select",{value:s,onChange:i,disabled:x,className:(0,a.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",d&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",p),...h,children:[(0,r.jsx)("option",{value:"",disabled:!0,children:o}),t.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))]}),(0,r.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),d&&(0,r.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),d]}),c&&!d&&(0,r.jsx)("p",{className:"text-xs text-text-muted",children:c})]})}},83916:(e,t,s)=>{s.d(t,{cn:()=>r});function r(...e){return e.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}},88140:(e,t,s)=>{s.d(t,{A:()=>i});var r=s(15102),a=s(83916);let l={primary:"bg-brand-500 hover:bg-brand-600 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted",secondary:"bg-surface-2 hover:bg-surface-3 text-text-main border border-border disabled:opacity-50",outline:"border border-border text-text-main hover:bg-surface-2 hover:border-brand-500/40",ghost:"text-text-muted hover:bg-surface-2 hover:text-text-main",danger:"bg-red-500 hover:bg-red-600 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted",success:"bg-green-600 hover:bg-green-700 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted"},n={sm:"h-7 px-3 text-xs rounded-[8px]",md:"h-9 px-4 text-sm rounded-[10px]",lg:"h-11 px-6 text-sm rounded-[10px]"};function i({children:e,variant:t="primary",size:s="md",icon:o,iconRight:d,disabled:c=!1,loading:x=!1,fullWidth:m=!1,className:u,...p}){return(0,r.jsxs)("button",{type:"button",className:(0,a.cn)("inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer","active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100",l[t],n[s],m&&"w-full",u),disabled:c||x,...p,children:[x?(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}):o?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:o}):null,e,d&&!x&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:d})]})}},92940:(e,t,s)=>{s.r(t),s.d(t,{AddCustomEmbeddingModal:()=>e4,AuthLayout:()=>eW,Avatar:()=>p,Badge:()=>h.A,Button:()=>a.A,CapacityBadges:()=>eq.A,Card:()=>i.A,CardSkeleton:()=>d.CardSkeleton,ChangelogModal:()=>e8,ComboFormModal:()=>eJ,ConfirmModal:()=>o.u,CursorAuthModal:()=>e1,DashboardLayout:()=>eB,EditConnectionModal:()=>e3,Footer:()=>er,GitLabAuthModal:()=>e5,Header:()=>Z,HeaderMenu:()=>K,IFlowCookieModal:()=>e2,Input:()=>l.A,KiroAuthModal:()=>eZ,KiroOAuthWrapper:()=>eX,KiroSocialOAuthModal:()=>e0,LanguageSwitcher:()=>Q.A,Loading:()=>d.Ay,ManualConfigModal:()=>eV,McpMarketplaceModal:()=>eY,Modal:()=>o.A,ModelSelectModal:()=>eH,NineRemoteButton:()=>eF,NoAuthProxyCard:()=>e6,OAuthModal:()=>eG,PageLoading:()=>d.WL,Pagination:()=>y.A,ProviderInfoCard:()=>e9,RequestLogger:()=>eI,SegmentedControl:()=>eD,Select:()=>n.A,Sidebar:()=>O,Skeleton:()=>d.EA,Spinner:()=>d.y$,ThemeProvider:()=>v.ThemeProvider,ThemeToggle:()=>j,Toggle:()=>b.A,Tooltip:()=>eU.A,UsageStats:()=>eR});var r=s(88511),a=s(88140),l=s(41488),n=s(76860),i=s(62758),o=s(7665),d=s(47056),c=s(15102),x=s(37837),m=s(83916);let u={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"};function p({src:e,alt:t="Avatar",name:s,size:r="md",className:a}){return e?(0,c.jsx)("span",{className:(0,m.cn)("relative inline-block rounded-full overflow-hidden","ring-2 ring-white dark:ring-surface-dark shadow-sm",u[r],a),children:(0,c.jsx)(x.default,{src:e,alt:t,fill:!0,sizes:"48px",className:"object-cover",unoptimized:!0})}):(0,c.jsx)("span",{className:(0,m.cn)("rounded-full flex items-center justify-center font-semibold text-white","ring-2 ring-white dark:ring-surface-dark shadow-sm",u[r],function(e){if(!e)return"bg-primary";let t=["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"],s=e.charCodeAt(0)%t.length;return t[s]}(s),a),"aria-label":t,children:function(e){if(!e)return"?";let t=e.split(" ");return t.length>=2?`${t[0][0]}${t[1][0]}`.toUpperCase():e.substring(0,2).toUpperCase()}(s)})}var h=s(97955),b=s(52252),f=s(49526);let g={default:(0,m.cn)("flex items-center justify-center size-10 rounded-full","text-text-muted hover:text-text-main","hover:bg-surface-2 transition-colors"),card:(0,m.cn)("flex items-center justify-center size-11 rounded-full","bg-surface/60 hover:bg-surface","border border-border","backdrop-blur-md shadow-sm hover:shadow-[var(--shadow-warm)]","text-text-muted hover:text-brand-500","transition-all group")};function j({className:e,variant:t="default"}){let{isDark:s,toggleTheme:r}=(0,f.D)();return(0,c.jsx)("button",{type:"button",onClick:r,className:(0,m.cn)(g[t],e),"aria-label":`Switch to ${s?"light":"dark"} mode`,title:`Switch to ${s?"light":"dark"} mode`,children:(0,c.jsx)("span",{className:(0,m.cn)("material-symbols-outlined text-[22px]","card"===t&&"transition-transform duration-300 group-hover:rotate-12"),children:s?"light_mode":"dark_mode"})})}var y=s(23812),v=s(21700),N=s(82030),w=s(93885),k=s.n(w),C=s(93278),S=s(11434),A=s(31038),T=s(21577),E=s(49387);let M=[{icon:"terminal",label:"Terminal",desc:"Full shell access"},{icon:"cast",label:"Desktop",desc:"Screen sharing"},{icon:"folder_open",label:"Files",desc:"Browse & edit files"}],L=[{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 $({isOpen:e,onClose:t}){let s=(0,N.useRef)(t);return((0,N.useEffect)(()=>{s.current=t}),(0,N.useEffect)(()=>{if(!e)return;document.body.style.overflow="hidden";let t=e=>{"Escape"===e.key&&s.current()};return document.addEventListener("keydown",t),()=>{document.body.style.overflow="",document.removeEventListener("keydown",t)}},[e]),e)?(0,E.createPortal)((0,c.jsxs)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4",children:[(0,c.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:t,"aria-hidden":"true"}),(0,c.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,c.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border-subtle",children:[(0,c.jsxs)("div",{className:"flex items-center gap-3",children:[(0,c.jsx)("div",{className:"w-7 h-7 rounded-[8px] flex items-center justify-center bg-primary",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-white text-base",children:"terminal"})}),(0,c.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-primary font-mono",children:"9Remote"})]}),(0,c.jsx)("button",{type:"button",onClick:t,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-base",children:"close"})})]}),(0,c.jsxs)("div",{className:"px-7 py-7 pb-9 flex flex-col gap-6",children:[(0,c.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center mt-2",children:[(0,c.jsx)("div",{className:"w-14 h-14 rounded-[14px] flex items-center justify-center mb-1 bg-primary shadow-[var(--shadow-warm)]",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-white text-[30px]",children:"terminal"})}),(0,c.jsx)("h1",{className:"text-lg font-bold text-text-main tracking-tight",children:"9Remote"}),(0,c.jsx)("p",{className:"text-xs text-text-muted leading-5 max-w-[220px]",children:"Access your terminal, desktop & files from anywhere"})]}),(0,c.jsx)("div",{className:"flex gap-2 w-full",children:M.map(({icon:e,label:t,desc:s})=>(0,c.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,c.jsx)("span",{className:"material-symbols-outlined text-primary text-[22px]",children:e}),(0,c.jsx)("p",{className:"text-xs font-semibold text-text-main",children:t}),(0,c.jsx)("p",{className:"text-[10px] text-text-muted text-center leading-4",children:s})]},t))}),(0,c.jsx)("div",{className:"flex flex-col gap-3 w-full",children:L.map(({icon:e,text:t})=>(0,c.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,c.jsx)("span",{className:"material-symbols-outlined flex-shrink-0 text-primary text-[16px]",children:e}),(0,c.jsx)("span",{className:"text-xs text-text-muted",children:t})]},e))}),(0,c.jsxs)("button",{type:"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,c.jsx)("span",{className:"material-symbols-outlined text-base",children:"open_in_new"}),"Get 9Remote"]})]})]})]}),document.body):null}let P=["embedding","image","tts","stt"],z="/dashboard/media-providers/web",R=[{href:"/dashboard/endpoint",label:"Endpoint & Key",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combos",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/token-saver",label:"Token Saver",icon:"savings"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"}],F=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"},{href:"/dashboard/translator",label:"Translator",icon:"translate"}],I=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/skills",label:"Skills",icon:"extension"}];function O({onClose:e}){let t=(0,C.usePathname)(),[s,r]=(0,N.useState)(!1),[l,n]=(0,N.useState)(!1),[i,d]=(0,N.useState)(!1),[x,u]=(0,N.useState)(null),[p,h]=(0,N.useState)(!1),[b,f]=(0,N.useState)(!1),[g,j]=(0,N.useState)(0),[y,v]=(0,N.useState)(!1),{copied:w,copy:E}=(0,T.C)(2e3),M=S.h0.installCmdLatest;(0,N.useEffect)(()=>{fetch("/api/settings").then(e=>e.json()).then(e=>{e.enableTranslator&&v(!0)}).catch(()=>{})},[]),(0,N.useEffect)(()=>{fetch("/api/version").then(e=>e.json()).then(e=>{e.hasUpdate&&u(e)}).catch(()=>{})},[]);let L=e=>"/dashboard/endpoint"===e?"/dashboard"===t||t.startsWith("/dashboard/endpoint"):t.startsWith(e),D=async()=>{try{await navigator.clipboard.writeText(M)}catch{}E(M);let e=S.h0.shutdownCountdownSec;j(e);let t=setInterval(()=>{j(e-=1),e<=0&&(clearInterval(t),fetch("/api/version/shutdown",{method:"POST"}).catch(()=>{}),d(!0))},1e3)};return(0,c.jsxs)(c.Fragment,{children:[(0,c.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,c.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,c.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,c.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,c.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,c.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,c.jsxs)(k(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,c.jsx)("div",{className:"flex items-center justify-center size-9 rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 shadow-[var(--shadow-warm)]",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,c.jsxs)("div",{className:"flex flex-col",children:[(0,c.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:S.vQ.name}),(0,c.jsxs)("span",{className:"text-xs text-text-muted",children:["v",S.vQ.version]})]})]}),x&&(0,c.jsxs)("div",{className:"flex flex-col gap-1.5 rounded p-1 -m-1",children:[(0,c.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:["↑ New version available: v",x.latestVersion]}),(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("button",{onClick:()=>h(!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:x.canAutoRestart?"Update & Restart":"Update now"}),(0,c.jsx)("button",{onClick:()=>E(x.installCommand||M),title:"Copy install command",className:"flex-1 text-left hover:opacity-80 transition-opacity cursor-pointer min-w-0",children:(0,c.jsx)("code",{className:"block text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono truncate",children:w?"✓ copied!":x.installCommand||M})})]}),(0,c.jsx)("div",{className:"flex items-center mt-0.5",children:(0,c.jsxs)("a",{href:S.Nu.changelogUrl?S.Nu.changelogUrl.replace("raw.githubusercontent.com","github.com").replace("/refs/heads/","/blob/"):"https://github.com/Vanszs/VansRouter/blob/main/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer",className:"text-[10px] text-green-600/80 hover:text-green-700 dark:text-amber-500/80 dark:hover:text-amber-400 hover:underline flex items-center gap-1 cursor-pointer",children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"description"}),"Check new changelog"]})})]})]}),(0,c.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-0.5 overflow-y-auto custom-scrollbar",children:[R.map(t=>(0,c.jsxs)(k(),{href:t.href,onClick:e,className:(0,m.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",L(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:(0,m.cn)("material-symbols-outlined text-[18px]",L(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,c.jsx)("span",{className:"text-[13px] font-medium",children:t.label})]},t.href)),(0,c.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,c.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),(0,c.jsxs)("button",{onClick:()=>r(e=>!e),className:(0,m.cn)("w-full flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",t.startsWith("/dashboard/media-providers")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"perm_media"}),(0,c.jsx)("span",{className:"text-[13px] font-medium flex-1 text-left",children:"Media Providers"}),(0,c.jsx)("span",{className:"material-symbols-outlined text-[14px] transition-transform",style:{transform:s?"rotate(180deg)":"rotate(0deg)"},children:"expand_more"})]}),s&&(0,c.jsxs)("div",{className:"pl-4",children:[A.rj.filter(e=>P.includes(e.id)).map(s=>(0,c.jsxs)(k(),{href:`/dashboard/media-providers/${s.id}`,onClick:e,className:(0,m.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",t.startsWith(`/dashboard/media-providers/${s.id}`)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:s.icon}),(0,c.jsx)("span",{className:"text-sm",children:s.label})]},s.id)),(0,c.jsxs)(k(),{href:z,onClick:e,className:(0,m.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",t.startsWith(z)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"travel_explore"}),(0,c.jsx)("span",{className:"text-sm",children:"Web Fetch & Search"})]},"web")]}),I.map(t=>(0,c.jsxs)(k(),{href:t.href,onClick:e,className:(0,m.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",L(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:(0,m.cn)("material-symbols-outlined text-[18px]",L(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,c.jsx)("span",{className:"text-[13px] font-medium",children:t.label})]},t.href)),F.map(t=>"/dashboard/translator"!==t.href||y?(0,c.jsxs)(k(),{href:t.href,onClick:e,className:(0,m.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",L(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:(0,m.cn)("material-symbols-outlined text-[18px]",L(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,c.jsx)("span",{className:"text-[13px] font-medium",children:t.label})]},t.href):null),(0,c.jsxs)("button",{onClick:()=>n(!0),className:(0,m.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group w-full","text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[18px] group-hover:text-primary transition-colors",children:"computer"}),(0,c.jsx)("span",{className:"text-[13px] font-medium",children:"Remote"})]}),(0,c.jsxs)(k(),{href:"/dashboard/profile",onClick:e,className:(0,m.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",L("/dashboard/profile")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,c.jsx)("span",{className:(0,m.cn)("material-symbols-outlined text-[18px]",L("/dashboard/profile")?"fill-1":"group-hover:text-primary transition-colors"),children:"settings"}),(0,c.jsx)("span",{className:"text-[13px] font-medium",children:"Settings"})]})]})]})]}),(0,c.jsx)($,{isOpen:l,onClose:()=>n(!1)}),(0,c.jsx)(o.u,{isOpen:p,onClose:()=>h(!1),onConfirm:()=>{h(!1),f(!0)},title:"Update VansRouter",message:`Show install command for v${x?.latestVersion||""}? You can copy it and shutdown to install manually.`,confirmText:"Show Command",cancelText:"Cancel",variant:"primary"}),(i||b)&&(0,c.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",children:b?(0,c.jsx)(_,{latestVersion:x?.latestVersion,installCmd:M,copied:w,onCopyAndShutdown:D,onCancel:()=>{f(!1),j(0)},countdown:g,isDisconnected:i}):(0,c.jsxs)("div",{className:"text-center p-8",children:[(0,c.jsx)("div",{className:"flex items-center justify-center size-16 rounded-full bg-red-500/20 text-red-500 mx-auto mb-4",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"power_off"})}),(0,c.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Server Disconnected"}),(0,c.jsx)("p",{className:"text-text-muted mb-6",children:"The proxy server has been stopped."}),(0,c.jsx)(a.A,{variant:"secondary",onClick:()=>globalThis.location.reload(),children:"Reload Page"})]})})]})}function _({latestVersion:e,installCmd:t,copied:s,onCopyAndShutdown:r,onCancel:l,countdown:n,isDisconnected:i}){let o=n>0;return(0,c.jsxs)("div",{className:"w-full max-w-lg rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,c.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,c.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-amber-500/20 text-amber-400",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"content_copy"})}),(0,c.jsxs)("div",{children:[(0,c.jsxs)("h2",{className:"text-lg font-semibold",children:["Update VansRouter",e?` to v${e}`:""]}),(0,c.jsx)("p",{className:"text-xs text-white/60",children:i?"Server stopped. Paste the command into a terminal to install.":o?`Command copied. Server will stop in ${n}s...`:"Click the button below to copy the install command and shutdown."})]})]}),(0,c.jsx)("p",{className:"text-sm text-white/80 mb-2",children:"Install command:"}),(0,c.jsx)("div",{className:"w-full px-3 py-2 rounded bg-white/5 mb-4",children:(0,c.jsx)("code",{className:"text-xs font-mono text-amber-400 break-all",children:t})}),(0,c.jsxs)("ol",{className:"text-xs text-white/70 space-y-1 list-decimal list-inside mb-4",children:[(0,c.jsxs)("li",{children:["Click ",(0,c.jsx)("strong",{children:"Copy & Shutdown"})," below."]}),(0,c.jsx)("li",{children:"Paste the command into your terminal and press Enter."}),(0,c.jsxs)("li",{children:["Run ",(0,c.jsx)("code",{className:"px-1 rounded bg-white/10 text-green-400",children:"vansrouter"})," again after install."]})]}),i?(0,c.jsx)(a.A,{variant:"secondary",fullWidth:!0,onClick:()=>globalThis.location.reload(),children:"Reload Page"}):(0,c.jsxs)("div",{className:"flex gap-2",children:[(0,c.jsx)(a.A,{variant:"secondary",onClick:l,disabled:o,children:"Cancel"}),(0,c.jsx)(a.A,{variant:"primary",fullWidth:!0,onClick:r,disabled:o,children:s?"✓ Copied — shutting down...":o?`Shutting down in ${n}s`:"Copy & Shutdown"})]})]})}var D=s(31704),U=s(97902);function q({icon:e,label:t,onClick:s,trailing:r,danger:a}){return(0,c.jsxs)("button",{type:"button",onClick:s,className:`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${a?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,c.jsx)("span",{className:`material-symbols-outlined text-[20px] ${a?"":"text-text-muted"}`,children:e}),(0,c.jsx)("span",{className:"flex-1 text-left",children:t}),r&&(0,c.jsx)("span",{className:"text-base",children:r})]})}function K({onLogout:e}){let[t,s]=(0,N.useState)(!1),[r,a]=(0,N.useState)(!1),[l,n]=(0,N.useState)(!1),[i,d]=(0,N.useState)(!1),{toggleTheme:x,isDark:m}=(0,f.D)(),u=(0,N.useRef)(null),p=async()=>{d(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(e){}d(!1),n(!1)};return(0,N.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&s(!1)};if(t)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[t]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"relative",ref:u,children:[(0,c.jsx)("button",{type:"button",onClick:()=>s(e=>!e),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,c.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),t&&(0,c.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,c.jsx)(q,{icon:"history",label:"Change Log",onClick:()=>{s(!1),a(!0)}}),(0,c.jsx)(q,{icon:m?"light_mode":"dark_mode",label:"Theme",onClick:()=>{x(),s(!1)}}),(0,c.jsx)(q,{icon:"power_settings_new",label:"Shutdown",danger:!0,onClick:()=>{s(!1),n(!0)}}),(0,c.jsx)(q,{icon:"logout",label:"Logout",danger:!0,onClick:()=>{s(!1),e()}})]})]}),(0,c.jsx)(U.default,{isOpen:r,onClose:()=>a(!1)}),(0,c.jsx)(o.u,{isOpen:l,onClose:()=>n(!1),onConfirm:p,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:i})]})}var B=s(90238),W=s(44104),Q=s(98657);function G(){let[e,t]=(0,N.useState)(!1),s=function(){if("u"<typeof document)return"en";let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${B.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):"en";return(0,B.QC)(t)}();return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("button",{type:"button",onClick:()=>t(!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,c.jsx)("span",{className:"text-lg leading-none",children:W.h[s]||"\uD83C\uDF10"})}),(0,c.jsx)(Q.A,{hideTrigger:!0,isOpen:e,onClose:()=>t(!1)})]})}function H({isOpen:e,onClose:t}){let[s,r]=(0,N.useState)({data:null,loading:!1,error:""}),a=(0,N.useRef)(null),l=(0,N.useRef)(!1);(0,N.useEffect)(()=>{e&&!l.current&&(l.current=!0,Promise.resolve().then(()=>{S.Nu.donateUrl?(r(e=>({...e,loading:!0,error:""})),fetch(S.Nu.donateUrl,{cache:"no-store"}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>r(t=>({...t,data:e,loading:!1}))).catch(e=>r(t=>({...t,error:e.message||"Failed to load",loading:!1})))):r({data:null,loading:!1,error:"Donate is not configured."})}))},[e]);let n=(0,N.useRef)(t);if((0,N.useEffect)(()=>{n.current=t}),(0,N.useEffect)(()=>{let t=e=>{a.current&&!a.current.contains(e.target)&&n.current()};if(e)return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[e]),(0,N.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&n.current()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),!e||"u"<typeof document)return null;let{data:i,loading:o,error:d}=s;return(0,E.createPortal)((0,c.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,c.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:t,"aria-hidden":"true"}),(0,c.jsxs)("div",{ref:a,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,c.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,c.jsxs)("h2",{className:"text-lg font-semibold text-text-main flex items-center gap-2",children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-pink-500",children:"volunteer_activism"}),i?.title||"Support 9Router"]}),(0,c.jsx)("button",{type:"button",onClick:t,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,c.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,c.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",children:[o&&(0,c.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,c.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),"Loading..."]}),d&&(0,c.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load donate info: ",d]}),!o&&!d&&i&&(0,c.jsxs)(c.Fragment,{children:[i.message&&(0,c.jsx)("p",{className:"text-text-muted text-sm mb-6 text-center",children:i.message}),(0,c.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:i.channels?.map(e=>(0,c.jsx)(V,{channel:e},e.id))})]})]})]})]}),document.body)}function V({channel:e}){let{label:t,description:s,icon:r,color:a,url:l,qr:n}=e,i=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("div",{className:"w-12 h-12 rounded-full flex items-center justify-center mb-3",style:{backgroundColor:`${a}20`,color:a},children:(0,c.jsx)("span",{className:"material-symbols-outlined text-[26px]",children:r})}),(0,c.jsx)("div",{className:"font-semibold text-text-main mb-1",children:t}),s&&(0,c.jsx)("div",{className:"text-xs text-text-muted mb-3 text-center",children:s}),n&&(0,c.jsx)(x.default,{src:n,alt:`${t} QR`,className:"w-full max-w-[180px] aspect-square object-contain rounded-lg bg-white p-1",width:180,height:180,unoptimized:!0})]});return(0,c.jsxs)("div",{className:"flex flex-col items-center p-4 rounded-xl border border-black/10 dark:border-white/10 bg-surface/50 hover:border-pink-500/40 transition-colors",children:[i,l&&(0,c.jsxs)("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 px-3 py-1.5 rounded-lg text-sm font-medium text-white hover:opacity-90 transition-opacity",style:{backgroundColor:a},children:["Open",(0,c.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"open_in_new"})]})]})}var J=s(71389),Y=s(20264);function Z({onMenuClick:e,showMenuButton:t=!0}){let s=(0,C.usePathname)(),[r,a]=(0,N.useState)(""),[l,n]=(0,N.useState)(""),[i,o]=(0,N.useState)(!1),{title:d,description:x,icon:m,breadcrumbs:u}=(0,N.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/media-providers\/([^/]+)\/([^/]+)$/);if(t){let e=t[1],s=t[2],r=A.rj.find(t=>t.id===e),a=A.Q2[s];return{title:a?.name||s,description:"",breadcrumbs:[{label:"Media Providers",href:`/dashboard/media-providers/${e}`},{label:r?.label||e,href:`/dashboard/media-providers/${e}`},{label:a?.name||s,image:`/providers/${s}.webp`}]}}let s=e.match(/\/media-providers\/([^/]+)$/);if(s){let e=s[1],t=A.rj.find(t=>t.id===e);return{title:t?.label||e,description:`Manage your ${t?.label||e} providers`,icon:t?.icon||"perm_media",breadcrumbs:[]}}let r=e.match(/\/providers\/([^/]+)$/);if(r){let e=r[1],t=S.zN[e]||S.fg[e];if(t)return{title:t.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:t.name,image:`/providers/${t.id}.webp`}]}}return e.includes("/providers")&&!e.includes("/media-providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:e.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:e.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:e.includes("/mitm")?{title:"MITM Proxy",description:"Intercept CLI tool traffic and route through 9Router",icon:"security",breadcrumbs:[]}:e.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"savings",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:e.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"lan",breadcrumbs:[]}:e.includes("/skills")?{title:"Agent Skills",description:"Copy a link and paste to your AI to use 9Router — no install needed",icon:"extension",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:e.includes("/translator")?{title:"Translator",description:"Debug translation flow between formats",icon:"translate",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(s),[s]);(0,N.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/auth/status",{cache:"no-store"});if(!t.ok)return;let s=await t.json();e||(a(s?.displayName||s?.oidcName||s?.oidcEmail||""),n(s?.loginMethod||""))}catch{e||(a(""),n(""))}}(),()=>{e=!0}},[]);let p=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(e){console.error("Failed to logout:",e)}};return(0,c.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,c.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:t&&(0,c.jsx)("button",{onClick:e,className:"text-text-main hover:text-primary transition-colors",children:(0,c.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,c.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:u.length>0?(0,c.jsx)("div",{className:"flex items-center gap-2",children:u.map((e,t)=>(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,c.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),e.href?(0,c.jsx)(k(),{href:e.href,className:"text-text-muted hover:text-primary transition-colors",children:e.label}):(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,c.jsx)(D.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,c.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-text-main tracking-tight truncate",children:(0,Y.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):d?(0,c.jsxs)("div",{children:[(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[m&&(0,c.jsx)("span",{className:"material-symbols-outlined text-primary text-xl lg:text-2xl",children:m}),(0,c.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,Y.Tl)(d)})]}),x&&(0,c.jsx)("p",{className:"hidden lg:block text-sm text-text-muted truncate",children:(0,Y.Tl)(x)})]}):null}),(0,c.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[r&&"OIDC"===l&&(0,c.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",children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1.5 text-primary",children:"person"}),(0,c.jsx)("span",{className:"truncate",children:r}),(0,c.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:"OIDC"})]}),(0,c.jsx)(X,{}),(0,c.jsxs)("button",{onClick:()=>o(!0),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,c.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"volunteer_activism"}),(0,c.jsx)("span",{className:"hidden sm:inline",children:"Donate"})]}),(0,c.jsx)(j,{}),(0,c.jsx)(G,{}),(0,c.jsx)(K,{onLogout:p})]}),(0,c.jsx)(H,{isOpen:i,onClose:()=>o(!1)})]})}function X(){let e=(0,J.C)(e=>e.visible),t=(0,J.C)(e=>e.query),s=(0,J.C)(e=>e.placeholder),r=(0,J.C)(e=>e.setQuery);return e?(0,c.jsxs)("div",{className:"relative w-[160px] sm:w-[220px]",children:[(0,c.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,c.jsx)("input",{type:"text",value:t,onChange:e=>r(e.target.value),placeholder:s,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"}),t&&(0,c.jsx)("button",{type:"button",onClick:()=>r(""),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,c.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]}):null}let ee=[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"Changelog",href:"#"}],et=[{label:"Documentation",href:"#"},{label:"API Reference",href:"#"},{label:"Help Center",href:"#"}],es=[{label:"About",href:"#"},{label:"Blog",href:"#"},{label:"Contact",href:"#"}];function er(){return(0,c.jsx)("footer",{className:"bg-bg border-t border-border pt-16 pb-12",children:(0,c.jsxs)("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[(0,c.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-10 mb-12",children:[(0,c.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,c.jsx)("div",{className:"size-6 text-primary",children:(0,c.jsx)("svg",{className:"w-full h-full",fill:"currentColor",viewBox:"0 0 48 48",children:(0,c.jsx)("path",{clipRule:"evenodd",d:"M12.08 24L4 19.25L9.96 8.75L18.04 13.5L18.04 4H29.96L29.96 13.5L38.04 8.75L44 19.25L35.92 24L44 28.75L38.04 39.25L29.96 34.5L29.96 44H18.04L18.04 34.5L9.96 39.25L4 28.75L12.08 24Z",fillRule:"evenodd"})})}),(0,c.jsx)("span",{className:"text-xl font-bold text-text-main",children:S.vQ.name})]}),(0,c.jsx)("p",{className:"text-text-muted mb-6 max-w-sm font-light",children:"The unified interface for modern AI infrastructure. Secure, observable, and scalable."}),(0,c.jsxs)("div",{className:"flex gap-4",children:[(0,c.jsx)("button",{type:"button",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"Twitter",children:(0,c.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,c.jsx)("path",{d:"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z"})})}),(0,c.jsx)("button",{type:"button",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"GitHub",children:(0,c.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,c.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z"})})})]})]}),(0,c.jsxs)("div",{children:[(0,c.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Product"}),(0,c.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:ee.map(e=>(0,c.jsx)("li",{children:(0,c.jsx)(k(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,c.jsxs)("div",{children:[(0,c.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Resources"}),(0,c.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:et.map(e=>(0,c.jsx)("li",{children:(0,c.jsx)(k(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,c.jsxs)("div",{children:[(0,c.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Company"}),(0,c.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:es.map(e=>(0,c.jsx)("li",{children:(0,c.jsx)(k(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]})]}),(0,c.jsxs)("div",{className:"border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,c.jsxs)("p",{className:"text-sm text-text-muted",children:["\xa9 2025 ",S.vQ.name," Inc. All rights reserved."]}),(0,c.jsxs)("div",{className:"flex gap-6 text-sm text-text-muted",children:[(0,c.jsx)(k(),{href:"#",className:"hover:text-primary transition-colors",children:"Privacy Policy"}),(0,c.jsx)(k(),{href:"#",className:"hover:text-primary transition-colors",children:"Terms of Service"})]})]})]})})}let ea=e=>new Intl.NumberFormat().format(e||0);function el({stats:e}){let t;return(0,c.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 sm:gap-4",children:[(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,c.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Requests"}),(0,c.jsx)("span",{className:"truncate text-2xl font-bold",children:ea(e.totalRequests)})]}),(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,c.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Input Tokens"}),(0,c.jsx)("span",{className:"truncate text-2xl font-bold text-primary",children:ea(e.totalPromptTokens)})]}),(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,c.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Cached Tokens"}),(0,c.jsx)("span",{className:"truncate text-2xl font-bold text-info",children:ea(e.totalCachedTokens)})]}),(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,c.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Output Tokens"}),(0,c.jsx)("span",{className:"truncate text-2xl font-bold text-success",children:ea(e.totalCompletionTokens)})]}),(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,c.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Est. Cost"}),(0,c.jsxs)("span",{className:"truncate text-2xl font-bold text-warning",children:["~",(t=e.totalCost,`$${(t||0).toFixed(2)}`)]}),(0,c.jsx)("span",{className:"text-[10px] text-text-muted",children:"Estimated, not actual billing"})]})]})}let en=new Intl.NumberFormat,ei=e=>en.format(e||0),eo=e=>`$${(e||0).toFixed(2)}`;function ed(e){if(!e)return"Never";let t=Math.floor((Date.now()-new Date(e))/6e4);return t<1?"Just now":t<60?`${t}m ago`:t<1440?`${Math.floor(t/60)}h ago`:new Date(e).toLocaleDateString()}function ec({field:e,currentSort:t,currentOrder:s}){return t!==e?(0,c.jsx)("span",{className:"ml-1 opacity-20",children:"↕"}):(0,c.jsx)("span",{className:"ml-1",children:"asc"===s?"↑":"↓"})}function ex({item:e,viewMode:t,isSummary:s=!1}){return"tokens"===t?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.promptTokens?"—":ei(e.promptTokens)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.completionTokens?"—":ei(e.completionTokens)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right font-medium",children:ei(e.totalTokens)})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.inputCost?"—":eo(e.inputCost)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.outputCost?"—":eo(e.outputCost)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right font-medium text-warning",children:eo(e.totalCost||e.cost)})]})}function em({title:e,columns:t,groupedData:s,tableType:r,sortBy:a,sortOrder:l,onToggleSort:n,viewMode:o,storageKey:d,renderDetailCells:x,renderSummaryCells:m,emptyMessage:u}){let[p,h]=(0,N.useState)(()=>{try{let e=localStorage.getItem(d);if(e)return new Set(JSON.parse(e))}catch{}return new Set}),b=(0,N.useCallback)(e=>{h(t=>{let s=new Set(t);s.has(e)?s.delete(e):s.add(e);try{localStorage.setItem(d,JSON.stringify([...s]))}catch(e){console.error(`Failed to save ${d}:`,e)}return s})},[d]),f=(0,N.useMemo)(()=>"tokens"===o?[{field:"promptTokens",label:"Input Tokens"},{field:"completionTokens",label:"Output Tokens"},{field:"totalTokens",label:"Total Tokens"}]:[{field:"promptTokens",label:"Input Cost"},{field:"completionTokens",label:"Output Cost"},{field:"cost",label:"Total Cost"}],[o]),g=t.length+f.length;return(0,c.jsxs)(i.A,{className:"overflow-hidden",children:[(0,c.jsx)("div",{className:"p-4 border-b border-border bg-bg-subtle/50",children:(0,c.jsx)("h3",{className:"font-semibold",children:e})}),(0,c.jsx)("div",{className:"overflow-x-auto",children:(0,c.jsxs)("table",{className:"w-full text-sm text-left",children:[(0,c.jsx)("thead",{className:"bg-bg-subtle/30 text-text-muted uppercase text-xs",children:(0,c.jsxs)("tr",{children:[t.map(e=>(0,c.jsxs)("th",{className:`px-6 py-3 cursor-pointer hover:bg-bg-subtle/50 ${"right"===e.align?"text-right":""}`,onClick:()=>n(r,e.field),children:[e.label," ",(0,c.jsx)(ec,{field:e.field,currentSort:a,currentOrder:l})]},e.field)),f.map(e=>(0,c.jsxs)("th",{className:"px-6 py-3 text-right cursor-pointer hover:bg-bg-subtle/50",onClick:()=>n(r,e.field),children:[e.label," ",(0,c.jsx)(ec,{field:e.field,currentSort:a,currentOrder:l})]},e.field))]})}),(0,c.jsxs)("tbody",{className:"divide-y divide-border",children:[s.map(e=>(0,c.jsxs)(N.Fragment,{children:[(0,c.jsxs)("tr",{className:"group-summary cursor-pointer hover:bg-bg-subtle/50 transition-colors",onClick:()=>b(e.groupKey),children:[(0,c.jsx)("td",{className:"px-6 py-3",children:(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("span",{className:`material-symbols-outlined text-[18px] text-text-muted transition-transform ${p.has(e.groupKey)?"rotate-90":""}`,children:"chevron_right"}),(0,c.jsx)("span",{className:`font-medium transition-colors ${e.summary.pending>0?"text-primary":""}`,children:e.groupKey})]})}),m(e),(0,c.jsx)(ex,{item:e.summary,viewMode:o,isSummary:!0})]}),p.has(e.groupKey)&&e.items.map(e=>(0,c.jsxs)("tr",{className:"group-detail hover:bg-bg-subtle/20 transition-colors",children:[x(e),(0,c.jsx)(ex,{item:e,viewMode:o})]},`detail-${e.key}`))]},e.groupKey)),0===s.length&&(0,c.jsx)("tr",{children:(0,c.jsx)("td",{colSpan:g,className:"px-6 py-8 text-center text-text-muted",children:u})})]})]})})]})}let eu=(0,r.default)(()=>Promise.all([s.e(5334),s.e(1399),s.e(6676)]).then(s.bind(s,46676)).then(e=>{let{AreaChart:t,Area:s,XAxis:r,YAxis:a,CartesianGrid:l,Tooltip:n,ResponsiveContainer:i}=e;function o({data:e,viewMode:d,fmtTokens:x,fmtCost:m}){return(0,c.jsx)(i,{width:"100%",height:220,children:(0,c.jsxs)(t,{data:e,margin:{top:4,right:8,left:0,bottom:0},children:[(0,c.jsxs)("defs",{children:[(0,c.jsxs)("linearGradient",{id:"gradTokens",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,c.jsx)("stop",{offset:"5%",stopColor:"#6366f1",stopOpacity:.25}),(0,c.jsx)("stop",{offset:"95%",stopColor:"#6366f1",stopOpacity:0})]}),(0,c.jsxs)("linearGradient",{id:"gradCost",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,c.jsx)("stop",{offset:"5%",stopColor:"#f59e0b",stopOpacity:.25}),(0,c.jsx)("stop",{offset:"95%",stopColor:"#f59e0b",stopOpacity:0})]})]}),(0,c.jsx)(l,{strokeDasharray:"3 3",strokeOpacity:.1}),(0,c.jsx)(r,{dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,interval:"preserveStartEnd"}),(0,c.jsx)(a,{tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:"tokens"===d?x:m,width:50}),(0,c.jsx)(n,{contentStyle:{backgroundColor:"var(--color-bg)",border:"1px solid var(--color-border)",borderRadius:"8px",fontSize:"12px"},formatter:(e,t)=>"tokens"===t?[x(e),"Tokens"]:[m(e),"Cost"]}),"tokens"===d?(0,c.jsx)(s,{type:"monotone",dataKey:"tokens",stroke:"#6366f1",strokeWidth:2,fill:"url(#gradTokens)",dot:!1,activeDot:{r:4}}):(0,c.jsx)(s,{type:"monotone",dataKey:"cost",stroke:"#f59e0b",strokeWidth:2,fill:"url(#gradCost)",dot:!1,activeDot:{r:4}})]})})}return o.displayName="RechartsChart",{default:o}}),{loadableGenerated:{webpack:()=>[46676]},ssr:!1,loading:()=>(0,c.jsx)("div",{className:"h-[220px] w-full rounded-lg border border-border bg-bg-subtle/30","aria-label":"Loading chart"})}),ep=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),eh=e=>`$${(e||0).toFixed(4)}`;function eb({period:e="7d"}){let[t,s]=(0,N.useState)([]),[r,a]=(0,N.useState)(!0),[l,n]=(0,N.useState)("tokens"),o=(0,N.useRef)(null),d=(0,N.useCallback)(async()=>{a(!0);try{let t=await fetch(`/api/usage/chart?period=${e}`);if(t.ok){let e=await t.json();s(e)}}catch(e){console.error("Failed to fetch chart data:",e)}finally{a(!1)}},[e]);(0,N.useEffect)(()=>{o.current!==e&&(o.current=e,d())},[d,e]);let x=t.some(e=>e.tokens>0||e.cost>0);return(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,c.jsxs)("div",{className:"grid w-full grid-cols-2 items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1 sm:w-auto sm:self-start",children:[(0,c.jsx)("button",{type:"button",onClick:()=>n("tokens"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"tokens"===l?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Tokens"}),(0,c.jsx)("button",{type:"button",onClick:()=>n("cost"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"cost"===l?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Cost"})]}),r?(0,c.jsx)("div",{className:"h-48 flex items-center justify-center text-text-muted text-sm",children:"Loading..."}):x?(0,c.jsx)(eu,{data:t,viewMode:l,fmtTokens:ep,fmtCost:eh}):(0,c.jsx)("div",{className:"h-48 flex items-center justify-center text-text-muted text-sm",children:"No data for this period"})]})}function ef(e){let t=A.Q2[e];return!t?.serviceKinds||t.serviceKinds.includes("llm")}let eg=(0,r.default)(()=>Promise.all([s.e(2554),s.e(7418),s.e(5334),s.e(2673),s.e(5331)]).then(s.bind(s,75331)),{loadableGenerated:{webpack:()=>[75331]},ssr:!1}),ej=(0,c.jsx)("div",{className:"grid min-w-0 grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-4 sm:gap-4",children:Array.from({length:4}).map((e,t)=>(0,c.jsx)("div",{className:"h-24 w-full animate-pulse rounded-lg border border-border bg-bg-subtle/50","aria-hidden":"true"},t))}),ey=(0,c.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-2 lg:grid-cols-[minmax(0,2fr)_minmax(280px,1fr)]",children:[(0,c.jsx)("div",{className:"h-[320px] w-full animate-pulse rounded-lg border border-border bg-bg-subtle/50 sm:h-[480px]","aria-hidden":"true"}),(0,c.jsx)("div",{className:"h-[320px] w-full animate-pulse rounded-lg border border-border bg-bg-subtle/50 sm:h-[480px]","aria-hidden":"true"})]}),ev=(0,c.jsx)("div",{className:"h-[220px] w-full animate-pulse rounded-lg border border-border bg-bg-subtle/50","aria-hidden":"true"}),eN=(0,c.jsx)("div",{className:"h-64 w-full animate-pulse rounded-lg border border-border bg-bg-subtle/50","aria-hidden":"true"});function ew({timestamp:e}){let t,[,s]=(0,N.useState)(0);return(0,N.useEffect)(()=>{let e=setInterval(()=>s(e=>e+1),1e3);return()=>clearInterval(e)},[]),(0,c.jsx)(c.Fragment,{children:(t=Math.floor((Date.now()-new Date(e))/1e3))<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`})}let ek=[];function eC({requests:e=ek}){return(0,c.jsxs)(i.A,{className:"flex min-w-0 flex-col overflow-hidden",padding:"sm",style:{height:480},children:[(0,c.jsx)("div",{className:"px-1 py-2 border-b border-border shrink-0",children:(0,c.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide",children:"Recent Requests"})}),e.length?(0,c.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,c.jsxs)("table",{className:"w-full min-w-[300px] border-collapse text-xs",children:[(0,c.jsx)("thead",{className:"sticky top-0 bg-bg z-10",children:(0,c.jsxs)("tr",{className:"border-b border-border",children:[(0,c.jsx)("th",{className:"py-1.5 text-left font-semibold text-text-muted w-2",children:(0,c.jsx)("span",{className:"sr-only",children:"Status"})}),(0,c.jsx)("th",{className:"py-1.5 text-left font-semibold text-text-muted",children:"Model"}),(0,c.jsx)("th",{className:"py-1.5 text-right font-semibold text-text-muted whitespace-nowrap",children:"In / Out"}),(0,c.jsx)("th",{className:"py-1.5 text-right font-semibold text-text-muted",children:"When"})]})}),(0,c.jsx)("tbody",{className:"divide-y divide-border/50",children:e.map((e,t)=>{let s=!e.status||"ok"===e.status||"success"===e.status;return(0,c.jsxs)("tr",{className:"hover:bg-bg-subtle transition-colors",children:[(0,c.jsx)("td",{className:"py-1.5",children:(0,c.jsx)("span",{className:`block w-1.5 h-1.5 rounded-full ${s?"bg-success":"bg-error"}`,"aria-label":s?"Success":"Error"})}),(0,c.jsx)("td",{className:"py-1.5 font-mono truncate max-w-[120px]",title:e.model,children:e.model}),(0,c.jsxs)("td",{className:"py-1.5 text-right whitespace-nowrap",children:[(0,c.jsxs)("span",{className:"text-primary",children:[ei(e.promptTokens),"↑"]})," ",(0,c.jsxs)("span",{className:"text-success",children:[ei(e.completionTokens),"↓"]})]}),(0,c.jsx)("td",{className:"py-1.5 text-right text-text-muted whitespace-nowrap",children:(0,c.jsx)(ew,{timestamp:e.timestamp})})]},`${e.timestamp}-${e.model}-${t}`)})})]})}):(0,c.jsx)("div",{className:"flex-1 flex items-center justify-center text-text-muted text-sm",children:"No requests yet."})]})}function eS(e,t={},s,r){return Object.entries(e||{}).map(([e,s])=>{let r=(s.promptTokens||0)+(s.completionTokens||0),a=s.cost||0,l=s.cachedTokens||0,n=Math.max(0,(s.promptTokens||0)-l),i=r>0?(s.completionTokens||0)*(a/r):0;return{...s,key:e,totalTokens:r,totalCost:a,inputCost:r>0?a/r*n:0,cachedCost:r>0?a/r*l:0,outputCost:i,pending:t[e]||0}}).sort((e,t)=>{let a=e[s],l=t[s];return("string"==typeof a&&(a=a.toLowerCase()),"string"==typeof l&&(l=l.toLowerCase()),a<l)?"asc"===r?-1:1:a>l?"asc"===r?1:-1:0})}function eA(e,t){if(!Array.isArray(e))return[];let s={};return e.forEach(e=>{let r=function(e,t){switch(t){case"rawModel":return e.rawModel||"Unknown Model";case"accountName":return e.accountName||`Account ${e.connectionId?.slice(0,8)}...`||"Unknown Account";case"keyName":return e.keyName||"Unknown Key";case"endpoint":return e.endpoint||"Unknown Endpoint";default:return e[t]||"Unknown"}}(e,t);s[r]||(s[r]={groupKey:r,summary:{requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,totalTokens:0,cost:0,inputCost:0,cachedCost:0,outputCost:0,lastUsed:null,pending:0},items:[]});let a=s[r].summary;a.requests+=e.requests||0,a.promptTokens+=e.promptTokens||0,a.completionTokens+=e.completionTokens||0,a.cachedTokens+=e.cachedTokens||0,a.totalTokens+=e.totalTokens||0,a.cost+=e.cost||0,a.inputCost+=e.inputCost||0,a.cachedCost+=e.cachedCost||0,a.outputCost+=e.outputCost||0,a.pending+=e.pending||0,e.lastUsed&&(!a.lastUsed||new Date(e.lastUsed)>new Date(a.lastUsed))&&(a.lastUsed=e.lastUsed),s[r].items.push(e)}),Object.values(s)}let eT=[{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],eE=[{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"accountName",label:"Account"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],eM=[{field:"keyName",label:"API Key Name"},{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],eL=[{field:"endpoint",label:"Endpoint"},{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],e$=[{value:"model",label:"Usage by Model"},{value:"account",label:"Usage by Account"},{value:"apiKey",label:"Usage by API Key"},{value:"endpoint",label:"Usage by Endpoint"}],eP=[{value:"today",label:"Today"},{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function ez({period:e,setPeriod:t,fetching:s}){return(0,c.jsxs)("div",{className:"flex w-full items-center gap-2 sm:w-auto sm:self-end",children:[(0,c.jsx)("div",{className:"grid flex-1 grid-cols-5 items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1 sm:flex sm:flex-none",children:eP.map(r=>(0,c.jsx)("button",{type:"button",onClick:()=>t(r.value),disabled:s,className:`rounded-md px-3 py-1 text-sm font-medium transition-colors ${e===r.value?"bg-primary text-white shadow-sm":"text-text-muted hover:bg-bg-hover hover:text-text"}`,children:r.label},r.value))}),s&&(0,c.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted animate-spin",children:"progress_activity"})]})}function eR({period:e,setPeriod:t,hidePeriodSelector:s=!1}={}){let r=(0,C.useRouter)(),a=(0,C.useSearchParams)(),l=a.get("sortBy")||"rawModel",n=a.get("sortOrder")||"asc",[i,o]=(0,N.useState)(null),[d,x]=(0,N.useState)({loading:!0,fetching:!1}),m=d.loading,u=d.fetching,[p,b]=(0,N.useState)("model"),[f,g]=(0,N.useState)("costs"),[j,y]=(0,N.useState)([]),[v,w]=(0,N.useState)("today"),k=(0,N.useRef)(!0),S=(0,N.useRef)(!1),T=e??v;(0,N.useEffect)(()=>{let e=new AbortController;return Promise.all([fetch("/api/providers",{signal:e.signal}).then(e=>e.ok?e.json():null),fetch("/api/provider-nodes",{signal:e.signal}).then(e=>e.ok?e.json():null)]).then(([t,s])=>{if(e.signal.aborted)return;let r={};for(let e of s?.nodes||[])r[e.id]=e.name;let a=new Set;y([...(t?.connections||[]).reduce((e,t)=>(!1===t.isActive||!ef(t.provider)||a.has(t.provider)||(a.add(t.provider),e.push({...t,nodeName:r[t.provider]||null})),e),[]),...Object.values(A.IS).reduce((e,t)=>(t.noAuth&&!a.has(t.id)&&ef(t.id)&&e.push({provider:t.id,name:t.name}),e),[])])}).catch(()=>{}),()=>e.abort()},[]),(0,N.useEffect)(()=>{k.current?(k.current=!1,x({loading:!0,fetching:!1})):x({loading:!1,fetching:!0});let e=new AbortController;return fetch(`/api/usage/stats?period=${T}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(t=>{!e.signal.aborted&&t&&(S.current=!0,o(e=>({...e,...t})))}).catch(()=>{}).finally(()=>{e.signal.aborted||x({loading:!1,fetching:!1})}),()=>e.abort()},[T]),(0,N.useEffect)(()=>{let e=new EventSource("/api/usage/stream");return e.onmessage=e=>{try{let t=JSON.parse(e.data);o(e=>e?{...e,activeRequests:t.activeRequests,recentRequests:t.recentRequests,errorProvider:t.errorProvider,pending:t.pending}:e),S.current&&x(e=>({...e,loading:!1}))}catch(e){console.error("[SSE CLIENT] parse error:",e)}},e.onerror=()=>x(e=>({...e,loading:!1})),()=>e.close()},[]);let E=(0,N.useCallback)((e,t)=>{let s=new URLSearchParams(a.toString());s.get("sortBy")===t?s.set("sortOrder","asc"===s.get("sortOrder")?"desc":"asc"):(s.set("sortBy",t),s.set("sortOrder","asc")),r.replace(`?${s.toString()}`,{scroll:!1})},[a,r]),M=(0,N.useMemo)(()=>{if(!i)return null;switch(p){case"model":{let e=i.pending?.byModel||{};return{columns:eT,groupedData:eA(eS(i.byModel,e,l,n),"rawModel"),storageKey:"usage-stats:expanded-models",emptyMessage:"No usage recorded yet.",renderSummaryCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.summary.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:`px-6 py-3 font-medium transition-colors ${e.pending>0?"text-primary":""}`,children:e.rawModel}),(0,c.jsx)("td",{className:"px-6 py-3",children:(0,c.jsx)(h.A,{variant:e.pending>0?"primary":"neutral",size:"sm",children:e.provider})}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.lastUsed)})]})}}case"account":{let e={};return i?.pending?.byAccount&&Object.entries(i.byAccount||{}).forEach(([t,s])=>{let r=i.pending.byAccount[s.connectionId];if(r){let a=s.provider?`${s.rawModel} (${s.provider})`:s.rawModel;e[t]=r[a]||0}}),{columns:eE,groupedData:eA(eS(i.byAccount,e,l,n),"accountName"),storageKey:"usage-stats:expanded-accounts",emptyMessage:"No account-specific usage recorded yet.",renderSummaryCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.summary.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:`px-6 py-3 font-medium transition-colors ${e.pending>0?"text-primary":""}`,children:e.accountName||`Account ${e.connectionId?.slice(0,8)}...`}),(0,c.jsx)("td",{className:`px-6 py-3 font-medium transition-colors ${e.pending>0?"text-primary":""}`,children:e.rawModel}),(0,c.jsx)("td",{className:"px-6 py-3",children:(0,c.jsx)(h.A,{variant:e.pending>0?"primary":"neutral",size:"sm",children:e.provider})}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.lastUsed)})]})}}case"apiKey":return{columns:eM,groupedData:eA(eS(i.byApiKey,{},l,n),"keyName"),storageKey:"usage-stats:expanded-apikeys",emptyMessage:"No API key usage recorded yet.",renderSummaryCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.summary.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 font-medium",children:e.keyName}),(0,c.jsx)("td",{className:"px-6 py-3",children:e.rawModel}),(0,c.jsx)("td",{className:"px-6 py-3",children:(0,c.jsx)(h.A,{variant:"neutral",size:"sm",children:e.provider})}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.lastUsed)})]})};default:return{columns:eL,groupedData:eA(eS(i.byEndpoint,{},l,n),"endpoint"),storageKey:"usage-stats:expanded-endpoints",emptyMessage:"No endpoint usage recorded yet.",renderSummaryCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.summary.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("td",{className:"px-6 py-3 font-medium font-mono text-sm",children:e.endpoint}),(0,c.jsx)("td",{className:"px-6 py-3",children:e.rawModel}),(0,c.jsx)("td",{className:"px-6 py-3",children:(0,c.jsx)(h.A,{variant:"neutral",size:"sm",children:e.provider})}),(0,c.jsx)("td",{className:"px-6 py-3 text-right",children:ei(e.requests)}),(0,c.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:ed(e.lastUsed)})]})}}},[i,p,l,n]);return i||m?(0,c.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[!s&&(0,c.jsx)(ez,{period:T,setPeriod:t??w,fetching:u}),m?ej:(0,c.jsx)(el,{stats:i}),m?ey:(0,c.jsxs)("div",{className:"grid min-w-0 grid-cols-1 items-stretch gap-2 lg:grid-cols-[minmax(0,2fr)_minmax(280px,1fr)]",children:[(0,c.jsx)(eg,{providers:j,activeRequests:i.activeRequests||[],lastProvider:i.recentRequests?.[0]?.provider||"",errorProvider:i.errorProvider||""}),(0,c.jsx)(eC,{requests:i.recentRequests||[]})]}),m?ev:(0,c.jsx)(eb,{period:T}),(0,c.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,c.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,c.jsx)("select",{value:p,onChange:e=>b(e.target.value),className:"w-full rounded-lg border border-border bg-surface px-3 py-1.5 text-sm font-medium text-text-main focus:outline-none focus:ring-2 focus:ring-primary/50 sm:w-auto",style:{colorScheme:"auto"},children:e$.map(e=>(0,c.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,c.jsxs)("div",{className:"grid grid-cols-2 items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1 sm:flex",children:[(0,c.jsx)("button",{type:"button",onClick:()=>g("costs"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"costs"===f?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Costs"}),(0,c.jsx)("button",{type:"button",onClick:()=>g("tokens"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"tokens"===f?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Tokens"})]})]}),m?eN:M&&(0,c.jsx)(em,{title:"",columns:M.columns,groupedData:M.groupedData,tableType:p,sortBy:l,sortOrder:n,onToggleSort:E,viewMode:f,storageKey:M.storageKey,renderSummaryCells:M.renderSummaryCells,renderDetailCells:M.renderDetailCells,emptyMessage:M.emptyMessage})]})]}):(0,c.jsx)("div",{className:"text-text-muted",children:"Failed to load usage statistics."})}function eF(){let[e,t]=(0,N.useState)(!1);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("button",{type:"button",onClick:()=>t(!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,c.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"computer"}),(0,c.jsx)("span",{className:"text-xs font-medium",children:"Remote"})]}),(0,c.jsx)($,{isOpen:e,onClose:()=>t(!1)})]})}function eI(){let[e,t]=(0,N.useState)([]),[s,r]=(0,N.useState)(!0),[a,l]=(0,N.useState)(!0);(0,N.useEffect)(()=>{n()},[]),(0,N.useEffect)(()=>{let e;return a&&(e=setInterval(()=>{n(!1)},3e3)),()=>clearInterval(e)},[a]);let n=async(e=!0)=>{e&&r(!0);try{let e=await fetch("/api/usage/request-logs");if(e.ok){let s=await e.json();t(s)}}catch(e){console.error("Failed to fetch logs:",e)}finally{e&&r(!1)}};return(0,c.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,c.jsxs)("div",{className:"flex items-center justify-between",children:[(0,c.jsx)("h2",{className:"text-xl font-semibold",children:"Request Logs"}),(0,c.jsx)("div",{className:"flex items-center gap-2",children:(0,c.jsxs)("span",{className:"text-sm font-medium text-text-muted flex items-center gap-2 cursor-pointer",children:[(0,c.jsx)("span",{children:"Auto Refresh (3s)"}),(0,c.jsx)("button",{type:"button",role:"switch","aria-checked":a,"aria-label":"Auto Refresh (3s)",onClick:()=>l(!a),className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors focus:outline-none ${a?"bg-primary":"bg-bg-subtle border border-border"}`,children:(0,c.jsx)("span",{className:`inline-block h-3 w-3 transform rounded-full bg-white transition-transform ${a?"translate-x-5":"translate-x-1"}`})})]})})]}),(0,c.jsx)(i.A,{className:"overflow-hidden bg-black/5 dark:bg-black/20",children:(0,c.jsx)("div",{className:"p-0 overflow-x-auto max-h-[600px] overflow-y-auto font-mono text-xs",children:s&&0===e.length?(0,c.jsx)("div",{className:"p-8 text-center text-text-muted",children:"Loading logs..."}):0===e.length?(0,c.jsx)("div",{className:"p-8 text-center text-text-muted",children:"No logs recorded yet."}):(0,c.jsxs)("table",{className:"w-full text-left border-collapse whitespace-nowrap",children:[(0,c.jsx)("thead",{className:"sticky top-0 bg-bg-subtle border-b border-border z-10",children:(0,c.jsxs)("tr",{children:[(0,c.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"DateTime"}),(0,c.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Model"}),(0,c.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Provider"}),(0,c.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Account"}),(0,c.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"In"}),(0,c.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Out"}),(0,c.jsx)("th",{className:"px-3 py-2",children:"Status"})]})}),(0,c.jsx)("tbody",{className:"divide-y divide-border/50",children:e.map((e,t)=>{let s=e.split(" | ");if(s.length<7)return null;let r=s[6],a=r.includes("PENDING"),l=r.includes("FAILED"),n=r.includes("OK");return(0,c.jsxs)("tr",{className:`hover:bg-primary/5 transition-colors ${a?"bg-primary/5":""}`,children:[(0,c.jsx)("td",{className:"px-3 py-1.5 border-r border-border text-text-muted",children:s[0]}),(0,c.jsx)("td",{className:"px-3 py-1.5 border-r border-border font-medium",children:s[1]}),(0,c.jsx)("td",{className:"px-3 py-1.5 border-r border-border",children:(0,c.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-bg-subtle border border-border text-[10px] uppercase font-bold",children:s[2]})}),(0,c.jsx)("td",{className:"px-3 py-1.5 border-r border-border truncate max-w-[150px]",title:s[3],children:s[3]}),(0,c.jsx)("td",{className:"px-3 py-1.5 border-r border-border text-right text-primary",children:s[4]}),(0,c.jsx)("td",{className:"px-3 py-1.5 border-r border-border text-right text-success",children:s[5]}),(0,c.jsx)("td",{className:`px-3 py-1.5 font-bold ${n?"text-success":l?"text-error":"text-primary animate-pulse"}`,children:r})]},`${s[0]}-${s[1]}-${s[3]}`)})})]})})}),(0,c.jsx)("div",{className:"text-[10px] text-text-muted italic",children:"Logs are loaded from the request history database."})]})}let eO={sm:"h-7 text-xs",md:"h-9 text-sm",lg:"h-11 text-base"},e_=[];function eD({options:e=e_,value:t,onChange:s,size:r="md",className:a}){return(0,c.jsx)("div",{className:(0,m.cn)("inline-flex items-center p-1 rounded-[10px] overflow-x-auto","bg-surface-2",a),children:e.map(e=>(0,c.jsxs)("button",{type:"button",onClick:()=>s(e.value),className:(0,m.cn)("shrink-0 px-4 rounded-[8px] font-medium transition-all",eO[r],t===e.value?"bg-surface text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[e.icon&&(0,c.jsx)("span",{className:"material-symbols-outlined text-[16px] mr-1.5",children:e.icon}),e.label]},e.value))})}var eU=s(18419),eq=s(24260),eK=s(25795);function eB({children:e}){let[t,s]=(0,N.useState)(!1),r=(0,C.usePathname)(),a=(0,eK.i)(e=>e.notifications),l=(0,eK.i)(e=>e.removeNotification);return(0,N.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),(0,c.jsxs)("div",{className:"flex h-screen w-full overflow-hidden bg-bg",children:[(0,c.jsx)("div",{className:"fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2",children:a.map(e=>{var t;let s="success"===(t=e.type)?{wrapper:"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400",icon:"check_circle"}:"error"===t?{wrapper:"border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",icon:"error"}:"warning"===t?{wrapper:"border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400",icon:"warning"}:{wrapper:"border-blue-500/30 bg-blue-500/10 text-blue-600 dark:text-blue-400",icon:"info"};return(0,c.jsx)("div",{className:`rounded-lg border px-3 py-2 shadow-lg backdrop-blur-sm ${s.wrapper}`,children:(0,c.jsxs)("div",{className:"flex items-start gap-2",children:[(0,c.jsx)("span",{className:"material-symbols-outlined text-[18px] leading-5",children:s.icon}),(0,c.jsxs)("div",{className:"min-w-0 flex-1",children:[e.title?(0,c.jsx)("p",{className:"text-xs font-semibold mb-0.5",children:e.title}):null,(0,c.jsx)("p",{className:"text-xs whitespace-pre-wrap break-words",children:e.message})]}),e.dismissible?(0,c.jsx)("button",{type:"button",onClick:()=>l(e.id),className:"text-current/70 hover:text-current","aria-label":"Dismiss notification",children:(0,c.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})}):null]})},e.id)})}),t&&(0,c.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20 lg:hidden",onClick:()=>s(!1),"aria-hidden":"true"}),(0,c.jsx)("div",{className:"hidden lg:flex",children:(0,c.jsx)(O,{})}),(0,c.jsx)("div",{className:`fixed inset-y-0 left-0 z-50 transform lg:hidden transition-transform duration-300 ease-in-out ${t?"translate-x-0":"-translate-x-full"}`,children:(0,c.jsx)(O,{onClose:()=>s(!1)})}),(0,c.jsxs)("main",{className:"flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate",children:[(0,c.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none -z-10","aria-hidden":"true"}),(0,c.jsx)(Z,{onMenuClick:()=>s(!0)},r),(0,c.jsx)("div",{className:`flex-1 overflow-y-auto custom-scrollbar ${"/dashboard/basic-chat"===r?"":"p-6 lg:p-10"} ${"/dashboard/basic-chat"===r?"flex flex-col overflow-hidden":""}`,children:(0,c.jsx)("div",{className:`${"/dashboard/basic-chat"===r?"flex-1 w-full h-full flex flex-col":"max-w-7xl mx-auto"}`,children:e})})]})]})}function eW({children:e}){return(0,c.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,c.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,c.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,c.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,c.jsx)(j,{variant:"card"})}),(0,c.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}let eQ=e=>(0,r.default)(e,{ssr:!1,loading:()=>null}),eG=eQ(()=>s.e(2884).then(s.bind(s,72884))),eH=eQ(()=>Promise.all([s.e(7236),s.e(5479),s.e(9078)]).then(s.bind(s,29078))),eV=eQ(()=>s.e(1409).then(s.bind(s,11409))),eJ=eQ(()=>Promise.all([s.e(7236),s.e(5479),s.e(1049)]).then(s.bind(s,71049))),eY=eQ(()=>s.e(3124).then(s.bind(s,23124))),eZ=eQ(()=>s.e(6474).then(s.bind(s,76474))),eX=eQ(()=>Promise.all([s.e(6474),s.e(3257)]).then(s.bind(s,83257))),e0=eQ(()=>s.e(5560).then(s.bind(s,65560))),e1=eQ(()=>s.e(6909).then(s.bind(s,46909))),e2=eQ(()=>s.e(9146).then(s.bind(s,9146))),e5=eQ(()=>s.e(3386).then(s.bind(s,43386))),e3=eQ(()=>s.e(3657).then(s.bind(s,53657))),e4=eQ(()=>s.e(406).then(s.bind(s,50406))),e6=eQ(()=>s.e(3245).then(s.bind(s,83245))),e8=eQ(()=>Promise.resolve().then(s.bind(s,97902))),e9=eQ(()=>s.e(1567).then(s.bind(s,61567)))},97902:(e,t,s)=>{s.r(t),s.d(t,{default:()=>o});var r=s(15102),a=s(82030),l=s(49387),n=s(15383),i=s(11434);function o({isOpen:e,onClose:t}){let[d,c]=(0,a.useState)({html:"",loading:!1,error:""}),x=(0,a.useRef)(null),m=(0,a.useRef)(!1);(0,a.useEffect)(()=>{e&&!m.current&&(m.current=!0,c(e=>({...e,loading:!0,error:""})),fetch(i.Nu.changelogUrl).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.text()}).then(e=>c(t=>{var r;return{...t,html:(r=n.xI.parse(e),s(15690).sanitize(r,{FORBID_TAGS:["script","iframe","object","embed","form"],FORBID_ATTR:["onerror","onload","onclick"]})),loading:!1}})).catch(e=>c(t=>({...t,error:e.message||"Failed to load",loading:!1}))))},[e]);let u=(0,a.useRef)(t);if((0,a.useEffect)(()=>{u.current=t}),(0,a.useEffect)(()=>{let t=e=>{x.current&&!x.current.contains(e.target)&&u.current()};if(e)return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[e]),(0,a.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&u.current()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),!e||"u"<typeof document)return null;let{html:p,loading:h,error:b}=d;return(0,l.createPortal)((0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:t,"aria-hidden":"true"}),(0,r.jsxs)("div",{ref:x,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,r.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Change Log"}),(0,r.jsx)("button",{type:"button",onClick:t,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,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",children:[h&&(0,r.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),"Loading..."]}),b&&(0,r.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",b]}),!h&&!b&&p&&(0,r.jsx)("div",{className:"changelog-body text-text-main",dangerouslySetInnerHTML:{__html:p}})]})]})]}),document.body)}n.xI.setOptions({gfm:!0,breaks:!0})},97955:(e,t,s)=>{s.d(t,{A:()=>i});var r=s(15102),a=s(83916);let l={default:"bg-surface-2 text-text-muted",primary:"bg-brand-500/10 text-brand-600 dark:text-brand-300",success:"bg-green-500/10 text-green-600 dark:text-green-400",warning:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",error:"bg-red-500/10 text-red-600 dark:text-red-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},n={sm:"px-2 py-0.5 text-[10px]",md:"px-2.5 py-1 text-xs",lg:"px-3 py-1.5 text-sm"};function i({children:e,variant:t="default",size:s="md",dot:o=!1,icon:d,className:c}){return(0,r.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 rounded-full font-semibold",l[t],n[s],c),children:[o&&(0,r.jsx)("span",{className:(0,a.cn)("size-1.5 rounded-full","success"===t&&"bg-green-500","warning"===t&&"bg-yellow-500","error"===t&&"bg-red-500","info"===t&&"bg-blue-500","primary"===t&&"bg-brand-500","default"===t&&"bg-gray-500")}),d&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:d}),e]})}},98657:(e,t,s)=>{s.d(t,{A:()=>d});var r=s(15102),a=s(82030),l=s(49387),n=s(90238),i=s(20264);let o=e=>({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"},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"}})[e]||{name:e,flag:"\uD83C\uDF10"};function d({className:e="",isOpen:t,onClose:s,hideTrigger:c=!1}){let[x,m]=(0,a.useState)(()=>(function(){if("u"<typeof document)return"en";let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${n.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):"en";return(0,n.QC)(t)})()),[u,p]=(0,a.useState)(!1),[h,b]=(0,a.useState)(!1),f=(0,a.useRef)(null),g="boolean"==typeof t,j=g?t:h,y=(0,a.useCallback)(e=>{g?!e&&s&&s(x):b(e)},[g,s,x]),v=(0,a.useRef)(y);(0,a.useEffect)(()=>{v.current=y}),(0,a.useEffect)(()=>{function e(e){f.current&&!f.current.contains(e.target)&&v.current(!1)}if(j)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[j]),(0,a.useEffect)(()=>{if(!j)return;let e=e=>{"Escape"===e.key&&v.current(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[j]);let N=async e=>{if(e!==x&&!u){p(!0),y(!1);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:e})}),await (0,i.wn)(),m(e)}catch(e){console.error("Failed to set locale:",e)}finally{p(!1)}}};return(0,r.jsxs)("div",{className:e,children:[!c&&(0,r.jsxs)("button",{type:"button",onClick:()=>y(!j),disabled:u,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,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:o(x).name}),(0,r.jsx)("span",{className:"text-lg",children:o(x).flag})]}),j&&(0,l.createPortal)((0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>y(!1),"aria-hidden":"true"}),(0,r.jsxs)("div",{ref:f,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,r.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,r.jsx)("button",{type:"button",onClick:()=>y(!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,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,r.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:n.YZ.map(e=>{let t=x===e,s=o(e);return(0,r.jsxs)("button",{type:"button",onClick:()=>N(e),disabled:u,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${t?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${u?"opacity-70 cursor-wait":""}`,title:s.name,children:[(0,r.jsx)("span",{className:"text-2xl",children:s.flag}),(0,r.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:s.name}),t&&(0,r.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},e)})})})]})]}),document.body)]})}}}]);
|