keyrouter 1.0.1 β 1.0.3
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 +17 -17
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +18 -18
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/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 +1 -1
- 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 +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- 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.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.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.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.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.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.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.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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/!KGRhc2hib2FyZCk/dashboard/prompt-injection/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_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 +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- 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 +17 -17
- 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/412.js +2 -2
- package/app/.next-cli-build/server/chunks/5626.js +1 -0
- package/app/.next-cli-build/server/chunks/8128.js +1 -1
- 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.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/5497-bd4f9f37c29968bd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js +1 -0
- package/app/.next-cli-build/static/chunks/app/layout-cd4efdfec7b51ca9.js +1 -0
- package/app/.next-cli-build/static/css/841943e9a30fe5cd.css +1 -0
- package/app/package.json +1 -1
- package/app/public/icons/icon-192.svg +3 -1
- package/app/public/icons/icon-512.svg +3 -1
- package/app/src/lib/updater/updater.js +1 -1
- package/cli.js +82 -41
- package/package.json +1 -1
- package/src/cli/tray/icon.ico +0 -0
- package/src/cli/tray/icon.png +0 -0
- package/src/cli/utils/input.js +18 -11
- package/app/.next-cli-build/server/chunks/4756.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-4143e2f4a33b35c0.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js +0 -1
- package/app/.next-cli-build/static/chunks/app/layout-71be9ce7abb4aae6.js +0 -1
- package/app/.next-cli-build/static/css/40eba1d7174ab2f7.css +0 -1
- /package/app/.next-cli-build/static/{wTD5mq2ZL1sjwGEojp_4w β SaAkC7sXHdEDKHids4PIF}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{wTD5mq2ZL1sjwGEojp_4w β SaAkC7sXHdEDKHids4PIF}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/36966cca54120369-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/ad3cadf3cb03edcb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/40eba1d7174ab2f7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-398a58d48897ccf8.js" async=""></script><script src="/_next/static/chunks/3488-fd2f0bdef1a1217a.js" async=""></script><script src="/_next/static/chunks/2470-e9f1fd5f21c43fac.js" async=""></script><script src="/_next/static/chunks/app/layout-71be9ce7abb4aae6.js" async=""></script><script src="/_next/static/chunks/763-64b80a1ab0aa3cfc.js" async=""></script><script src="/_next/static/chunks/705-c8a7b6dfca9ca382.js" async=""></script><script src="/_next/static/chunks/3557-437defff109ccb42.js" async=""></script><script src="/_next/static/chunks/5497-4143e2f4a33b35c0.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js" async=""></script><script src="/_next/static/chunks/5772-9e7c7f235304c527.js" async=""></script><script src="/_next/static/chunks/761-00700c1c25957243.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-a2b00c8881f14ec7.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LC959F603F" as="script"/><meta name="theme-color" content="#0a0a0a"/><title>KeyRouter - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();","id":"theme-bootstrap"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}","id":"fonts-loaded-bootstrap"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_d8ebd1 __variable_c219ed font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full overflow-hidden bg-bg"><div class="fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2"></div><main class="flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate"><header class="shrink-0 z-20 flex flex-col bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none"><div class="flex items-center gap-3 py-2.5"><div class="mx-auto flex w-full max-w-7xl items-center gap-3 px-4 lg:px-8"><a class="group flex shrink-0 items-center gap-2.5" aria-label="KeyRouter Proxy home" href="/dashboard"><div class="grid size-9 shrink-0 place-items-center rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 text-white shadow-[var(--shadow-warm)] transition-transform duration-150 group-hover:scale-[1.04]"><span class="material-symbols-outlined text-[18px]">route</span></div><div class="leading-tight"><h1 class="font-display text-[15px] font-bold tracking-tight text-text-main">KeyRouter Proxy</h1><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">v<!-- -->1.0</span></div></a><div class="min-w-0 flex-1"></div><div class="flex items-center gap-1 shrink-0"><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Language" data-i18n-skip="true"><span class="text-lg leading-none">πΊπΈ</span></button><div class=""></div><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Theme"><span class="material-symbols-outlined">dark_mode</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Shutdown"><span class="material-symbols-outlined">power_settings_new</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Logout"><span class="material-symbols-outlined">logout</span></button></div></div></div><div class="border-b border-border-subtle px-4 py-1.5 lg:px-8"><nav class="scrollbar-hide flex w-full items-center overflow-x-auto"><div class="mx-auto flex items-center gap-1"><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/endpoint"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">api</span><span class="truncate">Endpoint</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/providers"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">dns</span><span class="truncate">Providers</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/combos"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">layers</span><span class="truncate">Combos</span></a><a aria-current="page" class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 bg-surface-2 text-text-main" href="/dashboard/cli-tools"><span class="material-symbols-outlined text-[18px] text-text-main">terminal</span><span class="truncate">CLI</span><span class="size-1 shrink-0 rounded-full bg-text-muted"></span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/usage"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">bar_chart</span><span class="truncate">Usage</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/quota"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">data_usage</span><span class="truncate">Quota</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/token-saver"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">savings</span><span class="truncate">Saver</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/media-providers/systemone"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">psychology</span><span class="truncate">System One</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/proxy-pools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">lan</span><span class="truncate">Proxies</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/skills"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">extension</span><span class="truncate">Skills</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/prompt-injection"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">skull</span><span class="truncate">Prompt</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/console-log"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">monitor</span><span class="truncate">Logs</span></a></div></nav></div></header><div class="flex-1 overflow-y-auto custom-scrollbar py-6 lg:py-10 px-4 lg:px-8 "><div class="max-w-7xl mx-auto"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4"><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div></div><!--$--><!--/$--></div></div></main></div><script src="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:\"static/chunks/3488-fd2f0bdef1a1217a.js\"\n3:\"static/chunks/2470-e9f1fd5f21c43fac.js\"\n4:\"static/chunks/app/layout-71be9ce7abb4aae6.js\"\n5:I[42593,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"\"]\n6:\"static/chunks/763-64b80a1ab0aa3cfc.js\"\n7:\"static/chunks/705-c8a7b6dfca9ca382.js\"\n8:\"static/chunks/3557-437defff109ccb42.js\"\n9:\"static/chunks/5497-4143e2f4a33b35c0.js\"\na:\"static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js\"\nb:I[21110,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"ThemeProvider\"]\nc:\"RuntimeI18nProvider\"\nd:I[94635,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"$c\"]\ne:I[57121,[],\"\"]\nf:I[74581,[],\"\"]\n10:I[30565,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"GoogleAnalytics\"]\n12:I[30233,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"default\"]\n18:I[90484,[],\"OutletBoundary\"]\n19:\"$Sreact.suspense\"\n1b:\"ViewportBoundary\"\n1c:I[90484,[],\"$1b\"]\n1e:\"MetadataBoundary\"\n1f:I[90484,[],\"$1e\"]\n21:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/36966cca54120369-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/ad3cadf3cb03edcb.css\",\"style\"]\n:HL[\"/_next/static/css/40eba1d7174ab2f7.css\",\"style\"]\n14:X\n16:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[\"$L17\",null,[\"$\",\"$L18\",null,{\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1a\"}]}]]}],\"p\":false,\"v\":null}}]]\n15:[[\"children\",{\"s\":\"cli-tools\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q16\"}]]\n13:[[\"children\",{\"s\":\"dashboard\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q15\"}]]\n11:[[\"children\",{\"s\":\"(dashboard)\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q13\"}]]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\",\"cli-tools\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ad3cadf3cb03edcb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/40eba1d7174ab2f7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L5\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();\"}}],[\"$\",\"$L5\",null,{\"id\":\"fonts-loaded-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \\\"Material Symbols Outlined\\\"').then(f).catch(f);setTimeout(f,3000)}else{f()}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_d8ebd1 __variable_c219ed font-sans antialiased\",\"children\":[[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L10\",null,{\"gaId\":\"G-LC959F603F\"}]]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q11\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1c\",null,{\"children\":\"$L1d\"}],[\"$\",\"$L1f\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L20\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$21\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"wTD5mq2ZL1sjwGEojp_4w\"}\n22:\"static/chunks/5772-9e7c7f235304c527.js\"\n23:\"static/chunks/761-00700c1c25957243.js\"\n24:\"static/chunks/app/(dashboard)/dashboard/cli-tools/page-a2b00c8881f14ec7.js\"\n25:I[75882,[\"763\",\"$6\",\"5772\",\"$22\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"761\",\"$23\",\"2326\",\"$24\"],\"default\"]\n14:C\n17:[\"$\",\"$L25\",null,{\"machineId\":\"1f95f67025e4a58d\"}]\n1d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n26:I[86869,[],\"IconMark\"]\n1a:null\n20:[[\"$\",\"title\",\"0\",{\"children\":\"KeyRouter - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L26\",\"5\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/36966cca54120369-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/ad3cadf3cb03edcb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/841943e9a30fe5cd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-398a58d48897ccf8.js" async=""></script><script src="/_next/static/chunks/3488-fd2f0bdef1a1217a.js" async=""></script><script src="/_next/static/chunks/2470-e9f1fd5f21c43fac.js" async=""></script><script src="/_next/static/chunks/app/layout-cd4efdfec7b51ca9.js" async=""></script><script src="/_next/static/chunks/763-64b80a1ab0aa3cfc.js" async=""></script><script src="/_next/static/chunks/705-c8a7b6dfca9ca382.js" async=""></script><script src="/_next/static/chunks/3557-437defff109ccb42.js" async=""></script><script src="/_next/static/chunks/5497-bd4f9f37c29968bd.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js" async=""></script><script src="/_next/static/chunks/5772-9e7c7f235304c527.js" async=""></script><script src="/_next/static/chunks/761-00700c1c25957243.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-a2b00c8881f14ec7.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LC959F603F" as="script"/><meta name="theme-color" content="#0a0a0a"/><title>KeyRouter - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();","id":"theme-bootstrap"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}","id":"fonts-loaded-bootstrap"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_d8ebd1 __variable_c219ed font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full overflow-hidden bg-bg"><div class="fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2"></div><main class="flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate"><header class="shrink-0 z-20 flex flex-col bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none"><div class="flex items-center gap-3 py-2.5"><div class="mx-auto flex w-full max-w-7xl items-center gap-3 px-4 lg:px-8"><a class="group flex shrink-0 items-center gap-2.5" aria-label="KeyRouter Proxy home" href="/dashboard"><div class="grid size-9 shrink-0 place-items-center rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 text-white shadow-[var(--shadow-warm)] transition-transform duration-150 group-hover:scale-[1.04]"><span class="material-symbols-outlined text-[18px]">route</span></div><div class="leading-tight"><h1 class="font-display text-[15px] font-bold tracking-tight text-text-main">KeyRouter Proxy</h1><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">v<!-- -->1.0.3</span></div></a><div class="min-w-0 flex-1"></div><div class="flex items-center gap-1 shrink-0"><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Language" data-i18n-skip="true"><span class="text-lg leading-none">πΊπΈ</span></button><div class=""></div><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Theme"><span class="material-symbols-outlined">dark_mode</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Shutdown"><span class="material-symbols-outlined">power_settings_new</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Logout"><span class="material-symbols-outlined">logout</span></button></div></div></div><div class="border-b border-border-subtle px-4 py-1.5 lg:px-8"><nav class="scrollbar-hide flex w-full items-center overflow-x-auto"><div class="mx-auto flex items-center gap-1"><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/endpoint"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">api</span><span class="truncate">Endpoint</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/providers"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">dns</span><span class="truncate">Providers</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/combos"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">layers</span><span class="truncate">Combos</span></a><a aria-current="page" class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 bg-surface-2 text-text-main" href="/dashboard/cli-tools"><span class="material-symbols-outlined text-[18px] text-text-main">terminal</span><span class="truncate">CLI</span><span class="size-1 shrink-0 rounded-full bg-text-muted"></span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/usage"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">bar_chart</span><span class="truncate">Usage</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/quota"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">data_usage</span><span class="truncate">Quota</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/token-saver"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">savings</span><span class="truncate">Saver</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/media-providers/systemone"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">psychology</span><span class="truncate">System One</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/proxy-pools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">lan</span><span class="truncate">Proxies</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/skills"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">extension</span><span class="truncate">Skills</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/prompt-injection"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">skull</span><span class="truncate">Prompt</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/console-log"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">monitor</span><span class="truncate">Logs</span></a></div></nav></div></header><div class="flex-1 overflow-y-auto custom-scrollbar py-6 lg:py-10 px-4 lg:px-8 "><div class="max-w-7xl mx-auto"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4"><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div></div><!--$--><!--/$--></div></div></main></div><script src="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:\"static/chunks/3488-fd2f0bdef1a1217a.js\"\n3:\"static/chunks/2470-e9f1fd5f21c43fac.js\"\n4:\"static/chunks/app/layout-cd4efdfec7b51ca9.js\"\n5:I[42593,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"\"]\n6:\"static/chunks/763-64b80a1ab0aa3cfc.js\"\n7:\"static/chunks/705-c8a7b6dfca9ca382.js\"\n8:\"static/chunks/3557-437defff109ccb42.js\"\n9:\"static/chunks/5497-bd4f9f37c29968bd.js\"\na:\"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js\"\nb:I[21110,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"ThemeProvider\"]\nc:\"RuntimeI18nProvider\"\nd:I[94635,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"$c\"]\ne:I[57121,[],\"\"]\nf:I[74581,[],\"\"]\n10:I[30565,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"GoogleAnalytics\"]\n12:I[30233,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"default\"]\n18:I[90484,[],\"OutletBoundary\"]\n19:\"$Sreact.suspense\"\n1b:\"ViewportBoundary\"\n1c:I[90484,[],\"$1b\"]\n1e:\"MetadataBoundary\"\n1f:I[90484,[],\"$1e\"]\n21:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/36966cca54120369-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/ad3cadf3cb03edcb.css\",\"style\"]\n:HL[\"/_next/static/css/841943e9a30fe5cd.css\",\"style\"]\n14:X\n16:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[\"$L17\",null,[\"$\",\"$L18\",null,{\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1a\"}]}]]}],\"p\":false,\"v\":null}}]]\n15:[[\"children\",{\"s\":\"cli-tools\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q16\"}]]\n13:[[\"children\",{\"s\":\"dashboard\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q15\"}]]\n11:[[\"children\",{\"s\":\"(dashboard)\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q13\"}]]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\",\"cli-tools\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ad3cadf3cb03edcb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/841943e9a30fe5cd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L5\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();\"}}],[\"$\",\"$L5\",null,{\"id\":\"fonts-loaded-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \\\"Material Symbols Outlined\\\"').then(f).catch(f);setTimeout(f,3000)}else{f()}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_d8ebd1 __variable_c219ed font-sans antialiased\",\"children\":[[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L10\",null,{\"gaId\":\"G-LC959F603F\"}]]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q11\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1c\",null,{\"children\":\"$L1d\"}],[\"$\",\"$L1f\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L20\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$21\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SaAkC7sXHdEDKHids4PIF\"}\n22:\"static/chunks/5772-9e7c7f235304c527.js\"\n23:\"static/chunks/761-00700c1c25957243.js\"\n24:\"static/chunks/app/(dashboard)/dashboard/cli-tools/page-a2b00c8881f14ec7.js\"\n25:I[75882,[\"763\",\"$6\",\"5772\",\"$22\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"761\",\"$23\",\"2326\",\"$24\"],\"default\"]\n14:C\n17:[\"$\",\"$L25\",null,{\"machineId\":\"1f95f67025e4a58d\"}]\n1d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n26:I[86869,[],\"IconMark\"]\n1a:null\n20:[[\"$\",\"title\",\"0\",{\"children\":\"KeyRouter - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L26\",\"5\",{}]]\n"])</script></body></html>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:"static/chunks/3488-fd2f0bdef1a1217a.js"
|
|
3
3
|
3:"static/chunks/2470-e9f1fd5f21c43fac.js"
|
|
4
|
-
4:"static/chunks/app/layout-
|
|
4
|
+
4:"static/chunks/app/layout-cd4efdfec7b51ca9.js"
|
|
5
5
|
5:I[42593,["3488","$2","2470","$3","7177","$4"],""]
|
|
6
6
|
6:"static/chunks/763-64b80a1ab0aa3cfc.js"
|
|
7
7
|
7:"static/chunks/705-c8a7b6dfca9ca382.js"
|
|
8
8
|
8:"static/chunks/3557-437defff109ccb42.js"
|
|
9
|
-
9:"static/chunks/5497-
|
|
10
|
-
a:"static/chunks/app/(dashboard)/layout-
|
|
9
|
+
9:"static/chunks/5497-bd4f9f37c29968bd.js"
|
|
10
|
+
a:"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js"
|
|
11
11
|
b:I[21110,["763","$6","2470","$3","705","$7","3557","$8","5497","$9","9305","$a"],"ThemeProvider"]
|
|
12
12
|
c:"RuntimeI18nProvider"
|
|
13
13
|
d:I[94635,["3488","$2","2470","$3","7177","$4"],"$c"]
|
|
@@ -25,13 +25,13 @@ f:I[74581,[],""]
|
|
|
25
25
|
:HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
26
26
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
27
27
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
28
|
-
:HL["/_next/static/css/
|
|
28
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
29
29
|
14:X
|
|
30
30
|
16:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$L17",null,["$","$L18",null,{"children":["$","$19",null,{"name":"Next.MetadataOutlet","children":"$@1a"}]}]]}],"p":false,"v":null}}]]
|
|
31
31
|
15:[["children",{"s":"cli-tools","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q16"}]]
|
|
32
32
|
13:[["children",{"s":"dashboard","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q15"}]]
|
|
33
33
|
11:[["children",{"s":"(dashboard)","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L12",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],"p":false,"v":null},"c":"$Q13"}]]
|
|
34
|
-
0:{"P":null,"c":["","dashboard","cli-tools"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/
|
|
34
|
+
0:{"P":null,"c":["","dashboard","cli-tools"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/841943e9a30fe5cd.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","$L5",null,{"id":"theme-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&m)){document.documentElement.classList.add('dark')}}catch(e){}})();"}}],["$","$L5",null,{"id":"fonts-loaded-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts&&d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}"}}]]}],["$","body",null,{"className":"__variable_d8ebd1 __variable_c219ed font-sans antialiased","children":[["$","$Lb",null,{"children":["$","$Ld",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L10",null,{"gaId":"G-LC959F603F"}]]}]]}]]}],"p":false,"v":null},"c":"$Q11"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","$L1f",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$19",null,{"name":"Next.Metadata","children":"$L20"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$21",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"SaAkC7sXHdEDKHids4PIF"}
|
|
35
35
|
22:"static/chunks/5772-9e7c7f235304c527.js"
|
|
36
36
|
23:"static/chunks/761-00700c1c25957243.js"
|
|
37
37
|
24:"static/chunks/app/(dashboard)/dashboard/cli-tools/page-a2b00c8881f14ec7.js"
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:"static/chunks/3488-fd2f0bdef1a1217a.js"
|
|
3
3
|
3:"static/chunks/2470-e9f1fd5f21c43fac.js"
|
|
4
|
-
4:"static/chunks/app/layout-
|
|
4
|
+
4:"static/chunks/app/layout-cd4efdfec7b51ca9.js"
|
|
5
5
|
5:I[42593,["3488","$2","2470","$3","7177","$4"],""]
|
|
6
6
|
6:"static/chunks/763-64b80a1ab0aa3cfc.js"
|
|
7
7
|
7:"static/chunks/705-c8a7b6dfca9ca382.js"
|
|
8
8
|
8:"static/chunks/3557-437defff109ccb42.js"
|
|
9
|
-
9:"static/chunks/5497-
|
|
10
|
-
a:"static/chunks/app/(dashboard)/layout-
|
|
9
|
+
9:"static/chunks/5497-bd4f9f37c29968bd.js"
|
|
10
|
+
a:"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js"
|
|
11
11
|
b:I[21110,["763","$6","2470","$3","705","$7","3557","$8","5497","$9","9305","$a"],"ThemeProvider"]
|
|
12
12
|
c:"RuntimeI18nProvider"
|
|
13
13
|
d:I[94635,["3488","$2","2470","$3","7177","$4"],"$c"]
|
|
@@ -27,7 +27,7 @@ f:I[74581,[],""]
|
|
|
27
27
|
27:I[90484,[],"$26"]
|
|
28
28
|
28:I[86869,[],"IconMark"]
|
|
29
29
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
30
|
-
:HL["/_next/static/css/
|
|
30
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
31
31
|
12:X
|
|
32
32
|
18:X
|
|
33
33
|
18:C
|
|
@@ -35,7 +35,7 @@ f:I[74581,[],""]
|
|
|
35
35
|
19:[["children",{"s":"cli-tools","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}]}]]}],"p":"$@1a","v":"$18","s":"$12"},"c":"$Q1b"}]]
|
|
36
36
|
16:[["children",{"s":"dashboard","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}]}]]}],"p":"$@17","v":"$18","s":"$12"},"c":"$Q19"}]]
|
|
37
37
|
13:[["children",{"s":"(dashboard)","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L14",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"p":"$@15","v":null,"s":"$12"},"c":"$Q16"}]]
|
|
38
|
-
0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/
|
|
38
|
+
0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/841943e9a30fe5cd.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","$L5",null,{"id":"theme-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&m)){document.documentElement.classList.add('dark')}}catch(e){}})();"}}],["$","$L5",null,{"id":"fonts-loaded-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts&&d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}"}}]]}],["$","body",null,{"className":"__variable_d8ebd1 __variable_c219ed font-sans antialiased","children":[["$","$Lb",null,{"children":["$","$Ld",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}],["$","$L10",null,{"gaId":"G-LC959F603F"}]]}]]}]]}],"p":"$@11","v":null,"s":"$12"},"c":"$Q13"},"h":{"r":["$","$1","h",{"children":[null,["$","$L25",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","$L27",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$21",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"KeyRouter - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L28","5",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@29","v":null,"s":"$12"}},"a":"$@2a","u":"$@2b","b":"SaAkC7sXHdEDKHids4PIF"}
|
|
39
39
|
22:null
|
|
40
40
|
12:300
|
|
41
41
|
2b:true
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:"static/chunks/3488-fd2f0bdef1a1217a.js"
|
|
3
3
|
3:"static/chunks/2470-e9f1fd5f21c43fac.js"
|
|
4
|
-
4:"static/chunks/app/layout-
|
|
4
|
+
4:"static/chunks/app/layout-cd4efdfec7b51ca9.js"
|
|
5
5
|
5:I[42593,["3488","$2","2470","$3","7177","$4"],""]
|
|
6
6
|
6:"static/chunks/763-64b80a1ab0aa3cfc.js"
|
|
7
7
|
7:"static/chunks/705-c8a7b6dfca9ca382.js"
|
|
8
8
|
8:"static/chunks/3557-437defff109ccb42.js"
|
|
9
|
-
9:"static/chunks/5497-
|
|
10
|
-
a:"static/chunks/app/(dashboard)/layout-
|
|
9
|
+
9:"static/chunks/5497-bd4f9f37c29968bd.js"
|
|
10
|
+
a:"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js"
|
|
11
11
|
b:I[21110,["763","$6","2470","$3","705","$7","3557","$8","5497","$9","9305","$a"],"ThemeProvider"]
|
|
12
12
|
c:"RuntimeI18nProvider"
|
|
13
13
|
d:I[94635,["3488","$2","2470","$3","7177","$4"],"$c"]
|
|
@@ -25,13 +25,13 @@ f:I[74581,[],""]
|
|
|
25
25
|
:HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
26
26
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
27
27
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
28
|
-
:HL["/_next/static/css/
|
|
28
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
29
29
|
14:X
|
|
30
30
|
16:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$L17",null,["$","$L18",null,{"children":["$","$19",null,{"name":"Next.MetadataOutlet","children":"$@1a"}]}]]}],"p":false,"v":null}}]]
|
|
31
31
|
15:[["children",{"s":"cli-tools","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q16"}]]
|
|
32
32
|
13:[["children",{"s":"dashboard","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q15"}]]
|
|
33
33
|
11:[["children",{"s":"(dashboard)","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L12",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],"p":false,"v":null},"c":"$Q13"}]]
|
|
34
|
-
0:{"P":null,"c":["","dashboard","cli-tools"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/
|
|
34
|
+
0:{"P":null,"c":["","dashboard","cli-tools"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/841943e9a30fe5cd.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","$L5",null,{"id":"theme-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&m)){document.documentElement.classList.add('dark')}}catch(e){}})();"}}],["$","$L5",null,{"id":"fonts-loaded-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts&&d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}"}}]]}],["$","body",null,{"className":"__variable_d8ebd1 __variable_c219ed font-sans antialiased","children":[["$","$Lb",null,{"children":["$","$Ld",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L10",null,{"gaId":"G-LC959F603F"}]]}]]}]]}],"p":false,"v":null},"c":"$Q11"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","$L1f",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$19",null,{"name":"Next.Metadata","children":"$L20"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$21",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"SaAkC7sXHdEDKHids4PIF"}
|
|
35
35
|
22:"static/chunks/5772-9e7c7f235304c527.js"
|
|
36
36
|
23:"static/chunks/761-00700c1c25957243.js"
|
|
37
37
|
24:"static/chunks/app/(dashboard)/dashboard/cli-tools/page-a2b00c8881f14ec7.js"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
:HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
2
2
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
3
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
4
|
-
:HL["/_next/static/css/
|
|
4
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
5
5
|
4:[["children",{"s":"__PAGE__","h":160}]]
|
|
6
6
|
3:[["children",{"s":"cli-tools","h":96,"c":"$Q4"}]]
|
|
7
7
|
2:[["children",{"s":"dashboard","h":96,"c":"$Q3"}]]
|
|
8
8
|
1:[["children",{"s":"(dashboard)","h":96,"c":"$Q2"}]]
|
|
9
|
-
0:{"b":"
|
|
9
|
+
0:{"b":"SaAkC7sXHdEDKHids4PIF","t":{"t":{"s":"","h":80,"c":"$Q1"}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/36966cca54120369-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/ad3cadf3cb03edcb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/40eba1d7174ab2f7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-398a58d48897ccf8.js" async=""></script><script src="/_next/static/chunks/3488-fd2f0bdef1a1217a.js" async=""></script><script src="/_next/static/chunks/2470-e9f1fd5f21c43fac.js" async=""></script><script src="/_next/static/chunks/app/layout-71be9ce7abb4aae6.js" async=""></script><script src="/_next/static/chunks/763-64b80a1ab0aa3cfc.js" async=""></script><script src="/_next/static/chunks/705-c8a7b6dfca9ca382.js" async=""></script><script src="/_next/static/chunks/3557-437defff109ccb42.js" async=""></script><script src="/_next/static/chunks/5497-4143e2f4a33b35c0.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js" async=""></script><script src="/_next/static/chunks/5353-0085e26d68aca1f0.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LC959F603F" as="script"/><meta name="theme-color" content="#0a0a0a"/><title>KeyRouter - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();","id":"theme-bootstrap"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}","id":"fonts-loaded-bootstrap"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_d8ebd1 __variable_c219ed font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full overflow-hidden bg-bg"><div class="fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2"></div><main class="flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate"><header class="shrink-0 z-20 flex flex-col bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none"><div class="flex items-center gap-3 py-2.5"><div class="mx-auto flex w-full max-w-7xl items-center gap-3 px-4 lg:px-8"><a class="group flex shrink-0 items-center gap-2.5" aria-label="KeyRouter Proxy home" href="/dashboard"><div class="grid size-9 shrink-0 place-items-center rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 text-white shadow-[var(--shadow-warm)] transition-transform duration-150 group-hover:scale-[1.04]"><span class="material-symbols-outlined text-[18px]">route</span></div><div class="leading-tight"><h1 class="font-display text-[15px] font-bold tracking-tight text-text-main">KeyRouter Proxy</h1><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">v<!-- -->1.0</span></div></a><div class="min-w-0 flex-1"></div><div class="flex items-center gap-1 shrink-0"><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Language" data-i18n-skip="true"><span class="text-lg leading-none">πΊπΈ</span></button><div class=""></div><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Theme"><span class="material-symbols-outlined">dark_mode</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Shutdown"><span class="material-symbols-outlined">power_settings_new</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Logout"><span class="material-symbols-outlined">logout</span></button></div></div></div><div class="border-b border-border-subtle px-4 py-1.5 lg:px-8"><nav class="scrollbar-hide flex w-full items-center overflow-x-auto"><div class="mx-auto flex items-center gap-1"><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/endpoint"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">api</span><span class="truncate">Endpoint</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/providers"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">dns</span><span class="truncate">Providers</span></a><a aria-current="page" class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 bg-surface-2 text-text-main" href="/dashboard/combos"><span class="material-symbols-outlined text-[18px] text-text-main">layers</span><span class="truncate">Combos</span><span class="size-1 shrink-0 rounded-full bg-text-muted"></span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/cli-tools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">terminal</span><span class="truncate">CLI</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/usage"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">bar_chart</span><span class="truncate">Usage</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/quota"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">data_usage</span><span class="truncate">Quota</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/token-saver"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">savings</span><span class="truncate">Saver</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/media-providers/systemone"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">psychology</span><span class="truncate">System One</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/proxy-pools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">lan</span><span class="truncate">Proxies</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/skills"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">extension</span><span class="truncate">Skills</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/prompt-injection"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">skull</span><span class="truncate">Prompt</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/console-log"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">monitor</span><span class="truncate">Logs</span></a></div></nav></div></header><div class="flex-1 overflow-y-auto custom-scrollbar py-6 lg:py-10 px-4 lg:px-8 "><div class="max-w-7xl mx-auto"><div class="flex flex-col gap-6"><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div></div><!--$--><!--/$--></div></div></main></div><script src="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:\"static/chunks/3488-fd2f0bdef1a1217a.js\"\n3:\"static/chunks/2470-e9f1fd5f21c43fac.js\"\n4:\"static/chunks/app/layout-71be9ce7abb4aae6.js\"\n5:I[42593,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"\"]\n6:\"static/chunks/763-64b80a1ab0aa3cfc.js\"\n7:\"static/chunks/705-c8a7b6dfca9ca382.js\"\n8:\"static/chunks/3557-437defff109ccb42.js\"\n9:\"static/chunks/5497-4143e2f4a33b35c0.js\"\na:\"static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js\"\nb:I[21110,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"ThemeProvider\"]\nc:\"RuntimeI18nProvider\"\nd:I[94635,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"$c\"]\ne:I[57121,[],\"\"]\nf:I[74581,[],\"\"]\n10:I[30565,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"GoogleAnalytics\"]\n12:I[30233,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"default\"]\n17:I[61304,[],\"ClientPageRoot\"]\n18:\"static/chunks/5353-0085e26d68aca1f0.js\"\n19:\"static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js\"\n1a:I[19255,[\"763\",\"$6\",\"5353\",\"$18\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"3649\",\"$19\"],\"default\"]\n1d:I[90484,[],\"OutletBoundary\"]\n1e:\"$Sreact.suspense\"\n20:\"ViewportBoundary\"\n21:I[90484,[],\"$20\"]\n23:\"MetadataBoundary\"\n24:I[90484,[],\"$23\"]\n26:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/36966cca54120369-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/ad3cadf3cb03edcb.css\",\"style\"]\n:HL[\"/_next/static/css/40eba1d7174ab2f7.css\",\"style\"]\n14:X\n16:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L17\",null,{\"Component\":\"$1a\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@1b\",\"$@1c\"]}}],null,[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"$1e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1f\"}]}]]}],\"p\":false,\"v\":null}}]]\n15:[[\"children\",{\"s\":\"combos\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q16\"}]]\n13:[[\"children\",{\"s\":\"dashboard\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q15\"}]]\n11:[[\"children\",{\"s\":\"(dashboard)\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q13\"}]]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\",\"combos\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ad3cadf3cb03edcb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/40eba1d7174ab2f7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L5\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();\"}}],[\"$\",\"$L5\",null,{\"id\":\"fonts-loaded-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \\\"Material Symbols Outlined\\\"').then(f).catch(f);setTimeout(f,3000)}else{f()}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_d8ebd1 __variable_c219ed font-sans antialiased\",\"children\":[[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L10\",null,{\"gaId\":\"G-LC959F603F\"}]]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q11\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L21\",null,{\"children\":\"$L22\"}],[\"$\",\"$L24\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L25\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$26\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"wTD5mq2ZL1sjwGEojp_4w\"}\n14:C\n1b:{}\n1c:\"$16:0:1:d:r:props:children:0:props:serverProvidedParams:params\"\n22:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n27:I[86869,[],\"IconMark\"]\n1f:null\n25:[[\"$\",\"title\",\"0\",{\"children\":\"KeyRouter - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L27\",\"5\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/36966cca54120369-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/ad3cadf3cb03edcb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/841943e9a30fe5cd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-398a58d48897ccf8.js" async=""></script><script src="/_next/static/chunks/3488-fd2f0bdef1a1217a.js" async=""></script><script src="/_next/static/chunks/2470-e9f1fd5f21c43fac.js" async=""></script><script src="/_next/static/chunks/app/layout-cd4efdfec7b51ca9.js" async=""></script><script src="/_next/static/chunks/763-64b80a1ab0aa3cfc.js" async=""></script><script src="/_next/static/chunks/705-c8a7b6dfca9ca382.js" async=""></script><script src="/_next/static/chunks/3557-437defff109ccb42.js" async=""></script><script src="/_next/static/chunks/5497-bd4f9f37c29968bd.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js" async=""></script><script src="/_next/static/chunks/5353-0085e26d68aca1f0.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LC959F603F" as="script"/><meta name="theme-color" content="#0a0a0a"/><title>KeyRouter - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();","id":"theme-bootstrap"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}","id":"fonts-loaded-bootstrap"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_d8ebd1 __variable_c219ed font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full overflow-hidden bg-bg"><div class="fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2"></div><main class="flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate"><header class="shrink-0 z-20 flex flex-col bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none"><div class="flex items-center gap-3 py-2.5"><div class="mx-auto flex w-full max-w-7xl items-center gap-3 px-4 lg:px-8"><a class="group flex shrink-0 items-center gap-2.5" aria-label="KeyRouter Proxy home" href="/dashboard"><div class="grid size-9 shrink-0 place-items-center rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 text-white shadow-[var(--shadow-warm)] transition-transform duration-150 group-hover:scale-[1.04]"><span class="material-symbols-outlined text-[18px]">route</span></div><div class="leading-tight"><h1 class="font-display text-[15px] font-bold tracking-tight text-text-main">KeyRouter Proxy</h1><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">v<!-- -->1.0.3</span></div></a><div class="min-w-0 flex-1"></div><div class="flex items-center gap-1 shrink-0"><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Language" data-i18n-skip="true"><span class="text-lg leading-none">πΊπΈ</span></button><div class=""></div><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Theme"><span class="material-symbols-outlined">dark_mode</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Shutdown"><span class="material-symbols-outlined">power_settings_new</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Logout"><span class="material-symbols-outlined">logout</span></button></div></div></div><div class="border-b border-border-subtle px-4 py-1.5 lg:px-8"><nav class="scrollbar-hide flex w-full items-center overflow-x-auto"><div class="mx-auto flex items-center gap-1"><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/endpoint"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">api</span><span class="truncate">Endpoint</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/providers"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">dns</span><span class="truncate">Providers</span></a><a aria-current="page" class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 bg-surface-2 text-text-main" href="/dashboard/combos"><span class="material-symbols-outlined text-[18px] text-text-main">layers</span><span class="truncate">Combos</span><span class="size-1 shrink-0 rounded-full bg-text-muted"></span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/cli-tools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">terminal</span><span class="truncate">CLI</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/usage"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">bar_chart</span><span class="truncate">Usage</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/quota"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">data_usage</span><span class="truncate">Quota</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/token-saver"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">savings</span><span class="truncate">Saver</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/media-providers/systemone"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">psychology</span><span class="truncate">System One</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/proxy-pools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">lan</span><span class="truncate">Proxies</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/skills"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">extension</span><span class="truncate">Skills</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/prompt-injection"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">skull</span><span class="truncate">Prompt</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/console-log"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">monitor</span><span class="truncate">Logs</span></a></div></nav></div></header><div class="flex-1 overflow-y-auto custom-scrollbar py-6 lg:py-10 px-4 lg:px-8 "><div class="max-w-7xl mx-auto"><div class="flex flex-col gap-6"><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div><div class="p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]"><div class="flex items-center justify-between mb-4"><div class="animate-pulse rounded-[10px] bg-surface-2 h-4 w-24"></div><div class="animate-pulse rounded-[10px] bg-surface-2 size-10 rounded-[10px]"></div></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-8 w-16 mb-2"></div><div class="animate-pulse rounded-[10px] bg-surface-2 h-3 w-20"></div></div></div><!--$--><!--/$--></div></div></main></div><script src="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:\"static/chunks/3488-fd2f0bdef1a1217a.js\"\n3:\"static/chunks/2470-e9f1fd5f21c43fac.js\"\n4:\"static/chunks/app/layout-cd4efdfec7b51ca9.js\"\n5:I[42593,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"\"]\n6:\"static/chunks/763-64b80a1ab0aa3cfc.js\"\n7:\"static/chunks/705-c8a7b6dfca9ca382.js\"\n8:\"static/chunks/3557-437defff109ccb42.js\"\n9:\"static/chunks/5497-bd4f9f37c29968bd.js\"\na:\"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js\"\nb:I[21110,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"ThemeProvider\"]\nc:\"RuntimeI18nProvider\"\nd:I[94635,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"$c\"]\ne:I[57121,[],\"\"]\nf:I[74581,[],\"\"]\n10:I[30565,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"GoogleAnalytics\"]\n12:I[30233,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"default\"]\n17:I[61304,[],\"ClientPageRoot\"]\n18:\"static/chunks/5353-0085e26d68aca1f0.js\"\n19:\"static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js\"\n1a:I[19255,[\"763\",\"$6\",\"5353\",\"$18\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"3649\",\"$19\"],\"default\"]\n1d:I[90484,[],\"OutletBoundary\"]\n1e:\"$Sreact.suspense\"\n20:\"ViewportBoundary\"\n21:I[90484,[],\"$20\"]\n23:\"MetadataBoundary\"\n24:I[90484,[],\"$23\"]\n26:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/36966cca54120369-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/ad3cadf3cb03edcb.css\",\"style\"]\n:HL[\"/_next/static/css/841943e9a30fe5cd.css\",\"style\"]\n14:X\n16:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L17\",null,{\"Component\":\"$1a\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@1b\",\"$@1c\"]}}],null,[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"$1e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1f\"}]}]]}],\"p\":false,\"v\":null}}]]\n15:[[\"children\",{\"s\":\"combos\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q16\"}]]\n13:[[\"children\",{\"s\":\"dashboard\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q15\"}]]\n11:[[\"children\",{\"s\":\"(dashboard)\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q13\"}]]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\",\"combos\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ad3cadf3cb03edcb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/841943e9a30fe5cd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L5\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();\"}}],[\"$\",\"$L5\",null,{\"id\":\"fonts-loaded-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \\\"Material Symbols Outlined\\\"').then(f).catch(f);setTimeout(f,3000)}else{f()}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_d8ebd1 __variable_c219ed font-sans antialiased\",\"children\":[[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L10\",null,{\"gaId\":\"G-LC959F603F\"}]]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q11\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L21\",null,{\"children\":\"$L22\"}],[\"$\",\"$L24\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L25\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$26\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SaAkC7sXHdEDKHids4PIF\"}\n14:C\n1b:{}\n1c:\"$16:0:1:d:r:props:children:0:props:serverProvidedParams:params\"\n22:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n27:I[86869,[],\"IconMark\"]\n1f:null\n25:[[\"$\",\"title\",\"0\",{\"children\":\"KeyRouter - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L27\",\"5\",{}]]\n"])</script></body></html>
|