tokenhop 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 +8 -8
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +29 -29
- package/app/.next-cli-build/required-server-files.json +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page_client-reference-manifest.js +1 -1
- 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/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +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/settings/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/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/ui-kit/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/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 +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-tool-settings/[toolId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tool-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +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/codex-settings/route.js +2 -2
- 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 +2 -2
- 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 +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +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 +2 -2
- 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/grok-build-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/headroom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/headroom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/gateway/status/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/home/live-routes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/quota/route.js +1 -1
- package/app/.next-cli-build/server/app/api/home/quota/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/summary/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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 +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/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/environment/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shell/savings-milestone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shell/summary/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shell/summary/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +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 +9 -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 +9 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +9 -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 +9 -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/last-activity/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/savings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +9 -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 +2 -2
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +11 -11
- 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 +9 -9
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -9
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +11 -11
- 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/media-providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +11 -11
- 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 +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +10 -10
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +10 -10
- 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 +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_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/settings.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +11 -11
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/ui-kit.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ui-kit.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/!KGRhc2hib2FyZCk/dashboard/ui-kit/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.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 +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +11 -11
- 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 +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- 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 +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +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 +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/skills/[...slug]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +8 -8
- package/app/.next-cli-build/server/chunks/{6734.js → 1004.js} +1 -1
- package/app/.next-cli-build/server/chunks/{4037.js → 1215.js} +1 -1
- package/app/.next-cli-build/server/chunks/1533.js +1 -1
- package/app/.next-cli-build/server/chunks/2217.js +1 -1
- package/app/.next-cli-build/server/chunks/2380.js +3 -3
- package/app/.next-cli-build/server/chunks/24.js +1 -1
- package/app/.next-cli-build/server/chunks/2460.js +1 -1
- package/app/.next-cli-build/server/chunks/257.js +10 -0
- package/app/.next-cli-build/server/chunks/2592.js +1 -1
- package/app/.next-cli-build/server/chunks/2705.js +9 -0
- package/app/.next-cli-build/server/chunks/318.js +2 -10
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4334.js +1 -1
- package/app/.next-cli-build/server/chunks/5230.js +1 -0
- package/app/.next-cli-build/server/chunks/5260.js +1 -1
- package/app/.next-cli-build/server/chunks/5559.js +9 -0
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5649.js +1 -0
- package/app/.next-cli-build/server/chunks/5827.js +1 -1
- package/app/.next-cli-build/server/chunks/5869.js +9 -0
- package/app/.next-cli-build/server/chunks/5908.js +1 -0
- package/app/.next-cli-build/server/chunks/620.js +1 -1
- package/app/.next-cli-build/server/chunks/{1854.js → 6355.js} +1 -1
- package/app/.next-cli-build/server/chunks/6493.js +1 -0
- package/app/.next-cli-build/server/chunks/6496.js +1 -1
- package/app/.next-cli-build/server/chunks/7485.js +9 -0
- package/app/.next-cli-build/server/chunks/{3676.js → 7695.js} +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +1 -1
- package/app/.next-cli-build/server/chunks/7819.js +1 -1
- package/app/.next-cli-build/server/chunks/8171.js +1 -1
- package/app/.next-cli-build/server/chunks/8261.js +1 -0
- package/app/.next-cli-build/server/chunks/878.js +1 -0
- package/app/.next-cli-build/server/chunks/8895.js +10 -10
- package/app/.next-cli-build/server/chunks/8954.js +1 -0
- package/app/.next-cli-build/server/chunks/9016.js +9 -0
- package/app/.next-cli-build/server/chunks/9343.js +1 -1
- package/app/.next-cli-build/server/chunks/9421.js +1 -1
- package/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/app/.next-cli-build/server/chunks/9578.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/{198-0c7f5eadfd257db1.js → 198-7c5bbea89ef8bc14.js} +1 -1
- package/app/.next-cli-build/static/chunks/{3670-90f5cd325f460eb5.js → 3670-d6dc44bc181c9b8a.js} +1 -1
- package/app/.next-cli-build/static/chunks/{6174.f1da2912aec81c15.js → 6174.a18fedfa3d765b1e.js} +1 -1
- package/app/.next-cli-build/static/chunks/7899-a12f962af02edf7f.js +1 -0
- package/app/.next-cli-build/static/chunks/8105-71d1aea9708976db.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-084fc21b1dbae00d.js → page-1df6ad7d9adfc2a7.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-de53f51d191eec46.js → page-25d06b77bd1a5edb.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-243d3da0a2c6cbe9.js → page-5bb99ecaf48bde39.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ui-kit/{page-998f8c5a36dac961.js → page-1bc393f267badc04.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-96ebd2b46f1f8d39.js → layout-a94f45e334f1841b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/landing/{page-bcaea5febe1c68c0.js → page-98f05847e3372b16.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/{layout-c266f1acedfb4651.js → layout-29d74e164758a126.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-8693ccf029e9af63.js → webpack-1e19a4b05298b49d.js} +1 -1
- package/app/.next-cli-build/static/css/{9f0b95a0d0bc5e51.css → ffa1d9c3cbb4e959.css} +1 -1
- package/app/package.json +4 -5
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/1764.js +0 -1
- package/app/.next-cli-build/server/chunks/3306.js +0 -1
- package/app/.next-cli-build/server/chunks/3558.js +0 -1
- package/app/.next-cli-build/server/chunks/368.js +0 -1
- package/app/.next-cli-build/server/chunks/4199.js +0 -2
- package/app/.next-cli-build/server/chunks/4903.js +0 -1
- package/app/.next-cli-build/server/chunks/6000.js +0 -1
- package/app/.next-cli-build/server/chunks/6403.js +0 -1
- package/app/.next-cli-build/server/chunks/6565.js +0 -1
- package/app/.next-cli-build/server/chunks/7901.js +0 -1
- package/app/.next-cli-build/server/chunks/8372.js +0 -1
- package/app/.next-cli-build/server/chunks/9219.js +0 -1
- package/app/.next-cli-build/static/chunks/7899-83edd7bbf1a98c4a.js +0 -1
- package/app/.next-cli-build/static/chunks/8105-bdd81b911fed8537.js +0 -1
- /package/app/.next-cli-build/static/{J4xdfHpBUAMOCO5dsemSj → gdVYVwJMM6JES9Y1KPQyw}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{J4xdfHpBUAMOCO5dsemSj → gdVYVwJMM6JES9Y1KPQyw}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1665,9499],{1934:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(12115);let a=e=>{let t,n=new Set,r=(e,r)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=r?r:"object"!=typeof a||null===a)?a:Object.assign({},t,a),n.forEach(n=>n(t,e))}},a=()=>t,l={setState:r,getState:a,getInitialState:()=>s,subscribe:e=>(n.add(e),()=>n.delete(e))},s=t=e(r,a,l);return l},l=e=>{let t=e?a(e):a,n=e=>(function(e,t=e=>e){let n=r.useSyncExternalStore(e.subscribe,r.useCallback(()=>t(e.getState()),[e,t]),r.useCallback(()=>t(e.getInitialState()),[e,t]));return r.useDebugValue(n),n})(t,e);return Object.assign(n,t),n},s=e=>e?l(e):l},4553:(e,t,n)=>{"use strict";n.d(t,{DM:()=>s,Hc:()=>c,qt:()=>o,qx:()=>d});var r=n(35652);let{BRAND_IDS:a,DEFAULT_BRAND_ID:l,ACTIVE_BRAND_ID:s,isActiveBrand:i,BRAND:o,LEGACY:d,ACTIVE:c,UPSTREAM_CLIENT_IDS:u,envName:m,readEnv:p,warnLegacyOnce:x,header:f,legacyHeaderNames:h}=n.n(r)()},9911:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(31474);function o({checked:e=!1,indeterminate:t=!1,onChange:n,label:a,description:l,disabled:d=!1,className:c,id:u,...m}){let p=(0,s.useId)(),x=u||p,f=(0,s.useRef)(null);return(0,s.useEffect)(()=>{f.current&&(f.current.indeterminate=t)},[t]),(0,r.jsxs)("div",{className:(0,i.cn)("flex items-start gap-3",d&&"opacity-50",c),children:[(0,r.jsxs)("span",{className:"relative inline-flex size-11 shrink-0 items-center justify-center -ms-2.5",children:[(0,r.jsx)("input",{...m,ref:f,id:x,type:"checkbox",checked:e,"aria-checked":t?"mixed":e,onChange:e=>n?.(e.target.checked),disabled:d,className:"peer absolute inset-0 m-0 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed"}),(0,r.jsx)("span",{"aria-hidden":"true",className:(0,i.cn)("pointer-events-none flex size-[22px] items-center justify-center rounded-xs border border-line bg-raised","text-transparent transition-colors duration-150","peer-checked:border-transparent peer-checked:bg-coral peer-checked:text-on-coral","peer-focus-visible:shadow-focus peer-disabled:cursor-not-allowed",t&&"border-transparent bg-coral text-on-coral"),children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px] font-bold",children:t?"remove":"check"})})]}),(a||l)&&(0,r.jsxs)("label",{htmlFor:x,className:"flex cursor-pointer flex-col pt-2",children:[a&&(0,r.jsx)("span",{className:"text-sm font-medium text-text",children:a}),l&&(0,r.jsx)("span",{className:"text-xs text-muted",children:l})]})]})}o.propTypes={checked:l().bool,indeterminate:l().bool,onChange:l().func,label:l().node,description:l().node,disabled:l().bool,className:l().string,id:l().string}},20446:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(31474),o=n(4650);let d=["ArrowLeft","ArrowRight","Home","End"];function c({tabs:e=[],value:t,defaultValue:n,onChange:a,className:l,id:u,"aria-label":m,"aria-labelledby":p,...x}){let f=(0,s.useId)(),h=u||f,b=(0,s.useRef)([]),[g,v]=(0,s.useState)(n??e[0]?.value),j=void 0!==t?t:g,y=Math.max(0,e.findIndex(e=>e.value===j)),k=e=>{void 0===t&&v(e),a?.(e)};return(0,r.jsxs)("div",{...x,className:(0,i.cn)("flex flex-col",l),children:[(0,r.jsx)("div",{role:"tablist","aria-label":m,"aria-labelledby":p,"aria-orientation":"horizontal",className:"flex items-center gap-1 border-b border-line overflow-x-auto",children:e.map((t,n)=>{let a=n===y;return(0,r.jsxs)("button",{ref:e=>{b.current[n]=e},type:"button",role:"tab",id:`${h}-tab-${t.value}`,"aria-selected":a,"aria-controls":`${h}-panel-${t.value}`,tabIndex:a?0:-1,onClick:()=>k(t.value),onKeyDown:t=>((t,n)=>{if(!d.includes(t.key)||0===e.length)return;t.preventDefault();let r=(0,o.lZ)(n,t.key,{length:e.length,rtl:t.currentTarget.closest("[dir]")?.getAttribute("dir")==="rtl"});b.current[r]?.focus(),k(e[r].value)})(t,n),className:(0,i.cn)("relative inline-flex h-11 shrink-0 items-center px-3 text-sm font-semibold transition-colors focus-visible:shadow-focus",a?"text-text":"text-muted hover:text-text"),children:[t.label,null!=t.count&&(0,r.jsx)("span",{className:"ms-1.5 font-mono text-xs text-muted",children:t.count}),(0,r.jsx)("span",{"aria-hidden":"true",className:(0,i.cn)("absolute inset-x-2 -bottom-px h-0.5 rounded-full bg-coral transition-opacity",a?"opacity-100":"opacity-0")})]},t.value)})}),e.map((e,t)=>(0,r.jsx)("div",{role:"tabpanel",id:`${h}-panel-${e.value}`,"aria-labelledby":`${h}-tab-${e.value}`,hidden:t!==y,tabIndex:(0,o.qM)(e.content)?0:void 0,children:e.content},e.value))]})}c.propTypes={tabs:l().arrayOf(l().shape({value:l().oneOfType([l().string,l().number]).isRequired,label:l().node.isRequired,count:l().oneOfType([l().string,l().number]),content:l().node})),value:l().oneOfType([l().string,l().number]),defaultValue:l().oneOfType([l().string,l().number]),onChange:l().func,className:l().string,id:l().string,"aria-label":function(e,t,n){return e["aria-label"]||e["aria-labelledby"]?null:Error(`${n}: provide "aria-label" or "aria-labelledby".`)},"aria-labelledby":l().string}},21341:(e,t,n)=>{"use strict";n.d(t,{default:()=>W});var r=n(95155),a=n(12115),l=n(4553),s=n(92542),i=n(9911),o=n(10185),d=n(6587),c=n(11910),u=n(15729),m=n(61640),p=n(28067),x=n(99380),f=n(20446),h=n(52024),b=n(98542),g=n(50744),v=n(38587),j=n(19123),y=n(56061),k=n(86465);function N(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-pills",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-pills",className:"font-display text-xl font-bold",children:"Pills, badges, chips"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(j.default,{variant:"ok",dot:!0,children:"Connected"}),(0,r.jsx)(j.default,{variant:"warn",children:"Cooldown 2m"}),(0,r.jsx)(j.default,{variant:"err",children:"Auth error"}),(0,r.jsx)(j.default,{variant:"info",children:"OAuth"}),(0,r.jsx)(j.default,{variant:"live",children:"Free tier"}),(0,r.jsx)(j.default,{variant:"brand",children:"API key"}),(0,r.jsx)(j.default,{variant:"neutral",children:"Off"}),(0,r.jsx)(j.default,{variant:"ok",size:"sm",dot:!0,children:"Compact"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(y.default,{variant:"success",dot:!0,size:"sm",children:"Ready"}),(0,r.jsx)(y.default,{variant:"error",size:"sm",children:"Failed"}),(0,r.jsx)(y.default,{variant:"primary",icon:"key",size:"sm",children:"API key"}),(0,r.jsx)(y.default,{variant:"default",size:"sm",children:"Total: 42"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(k.default,{model:"cc/claude-sonnet-4-6"}),(0,r.jsx)(k.default,{model:"cx/gpt-5.1-codex"}),(0,r.jsx)(k.default,{model:"openrouter/qwen3-coder"})]})]})}let w=[{bg:"bg-bg",token:"--signal-bg",label:"Ground"},{bg:"bg-panel",token:"--signal-panel",label:"Panel"},{bg:"bg-raised",token:"--signal-raised",label:"Raised"},{bg:"bg-line",token:"--signal-line",label:"Line"},{bg:"bg-text",token:"--signal-text",label:"Text"},{bg:"bg-muted",token:"--signal-muted",label:"Muted"},{bg:"bg-coral",token:"--signal-coral",label:"Coral \xb7 brand"},{bg:"bg-lime",token:"--signal-lime",label:"Lime \xb7 live"},{bg:"bg-sky",token:"--signal-sky",label:"Sky \xb7 info"},{bg:"bg-ok",token:"--signal-ok",label:"OK"},{bg:"bg-warn",token:"--signal-warn",label:"Warn"},{bg:"bg-err",token:"--signal-err",label:"Error"}];function C(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-swatches",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-swatches",className:"font-display text-xl font-bold",children:"Tokens"}),(0,r.jsx)("div",{className:"mt-4 grid grid-cols-3 gap-3 sm:grid-cols-4 lg:grid-cols-6",children:w.map(e=>(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:`${e.bg} h-[52px] rounded-lg shadow-[inset_0_0_0_1px_var(--signal-line)]`}),(0,r.jsx)("span",{className:"text-xs font-semibold",children:e.label}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:e.token})]},e.label))})]})}function E(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-type",className:"flex flex-col gap-3 rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-type",className:"font-display text-xl font-bold",children:"Type"}),(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,r.jsx)("span",{className:"font-display text-[40px] leading-[1.05] font-bold",children:"Command center"}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:"Bricolage Grotesque 700"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,r.jsx)("span",{dir:"auto",className:"flex-1 text-[15px] leading-[1.5]",children:"One endpoint, 40+ providers, automatic fallback."}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:"Geist 400/600"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,r.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-sm",children:"cc/claude-sonnet-4-6 → cx/gpt-5.1-codex"}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:"Geist Mono 500"})]})]})}var S=n(96975),O=n(25908);function T(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-tiles",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-tiles",className:"font-display text-xl font-bold",children:"Tiles"}),(0,r.jsxs)("div",{className:"mt-4 flex items-center gap-2.5",children:[(0,r.jsx)(S.default,{providerId:"claude",size:"md",status:"live"}),(0,r.jsx)(S.default,{providerId:"codex",size:"md",status:"warn"}),(0,r.jsx)(S.default,{providerId:"openrouter",size:"md",status:"ok"})]}),(0,r.jsxs)("div",{className:"mt-4 flex items-end gap-3",children:[(0,r.jsx)(S.default,{providerId:"claude",size:"sm"}),(0,r.jsx)(S.default,{providerId:"codex",size:"md"}),(0,r.jsx)(S.default,{providerId:"cursor",size:"lg"})]}),(0,r.jsxs)("div",{className:"mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[(0,r.jsx)(O.default,{eyebrow:"Requests",value:"2,481",delta:"+12% vs yesterday",sparkline:[3,5,4,7,6,9,8]}),(0,r.jsx)(O.default,{eyebrow:"Tokens in / out",value:"4.2M / 612K",delta:"38% cached",sparkline:[8,6,9,5,7,6,8]}),(0,r.jsx)(O.default,{hero:!0,eyebrow:"Saved by token saver",value:"1.31M",delta:"31% lighter",sparkline:[2,4,3,5,6,7,9]})]})]})}var R=n(44863);function I(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-meters",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-meters",className:"font-display text-xl font-bold",children:"Meters"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-col gap-4",children:[(0,r.jsx)(R.default,{value:76,label:"Healthy account",valueText:"76 percent remaining"}),(0,r.jsx)(R.default,{value:41,label:"Cooling account",valueText:"41 percent remaining"}),(0,r.jsx)(R.default,{value:18,label:"Low account",valueText:"18 percent remaining"}),(0,r.jsx)(R.default,{value:100,kind:"unlimited",label:"Unlimited plan",valueText:"Unlimited"}),(0,r.jsx)(R.default,{value:64,kind:"credits",label:"Credit balance",valueText:"64 percent remaining"}),(0,r.jsx)(R.SegmentedHealthBar,{segments:[{value:82,label:"Work account"},{value:41,label:"Personal account"},{value:100,kind:"unlimited",label:"Backup account"}]})]})]})}var $=n(84588),P=n(56071),L=n(61002);function A(){let[e,t]=(0,a.useState)(!0);return(0,r.jsxs)("section",{"aria-labelledby":"kit-cards",className:"flex flex-col gap-4",children:[(0,r.jsx)("h2",{id:"kit-cards",className:"font-display text-xl font-bold",children:"Cards and settings"}),(0,r.jsx)(P.default,{icon:"shield",title:"Security & access",subtitle:(0,r.jsx)("span",{dir:"auto",children:"Who can reach the dashboard and the API."}),status:"ok",statusLabel:"Protected"}),(0,r.jsxs)($.default,{children:[(0,r.jsx)($.default.Header,{title:"Combos",subtitle:"Fallback chains",actions:(0,r.jsx)(s.default,{variant:"ghost",size:"sm",children:"All combos"})}),(0,r.jsxs)("div",{className:"mt-4 divide-y divide-line",children:[(0,r.jsx)(L.default,{label:"Require API key",description:(0,r.jsx)("span",{dir:"auto",children:"Requests without a valid key get a 401. Needed for the tunnel."}),settingKey:"requireApiKey",control:(0,r.jsx)(b.default,{checked:e,onChange:t,"aria-label":"Require API key"})}),(0,r.jsx)(L.default,{label:"Outbound proxy",description:(0,r.jsx)("span",{dir:"auto",children:"Send OAuth and provider calls through a proxy."}),settingKey:"outboundProxyEnabled",control:(0,r.jsx)(s.default,{variant:"secondary",size:"sm",children:"Test proxy"})})]})]})]})}var z=n(56006),_=n(99312),D=n(25086),K=n(77671),F=n(38794),M=n(65921);let U=[{id:"kit-log-1",time:"14:02:11",level:"LOG",message:"Gateway listening on :20128"},{id:"kit-log-2",time:"14:02:12",level:"INFO",message:"Loaded 14 provider connections"},{id:"kit-log-3",time:"14:03:40",level:"WARN",message:"gemini-cli rate limited, cooling down 2m 14s"},{id:"kit-log-4",time:"14:03:41",level:"ERROR",message:"kimi token refresh failed (401)"},{id:"kit-log-5",time:"14:03:42",level:"DEBUG",message:"combo coder -> openrouter/qwen3-coder"}];function q(){let e=(0,M.i)(),[t,n]=(0,a.useState)(0);return(0,r.jsxs)("section",{"aria-labelledby":"kit-feedback",className:"flex flex-col gap-4",children:[(0,r.jsx)("h2",{id:"kit-feedback",className:"font-display text-xl font-bold",children:"Feedback"}),(0,r.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,r.jsx)(z.default,{variant:"info",title:"Info",children:(0,r.jsx)("span",{dir:"auto",children:"Point any client at your endpoint."})}),(0,r.jsx)(z.default,{variant:"warn",title:"Cooling down",children:(0,r.jsx)("span",{dir:"auto",children:"Gemini CLI hit a rate limit."})}),(0,r.jsx)(z.default,{variant:"err",title:"Sign-in expired",children:(0,r.jsx)("span",{dir:"auto",children:"Requests are skipping this provider."})}),(0,r.jsx)(z.default,{variant:"ok",title:"Saved",children:(0,r.jsx)("span",{dir:"auto",children:"All changes saved."})})]}),(0,r.jsx)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(s.default,{variant:"secondary",size:"sm",icon:"undo",onClick:()=>{e.error("Couldn't save the combo. Your previous version is still active.",{action:{label:"Undo",onSelect:()=>{n(e=>e+1),e.success("Undone")}}})},children:"Error toast with undo"}),(0,r.jsx)("p",{"aria-live":"polite",className:"text-xs text-muted",children:t>0?`Undo pressed ${t} time${1===t?"":"s"}.`:""})]})}),(0,r.jsx)("div",{className:"rounded-2xl border border-line bg-panel shadow-card",children:(0,r.jsx)(_.default,{icon:"hub",title:"No providers yet",body:(0,r.jsx)("span",{dir:"auto",children:"Connect a provider to start routing traffic through your endpoint."}),action:(0,r.jsx)(s.default,{icon:"add",children:"Add provider"})})}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[(0,r.jsx)(D.CardSkeleton,{}),(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)(D.Skeleton,{className:"mb-3 h-5 w-32"}),(0,r.jsx)(D.SkeletonText,{lines:3})]}),(0,r.jsx)("div",{className:"flex items-center justify-center rounded-2xl border border-line bg-panel p-6 shadow-card",children:(0,r.jsx)(D.Spinner,{size:"lg"})})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("p",{"data-i18n-skip":"true",className:"mb-3 text-xs font-semibold uppercase tracking-[0.08em] text-muted",children:"LoadingState"}),(0,r.jsx)(K.LoadingState,{lines:3,label:"Loading demo widget"})]}),(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("p",{"data-i18n-skip":"true",className:"mb-3 text-xs font-semibold uppercase tracking-[0.08em] text-muted",children:"ErrorState"}),(0,r.jsx)(K.ErrorState,{title:"Could not load this widget",message:"The backend did not answer in time.",onRetry:()=>e.info("Retry demo pressed")})]})]}),(0,r.jsx)(F.default,{lines:U})]})}var H=n(81127),B=n(29499),G=n(93921),J=n(50611),V=n(97677);function Z(){let[e,t]=(0,a.useState)(!1),[n,l]=(0,a.useState)(!1),[i,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(!1);return(0,r.jsxs)("section",{"aria-labelledby":"kit-overlays",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-overlays",className:"font-display text-xl font-bold",children:"Overlays"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,r.jsx)(s.default,{variant:"secondary",onClick:()=>t(!0),children:"Open modal"}),(0,r.jsx)(s.default,{variant:"danger",onClick:()=>l(!0),children:"Open danger confirm"}),(0,r.jsx)(s.default,{variant:"ghost",onClick:()=>c(!0),children:"Open confirm with error"}),(0,r.jsx)(s.default,{variant:"secondary",onClick:()=>o(!0),children:"Open drawer"}),(0,r.jsxs)(G.default,{trigger:(0,r.jsx)(s.default,{variant:"secondary",children:"Open menu"}),align:"start",children:[(0,r.jsx)(G.MenuItem,{icon:"history",label:"Change log",onSelect:()=>{},children:"Change log"}),(0,r.jsx)(G.MenuItem,{icon:"dark_mode",label:"Theme",selected:!0,onSelect:()=>{},children:"Theme"}),(0,r.jsx)(G.MenuItem,{icon:"lock",label:"Settings",disabled:!0,onSelect:()=>{},children:"Settings"}),(0,r.jsx)(G.MenuItem,{icon:"power_settings_new",label:"Shutdown",danger:!0,onSelect:()=>{},children:"Shutdown"}),(0,r.jsx)(G.MenuItem,{icon:"logout",label:"Logout",danger:!0,onSelect:()=>{},children:"Logout"})]}),(0,r.jsx)(J.default,{trigger:(0,r.jsx)(s.default,{variant:"secondary",children:"Open popover"}),"aria-label":"Kit popover",children:(0,r.jsx)("p",{className:"text-sm text-muted",children:"Non-modal panel. Esc closes, focus returns."})}),(0,r.jsx)(V.default,{text:"Shows on hover and focus",position:"top",children:(0,r.jsx)(s.default,{variant:"ghost",children:"Hover me"})}),(0,r.jsx)(V.default,{text:"Error-tinted tip",variant:"err",children:(0,r.jsx)(s.default,{variant:"ghost",children:"Error tip"})})]}),(0,r.jsx)(H.default,{isOpen:e,onClose:()=>t(!1),title:"Kit modal",description:"Composed dialog: focus trap, Esc/backdrop close, scroll lock.",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.default,{variant:"ghost",onClick:()=>t(!1),children:"Cancel"}),(0,r.jsx)(s.default,{onClick:()=>t(!1),children:"Save"})]}),children:(0,r.jsx)("p",{className:"text-sm text-muted",children:"Modal body content goes here."})}),(0,r.jsx)(H.ConfirmDialog,{isOpen:n,onClose:()=>l(!1),onConfirm:()=>l(!1),title:"Delete provider?",message:"This removes the connection. The request logs stay.",confirmText:"Delete",variant:"danger"}),(0,r.jsx)(H.ConfirmDialog,{isOpen:d,onClose:()=>c(!1),onConfirm:()=>{throw Error("Refresh failed (401). Sign in again and retry.")},title:"Refresh token?",message:"Async failure stays inline under role=alert.",confirmText:"Retry",variant:"default"}),(0,r.jsx)(B.default,{isOpen:i,onClose:()=>o(!1),title:"Kit drawer",children:(0,r.jsx)("p",{className:"text-sm text-muted",children:"Full-height inline-end panel. Esc closes."})})]})}function W(){let[e,t]=(0,a.useState)("today"),[n,j]=(0,a.useState)("forms"),[y,k]=(0,a.useState)(!0),[w,S]=(0,a.useState)(3),[O,R]=(0,a.useState)("60"),[$,P]=(0,a.useState)(!0);return(0,r.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,r.jsxs)("header",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.08em] text-muted",children:`${l.Hc.slug} UI kit`}),(0,r.jsx)("h1",{className:"font-display text-[68px] leading-none font-extrabold",children:"Signal"}),(0,r.jsx)("p",{dir:"auto",className:"mt-1 max-w-[72ch] text-[15px] text-muted",children:"Warm ink surfaces. Coral is the brand and your selection. Lime means traffic is live, or it is the one thing to press."})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(d.default,{icon:"search",label:"Search"}),(0,r.jsx)(v.default,{})]})]}),(0,r.jsxs)("section",{"aria-labelledby":"kit-actions",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-actions",className:"font-display text-xl font-bold",children:"Buttons"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,r.jsx)(s.default,{children:"Copy endpoint"}),(0,r.jsx)(s.default,{variant:"secondary",children:"Test all"}),(0,r.jsx)(s.default,{variant:"ghost",children:"Cancel"}),(0,r.jsx)(s.default,{variant:"danger",children:"Delete"}),(0,r.jsx)(s.default,{variant:"secondary",size:"sm",loading:!0,children:"Testing"}),(0,r.jsx)(u.default,{children:"⌘K"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-4",children:[(0,r.jsx)(b.default,{checked:y,onChange:k,"aria-label":"Sample toggle on"}),(0,r.jsx)(b.default,{checked:!1,"aria-label":"Sample toggle off"}),(0,r.jsx)(p.default,{"aria-label":"Period",options:[{value:"today",label:"Today"},{value:"7d",label:"7d"},{value:"30d",label:"30d"}],value:e,onChange:t}),(0,r.jsx)(f.default,{tabs:[{value:"forms",label:"Forms"},{value:"display",label:"Display"}],value:n,onChange:j,"aria-label":"Kit tabs"})]})]}),(0,r.jsxs)("section",{"aria-labelledby":"kit-forms",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-forms",className:"font-display text-xl font-bold",children:"Forms"}),(0,r.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-2",children:[(0,r.jsx)(c.default,{label:"Provider name",hint:(0,r.jsx)("span",{dir:"auto",children:"Shown in lists and logs."}),placeholder:"claude-work"}),(0,r.jsx)(c.default,{label:"API key",error:(0,r.jsx)("span",{dir:"auto",children:"Key is required."}),placeholder:"sk-..."}),(0,r.jsx)(h.default,{label:"Notes",placeholder:"Anything the team should know."}),(0,r.jsx)(x.default,{label:"Auto-refresh",value:O,onChange:e=>R(e.target.value),options:[{value:"60",label:"Every 60s"},{value:"0",label:"Off"}]}),(0,r.jsx)(m.default,{label:"Sticky limit",value:w,min:1,max:10,onChange:S}),(0,r.jsx)(g.default,{label:"Cache TTL",value:O,unit:"s",onChange:e=>R(e.target.value)}),(0,r.jsx)(c.default,{label:"Disabled",value:"read only",disabled:!0,readOnly:!0}),(0,r.jsx)(i.default,{checked:$,onChange:P,label:"Enable provider"})]}),(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(o.default,{value:"http://localhost:20128/v1",label:"Endpoint URL"})})]}),(0,r.jsx)(C,{}),(0,r.jsx)(E,{}),(0,r.jsx)(N,{}),(0,r.jsx)(T,{}),(0,r.jsx)(I,{}),(0,r.jsx)(A,{}),(0,r.jsx)(q,{}),(0,r.jsx)(Z,{})]})}},25086:(e,t,n)=>{"use strict";n.d(t,{CardSkeleton:()=>u,PageLoading:()=>o,Skeleton:()=>d,SkeletonText:()=>c,Spinner:()=>i,default:()=>m});var r=n(95155),a=n(14051),l=n.n(a),s=n(31474);function i({size:e="md",className:t}){return(0,r.jsx)("span",{role:"status","aria-label":"Loading",className:(0,s.cn)("material-symbols-outlined animate-spin text-coral",{sm:"text-[16px]",md:"text-[24px]",lg:"text-[32px]",xl:"text-[48px]"}[e],t),children:"progress_activity"})}function o({message:e="Loading..."}){return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg",children:[(0,r.jsx)(i,{size:"xl"}),(0,r.jsx)("p",{className:"mt-4 text-muted",children:e})]})}function d({className:e,...t}){return(0,r.jsx)("div",{"aria-hidden":"true",className:(0,s.cn)("animate-pulse rounded-[10px] bg-raised",e),...t})}function c({lines:e=3,className:t}){let n=Array.from({length:e},(e,t)=>t);return(0,r.jsx)("div",{className:(0,s.cn)("flex flex-col gap-2",t),"aria-hidden":"true",children:n.map(e=>(0,r.jsx)(d,{className:(0,s.cn)("h-3",e===n.length-1?"w-2/3":"w-full")},`line-${e}`))})}function u(){return(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,r.jsx)(d,{className:"h-4 w-24"}),(0,r.jsx)(d,{className:"size-10 rounded-[10px]"})]}),(0,r.jsx)(d,{className:"mb-2 h-8 w-16"}),(0,r.jsx)(d,{className:"h-3 w-20"})]})}function m({type:e="spinner",...t}){switch(e){case"page":return(0,r.jsx)(o,{...t});case"skeleton":return(0,r.jsx)(d,{...t});case"card":return(0,r.jsx)(u,{...t});default:return(0,r.jsx)(i,{...t})}}d.propTypes={className:l().string},c.propTypes={lines:l().number,className:l().string}},28745:(e,t,n)=>{"use strict";n.d(t,{vQ:()=>l,UY:()=>d,Nu:()=>s,B2:()=>o,h0:()=>i});var r=n(4553),a=n(41463);let l={name:`${r.Hc.name} Proxy`,description:"AI infrastructure management",version:"1.0.1",build:{channel:a.env.NEXT_PUBLIC_BUILD_CHANNEL||"",sha:a.env.NEXT_PUBLIC_BUILD_SHA||""}},s={changelogUrl:"https://raw.githubusercontent.com/tokenhop/tokenhop/refs/heads/master/CHANGELOG.md"},i={appPort:20128},o={storageKey:"theme",defaultTheme:"dark"},d={maxLines:200,pollIntervalMs:1e3}},29499:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(19844),d=n(47929),c=n(6587);function u({isOpen:e,onClose:t,title:n,children:l,width:s="md",size:m,side:p="end",closeOnOverlay:x=!0,closeOnEscape:f=!0,initialFocusRef:h,className:b,id:g,bare:v=!1}){let j=(0,a.useRef)(null),[y,k]=(0,d.lk)(j),{overlayId:N,titleId:w}=(0,d.uf)("signal-drawer"),C=!!e;if((0,d.K$)(C),(0,d.rM)({container:y,active:C,initialFocusRef:h}),(0,d.s9)({onClose:t,containerRef:j,enabled:C,closeOnEscape:f,closeOnOutside:x}),!C)return null;let E=!v&&n;return(0,r.jsx)(d.ZL,{children:(0,r.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,r.jsx)("div",{className:"signal-backdrop absolute inset-0","aria-hidden":"true"}),(0,r.jsx)("div",{ref:k,id:g||N,role:"dialog","aria-modal":"true","aria-labelledby":E?w:void 0,"aria-label":v&&"string"==typeof n?n:void 0,tabIndex:-1,className:(0,i.cn)("signal-overlay-drawer absolute inset-y-0 flex max-w-full flex-col bg-panel text-text shadow-card outline-none",(0,o.PT)(p),(0,o.IN)(m??s),b),children:v?l:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-line px-6 py-4",children:[n?(0,r.jsx)("h2",{id:w,className:"min-w-0 font-display text-lg font-bold",children:n}):(0,r.jsx)("span",{}),t?(0,r.jsx)(c.default,{icon:"close",label:"Close",onClick:t}):null]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-6 custom-scrollbar",children:l})]})})]})})}u.propTypes={isOpen:s().bool,onClose:s().func,title:s().node,children:s().node,width:s().oneOf(Object.keys(o.gD)),size:s().oneOf(Object.keys(o.gD)),side:s().oneOf(["start","end"]),closeOnOverlay:s().bool,closeOnEscape:s().bool,initialFocusRef:s().shape({current:s().any}),className:s().string,id:s().string,bare:s().bool}},30225:(e,t,n)=>{Promise.resolve().then(n.bind(n,21341))},31692:(e,t,n)=>{"use strict";n.d(t,{Zr:()=>a});let r=e=>t=>{try{let n=e(t);if(n instanceof Promise)return n;return{then:e=>r(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>r(t)(e)}}},a=(e,t)=>(n,a,l)=>{let s,i={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var n;let r=e=>null===e?null:JSON.parse(e,void 0),a=null!=(n=t.getItem(e))?n:null;return a instanceof Promise?a.then(r):r(a)},setItem:(e,n)=>t.setItem(e,JSON.stringify(n,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,d=0,c=new Set,u=new Set,m=i.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...e)},a,l);let p=()=>{let e=i.partialize({...a()});return m.setItem(i.name,{state:e,version:i.version})},x=l.setState;l.setState=(e,t)=>(x(e,t),p());let f=e((...e)=>(n(...e),p()),a,l);l.getInitialState=()=>f;let h=()=>{var e,t;if(!m)return;let l=++d;o=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:f)});let x=(null==(t=i.onRehydrateStorage)?void 0:t.call(i,null!=(e=a())?e:f))||void 0;return r(m.getItem.bind(m))(i.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===i.version)return[!1,e.state];else{if(i.migrate){let t=i.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(l!==d)return;let[r,o]=e;if(n(s=i.merge(o,null!=(t=a())?t:f),!0),r)return p()}).then(()=>{l===d&&(null==x||x(a(),void 0),s=a(),o=!0,u.forEach(e=>e(s)))}).catch(e=>{l===d&&(null==x||x(void 0,e))})};return l.persist={setOptions:e=>{i={...i,...e},e.storage&&(m=e.storage)},clearStorage:()=>{++d,null==m||m.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(u.add(e),()=>{u.delete(e)})},i.skipHydration||h(),s||f}},35652:(e,t,n)=>{"use strict";var r,a=n(41463);let l=Object.freeze(["9router","tokenhop"]),s="tokenhop";function i(e,t){if(l.includes(e))return e;let n=l.map(e=>`"${e}"`).join(", ");throw Error(`${t}: unknown brand ${JSON.stringify(e)}; allowed values: ${n}`)}let o=""==(r="tokenhop")?s:i(r,"NEXT_PUBLIC_BRAND"),d=Object.freeze({name:"tokenhop",slug:"tokenhop",envPrefix:"TOKENHOP_",headerPrefix:"x-tokenhop-",jcodeApiKeyEnv:"JCODE_TOKENHOP_API_KEY",defaultApiKey:"sk_tokenhop",dataDirName:"tokenhop",samlIssuerDefault:"urn:tokenhop:sp",mitmCaCommonName:"tokenhop MITM Root CA",mitmCaOrg:"tokenhop",mitmCertFile:"tokenhop-root-ca.crt",pidFile:"tokenhop.pid",autostartLabel:"dev.tokenhop.autostart",autostartDesktopFile:"tokenhop.desktop",autostartVbsFile:"tokenhop.vbs",clientConfigKey:"tokenhop",customModelIdPrefix:"custom:tokenhop-",storageKeyPrefix:"tokenhop.",eventPrefix:"tokenhop:",backupFilePrefix:"tokenhop-backup-",npmPackage:"tokenhop",appPackage:"tokenhop-app",repoSlug:"tokenhop/tokenhop",repoUrl:"https://github.com/tokenhop/tokenhop",imageName:"ghcr.io/tokenhop/tokenhop",websiteUrl:"https://tokenhop.ai",docsUrl:"https://tokenhop.dev",wordmark:"tokenhop",favicon:"/brand/favicon.svg",faviconIco:"/brand/favicon.ico",appIcon192:"/brand/icons/icon-192.svg",appIcon512:"/brand/icons/icon-512.svg",trayIconName:"icon-tokenhop",trayIconTemplate:!0}),c=Object.freeze({names:Object.freeze(["9Router","9router"]),slug:"9router",envPrefixes:Object.freeze(["NINEROUTER_","NINE_ROUTER_"]),headerPrefix:"x-9router-",jcodeApiKeyEnv:"JCODE_9ROUTER_API_KEY",defaultApiKey:"sk_9router",dataDirName:"9router",samlIssuerDefault:"urn:9router:sp",mitmCaCommonName:"9Router MITM Root CA",mitmCaOrg:"9Router",mitmCertFile:"9router-root-ca.crt",pidFile:"9router.pid",autostartLabel:"com.9router.autostart",autostartDesktopFile:"9router.desktop",autostartVbsFile:"9router.vbs",clientConfigKeys:Object.freeze(["9router","9Router"]),customModelIdPrefix:"custom:9Router-",storageKeyPrefix:"9router.",eventPrefix:"9router:",backupFilePrefix:"9router-backup-",npmPackage:"9router",appPackage:"9router-app",repoSlug:"yandy-r/9router",repoUrl:"https://github.com/yandy-r/9router",imageName:"ghcr.io/yandy-r/9router",wordmark:"router",favicon:"/favicon.svg",faviconIco:"/favicon.ico",appIcon192:"/icons/icon-192.svg",appIcon512:"/icons/icon-512.svg",trayIconName:"icon",trayIconTemplate:!1}),u=Object.freeze({kimiPlatform:"9router",clineUserAgentProduct:"9Router",clineClientType:"9router",devinMcpClientName:"9router",coworkMcpClientName:"9router",cursorMcpProvider:"9router",glmMcpClientName:"9router",xaiUserAgent:"grok-cli/9router",xiaomiKeyNamePrefix:"9router-xmd-",githubUserAgent:"9Router",proxyTestUserAgent:"9Router",denoRelayKind:"9router-relay"}),m=new Set(["repoSlug","repoUrl","imageName","websiteUrl","docsUrl"]),p={name:"names",envPrefix:"envPrefixes",clientConfigKey:"clientConfigKeys"},x="tokenhop"===o?d:Object.freeze(Object.fromEntries(Object.keys(d).map(e=>{let t;return[e,m.has(e)?d[e]:Array.isArray(t=c[p[e]||e])?t[0]:t]}))),f=new Set;function h(e,t,n){if("tokenhop"!==o)return!1;let r=`${e}\u0000${t}`;return!f.has(r)&&(f.add(r),console.warn(`[tokenhop] deprecated ${e} "${t}" → use "${n}" (legacy support ends in v2.0.0)`),!0)}let b=/^[A-Z0-9]+(_[A-Z0-9]+)*$/;function g(e){if("string"!=typeof e||!b.test(e))throw Error(`envName: invalid suffix ${JSON.stringify(e)}; expected e.g. "PEER_TOKEN"`);return d.envPrefix+e}let v=/^(?!x-)[a-z0-9]+(-[a-z0-9]+)*$/;function j(e){return x.headerPrefix+function(e,t){if("string"!=typeof e||!v.test(e))throw Error(`${t}: invalid header name ${JSON.stringify(e)}; expected a bare lowercase name like "connection-id"`);return e}(e,"header")}e.exports={BRAND_IDS:l,DEFAULT_BRAND_ID:s,ACTIVE_BRAND_ID:o,isActiveBrand:function(e){return i(e,"isActiveBrand")===o},BRAND:d,LEGACY:c,ACTIVE:x,UPSTREAM_CLIENT_IDS:u,envName:g,readEnv:function(e,t=a.env){let n=g(e);if(void 0!==t[n])return t[n];for(let r of c.envPrefixes){let a=r+e;if(void 0!==t[a])return h("env var",a,n),t[a]}},warnLegacyOnce:h,header:j,legacyHeaderNames:function(e){let t=j(e);return[c.headerPrefix+e].filter(e=>e!==t)}}},38587:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(95155),a=n(1620),l=n(31474);function s({className:e,variant:t="default"}){let{isDark:n,toggleTheme:i}=(0,a.D)(),o={default:(0,l.cn)("flex items-center justify-center size-10 rounded-full","text-muted hover:text-text","hover:bg-raised transition-colors"),card:(0,l.cn)("flex items-center justify-center size-11 rounded-full","bg-panel/60 hover:bg-panel","border border-line","backdrop-blur-md shadow-sm hover:shadow-card","text-muted hover:text-coral-ink","transition-all group")};return(0,r.jsx)("button",{onClick:i,className:(0,l.cn)(o[t],e),"aria-label":`Switch to ${n?"light":"dark"} mode`,title:`Switch to ${n?"light":"dark"} mode`,children:(0,r.jsx)("span",{className:(0,l.cn)("material-symbols-outlined text-[22px]","card"===t&&"transition-transform duration-300 group-hover:rotate-12"),children:n?"light_mode":"dark_mode"})})}},38794:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(50770);function o({lines:e,label:t="Console output",className:n,live:a="off",onScroll:l,scrollRef:d,cursor:c=!1,row:u}){return(0,r.jsx)("div",{ref:d,role:"log","aria-label":t,"aria-live":a,dir:"ltr",onScroll:l,tabIndex:0,className:`signal-terminal custom-scrollbar m-0 overflow-auto rounded-2xl p-[18px_22px] text-start font-mono text-[13px] leading-[1.75] focus-visible:shadow-focus${n?` ${n}`:""}`,children:(0,r.jsxs)("ol",{className:"m-0 list-none p-0",children:[u?e.map((e,t)=>(0,r.jsx)(s.Fragment,{children:u(e,t)},e.key??e.id??`${e.time}-${t}`)):e.map((e,t)=>(0,r.jsxs)("li",{className:"flex gap-4 whitespace-nowrap",children:[(0,r.jsx)("span",{className:"signal-terminal-time shrink-0",children:e.time||"--:--:--"}),(0,r.jsx)("span",{className:`w-[52px] shrink-0 font-semibold ${(0,i.pN)(e.level)}`,children:e.level}),(0,r.jsx)("span",{className:"min-w-0 flex-1 whitespace-pre",children:e.message})]},e.id??`${e.time}-${t}`)),c&&(0,r.jsxs)("li",{className:"mt-0.5 flex gap-4 whitespace-nowrap","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"signal-terminal-time shrink-0",children:"--:--:--"}),(0,r.jsx)("span",{className:"signal-terminal-cursor w-[52px] shrink-0 animate-pulse font-semibold",children:"▍"})]})]})})}o.propTypes={lines:l().arrayOf(l().shape({id:l().oneOfType([l().string,l().number]),time:l().string,level:l().oneOf(["LOG","INFO","WARN","ERROR","DEBUG"]).isRequired,message:l().string.isRequired})).isRequired,label:l().string,className:l().string,live:l().oneOf(["off","polite"]),onScroll:l().func,scrollRef:l().shape({current:l().object}),cursor:l().bool,row:l().func}},44863:(e,t,n)=>{"use strict";n.d(t,{SegmentedHealthBar:()=>o,default:()=>i});var r=n(95155),a=n(14051),l=n.n(a),s=n(50770);function i({value:e,kind:t,variant:n,label:a,valueText:l,className:o}){if(!a)throw Error("Meter: `label` is required for the meter accessible name");let d=(0,s.r4)(e),c=n??(0,s.vE)(d,t),u=s.lN[c];if(!u)throw Error(`Meter: unknown variant "${c}"`);return(0,r.jsx)("div",{role:"meter","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,"aria-valuetext":l,"aria-label":a,className:`h-2 w-full overflow-hidden rounded-pill bg-raised shadow-[inset_0_0_0_1px_var(--signal-line)]${o?` ${o}`:""}`,children:(0,r.jsx)("div",{className:`h-full rounded-pill ${u}`,style:{width:`${d}%`}})})}function o({segments:e,className:t}){if(!Array.isArray(e)||0===e.length)throw Error("SegmentedHealthBar: needs at least one segment");return(0,r.jsx)("fieldset",{"aria-label":"Account health",className:`m-0 grid min-w-0 auto-cols-fr grid-flow-col gap-1 border-0 p-0${t?` ${t}`:""}`,children:e.map((e,t)=>(0,r.jsx)(i,{value:e.value,kind:e.kind,label:e.label,className:"rounded-sm shadow-none"},`${e.label??"segment"}-${t}`))})}i.propTypes={value:l().number.isRequired,kind:l().oneOf(["unlimited","credits"]),variant:l().oneOf(["brand","neutral"]),label:l().string.isRequired,valueText:l().string,className:l().string},o.propTypes={segments:l().arrayOf(l().shape({value:l().number.isRequired,kind:l().oneOf(["unlimited","credits"]),label:l().string.isRequired})).isRequired,className:l().string}},50611:(e,t,n)=>{"use strict";n.d(t,{default:()=>u,p:()=>c});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(19844),d=n(47929);function c(e,t,n,r){let[l,s]=(0,a.useState)({top:0,left:0,visibility:"hidden"});return(0,a.useEffect)(()=>{if(!n||"u"<typeof document)return;let a=0,l=()=>{let n=e.current,i=t.current;if(!n||!i){a=requestAnimationFrame(l);return}let d="rtl"===getComputedStyle(n).direction,c=(0,o.mI)(n.getBoundingClientRect(),{width:i.offsetWidth,height:i.offsetHeight},r,d);s({top:c.top,left:c.left})};return l(),window.addEventListener("resize",l),window.addEventListener("scroll",l,!0),()=>{cancelAnimationFrame(a),window.removeEventListener("resize",l),window.removeEventListener("scroll",l,!0)}},[e,t,n,r]),l}function u({trigger:e,children:t,open:n,onOpenChange:l,placement:s="bottom","aria-label":o,className:m}){let p=(0,a.useRef)(null),x=(0,a.useRef)(null),{overlayId:f}=(0,d.uf)("signal-popover"),[h,b]=(0,a.useState)(!1),g="boolean"==typeof n,v=g?n:h,j=(0,a.useCallback)(e=>g?l?.(e):b(e),[g,l]),y=c(p,x,v,s),k=(0,a.useCallback)(()=>{let e=x.current?.contains(document.activeElement)??!1;j(!1),e&&p.current?.focus?.()},[j]);if((0,d.s9)({onClose:k,containerRef:x,enabled:v,closeOnOutside:!1}),(0,a.useEffect)(()=>{if(!v)return;let e=e=>{x.current?.contains(e.target)||p.current?.contains(e.target)||j(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[v,j]),!(0,a.isValidElement)(e))throw Error("Popover: `trigger` must be a React element");return(0,r.jsxs)(r.Fragment,{children:[(0,a.cloneElement)(e,{ref:p,"aria-haspopup":"dialog","aria-expanded":v,"aria-controls":v?f:void 0,onClick:t=>{e.props.onClick?.(t),t.defaultPrevented||j(!v)}}),v?(0,r.jsx)(d.ZL,{children:(0,r.jsx)("div",{ref:x,id:f,role:"dialog","aria-label":o,style:y,className:(0,i.cn)("signal-overlay-pop fixed z-50 min-w-48 max-w-[min(24rem,calc(100vw-16px))] rounded-xl border border-line bg-panel p-4 text-text shadow-card",m),children:t})}):null]})}u.propTypes={trigger:s().element.isRequired,children:s().node,open:s().bool,onOpenChange:s().func,placement:s().oneOf(["top","bottom","start","end"]),"aria-label":s().string,className:s().string}},56006:(e,t,n)=>{"use strict";n.d(t,{default:()=>i});var r=n(95155),a=n(14051),l=n.n(a);let s={info:{classes:"bg-sky-bg text-sky-ink",icon:"info"},warn:{classes:"bg-warn-bg text-warn",icon:"warning"},err:{classes:"bg-err-bg text-err",icon:"error"},ok:{classes:"bg-ok-bg text-ok",icon:"check_circle"}};function i({variant:e="info",title:t,children:n,icon:a,className:l}){let o=s[e];if(!o)throw Error(`Callout: unknown variant "${e}"`);return(0,r.jsxs)("div",{role:"err"===e?"alert":"status",className:`flex gap-3 rounded-xl p-4 text-sm ${o.classes}${l?` ${l}`:""}`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[20px]","aria-hidden":"true",children:a??o.icon}),(0,r.jsxs)("div",{className:"min-w-0 text-text",children:[t&&(0,r.jsx)("p",{className:"font-semibold",children:t}),n&&(0,r.jsx)("div",{className:"text-muted",children:n})]})]})}i.propTypes={variant:l().oneOf(Object.keys(s)),title:l().node,children:l().node,icon:l().string,className:l().string}},65921:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(1934);let a=0,l=(0,r.v)((e,t)=>({notifications:[],addNotification:n=>{let r=++a,l={id:r,type:n.type||"info",message:n.message,title:n.title||null,action:n.action??null,accent:n.accent??null,duration:n.duration??5e3,dismissible:n.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,l]})),l.duration>0&&setTimeout(()=>t().removeNotification(r),l.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,n)=>t().addNotification(s("success",e,n)),error:(e,n)=>t().addNotification({duration:8e3,...s("error",e,n)}),warning:(e,n)=>t().addNotification(s("warning",e,n)),info:(e,n)=>t().addNotification(s("info",e,n))}));function s(e,t,n){if("string"==typeof n)return{type:e,message:t,title:n};let r={type:e,message:t,...n||{}},{action:a}=r;if(null!=a&&("string"!=typeof a.label||!a.label||"function"!=typeof a.onSelect))throw TypeError("notification action needs a label and onSelect function");return r}},77671:(e,t,n)=>{"use strict";n.d(t,{ErrorState:()=>c,LoadingState:()=>d});var r=n(95155),a=n(14051),l=n.n(a),s=n(92542),i=n(56006),o=n(25086);function d({lines:e=4,label:t="Loading",className:n=""}){return(0,r.jsxs)("div",{role:"status","aria-label":t,className:`flex min-w-0 flex-col gap-3 ${n}`,children:[(0,r.jsx)(o.Skeleton,{className:"h-5 w-24"}),(0,r.jsx)(o.Skeleton,{className:"h-9 w-2/3"}),Array.from({length:e},(e,t)=>`line-${t}`).map(e=>(0,r.jsx)(o.Skeleton,{className:"h-4 w-full"},e))]})}function c({message:e,onRetry:t,title:n="Could not load this view",children:a}){return(0,r.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,r.jsx)(i.default,{variant:"err",title:n,children:e||"Something went wrong while loading."}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[t&&(0,r.jsx)(s.default,{variant:"secondary",size:"sm",icon:"refresh",onClick:t,children:"Retry"}),a]})]})}d.propTypes={lines:l().number,label:l().string,className:l().string},c.propTypes={message:l().string,onRetry:l().func,title:l().string,children:l().node}},84588:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(95155),a=n(14051),l=n.n(a),s=n(31474);let i={none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"};function o({children:e,title:t,subtitle:n,icon:a,action:l,as:d="h2",padding:c="md",hover:u=!1,elev:m=!1,className:p,role:x,...f}){if(void 0===i[c])throw Error(`Card: unknown padding "${c}"`);let h=x||(f["aria-label"]||f["aria-labelledby"]?"region":void 0);return(0,r.jsxs)("div",{role:h,className:(0,s.cn)("rounded-2xl border border-line bg-panel shadow-card",u&&"cursor-pointer transition-colors duration-150 hover:border-coral/40",i[c],p),...f,children:[(t||l)&&(0,r.jsx)(o.Header,{title:t,subtitle:n,icon:a,actions:l,as:d,className:"mb-4"}),e]})}o.propTypes={children:l().node,title:l().node,subtitle:l().node,icon:l().string,action:l().node,as:l().oneOf(["h2","h3","h4"]),padding:l().oneOf(Object.keys(i)),hover:l().bool,elev:l().bool,className:l().string,role:l().string},o.Header=function({title:e,subtitle:t,icon:n,actions:a,as:l="h2",className:i}){return(0,r.jsxs)("div",{className:(0,s.cn)("flex flex-wrap items-center justify-between gap-3",i),children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[n&&(0,r.jsx)("span",{className:"flex size-10 shrink-0 items-center justify-center rounded-[10px] bg-coral-bg text-coral-ink",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:n})}),(0,r.jsxs)("div",{className:"min-w-0",children:[e&&(0,r.jsx)(l,{className:"font-display text-lg font-bold text-text",children:e}),t&&(0,r.jsx)("p",{className:"text-sm text-muted",children:t})]})]}),a&&(0,r.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:a})]})},o.Header.propTypes={title:l().node,subtitle:l().node,icon:l().string,actions:l().node,as:l().oneOf(["h2","h3","h4"]),className:l().string},o.Section=function({children:e,className:t,...n}){return(0,r.jsx)("div",{className:(0,s.cn)("rounded-xl border border-line bg-raised p-4",t),...n,children:e})},o.Row=function({children:e,className:t,...n}){return(0,r.jsx)("div",{className:(0,s.cn)("-mx-3 border-b border-line p-3 px-3 transition-colors last:border-b-0 hover:bg-raised",t),...n,children:e})},o.ListItem=function({children:e,actions:t,className:n,...a}){return(0,r.jsxs)("div",{className:(0,s.cn)("group -mx-3 flex items-center justify-between border-b border-line p-3 px-3 transition-colors last:border-b-0 hover:bg-raised",n),...a,children:[(0,r.jsx)("div",{className:"min-w-0 flex-1",children:e}),t&&(0,r.jsx)("div",{className:"flex items-center gap-1 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100",children:t})]})}},86465:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(95155),a=n(14051),l=n.n(a);function s({model:e,className:t}){return(0,r.jsx)("code",{className:`inline-flex max-w-full items-center truncate rounded-md border border-line bg-raised px-2 py-0.5 font-mono text-xs text-muted${t?` ${t}`:""}`,children:e})}s.propTypes={model:l().string.isRequired,className:l().string}},93921:(e,t,n)=>{"use strict";n.d(t,{MenuItem:()=>x,default:()=>p});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(4650),d=n(19844),c=n(47929);let u=a.useLayoutEffect,m=e=>"string"==typeof e?.props?.label?e.props.label:e?.props?.children;function p({trigger:e,children:t,open:n,onOpenChange:l,align:s="end",className:x}){let f=(0,a.useRef)(null),h=(0,a.useRef)(null),b=(0,a.useRef)([]),g=(0,a.useRef)({session:null}),{overlayId:v}=(0,c.uf)("signal-menu"),[j,y]=(0,a.useState)(!1),[k,N]=(0,a.useState)(-1),[w,C]=(0,a.useState)(null),[E,S]=(0,a.useState)(null),O=(0,a.useCallback)(e=>{h.current=e,S(e)},[]),T="boolean"==typeof n,R=T?n:j,I=(0,a.useCallback)(e=>{T?l?.(e):y(e),e||(N(-1),g.current.session=null)},[T,l]),$=(0,a.useCallback)(()=>{let e=f.current;e&&"function"==typeof e.focus&&e.focus()},[]),P=(0,a.useCallback)(()=>I(!1),[I]),L=(0,a.useCallback)(()=>{P(),$()},[P,$]);(0,a.useEffect)(()=>{R&&E&&w&&b.current[Math.max(k,0)]?.focus?.()},[R,E,w,k]),(0,c.s9)({onClose:L,containerRef:h,enabled:R,closeOnOutside:!1}),(0,a.useEffect)(()=>{if(!R)return;let e=e=>{h.current?.contains(e.target)||f.current?.contains(e.target)||P()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[R,P]);let A=a.Children.toArray(t).filter(a.isValidElement),z=A.map(m),_=A.map(e=>!!e.props.disabled),D=(0,a.useRef)(_);D.current=_;let K=(0,a.useCallback)((e=0)=>{I(!0);let t=(0,d.oQ)(D.current,e<0?0:e);N(t<0?e:t)},[I]);u(()=>{if(!R||!E)return void C(null);let e=()=>{let e=f.current;if(!e)return;let t=e.getBoundingClientRect(),n={width:E.offsetWidth,height:E.offsetHeight},r="rtl"===getComputedStyle(e).direction,a=(0,d.Rg)(t,n,s,r);C({top:a.top,left:a.left})};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[R,E,s]);let F=e=>{if("Tab"===e.key){R&&P();return}if("ArrowDown"===e.key)e.preventDefault(),K(0);else if("ArrowUp"===e.key){e.preventDefault(),I(!0);let t=(0,d.oQ)(_,A.length-1,!0);N(t<0?A.length-1:t)}else("Enter"===e.key||" "===e.key)&&(e.preventDefault(),R?P():K(0))},M=(0,a.isValidElement)(e)?e.props["aria-label"]??e.props.label??("string"==typeof e.props.children?e.props.children:void 0):void 0,U={ref:f,"aria-haspopup":"menu","aria-expanded":R,"aria-controls":R?v:void 0,onClick:()=>{R?P():K(0)},onKeyDown:F};return(0,r.jsxs)(r.Fragment,{children:[(0,a.isValidElement)(e)?(0,a.cloneElement)(e,{...U,onClick:t=>{e.props.onClick?.(t),t.defaultPrevented||U.onClick(t)},onKeyDown:t=>{e.props.onKeyDown?.(t),t.defaultPrevented||F(t)}}):(0,r.jsx)("button",{type:"button",...U,className:"inline-flex h-11 items-center justify-center gap-2 rounded-lg border border-line bg-raised px-4 text-sm font-semibold text-text transition-colors duration-150 hover:bg-line/60 focus-visible:outline-none focus-visible:shadow-focus",children:e}),R?(0,r.jsx)(c.ZL,{children:(0,r.jsx)("div",{ref:O,id:v,role:"menu","aria-label":M,"aria-orientation":"vertical",style:w??{visibility:"hidden"},className:(0,i.cn)("signal-overlay-menu fixed z-50 w-60 overflow-hidden rounded-xl border border-line bg-panel py-1 text-text shadow-card",x),children:A.map((e,t)=>(0,a.cloneElement)(e,{key:e.key??t,ref:e=>{b.current[t]=e},tabIndex:t===Math.max(k,0)?0:-1,"data-active":t===Math.max(k,0),onKeyDown:e=>((e,t)=>{if("Tab"===e.key)return void P();if((0,o.JF)(e.key)){e.preventDefault();let n="u">typeof document&&"rtl"===document.dir,r=(0,d.jg)(t,e.key,_,o.lZ,{rtl:n});N(r),b.current[r]?.focus?.();return}if(1===e.key.length&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let n=g.current,{session:r,index:a}=(0,d.sF)(n.session,e.key,e.timeStamp,z.map(e=>String(e??"")),t,_);n.session=r,a!==t&&(N(a),b.current[a]?.focus?.())}})(e,t),onSelect:()=>{e.props.onSelect?.(),L()}}))})}):null]})}p.propTypes={trigger:s().node.isRequired,children:s().node,open:s().bool,onOpenChange:s().func,align:s().oneOf(["start","end"]),className:s().string};let x=function({icon:e,label:t,children:n,trailing:a,danger:l=!1,selected:s=!1,disabled:o=!1,onSelect:d,...c}){return(0,r.jsxs)("button",{type:"button",role:"menuitem","aria-current":s||void 0,disabled:o,onClick:e=>{o?e.preventDefault():d?.(e)},className:(0,i.cn)("flex min-h-11 w-full items-center gap-3 px-4 py-2.5 text-sm transition-colors duration-150","focus-visible:outline-none focus-visible:shadow-focus","disabled:cursor-not-allowed disabled:opacity-50",l?"text-err hover:bg-err-bg":"text-text hover:bg-raised",s&&"bg-coral-bg font-semibold text-coral-ink"),...c,children:[e?(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-muted","aria-hidden":"true",children:e}):null,(0,r.jsx)("span",{className:"min-w-0 flex-1 text-start",children:n??t}),s?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check"}):null,a?(0,r.jsx)("span",{className:"shrink-0 text-sm text-muted",children:a}):null]})};x.propTypes={icon:s().string,label:s().string,children:s().node,trailing:s().node,danger:s().bool,selected:s().bool,disabled:s().bool,onSelect:s().func}},97677:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(19844),d=n(50611),c=n(47929);function u({text:e,children:t,position:n="top",variant:l="neutral",disabled:s=!1,className:m}){let p=(0,a.useRef)(null),x=(0,a.useRef)(null),f=(0,a.useRef)(null),h=(0,a.useRef)(null),{overlayId:b}=(0,c.uf)("signal-tooltip"),[g,v]=(0,a.useState)(!1),j=(0,o.eJ)(g,s,e),y=(0,d.p)(p,x,j,n);(0,a.useEffect)(()=>()=>{clearTimeout(f.current),clearTimeout(h.current)},[]),(0,a.useEffect)(()=>{!j&&g&&(clearTimeout(f.current),v(!1))},[j,g]),(0,a.useEffect)(()=>j?(0,c.r2)(window,()=>v(!1)):void 0,[j]);let k=(0,a.useCallback)(()=>{(0,o.eJ)(!0,s,e)&&(clearTimeout(h.current),clearTimeout(f.current),f.current=setTimeout(()=>v(!0),150))},[s,e]),N=(0,a.useCallback)(()=>{clearTimeout(f.current),clearTimeout(h.current),h.current=setTimeout(()=>v(!1),100)},[]);if((0,a.useEffect)(()=>{let e=p.current;if(e)return e.addEventListener("mouseenter",k),e.addEventListener("mouseleave",N),e.addEventListener("focusin",k),e.addEventListener("focusout",N),()=>{e.removeEventListener("mouseenter",k),e.removeEventListener("mouseleave",N),e.removeEventListener("focusin",k),e.removeEventListener("focusout",N)}},[k,N]),!(0,a.isValidElement)(t))throw Error("Tooltip: `children` must be a React element");let w="string"==typeof t.type,C=w&&!["button","a","input","select","textarea"].includes(t.type)&&void 0===t.props.tabIndex,E=(0,a.cloneElement)(t,{"aria-describedby":j?b:t.props["aria-describedby"],tabIndex:w&&C?0:t.props.tabIndex});return(0,r.jsxs)("span",{ref:p,className:"inline-flex",children:[E,j?(0,r.jsx)(c.ZL,{children:(0,r.jsx)("div",{ref:x,id:b,role:"tooltip",style:y,className:(0,i.cn)("signal-overlay-tip pointer-events-none fixed z-50 w-max max-w-56 whitespace-normal rounded-lg px-2 py-1 text-[11px] leading-snug",(0,o.lH)(l),m),children:e})}):null]})}u.propTypes={text:s().node,children:s().element.isRequired,position:s().oneOf(["top","bottom","start","end","left","right"]),variant:s().oneOf(Object.keys(o.h1)),disabled:s().bool,className:s().string}},98542:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(31474);let o={sm:"h-[26px] w-11",md:"h-[26px] w-11",lg:"h-7 w-12"};function d({checked:e=!1,onChange:t,label:n,description:a,disabled:l=!1,size:c="md",className:u,id:m,...p}){let x=(0,s.useId)(),f=m||x,h=`${f}-label`,b=`${f}-description`;if(!o[c])throw Error(`Toggle: unknown size "${c}"`);return(0,r.jsxs)("div",{className:(0,i.cn)("flex items-center gap-3",l&&"opacity-50",u),children:[(0,r.jsx)("button",{...p,id:f,type:"button",role:"switch","aria-checked":e,"aria-labelledby":n?h:p["aria-labelledby"],"aria-describedby":a?b:p["aria-describedby"],"aria-label":n?void 0:p["aria-label"]||p.title,disabled:l,onClick:()=>t?.(!e),className:(0,i.cn)("relative inline-flex shrink-0 rounded-full border border-line transition-colors duration-200","focus-visible:outline-none focus-visible:shadow-focus disabled:cursor-not-allowed","motion-reduce:transition-none",e?"bg-toggle-on":"bg-line",o[c]),children:(0,r.jsx)("span",{"aria-hidden":"true",className:(0,i.cn)("pointer-events-none absolute top-0.5 size-5 rounded-full shadow-sm transition-transform duration-200 motion-reduce:transition-none",e?"bg-toggle-knob-on translate-x-5 rtl:-translate-x-5":"bg-muted translate-x-0.5 rtl:-translate-x-0.5","start-0")})}),(n||a)&&(0,r.jsxs)("div",{className:"flex flex-col",children:[n&&(0,r.jsx)("label",{id:h,htmlFor:f,className:"text-sm font-medium text-text cursor-pointer",children:n}),a&&(0,r.jsx)("span",{id:b,className:"text-xs text-muted",children:a})]})]})}d.propTypes={checked:l().bool,onChange:l().func,label:l().node,description:l().node,disabled:l().bool,size:l().oneOf(Object.keys(o)),className:l().string,id:l().string,title:l().string,"aria-label":l().string}}},e=>{e.O(0,[1610,9671,4685,2903,4321,8441,3794,7358],()=>e(e.s=30225)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1665,9499],{1934:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(12115);let a=e=>{let t,n=new Set,r=(e,r)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=r?r:"object"!=typeof a||null===a)?a:Object.assign({},t,a),n.forEach(n=>n(t,e))}},a=()=>t,l={setState:r,getState:a,getInitialState:()=>s,subscribe:e=>(n.add(e),()=>n.delete(e))},s=t=e(r,a,l);return l},l=e=>{let t=e?a(e):a,n=e=>(function(e,t=e=>e){let n=r.useSyncExternalStore(e.subscribe,r.useCallback(()=>t(e.getState()),[e,t]),r.useCallback(()=>t(e.getInitialState()),[e,t]));return r.useDebugValue(n),n})(t,e);return Object.assign(n,t),n},s=e=>e?l(e):l},4553:(e,t,n)=>{"use strict";n.d(t,{DM:()=>s,Hc:()=>c,qt:()=>o,qx:()=>d});var r=n(35652);let{BRAND_IDS:a,DEFAULT_BRAND_ID:l,ACTIVE_BRAND_ID:s,isActiveBrand:i,BRAND:o,LEGACY:d,ACTIVE:c,UPSTREAM_CLIENT_IDS:u,envName:m,readEnv:p,warnLegacyOnce:x,header:f,legacyHeaderNames:h}=n.n(r)()},9911:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(31474);function o({checked:e=!1,indeterminate:t=!1,onChange:n,label:a,description:l,disabled:d=!1,className:c,id:u,...m}){let p=(0,s.useId)(),x=u||p,f=(0,s.useRef)(null);return(0,s.useEffect)(()=>{f.current&&(f.current.indeterminate=t)},[t]),(0,r.jsxs)("div",{className:(0,i.cn)("flex items-start gap-3",d&&"opacity-50",c),children:[(0,r.jsxs)("span",{className:"relative inline-flex size-11 shrink-0 items-center justify-center -ms-2.5",children:[(0,r.jsx)("input",{...m,ref:f,id:x,type:"checkbox",checked:e,"aria-checked":t?"mixed":e,onChange:e=>n?.(e.target.checked),disabled:d,className:"peer absolute inset-0 m-0 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed"}),(0,r.jsx)("span",{"aria-hidden":"true",className:(0,i.cn)("pointer-events-none flex size-[22px] items-center justify-center rounded-xs border border-line bg-raised","text-transparent transition-colors duration-150","peer-checked:border-transparent peer-checked:bg-coral peer-checked:text-on-coral","peer-focus-visible:shadow-focus peer-disabled:cursor-not-allowed",t&&"border-transparent bg-coral text-on-coral"),children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px] font-bold",children:t?"remove":"check"})})]}),(a||l)&&(0,r.jsxs)("label",{htmlFor:x,className:"flex cursor-pointer flex-col pt-2",children:[a&&(0,r.jsx)("span",{className:"text-sm font-medium text-text",children:a}),l&&(0,r.jsx)("span",{className:"text-xs text-muted",children:l})]})]})}o.propTypes={checked:l().bool,indeterminate:l().bool,onChange:l().func,label:l().node,description:l().node,disabled:l().bool,className:l().string,id:l().string}},20446:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(31474),o=n(4650);let d=["ArrowLeft","ArrowRight","Home","End"];function c({tabs:e=[],value:t,defaultValue:n,onChange:a,className:l,id:u,"aria-label":m,"aria-labelledby":p,...x}){let f=(0,s.useId)(),h=u||f,b=(0,s.useRef)([]),[g,v]=(0,s.useState)(n??e[0]?.value),j=void 0!==t?t:g,y=Math.max(0,e.findIndex(e=>e.value===j)),k=e=>{void 0===t&&v(e),a?.(e)};return(0,r.jsxs)("div",{...x,className:(0,i.cn)("flex flex-col",l),children:[(0,r.jsx)("div",{role:"tablist","aria-label":m,"aria-labelledby":p,"aria-orientation":"horizontal",className:"flex items-center gap-1 border-b border-line overflow-x-auto",children:e.map((t,n)=>{let a=n===y;return(0,r.jsxs)("button",{ref:e=>{b.current[n]=e},type:"button",role:"tab",id:`${h}-tab-${t.value}`,"aria-selected":a,"aria-controls":`${h}-panel-${t.value}`,tabIndex:a?0:-1,onClick:()=>k(t.value),onKeyDown:t=>((t,n)=>{if(!d.includes(t.key)||0===e.length)return;t.preventDefault();let r=(0,o.lZ)(n,t.key,{length:e.length,rtl:t.currentTarget.closest("[dir]")?.getAttribute("dir")==="rtl"});b.current[r]?.focus(),k(e[r].value)})(t,n),className:(0,i.cn)("relative inline-flex h-11 shrink-0 items-center px-3 text-sm font-semibold transition-colors focus-visible:shadow-focus",a?"text-text":"text-muted hover:text-text"),children:[t.label,null!=t.count&&(0,r.jsx)("span",{className:"ms-1.5 font-mono text-xs text-muted",children:t.count}),(0,r.jsx)("span",{"aria-hidden":"true",className:(0,i.cn)("absolute inset-x-2 -bottom-px h-0.5 rounded-full bg-coral transition-opacity",a?"opacity-100":"opacity-0")})]},t.value)})}),e.map((e,t)=>(0,r.jsx)("div",{role:"tabpanel",id:`${h}-panel-${e.value}`,"aria-labelledby":`${h}-tab-${e.value}`,hidden:t!==y,tabIndex:(0,o.qM)(e.content)?0:void 0,children:e.content},e.value))]})}c.propTypes={tabs:l().arrayOf(l().shape({value:l().oneOfType([l().string,l().number]).isRequired,label:l().node.isRequired,count:l().oneOfType([l().string,l().number]),content:l().node})),value:l().oneOfType([l().string,l().number]),defaultValue:l().oneOfType([l().string,l().number]),onChange:l().func,className:l().string,id:l().string,"aria-label":function(e,t,n){return e["aria-label"]||e["aria-labelledby"]?null:Error(`${n}: provide "aria-label" or "aria-labelledby".`)},"aria-labelledby":l().string}},21341:(e,t,n)=>{"use strict";n.d(t,{default:()=>W});var r=n(95155),a=n(12115),l=n(4553),s=n(92542),i=n(9911),o=n(10185),d=n(6587),c=n(11910),u=n(15729),m=n(61640),p=n(28067),x=n(99380),f=n(20446),h=n(52024),b=n(98542),g=n(50744),v=n(38587),j=n(19123),y=n(56061),k=n(86465);function N(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-pills",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-pills",className:"font-display text-xl font-bold",children:"Pills, badges, chips"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(j.default,{variant:"ok",dot:!0,children:"Connected"}),(0,r.jsx)(j.default,{variant:"warn",children:"Cooldown 2m"}),(0,r.jsx)(j.default,{variant:"err",children:"Auth error"}),(0,r.jsx)(j.default,{variant:"info",children:"OAuth"}),(0,r.jsx)(j.default,{variant:"live",children:"Free tier"}),(0,r.jsx)(j.default,{variant:"brand",children:"API key"}),(0,r.jsx)(j.default,{variant:"neutral",children:"Off"}),(0,r.jsx)(j.default,{variant:"ok",size:"sm",dot:!0,children:"Compact"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(y.default,{variant:"success",dot:!0,size:"sm",children:"Ready"}),(0,r.jsx)(y.default,{variant:"error",size:"sm",children:"Failed"}),(0,r.jsx)(y.default,{variant:"primary",icon:"key",size:"sm",children:"API key"}),(0,r.jsx)(y.default,{variant:"default",size:"sm",children:"Total: 42"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)(k.default,{model:"cc/claude-sonnet-4-6"}),(0,r.jsx)(k.default,{model:"cx/gpt-5.1-codex"}),(0,r.jsx)(k.default,{model:"openrouter/qwen3-coder"})]})]})}let w=[{bg:"bg-bg",token:"--signal-bg",label:"Ground"},{bg:"bg-panel",token:"--signal-panel",label:"Panel"},{bg:"bg-raised",token:"--signal-raised",label:"Raised"},{bg:"bg-line",token:"--signal-line",label:"Line"},{bg:"bg-text",token:"--signal-text",label:"Text"},{bg:"bg-muted",token:"--signal-muted",label:"Muted"},{bg:"bg-coral",token:"--signal-coral",label:"Coral \xb7 brand"},{bg:"bg-lime",token:"--signal-lime",label:"Lime \xb7 live"},{bg:"bg-sky",token:"--signal-sky",label:"Sky \xb7 info"},{bg:"bg-ok",token:"--signal-ok",label:"OK"},{bg:"bg-warn",token:"--signal-warn",label:"Warn"},{bg:"bg-err",token:"--signal-err",label:"Error"}];function C(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-swatches",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-swatches",className:"font-display text-xl font-bold",children:"Tokens"}),(0,r.jsx)("div",{className:"mt-4 grid grid-cols-3 gap-3 sm:grid-cols-4 lg:grid-cols-6",children:w.map(e=>(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)("span",{className:`${e.bg} h-[52px] rounded-lg shadow-[inset_0_0_0_1px_var(--signal-line)]`}),(0,r.jsx)("span",{className:"text-xs font-semibold",children:e.label}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:e.token})]},e.label))})]})}function E(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-type",className:"flex flex-col gap-3 rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-type",className:"font-display text-xl font-bold",children:"Type"}),(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,r.jsx)("span",{className:"font-display text-[40px] leading-[1.05] font-bold",children:"Command center"}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:"Bricolage Grotesque 700"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,r.jsx)("span",{dir:"auto",className:"flex-1 text-[15px] leading-[1.5]",children:"One endpoint, 40+ providers, automatic fallback."}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:"Geist 400/600"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-4 gap-y-1",children:[(0,r.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-sm",children:"cc/claude-sonnet-4-6 → cx/gpt-5.1-codex"}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-muted",children:"Geist Mono 500"})]})]})}var S=n(96975),O=n(25908);function T(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-tiles",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-tiles",className:"font-display text-xl font-bold",children:"Tiles"}),(0,r.jsxs)("div",{className:"mt-4 flex items-center gap-2.5",children:[(0,r.jsx)(S.default,{providerId:"claude",size:"md",status:"live"}),(0,r.jsx)(S.default,{providerId:"codex",size:"md",status:"warn"}),(0,r.jsx)(S.default,{providerId:"openrouter",size:"md",status:"ok"})]}),(0,r.jsxs)("div",{className:"mt-4 flex items-end gap-3",children:[(0,r.jsx)(S.default,{providerId:"claude",size:"sm"}),(0,r.jsx)(S.default,{providerId:"codex",size:"md"}),(0,r.jsx)(S.default,{providerId:"cursor",size:"lg"})]}),(0,r.jsxs)("div",{className:"mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[(0,r.jsx)(O.default,{eyebrow:"Requests",value:"2,481",delta:"+12% vs yesterday",sparkline:[3,5,4,7,6,9,8]}),(0,r.jsx)(O.default,{eyebrow:"Tokens in / out",value:"4.2M / 612K",delta:"38% cached",sparkline:[8,6,9,5,7,6,8]}),(0,r.jsx)(O.default,{hero:!0,eyebrow:"Saved by token saver",value:"1.31M",delta:"31% lighter",sparkline:[2,4,3,5,6,7,9]})]})]})}var R=n(44863);function I(){return(0,r.jsxs)("section",{"aria-labelledby":"kit-meters",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-meters",className:"font-display text-xl font-bold",children:"Meters"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-col gap-4",children:[(0,r.jsx)(R.default,{value:76,label:"Healthy account",valueText:"76 percent remaining"}),(0,r.jsx)(R.default,{value:41,label:"Cooling account",valueText:"41 percent remaining"}),(0,r.jsx)(R.default,{value:18,label:"Low account",valueText:"18 percent remaining"}),(0,r.jsx)(R.default,{value:100,kind:"unlimited",label:"Unlimited plan",valueText:"Unlimited"}),(0,r.jsx)(R.default,{value:64,kind:"credits",label:"Credit balance",valueText:"64 percent remaining"}),(0,r.jsx)(R.SegmentedHealthBar,{segments:[{value:82,label:"Work account"},{value:41,label:"Personal account"},{value:100,kind:"unlimited",label:"Backup account"}]})]})]})}var $=n(84588),P=n(56071),L=n(61002);function A(){let[e,t]=(0,a.useState)(!0);return(0,r.jsxs)("section",{"aria-labelledby":"kit-cards",className:"flex flex-col gap-4",children:[(0,r.jsx)("h2",{id:"kit-cards",className:"font-display text-xl font-bold",children:"Cards and settings"}),(0,r.jsx)(P.default,{icon:"shield",title:"Security & access",subtitle:(0,r.jsx)("span",{dir:"auto",children:"Who can reach the dashboard and the API."}),status:"ok",statusLabel:"Protected"}),(0,r.jsxs)($.default,{children:[(0,r.jsx)($.default.Header,{title:"Combos",subtitle:"Fallback chains",actions:(0,r.jsx)(s.default,{variant:"ghost",size:"sm",children:"All combos"})}),(0,r.jsxs)("div",{className:"mt-4 divide-y divide-line",children:[(0,r.jsx)(L.default,{label:"Require API key",description:(0,r.jsx)("span",{dir:"auto",children:"Requests without a valid key get a 401. Needed for the tunnel."}),settingKey:"requireApiKey",control:(0,r.jsx)(b.default,{checked:e,onChange:t,"aria-label":"Require API key"})}),(0,r.jsx)(L.default,{label:"Outbound proxy",description:(0,r.jsx)("span",{dir:"auto",children:"Send OAuth and provider calls through a proxy."}),settingKey:"outboundProxyEnabled",control:(0,r.jsx)(s.default,{variant:"secondary",size:"sm",children:"Test proxy"})})]})]})]})}var z=n(56006),_=n(99312),D=n(25086),K=n(77671),F=n(38794),M=n(65921);let U=[{id:"kit-log-1",time:"14:02:11",level:"LOG",message:"Gateway listening on :20128"},{id:"kit-log-2",time:"14:02:12",level:"INFO",message:"Loaded 14 provider connections"},{id:"kit-log-3",time:"14:03:40",level:"WARN",message:"gemini-cli rate limited, cooling down 2m 14s"},{id:"kit-log-4",time:"14:03:41",level:"ERROR",message:"kimi token refresh failed (401)"},{id:"kit-log-5",time:"14:03:42",level:"DEBUG",message:"combo coder -> openrouter/qwen3-coder"}];function q(){let e=(0,M.i)(),[t,n]=(0,a.useState)(0);return(0,r.jsxs)("section",{"aria-labelledby":"kit-feedback",className:"flex flex-col gap-4",children:[(0,r.jsx)("h2",{id:"kit-feedback",className:"font-display text-xl font-bold",children:"Feedback"}),(0,r.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,r.jsx)(z.default,{variant:"info",title:"Info",children:(0,r.jsx)("span",{dir:"auto",children:"Point any client at your endpoint."})}),(0,r.jsx)(z.default,{variant:"warn",title:"Cooling down",children:(0,r.jsx)("span",{dir:"auto",children:"Gemini CLI hit a rate limit."})}),(0,r.jsx)(z.default,{variant:"err",title:"Sign-in expired",children:(0,r.jsx)("span",{dir:"auto",children:"Requests are skipping this provider."})}),(0,r.jsx)(z.default,{variant:"ok",title:"Saved",children:(0,r.jsx)("span",{dir:"auto",children:"All changes saved."})})]}),(0,r.jsx)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(s.default,{variant:"secondary",size:"sm",icon:"undo",onClick:()=>{e.error("Couldn't save the combo. Your previous version is still active.",{action:{label:"Undo",onSelect:()=>{n(e=>e+1),e.success("Undone")}}})},children:"Error toast with undo"}),(0,r.jsx)("p",{"aria-live":"polite",className:"text-xs text-muted",children:t>0?`Undo pressed ${t} time${1===t?"":"s"}.`:""})]})}),(0,r.jsx)("div",{className:"rounded-2xl border border-line bg-panel shadow-card",children:(0,r.jsx)(_.default,{icon:"hub",title:"No providers yet",body:(0,r.jsx)("span",{dir:"auto",children:"Connect a provider to start routing traffic through your endpoint."}),action:(0,r.jsx)(s.default,{icon:"add",children:"Add provider"})})}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[(0,r.jsx)(D.CardSkeleton,{}),(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)(D.Skeleton,{className:"mb-3 h-5 w-32"}),(0,r.jsx)(D.SkeletonText,{lines:3})]}),(0,r.jsx)("div",{className:"flex items-center justify-center rounded-2xl border border-line bg-panel p-6 shadow-card",children:(0,r.jsx)(D.Spinner,{size:"lg"})})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("p",{"data-i18n-skip":"true",className:"mb-3 text-xs font-semibold uppercase tracking-[0.08em] text-muted",children:"LoadingState"}),(0,r.jsx)(K.LoadingState,{lines:3,label:"Loading demo widget"})]}),(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("p",{"data-i18n-skip":"true",className:"mb-3 text-xs font-semibold uppercase tracking-[0.08em] text-muted",children:"ErrorState"}),(0,r.jsx)(K.ErrorState,{title:"Could not load this widget",message:"The backend did not answer in time.",onRetry:()=>e.info("Retry demo pressed")})]})]}),(0,r.jsx)(F.default,{lines:U})]})}var H=n(81127),B=n(29499),G=n(93921),J=n(50611),V=n(97677);function Z(){let[e,t]=(0,a.useState)(!1),[n,l]=(0,a.useState)(!1),[i,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(!1);return(0,r.jsxs)("section",{"aria-labelledby":"kit-overlays",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-overlays",className:"font-display text-xl font-bold",children:"Overlays"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,r.jsx)(s.default,{variant:"secondary",onClick:()=>t(!0),children:"Open modal"}),(0,r.jsx)(s.default,{variant:"danger",onClick:()=>l(!0),children:"Open danger confirm"}),(0,r.jsx)(s.default,{variant:"ghost",onClick:()=>c(!0),children:"Open confirm with error"}),(0,r.jsx)(s.default,{variant:"secondary",onClick:()=>o(!0),children:"Open drawer"}),(0,r.jsxs)(G.default,{trigger:(0,r.jsx)(s.default,{variant:"secondary",children:"Open menu"}),align:"start",children:[(0,r.jsx)(G.MenuItem,{icon:"history",label:"Change log",onSelect:()=>{},children:"Change log"}),(0,r.jsx)(G.MenuItem,{icon:"dark_mode",label:"Theme",selected:!0,onSelect:()=>{},children:"Theme"}),(0,r.jsx)(G.MenuItem,{icon:"lock",label:"Settings",disabled:!0,onSelect:()=>{},children:"Settings"}),(0,r.jsx)(G.MenuItem,{icon:"power_settings_new",label:"Shutdown",danger:!0,onSelect:()=>{},children:"Shutdown"}),(0,r.jsx)(G.MenuItem,{icon:"logout",label:"Logout",danger:!0,onSelect:()=>{},children:"Logout"})]}),(0,r.jsx)(J.default,{trigger:(0,r.jsx)(s.default,{variant:"secondary",children:"Open popover"}),"aria-label":"Kit popover",children:(0,r.jsx)("p",{className:"text-sm text-muted",children:"Non-modal panel. Esc closes, focus returns."})}),(0,r.jsx)(V.default,{text:"Shows on hover and focus",position:"top",children:(0,r.jsx)(s.default,{variant:"ghost",children:"Hover me"})}),(0,r.jsx)(V.default,{text:"Error-tinted tip",variant:"err",children:(0,r.jsx)(s.default,{variant:"ghost",children:"Error tip"})})]}),(0,r.jsx)(H.default,{isOpen:e,onClose:()=>t(!1),title:"Kit modal",description:"Composed dialog: focus trap, Esc/backdrop close, scroll lock.",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.default,{variant:"ghost",onClick:()=>t(!1),children:"Cancel"}),(0,r.jsx)(s.default,{onClick:()=>t(!1),children:"Save"})]}),children:(0,r.jsx)("p",{className:"text-sm text-muted",children:"Modal body content goes here."})}),(0,r.jsx)(H.ConfirmDialog,{isOpen:n,onClose:()=>l(!1),onConfirm:()=>l(!1),title:"Delete provider?",message:"This removes the connection. The request logs stay.",confirmText:"Delete",variant:"danger"}),(0,r.jsx)(H.ConfirmDialog,{isOpen:d,onClose:()=>c(!1),onConfirm:()=>{throw Error("Refresh failed (401). Sign in again and retry.")},title:"Refresh token?",message:"Async failure stays inline under role=alert.",confirmText:"Retry",variant:"default"}),(0,r.jsx)(B.default,{isOpen:i,onClose:()=>o(!1),title:"Kit drawer",children:(0,r.jsx)("p",{className:"text-sm text-muted",children:"Full-height inline-end panel. Esc closes."})})]})}function W(){let[e,t]=(0,a.useState)("today"),[n,j]=(0,a.useState)("forms"),[y,k]=(0,a.useState)(!0),[w,S]=(0,a.useState)(3),[O,R]=(0,a.useState)("60"),[$,P]=(0,a.useState)(!0);return(0,r.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,r.jsxs)("header",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.08em] text-muted",children:`${l.Hc.slug} UI kit`}),(0,r.jsx)("h1",{className:"font-display text-[68px] leading-none font-extrabold",children:"Signal"}),(0,r.jsx)("p",{dir:"auto",className:"mt-1 max-w-[72ch] text-[15px] text-muted",children:"Warm ink surfaces. Coral is the brand and your selection. Lime means traffic is live, or it is the one thing to press."})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(d.default,{icon:"search",label:"Search"}),(0,r.jsx)(v.default,{})]})]}),(0,r.jsxs)("section",{"aria-labelledby":"kit-actions",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-actions",className:"font-display text-xl font-bold",children:"Buttons"}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,r.jsx)(s.default,{children:"Copy endpoint"}),(0,r.jsx)(s.default,{variant:"secondary",children:"Test all"}),(0,r.jsx)(s.default,{variant:"ghost",children:"Cancel"}),(0,r.jsx)(s.default,{variant:"danger",children:"Delete"}),(0,r.jsx)(s.default,{variant:"secondary",size:"sm",loading:!0,children:"Testing"}),(0,r.jsx)(u.default,{children:"⌘K"})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-4",children:[(0,r.jsx)(b.default,{checked:y,onChange:k,"aria-label":"Sample toggle on"}),(0,r.jsx)(b.default,{checked:!1,"aria-label":"Sample toggle off"}),(0,r.jsx)(p.default,{"aria-label":"Period",options:[{value:"today",label:"Today"},{value:"7d",label:"7d"},{value:"30d",label:"30d"}],value:e,onChange:t}),(0,r.jsx)(f.default,{tabs:[{value:"forms",label:"Forms"},{value:"display",label:"Display"}],value:n,onChange:j,"aria-label":"Kit tabs"})]})]}),(0,r.jsxs)("section",{"aria-labelledby":"kit-forms",className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsx)("h2",{id:"kit-forms",className:"font-display text-xl font-bold",children:"Forms"}),(0,r.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-2",children:[(0,r.jsx)(c.default,{label:"Provider name",hint:(0,r.jsx)("span",{dir:"auto",children:"Shown in lists and logs."}),placeholder:"claude-work"}),(0,r.jsx)(c.default,{label:"API key",error:(0,r.jsx)("span",{dir:"auto",children:"Key is required."}),placeholder:"sk-..."}),(0,r.jsx)(h.default,{label:"Notes",placeholder:"Anything the team should know."}),(0,r.jsx)(x.default,{label:"Auto-refresh",value:O,onChange:e=>R(e.target.value),options:[{value:"60",label:"Every 60s"},{value:"0",label:"Off"}]}),(0,r.jsx)(m.default,{label:"Sticky limit",value:w,min:1,max:10,onChange:S}),(0,r.jsx)(g.default,{label:"Cache TTL",value:O,unit:"s",onChange:e=>R(e.target.value)}),(0,r.jsx)(c.default,{label:"Disabled",value:"read only",disabled:!0,readOnly:!0}),(0,r.jsx)(i.default,{checked:$,onChange:P,label:"Enable provider"})]}),(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(o.default,{value:"http://localhost:20128/v1",label:"Endpoint URL"})})]}),(0,r.jsx)(C,{}),(0,r.jsx)(E,{}),(0,r.jsx)(N,{}),(0,r.jsx)(T,{}),(0,r.jsx)(I,{}),(0,r.jsx)(A,{}),(0,r.jsx)(q,{}),(0,r.jsx)(Z,{})]})}},25086:(e,t,n)=>{"use strict";n.d(t,{CardSkeleton:()=>u,PageLoading:()=>o,Skeleton:()=>d,SkeletonText:()=>c,Spinner:()=>i,default:()=>m});var r=n(95155),a=n(14051),l=n.n(a),s=n(31474);function i({size:e="md",className:t}){return(0,r.jsx)("span",{role:"status","aria-label":"Loading",className:(0,s.cn)("material-symbols-outlined animate-spin text-coral",{sm:"text-[16px]",md:"text-[24px]",lg:"text-[32px]",xl:"text-[48px]"}[e],t),children:"progress_activity"})}function o({message:e="Loading..."}){return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg",children:[(0,r.jsx)(i,{size:"xl"}),(0,r.jsx)("p",{className:"mt-4 text-muted",children:e})]})}function d({className:e,...t}){return(0,r.jsx)("div",{"aria-hidden":"true",className:(0,s.cn)("animate-pulse rounded-[10px] bg-raised",e),...t})}function c({lines:e=3,className:t}){let n=Array.from({length:e},(e,t)=>t);return(0,r.jsx)("div",{className:(0,s.cn)("flex flex-col gap-2",t),"aria-hidden":"true",children:n.map(e=>(0,r.jsx)(d,{className:(0,s.cn)("h-3",e===n.length-1?"w-2/3":"w-full")},`line-${e}`))})}function u(){return(0,r.jsxs)("div",{className:"rounded-2xl border border-line bg-panel p-6 shadow-card",children:[(0,r.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,r.jsx)(d,{className:"h-4 w-24"}),(0,r.jsx)(d,{className:"size-10 rounded-[10px]"})]}),(0,r.jsx)(d,{className:"mb-2 h-8 w-16"}),(0,r.jsx)(d,{className:"h-3 w-20"})]})}function m({type:e="spinner",...t}){switch(e){case"page":return(0,r.jsx)(o,{...t});case"skeleton":return(0,r.jsx)(d,{...t});case"card":return(0,r.jsx)(u,{...t});default:return(0,r.jsx)(i,{...t})}}d.propTypes={className:l().string},c.propTypes={lines:l().number,className:l().string}},28745:(e,t,n)=>{"use strict";n.d(t,{vQ:()=>l,UY:()=>d,Nu:()=>s,B2:()=>o,h0:()=>i});var r=n(4553),a=n(41463);let l={name:`${r.Hc.name} Proxy`,description:"AI infrastructure management",version:"1.0.3",build:{channel:a.env.NEXT_PUBLIC_BUILD_CHANNEL||"",sha:a.env.NEXT_PUBLIC_BUILD_SHA||""}},s={changelogUrl:"https://raw.githubusercontent.com/tokenhop/tokenhop/refs/heads/master/CHANGELOG.md"},i={appPort:20128},o={storageKey:"theme",defaultTheme:"dark"},d={maxLines:200,pollIntervalMs:1e3}},29499:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(19844),d=n(47929),c=n(6587);function u({isOpen:e,onClose:t,title:n,children:l,width:s="md",size:m,side:p="end",closeOnOverlay:x=!0,closeOnEscape:f=!0,initialFocusRef:h,className:b,id:g,bare:v=!1}){let j=(0,a.useRef)(null),[y,k]=(0,d.lk)(j),{overlayId:N,titleId:w}=(0,d.uf)("signal-drawer"),C=!!e;if((0,d.K$)(C),(0,d.rM)({container:y,active:C,initialFocusRef:h}),(0,d.s9)({onClose:t,containerRef:j,enabled:C,closeOnEscape:f,closeOnOutside:x}),!C)return null;let E=!v&&n;return(0,r.jsx)(d.ZL,{children:(0,r.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,r.jsx)("div",{className:"signal-backdrop absolute inset-0","aria-hidden":"true"}),(0,r.jsx)("div",{ref:k,id:g||N,role:"dialog","aria-modal":"true","aria-labelledby":E?w:void 0,"aria-label":v&&"string"==typeof n?n:void 0,tabIndex:-1,className:(0,i.cn)("signal-overlay-drawer absolute inset-y-0 flex max-w-full flex-col bg-panel text-text shadow-card outline-none",(0,o.PT)(p),(0,o.IN)(m??s),b),children:v?l:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-line px-6 py-4",children:[n?(0,r.jsx)("h2",{id:w,className:"min-w-0 font-display text-lg font-bold",children:n}):(0,r.jsx)("span",{}),t?(0,r.jsx)(c.default,{icon:"close",label:"Close",onClick:t}):null]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-6 custom-scrollbar",children:l})]})})]})})}u.propTypes={isOpen:s().bool,onClose:s().func,title:s().node,children:s().node,width:s().oneOf(Object.keys(o.gD)),size:s().oneOf(Object.keys(o.gD)),side:s().oneOf(["start","end"]),closeOnOverlay:s().bool,closeOnEscape:s().bool,initialFocusRef:s().shape({current:s().any}),className:s().string,id:s().string,bare:s().bool}},30225:(e,t,n)=>{Promise.resolve().then(n.bind(n,21341))},31692:(e,t,n)=>{"use strict";n.d(t,{Zr:()=>a});let r=e=>t=>{try{let n=e(t);if(n instanceof Promise)return n;return{then:e=>r(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>r(t)(e)}}},a=(e,t)=>(n,a,l)=>{let s,i={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var n;let r=e=>null===e?null:JSON.parse(e,void 0),a=null!=(n=t.getItem(e))?n:null;return a instanceof Promise?a.then(r):r(a)},setItem:(e,n)=>t.setItem(e,JSON.stringify(n,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,d=0,c=new Set,u=new Set,m=i.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...e)},a,l);let p=()=>{let e=i.partialize({...a()});return m.setItem(i.name,{state:e,version:i.version})},x=l.setState;l.setState=(e,t)=>(x(e,t),p());let f=e((...e)=>(n(...e),p()),a,l);l.getInitialState=()=>f;let h=()=>{var e,t;if(!m)return;let l=++d;o=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:f)});let x=(null==(t=i.onRehydrateStorage)?void 0:t.call(i,null!=(e=a())?e:f))||void 0;return r(m.getItem.bind(m))(i.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===i.version)return[!1,e.state];else{if(i.migrate){let t=i.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(l!==d)return;let[r,o]=e;if(n(s=i.merge(o,null!=(t=a())?t:f),!0),r)return p()}).then(()=>{l===d&&(null==x||x(a(),void 0),s=a(),o=!0,u.forEach(e=>e(s)))}).catch(e=>{l===d&&(null==x||x(void 0,e))})};return l.persist={setOptions:e=>{i={...i,...e},e.storage&&(m=e.storage)},clearStorage:()=>{++d,null==m||m.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(u.add(e),()=>{u.delete(e)})},i.skipHydration||h(),s||f}},35652:(e,t,n)=>{"use strict";var r,a=n(41463);let l=Object.freeze(["9router","tokenhop"]),s="tokenhop";function i(e,t){if(l.includes(e))return e;let n=l.map(e=>`"${e}"`).join(", ");throw Error(`${t}: unknown brand ${JSON.stringify(e)}; allowed values: ${n}`)}let o=""==(r="tokenhop")?s:i(r,"NEXT_PUBLIC_BRAND"),d=Object.freeze({name:"tokenhop",slug:"tokenhop",envPrefix:"TOKENHOP_",headerPrefix:"x-tokenhop-",jcodeApiKeyEnv:"JCODE_TOKENHOP_API_KEY",defaultApiKey:"sk_tokenhop",dataDirName:"tokenhop",samlIssuerDefault:"urn:tokenhop:sp",mitmCaCommonName:"tokenhop MITM Root CA",mitmCaOrg:"tokenhop",mitmCertFile:"tokenhop-root-ca.crt",pidFile:"tokenhop.pid",autostartLabel:"dev.tokenhop.autostart",autostartDesktopFile:"tokenhop.desktop",autostartVbsFile:"tokenhop.vbs",clientConfigKey:"tokenhop",customModelIdPrefix:"custom:tokenhop-",storageKeyPrefix:"tokenhop.",eventPrefix:"tokenhop:",backupFilePrefix:"tokenhop-backup-",npmPackage:"tokenhop",appPackage:"tokenhop-app",repoSlug:"tokenhop/tokenhop",repoUrl:"https://github.com/tokenhop/tokenhop",imageName:"ghcr.io/tokenhop/tokenhop",websiteUrl:"https://tokenhop.ai",docsUrl:"https://tokenhop.dev",wordmark:"tokenhop",favicon:"/brand/favicon.svg",faviconIco:"/brand/favicon.ico",appIcon192:"/brand/icons/icon-192.svg",appIcon512:"/brand/icons/icon-512.svg",trayIconName:"icon-tokenhop",trayIconTemplate:!0}),c=Object.freeze({names:Object.freeze(["9Router","9router"]),slug:"9router",envPrefixes:Object.freeze(["NINEROUTER_","NINE_ROUTER_"]),headerPrefix:"x-9router-",jcodeApiKeyEnv:"JCODE_9ROUTER_API_KEY",defaultApiKey:"sk_9router",dataDirName:"9router",samlIssuerDefault:"urn:9router:sp",mitmCaCommonName:"9Router MITM Root CA",mitmCaOrg:"9Router",mitmCertFile:"9router-root-ca.crt",pidFile:"9router.pid",autostartLabel:"com.9router.autostart",autostartDesktopFile:"9router.desktop",autostartVbsFile:"9router.vbs",clientConfigKeys:Object.freeze(["9router","9Router"]),customModelIdPrefix:"custom:9Router-",storageKeyPrefix:"9router.",eventPrefix:"9router:",backupFilePrefix:"9router-backup-",npmPackage:"9router",appPackage:"9router-app",repoSlug:"yandy-r/9router",repoUrl:"https://github.com/yandy-r/9router",imageName:"ghcr.io/yandy-r/9router",wordmark:"router",favicon:"/favicon.svg",faviconIco:"/favicon.ico",appIcon192:"/icons/icon-192.svg",appIcon512:"/icons/icon-512.svg",trayIconName:"icon",trayIconTemplate:!1}),u=Object.freeze({kimiPlatform:"9router",clineUserAgentProduct:"9Router",clineClientType:"9router",devinMcpClientName:"9router",coworkMcpClientName:"9router",cursorMcpProvider:"9router",glmMcpClientName:"9router",xaiUserAgent:"grok-cli/9router",xiaomiKeyNamePrefix:"9router-xmd-",githubUserAgent:"9Router",proxyTestUserAgent:"9Router",denoRelayKind:"9router-relay"}),m=new Set(["repoSlug","repoUrl","imageName","websiteUrl","docsUrl"]),p={name:"names",envPrefix:"envPrefixes",clientConfigKey:"clientConfigKeys"},x="tokenhop"===o?d:Object.freeze(Object.fromEntries(Object.keys(d).map(e=>{let t;return[e,m.has(e)?d[e]:Array.isArray(t=c[p[e]||e])?t[0]:t]}))),f=new Set;function h(e,t,n){if("tokenhop"!==o)return!1;let r=`${e}\u0000${t}`;return!f.has(r)&&(f.add(r),console.warn(`[tokenhop] deprecated ${e} "${t}" → use "${n}" (legacy support ends in v2.0.0)`),!0)}let b=/^[A-Z0-9]+(_[A-Z0-9]+)*$/;function g(e){if("string"!=typeof e||!b.test(e))throw Error(`envName: invalid suffix ${JSON.stringify(e)}; expected e.g. "PEER_TOKEN"`);return d.envPrefix+e}let v=/^(?!x-)[a-z0-9]+(-[a-z0-9]+)*$/;function j(e){return x.headerPrefix+function(e,t){if("string"!=typeof e||!v.test(e))throw Error(`${t}: invalid header name ${JSON.stringify(e)}; expected a bare lowercase name like "connection-id"`);return e}(e,"header")}e.exports={BRAND_IDS:l,DEFAULT_BRAND_ID:s,ACTIVE_BRAND_ID:o,isActiveBrand:function(e){return i(e,"isActiveBrand")===o},BRAND:d,LEGACY:c,ACTIVE:x,UPSTREAM_CLIENT_IDS:u,envName:g,readEnv:function(e,t=a.env){let n=g(e);if(void 0!==t[n])return t[n];for(let r of c.envPrefixes){let a=r+e;if(void 0!==t[a])return h("env var",a,n),t[a]}},warnLegacyOnce:h,header:j,legacyHeaderNames:function(e){let t=j(e);return[c.headerPrefix+e].filter(e=>e!==t)}}},38587:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(95155),a=n(1620),l=n(31474);function s({className:e,variant:t="default"}){let{isDark:n,toggleTheme:i}=(0,a.D)(),o={default:(0,l.cn)("flex items-center justify-center size-10 rounded-full","text-muted hover:text-text","hover:bg-raised transition-colors"),card:(0,l.cn)("flex items-center justify-center size-11 rounded-full","bg-panel/60 hover:bg-panel","border border-line","backdrop-blur-md shadow-sm hover:shadow-card","text-muted hover:text-coral-ink","transition-all group")};return(0,r.jsx)("button",{onClick:i,className:(0,l.cn)(o[t],e),"aria-label":`Switch to ${n?"light":"dark"} mode`,title:`Switch to ${n?"light":"dark"} mode`,children:(0,r.jsx)("span",{className:(0,l.cn)("material-symbols-outlined text-[22px]","card"===t&&"transition-transform duration-300 group-hover:rotate-12"),children:n?"light_mode":"dark_mode"})})}},38794:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(50770);function o({lines:e,label:t="Console output",className:n,live:a="off",onScroll:l,scrollRef:d,cursor:c=!1,row:u}){return(0,r.jsx)("div",{ref:d,role:"log","aria-label":t,"aria-live":a,dir:"ltr",onScroll:l,tabIndex:0,className:`signal-terminal custom-scrollbar m-0 overflow-auto rounded-2xl p-[18px_22px] text-start font-mono text-[13px] leading-[1.75] focus-visible:shadow-focus${n?` ${n}`:""}`,children:(0,r.jsxs)("ol",{className:"m-0 list-none p-0",children:[u?e.map((e,t)=>(0,r.jsx)(s.Fragment,{children:u(e,t)},e.key??e.id??`${e.time}-${t}`)):e.map((e,t)=>(0,r.jsxs)("li",{className:"flex gap-4 whitespace-nowrap",children:[(0,r.jsx)("span",{className:"signal-terminal-time shrink-0",children:e.time||"--:--:--"}),(0,r.jsx)("span",{className:`w-[52px] shrink-0 font-semibold ${(0,i.pN)(e.level)}`,children:e.level}),(0,r.jsx)("span",{className:"min-w-0 flex-1 whitespace-pre",children:e.message})]},e.id??`${e.time}-${t}`)),c&&(0,r.jsxs)("li",{className:"mt-0.5 flex gap-4 whitespace-nowrap","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"signal-terminal-time shrink-0",children:"--:--:--"}),(0,r.jsx)("span",{className:"signal-terminal-cursor w-[52px] shrink-0 animate-pulse font-semibold",children:"▍"})]})]})})}o.propTypes={lines:l().arrayOf(l().shape({id:l().oneOfType([l().string,l().number]),time:l().string,level:l().oneOf(["LOG","INFO","WARN","ERROR","DEBUG"]).isRequired,message:l().string.isRequired})).isRequired,label:l().string,className:l().string,live:l().oneOf(["off","polite"]),onScroll:l().func,scrollRef:l().shape({current:l().object}),cursor:l().bool,row:l().func}},44863:(e,t,n)=>{"use strict";n.d(t,{SegmentedHealthBar:()=>o,default:()=>i});var r=n(95155),a=n(14051),l=n.n(a),s=n(50770);function i({value:e,kind:t,variant:n,label:a,valueText:l,className:o}){if(!a)throw Error("Meter: `label` is required for the meter accessible name");let d=(0,s.r4)(e),c=n??(0,s.vE)(d,t),u=s.lN[c];if(!u)throw Error(`Meter: unknown variant "${c}"`);return(0,r.jsx)("div",{role:"meter","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,"aria-valuetext":l,"aria-label":a,className:`h-2 w-full overflow-hidden rounded-pill bg-raised shadow-[inset_0_0_0_1px_var(--signal-line)]${o?` ${o}`:""}`,children:(0,r.jsx)("div",{className:`h-full rounded-pill ${u}`,style:{width:`${d}%`}})})}function o({segments:e,className:t}){if(!Array.isArray(e)||0===e.length)throw Error("SegmentedHealthBar: needs at least one segment");return(0,r.jsx)("fieldset",{"aria-label":"Account health",className:`m-0 grid min-w-0 auto-cols-fr grid-flow-col gap-1 border-0 p-0${t?` ${t}`:""}`,children:e.map((e,t)=>(0,r.jsx)(i,{value:e.value,kind:e.kind,label:e.label,className:"rounded-sm shadow-none"},`${e.label??"segment"}-${t}`))})}i.propTypes={value:l().number.isRequired,kind:l().oneOf(["unlimited","credits"]),variant:l().oneOf(["brand","neutral"]),label:l().string.isRequired,valueText:l().string,className:l().string},o.propTypes={segments:l().arrayOf(l().shape({value:l().number.isRequired,kind:l().oneOf(["unlimited","credits"]),label:l().string.isRequired})).isRequired,className:l().string}},50611:(e,t,n)=>{"use strict";n.d(t,{default:()=>u,p:()=>c});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(19844),d=n(47929);function c(e,t,n,r){let[l,s]=(0,a.useState)({top:0,left:0,visibility:"hidden"});return(0,a.useEffect)(()=>{if(!n||"u"<typeof document)return;let a=0,l=()=>{let n=e.current,i=t.current;if(!n||!i){a=requestAnimationFrame(l);return}let d="rtl"===getComputedStyle(n).direction,c=(0,o.mI)(n.getBoundingClientRect(),{width:i.offsetWidth,height:i.offsetHeight},r,d);s({top:c.top,left:c.left})};return l(),window.addEventListener("resize",l),window.addEventListener("scroll",l,!0),()=>{cancelAnimationFrame(a),window.removeEventListener("resize",l),window.removeEventListener("scroll",l,!0)}},[e,t,n,r]),l}function u({trigger:e,children:t,open:n,onOpenChange:l,placement:s="bottom","aria-label":o,className:m}){let p=(0,a.useRef)(null),x=(0,a.useRef)(null),{overlayId:f}=(0,d.uf)("signal-popover"),[h,b]=(0,a.useState)(!1),g="boolean"==typeof n,v=g?n:h,j=(0,a.useCallback)(e=>g?l?.(e):b(e),[g,l]),y=c(p,x,v,s),k=(0,a.useCallback)(()=>{let e=x.current?.contains(document.activeElement)??!1;j(!1),e&&p.current?.focus?.()},[j]);if((0,d.s9)({onClose:k,containerRef:x,enabled:v,closeOnOutside:!1}),(0,a.useEffect)(()=>{if(!v)return;let e=e=>{x.current?.contains(e.target)||p.current?.contains(e.target)||j(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[v,j]),!(0,a.isValidElement)(e))throw Error("Popover: `trigger` must be a React element");return(0,r.jsxs)(r.Fragment,{children:[(0,a.cloneElement)(e,{ref:p,"aria-haspopup":"dialog","aria-expanded":v,"aria-controls":v?f:void 0,onClick:t=>{e.props.onClick?.(t),t.defaultPrevented||j(!v)}}),v?(0,r.jsx)(d.ZL,{children:(0,r.jsx)("div",{ref:x,id:f,role:"dialog","aria-label":o,style:y,className:(0,i.cn)("signal-overlay-pop fixed z-50 min-w-48 max-w-[min(24rem,calc(100vw-16px))] rounded-xl border border-line bg-panel p-4 text-text shadow-card",m),children:t})}):null]})}u.propTypes={trigger:s().element.isRequired,children:s().node,open:s().bool,onOpenChange:s().func,placement:s().oneOf(["top","bottom","start","end"]),"aria-label":s().string,className:s().string}},56006:(e,t,n)=>{"use strict";n.d(t,{default:()=>i});var r=n(95155),a=n(14051),l=n.n(a);let s={info:{classes:"bg-sky-bg text-sky-ink",icon:"info"},warn:{classes:"bg-warn-bg text-warn",icon:"warning"},err:{classes:"bg-err-bg text-err",icon:"error"},ok:{classes:"bg-ok-bg text-ok",icon:"check_circle"}};function i({variant:e="info",title:t,children:n,icon:a,className:l}){let o=s[e];if(!o)throw Error(`Callout: unknown variant "${e}"`);return(0,r.jsxs)("div",{role:"err"===e?"alert":"status",className:`flex gap-3 rounded-xl p-4 text-sm ${o.classes}${l?` ${l}`:""}`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[20px]","aria-hidden":"true",children:a??o.icon}),(0,r.jsxs)("div",{className:"min-w-0 text-text",children:[t&&(0,r.jsx)("p",{className:"font-semibold",children:t}),n&&(0,r.jsx)("div",{className:"text-muted",children:n})]})]})}i.propTypes={variant:l().oneOf(Object.keys(s)),title:l().node,children:l().node,icon:l().string,className:l().string}},65921:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(1934);let a=0,l=(0,r.v)((e,t)=>({notifications:[],addNotification:n=>{let r=++a,l={id:r,type:n.type||"info",message:n.message,title:n.title||null,action:n.action??null,accent:n.accent??null,duration:n.duration??5e3,dismissible:n.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,l]})),l.duration>0&&setTimeout(()=>t().removeNotification(r),l.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,n)=>t().addNotification(s("success",e,n)),error:(e,n)=>t().addNotification({duration:8e3,...s("error",e,n)}),warning:(e,n)=>t().addNotification(s("warning",e,n)),info:(e,n)=>t().addNotification(s("info",e,n))}));function s(e,t,n){if("string"==typeof n)return{type:e,message:t,title:n};let r={type:e,message:t,...n||{}},{action:a}=r;if(null!=a&&("string"!=typeof a.label||!a.label||"function"!=typeof a.onSelect))throw TypeError("notification action needs a label and onSelect function");return r}},77671:(e,t,n)=>{"use strict";n.d(t,{ErrorState:()=>c,LoadingState:()=>d});var r=n(95155),a=n(14051),l=n.n(a),s=n(92542),i=n(56006),o=n(25086);function d({lines:e=4,label:t="Loading",className:n=""}){return(0,r.jsxs)("div",{role:"status","aria-label":t,className:`flex min-w-0 flex-col gap-3 ${n}`,children:[(0,r.jsx)(o.Skeleton,{className:"h-5 w-24"}),(0,r.jsx)(o.Skeleton,{className:"h-9 w-2/3"}),Array.from({length:e},(e,t)=>`line-${t}`).map(e=>(0,r.jsx)(o.Skeleton,{className:"h-4 w-full"},e))]})}function c({message:e,onRetry:t,title:n="Could not load this view",children:a}){return(0,r.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,r.jsx)(i.default,{variant:"err",title:n,children:e||"Something went wrong while loading."}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[t&&(0,r.jsx)(s.default,{variant:"secondary",size:"sm",icon:"refresh",onClick:t,children:"Retry"}),a]})]})}d.propTypes={lines:l().number,label:l().string,className:l().string},c.propTypes={message:l().string,onRetry:l().func,title:l().string,children:l().node}},84588:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(95155),a=n(14051),l=n.n(a),s=n(31474);let i={none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"};function o({children:e,title:t,subtitle:n,icon:a,action:l,as:d="h2",padding:c="md",hover:u=!1,elev:m=!1,className:p,role:x,...f}){if(void 0===i[c])throw Error(`Card: unknown padding "${c}"`);let h=x||(f["aria-label"]||f["aria-labelledby"]?"region":void 0);return(0,r.jsxs)("div",{role:h,className:(0,s.cn)("rounded-2xl border border-line bg-panel shadow-card",u&&"cursor-pointer transition-colors duration-150 hover:border-coral/40",i[c],p),...f,children:[(t||l)&&(0,r.jsx)(o.Header,{title:t,subtitle:n,icon:a,actions:l,as:d,className:"mb-4"}),e]})}o.propTypes={children:l().node,title:l().node,subtitle:l().node,icon:l().string,action:l().node,as:l().oneOf(["h2","h3","h4"]),padding:l().oneOf(Object.keys(i)),hover:l().bool,elev:l().bool,className:l().string,role:l().string},o.Header=function({title:e,subtitle:t,icon:n,actions:a,as:l="h2",className:i}){return(0,r.jsxs)("div",{className:(0,s.cn)("flex flex-wrap items-center justify-between gap-3",i),children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[n&&(0,r.jsx)("span",{className:"flex size-10 shrink-0 items-center justify-center rounded-[10px] bg-coral-bg text-coral-ink",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:n})}),(0,r.jsxs)("div",{className:"min-w-0",children:[e&&(0,r.jsx)(l,{className:"font-display text-lg font-bold text-text",children:e}),t&&(0,r.jsx)("p",{className:"text-sm text-muted",children:t})]})]}),a&&(0,r.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:a})]})},o.Header.propTypes={title:l().node,subtitle:l().node,icon:l().string,actions:l().node,as:l().oneOf(["h2","h3","h4"]),className:l().string},o.Section=function({children:e,className:t,...n}){return(0,r.jsx)("div",{className:(0,s.cn)("rounded-xl border border-line bg-raised p-4",t),...n,children:e})},o.Row=function({children:e,className:t,...n}){return(0,r.jsx)("div",{className:(0,s.cn)("-mx-3 border-b border-line p-3 px-3 transition-colors last:border-b-0 hover:bg-raised",t),...n,children:e})},o.ListItem=function({children:e,actions:t,className:n,...a}){return(0,r.jsxs)("div",{className:(0,s.cn)("group -mx-3 flex items-center justify-between border-b border-line p-3 px-3 transition-colors last:border-b-0 hover:bg-raised",n),...a,children:[(0,r.jsx)("div",{className:"min-w-0 flex-1",children:e}),t&&(0,r.jsx)("div",{className:"flex items-center gap-1 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100",children:t})]})}},86465:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(95155),a=n(14051),l=n.n(a);function s({model:e,className:t}){return(0,r.jsx)("code",{className:`inline-flex max-w-full items-center truncate rounded-md border border-line bg-raised px-2 py-0.5 font-mono text-xs text-muted${t?` ${t}`:""}`,children:e})}s.propTypes={model:l().string.isRequired,className:l().string}},93921:(e,t,n)=>{"use strict";n.d(t,{MenuItem:()=>x,default:()=>p});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(4650),d=n(19844),c=n(47929);let u=a.useLayoutEffect,m=e=>"string"==typeof e?.props?.label?e.props.label:e?.props?.children;function p({trigger:e,children:t,open:n,onOpenChange:l,align:s="end",className:x}){let f=(0,a.useRef)(null),h=(0,a.useRef)(null),b=(0,a.useRef)([]),g=(0,a.useRef)({session:null}),{overlayId:v}=(0,c.uf)("signal-menu"),[j,y]=(0,a.useState)(!1),[k,N]=(0,a.useState)(-1),[w,C]=(0,a.useState)(null),[E,S]=(0,a.useState)(null),O=(0,a.useCallback)(e=>{h.current=e,S(e)},[]),T="boolean"==typeof n,R=T?n:j,I=(0,a.useCallback)(e=>{T?l?.(e):y(e),e||(N(-1),g.current.session=null)},[T,l]),$=(0,a.useCallback)(()=>{let e=f.current;e&&"function"==typeof e.focus&&e.focus()},[]),P=(0,a.useCallback)(()=>I(!1),[I]),L=(0,a.useCallback)(()=>{P(),$()},[P,$]);(0,a.useEffect)(()=>{R&&E&&w&&b.current[Math.max(k,0)]?.focus?.()},[R,E,w,k]),(0,c.s9)({onClose:L,containerRef:h,enabled:R,closeOnOutside:!1}),(0,a.useEffect)(()=>{if(!R)return;let e=e=>{h.current?.contains(e.target)||f.current?.contains(e.target)||P()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[R,P]);let A=a.Children.toArray(t).filter(a.isValidElement),z=A.map(m),_=A.map(e=>!!e.props.disabled),D=(0,a.useRef)(_);D.current=_;let K=(0,a.useCallback)((e=0)=>{I(!0);let t=(0,d.oQ)(D.current,e<0?0:e);N(t<0?e:t)},[I]);u(()=>{if(!R||!E)return void C(null);let e=()=>{let e=f.current;if(!e)return;let t=e.getBoundingClientRect(),n={width:E.offsetWidth,height:E.offsetHeight},r="rtl"===getComputedStyle(e).direction,a=(0,d.Rg)(t,n,s,r);C({top:a.top,left:a.left})};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[R,E,s]);let F=e=>{if("Tab"===e.key){R&&P();return}if("ArrowDown"===e.key)e.preventDefault(),K(0);else if("ArrowUp"===e.key){e.preventDefault(),I(!0);let t=(0,d.oQ)(_,A.length-1,!0);N(t<0?A.length-1:t)}else("Enter"===e.key||" "===e.key)&&(e.preventDefault(),R?P():K(0))},M=(0,a.isValidElement)(e)?e.props["aria-label"]??e.props.label??("string"==typeof e.props.children?e.props.children:void 0):void 0,U={ref:f,"aria-haspopup":"menu","aria-expanded":R,"aria-controls":R?v:void 0,onClick:()=>{R?P():K(0)},onKeyDown:F};return(0,r.jsxs)(r.Fragment,{children:[(0,a.isValidElement)(e)?(0,a.cloneElement)(e,{...U,onClick:t=>{e.props.onClick?.(t),t.defaultPrevented||U.onClick(t)},onKeyDown:t=>{e.props.onKeyDown?.(t),t.defaultPrevented||F(t)}}):(0,r.jsx)("button",{type:"button",...U,className:"inline-flex h-11 items-center justify-center gap-2 rounded-lg border border-line bg-raised px-4 text-sm font-semibold text-text transition-colors duration-150 hover:bg-line/60 focus-visible:outline-none focus-visible:shadow-focus",children:e}),R?(0,r.jsx)(c.ZL,{children:(0,r.jsx)("div",{ref:O,id:v,role:"menu","aria-label":M,"aria-orientation":"vertical",style:w??{visibility:"hidden"},className:(0,i.cn)("signal-overlay-menu fixed z-50 w-60 overflow-hidden rounded-xl border border-line bg-panel py-1 text-text shadow-card",x),children:A.map((e,t)=>(0,a.cloneElement)(e,{key:e.key??t,ref:e=>{b.current[t]=e},tabIndex:t===Math.max(k,0)?0:-1,"data-active":t===Math.max(k,0),onKeyDown:e=>((e,t)=>{if("Tab"===e.key)return void P();if((0,o.JF)(e.key)){e.preventDefault();let n="u">typeof document&&"rtl"===document.dir,r=(0,d.jg)(t,e.key,_,o.lZ,{rtl:n});N(r),b.current[r]?.focus?.();return}if(1===e.key.length&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let n=g.current,{session:r,index:a}=(0,d.sF)(n.session,e.key,e.timeStamp,z.map(e=>String(e??"")),t,_);n.session=r,a!==t&&(N(a),b.current[a]?.focus?.())}})(e,t),onSelect:()=>{e.props.onSelect?.(),L()}}))})}):null]})}p.propTypes={trigger:s().node.isRequired,children:s().node,open:s().bool,onOpenChange:s().func,align:s().oneOf(["start","end"]),className:s().string};let x=function({icon:e,label:t,children:n,trailing:a,danger:l=!1,selected:s=!1,disabled:o=!1,onSelect:d,...c}){return(0,r.jsxs)("button",{type:"button",role:"menuitem","aria-current":s||void 0,disabled:o,onClick:e=>{o?e.preventDefault():d?.(e)},className:(0,i.cn)("flex min-h-11 w-full items-center gap-3 px-4 py-2.5 text-sm transition-colors duration-150","focus-visible:outline-none focus-visible:shadow-focus","disabled:cursor-not-allowed disabled:opacity-50",l?"text-err hover:bg-err-bg":"text-text hover:bg-raised",s&&"bg-coral-bg font-semibold text-coral-ink"),...c,children:[e?(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-muted","aria-hidden":"true",children:e}):null,(0,r.jsx)("span",{className:"min-w-0 flex-1 text-start",children:n??t}),s?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check"}):null,a?(0,r.jsx)("span",{className:"shrink-0 text-sm text-muted",children:a}):null]})};x.propTypes={icon:s().string,label:s().string,children:s().node,trailing:s().node,danger:s().bool,selected:s().bool,disabled:s().bool,onSelect:s().func}},97677:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(95155),a=n(12115),l=n(14051),s=n.n(l),i=n(31474),o=n(19844),d=n(50611),c=n(47929);function u({text:e,children:t,position:n="top",variant:l="neutral",disabled:s=!1,className:m}){let p=(0,a.useRef)(null),x=(0,a.useRef)(null),f=(0,a.useRef)(null),h=(0,a.useRef)(null),{overlayId:b}=(0,c.uf)("signal-tooltip"),[g,v]=(0,a.useState)(!1),j=(0,o.eJ)(g,s,e),y=(0,d.p)(p,x,j,n);(0,a.useEffect)(()=>()=>{clearTimeout(f.current),clearTimeout(h.current)},[]),(0,a.useEffect)(()=>{!j&&g&&(clearTimeout(f.current),v(!1))},[j,g]),(0,a.useEffect)(()=>j?(0,c.r2)(window,()=>v(!1)):void 0,[j]);let k=(0,a.useCallback)(()=>{(0,o.eJ)(!0,s,e)&&(clearTimeout(h.current),clearTimeout(f.current),f.current=setTimeout(()=>v(!0),150))},[s,e]),N=(0,a.useCallback)(()=>{clearTimeout(f.current),clearTimeout(h.current),h.current=setTimeout(()=>v(!1),100)},[]);if((0,a.useEffect)(()=>{let e=p.current;if(e)return e.addEventListener("mouseenter",k),e.addEventListener("mouseleave",N),e.addEventListener("focusin",k),e.addEventListener("focusout",N),()=>{e.removeEventListener("mouseenter",k),e.removeEventListener("mouseleave",N),e.removeEventListener("focusin",k),e.removeEventListener("focusout",N)}},[k,N]),!(0,a.isValidElement)(t))throw Error("Tooltip: `children` must be a React element");let w="string"==typeof t.type,C=w&&!["button","a","input","select","textarea"].includes(t.type)&&void 0===t.props.tabIndex,E=(0,a.cloneElement)(t,{"aria-describedby":j?b:t.props["aria-describedby"],tabIndex:w&&C?0:t.props.tabIndex});return(0,r.jsxs)("span",{ref:p,className:"inline-flex",children:[E,j?(0,r.jsx)(c.ZL,{children:(0,r.jsx)("div",{ref:x,id:b,role:"tooltip",style:y,className:(0,i.cn)("signal-overlay-tip pointer-events-none fixed z-50 w-max max-w-56 whitespace-normal rounded-lg px-2 py-1 text-[11px] leading-snug",(0,o.lH)(l),m),children:e})}):null]})}u.propTypes={text:s().node,children:s().element.isRequired,position:s().oneOf(["top","bottom","start","end","left","right"]),variant:s().oneOf(Object.keys(o.h1)),disabled:s().bool,className:s().string}},98542:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(95155),a=n(14051),l=n.n(a),s=n(12115),i=n(31474);let o={sm:"h-[26px] w-11",md:"h-[26px] w-11",lg:"h-7 w-12"};function d({checked:e=!1,onChange:t,label:n,description:a,disabled:l=!1,size:c="md",className:u,id:m,...p}){let x=(0,s.useId)(),f=m||x,h=`${f}-label`,b=`${f}-description`;if(!o[c])throw Error(`Toggle: unknown size "${c}"`);return(0,r.jsxs)("div",{className:(0,i.cn)("flex items-center gap-3",l&&"opacity-50",u),children:[(0,r.jsx)("button",{...p,id:f,type:"button",role:"switch","aria-checked":e,"aria-labelledby":n?h:p["aria-labelledby"],"aria-describedby":a?b:p["aria-describedby"],"aria-label":n?void 0:p["aria-label"]||p.title,disabled:l,onClick:()=>t?.(!e),className:(0,i.cn)("relative inline-flex shrink-0 rounded-full border border-line transition-colors duration-200","focus-visible:outline-none focus-visible:shadow-focus disabled:cursor-not-allowed","motion-reduce:transition-none",e?"bg-toggle-on":"bg-line",o[c]),children:(0,r.jsx)("span",{"aria-hidden":"true",className:(0,i.cn)("pointer-events-none absolute top-0.5 size-5 rounded-full shadow-sm transition-transform duration-200 motion-reduce:transition-none",e?"bg-toggle-knob-on translate-x-5 rtl:-translate-x-5":"bg-muted translate-x-0.5 rtl:-translate-x-0.5","start-0")})}),(n||a)&&(0,r.jsxs)("div",{className:"flex flex-col",children:[n&&(0,r.jsx)("label",{id:h,htmlFor:f,className:"text-sm font-medium text-text cursor-pointer",children:n}),a&&(0,r.jsx)("span",{id:b,className:"text-xs text-muted",children:a})]})]})}d.propTypes={checked:l().bool,onChange:l().func,label:l().node,description:l().node,disabled:l().bool,size:l().oneOf(Object.keys(o)),className:l().string,id:l().string,title:l().string,"aria-label":l().string}}},e=>{e.O(0,[1610,9671,4685,2903,4321,8441,3794,7358],()=>e(e.s=30225)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{1620:(e,t,n)=>{"use strict";n.d(t,{D:()=>s});var r=n(12115),o=n(90085);function i(e){let t=window.matchMedia("(prefers-color-scheme: dark)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function a(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function l(){return!1}function s(){let{theme:e,setTheme:t,toggleTheme:n,initTheme:s}=(0,o.A)(),u=(0,r.useSyncExternalStore)(i,a,l);(0,r.useEffect)(()=>{s()},[s]),(0,r.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),n=()=>s();return t.addEventListener("change",n),()=>t.removeEventListener("change",n)},[e,s]);let c="dark"===e||"system"===e&&u;return{theme:e,setTheme:t,toggleTheme:n,isDark:c}}},4553:(e,t,n)=>{"use strict";n.d(t,{DM:()=>a,Hc:()=>c,qt:()=>s,qx:()=>u});var r=n(35652);let{BRAND_IDS:o,DEFAULT_BRAND_ID:i,ACTIVE_BRAND_ID:a,isActiveBrand:l,BRAND:s,LEGACY:u,ACTIVE:c,UPSTREAM_CLIENT_IDS:d,envName:f,readEnv:p,warnLegacyOnce:m,header:h,legacyHeaderNames:g}=n.n(r)()},8247:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Kw:()=>u});let r={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama"};function o(e){return e.startsWith("openai-compatible")?"oai-cc":e.startsWith("anthropic-compatible")?"anthropic-m":""}let i=new Set;function a(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}let l=new Set(["meta-code"]);function s(e){let t=function(e){let t=a(e);if(!t||i.has(t))return"";let n=r[t]||o(t)||t;return i.has(n)?"":n}(e);return t?`/providers/${t}.${l.has(t)?"svg":"webp"}`:null}function u(e){let t=a(e);t&&i.add(t);let n=r[t]||o(t);n&&i.add(n)}},15729:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(95155),o=n(14051),i=n.n(o),a=n(31474);function l({children:e,className:t,...n}){return(0,r.jsx)("kbd",{...n,className:(0,a.cn)("inline-flex h-5 min-w-5 items-center justify-center rounded-md border border-line bg-raised px-1.5","font-mono text-[11px] font-medium text-subtle",t),children:e})}l.propTypes={children:i().node.isRequired,className:i().string}},17081:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>u,q0:()=>l});var r=n(12115);let o=(e,t)=>Number.isInteger(e)&&e>=0?e:t,i={state:{loading:!0,gatewayOnline:null,startedAt:null,serverPort:null,badges:{providers:null,combos:null,quota:null},providerAttention:{count:0,status:null},enableTranslator:!1,traffic:null,savingsMilestone:null},listeners:new Set,timer:null,inFlight:null,queued:!1,lastRefreshAt:0};async function a(){let e=null,t=null;i.lastRefreshAt=Date.now();try{let n=await fetch("/api/shell/summary",{cache:"no-store"});e=n.status,n.ok&&(t=await n.json().catch(()=>null))}catch{}for(let n of(i.state=function(e,t,n){let r={...e,loading:!1};if(null===t||t>=500)return{...r,gatewayOnline:!1,startedAt:null,serverPort:null};if(r.gatewayOnline=!0,!n||"object"!=typeof n)return r;let i=n.gateway||{};r.startedAt="string"==typeof i.startedAt?i.startedAt:null,r.serverPort=Number.isInteger(i.port)?i.port:null,r.badges={providers:o(n.providers?.connected,e.badges.providers),combos:o(n.combos,e.badges.combos),quota:o(n.lowQuota,e.badges.quota)};let a=n.providers?.attention;a&&Number.isInteger(a.count)&&(r.providerAttention={count:a.count,status:"warn"===a.status||"err"===a.status?a.status:null}),"boolean"==typeof n.enableTranslator&&(r.enableTranslator=n.enableTranslator);let l=n.traffic??null;if(null!==l&&Array.isArray(l.series)&&Number.isInteger(l.total)&&l.total>=0&&(r.traffic={series:l.series.map(e=>Number.isFinite(e)?Math.max(0,Math.floor(e)):0),total:l.total}),n.savings&&"object"==typeof n.savings&&"pendingMilestone"in n.savings){let e=n.savings.pendingMilestone;null===e?r.savingsMilestone=null:Number.isInteger(e)&&e>0&&(r.savingsMilestone=e)}return r}(i.state,e,t),i.listeners))n(i.state)}function l(){return i.inFlight?i.queued=!0:i.inFlight=a().finally(()=>{i.inFlight=null,i.queued&&(i.queued=!1,l())}),i.inFlight}function s(){!document.hidden&&!i.inFlight&&Date.now()-i.lastRefreshAt>=15e3&&l()}function u(){let[e,t]=(0,r.useState)(i.state);(0,r.useEffect)(()=>{let e=e=>t(e);return i.listeners.add(e),1===i.listeners.size&&(l(),i.timer=window.setInterval(()=>{document.hidden||l()},6e4),document.addEventListener("visibilitychange",s)),()=>{i.listeners.delete(e),0===i.listeners.size&&(window.clearInterval(i.timer),i.timer=null,document.removeEventListener("visibilitychange",s))}},[]);let{serverPort:n,...o}=e,a=n??(window.location?.port?Number(window.location.port):null);return{...o,port:a}}},28745:(e,t,n)=>{"use strict";n.d(t,{vQ:()=>i,UY:()=>u,Nu:()=>a,B2:()=>s,h0:()=>l});var r=n(4553),o=n(41463);let i={name:`${r.Hc.name} Proxy`,description:"AI infrastructure management",version:"1.0.1",build:{channel:o.env.NEXT_PUBLIC_BUILD_CHANNEL||"",sha:o.env.NEXT_PUBLIC_BUILD_SHA||""}},a={changelogUrl:"https://raw.githubusercontent.com/tokenhop/tokenhop/refs/heads/master/CHANGELOG.md"},l={appPort:20128},s={storageKey:"theme",defaultTheme:"dark"},u={maxLines:200,pollIntervalMs:1e3}},35652:(e,t,n)=>{"use strict";var r,o=n(41463);let i=Object.freeze(["9router","tokenhop"]),a="tokenhop";function l(e,t){if(i.includes(e))return e;let n=i.map(e=>`"${e}"`).join(", ");throw Error(`${t}: unknown brand ${JSON.stringify(e)}; allowed values: ${n}`)}let s=""==(r="tokenhop")?a:l(r,"NEXT_PUBLIC_BRAND"),u=Object.freeze({name:"tokenhop",slug:"tokenhop",envPrefix:"TOKENHOP_",headerPrefix:"x-tokenhop-",jcodeApiKeyEnv:"JCODE_TOKENHOP_API_KEY",defaultApiKey:"sk_tokenhop",dataDirName:"tokenhop",samlIssuerDefault:"urn:tokenhop:sp",mitmCaCommonName:"tokenhop MITM Root CA",mitmCaOrg:"tokenhop",mitmCertFile:"tokenhop-root-ca.crt",pidFile:"tokenhop.pid",autostartLabel:"dev.tokenhop.autostart",autostartDesktopFile:"tokenhop.desktop",autostartVbsFile:"tokenhop.vbs",clientConfigKey:"tokenhop",customModelIdPrefix:"custom:tokenhop-",storageKeyPrefix:"tokenhop.",eventPrefix:"tokenhop:",backupFilePrefix:"tokenhop-backup-",npmPackage:"tokenhop",appPackage:"tokenhop-app",repoSlug:"tokenhop/tokenhop",repoUrl:"https://github.com/tokenhop/tokenhop",imageName:"ghcr.io/tokenhop/tokenhop",websiteUrl:"https://tokenhop.ai",docsUrl:"https://tokenhop.dev",wordmark:"tokenhop",favicon:"/brand/favicon.svg",faviconIco:"/brand/favicon.ico",appIcon192:"/brand/icons/icon-192.svg",appIcon512:"/brand/icons/icon-512.svg",trayIconName:"icon-tokenhop",trayIconTemplate:!0}),c=Object.freeze({names:Object.freeze(["9Router","9router"]),slug:"9router",envPrefixes:Object.freeze(["NINEROUTER_","NINE_ROUTER_"]),headerPrefix:"x-9router-",jcodeApiKeyEnv:"JCODE_9ROUTER_API_KEY",defaultApiKey:"sk_9router",dataDirName:"9router",samlIssuerDefault:"urn:9router:sp",mitmCaCommonName:"9Router MITM Root CA",mitmCaOrg:"9Router",mitmCertFile:"9router-root-ca.crt",pidFile:"9router.pid",autostartLabel:"com.9router.autostart",autostartDesktopFile:"9router.desktop",autostartVbsFile:"9router.vbs",clientConfigKeys:Object.freeze(["9router","9Router"]),customModelIdPrefix:"custom:9Router-",storageKeyPrefix:"9router.",eventPrefix:"9router:",backupFilePrefix:"9router-backup-",npmPackage:"9router",appPackage:"9router-app",repoSlug:"yandy-r/9router",repoUrl:"https://github.com/yandy-r/9router",imageName:"ghcr.io/yandy-r/9router",wordmark:"router",favicon:"/favicon.svg",faviconIco:"/favicon.ico",appIcon192:"/icons/icon-192.svg",appIcon512:"/icons/icon-512.svg",trayIconName:"icon",trayIconTemplate:!1}),d=Object.freeze({kimiPlatform:"9router",clineUserAgentProduct:"9Router",clineClientType:"9router",devinMcpClientName:"9router",coworkMcpClientName:"9router",cursorMcpProvider:"9router",glmMcpClientName:"9router",xaiUserAgent:"grok-cli/9router",xiaomiKeyNamePrefix:"9router-xmd-",githubUserAgent:"9Router",proxyTestUserAgent:"9Router",denoRelayKind:"9router-relay"}),f=new Set(["repoSlug","repoUrl","imageName","websiteUrl","docsUrl"]),p={name:"names",envPrefix:"envPrefixes",clientConfigKey:"clientConfigKeys"},m="tokenhop"===s?u:Object.freeze(Object.fromEntries(Object.keys(u).map(e=>{let t;return[e,f.has(e)?u[e]:Array.isArray(t=c[p[e]||e])?t[0]:t]}))),h=new Set;function g(e,t,n){if("tokenhop"!==s)return!1;let r=`${e}\u0000${t}`;return!h.has(r)&&(h.add(r),console.warn(`[tokenhop] deprecated ${e} "${t}" → use "${n}" (legacy support ends in v2.0.0)`),!0)}let b=/^[A-Z0-9]+(_[A-Z0-9]+)*$/;function v(e){if("string"!=typeof e||!b.test(e))throw Error(`envName: invalid suffix ${JSON.stringify(e)}; expected e.g. "PEER_TOKEN"`);return u.envPrefix+e}let y=/^(?!x-)[a-z0-9]+(-[a-z0-9]+)*$/;function x(e){return m.headerPrefix+function(e,t){if("string"!=typeof e||!y.test(e))throw Error(`${t}: invalid header name ${JSON.stringify(e)}; expected a bare lowercase name like "connection-id"`);return e}(e,"header")}e.exports={BRAND_IDS:i,DEFAULT_BRAND_ID:a,ACTIVE_BRAND_ID:s,isActiveBrand:function(e){return l(e,"isActiveBrand")===s},BRAND:u,LEGACY:c,ACTIVE:m,UPSTREAM_CLIENT_IDS:d,envName:v,readEnv:function(e,t=o.env){let n=v(e);if(void 0!==t[n])return t[n];for(let r of c.envPrefixes){let o=r+e;if(void 0!==t[o])return g("env var",o,n),t[o]}},warnLegacyOnce:g,header:x,legacyHeaderNames:function(e){let t=x(e);return[c.headerPrefix+e].filter(e=>e!==t)}}},36159:(e,t,n)=>{"use strict";n.d(t,{r:()=>r});let r=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text to speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech to text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/videos/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}]},65921:(e,t,n)=>{"use strict";n.d(t,{i:()=>i});var r=n(1934);let o=0,i=(0,r.v)((e,t)=>({notifications:[],addNotification:n=>{let r=++o,i={id:r,type:n.type||"info",message:n.message,title:n.title||null,action:n.action??null,accent:n.accent??null,duration:n.duration??5e3,dismissible:n.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,i]})),i.duration>0&&setTimeout(()=>t().removeNotification(r),i.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,n)=>t().addNotification(a("success",e,n)),error:(e,n)=>t().addNotification({duration:8e3,...a("error",e,n)}),warning:(e,n)=>t().addNotification(a("warning",e,n)),info:(e,n)=>t().addNotification(a("info",e,n))}));function a(e,t,n){if("string"==typeof n)return{type:e,message:t,title:n};let r={type:e,message:t,...n||{}},{action:o}=r;if(null!=o&&("string"!=typeof o.label||!o.label||"function"!=typeof o.onSelect))throw TypeError("notification action needs a label and onSelect function");return r}},73006:(e,t,n)=>{"use strict";n.d(t,{FE:()=>E,Tl:()=>p,kk:()=>m,oQ:()=>h,wn:()=>C});var r=n(93308);let o={},i=r.Xn,a=[],l=new Map,s=null,u=0;function c(){if("u"<typeof document)return r.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${r.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):r.Xn;return(0,r.QC)(t)}async function d(e){if("en"===e)return{};let t=l.get(e);if(t)return t;try{let t=await fetch(`/i18n/literals/${e}.json`);if(!t.ok)throw Error(`HTTP ${t.status} for ${e}.json`);let n=await t.json();return l.set(e,n),n}catch(e){return console.error("Failed to load translations:",e),{}}}async function f(){let e=++u,t=c(),n=await d(t);return e===u&&(i=t,o=n,!0)}function p(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==i&&o[t]||e}function m(){return i}function h(e){return a.push(e),()=>{a=a.filter(t=>t!==e)}}let g=new Set(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"]),b=new Set(["script","style","code","pre"]);function v(e){let t=e;for(;t;){if(t.hasAttribute?.("data-i18n-skip")||t.className?.toString?.().includes("material-symbols")||b.has(t.tagName?.toLowerCase()))return!0;t=t.parentElement}return g.has(e.tagName?.toLowerCase())}function y(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t||v(t))return;(void 0===e._originalText||e.nodeValue!==e._translatedText)&&(e._originalText=e.nodeValue);let n=p(e._originalText);e._translatedText=n,n!==e.nodeValue&&(e.nodeValue=n)}let x=["aria-label","placeholder","title","alt"];function k(e){if(!v(e))for(let t of(e._i18nOriginalAttrs||(e._i18nOriginalAttrs={}),e._i18nTranslatedAttrs||(e._i18nTranslatedAttrs={}),x)){if(!e.hasAttribute?.(t))continue;let n=e.getAttribute(t);t in e._i18nOriginalAttrs&&n===e._i18nTranslatedAttrs[t]||(e._i18nOriginalAttrs[t]=n);let r=p(e._i18nOriginalAttrs[t]??"");e._i18nTranslatedAttrs[t]=r||n,r&&r!==n&&e.setAttribute(t,r)}}function w(e){let t;if(!e)return;let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=[];for(;t=n.nextNode();)r.push(t);r.forEach(y),[e,...e.querySelectorAll("[aria-label],[placeholder],[title],[alt]")].forEach(k)}function N(e){for(let t of e)"characterData"===t.type?y(t.target):"attributes"===t.type?k(t.target):t.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?w(e):e.nodeType===Node.TEXT_NODE&&y(e)})}function T(){s||(s=new MutationObserver(N)).observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:x})}async function E(){"en"===c()||await f()&&(w(document.body),T())}async function C(){let e=i;if(await f()){if(a.forEach(e=>{e()}),"en"===i){s?.disconnect(),s=null,"en"!==e&&w(document.body);return}w(document.body),T()}}},81127:(e,t,n)=>{"use strict";n.d(t,{ConfirmDialog:()=>v,ConfirmModal:()=>y,default:()=>b});var r=n(95155),o=n(12115),i=n(14051),a=n.n(i),l=n(31474),s=n(19844),u=n(47929),c=n(92542),d=n(6587);let f=(0,o.createContext)(null);function p({children:e,className:t}){let{titleId:n,onClose:i}=function(e){let t=(0,o.useContext)(f);if(!t)throw Error(`Modal.${e} must be rendered inside <Modal>`);return t}("Header");return(0,r.jsxs)("div",{className:(0,l.cn)("flex shrink-0 items-center justify-between gap-3 border-b border-line py-3 ps-6 pe-3",t),children:[(0,r.jsx)("h2",{id:n,className:"min-w-0 font-display text-lg font-bold text-text",children:e}),i?(0,r.jsx)(d.default,{icon:"close",label:"Close",onClick:i}):null]})}function m({children:e,className:t}){return(0,r.jsx)("div",{className:(0,l.cn)("min-h-0 flex-1 overflow-y-auto px-6 py-5 custom-scrollbar",t),children:e})}function h({children:e,className:t}){return(0,r.jsx)("div",{className:(0,l.cn)("flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-line px-6 py-4",t),children:e})}p.propTypes={children:a().node,className:a().string},m.propTypes={children:a().node,className:a().string},h.propTypes={children:a().node,className:a().string};let g=new Set([p,m,h]);function b({isOpen:e,onClose:t,title:n,description:i,children:a,footer:c,size:d="md",closeOnOverlay:v=!0,closeOnEscape:y=!0,initialFocusRef:x,"aria-label":k,className:w,showTrafficLights:N}){let T=(0,o.useRef)(null),[E,C]=(0,u.lk)(T),{titleId:O,descriptionId:j}=(0,u.uf)("signal-modal"),P=!!e;if((0,u.K$)(P),(0,u.rM)({container:E,active:P,initialFocusRef:x}),(0,u.s9)({onClose:t,containerRef:T,enabled:P,closeOnEscape:y,closeOnOutside:v}),!P)return null;let _=o.Children.toArray(a).some(e=>(0,o.isValidElement)(e)&&g.has(e.type)),A=!!n||_;return(0,r.jsx)(u.ZL,{children:(0,r.jsx)(f.Provider,{value:{titleId:O,onClose:t},children:(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"signal-backdrop absolute inset-0","aria-hidden":"true"}),(0,r.jsxs)("div",{ref:C,role:"dialog","aria-modal":"true","aria-labelledby":A&&!k?O:void 0,"aria-label":k,"aria-describedby":i?j:void 0,tabIndex:-1,className:(0,l.cn)("signal-overlay-modal relative flex max-h-[85vh] w-full flex-col overflow-hidden","rounded-2xl border border-line bg-panel text-text shadow-card outline-none",(0,s.FM)(d),w),children:[_?a:(0,r.jsxs)(r.Fragment,{children:[n?(0,r.jsx)(p,{children:n}):null,(0,r.jsxs)(m,{children:[i?(0,r.jsx)("p",{id:j,className:"mb-3 text-sm text-muted",children:i}):null,a]}),c?(0,r.jsx)(h,{children:c}):null]}),_&&i?(0,r.jsx)("p",{id:j,className:"sr-only",children:i}):null]})]})})})}function v({isOpen:e,onClose:t,onConfirm:n,title:i="Confirm",message:a,confirmText:l="Confirm",cancelText:u="Cancel",variant:d="danger",loading:f,error:p}){let[m,h]=(0,o.useState)(!1),[g,y]=(0,o.useState)(null),x=!!f||m,k=p??g,w=(0,o.useRef)(!1),N=(0,o.useRef)(0),T=(0,o.useRef)(e);T.current=e,(0,o.useEffect)(()=>{e||(N.current+=1,w.current=!1,h(!1),y(null))},[e]);let E=()=>{x||(y(null),t?.())},C=async()=>{if(!(0,s.IH)(w,x))return;w.current=!0;let e=N.current+1;N.current=e,y(null),h(!0);try{await n()}catch(t){if(!(0,s.YR)(e,N,T.current))return;y(t?.message||"Something went wrong. Try again.")}finally{(0,s.YR)(e,N,T.current)&&h(!1),N.current===e&&(w.current=!1)}};return(0,r.jsx)(b,{isOpen:e,onClose:E,title:i,description:a,size:"sm",closeOnOverlay:!x,closeOnEscape:!x,footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.default,{variant:"ghost",onClick:E,disabled:x,children:u}),(0,r.jsx)(c.default,{variant:"danger"===d?"danger":"primary",onClick:C,loading:x,children:l})]}),children:(0,r.jsx)("div",{"aria-live":"polite",children:k?(0,r.jsx)("p",{role:"alert",className:"rounded-lg bg-err-bg px-3 py-2 text-sm text-err",children:k}):null})})}b.Header=p,b.Body=m,b.Footer=h,b.propTypes={isOpen:a().bool,onClose:a().func,title:a().node,description:a().node,children:a().node,footer:a().node,size:a().oneOf(Object.keys(s.Ts)),closeOnOverlay:a().bool,closeOnEscape:a().bool,initialFocusRef:a().shape({current:a().any}),"aria-label":a().string,className:a().string,showTrafficLights:a().bool},v.propTypes={isOpen:a().bool,onClose:a().func,onConfirm:a().func.isRequired,title:a().node,message:a().node,confirmText:a().string,cancelText:a().string,variant:a().oneOf(["danger","default","primary"]),loading:a().bool,error:a().node};let y=v},90085:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(1934),o=n(31692),i=n(28745);function a(e){let t=document.documentElement,n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?n:e)?t.classList.add("dark"):t.classList.remove("dark")}let l=(0,r.v)((0,o.Zr)((e,t)=>({theme:i.B2.defaultTheme,setTheme:t=>{e({theme:t}),a(t)},toggleTheme:()=>{let n="dark"===t().theme?"light":"dark";e({theme:n}),a(n)},initTheme:()=>{a(t().theme)}}),{name:i.B2.storageKey}))},92154:(e,t,n)=>{Promise.resolve().then(n.bind(n,22577))},93308:(e,t,n)=>{"use strict";n.d(t,{CL:()=>i,QC:()=>s,Xn:()=>o,YZ:()=>r,kf:()=>l,rB:()=>a});let r=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","km","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no","fa"],o="en",i="locale",a=["ar","he","fa","ur"],l={en:"English",vi:"Tiếng Việt","zh-CN":"简体中文","zh-TW":"繁體中文",ja:"日本語","pt-BR":"Portugu\xeas (Brasil)","pt-PT":"Portugu\xeas (Portugal)",ko:"한국어",es:"Espa\xf1ol",de:"Deutsch",fr:"Fran\xe7ais",he:"עברית",ar:"العربية",ru:"Русский",pl:"Polski",cs:"Čeština",nl:"Nederlands",tr:"T\xfcrk\xe7e",uk:"Українська",tl:"Tagalog",id:"Indonesia",th:"ไทย",km:"ខ្មែរ",hi:"हिन्दी",bn:"বাংলা",ur:"اردو",ro:"Rom\xe2nă",sv:"Svenska",it:"Italiano",el:"Ελληνικά",hu:"Magyar",fi:"Suomi",da:"Dansk",no:"Norsk",fa:"فارسی"};function s(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"km"===e?"km":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":"fa"===e?"fa":o}},93921:(e,t,n)=>{"use strict";n.d(t,{MenuItem:()=>m,default:()=>p});var r=n(95155),o=n(12115),i=n(14051),a=n.n(i),l=n(31474),s=n(4650),u=n(19844),c=n(47929);let d=o.useLayoutEffect,f=e=>"string"==typeof e?.props?.label?e.props.label:e?.props?.children;function p({trigger:e,children:t,open:n,onOpenChange:i,align:a="end",className:m}){let h=(0,o.useRef)(null),g=(0,o.useRef)(null),b=(0,o.useRef)([]),v=(0,o.useRef)({session:null}),{overlayId:y}=(0,c.uf)("signal-menu"),[x,k]=(0,o.useState)(!1),[w,N]=(0,o.useState)(-1),[T,E]=(0,o.useState)(null),[C,O]=(0,o.useState)(null),j=(0,o.useCallback)(e=>{g.current=e,O(e)},[]),P="boolean"==typeof n,_=P?n:x,A=(0,o.useCallback)(e=>{P?i?.(e):k(e),e||(N(-1),v.current.session=null)},[P,i]),S=(0,o.useCallback)(()=>{let e=h.current;e&&"function"==typeof e.focus&&e.focus()},[]),R=(0,o.useCallback)(()=>A(!1),[A]),I=(0,o.useCallback)(()=>{R(),S()},[R,S]);(0,o.useEffect)(()=>{_&&C&&T&&b.current[Math.max(w,0)]?.focus?.()},[_,C,T,w]),(0,c.s9)({onClose:I,containerRef:g,enabled:_,closeOnOutside:!1}),(0,o.useEffect)(()=>{if(!_)return;let e=e=>{g.current?.contains(e.target)||h.current?.contains(e.target)||R()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[_,R]);let M=o.Children.toArray(t).filter(o.isValidElement),L=M.map(f),z=M.map(e=>!!e.props.disabled),D=(0,o.useRef)(z);D.current=z;let $=(0,o.useCallback)((e=0)=>{A(!0);let t=(0,u.oQ)(D.current,e<0?0:e);N(t<0?e:t)},[A]);d(()=>{if(!_||!C)return void E(null);let e=()=>{let e=h.current;if(!e)return;let t=e.getBoundingClientRect(),n={width:C.offsetWidth,height:C.offsetHeight},r="rtl"===getComputedStyle(e).direction,o=(0,u.Rg)(t,n,a,r);E({top:o.top,left:o.left})};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[_,C,a]);let F=e=>{if("Tab"===e.key){_&&R();return}if("ArrowDown"===e.key)e.preventDefault(),$(0);else if("ArrowUp"===e.key){e.preventDefault(),A(!0);let t=(0,u.oQ)(z,M.length-1,!0);N(t<0?M.length-1:t)}else("Enter"===e.key||" "===e.key)&&(e.preventDefault(),_?R():$(0))},K=(0,o.isValidElement)(e)?e.props["aria-label"]??e.props.label??("string"==typeof e.props.children?e.props.children:void 0):void 0,U={ref:h,"aria-haspopup":"menu","aria-expanded":_,"aria-controls":_?y:void 0,onClick:()=>{_?R():$(0)},onKeyDown:F};return(0,r.jsxs)(r.Fragment,{children:[(0,o.isValidElement)(e)?(0,o.cloneElement)(e,{...U,onClick:t=>{e.props.onClick?.(t),t.defaultPrevented||U.onClick(t)},onKeyDown:t=>{e.props.onKeyDown?.(t),t.defaultPrevented||F(t)}}):(0,r.jsx)("button",{type:"button",...U,className:"inline-flex h-11 items-center justify-center gap-2 rounded-lg border border-line bg-raised px-4 text-sm font-semibold text-text transition-colors duration-150 hover:bg-line/60 focus-visible:outline-none focus-visible:shadow-focus",children:e}),_?(0,r.jsx)(c.ZL,{children:(0,r.jsx)("div",{ref:j,id:y,role:"menu","aria-label":K,"aria-orientation":"vertical",style:T??{visibility:"hidden"},className:(0,l.cn)("signal-overlay-menu fixed z-50 w-60 overflow-hidden rounded-xl border border-line bg-panel py-1 text-text shadow-card",m),children:M.map((e,t)=>(0,o.cloneElement)(e,{key:e.key??t,ref:e=>{b.current[t]=e},tabIndex:t===Math.max(w,0)?0:-1,"data-active":t===Math.max(w,0),onKeyDown:e=>((e,t)=>{if("Tab"===e.key)return void R();if((0,s.JF)(e.key)){e.preventDefault();let n="u">typeof document&&"rtl"===document.dir,r=(0,u.jg)(t,e.key,z,s.lZ,{rtl:n});N(r),b.current[r]?.focus?.();return}if(1===e.key.length&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let n=v.current,{session:r,index:o}=(0,u.sF)(n.session,e.key,e.timeStamp,L.map(e=>String(e??"")),t,z);n.session=r,o!==t&&(N(o),b.current[o]?.focus?.())}})(e,t),onSelect:()=>{e.props.onSelect?.(),I()}}))})}):null]})}p.propTypes={trigger:a().node.isRequired,children:a().node,open:a().bool,onOpenChange:a().func,align:a().oneOf(["start","end"]),className:a().string};let m=function({icon:e,label:t,children:n,trailing:o,danger:i=!1,selected:a=!1,disabled:s=!1,onSelect:u,...c}){return(0,r.jsxs)("button",{type:"button",role:"menuitem","aria-current":a||void 0,disabled:s,onClick:e=>{s?e.preventDefault():u?.(e)},className:(0,l.cn)("flex min-h-11 w-full items-center gap-3 px-4 py-2.5 text-sm transition-colors duration-150","focus-visible:outline-none focus-visible:shadow-focus","disabled:cursor-not-allowed disabled:opacity-50",i?"text-err hover:bg-err-bg":"text-text hover:bg-raised",a&&"bg-coral-bg font-semibold text-coral-ink"),...c,children:[e?(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-muted","aria-hidden":"true",children:e}):null,(0,r.jsx)("span",{className:"min-w-0 flex-1 text-start",children:n??t}),a?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check"}):null,o?(0,r.jsx)("span",{className:"shrink-0 text-sm text-muted",children:o}):null]})};m.propTypes={icon:a().string,label:a().string,children:a().node,trailing:a().node,danger:a().bool,selected:a().bool,disabled:a().bool,onSelect:a().func}},96975:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(95155),o=n(14051),i=n.n(o),a=n(12115),l=n(7256),s=n(8247);let u={sm:{tile:"size-6 rounded-md",text:"text-[10px]"},md:{tile:"size-9 rounded-[10px]",text:"text-sm"},lg:{tile:"size-14 rounded-[14px]",text:"text-lg"}},c={ok:"bg-ok",warn:"bg-warn",err:"bg-err",info:"bg-sky",live:"bg-lime",neutral:"bg-line"};function d({providerId:e,size:t="md",status:n,brand:o,iconSrc:i,className:f}){let[p,m]=(0,a.useState)(null),h=u[t];if(!h)throw Error(`ProviderTile: unknown size "${t}"`);if(void 0!==n&&!c[n])throw Error(`ProviderTile: unknown status "${n}"`);let g=(0,l.rs)(e),b=o??(0,l.Do)(g),v=p===g?null:i??(0,s.HY)(g),y=v?{style:{backgroundColor:`color-mix(in srgb, ${b.color} 8%, #ffffff)`},className:""}:{style:{backgroundColor:b.color},className:`font-display font-bold text-white shadow-[inset_0_0_0_1px_rgba(255,255,255,0.14)] ${h.text}`};return(0,r.jsxs)("span",{"aria-hidden":"true",title:e,style:y.style,className:`relative inline-flex shrink-0 items-center justify-center ${h.tile} ${y.className}${f?` ${f}`:""}`,children:[v?(0,r.jsx)("img",{src:v,alt:"",loading:"lazy",decoding:"async",className:"size-full rounded-[inherit] object-contain",onError:()=>{(0,s.Kw)(g),m(g)}}):b.monogram,n&&(0,r.jsx)("span",{className:`absolute -end-0.5 -bottom-0.5 size-2.5 rounded-full shadow-[0_0_0_2px_var(--signal-panel)] ${c[n]}`})]})}d.propTypes={providerId:i().string.isRequired,size:i().oneOf(Object.keys(u)),status:i().oneOf(Object.keys(c)),brand:i().shape({color:i().string.isRequired,monogram:i().string.isRequired}),iconSrc:i().string,className:i().string}}},e=>{e.O(0,[1610,4808,9671,2903,2577,8441,3794,7358],()=>e(e.s=92154)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{1620:(e,t,n)=>{"use strict";n.d(t,{D:()=>s});var r=n(12115),o=n(90085);function i(e){let t=window.matchMedia("(prefers-color-scheme: dark)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function a(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function l(){return!1}function s(){let{theme:e,setTheme:t,toggleTheme:n,initTheme:s}=(0,o.A)(),u=(0,r.useSyncExternalStore)(i,a,l);(0,r.useEffect)(()=>{s()},[s]),(0,r.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),n=()=>s();return t.addEventListener("change",n),()=>t.removeEventListener("change",n)},[e,s]);let c="dark"===e||"system"===e&&u;return{theme:e,setTheme:t,toggleTheme:n,isDark:c}}},4553:(e,t,n)=>{"use strict";n.d(t,{DM:()=>a,Hc:()=>c,qt:()=>s,qx:()=>u});var r=n(35652);let{BRAND_IDS:o,DEFAULT_BRAND_ID:i,ACTIVE_BRAND_ID:a,isActiveBrand:l,BRAND:s,LEGACY:u,ACTIVE:c,UPSTREAM_CLIENT_IDS:d,envName:f,readEnv:p,warnLegacyOnce:m,header:h,legacyHeaderNames:g}=n.n(r)()},8247:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Kw:()=>u});let r={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama"};function o(e){return e.startsWith("openai-compatible")?"oai-cc":e.startsWith("anthropic-compatible")?"anthropic-m":""}let i=new Set;function a(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}let l=new Set(["meta-code"]);function s(e){let t=function(e){let t=a(e);if(!t||i.has(t))return"";let n=r[t]||o(t)||t;return i.has(n)?"":n}(e);return t?`/providers/${t}.${l.has(t)?"svg":"webp"}`:null}function u(e){let t=a(e);t&&i.add(t);let n=r[t]||o(t);n&&i.add(n)}},15729:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(95155),o=n(14051),i=n.n(o),a=n(31474);function l({children:e,className:t,...n}){return(0,r.jsx)("kbd",{...n,className:(0,a.cn)("inline-flex h-5 min-w-5 items-center justify-center rounded-md border border-line bg-raised px-1.5","font-mono text-[11px] font-medium text-subtle",t),children:e})}l.propTypes={children:i().node.isRequired,className:i().string}},17081:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>u,q0:()=>l});var r=n(12115);let o=(e,t)=>Number.isInteger(e)&&e>=0?e:t,i={state:{loading:!0,gatewayOnline:null,startedAt:null,serverPort:null,badges:{providers:null,combos:null,quota:null},providerAttention:{count:0,status:null},enableTranslator:!1,traffic:null,savingsMilestone:null},listeners:new Set,timer:null,inFlight:null,queued:!1,lastRefreshAt:0};async function a(){let e=null,t=null;i.lastRefreshAt=Date.now();try{let n=await fetch("/api/shell/summary",{cache:"no-store"});e=n.status,n.ok&&(t=await n.json().catch(()=>null))}catch{}for(let n of(i.state=function(e,t,n){let r={...e,loading:!1};if(null===t||t>=500)return{...r,gatewayOnline:!1,startedAt:null,serverPort:null};if(r.gatewayOnline=!0,!n||"object"!=typeof n)return r;let i=n.gateway||{};r.startedAt="string"==typeof i.startedAt?i.startedAt:null,r.serverPort=Number.isInteger(i.port)?i.port:null,r.badges={providers:o(n.providers?.connected,e.badges.providers),combos:o(n.combos,e.badges.combos),quota:o(n.lowQuota,e.badges.quota)};let a=n.providers?.attention;a&&Number.isInteger(a.count)&&(r.providerAttention={count:a.count,status:"warn"===a.status||"err"===a.status?a.status:null}),"boolean"==typeof n.enableTranslator&&(r.enableTranslator=n.enableTranslator);let l=n.traffic??null;if(null!==l&&Array.isArray(l.series)&&Number.isInteger(l.total)&&l.total>=0&&(r.traffic={series:l.series.map(e=>Number.isFinite(e)?Math.max(0,Math.floor(e)):0),total:l.total}),n.savings&&"object"==typeof n.savings&&"pendingMilestone"in n.savings){let e=n.savings.pendingMilestone;null===e?r.savingsMilestone=null:Number.isInteger(e)&&e>0&&(r.savingsMilestone=e)}return r}(i.state,e,t),i.listeners))n(i.state)}function l(){return i.inFlight?i.queued=!0:i.inFlight=a().finally(()=>{i.inFlight=null,i.queued&&(i.queued=!1,l())}),i.inFlight}function s(){!document.hidden&&!i.inFlight&&Date.now()-i.lastRefreshAt>=15e3&&l()}function u(){let[e,t]=(0,r.useState)(i.state);(0,r.useEffect)(()=>{let e=e=>t(e);return i.listeners.add(e),1===i.listeners.size&&(l(),i.timer=window.setInterval(()=>{document.hidden||l()},6e4),document.addEventListener("visibilitychange",s)),()=>{i.listeners.delete(e),0===i.listeners.size&&(window.clearInterval(i.timer),i.timer=null,document.removeEventListener("visibilitychange",s))}},[]);let{serverPort:n,...o}=e,a=n??(window.location?.port?Number(window.location.port):null);return{...o,port:a}}},28745:(e,t,n)=>{"use strict";n.d(t,{vQ:()=>i,UY:()=>u,Nu:()=>a,B2:()=>s,h0:()=>l});var r=n(4553),o=n(41463);let i={name:`${r.Hc.name} Proxy`,description:"AI infrastructure management",version:"1.0.3",build:{channel:o.env.NEXT_PUBLIC_BUILD_CHANNEL||"",sha:o.env.NEXT_PUBLIC_BUILD_SHA||""}},a={changelogUrl:"https://raw.githubusercontent.com/tokenhop/tokenhop/refs/heads/master/CHANGELOG.md"},l={appPort:20128},s={storageKey:"theme",defaultTheme:"dark"},u={maxLines:200,pollIntervalMs:1e3}},35652:(e,t,n)=>{"use strict";var r,o=n(41463);let i=Object.freeze(["9router","tokenhop"]),a="tokenhop";function l(e,t){if(i.includes(e))return e;let n=i.map(e=>`"${e}"`).join(", ");throw Error(`${t}: unknown brand ${JSON.stringify(e)}; allowed values: ${n}`)}let s=""==(r="tokenhop")?a:l(r,"NEXT_PUBLIC_BRAND"),u=Object.freeze({name:"tokenhop",slug:"tokenhop",envPrefix:"TOKENHOP_",headerPrefix:"x-tokenhop-",jcodeApiKeyEnv:"JCODE_TOKENHOP_API_KEY",defaultApiKey:"sk_tokenhop",dataDirName:"tokenhop",samlIssuerDefault:"urn:tokenhop:sp",mitmCaCommonName:"tokenhop MITM Root CA",mitmCaOrg:"tokenhop",mitmCertFile:"tokenhop-root-ca.crt",pidFile:"tokenhop.pid",autostartLabel:"dev.tokenhop.autostart",autostartDesktopFile:"tokenhop.desktop",autostartVbsFile:"tokenhop.vbs",clientConfigKey:"tokenhop",customModelIdPrefix:"custom:tokenhop-",storageKeyPrefix:"tokenhop.",eventPrefix:"tokenhop:",backupFilePrefix:"tokenhop-backup-",npmPackage:"tokenhop",appPackage:"tokenhop-app",repoSlug:"tokenhop/tokenhop",repoUrl:"https://github.com/tokenhop/tokenhop",imageName:"ghcr.io/tokenhop/tokenhop",websiteUrl:"https://tokenhop.ai",docsUrl:"https://tokenhop.dev",wordmark:"tokenhop",favicon:"/brand/favicon.svg",faviconIco:"/brand/favicon.ico",appIcon192:"/brand/icons/icon-192.svg",appIcon512:"/brand/icons/icon-512.svg",trayIconName:"icon-tokenhop",trayIconTemplate:!0}),c=Object.freeze({names:Object.freeze(["9Router","9router"]),slug:"9router",envPrefixes:Object.freeze(["NINEROUTER_","NINE_ROUTER_"]),headerPrefix:"x-9router-",jcodeApiKeyEnv:"JCODE_9ROUTER_API_KEY",defaultApiKey:"sk_9router",dataDirName:"9router",samlIssuerDefault:"urn:9router:sp",mitmCaCommonName:"9Router MITM Root CA",mitmCaOrg:"9Router",mitmCertFile:"9router-root-ca.crt",pidFile:"9router.pid",autostartLabel:"com.9router.autostart",autostartDesktopFile:"9router.desktop",autostartVbsFile:"9router.vbs",clientConfigKeys:Object.freeze(["9router","9Router"]),customModelIdPrefix:"custom:9Router-",storageKeyPrefix:"9router.",eventPrefix:"9router:",backupFilePrefix:"9router-backup-",npmPackage:"9router",appPackage:"9router-app",repoSlug:"yandy-r/9router",repoUrl:"https://github.com/yandy-r/9router",imageName:"ghcr.io/yandy-r/9router",wordmark:"router",favicon:"/favicon.svg",faviconIco:"/favicon.ico",appIcon192:"/icons/icon-192.svg",appIcon512:"/icons/icon-512.svg",trayIconName:"icon",trayIconTemplate:!1}),d=Object.freeze({kimiPlatform:"9router",clineUserAgentProduct:"9Router",clineClientType:"9router",devinMcpClientName:"9router",coworkMcpClientName:"9router",cursorMcpProvider:"9router",glmMcpClientName:"9router",xaiUserAgent:"grok-cli/9router",xiaomiKeyNamePrefix:"9router-xmd-",githubUserAgent:"9Router",proxyTestUserAgent:"9Router",denoRelayKind:"9router-relay"}),f=new Set(["repoSlug","repoUrl","imageName","websiteUrl","docsUrl"]),p={name:"names",envPrefix:"envPrefixes",clientConfigKey:"clientConfigKeys"},m="tokenhop"===s?u:Object.freeze(Object.fromEntries(Object.keys(u).map(e=>{let t;return[e,f.has(e)?u[e]:Array.isArray(t=c[p[e]||e])?t[0]:t]}))),h=new Set;function g(e,t,n){if("tokenhop"!==s)return!1;let r=`${e}\u0000${t}`;return!h.has(r)&&(h.add(r),console.warn(`[tokenhop] deprecated ${e} "${t}" → use "${n}" (legacy support ends in v2.0.0)`),!0)}let b=/^[A-Z0-9]+(_[A-Z0-9]+)*$/;function v(e){if("string"!=typeof e||!b.test(e))throw Error(`envName: invalid suffix ${JSON.stringify(e)}; expected e.g. "PEER_TOKEN"`);return u.envPrefix+e}let y=/^(?!x-)[a-z0-9]+(-[a-z0-9]+)*$/;function x(e){return m.headerPrefix+function(e,t){if("string"!=typeof e||!y.test(e))throw Error(`${t}: invalid header name ${JSON.stringify(e)}; expected a bare lowercase name like "connection-id"`);return e}(e,"header")}e.exports={BRAND_IDS:i,DEFAULT_BRAND_ID:a,ACTIVE_BRAND_ID:s,isActiveBrand:function(e){return l(e,"isActiveBrand")===s},BRAND:u,LEGACY:c,ACTIVE:m,UPSTREAM_CLIENT_IDS:d,envName:v,readEnv:function(e,t=o.env){let n=v(e);if(void 0!==t[n])return t[n];for(let r of c.envPrefixes){let o=r+e;if(void 0!==t[o])return g("env var",o,n),t[o]}},warnLegacyOnce:g,header:x,legacyHeaderNames:function(e){let t=x(e);return[c.headerPrefix+e].filter(e=>e!==t)}}},36159:(e,t,n)=>{"use strict";n.d(t,{r:()=>r});let r=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text to speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech to text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/videos/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}]},65921:(e,t,n)=>{"use strict";n.d(t,{i:()=>i});var r=n(1934);let o=0,i=(0,r.v)((e,t)=>({notifications:[],addNotification:n=>{let r=++o,i={id:r,type:n.type||"info",message:n.message,title:n.title||null,action:n.action??null,accent:n.accent??null,duration:n.duration??5e3,dismissible:n.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,i]})),i.duration>0&&setTimeout(()=>t().removeNotification(r),i.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,n)=>t().addNotification(a("success",e,n)),error:(e,n)=>t().addNotification({duration:8e3,...a("error",e,n)}),warning:(e,n)=>t().addNotification(a("warning",e,n)),info:(e,n)=>t().addNotification(a("info",e,n))}));function a(e,t,n){if("string"==typeof n)return{type:e,message:t,title:n};let r={type:e,message:t,...n||{}},{action:o}=r;if(null!=o&&("string"!=typeof o.label||!o.label||"function"!=typeof o.onSelect))throw TypeError("notification action needs a label and onSelect function");return r}},73006:(e,t,n)=>{"use strict";n.d(t,{FE:()=>E,Tl:()=>p,kk:()=>m,oQ:()=>h,wn:()=>C});var r=n(93308);let o={},i=r.Xn,a=[],l=new Map,s=null,u=0;function c(){if("u"<typeof document)return r.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${r.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):r.Xn;return(0,r.QC)(t)}async function d(e){if("en"===e)return{};let t=l.get(e);if(t)return t;try{let t=await fetch(`/i18n/literals/${e}.json`);if(!t.ok)throw Error(`HTTP ${t.status} for ${e}.json`);let n=await t.json();return l.set(e,n),n}catch(e){return console.error("Failed to load translations:",e),{}}}async function f(){let e=++u,t=c(),n=await d(t);return e===u&&(i=t,o=n,!0)}function p(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==i&&o[t]||e}function m(){return i}function h(e){return a.push(e),()=>{a=a.filter(t=>t!==e)}}let g=new Set(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"]),b=new Set(["script","style","code","pre"]);function v(e){let t=e;for(;t;){if(t.hasAttribute?.("data-i18n-skip")||t.className?.toString?.().includes("material-symbols")||b.has(t.tagName?.toLowerCase()))return!0;t=t.parentElement}return g.has(e.tagName?.toLowerCase())}function y(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t||v(t))return;(void 0===e._originalText||e.nodeValue!==e._translatedText)&&(e._originalText=e.nodeValue);let n=p(e._originalText);e._translatedText=n,n!==e.nodeValue&&(e.nodeValue=n)}let x=["aria-label","placeholder","title","alt"];function k(e){if(!v(e))for(let t of(e._i18nOriginalAttrs||(e._i18nOriginalAttrs={}),e._i18nTranslatedAttrs||(e._i18nTranslatedAttrs={}),x)){if(!e.hasAttribute?.(t))continue;let n=e.getAttribute(t);t in e._i18nOriginalAttrs&&n===e._i18nTranslatedAttrs[t]||(e._i18nOriginalAttrs[t]=n);let r=p(e._i18nOriginalAttrs[t]??"");e._i18nTranslatedAttrs[t]=r||n,r&&r!==n&&e.setAttribute(t,r)}}function w(e){let t;if(!e)return;let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=[];for(;t=n.nextNode();)r.push(t);r.forEach(y),[e,...e.querySelectorAll("[aria-label],[placeholder],[title],[alt]")].forEach(k)}function N(e){for(let t of e)"characterData"===t.type?y(t.target):"attributes"===t.type?k(t.target):t.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?w(e):e.nodeType===Node.TEXT_NODE&&y(e)})}function T(){s||(s=new MutationObserver(N)).observe(document.body,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:x})}async function E(){"en"===c()||await f()&&(w(document.body),T())}async function C(){let e=i;if(await f()){if(a.forEach(e=>{e()}),"en"===i){s?.disconnect(),s=null,"en"!==e&&w(document.body);return}w(document.body),T()}}},81127:(e,t,n)=>{"use strict";n.d(t,{ConfirmDialog:()=>v,ConfirmModal:()=>y,default:()=>b});var r=n(95155),o=n(12115),i=n(14051),a=n.n(i),l=n(31474),s=n(19844),u=n(47929),c=n(92542),d=n(6587);let f=(0,o.createContext)(null);function p({children:e,className:t}){let{titleId:n,onClose:i}=function(e){let t=(0,o.useContext)(f);if(!t)throw Error(`Modal.${e} must be rendered inside <Modal>`);return t}("Header");return(0,r.jsxs)("div",{className:(0,l.cn)("flex shrink-0 items-center justify-between gap-3 border-b border-line py-3 ps-6 pe-3",t),children:[(0,r.jsx)("h2",{id:n,className:"min-w-0 font-display text-lg font-bold text-text",children:e}),i?(0,r.jsx)(d.default,{icon:"close",label:"Close",onClick:i}):null]})}function m({children:e,className:t}){return(0,r.jsx)("div",{className:(0,l.cn)("min-h-0 flex-1 overflow-y-auto px-6 py-5 custom-scrollbar",t),children:e})}function h({children:e,className:t}){return(0,r.jsx)("div",{className:(0,l.cn)("flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-line px-6 py-4",t),children:e})}p.propTypes={children:a().node,className:a().string},m.propTypes={children:a().node,className:a().string},h.propTypes={children:a().node,className:a().string};let g=new Set([p,m,h]);function b({isOpen:e,onClose:t,title:n,description:i,children:a,footer:c,size:d="md",closeOnOverlay:v=!0,closeOnEscape:y=!0,initialFocusRef:x,"aria-label":k,className:w,showTrafficLights:N}){let T=(0,o.useRef)(null),[E,C]=(0,u.lk)(T),{titleId:O,descriptionId:j}=(0,u.uf)("signal-modal"),P=!!e;if((0,u.K$)(P),(0,u.rM)({container:E,active:P,initialFocusRef:x}),(0,u.s9)({onClose:t,containerRef:T,enabled:P,closeOnEscape:y,closeOnOutside:v}),!P)return null;let _=o.Children.toArray(a).some(e=>(0,o.isValidElement)(e)&&g.has(e.type)),A=!!n||_;return(0,r.jsx)(u.ZL,{children:(0,r.jsx)(f.Provider,{value:{titleId:O,onClose:t},children:(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"signal-backdrop absolute inset-0","aria-hidden":"true"}),(0,r.jsxs)("div",{ref:C,role:"dialog","aria-modal":"true","aria-labelledby":A&&!k?O:void 0,"aria-label":k,"aria-describedby":i?j:void 0,tabIndex:-1,className:(0,l.cn)("signal-overlay-modal relative flex max-h-[85vh] w-full flex-col overflow-hidden","rounded-2xl border border-line bg-panel text-text shadow-card outline-none",(0,s.FM)(d),w),children:[_?a:(0,r.jsxs)(r.Fragment,{children:[n?(0,r.jsx)(p,{children:n}):null,(0,r.jsxs)(m,{children:[i?(0,r.jsx)("p",{id:j,className:"mb-3 text-sm text-muted",children:i}):null,a]}),c?(0,r.jsx)(h,{children:c}):null]}),_&&i?(0,r.jsx)("p",{id:j,className:"sr-only",children:i}):null]})]})})})}function v({isOpen:e,onClose:t,onConfirm:n,title:i="Confirm",message:a,confirmText:l="Confirm",cancelText:u="Cancel",variant:d="danger",loading:f,error:p}){let[m,h]=(0,o.useState)(!1),[g,y]=(0,o.useState)(null),x=!!f||m,k=p??g,w=(0,o.useRef)(!1),N=(0,o.useRef)(0),T=(0,o.useRef)(e);T.current=e,(0,o.useEffect)(()=>{e||(N.current+=1,w.current=!1,h(!1),y(null))},[e]);let E=()=>{x||(y(null),t?.())},C=async()=>{if(!(0,s.IH)(w,x))return;w.current=!0;let e=N.current+1;N.current=e,y(null),h(!0);try{await n()}catch(t){if(!(0,s.YR)(e,N,T.current))return;y(t?.message||"Something went wrong. Try again.")}finally{(0,s.YR)(e,N,T.current)&&h(!1),N.current===e&&(w.current=!1)}};return(0,r.jsx)(b,{isOpen:e,onClose:E,title:i,description:a,size:"sm",closeOnOverlay:!x,closeOnEscape:!x,footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.default,{variant:"ghost",onClick:E,disabled:x,children:u}),(0,r.jsx)(c.default,{variant:"danger"===d?"danger":"primary",onClick:C,loading:x,children:l})]}),children:(0,r.jsx)("div",{"aria-live":"polite",children:k?(0,r.jsx)("p",{role:"alert",className:"rounded-lg bg-err-bg px-3 py-2 text-sm text-err",children:k}):null})})}b.Header=p,b.Body=m,b.Footer=h,b.propTypes={isOpen:a().bool,onClose:a().func,title:a().node,description:a().node,children:a().node,footer:a().node,size:a().oneOf(Object.keys(s.Ts)),closeOnOverlay:a().bool,closeOnEscape:a().bool,initialFocusRef:a().shape({current:a().any}),"aria-label":a().string,className:a().string,showTrafficLights:a().bool},v.propTypes={isOpen:a().bool,onClose:a().func,onConfirm:a().func.isRequired,title:a().node,message:a().node,confirmText:a().string,cancelText:a().string,variant:a().oneOf(["danger","default","primary"]),loading:a().bool,error:a().node};let y=v},90085:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(1934),o=n(31692),i=n(28745);function a(e){let t=document.documentElement,n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?n:e)?t.classList.add("dark"):t.classList.remove("dark")}let l=(0,r.v)((0,o.Zr)((e,t)=>({theme:i.B2.defaultTheme,setTheme:t=>{e({theme:t}),a(t)},toggleTheme:()=>{let n="dark"===t().theme?"light":"dark";e({theme:n}),a(n)},initTheme:()=>{a(t().theme)}}),{name:i.B2.storageKey}))},92154:(e,t,n)=>{Promise.resolve().then(n.bind(n,22577))},93308:(e,t,n)=>{"use strict";n.d(t,{CL:()=>i,QC:()=>s,Xn:()=>o,YZ:()=>r,kf:()=>l,rB:()=>a});let r=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","km","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no","fa"],o="en",i="locale",a=["ar","he","fa","ur"],l={en:"English",vi:"Tiếng Việt","zh-CN":"简体中文","zh-TW":"繁體中文",ja:"日本語","pt-BR":"Portugu\xeas (Brasil)","pt-PT":"Portugu\xeas (Portugal)",ko:"한국어",es:"Espa\xf1ol",de:"Deutsch",fr:"Fran\xe7ais",he:"עברית",ar:"العربية",ru:"Русский",pl:"Polski",cs:"Čeština",nl:"Nederlands",tr:"T\xfcrk\xe7e",uk:"Українська",tl:"Tagalog",id:"Indonesia",th:"ไทย",km:"ខ្មែរ",hi:"हिन्दी",bn:"বাংলা",ur:"اردو",ro:"Rom\xe2nă",sv:"Svenska",it:"Italiano",el:"Ελληνικά",hu:"Magyar",fi:"Suomi",da:"Dansk",no:"Norsk",fa:"فارسی"};function s(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"km"===e?"km":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":"fa"===e?"fa":o}},93921:(e,t,n)=>{"use strict";n.d(t,{MenuItem:()=>m,default:()=>p});var r=n(95155),o=n(12115),i=n(14051),a=n.n(i),l=n(31474),s=n(4650),u=n(19844),c=n(47929);let d=o.useLayoutEffect,f=e=>"string"==typeof e?.props?.label?e.props.label:e?.props?.children;function p({trigger:e,children:t,open:n,onOpenChange:i,align:a="end",className:m}){let h=(0,o.useRef)(null),g=(0,o.useRef)(null),b=(0,o.useRef)([]),v=(0,o.useRef)({session:null}),{overlayId:y}=(0,c.uf)("signal-menu"),[x,k]=(0,o.useState)(!1),[w,N]=(0,o.useState)(-1),[T,E]=(0,o.useState)(null),[C,O]=(0,o.useState)(null),j=(0,o.useCallback)(e=>{g.current=e,O(e)},[]),P="boolean"==typeof n,_=P?n:x,A=(0,o.useCallback)(e=>{P?i?.(e):k(e),e||(N(-1),v.current.session=null)},[P,i]),S=(0,o.useCallback)(()=>{let e=h.current;e&&"function"==typeof e.focus&&e.focus()},[]),R=(0,o.useCallback)(()=>A(!1),[A]),I=(0,o.useCallback)(()=>{R(),S()},[R,S]);(0,o.useEffect)(()=>{_&&C&&T&&b.current[Math.max(w,0)]?.focus?.()},[_,C,T,w]),(0,c.s9)({onClose:I,containerRef:g,enabled:_,closeOnOutside:!1}),(0,o.useEffect)(()=>{if(!_)return;let e=e=>{g.current?.contains(e.target)||h.current?.contains(e.target)||R()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[_,R]);let M=o.Children.toArray(t).filter(o.isValidElement),L=M.map(f),z=M.map(e=>!!e.props.disabled),D=(0,o.useRef)(z);D.current=z;let $=(0,o.useCallback)((e=0)=>{A(!0);let t=(0,u.oQ)(D.current,e<0?0:e);N(t<0?e:t)},[A]);d(()=>{if(!_||!C)return void E(null);let e=()=>{let e=h.current;if(!e)return;let t=e.getBoundingClientRect(),n={width:C.offsetWidth,height:C.offsetHeight},r="rtl"===getComputedStyle(e).direction,o=(0,u.Rg)(t,n,a,r);E({top:o.top,left:o.left})};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[_,C,a]);let F=e=>{if("Tab"===e.key){_&&R();return}if("ArrowDown"===e.key)e.preventDefault(),$(0);else if("ArrowUp"===e.key){e.preventDefault(),A(!0);let t=(0,u.oQ)(z,M.length-1,!0);N(t<0?M.length-1:t)}else("Enter"===e.key||" "===e.key)&&(e.preventDefault(),_?R():$(0))},K=(0,o.isValidElement)(e)?e.props["aria-label"]??e.props.label??("string"==typeof e.props.children?e.props.children:void 0):void 0,U={ref:h,"aria-haspopup":"menu","aria-expanded":_,"aria-controls":_?y:void 0,onClick:()=>{_?R():$(0)},onKeyDown:F};return(0,r.jsxs)(r.Fragment,{children:[(0,o.isValidElement)(e)?(0,o.cloneElement)(e,{...U,onClick:t=>{e.props.onClick?.(t),t.defaultPrevented||U.onClick(t)},onKeyDown:t=>{e.props.onKeyDown?.(t),t.defaultPrevented||F(t)}}):(0,r.jsx)("button",{type:"button",...U,className:"inline-flex h-11 items-center justify-center gap-2 rounded-lg border border-line bg-raised px-4 text-sm font-semibold text-text transition-colors duration-150 hover:bg-line/60 focus-visible:outline-none focus-visible:shadow-focus",children:e}),_?(0,r.jsx)(c.ZL,{children:(0,r.jsx)("div",{ref:j,id:y,role:"menu","aria-label":K,"aria-orientation":"vertical",style:T??{visibility:"hidden"},className:(0,l.cn)("signal-overlay-menu fixed z-50 w-60 overflow-hidden rounded-xl border border-line bg-panel py-1 text-text shadow-card",m),children:M.map((e,t)=>(0,o.cloneElement)(e,{key:e.key??t,ref:e=>{b.current[t]=e},tabIndex:t===Math.max(w,0)?0:-1,"data-active":t===Math.max(w,0),onKeyDown:e=>((e,t)=>{if("Tab"===e.key)return void R();if((0,s.JF)(e.key)){e.preventDefault();let n="u">typeof document&&"rtl"===document.dir,r=(0,u.jg)(t,e.key,z,s.lZ,{rtl:n});N(r),b.current[r]?.focus?.();return}if(1===e.key.length&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let n=v.current,{session:r,index:o}=(0,u.sF)(n.session,e.key,e.timeStamp,L.map(e=>String(e??"")),t,z);n.session=r,o!==t&&(N(o),b.current[o]?.focus?.())}})(e,t),onSelect:()=>{e.props.onSelect?.(),I()}}))})}):null]})}p.propTypes={trigger:a().node.isRequired,children:a().node,open:a().bool,onOpenChange:a().func,align:a().oneOf(["start","end"]),className:a().string};let m=function({icon:e,label:t,children:n,trailing:o,danger:i=!1,selected:a=!1,disabled:s=!1,onSelect:u,...c}){return(0,r.jsxs)("button",{type:"button",role:"menuitem","aria-current":a||void 0,disabled:s,onClick:e=>{s?e.preventDefault():u?.(e)},className:(0,l.cn)("flex min-h-11 w-full items-center gap-3 px-4 py-2.5 text-sm transition-colors duration-150","focus-visible:outline-none focus-visible:shadow-focus","disabled:cursor-not-allowed disabled:opacity-50",i?"text-err hover:bg-err-bg":"text-text hover:bg-raised",a&&"bg-coral-bg font-semibold text-coral-ink"),...c,children:[e?(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-muted","aria-hidden":"true",children:e}):null,(0,r.jsx)("span",{className:"min-w-0 flex-1 text-start",children:n??t}),a?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check"}):null,o?(0,r.jsx)("span",{className:"shrink-0 text-sm text-muted",children:o}):null]})};m.propTypes={icon:a().string,label:a().string,children:a().node,trailing:a().node,danger:a().bool,selected:a().bool,disabled:a().bool,onSelect:a().func}},96975:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(95155),o=n(14051),i=n.n(o),a=n(12115),l=n(7256),s=n(8247);let u={sm:{tile:"size-6 rounded-md",text:"text-[10px]"},md:{tile:"size-9 rounded-[10px]",text:"text-sm"},lg:{tile:"size-14 rounded-[14px]",text:"text-lg"}},c={ok:"bg-ok",warn:"bg-warn",err:"bg-err",info:"bg-sky",live:"bg-lime",neutral:"bg-line"};function d({providerId:e,size:t="md",status:n,brand:o,iconSrc:i,className:f}){let[p,m]=(0,a.useState)(null),h=u[t];if(!h)throw Error(`ProviderTile: unknown size "${t}"`);if(void 0!==n&&!c[n])throw Error(`ProviderTile: unknown status "${n}"`);let g=(0,l.rs)(e),b=o??(0,l.Do)(g),v=p===g?null:i??(0,s.HY)(g),y=v?{style:{backgroundColor:`color-mix(in srgb, ${b.color} 8%, #ffffff)`},className:""}:{style:{backgroundColor:b.color},className:`font-display font-bold text-white shadow-[inset_0_0_0_1px_rgba(255,255,255,0.14)] ${h.text}`};return(0,r.jsxs)("span",{"aria-hidden":"true",title:e,style:y.style,className:`relative inline-flex shrink-0 items-center justify-center ${h.tile} ${y.className}${f?` ${f}`:""}`,children:[v?(0,r.jsx)("img",{src:v,alt:"",loading:"lazy",decoding:"async",className:"size-full rounded-[inherit] object-contain",onError:()=>{(0,s.Kw)(g),m(g)}}):b.monogram,n&&(0,r.jsx)("span",{className:`absolute -end-0.5 -bottom-0.5 size-2.5 rounded-full shadow-[0_0_0_2px_var(--signal-panel)] ${c[n]}`})]})}d.propTypes={providerId:i().string.isRequired,size:i().oneOf(Object.keys(u)),status:i().oneOf(Object.keys(c)),brand:i().shape({color:i().string.isRequired,monogram:i().string.isRequired}),iconSrc:i().string,className:i().string}}},e=>{e.O(0,[1610,4808,9671,2903,2577,8441,3794,7358],()=>e(e.s=92154)),_N_E=e.O()}]);
|