keyrouter 1.0.4 → 1.0.5
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 +19 -19
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +19 -19
- package/app/.next-cli-build/react-loadable-manifest.json +8 -8
- 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 +5 -5
- 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/prompt-injection/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- 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 +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +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 +7 -7
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- 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/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +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/presets/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.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.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/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +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.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.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/grok-cli/bulk-import/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.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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.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/prompt-injection/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]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.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.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/providers/web-login/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/netlify-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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.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/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.nft.json +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.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.nft.json +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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.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 +7 -7
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +7 -7
- 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 +7 -7
- 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 +7 -7
- 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/_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 +8 -8
- 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/_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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- 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/_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 +7 -7
- 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/_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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/!KGRhc2hib2FyZCk/dashboard/prompt-injection/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.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 +7 -7
- 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/_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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
- 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 +1 -1
- 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 +8 -8
- 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/_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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
- 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 +7 -7
- 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/_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 +9 -9
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +9 -9
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- 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/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +7 -7
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- 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 +8 -8
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +19 -19
- package/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/app/.next-cli-build/server/chunks/2172.js +1 -1
- package/app/.next-cli-build/server/chunks/3449.js +1 -1
- package/app/.next-cli-build/server/chunks/3697.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +6 -6
- package/app/.next-cli-build/server/chunks/4190.js +1 -1
- package/app/.next-cli-build/server/chunks/4620.js +1 -0
- package/app/.next-cli-build/server/chunks/5299.js +7 -7
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6708.js +1 -1
- package/app/.next-cli-build/server/chunks/7066.js +1 -1
- package/app/.next-cli-build/server/chunks/8128.js +1 -1
- package/app/.next-cli-build/server/chunks/8251.js +1 -1
- package/app/.next-cli-build/server/chunks/8682.js +3 -3
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/9604.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +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/static/chunks/{124.b7052d76521ac60b.js → 124.2dcfd9a087c9e48b.js} +1 -1
- package/app/.next-cli-build/static/chunks/{2435.51481baa53b475e1.js → 2435.7cc8c894f4a21999.js} +1 -1
- package/app/.next-cli-build/static/chunks/{2470-e9f1fd5f21c43fac.js → 2470-73a591ec7a5bdf40.js} +1 -1
- package/app/.next-cli-build/static/chunks/3521.96065c08772d432e.js +1 -0
- package/app/.next-cli-build/static/chunks/3557-ab733a862d0bba72.js +10 -0
- package/app/.next-cli-build/static/chunks/{5462.500e87268a882da6.js → 5462.b5dccc4c3626a6a1.js} +1 -1
- package/app/.next-cli-build/static/chunks/5496-336ad33bc5785fb5.js +9 -0
- package/app/.next-cli-build/static/chunks/5497-b6161d058c4b63f4.js +1 -0
- package/app/.next-cli-build/static/chunks/6808-ecaf0603c2c647dd.js +1 -0
- package/app/.next-cli-build/static/chunks/761-748923a2523301a7.js +132 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-dc2bbddae0338265.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-946dbaff84568fd1.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-c995565de72de5d6.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-569d2ce1c361cb5b.js → page-e9856c47cc41d2f2.js} +5 -5
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-d8d32b819432e76e.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-c0c7f0ec4d840259.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-745147f2bf98d096.js +27 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-3006aca559388a7a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-c832cd28ad361668.js +4 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-f4d89bf3d96928c9.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-33826a8bc196b7de.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-6acecf90f03a1af3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-71814d68cea6ef7d.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-ebe244550b022a8f.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-84ba30538381db07.js +1 -0
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-607b1f15b82c8bba.js +1 -0
- package/app/.next-cli-build/static/chunks/app/landing/page-3e38f4876602c2fb.js +1 -0
- package/app/.next-cli-build/static/chunks/app/{layout-5be078fd5da689ca.js → layout-8e337d947af1970c.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/login/{page-d50a71c8703d2790.js → page-17082356385ade34.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-01b0b9fe7dbba18d.js → webpack-a1905b20ab1a879d.js} +1 -1
- package/app/.next-cli-build/static/css/d7b388223f36a397.css +1 -0
- package/app/package.json +1 -1
- package/app/public/favicon.svg +2 -12
- package/app/public/fonts/arabic-subset.ttf +0 -0
- package/app/public/fonts/bengali-subset.ttf +0 -0
- package/app/public/fonts/devanagari-subset.ttf +0 -0
- package/app/public/fonts/hebrew-subset.ttf +0 -0
- package/app/public/fonts/jp-subset.ttf +0 -0
- package/app/public/fonts/khmer-subset.ttf +0 -0
- package/app/public/fonts/kr-subset.ttf +0 -0
- package/app/public/fonts/sc-subset.ttf +0 -0
- package/app/public/fonts/tc-subset.ttf +0 -0
- package/app/public/fonts/thai-subset.ttf +0 -0
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/5626.js +0 -1
- package/app/.next-cli-build/static/chunks/3521.03e47d524e0fcbf6.js +0 -1
- package/app/.next-cli-build/static/chunks/3557-437defff109ccb42.js +0 -10
- package/app/.next-cli-build/static/chunks/5496-a3a9ad577f310490.js +0 -9
- package/app/.next-cli-build/static/chunks/5497-3add1c35ece30dbf.js +0 -1
- package/app/.next-cli-build/static/chunks/6808-4e4ca2233c09ffad.js +0 -1
- package/app/.next-cli-build/static/chunks/761-00700c1c25957243.js +0 -132
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-7feaa4a67a8eb771.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-5da47ad2a6d8d5de.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-628c4ef1c9482980.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-3b9d43febf1e79d4.js +0 -27
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-e9c955f52e5ae812.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-bbf57717de4a9782.js +0 -4
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-b275a947fc978997.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-5434337e59f24de1.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-c7eb81dfb0b4fd77.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-1b0510b28ff8de92.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-be974a86e9053540.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js +0 -1
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-c439d82cf7840dc9.js +0 -1
- package/app/.next-cli-build/static/chunks/app/landing/page-38fc3c430a1a29dc.js +0 -1
- package/app/.next-cli-build/static/css/841943e9a30fe5cd.css +0 -1
- /package/app/.next-cli-build/static/{7Sq72xYQxt_cCm5BESVbY → nPdnpoRoh59z5OwsCS3Vd}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{7Sq72xYQxt_cCm5BESVbY → nPdnpoRoh59z5OwsCS3Vd}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3554],{61610:(e,t,a)=>{Promise.resolve().then(a.bind(a,85309))},85309:(e,t,a)=>{"use strict";a.d(t,{default:()=>u});var s=a(95155),l=a(12115),r=a(98500),i=a.n(r),d=a(35497),o=a(3534),c=a(28777),n=a(10761);function u({toolId:e,machineId:t}){let a=o.dM[e],[r,v]=(0,l.useState)([]),[x,m]=(0,l.useState)(!0),[p,h]=(0,l.useState)({}),[b,f]=(0,l.useState)(!1),[E,j]=(0,l.useState)(!1),[g,P]=(0,l.useState)(""),[k,w]=(0,l.useState)(!1),[N,S]=(0,l.useState)(""),[y,A]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!0;return(async()=>{try{let[t,a,s,l]=await Promise.all([fetch("/api/providers"),fetch("/api/settings"),fetch("/api/tunnel/status"),fetch("/api/keys")]);if(!e)return;if(t.ok){let e=await t.json();v(e.connections||[])}if(a.ok){let e=await a.json();f(e.cloudEnabled||!1)}if(s.ok){let e=await s.json();j(!!(e.tunnel?.enabled||e.tunnel?.settingsEnabled)),P(e.tunnel?.publicUrl||""),w(!!(e.tailscale?.enabled||e.tailscale?.settingsEnabled)),S(e.tailscale?.tunnelUrl||"")}if(l.ok){let e=await l.json();A(e.keys||[])}}catch(e){console.log("Error loading tool data:",e)}finally{e&&m(!1)}})(),()=>{e=!1}},[]);let M=()=>r.filter(e=>!1!==e.isActive),$=(0,l.useCallback)((e,t,a)=>{h(s=>s[e]?.[t]===a?s:{...s,[e]:{...s[e],[t]:a}})},[]);return a?(0,s.jsxs)("div",{className:"flex w-full flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(i(),{href:"/dashboard/cli-tools",className:"mb-4 inline-flex h-8 items-center gap-1.5 rounded-lg border border-border bg-surface pl-1.5 pr-3 text-sm font-display font-medium text-text-main transition-colors hover:border-text-subtle hover:bg-surface-2 w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[17px] text-text-muted",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("h1",{className:"text-xl font-semibold text-text-main sm:text-2xl",children:a.name}),(0,s.jsx)("p",{className:"font-display text-sm text-text-muted",children:a.description})]}),x?(0,s.jsx)(d.Qv,{}):(()=>{let t,l,r,i=(t=M(),l=[],r=new Set,t.forEach(e=>{let t=c.Xg[e.provider]||e.provider,a=(0,c.KC)(e.provider);if(a.forEach(a=>{let s=`${t}/${a.id}`;r.has(s)||(r.add(s),l.push({value:s,label:`${t}/${a.id}`,provider:e.provider,alias:t,connectionName:e.name,modelId:a.id}))}),0===a.length){let a=e.providerSpecificData?.prefix||t,s=[];e.defaultModel&&s.push({id:e.defaultModel,name:e.defaultModel}),(e.providerSpecificData?.customModels||[]).forEach(e=>{e?.id&&!s.some(t=>t.id===e.id)&&s.push({id:e.id,name:e.name||e.id})}),0===s.length&&"active"===e.testStatus&&s.push({id:"model-id",name:`${a}/model-id`}),s.forEach(t=>{let s=`${a}/${t.id}`;r.has(s)||(r.add(s),l.push({value:s,label:`${a}/${t.id}`,provider:e.provider,alias:a,connectionName:e.name,modelId:t.id}))})}}),l).length>0,d={tool:a,isExpanded:!0,onToggle:()=>{},baseUrl:E&&g?g:window.location.origin,apiKeys:y,tunnelEnabled:E,tunnelPublicUrl:g,tailscaleEnabled:k,tailscaleUrl:N};switch(e){case"claude":return(0,s.jsx)(n.Tk,{...d,activeProviders:M(),modelMappings:p[e]||{},onModelMappingChange:(t,a)=>$(e,t,a),hasActiveProviders:i,cloudEnabled:b});case"codex":return(0,s.jsx)(n.Ah,{...d,activeProviders:M(),cloudEnabled:b});case"opencode":return(0,s.jsx)(n.qO,{...d,activeProviders:M(),cloudEnabled:b});case"cowork":return(0,s.jsx)(n.Q6,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b,cloudUrl:"",tunnelEnabled:E,tunnelPublicUrl:g,tailscaleEnabled:k,tailscaleUrl:N});case"droid":return(0,s.jsx)(n.ZM,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b});case"openclaw":return(0,s.jsx)(n.yZ,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b});case"hermes":return(0,s.jsx)(n.RF,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b});case"cline":return(0,s.jsx)(n.aG,{...d,activeProviders:M(),cloudEnabled:b});case"kilo":return(0,s.jsx)(n.c9,{...d,activeProviders:M(),cloudEnabled:b});case"deepseek-tui":return(0,s.jsx)(n.lF,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b});case"jcode":return(0,s.jsx)(n.mW,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b});case"grok-build":return(0,s.jsx)(n.E_,{...d,activeProviders:M(),hasActiveProviders:i,cloudEnabled:b});case"pi":case"omp":case"crush":case"forge":case"smelt":case"codewhale":return(0,s.jsx)(n.WE,{...d,activeProviders:M(),cloudEnabled:b});default:return(0,s.jsx)(n.a7,{toolId:e,...d,activeProviders:M(),cloudEnabled:b,tunnelEnabled:E})}})()]}):(0,s.jsxs)("div",{className:"flex w-full flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(i(),{href:"/dashboard/cli-tools",className:"mb-4 inline-flex h-8 items-center gap-1.5 rounded-lg border border-border bg-surface pl-1.5 pr-3 text-sm font-display font-medium text-text-main transition-colors hover:border-text-subtle hover:bg-surface-2 w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[17px] text-text-muted",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Tool not found or disabled."})]})}}},e=>{e.O(0,[763,5772,2470,705,3557,5497,761,8441,3794,7358],()=>e(e.s=61610)),_N_E=e.O()}]);
|
package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-946dbaff84568fd1.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3649],{19255:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>$});var a=s(95155),l=s(12115),r=s(44923),n=s(87256),o=s(39768),i=s(5020),d=s(35497),c=s(11059),m=s(929),x=s(67899),u=s(88105),p=s(98500),h=s.n(p),b=s(14051),f=s.n(b);let g={fallback:{icon:"swap_horiz"},"round-robin":{icon:"autorenew"},smart:{icon:"psychology"},fusion:{icon:"all_inclusive"}};function y({options:e,value:t,onChange:s,className:r}){let[n,o]=(0,l.useState)(!1),i=(0,l.useRef)(null);(0,l.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let d=e.find(e=>e.value===t)||e[0];return(0,a.jsxs)("div",{className:r,ref:i,children:[(0,a.jsxs)("button",{type:"button",onClick:()=>o(e=>!e),"aria-haspopup":"listbox","aria-expanded":n,className:"flex h-9 w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 font-display text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary dark:text-primary",children:g[t]?.icon||"label"}),(0,a.jsx)("span",{className:"flex-1 truncate text-left",children:d?.label}),(0,a.jsx)("span",{className:`material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150 ${n?"rotate-180":""}`,children:"expand_more"})]}),n&&(0,a.jsx)("div",{role:"listbox",className:"absolute left-0 right-0 z-30 mt-2 overflow-hidden rounded-xl border border-border bg-surface p-1 shadow-[var(--shadow-elevated)]",children:e.map(e=>{let l=e.value===t,r=g[e.value]||{icon:"label"};return(0,a.jsxs)("button",{type:"button",role:"option","aria-selected":l,onClick:()=>{s(e.value),o(!1)},className:`group flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm transition-colors ${l?"bg-surface-2 text-text-main":"text-text-muted hover:text-primary dark:hover:text-primary"}`,children:[(0,a.jsx)("span",{className:`material-symbols-outlined text-[18px] ${l?"text-text-main":"text-text-subtle group-hover:text-primary dark:group-hover:text-primary"}`,children:r.icon}),(0,a.jsx)("span",{className:"flex-1 font-display",children:e.label}),l&&(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary dark:text-primary",children:"check"})]},e.value)})})]})}y.propTypes={options:f().arrayOf(f().shape({value:f().string.isRequired,label:f().string.isRequired})).isRequired,value:f().string.isRequired,onChange:f().func.isRequired,className:f().string};let j=/^[a-zA-Z0-9_.\-]+$/,v=[{key:"vision",label:"Vision",icon:"visibility",desc:"images (png, jpg, webp, …)"},{key:"audioInput",label:"Audio",icon:"graphic_eq",desc:"audio input"}],N="oc/mimo-v2.6-flash-free",w={enabled:!0,roundRobin:!1,models:[]},k={vision:{...w},pdf:{...w},audioInput:{...w},videoInput:{...w}},C=e=>"oc/mimo-v2.5-free"===e?N:e,S=[{value:"fallback",label:"Fallback - try in order"},{value:"round-robin",label:"Round Robin - rotate"},{value:"smart",label:"Smart Router - System One"},{value:"fusion",label:"Fusion - panel + judge"}];function $(){let e,[t,s]=(0,l.useState)([]),[r,n]=(0,l.useState)(!0),[o,i]=(0,l.useState)(!1),[x,u]=(0,l.useState)(null),[p,h]=(0,l.useState)([]),[b,f]=(0,l.useState)({}),[g,y]=(0,l.useState)(k),{getCaps:j}=(0,m.y)(),[N,$]=(0,l.useState)(null),[M,R]=(0,l.useState)(null),[A,T]=(0,l.useState)([]),[F,_]=(0,l.useState)(!1),[D,z]=(0,l.useState)(""),[q,L]=(0,l.useState)(1),{copied:I,copy:J}=(0,c.C)();(0,l.useEffect)(()=>{X()},[]),(0,l.useEffect)(()=>{let e=new Set(t.map(e=>e.id));T(t=>t.filter(t=>e.has(t)))},[t]),(0,l.useEffect)(()=>{L(1)},[D,t]);let V=t.filter(e=>A.includes(e.id)),B=A.length>0,G=D.trim().toLowerCase(),Q=G?t.filter(e=>!!String(e.name||"").toLowerCase().includes(G)||(e.models||[]).some(e=>String(e).toLowerCase().includes(G))):t,Z=Math.max(1,Math.ceil(Q.length/3)),W=Math.min(q,Z),H=Q.slice((W-1)*3,3*W),K=Q.length>0&&Q.every(e=>A.includes(e.id)),U=()=>T([]),Y=async e=>{let t="cursor"===e?"Cursor Default":"Claude Default";R(e);try{let s=await fetch(`/api/combos/presets?source=${e}`),a=await s.json();if(!s.ok)return void alert(a.error||`Failed to preview ${t}`);let l=a.toCreate??(a.items||[]).filter(e=>!e.exists).length,r=a.toSkip??(a.items||[]).filter(e=>e.exists).length,n=(a.items||[]).length;if(0===n)return void alert(`No ${t} models available to generate.`);if(0===l)return void alert(`All ${n} ${t} combos already exist. Nothing to create.`);$({title:`Generate ${t}`,message:`Create ${l} combo${1===l?"":"s"} named like ${"cursor"===e?"Cursor":"Claude"} model IDs (seeded with cu/… or cc/…). ${r} already exist and will be skipped. You can edit any combo afterward to add fallbacks.`,confirmText:"Generate",variant:"primary",onConfirm:async()=>{$(e=>e?{...e,loading:!0}:null);try{let s=await fetch("/api/combos/presets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:e})}),a=await s.json();if(!s.ok)return void alert(a.error||`Failed to generate ${t}`);await X(),$(null)}catch(e){console.log(`Error generating ${t}:`,e),alert(`Failed to generate ${t}`),$(e=>e?{...e,loading:!1}:null)}}})}catch(e){console.log(`Error previewing ${t}:`,e),alert(`Failed to preview ${t}`)}finally{R(null)}},X=async()=>{try{let[t,a,l]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings")]),r=await t.json(),n=await a.json(),o=l.ok?await l.json():{};t.ok&&s((r.combos||[]).filter(e=>!e.kind||"llm"===e.kind)),a.ok&&h((n.connections||[]).filter(e=>!1!==e.isActive)),f(o.comboStrategies||{});let i=o.capacityAdapter||{},d={};for(let t of v){var e;d[t.key]=(e=i[t.key],Array.isArray(e)?{enabled:!0,roundRobin:!1,models:e.map(e=>C(e?.model||e)).filter(Boolean)}:e&&"object"==typeof e?{enabled:!1!==e.enabled,roundRobin:!!e.roundRobin,models:Array.isArray(e.models)?e.models.map(C).filter(Boolean):[]}:{...w})}y(d)}catch(e){console.log("Error fetching data:",e)}finally{n(!1)}},ee=async e=>{y(e);try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({capacityAdapter:e})})}catch(e){console.log("Error updating capacity adapter:",e)}},et=async e=>{try{let t=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok)await X(),i(!1);else{let e=await t.json();alert(e.error||"Failed to create combo")}}catch(e){console.log("Error creating combo:",e)}},es=async(e,t)=>{try{let s=await fetch(`/api/combos/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(s.ok)await X(),u(null);else{let e=await s.json();alert(e.error||"Failed to update combo")}}catch(e){console.log("Error updating combo:",e)}},ea=(e,t=b)=>{let s={...t};for(let t of e)delete s[t];return s},el=async e=>{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:e})}),f(e)},er=async e=>{let a=t.find(t=>t.id===e);$({title:"Delete Combo",message:a?`Delete combo "${a.name}"?`:"Delete this combo?",onConfirm:async()=>{$(e=>e?{...e,loading:!0}:null);try{(await fetch(`/api/combos/${e}`,{method:"DELETE"})).ok&&(a?.name&&await el(ea([a.name])),s(t=>t.filter(t=>t.id!==e)),T(t=>t.filter(t=>t!==e))),$(null)}catch(e){console.log("Error deleting combo:",e),$(e=>e?{...e,loading:!1}:null)}}})},en=async(e,t)=>{try{let s={...b},a={...s[e]||{},...t};a.fallbackStrategy&&"fallback"!==a.fallbackStrategy?s[e]=a:delete s[e],await el(s)}catch(e){console.log("Error updating combo strategy:",e)}},eo=async e=>{if(0!==V.length&&e){_(!0);try{let t={...b};for(let s of V)e&&"fallback"!==e?t[s.name]={...t[s.name]||{},fallbackStrategy:e}:delete t[s.name];await el(t)}catch(e){console.log("Error bulk updating combo strategy:",e),alert("Failed to update strategy for selected combos")}finally{_(!1)}}};return r?(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)(d.Qv,{}),(0,a.jsx)(d.Qv,{})]}):(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("h2",{className:"font-display text-lg font-semibold text-text-main",children:"Combos"}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Group models under one name, then pick a routing strategy per combo."})]}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:items-stretch",children:[(0,a.jsx)(d.$n,{icon:"add",onClick:()=>i(!0),className:"w-full sm:w-auto whitespace-nowrap font-display",children:"Create Combo"}),(0,a.jsxs)("div",{className:"hidden",children:[(0,a.jsx)(d.$n,{variant:"secondary",size:"sm",icon:"edit_note",loading:"cursor"===M,disabled:!!M,onClick:()=>Y("cursor"),className:"w-full whitespace-nowrap",children:"Cursor Default"}),(0,a.jsx)(d.$n,{variant:"secondary",size:"sm",icon:"smart_toy",loading:"claude"===M,disabled:!!M,onClick:()=>Y("claude"),className:"w-full whitespace-nowrap",children:"Claude Default"})]})]})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2 xl:grid-cols-4",children:[{name:"Fallback",desc:"Tries models in order, next on failure",icon:"swap_horiz"},{name:"Round Robin",desc:"Rotates models across requests",icon:"autorenew"},{name:"Smart Router",desc:"System One picks the optimal model",icon:"psychology"},{name:"Fusion",desc:"Runs all models, a judge synthesizes",icon:"all_inclusive"}].map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-2.5 rounded-xl border border-border bg-surface px-3.5 py-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px] shrink-0 text-primary dark:text-primary",children:e.icon}),(0,a.jsxs)("span",{className:"min-w-0",children:[(0,a.jsx)("span",{className:"block font-display text-[13px] font-semibold text-text-main",children:e.name}),(0,a.jsx)("span",{className:"mt-0.5 block font-display text-xs leading-snug text-text-muted",children:e.desc})]})]},e.name))}),0===t.length?(0,a.jsx)(d.Zp,{children:(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px] text-primary dark:text-primary mb-4 block",children:"layers"}),(0,a.jsx)("p",{className:"text-text-main font-display font-medium mb-1",children:"No combos yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create model combos with fallback support"}),(0,a.jsx)(d.$n,{icon:"add",onClick:()=>i(!0),className:"w-full sm:w-auto font-display",children:"Create Combo"})]})}):(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"relative w-full",children:[(0,a.jsx)("span",{className:"material-symbols-outlined pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-[18px] text-text-muted",children:"search"}),(0,a.jsx)("input",{type:"text",value:D,onChange:e=>z(e.target.value),placeholder:"Search combos…","aria-label":"Search combos",className:"h-9 w-full rounded-lg border border-border bg-surface-2 pl-9 pr-9 text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60"}),D&&(0,a.jsx)("button",{type:"button",onClick:()=>z(""),"aria-label":"Clear search",className:"absolute right-2 top-1/2 -translate-y-1/2 rounded p-1 text-text-muted transition-colors hover:text-text-main",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 rounded-lg bg-surface-2/60 px-3 py-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 font-mono text-[10px] uppercase tracking-wider text-text-muted hover:text-text-main select-none",children:[(0,a.jsx)("input",{type:"checkbox",checked:K,ref:e=>{e&&(e.indeterminate=B&&!K)},onChange:()=>{T(K?[]:Q.map(e=>e.id))},className:"h-3.5 w-3.5 rounded border-gray-300 text-primary focus:ring-text-subtle/60"}),(0,a.jsx)("span",{children:B?`${A.length} selected`:`Select all (${Q.length})`})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[G&&(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:[Q.length," of ",t.length," shown"]}),B&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"w-full min-w-[160px] sm:w-[200px]",children:(0,a.jsx)(d.l6,{options:S,value:"",placeholder:"Set strategy…",disabled:F,onChange:e=>{let t=e.target.value;t&&eo(t)},selectClassName:"py-1.5 text-xs"})}),(0,a.jsxs)(d.$n,{size:"sm",variant:"danger",icon:"delete",disabled:F,loading:F,onClick:()=>{if(0===V.length)return;let e=V.length;$({title:"Delete Selected Combos",message:`Delete ${e} selected combo${1===e?"":"s"}? This cannot be undone.`,confirmText:"Delete",variant:"danger",onConfirm:async()=>{$(e=>e?{...e,loading:!0}:null),_(!0);try{let e=V.map(e=>e.id),t=V.map(e=>e.name),a=(await Promise.all(e.map(e=>fetch(`/api/combos/${e}`,{method:"DELETE"})))).filter(e=>!e.ok).length;await el(ea(t)),s(t=>t.filter(t=>!e.includes(t.id))),U(),$(null),a>0&&alert(`Deleted with ${a} failure${1===a?"":"s"}.`)}catch(e){console.log("Error bulk deleting combos:",e),alert("Failed to delete selected combos"),$(e=>e?{...e,loading:!1}:null)}finally{_(!1)}}})},className:"whitespace-nowrap",children:["Delete (",A.length,")"]}),(0,a.jsx)(d.$n,{size:"sm",variant:"ghost",onClick:U,disabled:F,children:"Clear"})]})]})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(e=Object.fromEntries(t.map(e=>[e.name,e.models])),0===Q.length?(0,a.jsx)(d.Zp,{children:(0,a.jsxs)("div",{className:"text-center py-10",children:[(0,a.jsxs)("p",{className:"text-text-main font-medium mb-1",children:["No combos match “",D.trim(),"”"]}),(0,a.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Try a shorter query, or clear the search to see all ",t.length," combos."]}),(0,a.jsx)(d.$n,{variant:"secondary",onClick:()=>z(""),children:"Clear search"})]})}):H.map(t=>(0,a.jsx)(E,{combo:t,getCaps:j,comboByName:e,activeProviders:p,copied:I,onCopy:J,onEdit:()=>u(t),onDelete:()=>er(t.id),strategy:b[t.name]||{},onSetStrategy:e=>en(t.name,e),selected:A.includes(t.id),onToggleSelect:()=>{var e;return e=t.id,void T(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}},t.id))),Z>1&&(0,a.jsxs)("div",{className:"mt-1 flex items-center justify-center gap-1.5",children:[(0,a.jsx)("button",{type:"button",onClick:()=>L(e=>Math.max(1,e-1)),disabled:W<=1,"aria-label":"Previous page",className:"grid size-8 place-items-center rounded-lg border border-border bg-surface text-text-muted transition-colors hover:text-text-main disabled:cursor-not-allowed disabled:opacity-40",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"chevron_left"})}),Array.from({length:Z},(e,t)=>t+1).map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>L(e),className:`grid size-8 min-w-8 place-items-center rounded-lg border px-2 font-mono text-[11px] uppercase tracking-wider transition-colors ${e===W?"border-primary bg-primary text-white dark:text-amber-950":"border-border bg-surface text-text-muted hover:text-text-main"}`,children:e},e)),(0,a.jsx)("button",{type:"button",onClick:()=>L(e=>Math.min(Z,e+1)),disabled:W>=Z,"aria-label":"Next page",className:"grid size-8 place-items-center rounded-lg border border-border bg-surface text-text-muted transition-colors hover:text-text-main disabled:cursor-not-allowed disabled:opacity-40",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"chevron_right"})})]})]})]}),(0,a.jsx)(O,{capacityAdapter:g,onChange:ee,activeProviders:p,getCaps:j}),o&&(0,a.jsx)(P,{isOpen:o,onClose:()=>i(!1),onSave:et,activeProviders:p},"create"),x&&(0,a.jsx)(P,{isOpen:!!x,combo:x,onClose:()=>u(null),onSave:e=>es(x.id,e),activeProviders:p},x.id),(0,a.jsx)(d.uo,{isOpen:!!N,onClose:()=>!N?.loading&&$(null),onConfirm:N?.onConfirm,title:N?.title||"Confirm",message:N?.message,confirmText:N?.confirmText||"Confirm",variant:N?.variant||"danger",loading:!!N?.loading})]})}let M=e=>{if(!e)return"?";if(e>=1e6){let t=e/1e6;return`${Number.isInteger(t)?t:t.toFixed(1)}M`}return`${Math.round(e/1e3)}k`};function E({combo:e,getCaps:t,comboByName:s={},activeProviders:r=[],copied:n,onCopy:o,onEdit:i,onDelete:c,strategy:m={},onSetStrategy:p,selected:b=!1,onToggleSelect:f}){let g,j,v,N,w,k,C,[$,O]=(0,l.useState)(!1),[R,A]=(0,l.useState)(!1),[P,T]=(0,l.useState)(!1),F=m.fallbackStrategy||"fallback",_=m.judgeModel||"",D=m.routerModel||"",z=(0,x.Q5)(e.models,s,t);return(0,a.jsxs)(d.Zp,{padding:"sm",className:`group ${b?"ring-1 ring-text-subtle/50 bg-surface-2/60":""}`,children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,a.jsx)("label",{className:"flex shrink-0 items-center pt-1 sm:pt-0 cursor-pointer",title:"Select combo",children:(0,a.jsx)("input",{type:"checkbox",checked:b,onChange:f,onClick:e=>e.stopPropagation(),className:"h-4 w-4 rounded border-gray-300 text-primary focus:ring-text-subtle/60","aria-label":`Select ${e.name}`})}),(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary dark:text-primary shrink-0",children:"layers"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("code",{className:"block truncate font-display text-sm font-semibold text-text-main",children:e.name}),(0,a.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===e.models.length?(0,a.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wider text-text-muted",children:"No models"}):e.models.slice(0,3).map((e,l)=>(0,a.jsxs)("code",{className:"inline-flex items-center gap-1 rounded bg-surface-2 px-1.5 py-0.5 font-mono text-xs text-text-muted",children:[(0,a.jsx)("span",{children:e}),(0,a.jsx)(d.nh,{caps:s[e]?(0,x.Q5)(s[e],s,t):t?.(e)})]},l)),e.models.length>3&&(0,a.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",e.models.length-3," more"]})]}),z&&(0,a.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-[10px] text-text-muted",children:[(0,a.jsxs)("span",{children:["ctx ",M(z.contextWindow)]}),(0,a.jsx)("span",{className:"opacity-40",children:"\xb7"}),(0,a.jsxs)("span",{children:["max ",M(z.maxOutput)]})]}),"fusion"===F&&(0,a.jsxs)("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Judge"}),(0,a.jsxs)("button",{onClick:()=>O(!0),className:"inline-flex max-w-full items-center gap-1 rounded border border-dashed border-text-subtle px-1.5 py-0.5 font-mono text-[11px] text-text-muted hover:border-text-main hover:text-text-main transition-colors",title:"Pick the model that fuses panel answers",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"gavel"}),(0,a.jsx)("span",{className:"truncate",children:_||`Auto - ${e.models[0]||"first model"}`})]}),_&&(0,a.jsx)("button",{onClick:()=>p({judgeModel:""}),className:"p-0.5 rounded text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-colors",title:"Reset judge to Auto",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"close"})})]}),"smart"===F&&(v=-1!==(j=(g="string"==typeof D&&D.trim()?D.trim():"oc/jev-1.13-free").indexOf("/"))?g.slice(0,j):g,N=(0,u.rs)(v),w=u.Q2[N],k=w?.noAuth?{ready:!0,label:"Ready (Free)",providerId:N}:(r||[]).some(e=>e.provider===N&&!1!==e.isActive)?{ready:!0,label:"Connected",providerId:N}:{ready:!1,label:"Not configured",providerId:N},C=function(e={}){let t=e.smartPolicy||(!1===e.sessionSticky?"per-turn":"smart");if("strict"===t)return"Strict Lock";if("per-turn"===t)return"Per-Turn";if("custom"===t){let t=e.confidenceThreshold,s=Math.round((t||.8)*(t&&t<=1?100:1));return`Custom (≥${s||80}%)`}return"Smart (≥80%)"}(m),(0,a.jsxs)("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Router"}),(0,a.jsxs)("button",{onClick:()=>A(!0),className:"inline-flex max-w-full items-center gap-1 rounded border border-dashed border-text-subtle px-1.5 py-0.5 font-mono text-[11px] text-text-muted hover:border-text-main hover:text-text-main transition-colors",title:"Pick the System One model that decides model routing",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"psychology"}),(0,a.jsx)("span",{className:"truncate",children:D||"Auto - oc/jev-1.13-free"})]}),k.ready?(0,a.jsx)(d.Ex,{variant:"success",size:"sm",dot:!0,children:k.label}):(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,a.jsx)(d.Ex,{variant:"error",size:"sm",dot:!0,children:k.label}),(0,a.jsx)(h(),{href:`/dashboard/media-providers/systemone/${k.providerId}`,className:"text-[10px] text-text-muted hover:text-text-main hover:underline font-medium",title:"Configure in Media Providers",children:"Configure"})]}),(0,a.jsxs)("button",{onClick:()=>T(!0),className:"inline-flex items-center gap-1 rounded border border-border bg-surface-2 px-2 py-0.5 text-[11px] text-text-main hover:border-text-subtle transition-colors",title:"Configure routing policy and prompt cache retention",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px] text-text-muted",children:"tune"}),(0,a.jsx)("span",{className:"font-medium",children:C})]}),D&&(0,a.jsx)("button",{onClick:()=>p({routerModel:""}),className:"p-0.5 rounded text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-colors",title:"Reset router to Auto",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"close"})})]}))]})]}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,a.jsx)("div",{className:"relative w-full sm:w-60",children:(0,a.jsx)(y,{options:S,value:F,onChange:e=>p({fallbackStrategy:e})})}),(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-1 sm:flex sm:items-center",children:[(0,a.jsx)("button",{onClick:t=>{t.stopPropagation(),o(e.name,`combo-${e.id}`)},className:"flex items-center justify-center rounded-lg p-2 text-text-muted transition-colors hover:bg-surface-2 hover:text-text-main",title:"Copy combo name",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:n===`combo-${e.id}`?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:i,className:"flex items-center justify-center rounded-lg p-2 text-text-muted transition-colors hover:bg-surface-2 hover:text-text-main",title:"Edit",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,a.jsx)("button",{onClick:c,className:"flex items-center justify-center rounded-lg p-2 text-red-500 transition-colors hover:bg-red-500/10",title:"Delete",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]})]}),$&&(0,a.jsx)(d.rq,{isOpen:$,onClose:()=>O(!1),onSelect:e=>{p({judgeModel:e?.value||""}),O(!1)},activeProviders:r,title:"Select Judge Model",addedModelValues:_?[_]:[],closeOnSelect:!0}),R&&(0,a.jsx)(d.rq,{isOpen:R,onClose:()=>A(!1),onSelect:e=>{p({routerModel:e?.value||""}),A(!1)},activeProviders:r,title:"Select System One Router Model",kindFilter:"systemone",addedModelValues:D?[D]:[],closeOnSelect:!0}),P&&(0,a.jsx)(d.TJ,{isOpen:P,onClose:()=>T(!1),comboName:e.name,currentPolicy:m.smartPolicy||(!1===m.sessionSticky?"per-turn":"smart"),currentThreshold:m.confidenceThreshold??80,onSave:p})]})}function O({capacityAdapter:e,onChange:t,activeProviders:s,getCaps:l}){return(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"font-display text-sm font-semibold text-text-main",children:"Vision Adapter"}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Your model can't read image/audio? Auto-switches to a model in the pool below."})]})}),(0,a.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:v.map(r=>(0,a.jsx)(R,{cap:r,entry:e[r.key]||w,onChange:s=>t({...e,[r.key]:s}),activeProviders:s,getCaps:l},r.key))})]})}function R({cap:e,entry:t,onChange:s,activeProviders:r,getCaps:n}){let[o,i]=(0,l.useState)(!1),{enabled:c,roundRobin:m,models:x}=t,u=e=>s({...t,...e}),p=(e,t)=>{let s=e+t;if(s<0||s>=x.length)return;let a=[...x];[a[e],a[s]]=[a[s],a[e]],u({models:a})};return(0,a.jsxs)(d.Zp,{padding:"sm",className:`group ${!c?"opacity-50":""}`,children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[22px] shrink-0 text-primary dark:text-primary",children:e.icon}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)("h3",{className:"font-display text-sm font-semibold text-text-main",children:e.label}),(0,a.jsx)(d.lM,{checked:c,onChange:e=>u({enabled:e}),"aria-label":`Enable ${e.label} adapter`})]}),(0,a.jsx)("p",{className:"mt-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:e.desc})]})]}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>i(!0),disabled:!c,className:`inline-flex items-center justify-center gap-1.5 rounded-lg border px-3 py-1.5 font-display text-xs font-medium transition-colors sm:w-auto ${c?"border-border bg-surface text-text-muted hover:border-text-subtle hover:text-text-main":"cursor-not-allowed border-border bg-surface-2 text-text-muted/40"}`,title:`Add ${e.label} model`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]",children:"add"}),"Add Model"]}),(0,a.jsxs)("button",{type:"button",onClick:()=>u({roundRobin:!m}),disabled:!c,"aria-pressed":m,className:`inline-flex items-center justify-center gap-1.5 rounded-full border px-2.5 py-1 font-mono text-[10px] uppercase tracking-wider transition-colors ${m?"border-primary bg-primary text-white dark:text-amber-950":c?"border-border bg-surface text-text-muted hover:border-text-subtle hover:text-text-main":"cursor-not-allowed border-border bg-surface-2 text-text-muted/40"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:m?"autorenew":"sync"}),"Round"]})]})]}),0===x.length?(0,a.jsxs)("div",{className:"mt-4 rounded-lg border border-dashed border-border py-3 text-center font-mono text-[11px] uppercase tracking-wider text-text-muted",children:["No models in pool (will fallback to ",N,")"]}):(0,a.jsx)("div",{className:"mt-4 overflow-hidden rounded-xl border border-border",children:(0,a.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"border-b border-border bg-surface-2/60 text-text-muted",children:[(0,a.jsx)("th",{className:"w-12 px-3 py-2 font-medium text-center",children:"#"}),(0,a.jsx)("th",{className:"px-3 py-2 font-medium",children:"Model"}),(0,a.jsx)("th",{className:"w-24 px-3 py-2 font-medium text-center",children:"Order"}),(0,a.jsx)("th",{className:"w-12 px-3 py-2 font-medium text-right"})]})}),(0,a.jsx)("tbody",{className:"divide-y divide-border font-mono",children:x.map((e,t)=>(0,a.jsxs)("tr",{className:"hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,a.jsxs)("td",{className:"px-3 py-2 text-center text-text-muted text-[11px] font-sans",children:["#",t+1]}),(0,a.jsx)("td",{className:"px-3 py-2 text-text-main",children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,a.jsx)("span",{className:"truncate",children:e}),(0,a.jsx)(d.nh,{caps:n?.(e)}),e===N&&(0,a.jsx)("span",{className:"rounded bg-surface-2 px-1.5 py-0.5 font-sans text-[10px] font-medium text-text-muted",children:"free default"})]})}),(0,a.jsx)("td",{className:"px-3 py-2 text-center",children:(0,a.jsxs)("div",{className:"inline-flex items-center gap-1",children:[(0,a.jsx)("button",{type:"button",onClick:()=>p(t,-1),disabled:!c||0===t,className:`p-1 rounded transition-colors ${!c||0===t?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-text-main hover:bg-surface-2"}`,title:"Move up",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"arrow_upward"})}),(0,a.jsx)("button",{type:"button",onClick:()=>p(t,1),disabled:!c||t===x.length-1,className:`p-1 rounded transition-colors ${!c||t===x.length-1?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-text-main hover:bg-surface-2"}`,title:"Move down",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"arrow_downward"})})]})}),(0,a.jsx)("td",{className:"px-3 py-2 text-right",children:(0,a.jsx)("button",{type:"button",onClick:()=>{let e;u({models:0===(e=x.filter((e,s)=>s!==t)).length?[N]:e})},disabled:!c,className:`p-1 rounded transition-colors ${!c?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-red-500 hover:bg-red-500/10"}`,title:"Remove model",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"close"})})})]},`${e}-${t}`))})]})}),o&&(0,a.jsx)(d.rq,{isOpen:o,onClose:()=>i(!1),onSelect:e=>{let t=e?.value||e?.name||e;!t||x.includes(t)||u({models:[...x,t]})},onDeselect:e=>{let t=e?.value||e?.name||e,s=x.filter(e=>e!==t);u({models:0===s.length?[N]:s})},activeProviders:r,title:`Add ${e.label} Model`,addedModelValues:x,capFilter:e.key,closeOnSelect:!1})]})}function A({id:e,index:t,model:s,isFirst:r,isLast:i,onEdit:d,onMoveUp:c,onMoveDown:m,onRemove:x}){let{attributes:u,listeners:p,setNodeRef:h,transform:b,isDragging:f}=(0,n.gl)({id:e}),g={transform:o.Ks.Transform.toString(b),opacity:f?.4:1,zIndex:f?999:void 0},[y,j]=(0,l.useState)(!1),[v,N]=(0,l.useState)(s),w=()=>{let e=v.trim();e&&e!==s?d(e):N(s),j(!1)};return(0,a.jsxs)("div",{ref:h,style:g,className:`group flex min-w-0 items-center gap-1.5 rounded-md px-2 py-1 bg-surface-2/60 hover:bg-surface-2 transition-colors ${f?"shadow-md ring-1 ring-text-subtle/50":""}`,children:[(0,a.jsx)("button",{...u,...p,type:"button",className:"cursor-grab touch-none p-0.5 rounded text-text-muted hover:text-text-main active:cursor-grabbing shrink-0",title:"Drag to reorder",children:(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,a.jsx)("circle",{cx:"9",cy:"4",r:"2"}),(0,a.jsx)("circle",{cx:"15",cy:"4",r:"2"}),(0,a.jsx)("circle",{cx:"9",cy:"12",r:"2"}),(0,a.jsx)("circle",{cx:"15",cy:"12",r:"2"}),(0,a.jsx)("circle",{cx:"9",cy:"20",r:"2"}),(0,a.jsx)("circle",{cx:"15",cy:"20",r:"2"})]})}),(0,a.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:t+1}),y?(0,a.jsx)("input",{autoFocus:!0,value:v,onChange:e=>N(e.target.value),onBlur:w,onKeyDown:e=>{"Enter"===e.key&&w(),"Escape"===e.key&&(N(s),j(!1))},className:"min-w-0 flex-1 rounded border border-text-subtle bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,a.jsx)("div",{className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-surface-2",onClick:()=>j(!0),title:"Click to edit",children:s}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,a.jsx)("button",{onClick:c,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-text-main hover:bg-surface-2"}`,title:"Move up",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,a.jsx)("button",{onClick:m,disabled:i,className:`p-0.5 rounded ${i?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-text-main hover:bg-surface-2"}`,title:"Move down",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,a.jsx)("button",{onClick:x,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function P({isOpen:e,combo:t,onClose:s,onSave:o,activeProviders:c,kindFilter:m=null}){let[x,u]=(0,l.useState)(t?.name||""),[p,h]=(0,l.useState)(t?.models||[]),[b,f]=(0,l.useState)(!1),[g,y]=(0,l.useState)(!1),[v,N]=(0,l.useState)(""),[w,k]=(0,l.useState)({}),C=(0,r.FR)((0,r.MS)(r.AN,{activationConstraint:{distance:5}}),(0,r.MS)(r.uN,{coordinateGetter:n.JR})),S=p.map((e,t)=>({uid:`item-${t}`,model:e})),$=async()=>{try{let e=await fetch("/api/models/alias");if(!e.ok)return;let t=await e.json();k(t.aliases||{})}catch(e){console.error("Error fetching modal data:",e)}};(0,l.useEffect)(()=>{e&&$()},[e]);let M=e=>e.trim()?j.test(e)?(N(""),!0):(N("Only letters, numbers, -, _ and . allowed"),!1):(N("Name is required"),!1),E=async()=>{M(x)&&(y(!0),await o({name:x.trim(),models:p}),y(!1))},O=!!t;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d.aF,{isOpen:e,onClose:s,title:O?"Edit Combo":"Create Combo",children:(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(d.pd,{label:"Combo Name",value:x,onChange:e=>{let t=e.target.value;u(t),t?M(t):N("")},placeholder:"my-combo",error:v}),(0,a.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:"Only letters, numbers, -, _ and . allowed"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===p.length?(0,a.jsxs)("div",{className:"text-center py-4 border border-dashed border-border rounded-lg bg-surface-2/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-xl text-primary dark:text-primary mb-1",children:"layers"}),(0,a.jsx)("p",{className:"font-mono text-[11px] uppercase tracking-wider text-text-muted",children:"No models added yet"})]}):(0,a.jsx)(r.Mp,{sensors:C,collisionDetection:r.fp,onDragEnd:e=>{let{active:t,over:s}=e;if(s&&t.id!==s.id){let e=S.findIndex(e=>e.uid===t.id),a=S.findIndex(e=>e.uid===s.id);-1!==e&&-1!==a&&h(t=>(0,n.be)(t,e,a))}},modifiers:[i.FN,i.gj],children:(0,a.jsx)(n.gB,{items:S.map(e=>e.uid),strategy:n._G,children:(0,a.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:S.map(({uid:e,model:t},s)=>(0,a.jsx)(A,{id:e,index:s,model:t,isFirst:0===s,isLast:s===S.length-1,onEdit:e=>{let t=[...p];t[s]=e,h(t)},onMoveUp:()=>(e=>{if(0===e)return;let t=[...p];[t[e-1],t[e]]=[t[e],t[e-1]],h(t)})(s),onMoveDown:()=>(e=>{if(e===p.length-1)return;let t=[...p];[t[e],t[e+1]]=[t[e+1],t[e]],h(t)})(s),onRemove:()=>{h(p.filter((e,t)=>t!==s))}},e))})})}),(0,a.jsxs)("button",{onClick:()=>f(!0),className:"w-full mt-2 py-2 border border-dashed border-border rounded-lg text-xs text-text-muted font-medium hover:text-text-main hover:border-text-subtle transition-colors flex items-center justify-center gap-1",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,a.jsx)(d.$n,{onClick:s,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,a.jsx)(d.$n,{onClick:E,fullWidth:!0,size:"sm",disabled:!x.trim()||!!v||g,children:g?"Saving...":O?"Save":"Create"})]})]})}),b&&(0,a.jsx)(d.rq,{isOpen:b,onClose:()=>f(!1),onSelect:e=>{p.includes(e.value)||h([...p,e.value])},onDeselect:e=>{h(p.filter(t=>t!==e.value))},activeProviders:c,modelAliases:w,title:"Add Model to Combo",kindFilter:m,addedModelValues:p,closeOnSelect:!1})]})}},84680:(e,t,s)=>{"use strict";s.d(t,{PM:()=>a.PM,Sj:()=>a.Sj,Vy:()=>a.Vy,fF:()=>a.fF,sl:()=>a.sl,vL:()=>a.vL,y$:()=>a.y$,zM:()=>a.zM});var a=s(44923)},91069:(e,t,s)=>{Promise.resolve().then(s.bind(s,19255))}},e=>{e.O(0,[763,5353,2470,705,3557,5497,8441,3794,7358],()=>e(e.s=91069)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[712],{44493:(e,t,l)=>{"use strict";l.d(t,{default:()=>b});var s=l(95155),r=l(12115),n=l(35497),a=l(90620),o=l(73006),i=l(31474);let x={"✅":"✓","❌":"✖","✗":"✖","✖":"✖","⚠️":"!","⚠":"!","\uD83D\uDCE5":"↓","\uD83D\uDCE4":"↑"};function c(e){return e.replace(/\p{Extended_Pictographic}(?:\uFE0F)?/gu,e=>x[e]||"")}function d(e){return"string"==typeof e?{level:/\b(FATAL|ERROR)\b|❌|✖|✗/.test(e)?"error":"log",text:c(e)}:{level:e.level||"log",text:c(e.text||"")}}let u={log:{label:null,labelCls:"",textCls:"text-text-muted"},debug:{label:null,labelCls:"",textCls:"text-text-subtle"},info:{label:"info",labelCls:"bg-sky-500/10 text-sky-600 dark:text-sky-400",textCls:"text-text-main"},warn:{label:"warn",labelCls:"bg-amber-500/10 text-amber-600 dark:text-amber-400",textCls:"text-text-main"},error:{label:"error",labelCls:"bg-red-500/10 text-red-600 dark:text-red-400",textCls:"text-text-main"}},m=[{id:"all",label:"All",levels:["log","info","warn","error","debug"]},{id:"warn-error",label:"Warn + Error",levels:["warn","error"]},{id:"error",label:"Errors only",levels:["error"]}];function b(){let[e,t]=(0,r.useState)([]),[l,x]=(0,r.useState)(!1),[c,b]=(0,r.useState)(!1),[p,g]=(0,r.useState)(!0),[f,h]=(0,r.useState)("warn-error"),[v,y]=(0,r.useState)(""),j=(0,r.useRef)(null),N=(0,r.useRef)(!1);(0,r.useEffect)(()=>{N.current=c},[c]);let w=async()=>{try{await fetch("/api/translator/console-logs",{method:"DELETE"})}catch(e){console.error("Failed to clear console logs:",e)}};(0,r.useEffect)(()=>{let e=new EventSource("/api/translator/console-logs/stream");e.onopen=()=>x(!0);let l=e=>{t(t=>{let l=[...t];for(let t of e){let e=d(t),s=l[l.length-1];l=s&&s.text===e.text&&s.level===e.level?[...l.slice(0,-1),{...s,count:(s.count||1)+1}]:[...l,{...e,count:1}]}return l.length>a.UY.maxLines?l.slice(-a.UY.maxLines):l})};return e.onmessage=e=>{let s=JSON.parse(e.data);"init"===s.type?t(s.logs.slice(-a.UY.maxLines).map(d)):"line"===s.type?N.current||l([s.line]):"lines"===s.type?N.current||l(s.lines):"clear"===s.type&&t([])},e.onerror=()=>x(!1),()=>e.close()},[]);let k=(0,r.useMemo)(()=>{let t=new Set((m.find(e=>e.id===f)||m[0]).levels),l=v.trim().toLowerCase();return e.filter(e=>!!t.has(e.level)&&(!l||e.text.toLowerCase().includes(l)))},[e,f,v]);return(0,r.useEffect)(()=>{p&&j.current&&(j.current.scrollTop=j.current.scrollHeight)},[k,p]),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"font-display text-2xl font-semibold tracking-tight text-text-main",children:"Console Log"}),(0,s.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:l?"Live server output":"Disconnected — reconnecting…"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("div",{className:"flex overflow-hidden rounded-lg border border-border text-xs",children:m.map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>h(e.id),className:(0,i.cn)("px-3 py-1.5 font-display font-medium transition-colors",f===e.id?"bg-surface-2 text-text-main":"bg-surface text-text-muted hover:text-text-main"),children:e.label},e.id))}),(0,s.jsx)("input",{type:"text",value:v,onChange:e=>y(e.target.value),placeholder:(0,o.Tl)("Filter lines…"),className:"h-8 w-40 rounded-lg border border-border bg-surface px-2.5 text-xs text-text-main outline-none placeholder:text-text-subtle focus:border-text-subtle"}),(0,s.jsxs)("button",{type:"button",onClick:()=>b(e=>!e),className:(0,i.cn)("inline-flex h-8 items-center gap-1.5 rounded-lg border px-3 text-xs font-display font-medium transition-colors",c?"border-text-subtle bg-surface-2 text-text-main":"border-border bg-surface text-text-main hover:bg-surface-2"),title:(0,o.Tl)(c?"Resume live streaming":"Pause live streaming"),children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:c?"play_arrow":"pause"}),c?"Resume":"Pause"]}),(0,s.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),className:(0,i.cn)("inline-flex h-8 items-center gap-1.5 rounded-lg border px-3 text-xs font-display font-medium transition-colors",p?"border-border bg-surface text-text-main hover:bg-surface-2":"border-text-subtle bg-surface-2 text-text-main"),title:(0,o.Tl)("Auto-scroll to newest logs"),children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"vertical_align_bottom"}),"Auto"]}),(0,s.jsxs)("button",{onClick:w,className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-lg border border-border bg-surface px-3.5 text-sm font-display font-medium text-text-main transition-colors hover:border-text-subtle hover:bg-surface-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[17px] text-text-muted",children:"delete"}),"Clear"]})]})]}),(0,s.jsx)(n.Zp,{padding:"none",children:(0,s.jsx)("div",{ref:j,className:"h-[calc(100vh-220px)] overflow-y-auto rounded-lg border border-border bg-bg p-4 font-mono text-xs leading-relaxed",children:0===k.length?(0,s.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-center",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-2xl text-text-subtle",children:"terminal"}),(0,s.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wider text-text-subtle",children:0===e.length?"No console logs yet.":"No matching lines."})]}):(0,s.jsx)("div",{className:"space-y-1.5",children:k.map((e,t)=>(0,s.jsx)("div",{children:function(e){var t;let l,r,n,a,{ts:o,tag:x,rest:c}=(r=(l=(t=e.text).match(/^\[([0-9:.]+)\]\s*/))?l[1]:null,{ts:r,tag:(a=(n=l?t.slice(l[0].length):t).match(/^\[([\w+-]+)\]\s*/))?a[1]:null,rest:a?n.slice(a[0].length):n}),d=u[e.level]||u.log,m=/^\s+at\s|^\s+\.\.\.|^Caused by:/.test(c);return(0,s.jsxs)("div",{className:(0,i.cn)("flex items-start gap-2 whitespace-pre-wrap break-words",m&&"text-text-subtle"),children:[d.label?(0,s.jsx)("span",{className:(0,i.cn)("shrink-0 rounded px-1.5 py-px font-mono text-[9px] uppercase tracking-wider leading-4",d.labelCls),children:d.label}):(0,s.jsx)("span",{className:"shrink-0 w-[6px]"}),o&&(0,s.jsx)("span",{className:"shrink-0 text-text-subtle",children:o}),x&&(0,s.jsxs)("span",{className:"shrink-0 text-text-subtle",children:["[",x,"]"]}),(0,s.jsx)("span",{className:(0,i.cn)(d.textCls),children:c}),e.count>1&&(0,s.jsxs)("span",{className:"shrink-0 rounded bg-surface-2 px-1.5 text-[10px] text-text-subtle",children:["\xd7",e.count]})]})}(e)},t))})})})]})}},76502:(e,t,l)=>{Promise.resolve().then(l.bind(l,44493))}},e=>{e.O(0,[763,2470,705,3557,5497,8441,3794,7358],()=>e(e.s=76502)),_N_E=e.O()}]);
|