tokenhop 1.0.0 → 1.0.1
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 +7 -7
- 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 +43 -43
- 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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/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 +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
- 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 +2 -2
- 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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- 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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +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 +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.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 +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/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 +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +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 +2 -2
- 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 +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- 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 +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/ui-kit.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ui-kit.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/!KGRhc2hib2FyZCk/dashboard/ui-kit/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- 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 +7 -7
- package/app/.next-cli-build/server/chunks/1152.js +1 -1
- package/app/.next-cli-build/server/chunks/1336.js +1 -1
- package/app/.next-cli-build/server/chunks/1432.js +1 -1
- package/app/.next-cli-build/server/chunks/1533.js +1 -1
- package/app/.next-cli-build/server/chunks/1764.js +1 -1
- package/app/.next-cli-build/server/chunks/1854.js +1 -0
- package/app/.next-cli-build/server/chunks/2380.js +7 -7
- 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/2592.js +1 -1
- package/app/.next-cli-build/server/chunks/318.js +10 -9
- package/app/.next-cli-build/server/chunks/3558.js +1 -1
- package/app/.next-cli-build/server/chunks/3593.js +1 -1
- package/app/.next-cli-build/server/chunks/3676.js +1 -1
- package/app/.next-cli-build/server/chunks/368.js +1 -0
- package/app/.next-cli-build/server/chunks/3919.js +1 -1
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/4037.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4125.js +1 -1
- package/app/.next-cli-build/server/chunks/4199.js +1 -1
- package/app/.next-cli-build/server/chunks/4334.js +1 -1
- package/app/.next-cli-build/server/chunks/4406.js +2 -2
- package/app/.next-cli-build/server/chunks/4521.js +1 -1
- package/app/.next-cli-build/server/chunks/4730.js +1 -1
- package/app/.next-cli-build/server/chunks/4780.js +1 -1
- package/app/.next-cli-build/server/chunks/4903.js +1 -0
- package/app/.next-cli-build/server/chunks/5055.js +1 -0
- package/app/.next-cli-build/server/chunks/5260.js +1 -0
- package/app/.next-cli-build/server/chunks/5335.js +1 -0
- package/app/.next-cli-build/server/chunks/5765.js +1 -0
- package/app/.next-cli-build/server/chunks/5827.js +1 -0
- package/app/.next-cli-build/server/chunks/6000.js +1 -0
- package/app/.next-cli-build/server/chunks/620.js +1 -0
- package/app/.next-cli-build/server/chunks/6252.js +1 -1
- package/app/.next-cli-build/server/chunks/6328.js +1 -0
- package/app/.next-cli-build/server/chunks/6403.js +1 -0
- package/app/.next-cli-build/server/chunks/6496.js +1 -1
- package/app/.next-cli-build/server/chunks/6565.js +1 -0
- package/app/.next-cli-build/server/chunks/6734.js +1 -1
- package/app/.next-cli-build/server/chunks/7211.js +1 -1
- package/app/.next-cli-build/server/chunks/7616.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/7828.js +1 -1
- package/app/.next-cli-build/server/chunks/7901.js +1 -1
- package/app/.next-cli-build/server/chunks/8171.js +1 -1
- package/app/.next-cli-build/server/chunks/8255.js +1 -1
- package/app/.next-cli-build/server/chunks/8372.js +1 -1
- package/app/.next-cli-build/server/chunks/8416.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +12 -12
- package/app/.next-cli-build/server/chunks/8988.js +1 -0
- package/app/.next-cli-build/server/chunks/9219.js +1 -0
- package/app/.next-cli-build/server/chunks/9243.js +1 -0
- package/app/.next-cli-build/server/chunks/9326.js +1 -0
- package/app/.next-cli-build/server/chunks/9343.js +1 -1
- package/app/.next-cli-build/server/chunks/9489.js +3 -0
- package/app/.next-cli-build/server/chunks/9578.js +1 -1
- package/app/.next-cli-build/server/chunks/9594.js +1 -0
- package/app/.next-cli-build/server/chunks/965.js +1 -1
- package/app/.next-cli-build/server/chunks/9899.js +1 -1
- package/app/.next-cli-build/server/instrumentation.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-145d0ed2ec3c54f5.js → 198-0c7f5eadfd257db1.js} +1 -1
- package/app/.next-cli-build/static/chunks/{3670-e7a22341025498f8.js → 3670-90f5cd325f460eb5.js} +1 -1
- package/app/.next-cli-build/static/chunks/5014-a5d960f4c6bc6297.js +1 -0
- package/app/.next-cli-build/static/chunks/{6174.18e2c57e892d721a.js → 6174.f1da2912aec81c15.js} +1 -1
- package/app/.next-cli-build/static/chunks/6448-71a8c2ac8d9ecc09.js +1 -0
- package/app/.next-cli-build/static/chunks/7899-83edd7bbf1a98c4a.js +1 -0
- package/app/.next-cli-build/static/chunks/8105-bdd81b911fed8537.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-8147ae8fa9c04381.js → page-42bfc760fbea3b96.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-9cbf62f78701882a.js → page-084fc21b1dbae00d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-5f91e148400a241b.js → page-59ee0b412f972940.js} +3 -3
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-dac4ab98fc595054.js → page-de53f51d191eec46.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-463f9fa33be9426a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-06f4e52ee3b63f82.js → page-243d3da0a2c6cbe9.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ui-kit/{page-6c982cc50b6af101.js → page-998f8c5a36dac961.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-923f864ec0be0fc8.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-dd9d1e49b2f69197.js → layout-96ebd2b46f1f8d39.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/landing/{page-02b7bfebd65c41f1.js → page-bcaea5febe1c68c0.js} +1 -1
- package/app/.next-cli-build/static/chunks/webpack-8693ccf029e9af63.js +1 -0
- package/app/custom-server.js +0 -37
- package/app/package.json +1 -1
- package/app/src/lib/db/adapters/sqljsAdapter.js +39 -4
- package/app/src/lib/oauth/services/xai.js +19 -12
- package/app/src/shared/services/quotaAutoPing.js +43 -8
- package/app/src/shared/services/quotaSnapshotPoller.js +2 -1
- package/app/src/sse/services/backgroundTokenRefresh.js +13 -1
- package/package.json +1 -1
- package/src/cli/menus/combos.js +3 -1
- package/app/.next-cli-build/server/chunks/1026.js +0 -1
- package/app/.next-cli-build/server/chunks/2384.js +0 -1
- package/app/.next-cli-build/server/chunks/3093.js +0 -1
- package/app/.next-cli-build/server/chunks/331.js +0 -1
- package/app/.next-cli-build/server/chunks/3414.js +0 -1
- package/app/.next-cli-build/server/chunks/3586.js +0 -1
- package/app/.next-cli-build/server/chunks/4278.js +0 -1
- package/app/.next-cli-build/server/chunks/6158.js +0 -1
- package/app/.next-cli-build/server/chunks/6354.js +0 -1
- package/app/.next-cli-build/server/chunks/6769.js +0 -1
- package/app/.next-cli-build/server/chunks/7261.js +0 -1
- package/app/.next-cli-build/server/chunks/8635.js +0 -3
- package/app/.next-cli-build/server/chunks/994.js +0 -1
- package/app/.next-cli-build/static/chunks/5014-a441cde708542153.js +0 -1
- package/app/.next-cli-build/static/chunks/6448-4eabf683083596e6.js +0 -1
- package/app/.next-cli-build/static/chunks/7899-e6a70cb9d3684f7f.js +0 -1
- package/app/.next-cli-build/static/chunks/8105-5c7e7c73b4bd532d.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-9fadf2c38665c20c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-7571538830147099.js +0 -1
- package/app/.next-cli-build/static/chunks/webpack-187fa25c98ba99f3.js +0 -1
- /package/app/.next-cli-build/static/{3Qm_WgU2xvFJ9U_G7SKhT → J4xdfHpBUAMOCO5dsemSj}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{3Qm_WgU2xvFJ9U_G7SKhT → J4xdfHpBUAMOCO5dsemSj}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=3649,a.ids=[3649],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},15361:(a,b,c)=>{"use strict";c.d(b,{AN:()=>d.AN,FR:()=>d.FR,MS:()=>d.MS,Mp:()=>d.Mp,fp:()=>d.fp,uN:()=>d.uN});var d=c(32174)},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},23293:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>z,handler:()=>B,routeModule:()=>A});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79409))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79346))),t=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70160))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v=(0,d.p)(()=>Promise.resolve().then(c.bind(c,55880))),w=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),x={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35447))),"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/page.js"]}]},{"global-error":[w,"next/dist/client/components/builtin/global-error.js"]},[]]},{error:[s,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/error.js"],loading:[t,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/loading.js"],"global-error":[u,"next/dist/client/components/builtin/global-error.js"],"not-found":[v,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/not-found.js"]},[]]},{layout:[n,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/home/runner/work/tokenhop/tokenhop/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,y=(0,e.H)({tree:x,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),z=y.__next_app__,A=y.routeModule,B=y.handler},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},35447:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(5735),e=c(91986),f=c(92082),g=c(86051);let h={title:"Combos"};function i(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsxs)("div",{className:"flex flex-col gap-4",role:"status","aria-label":"Loading combos",children:[(0,d.jsx)(f.CardSkeleton,{}),(0,d.jsx)(f.CardSkeleton,{})]}),children:(0,d.jsx)(g.default,{})})}},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40082:(a,b,c)=>{"use strict";c.d(b,{default:()=>af});var d=c(48249),e=c(67484),f=c(9123),g=c(19099),h=c(74812),i=c(26584),j=c(99070),k=c(62727),l=c(95145),m=c(29476),n=c(49885),o=c.n(n),p=c(83035),q=c(24279);function r({combo:a,strategy:b="fallback",strategyLabel:c,strategyVariant:e="brand",usageToday:f=0,selected:g=!1,onSelect:h}){let i=a?.models||[],j=i.slice(0,3).map((a,b)=>({key:`${a}-${b}`,short:a}));return(0,d.jsxs)("button",{type:"button",onClick:()=>h?.(a.id),"aria-pressed":g,"aria-label":`${a.name} combo, ${c||b}, ${i.length} models`,className:`flex w-full flex-col gap-2 rounded-2xl border bg-panel p-4 text-start transition-colors focus-visible:shadow-focus focus-visible:outline-none ${g?"border-coral shadow-[0_0_0_3px_var(--signal-coral-bg)]":"border-line hover:border-subtle"}`,children:[(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("code",{className:"min-w-0 flex-1 truncate font-mono text-base font-semibold text-text",children:a.name}),(0,d.jsx)(q.default,{variant:e,size:"sm",children:c||b})]}),(0,d.jsxs)("span",{className:"flex items-center",children:[j.map((a,b)=>(0,d.jsx)("span",{title:a.short,style:{zIndex:3-b,marginInlineStart:0===b?0:-6},className:"relative inline-flex rounded-md shadow-[0_0_0_2px_var(--signal-panel)]",children:(0,d.jsx)(p.default,{providerId:a.short,size:"sm"})},a.key)),(0,d.jsxs)("span",{className:"ms-3 text-xs text-muted",children:[i.length," models \xb7 ",function(a){if(!Number.isFinite(a)||a<=0)return"0 today";if(a>=1e3){let b=a/1e3;return`${b>=10||Number.isInteger(10*b)?b.toFixed(b>=10?0:1).replace(/\.0$/,""):b.toFixed(1)}k today`}return`${a} today`}(f)]})]})]})}r.propTypes={combo:o().shape({id:o().string.isRequired,name:o().string.isRequired,models:o().arrayOf(o().string)}).isRequired,strategy:o().string,strategyLabel:o().string,strategyVariant:o().oneOf(["brand","info","live","warn"]),usageToday:o().number,selected:o().bool,onSelect:o().func};var s=c(89025),t=c(15361),u=c(70296),v=c(91368),w=c(67635),x=c(51175),y=c(83552),z=c(64521);function A(a,b){return b&&Object.hasOwn(b,a)&&Number.isFinite(b[a])&&b[a]>=0?b[a]:1}function B(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?a:1}let C={static:"no quota data yet",header:"provider-reported",probe:"from the last quota probe"},D=[{id:"fallback",label:"Fallback",desc:"Try in order until one answers",icon:"low_priority"},{id:"round-robin",label:"Round robin",desc:"Rotate on every request",icon:"autorenew"},{id:"weighted",label:"Weighted",desc:"Split by weight and remaining quota",icon:"bar_chart"},{id:"fusion",label:"Fusion",desc:"Ask a panel, let a judge pick",icon:"gavel"}],E={fallback:"brand","round-robin":"info",weighted:"live",fusion:"warn"},F={fallback:`Every request starts at #1. On a rate limit, auth error or outage, ${s.Hc.slug} moves down the list without your client noticing.`,"round-robin":"Each request goes to the next model in the list, spreading load and quota evenly.",weighted:"Traffic splits by weight, then shifts away from accounts that are running low on quota.",fusion:"Every model in the panel answers in parallel. The judge reads them all and returns the best reply."};function G(a){if(null==a)return{ok:!1,error:"Enter a number"};if("string"==typeof a&&""===a.trim())return{ok:!1,error:"Enter a finite number"};let b=Number(a);return Number.isFinite(b)?b<0||b>1e3?{ok:!1,error:"Weight must be between 0 and 1000"}:{ok:!0,value:b}:{ok:!1,error:"Enter a finite number"}}let H=/^[a-zA-Z0-9_.-]+$/;function I(a){let b="string"==typeof a?a.trim():"";return b?H.test(b)?{ok:!0,value:b}:{ok:!1,error:"Only letters, numbers, -, _ and . allowed"}:{ok:!1,error:"Name is required"}}let J=["vision","audioInput"];function K(a){let b=[];for(let c of J){let d=a?.[c],e=d?.enabled!==!1,f=Array.isArray(d?.models)?d.models.filter(Boolean):[];e&&0===f.length&&b.push(c)}return b}function L({models:a=[],strategy:b="fallback",weights:c={},judge:d=""}){let e={};for(let a of Object.keys(c||{}).sort())e[a]=c[a];return{models:[...a],strategy:b,weights:e,judge:d||""}}function M(a,b){let c=b instanceof Set?b:new Set(b||[]),d={};for(let[b,e]of Object.entries(a||{}))c.has(b)&&(d[b]=e);return d}var N=c(216);function O({value:a,onChange:b}){let c=(0,e.useRef)([]),f=Math.max(0,D.findIndex(b=>b.id===a));return(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("p",{id:"combo-strategy-label",className:"text-xs font-semibold tracking-wider text-muted uppercase",children:"How should these models take turns?"}),(0,d.jsx)("div",{role:"radiogroup","aria-labelledby":"combo-strategy-label",className:"grid grid-cols-2 gap-3 xl:grid-cols-4",children:D.map((e,g)=>{let h=a===e.id;return(0,d.jsxs)("button",{ref:a=>{c.current[g]=a},type:"button",role:"radio","aria-checked":h,tabIndex:g===f?0:-1,onKeyDown:a=>((a,d)=>{if(!["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(a.key))return;a.preventDefault();let e=a.currentTarget.closest("[dir]")?.getAttribute("dir")==="rtl",f=d;f="Home"===a.key?0:"End"===a.key?D.length-1:(d+("ArrowRight"===a.key||"ArrowDown"===a.key?1:-1)*(e?-1:1)+D.length)%D.length,c.current[f]?.focus(),b?.(D[f].id)})(a,g),onClick:()=>b?.(e.id),className:`flex min-h-[108px] flex-col items-start gap-1.5 rounded-xl border bg-raised p-3.5 text-start transition-colors focus-visible:shadow-focus focus-visible:outline-none ${h?"border-coral bg-coral-bg":"border-line hover:border-subtle"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[22px] text-coral-ink","aria-hidden":"true",children:e.icon}),(0,d.jsx)("span",{className:"text-[15px] font-bold text-text",children:e.label}),(0,d.jsx)("span",{className:"text-xs leading-snug text-muted",children:e.desc})]},e.id)})}),(0,d.jsx)(N.default,{variant:"info",icon:"info",children:F[a]??F.fallback})]})}O.propTypes={value:o().string.isRequired,onChange:o().func};var P=c(56266),Q=c(27656),R=c(65181);function S({uid:a,index:b,model:c,providerLabel:e,role:f,health:g,healthVariant:h,showWeight:i,weight:j,weightDetail:k,share:l,weightError:m,onWeightChange:n,onWeightBlur:o,onRemove:r,replayState:s,replayReason:t}){let{attributes:u,listeners:v,setNodeRef:w,transform:y,transition:z,isDragging:A}=(0,P.gl)({id:a}),B={transform:Q.Ks.Transform.toString(y),transition:z,opacity:A?.4:1,zIndex:A?10:void 0},C=c.includes("/")?c.slice(0,c.indexOf("/")):c,D="attempted"===s?{variant:"info",label:"Trying…"}:"answered"===s?{variant:"live",label:"Answered"}:"failed"===s?{variant:"warn",label:`Failed — ${t||"unknown"}`}:"skipped"===s?{variant:"warn",label:`Skipped — ${t||"unknown"}`}:null;return(0,d.jsxs)("li",{style:B,ref:w,className:"flex list-none gap-3.5",children:[(0,d.jsxs)("div",{className:"flex w-8 shrink-0 flex-col items-center","aria-hidden":"true",children:[(0,d.jsx)("span",{className:"flex size-8 items-center justify-center rounded-full bg-text font-mono text-[13px] font-semibold text-bg",children:b+1}),(0,d.jsx)("span",{className:"my-1.5 w-0.5 flex-1 bg-[repeating-linear-gradient(var(--signal-subtle)_0_5px,transparent_5px_11px)]"})]}),(0,d.jsxs)("div",{className:`mb-3 flex min-w-0 flex-1 flex-col gap-3 rounded-xl border bg-raised p-3.5 sm:p-4 ${A?"border-coral shadow-card":("answered"===s?"border-lime":"attempted"===s?"border-sky":"failed"===s||"skipped"===s?"border-warn":null)||"border-line"}`,children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)(p.default,{providerId:C,size:"md"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate font-mono text-[15px] font-medium text-text",children:c}),(0,d.jsxs)("p",{className:"truncate text-xs text-muted",children:[e," \xb7 ",f]})]}),(0,d.jsx)(q.default,{variant:h,size:"sm",children:g}),D&&(0,d.jsx)(q.default,{variant:D.variant,size:"sm",className:"max-w-40 truncate",children:D.label}),(0,d.jsx)("button",{type:"button",...u,...v,"aria-label":`Reorder ${c}, position ${b+1}`,title:"Drag to reorder",className:"inline-flex size-10 shrink-0 cursor-grab touch-none items-center justify-center rounded-lg text-muted transition-colors hover:text-text focus-visible:shadow-focus focus-visible:outline-none active:cursor-grabbing",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"drag_indicator"})}),(0,d.jsx)(x.default,{icon:"close",label:`Remove ${c} from route`,onClick:r})]}),i&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 ps-12",children:[(0,d.jsx)("label",{htmlFor:`${a}-weight`,className:"shrink-0 text-xs text-muted",children:"Weight"}),(0,d.jsx)("input",{id:`${a}-weight`,type:"number",min:"0",max:"1000",step:"1",value:j,"aria-invalid":!!m||void 0,"aria-describedby":m?`${a}-weight-error`:void 0,onChange:a=>n?.(a.target.value),onBlur:()=>o?.(),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.currentTarget.blur())},className:"h-8 w-20 shrink-0 rounded-lg border border-line bg-panel px-2 text-center font-mono text-[13px] text-text outline-none focus:border-coral focus:shadow-focus"}),(0,d.jsx)(R.default,{value:l,variant:"brand",label:`Traffic share for ${c}`,valueText:0===Number(j)&&""!==j?"Fallback only":`about ${l} percent`,className:"min-w-0 flex-1"}),(0,d.jsx)("span",{className:"w-20 shrink-0 text-end font-mono text-xs text-muted",children:0===Number(j)&&""!==j?"Fallback only":`≈${l}%`}),k&&(0,d.jsx)("p",{className:"m-0 basis-full text-xs text-muted",children:k}),m&&(0,d.jsx)("span",{id:`${a}-weight-error`,role:"alert",className:"basis-full text-xs text-err",children:m})]})]})]})}S.propTypes={uid:o().string.isRequired,index:o().number.isRequired,model:o().string.isRequired,providerLabel:o().string.isRequired,role:o().string.isRequired,health:o().string.isRequired,healthVariant:o().string.isRequired,showWeight:o().bool,weight:o().oneOfType([o().string,o().number]),weightDetail:o().string,share:o().number,weightError:o().string,onWeightChange:o().func,onWeightBlur:o().func,onRemove:o().func,replayState:o().oneOf(["attempted","answered","failed","skipped"]),replayReason:o().string},c(42118);var T=c(56615);let U={served:{label:"Served"},answered:{label:"Answered"},skipped:{label:"Skipped"}};function V({comboId:a,models:b,disabled:c,onTrackStatesChange:f}){let[g,h]=(0,e.useState)(!1),[i,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[r,s]=(0,e.useState)(0),t=(0,T.Ib)(),u=Array.isArray(b)?b:[],v=(0,e.useMemo)(()=>{var a;let b,c;return a=i?.attempts,b=Array.isArray(u)?u:[],c=new Map,(Array.isArray(a)?a:[]).map(a=>{var d;let e,f="string"==typeof a?.model?a.model:"",g="string"==typeof a?.via&&b.includes(a.via)?a.via:null,h=f?(a=>{let d=c.get(a)||0;c.set(a,d+1);let e=0;for(let c=0;c<=d;c++){let f=b.indexOf(a,e);if(-1===f)break;if(c===d)return f;e=f+1}return null})(g||f):null,i="served"===(d=a?.outcome)||"answered"===d?"answered":"failed"===d?"failed":"skipped",j="answered"===i,k=j?"answered":a?.errorType??`error ${a?.status??"unknown"}`,l=!Number.isFinite(e=Number(a?.latencyMs))||e<0?"—":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,m="number"==typeof a?.status?a.status:null,n=j?`${f||"unknown model"} answered in ${l}.`:`${f||"unknown model"}: ${k} in ${l} — ${i}.`;return{index:h,model:f,state:i,tone:j?"live":"warn",reason:k,latency:l,status:m,outcome:a?.outcome,account:a?.account||null,role:a?.role,via:a?.via,text:n}})},[u,i]),w=v.length,x=async()=>{if(g||c||!a)return;h(!0),m(""),k(null),s(0);let b=new AbortController,d=setTimeout(()=>b.abort(),65e3);try{let c=await fetch(`/api/combos/${a}/test`,{method:"POST",signal:b.signal}),d=await c.json().catch(()=>({}));if(429===c.status)throw Error(d.error||"Probe rate limited — wait a few seconds and retry.");if(!c.ok)throw Error(d.error||`Probe failed (${c.status})`);k(d),o(d.ranAt||new Date().toISOString()),s(t?(d.attempts||[]).length:0)}catch(a){m(a?.name==="AbortError"?"Probe timed out — try again.":a?.message||"Probe failed")}finally{clearTimeout(d),h(!1)}},y=function(a,b=Date.now()){if(!a)return null;let c=new Date(a).getTime();if(!Number.isFinite(c))return null;let d=Math.max(0,Math.round((b-c)/1e3));if(d<10)return"Last run just now";if(d<60)return`Last run ${d}s ago`;let e=Math.floor(d/60);if(e<60)return`Last run ${e} min ago`;let f=Math.floor(e/60);return f<24?`Last run ${f}h ago`:`Last run ${Math.floor(f/24)}d ago`}(n),z=v.slice(0,t?w:r+1);return(0,d.jsxs)("section",{"aria-label":"Test this route",className:"mt-auto flex flex-col gap-3 rounded-2xl border border-line bg-bg p-[18px]",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("h3",{className:"font-display m-0 text-lg font-bold",children:"Test this route"}),y&&(0,d.jsx)("span",{className:"text-xs text-muted",children:y}),(0,d.jsx)(j.default,{size:"sm",variant:"secondary",icon:"play_arrow",onClick:x,loading:g,disabled:!a||c,"aria-describedby":c?"combo-route-test-disabled-hint":void 0,className:"ms-auto",children:"Run test"}),w>0&&!g&&!c&&!t&&(0,d.jsx)(j.default,{size:"sm",variant:"ghost",icon:"restart_alt",onClick:()=>s(0),"aria-label":"Replay the last run on the route track",children:"Replay"})]}),(0,d.jsx)("p",{className:"m-0 text-xs text-muted",children:"Uses a tiny amount of quota. Runs the real route, so it also advances rotation."}),c&&(0,d.jsx)("p",{id:"combo-route-test-disabled-hint",className:"m-0 text-xs text-warn",children:"Save the route to test it."}),l&&(0,d.jsx)("p",{role:"alert",className:"m-0 text-sm text-err",children:l}),!l&&!i&&!g&&(0,d.jsx)("p",{className:"m-0 text-[13px] text-muted",children:"Send a tiny probe through this route to watch the fallback happen."}),g&&!i&&(0,d.jsx)("p",{role:"status",className:"m-0 text-[13px] text-muted",children:"Probing route…"}),z.length>0&&(0,d.jsx)("ul",{"aria-label":"Probe steps",className:"m-0 flex list-none flex-col gap-1 p-0",children:z.map((a,b)=>{let c=!t&&b===r&&b<w,e=null!=a.status&&a.status>=200&&a.status<300;return(0,d.jsxs)("li",{className:"flex items-center gap-3 text-[13px]",children:[c?(0,d.jsxs)(q.default,{variant:"info",size:"sm",className:"min-w-10 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"progress_activity"}),(0,d.jsx)("span",{className:"sr-only",children:"Trying…"})]}):(0,d.jsx)(q.default,{variant:e?"ok":"err",size:"sm",className:"min-w-10 justify-center",children:(0,d.jsx)("span",{className:"font-mono",children:a.status??"—"})}),(0,d.jsx)(p.default,{providerId:a.model,size:"sm"}),(0,d.jsx)("span",{className:"min-w-0 truncate font-mono",children:a.model}),(0,d.jsxs)("span",{className:"truncate text-muted",children:[c?"Trying…":`${a.reason} \xb7 ${a.latency}`,a.account?` \xb7 ${a.account}`:"","panel"===a.role?" \xb7 panel":"","judge"===a.role?" \xb7 judge":"","nested"===a.role&&a.via?` \xb7 via ${a.via}`:""]}),!c&&(0,d.jsx)("span",{className:`ms-auto shrink-0 font-semibold ${"answered"===a.state?"text-lime-ink":"text-muted"}`,children:U[a.outcome]?.label??U.skipped.label})]},`${a.model}-${b}`)})}),(0,d.jsx)("p",{"aria-live":"polite",className:"sr-only m-0",children:v.slice(0,t?w:r).map(a=>a.text).join(" ")}),i?.summary&&(t||r>=w)&&(0,d.jsx)("p",{className:"m-0 border-t border-line pt-2.5 text-[13px]",children:(0,d.jsx)("strong",{children:i.summary})})]})}function W({combo:a,strategy:b,weights:c,judgeModel:f,headroom:g,headroomQuotaSource:h,savedModels:i,healthByProvider:k,providerLabelById:m,saving:n,dirty:o,emptyAdapters:p=[],onAddAdapterModel:q,saveError:r,onRename:D,onDelete:E,onSave:F,onDiscard:H,onStrategyChange:J,onWeightSave:K,onJudgeChange:L,onModelsChange:N,activeProviders:P,modelAliases:Q}){var R;let T,U,[X,Y]=(0,e.useState)(!1),[Z,$]=(0,e.useState)(a.name),[_,aa]=(0,e.useState)(""),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(!1),[ah,ai]=(0,e.useState)({}),[aj,ak]=(0,e.useState)({}),[al,am]=(0,e.useState)(""),[an,ao]=(0,e.useState)([]),ap=(0,e.useRef)([]),aq=a.models||[],ar=JSON.stringify(aq)!==JSON.stringify(i||[]),as="weighted"===b,at=(0,t.FR)((0,t.MS)(t.AN,{activationConstraint:{distance:5}}),(0,t.MS)(t.uN,{coordinateGetter:u.JR})),au=function(a,b=[]){let c=new Map;for(let a of b||[])a&&"string"==typeof a.id&&"string"==typeof a.model&&(c.has(a.model)||c.set(a.model,[]),c.get(a.model).push(a));let d=new Set;for(let a of b||[])a&&"string"==typeof a.id&&d.add(a.id);let e=0;return(a||[]).map(a=>{let b,f=c.get(a);if(f&&f.length>0)return f.shift();do e+=1,b=`step-${e}`;while(d.has(b));return d.add(b),{id:b,model:a}})}(aq,ap.current);ap.current=au;let av={};for(let{id:a,model:b}of au){let d=G(ah[a]);av[b]=d.ok?d.value:c[b]??1}let aw=as?(R=au.map(a=>a.model),U=function(a,b,c){let d=new Map,e=0;for(let g of a||[]){var f;if("string"!=typeof g||d.has(g))continue;let a=(f=c?.[g],A(g,b)*B(f));d.set(g,a),e+=a}return(a||[]).map(a=>{let b=d.get(a)??0;return e>0?Math.round(b/e*1e3)/10:0})}(T=Array.isArray(R)?R:[],av,g),T.map((a,b)=>{let c=B(g?.[a]),d=A(a,av);return{base:d,quota:c,quotaSource:h?.[a]||"static",share:U[b]??0,fallbackOnly:0===d,outOfQuota:d>0&&0==A(a,av)*B(c)}})):[],ax=()=>{let b=I(Z);b.ok?(aa(""),Y(!1),b.value!==a.name&&D?.(b.value)):aa(b.error)};return(0,d.jsxs)("section",{"aria-label":`Edit combo ${a.name}`,className:"flex min-w-0 flex-1 flex-col gap-5 rounded-[20px] border border-line bg-panel p-5 shadow-card sm:p-7",children:[(0,d.jsx)("span",{"aria-live":"polite",className:"sr-only",children:al}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,d.jsx)("div",{className:"flex shrink-0 flex-col gap-1",children:X?(0,d.jsxs)("div",{className:"flex max-w-sm flex-col gap-1",children:[(0,d.jsx)(y.default,{value:Z,onChange:a=>{if($(a.target.value),a.target.value){let b=I(a.target.value);aa(b.ok?"":b.error)}else aa("")},onKeyDown:b=>{"Enter"===b.key&&ax(),"Escape"===b.key&&(b.preventDefault(),$(a.name),aa(""),Y(!1))},"aria-label":"Combo name",error:_,autoFocus:!0}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.default,{size:"sm",variant:"secondary",onClick:ax,disabled:!!_||!Z.trim(),children:"Apply"}),(0,d.jsx)(j.default,{size:"sm",variant:"ghost",onClick:()=>{$(a.name),aa(""),Y(!1)},children:"Cancel"})]})]}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-xs font-semibold tracking-wider text-muted uppercase",children:"Combo"}),(0,d.jsx)(x.default,{icon:"edit",label:`Rename combo ${a.name}`,onClick:()=>{$(a.name),aa(""),Y(!0)},className:"size-8 rounded-md"})]})}),(0,d.jsx)(w.default,{value:`"model": "${a.name}"`,copyValue:a.name,label:"Copy combo model name",className:"w-full min-w-0 sm:w-auto sm:min-w-52 sm:flex-1"}),(0,d.jsxs)("div",{className:"ms-auto flex flex-wrap items-center gap-2",children:[(0,d.jsx)(j.default,{variant:"danger",icon:"delete",onClick:()=>ac(!0),children:"Delete"}),(0,d.jsx)(j.default,{variant:"secondary",icon:"undo",disabled:!o||n,onClick:()=>{ai({}),ak({}),H?.()},children:"Discard"}),(0,d.jsx)(j.default,{variant:"primary",icon:"save",loading:n,disabled:!o||n,onClick:F,children:"Save"})]})]}),(0,d.jsxs)("p",{"aria-live":"polite",className:`-mt-2 flex items-center gap-2 text-xs font-medium ${o?"text-warn":"text-muted"}`,children:[(0,d.jsx)("span",{"aria-hidden":"true",className:`size-2 rounded-full ${o?"bg-warn":"bg-subtle"}`}),o?"Unsaved changes":"No changes"]}),r&&(0,d.jsx)("p",{role:"alert",className:"text-sm text-err",children:r}),p.length>0&&(0,d.jsxs)("p",{role:"status",className:"rounded-xl border border-warn bg-warn-bg p-3 text-sm text-warn",children:[p.map(a=>"vision"===a?"Vision":"Audio").join(" and ")," ",`adapter on, but no models. ${s.Hc.slug} tries oc/mimo-v2.5-free; if it can't handle the request, the original route may reject the media.`," ",(0,d.jsx)("button",{type:"button",className:"font-semibold underline underline-offset-2 focus-visible:shadow-focus focus-visible:outline-none",onClick:()=>q?.(p[0]),children:"Add model"})]}),(0,d.jsx)(O,{value:b,onChange:J}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("p",{className:"mb-3 text-xs font-semibold tracking-wider text-muted uppercase",children:"The route"}),0===aq.length?(0,d.jsx)("p",{className:"rounded-xl border border-dashed border-line p-6 text-center text-sm text-muted",children:"No models in this route yet. Add one below."}):(0,d.jsx)(t.Mp,{sensors:at,collisionDetection:t.fp,onDragEnd:a=>{let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=au.findIndex(a=>a.id===b.id),e=au.findIndex(a=>a.id===c.id);if(-1===d||-1===e)return;let f=au[d],g=(0,u.be)(au,d,e).map(a=>a.model);ap.current=(0,u.be)(au,d,e),N?.(g),am(`Moved ${f.model} to position ${e+1} of ${au.length}`)},modifiers:[v.FN,v.gj],children:(0,d.jsx)(u.gB,{items:au.map(a=>a.id),strategy:u._G,children:(0,d.jsx)("ol",{className:"m-0 list-none p-0",children:au.map(({id:a,model:e},f)=>{let g=e.includes("/")?e.slice(0,e.indexOf("/")):e,h=k?.[g]||{label:"No data",variant:"neutral"},i=aw[f],j=an[f];return(0,d.jsx)(S,{uid:a,index:f,model:e,providerLabel:m?.[g]||g,role:"round-robin"===b?"In rotation":"weighted"===b?"Weighted":"fusion"===b?"Panelist":0===f?"Primary":"Backup",health:h.label,healthVariant:h.variant,showWeight:as,weight:ah[a]??String(c[e]??1),weightDetail:i?function(a){if(!a)return null;let b=C[a.quotaSource]||C.static;if(a.fallbackOnly)return"Weight 0 — fallback only: no traffic until the others fail.";if(a.outOfQuota)return`No quota left (${b}) — paused until quota resets.`;let c=Math.round(100*a.quota);return`Weight ${a.base} \xd7 ${c}% quota left (${b}) → about ${a.share}% of traffic.`}(i):void 0,share:i?.share??0,replayState:j?.state,replayReason:j?.reason,weightError:aj[a],onWeightChange:b=>{ai(c=>({...c,[a]:b})),ak(b=>{let{[a]:c,...d}=b;return d});let c=G(b);c.ok&&void 0!==e&&K?.(e,c.value)},onWeightBlur:()=>(a=>{if(!(a in ah))return;let b=au.find(b=>b.id===a)?.model,d=()=>ai(b=>{let{[a]:c,...d}=b;return d}),e=G(ah[a]);if(!e.ok)return void ak(b=>({...b,[a]:e.error}));if(void 0!==b&&e.value===(c[b]??1)){d(),ak(b=>{let{[a]:c,...d}=b;return d});return}ak(b=>{let{[a]:c,...d}=b;return d}),d(),void 0!==b&&K?.(b,e.value)})(a),onRemove:()=>{let b=new Set(au.map(a=>a.id).filter(b=>b!==a));ai(a=>M(a,b)),ak(a=>M(a,b)),N?.(aq.filter((a,b)=>b!==f))}},a)})})})}),(0,d.jsxs)("div",{className:"flex gap-3.5",children:[(0,d.jsx)("div",{className:"flex w-8 shrink-0 justify-center","aria-hidden":"true",children:(0,d.jsx)("span",{className:"size-7 rounded-full border-2 border-dashed border-subtle"})}),(0,d.jsx)(j.default,{variant:"ghost",icon:"add",onClick:()=>ae(!0),className:"flex-1 justify-start border-dashed text-muted",children:"Add a model to this route"})]}),"fusion"===b&&(0,d.jsxs)("div",{className:"mt-3.5 ms-11 flex items-center gap-3 rounded-xl border border-coral bg-coral-bg p-3.5 sm:p-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[20px] text-coral-ink","aria-hidden":"true",children:"gavel"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"text-sm font-semibold text-text",children:["Judge \xb7"," ",(0,d.jsx)("code",{className:"font-mono",children:f||`Auto — ${aq[0]||"first model"}`})]}),(0,d.jsx)("p",{className:"text-xs text-muted",children:"Reads every panel answer and returns the best one"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[f&&(0,d.jsx)(j.default,{size:"sm",variant:"ghost",onClick:()=>L?.(""),"aria-label":"Reset judge to Auto",children:"Reset to Auto"}),(0,d.jsx)(j.default,{size:"sm",variant:"secondary",onClick:()=>ag(!0),children:"Change"})]})]})]}),ad&&(0,d.jsx)(z.default,{isOpen:ad,onClose:()=>ae(!1),onSelect:a=>{a?.value&&!aq.includes(a.value)&&N?.([...aq,a.value])},onDeselect:a=>{a?.value&&N?.(aq.filter(b=>b!==a.value))},activeProviders:P,modelAliases:Q,title:"Add model to route",addedModelValues:aq,closeOnSelect:!1}),af&&(0,d.jsx)(z.default,{isOpen:af,onClose:()=>ag(!1),onSelect:a=>{L?.(a?.value||""),ag(!1)},activeProviders:P,modelAliases:Q,title:"Select judge model",addedModelValues:f?[f]:[],closeOnSelect:!0}),(0,d.jsx)(l.ConfirmDialog,{isOpen:ab,onClose:()=>ac(!1),onConfirm:()=>{ac(!1),E?.()},title:"Delete combo",message:`Delete combo "${a.name}"? This cannot be undone.`,confirmText:"Delete",variant:"danger"}),(0,d.jsx)(V,{comboId:a.id,models:aq,disabled:ar,onTrackStatesChange:ao},aq.join("\n"))]})}V.propTypes={comboId:o().string,models:o().arrayOf(o().string),disabled:o().bool,onTrackStatesChange:o().func},W.propTypes={combo:o().shape({id:o().string.isRequired,name:o().string.isRequired,models:o().arrayOf(o().string)}).isRequired,strategy:o().string.isRequired,weights:o().object,judgeModel:o().string,headroom:o().objectOf(o().number),headroomQuotaSource:o().objectOf(o().string),savedModels:o().arrayOf(o().string),healthByProvider:o().object,providerLabelById:o().object,saving:o().bool,dirty:o().bool,emptyAdapters:o().arrayOf(o().string),onAddAdapterModel:o().func,saveError:o().string,onRename:o().func,onDelete:o().func,onSave:o().func,onDiscard:o().func,onStrategyChange:o().func,onWeightSave:o().func,onJudgeChange:o().func,onModelsChange:o().func,activeProviders:o().array,modelAliases:o().object};var X=c(95514),Y=c(38930);let Z=[{key:"vision",label:"Vision adapter",short:"Vision",icon:"visibility",desc:"Text-only models get eyes: images are described by a vision model before the request goes out."},{key:"audioInput",label:"Audio adapter",short:"Audio",icon:"graphic_eq",desc:"Text-only models get ears: audio clips are transcribed by an audio model before the request goes out."}];function $({capacityAdapter:a={},activeCapForModal:b,onActiveCapChange:c,onChange:e,activeProviders:f=[],getCaps:g}){let h=K(a),i=(b,c)=>{let d={...a[b]||{enabled:!0,roundRobin:!1,models:[]},...c};e?.({...a,[b]:d})},k=(b,c,d)=>{let e=a[b]||{enabled:!0,roundRobin:!1,models:[]},f=Array.isArray(e.models)?[...e.models]:[],g=c+d;g<0||g>=f.length||([f[c],f[g]]=[f[g],f[c]],i(b,{models:f}))},l=Z.find(a=>a.key===b);return(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[Z.map(b=>{let e=a[b.key]||{enabled:!0,roundRobin:!1,models:[]},f=!1!==e.enabled,l=!!e.roundRobin,m=Array.isArray(e.models)?e.models:[];return(0,d.jsxs)("section",{"aria-label":b.label,className:`flex flex-col gap-3 rounded-2xl border border-dashed border-line bg-panel p-4 transition-opacity ${f?"opacity-100":"opacity-60"}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-lg bg-sky-bg text-sky","aria-hidden":"true",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:b.icon})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 font-display text-sm font-semibold text-text",children:b.label}),(0,d.jsx)(X.default,{size:"sm",checked:f,onChange:a=>i(b.key,{enabled:a}),"aria-label":`${b.label} enabled`})]}),(0,d.jsx)("p",{className:"text-xs text-muted leading-relaxed",children:b.desc}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 pt-1 border-t border-line/60",children:[(0,d.jsx)("span",{className:"flex items-center gap-2 text-xs text-muted",children:(0,d.jsx)(X.default,{size:"sm",checked:l,disabled:!f,onChange:a=>i(b.key,{roundRobin:a}),label:"Round robin"})}),(0,d.jsx)(j.default,{variant:"secondary",size:"sm",icon:"add",disabled:!f,onClick:()=>c?.(b.key),className:"h-8 border-dashed px-2.5 text-xs",children:"Add model"})]}),h.includes(b.key)&&(0,d.jsxs)("p",{role:"status",className:"rounded-xl border border-warn bg-warn-bg p-3 text-xs text-warn",children:[`On, but no models. ${s.Hc.slug} tries oc/mimo-v2.5-free; if it can't handle the request, the original route may reject the media.`," ",(0,d.jsx)("button",{type:"button",onClick:()=>c?.(b.key),className:"font-semibold underline underline-offset-2 focus-visible:shadow-focus focus-visible:outline-none",children:"Add model"})]}),m.length>0?(0,d.jsx)("ul",{"aria-label":`${b.label} model pool`,className:"flex flex-col gap-1.5 pt-1",children:m.map((c,e)=>(0,d.jsxs)("li",{className:"group/chip flex min-w-0 items-center gap-1 rounded-md border border-line bg-raised ps-2 pe-1 py-0.5 font-mono text-xs text-text [&>*:not(:first-child)]:shrink-0",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",title:c,children:c}),(0,d.jsx)(Y.default,{caps:g?.(c)}),(0,d.jsx)("button",{type:"button",disabled:!f||0===e,onClick:()=>k(b.key,e,-1),"aria-label":`Move ${c} up`,title:"Move up",className:"p-0.5 text-muted hover:text-coral disabled:opacity-20",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"arrow_upward"})}),(0,d.jsx)("button",{type:"button",disabled:!f||e===m.length-1,onClick:()=>k(b.key,e,1),"aria-label":`Move ${c} down`,title:"Move down",className:"p-0.5 text-muted hover:text-coral disabled:opacity-20",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"arrow_downward"})}),(0,d.jsx)("button",{type:"button",disabled:!f,onClick:()=>{var c;let d;return c=b.key,d=a[c]||{enabled:!0,roundRobin:!1,models:[]},void i(c,{models:(Array.isArray(d.models)?d.models:[]).filter((a,b)=>b!==e)})},"aria-label":`Remove ${c} from ${b.label}`,title:"Remove",className:"p-0.5 text-muted hover:text-err disabled:opacity-20",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"close"})})]},`${c}-${e}`))}):(0,d.jsx)("span",{className:"text-xs italic text-muted",children:"No models in pool"})]},b.key)}),b&&l&&(0,d.jsx)(z.default,{isOpen:!0,onClose:()=>c?.(null),onSelect:c=>((b,c)=>{if(!c?.value)return;let d=a[b]||{enabled:!0,roundRobin:!1,models:[]},e=Array.isArray(d.models)?d.models:[];e.includes(c.value)||i(b,{models:[...e,c.value]})})(b,c),activeProviders:f,title:`Add ${l.short} Model`,capFilter:l.key,addedModelValues:a[b]?.models||[],closeOnSelect:!1})]})}async function _({putModels:a,patchStrategy:b,onModelsCommitted:c,onSaved:d}){let e=await a();return c?.(e),await b(),d?.(e),e}$.propTypes={capacityAdapter:o().object,activeCapForModal:o().string,onActiveCapChange:o().func,onChange:o().func.isRequired,activeProviders:o().array,getCaps:o().func};var aa=c(19415);let ab={enabled:!0,roundRobin:!1,models:[]};function ac(a,b,c="replace"){let d,e,f,g,h,i=`${window.location.search}${window.location.hash}`,j=(f=new URLSearchParams(-1===(e=(d=i||"").indexOf("#"))?d:d.slice(0,e)),g=-1===e?"":d.slice(e),void 0!==b.combo&&(b.combo?f.set("combo",b.combo):f.delete("combo")),void 0!==b.create&&(b.create?f.set("create","1"):f.delete("create")),h=f.toString(),`${h?`/dashboard/combos?${h}`:"/dashboard/combos"}${g}`);j!==`${window.location.pathname}${i}`&&("push"===c?a.push(j,{scroll:!1}):a.replace(j,{scroll:!1}))}function ad(a,b,c){let d=Array.isArray(b)?b:[];return a&&d.some(b=>b.id===a)?a:c&&d.some(a=>a.id===c)?c:d[0]?.id||null}function ae(a,b){return a?.[b]?.fallbackStrategy||"fallback"}function af(){var a;let[b,c]=(0,e.useState)([]),[n,o]=(0,e.useState)(!0),[p,q]=(0,e.useState)(""),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)([]),[y,z]=(0,e.useState)({}),[A,B]=(0,e.useState)({vision:{...ab},audioInput:{...ab}}),[C,F]=(0,e.useState)({}),[G,H]=(0,e.useState)({}),[I,M]=(0,e.useState)(null),[N,O]=(0,e.useState)("fallback"),[P,Q]=(0,e.useState)({}),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)({}),[V,X]=(0,e.useState)({}),[Y,Z]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(""),[ah,ai]=(0,e.useState)(""),[aj,ak]=(0,e.useState)(null),[al,am]=(0,e.useState)(""),[an,ao]=(0,e.useState)(null),{getCaps:ap}=(0,m.y)(),aq=(0,e.useRef)(y),ar=(0,e.useRef)(Promise.resolve()),as=(0,e.useRef)(0),at=(0,e.useRef)(null),au=(0,g.useSearchParams)(),av=(0,g.useRouter)(),aw=au?.toString()??"",ax=(a,b)=>ac(av,{combo:a},b),ay=new URLSearchParams(aw||"").get("combo")||null;new URLSearchParams(aw||"").get("create");let az=b.some(a=>a.id===ay)?ay:null;(0,e.useRef)(ax).current=ax;let aA=(0,e.useRef)(az||u);az&&(aA.current=az);let aB=ad(null,b,aA.current??u),[aC,aD]=(0,e.useState)(null),aE=aC&&b.some(a=>a.id===aC)?aC:az||aB,aF=(0,e.useRef)(null),aG=(0,e.useRef)(!1),aH=(0,e.useRef)(null),aI=a=>{a!==aE&&aQ.requestNavigation(()=>{aH.current=a,at.current=a,as.current+=1,aD(a),v(a),ax(a,"push")})},aJ=()=>aQ.requestNavigation(()=>{t(!0),ac(av,{create:!0})}),aK=(0,e.useCallback)(async()=>{q("");try{let[b,d,e,f,g]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings"),fetch("/api/usage/stats?period=today"),fetch("/api/models/alias")]);if(!b.ok)throw Error(`combos ${b.status}`);let h=await b.json(),i=d.ok?await d.json():{},j=e.ok?await e.json():{},k=f.ok?await f.json():{},l=g.ok?await g.json():{},m=(h.combos||[]).filter(a=>!a.kind||"llm"===a.kind);c(m),v(a=>ad(null,m,a)),x(i.connections||[]),z(j.comboStrategies||{});let n=j.capacityAdapter||{},o={};for(let b of J){var a;o[b]=(a=n[b],Array.isArray(a)?{enabled:!0,roundRobin:!1,models:a.map(a=>a?.model||a).filter(Boolean)}:a&&"object"==typeof a?{enabled:!1!==a.enabled,roundRobin:!!a.roundRobin,models:Array.isArray(a.models)?a.models.filter(Boolean):[]}:{...ab})}B(o);let p=k.byModel||{},q={};for(let a of m)q[a.id]=function(a,b){if(!b||"object"!=typeof b)return 0;let c="string"==typeof a?a:a?.name,d=Array.isArray(a?.models)?a.models:[],e=0;for(let[a,f]of Object.entries(b)){let b=f?.rawModel||String(a).split(" (")[0];if(b===c)e+=f?.requests||0;else if(d.length>0)for(let a of d){let c=a.includes("/")?a.slice(a.indexOf("/")+1):a;if(b===a||b===c){e+=f?.requests||0;break}}}return e}(a,p);F(q),H(l.aliases||{})}catch(a){q(a?.message||"Failed to load combos")}finally{o(!1)}},[]),aL=b.find(a=>a.id===aE)||null,aM=aL?ae(y,aL.name):"fallback",aN=null!=aL&&null!=I?L({models:I,strategy:N,weights:P,judge:R}):null,aO=null!=aL?L({models:aL.models||[],strategy:aM,weights:y[aL.name]?.weights||{},judge:y[aL.name]?.judgeModel||""}):null,aP=!!aN&&JSON.stringify((a={saved:aO,draft:aN}).saved)!==JSON.stringify(a.draft),aQ=function(a,b){(0,g.useRouter)();let[c,d]=(0,e.useState)(null),f=(0,e.useRef)(a);f.current=a;let h=(0,e.useRef)(b);h.current=b,(0,e.useRef)(!1);let i=(0,e.useRef)({armed:!1,pendingForward:null});(0,e.useRef)(!1),(0,e.useRef)(()=>window.setTimeout(()=>window.history.back(),0));let j=a=>{f.current?d(()=>a):a()},k=(0,e.useCallback)(a=>(function(a,b,c){if(a.pendingForward){a.pendingForward=c;return}a.armed?(a.armed=!1,a.pendingForward=c,b()):c()})(i.current,()=>window.history.back(),a),[]);return{request:j,requestNavigation:(a,b)=>{if(!b||i.current.pendingForward||new URL(b,window.location.href).href!==window.location.href){var c;c=f.current,c?j(()=>{(()=>h.current?.())(),(()=>k(a))()}):(()=>k(a))()}},pending:!!c,confirm:()=>{d(null),c?.()},cancel:()=>d(null)}}(aP,()=>{aL&&(aG.current=!1,aT.current=aL.id,aU(aL,aq.current))});aF.current=aQ;let{registerRouteGuard:aR}=(0,aa.useCommandPalette)()||{};aG.current=aP;let aS=K(A),aT=(0,e.useRef)(null),aU=(a,b)=>{(as.current+=1,a)?(M(a.models||[]),O(ae(b,a.name)),Q(b[a.name]?.weights||{}),S(b[a.name]?.judgeModel||""),ag("")):M(null)};at.current=aE,aL?.id;let aV=async a=>{B(a),ai("");try{let b=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({capacityAdapter:a})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||`adapter save failed (${b.status})`)}}catch(a){B(A),ai(a?.message||"Failed to save adapter")}},aW=async a=>{let b=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create combo");let c=await b.json().catch(()=>null);await aK(),(0,f.q0)(),t(!1),c?.id?(v(c.id),ac(av,{combo:c.id,create:!1},"push")):ac(av,{create:!1})},aX=aL&&y[aL.name]||{},aY=function(a){let b={};for(let c of a||[])b[c.provider]||(b[c.provider]=[]),b[c.provider].push(c);let c={};for(let[a,d]of Object.entries(b)){let b=a=>{let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"},e=d.map(b);if(d.length>0&&d.every(a=>!1===a.isActive))c[a]={label:"Paused",variant:"neutral"};else if(e.some(a=>"active"===a||"success"===a))c[a]={label:"Healthy",variant:"ok"};else if(e.some(a=>"error"===a||"expired"===a||"unavailable"===a)){let e=function(a){if(!a)return null;if("upstream_rate_limited"===a.lastErrorType)return"429";if("upstream_unavailable"===a.lastErrorType)return"5XX";if("upstream_auth_error"===a.lastErrorType||"auth_missing"===a.lastErrorType||"token_refresh_failed"===a.lastErrorType||"token_expired"===a.lastErrorType)return"Auth error";let b=Number(a.errorCode);return Number.isFinite(b)&&b>=400?String(b):"Error"}(d.find(a=>"error"===b(a)||"expired"===b(a)||"unavailable"===b(a)));c[a]={label:e||"Error",variant:"err"}}else c[a]={label:"No data",variant:"neutral"}}return c}(w),aZ=function(a){let b={};for(let c of a||[])c.provider&&!b[c.provider]&&(b[c.provider]=c.name||c.provider);return b}(w),a$=async()=>{if(!aL||Y)return;let a=aL.id,b=aL.name,d=as.current,e=[...I||[]],f={fallbackStrategy:N};"weighted"===N&&(f.weights={...P}),"fusion"===N&&R&&(f.judgeModel=R),"fusion"===N&&!R&&aX.judgeModel&&(f.judgeModel=""),Z(!0),ag(""),am("");try{await _({putModels:async()=>{let b=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({models:e})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||"Failed to save route")}let c=await b.json().catch(()=>null);return{id:c?.id||a,models:c?.models||e}},patchStrategy:async()=>{let a,c=await (a=ar.current.then(async()=>{let a=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategyPatch:{name:b,patch:f}})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||`Save failed (${a.status})`);let c=aq.current[b]||{},d={...c,...f};f.weights&&(d.weights={...c.weights,...f.weights});let e={...aq.current};return d.fallbackStrategy&&"fallback"!==d.fallbackStrategy?e[b]=d:delete e[b],aq.current=e,z(e),{ok:!0}}).catch(a=>({ok:!1,error:a?.message||"Save failed — network error"})),ar.current=a,a);if(!c?.ok)throw Error(c?.error||"Failed to save strategy")},onModelsCommitted:a=>{a?.id&&c(b=>(b||[]).map(b=>b.id===a.id?{...b,models:[...a.models||[]]}:b))},onSaved:c=>{var e,f;e=at.current,f=as.current,a===e&&d===f&&(aT.current=a,aU({id:a,name:b,models:c.models},aq.current)),at.current===a&&am("Saved")}})}catch(b){at.current===a&&(am("Couldn't save"),ag(b?.message||"Failed to save"))}finally{Z(!1)}},a_=async a=>{if(aL&&a!==aL.name){Z(!0),ag("");try{let b=await fetch(`/api/combos/${aL.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||"Failed to rename combo")}await aK()}catch(a){ag(a?.message||"Failed to rename")}finally{Z(!1)}}};return n?(0,d.jsxs)("div",{className:"flex flex-col gap-4",role:"status","aria-label":"Loading combos",children:[(0,d.jsx)(h.CardSkeleton,{}),(0,d.jsx)(h.CardSkeleton,{})]}):p&&0===b.length?(0,d.jsx)(i.default,{icon:"error",title:"Couldn't load combos",body:p,action:(0,d.jsx)(j.default,{icon:"refresh",onClick:()=>{o(!0),aK()},children:"Retry"})}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,d.jsx)("span",{"aria-live":"polite",className:"sr-only",children:al}),0===b.length?(0,d.jsx)(i.default,{icon:"layers",title:"No combos yet",body:"Create model combos with fallback support.",action:(0,d.jsx)(j.default,{icon:"add",onClick:aJ,children:"New combo"})}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 lg:flex-row lg:items-start",children:[(0,d.jsxs)("div",{className:"flex w-full min-w-0 shrink-0 flex-col gap-3 lg:w-80",children:[(0,d.jsx)(j.default,{variant:"secondary",icon:"add",fullWidth:!0,onClick:aJ,children:"New combo"}),(0,d.jsx)("ul",{"aria-label":"Combos",className:"m-0 flex list-none flex-col gap-3 p-0",children:b.map(a=>{let b=ae(y,a.name);return(0,d.jsx)("li",{children:(0,d.jsx)(r,{combo:a,strategy:b,strategyLabel:D.find(a=>a.id===b)?.label||"Fallback",strategyVariant:E[b]||"brand",usageToday:C[a.id]||0,selected:a.id===aE,onSelect:aI})},a.id)})}),aS.length>0&&(0,d.jsxs)("p",{role:"status",className:"text-xs text-warn",children:["Capability adapter on, empty pool:"," ",aS.map(a=>"vision"===a?"vision":"audio").join(", "),". Pick a pool below to add a model."]}),(0,d.jsxs)("section",{"aria-label":"Capability adapter",className:"flex flex-col gap-3",children:[(0,d.jsx)("h2",{className:"text-xs font-semibold tracking-wider text-muted uppercase",children:"Capability adapter"}),(0,d.jsx)($,{capacityAdapter:A,activeCapForModal:aj,onActiveCapChange:ak,onChange:aV,activeProviders:w,getCaps:ap}),ah&&(0,d.jsx)("p",{role:"alert",className:"text-xs text-err",children:ah})]})]}),aL&&null!==I&&(0,d.jsx)(W,{combo:{...aL,models:I},strategy:N,weights:P,judgeModel:R,headroom:T,headroomQuotaSource:V,savedModels:aL.models||[],healthByProvider:aY,providerLabelById:aZ,saving:Y,dirty:aP,emptyAdapters:aS,onAddAdapterModel:ak,saveError:af,onRename:a_,onDelete:()=>{if(!aL)return;let{id:a,name:d}=aL;ao({title:"Delete combo",message:`Delete combo "${d}"? This cannot be undone.`,onConfirm:async()=>{ao(null);try{let e=await fetch(`/api/combos/${a}`,{method:"DELETE"});if(!e.ok)throw Error(`delete ${e.status}`);z(a=>{if(!Object.hasOwn(a,d))return a;let b={...a};return delete b[d],aq.current=b,b});let g=b.filter(b=>b.id!==a),h=ad(null,g,u===a?null:u);aE===a&&ax(h,"replace"),c(g),v(h),(0,f.q0)()}catch(a){ag(a?.message||"Failed to delete combo")}}})},onSave:a$,onDiscard:()=>aU(aL,aq.current),onStrategyChange:a=>{as.current+=1,O(a),ag("")},onWeightSave:(a,b)=>{as.current+=1,Q(c=>({...c,[a]:b})),ag("")},onJudgeChange:a=>{as.current+=1,S(a),ag("")},onModelsChange:a=>{as.current+=1,M(a),ag("")},activeProviders:w,modelAliases:G},aL.id)]}),s&&(0,d.jsx)(k.default,{isOpen:s,onClose:()=>{t(!1),ac(av,{create:!1})},onSave:aW,activeProviders:w},"create"),(0,d.jsx)(l.ConfirmDialog,{isOpen:aQ.pending,onClose:aQ.cancel,onConfirm:aQ.confirm,title:"Discard unsaved changes?",message:"This combo has route changes that aren't saved. Leave without saving them?",confirmText:"Discard changes",cancelText:"Keep editing"}),(0,d.jsx)(l.ConfirmModal,{isOpen:!!an,onClose:()=>ao(null),onConfirm:an?.onConfirm,title:an?.title||"Confirm",message:an?.message,variant:"danger"})]})}},40610:a=>{"use strict";a.exports=require("node:dns")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46193:a=>{"use strict";a.exports=require("node:string_decoder")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},56266:(a,b,c)=>{"use strict";c.d(b,{gl:()=>d.gl});var d=c(70296)},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},59106:(a,b,c)=>{Promise.resolve().then(c.bind(c,86051)),Promise.resolve().then(c.bind(c,18200)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,690)),Promise.resolve().then(c.bind(c,4996)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,52734)),Promise.resolve().then(c.bind(c,33811)),Promise.resolve().then(c.bind(c,71189)),Promise.resolve().then(c.bind(c,20493)),Promise.resolve().then(c.bind(c,46516)),Promise.resolve().then(c.bind(c,19489)),Promise.resolve().then(c.bind(c,62870)),Promise.resolve().then(c.bind(c,98337)),Promise.resolve().then(c.bind(c,92231)),Promise.resolve().then(c.bind(c,66020)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,24069)),Promise.resolve().then(c.bind(c,70139)),Promise.resolve().then(c.bind(c,41970)),Promise.resolve().then(c.bind(c,55826)),Promise.resolve().then(c.bind(c,28956)),Promise.resolve().then(c.bind(c,64148)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,29354)),Promise.resolve().then(c.bind(c,8229)),Promise.resolve().then(c.bind(c,80342)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,34465)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,45205)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,962)),Promise.resolve().then(c.bind(c,32583)),Promise.resolve().then(c.bind(c,66915)),Promise.resolve().then(c.bind(c,10079)),Promise.resolve().then(c.bind(c,99069)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,5843)),Promise.resolve().then(c.bind(c,10524)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,92252)),Promise.resolve().then(c.bind(c,78903)),Promise.resolve().then(c.bind(c,81923)),Promise.resolve().then(c.bind(c,14321)),Promise.resolve().then(c.bind(c,52819)),Promise.resolve().then(c.bind(c,13607)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,44020)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,66285)),Promise.resolve().then(c.bind(c,32537)),Promise.resolve().then(c.bind(c,11741)),Promise.resolve().then(c.bind(c,50650)),Promise.resolve().then(c.bind(c,8653)),Promise.resolve().then(c.bind(c,83960)),Promise.resolve().then(c.bind(c,26252)),Promise.resolve().then(c.bind(c,65298)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,637)),Promise.resolve().then(c.bind(c,18421)),Promise.resolve().then(c.bind(c,8604)),Promise.resolve().then(c.bind(c,18060))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77258:(a,b,c)=>{Promise.resolve().then(c.bind(c,40082)),Promise.resolve().then(c.bind(c,67738)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,216)),Promise.resolve().then(c.bind(c,38930)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,28304)),Promise.resolve().then(c.bind(c,54510)),Promise.resolve().then(c.bind(c,54579)),Promise.resolve().then(c.bind(c,62727)),Promise.resolve().then(c.bind(c,36882)),Promise.resolve().then(c.bind(c,19415)),Promise.resolve().then(c.bind(c,38120)),Promise.resolve().then(c.bind(c,67635)),Promise.resolve().then(c.bind(c,41489)),Promise.resolve().then(c.bind(c,516)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,40435)),Promise.resolve().then(c.bind(c,94248)),Promise.resolve().then(c.bind(c,26584)),Promise.resolve().then(c.bind(c,27444)),Promise.resolve().then(c.bind(c,37661)),Promise.resolve().then(c.bind(c,43182)),Promise.resolve().then(c.bind(c,59285)),Promise.resolve().then(c.bind(c,3236)),Promise.resolve().then(c.bind(c,51175)),Promise.resolve().then(c.bind(c,79488)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,21951)),Promise.resolve().then(c.bind(c,939)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,267)),Promise.resolve().then(c.bind(c,27737)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,20084)),Promise.resolve().then(c.bind(c,63069)),Promise.resolve().then(c.bind(c,65181)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,6011)),Promise.resolve().then(c.bind(c,64521)),Promise.resolve().then(c.bind(c,50585)),Promise.resolve().then(c.bind(c,69814)),Promise.resolve().then(c.bind(c,97968)),Promise.resolve().then(c.bind(c,87366)),Promise.resolve().then(c.bind(c,65365)),Promise.resolve().then(c.bind(c,11633)),Promise.resolve().then(c.bind(c,83035)),Promise.resolve().then(c.bind(c,83521)),Promise.resolve().then(c.bind(c,78197)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,31023)),Promise.resolve().then(c.bind(c,1582)),Promise.resolve().then(c.bind(c,42196)),Promise.resolve().then(c.bind(c,75379)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,73655)),Promise.resolve().then(c.bind(c,47392)),Promise.resolve().then(c.bind(c,24279)),Promise.resolve().then(c.bind(c,25994)),Promise.resolve().then(c.bind(c,50366)),Promise.resolve().then(c.bind(c,44928)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,33597)),Promise.resolve().then(c.bind(c,32971)),Promise.resolve().then(c.bind(c,3090)),Promise.resolve().then(c.bind(c,24622))},77598:a=>{"use strict";a.exports=require("node:crypto")},77602:(a,b,c)=>{"use strict";c.d(b,{PM:()=>d.PM,Sj:()=>d.Sj,Vy:()=>d.Vy,fF:()=>d.fF,sl:()=>d.sl,vL:()=>d.vL,y$:()=>d.y$,zM:()=>d.zM});var d=c(32174)},78474:a=>{"use strict";a.exports=require("node:events")},79646:a=>{"use strict";a.exports=require("child_process")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86051:(a,b,c)=>{"use strict";c.d(b,{default:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call comboHref() from the server but comboHref is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","comboHref"),(0,d.registerClientReference)(function(){throw Error("Attempted to call readComboSelection() from the server but readComboSelection is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","readComboSelection"),(0,d.registerClientReference)(function(){throw Error("Attempted to call readCreateRequested() from the server but readCreateRequested is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","readCreateRequested"),(0,d.registerClientReference)(function(){throw Error("Attempted to call resolveComboSelection() from the server but resolveComboSelection is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","resolveComboSelection"),(0,d.registerClientReference)(function(){throw Error("Attempted to call normalizeCapEntry() from the server but normalizeCapEntry is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","normalizeCapEntry");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","default");(0,d.registerClientReference)(function(){throw Error("Attempted to call healthByConnections() from the server but healthByConnections is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","healthByConnections")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,8666,2430,2217,2116,1778,5560,6561,9421,7819,6070,1152,915,7642,4123,7261,1533,6244,6849,1320,8171,499,4521,2592,8708,6427,4685,1794,3097,8853],()=>b(b.s=23293));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=3649,a.ids=[3649],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},15361:(a,b,c)=>{"use strict";c.d(b,{AN:()=>d.AN,FR:()=>d.FR,MS:()=>d.MS,Mp:()=>d.Mp,fp:()=>d.fp,uN:()=>d.uN});var d=c(32174)},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},23293:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>z,handler:()=>B,routeModule:()=>A});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79409))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79346))),t=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70160))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v=(0,d.p)(()=>Promise.resolve().then(c.bind(c,55880))),w=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),x={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35447))),"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/page.js"]}]},{"global-error":[w,"next/dist/client/components/builtin/global-error.js"]},[]]},{error:[s,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/error.js"],loading:[t,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/loading.js"],"global-error":[u,"next/dist/client/components/builtin/global-error.js"],"not-found":[v,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/not-found.js"]},[]]},{layout:[n,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/home/runner/work/tokenhop/tokenhop/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,y=(0,e.H)({tree:x,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),z=y.__next_app__,A=y.routeModule,B=y.handler},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},35447:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(5735),e=c(91986),f=c(92082),g=c(86051);let h={title:"Combos"};function i(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsxs)("div",{className:"flex flex-col gap-4",role:"status","aria-label":"Loading combos",children:[(0,d.jsx)(f.CardSkeleton,{}),(0,d.jsx)(f.CardSkeleton,{})]}),children:(0,d.jsx)(g.default,{})})}},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40082:(a,b,c)=>{"use strict";c.d(b,{default:()=>af});var d=c(48249),e=c(67484),f=c(9123),g=c(19099),h=c(74812),i=c(26584),j=c(99070),k=c(62727),l=c(95145),m=c(29476),n=c(49885),o=c.n(n),p=c(83035),q=c(24279);function r({combo:a,strategy:b="fallback",strategyLabel:c,strategyVariant:e="brand",usageToday:f=0,selected:g=!1,onSelect:h}){let i=a?.models||[],j=i.slice(0,3).map((a,b)=>({key:`${a}-${b}`,short:a}));return(0,d.jsxs)("button",{type:"button",onClick:()=>h?.(a.id),"aria-pressed":g,"aria-label":`${a.name} combo, ${c||b}, ${i.length} models`,className:`flex w-full flex-col gap-2 rounded-2xl border bg-panel p-4 text-start transition-colors focus-visible:shadow-focus focus-visible:outline-none ${g?"border-coral shadow-[0_0_0_3px_var(--signal-coral-bg)]":"border-line hover:border-subtle"}`,children:[(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("code",{className:"min-w-0 flex-1 truncate font-mono text-base font-semibold text-text",children:a.name}),(0,d.jsx)(q.default,{variant:e,size:"sm",children:c||b})]}),(0,d.jsxs)("span",{className:"flex items-center",children:[j.map((a,b)=>(0,d.jsx)("span",{title:a.short,style:{zIndex:3-b,marginInlineStart:0===b?0:-6},className:"relative inline-flex rounded-md shadow-[0_0_0_2px_var(--signal-panel)]",children:(0,d.jsx)(p.default,{providerId:a.short,size:"sm"})},a.key)),(0,d.jsxs)("span",{className:"ms-3 text-xs text-muted",children:[i.length," models \xb7 ",function(a){if(!Number.isFinite(a)||a<=0)return"0 today";if(a>=1e3){let b=a/1e3;return`${b>=10||Number.isInteger(10*b)?b.toFixed(b>=10?0:1).replace(/\.0$/,""):b.toFixed(1)}k today`}return`${a} today`}(f)]})]})]})}r.propTypes={combo:o().shape({id:o().string.isRequired,name:o().string.isRequired,models:o().arrayOf(o().string)}).isRequired,strategy:o().string,strategyLabel:o().string,strategyVariant:o().oneOf(["brand","info","live","warn"]),usageToday:o().number,selected:o().bool,onSelect:o().func};var s=c(89025),t=c(15361),u=c(70296),v=c(91368),w=c(67635),x=c(51175),y=c(83552),z=c(64521);function A(a,b){return b&&Object.hasOwn(b,a)&&Number.isFinite(b[a])&&b[a]>=0?b[a]:1}function B(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?a:1}let C={static:"no quota data yet",header:"provider-reported",probe:"from the last quota probe"},D=[{id:"fallback",label:"Fallback",desc:"Try in order until one answers",icon:"low_priority"},{id:"round-robin",label:"Round robin",desc:"Rotate on every request",icon:"autorenew"},{id:"weighted",label:"Weighted",desc:"Split by weight and remaining quota",icon:"bar_chart"},{id:"fusion",label:"Fusion",desc:"Ask a panel, let a judge pick",icon:"gavel"}],E={fallback:"brand","round-robin":"info",weighted:"live",fusion:"warn"},F={fallback:`Every request starts at #1. On a rate limit, auth error or outage, ${s.Hc.slug} moves down the list without your client noticing.`,"round-robin":"Each request goes to the next model in the list, spreading load and quota evenly.",weighted:"Traffic splits by weight, then shifts away from accounts that are running low on quota.",fusion:"Every model in the panel answers in parallel. The judge reads them all and returns the best reply."};function G(a){if(null==a)return{ok:!1,error:"Enter a number"};if("string"==typeof a&&""===a.trim())return{ok:!1,error:"Enter a finite number"};let b=Number(a);return Number.isFinite(b)?b<0||b>1e3?{ok:!1,error:"Weight must be between 0 and 1000"}:{ok:!0,value:b}:{ok:!1,error:"Enter a finite number"}}let H=/^[a-zA-Z0-9_.-]+$/;function I(a){let b="string"==typeof a?a.trim():"";return b?H.test(b)?{ok:!0,value:b}:{ok:!1,error:"Only letters, numbers, -, _ and . allowed"}:{ok:!1,error:"Name is required"}}let J=["vision","audioInput"];function K(a){let b=[];for(let c of J){let d=a?.[c],e=d?.enabled!==!1,f=Array.isArray(d?.models)?d.models.filter(Boolean):[];e&&0===f.length&&b.push(c)}return b}function L({models:a=[],strategy:b="fallback",weights:c={},judge:d=""}){let e={};for(let a of Object.keys(c||{}).sort())e[a]=c[a];return{models:[...a],strategy:b,weights:e,judge:d||""}}function M(a,b){let c=b instanceof Set?b:new Set(b||[]),d={};for(let[b,e]of Object.entries(a||{}))c.has(b)&&(d[b]=e);return d}var N=c(216);function O({value:a,onChange:b}){let c=(0,e.useRef)([]),f=Math.max(0,D.findIndex(b=>b.id===a));return(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("p",{id:"combo-strategy-label",className:"text-xs font-semibold tracking-wider text-muted uppercase",children:"How should these models take turns?"}),(0,d.jsx)("div",{role:"radiogroup","aria-labelledby":"combo-strategy-label",className:"grid grid-cols-2 gap-3 xl:grid-cols-4",children:D.map((e,g)=>{let h=a===e.id;return(0,d.jsxs)("button",{ref:a=>{c.current[g]=a},type:"button",role:"radio","aria-checked":h,tabIndex:g===f?0:-1,onKeyDown:a=>((a,d)=>{if(!["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(a.key))return;a.preventDefault();let e=a.currentTarget.closest("[dir]")?.getAttribute("dir")==="rtl",f=d;f="Home"===a.key?0:"End"===a.key?D.length-1:(d+("ArrowRight"===a.key||"ArrowDown"===a.key?1:-1)*(e?-1:1)+D.length)%D.length,c.current[f]?.focus(),b?.(D[f].id)})(a,g),onClick:()=>b?.(e.id),className:`flex min-h-[108px] flex-col items-start gap-1.5 rounded-xl border bg-raised p-3.5 text-start transition-colors focus-visible:shadow-focus focus-visible:outline-none ${h?"border-coral bg-coral-bg":"border-line hover:border-subtle"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[22px] text-coral-ink","aria-hidden":"true",children:e.icon}),(0,d.jsx)("span",{className:"text-[15px] font-bold text-text",children:e.label}),(0,d.jsx)("span",{className:"text-xs leading-snug text-muted",children:e.desc})]},e.id)})}),(0,d.jsx)(N.default,{variant:"info",icon:"info",children:F[a]??F.fallback})]})}O.propTypes={value:o().string.isRequired,onChange:o().func};var P=c(56266),Q=c(27656),R=c(65181);function S({uid:a,index:b,model:c,providerLabel:e,role:f,health:g,healthVariant:h,showWeight:i,weight:j,weightDetail:k,share:l,weightError:m,onWeightChange:n,onWeightBlur:o,onRemove:r,replayState:s,replayReason:t}){let{attributes:u,listeners:v,setNodeRef:w,transform:y,transition:z,isDragging:A}=(0,P.gl)({id:a}),B={transform:Q.Ks.Transform.toString(y),transition:z,opacity:A?.4:1,zIndex:A?10:void 0},C=c.includes("/")?c.slice(0,c.indexOf("/")):c,D="attempted"===s?{variant:"info",label:"Trying…"}:"answered"===s?{variant:"live",label:"Answered"}:"failed"===s?{variant:"warn",label:`Failed — ${t||"unknown"}`}:"skipped"===s?{variant:"warn",label:`Skipped — ${t||"unknown"}`}:null;return(0,d.jsxs)("li",{style:B,ref:w,className:"flex list-none gap-3.5",children:[(0,d.jsxs)("div",{className:"flex w-8 shrink-0 flex-col items-center","aria-hidden":"true",children:[(0,d.jsx)("span",{className:"flex size-8 items-center justify-center rounded-full bg-text font-mono text-[13px] font-semibold text-bg",children:b+1}),(0,d.jsx)("span",{className:"my-1.5 w-0.5 flex-1 bg-[repeating-linear-gradient(var(--signal-subtle)_0_5px,transparent_5px_11px)]"})]}),(0,d.jsxs)("div",{className:`mb-3 flex min-w-0 flex-1 flex-col gap-3 rounded-xl border bg-raised p-3.5 sm:p-4 ${A?"border-coral shadow-card":("answered"===s?"border-lime":"attempted"===s?"border-sky":"failed"===s||"skipped"===s?"border-warn":null)||"border-line"}`,children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)(p.default,{providerId:C,size:"md"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate font-mono text-[15px] font-medium text-text",children:c}),(0,d.jsxs)("p",{className:"truncate text-xs text-muted",children:[e," \xb7 ",f]})]}),(0,d.jsx)(q.default,{variant:h,size:"sm",children:g}),D&&(0,d.jsx)(q.default,{variant:D.variant,size:"sm",className:"max-w-40 truncate",children:D.label}),(0,d.jsx)("button",{type:"button",...u,...v,"aria-label":`Reorder ${c}, position ${b+1}`,title:"Drag to reorder",className:"inline-flex size-10 shrink-0 cursor-grab touch-none items-center justify-center rounded-lg text-muted transition-colors hover:text-text focus-visible:shadow-focus focus-visible:outline-none active:cursor-grabbing",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"drag_indicator"})}),(0,d.jsx)(x.default,{icon:"close",label:`Remove ${c} from route`,onClick:r})]}),i&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 ps-12",children:[(0,d.jsx)("label",{htmlFor:`${a}-weight`,className:"shrink-0 text-xs text-muted",children:"Weight"}),(0,d.jsx)("input",{id:`${a}-weight`,type:"number",min:"0",max:"1000",step:"1",value:j,"aria-invalid":!!m||void 0,"aria-describedby":m?`${a}-weight-error`:void 0,onChange:a=>n?.(a.target.value),onBlur:()=>o?.(),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.currentTarget.blur())},className:"h-8 w-20 shrink-0 rounded-lg border border-line bg-panel px-2 text-center font-mono text-[13px] text-text outline-none focus:border-coral focus:shadow-focus"}),(0,d.jsx)(R.default,{value:l,variant:"brand",label:`Traffic share for ${c}`,valueText:0===Number(j)&&""!==j?"Fallback only":`about ${l} percent`,className:"min-w-0 flex-1"}),(0,d.jsx)("span",{className:"w-20 shrink-0 text-end font-mono text-xs text-muted",children:0===Number(j)&&""!==j?"Fallback only":`≈${l}%`}),k&&(0,d.jsx)("p",{className:"m-0 basis-full text-xs text-muted",children:k}),m&&(0,d.jsx)("span",{id:`${a}-weight-error`,role:"alert",className:"basis-full text-xs text-err",children:m})]})]})]})}S.propTypes={uid:o().string.isRequired,index:o().number.isRequired,model:o().string.isRequired,providerLabel:o().string.isRequired,role:o().string.isRequired,health:o().string.isRequired,healthVariant:o().string.isRequired,showWeight:o().bool,weight:o().oneOfType([o().string,o().number]),weightDetail:o().string,share:o().number,weightError:o().string,onWeightChange:o().func,onWeightBlur:o().func,onRemove:o().func,replayState:o().oneOf(["attempted","answered","failed","skipped"]),replayReason:o().string},c(42118);var T=c(56615);let U={served:{label:"Served"},answered:{label:"Answered"},skipped:{label:"Skipped"}};function V({comboId:a,models:b,disabled:c,onTrackStatesChange:f}){let[g,h]=(0,e.useState)(!1),[i,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[r,s]=(0,e.useState)(0),t=(0,T.Ib)(),u=Array.isArray(b)?b:[],v=(0,e.useMemo)(()=>{var a;let b,c;return a=i?.attempts,b=Array.isArray(u)?u:[],c=new Map,(Array.isArray(a)?a:[]).map(a=>{var d;let e,f="string"==typeof a?.model?a.model:"",g="string"==typeof a?.via&&b.includes(a.via)?a.via:null,h=f?(a=>{let d=c.get(a)||0;c.set(a,d+1);let e=0;for(let c=0;c<=d;c++){let f=b.indexOf(a,e);if(-1===f)break;if(c===d)return f;e=f+1}return null})(g||f):null,i="served"===(d=a?.outcome)||"answered"===d?"answered":"failed"===d?"failed":"skipped",j="answered"===i,k=j?"answered":a?.errorType??`error ${a?.status??"unknown"}`,l=!Number.isFinite(e=Number(a?.latencyMs))||e<0?"—":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,m="number"==typeof a?.status?a.status:null,n=j?`${f||"unknown model"} answered in ${l}.`:`${f||"unknown model"}: ${k} in ${l} — ${i}.`;return{index:h,model:f,state:i,tone:j?"live":"warn",reason:k,latency:l,status:m,outcome:a?.outcome,account:a?.account||null,role:a?.role,via:a?.via,text:n}})},[u,i]),w=v.length,x=async()=>{if(g||c||!a)return;h(!0),m(""),k(null),s(0);let b=new AbortController,d=setTimeout(()=>b.abort(),65e3);try{let c=await fetch(`/api/combos/${a}/test`,{method:"POST",signal:b.signal}),d=await c.json().catch(()=>({}));if(429===c.status)throw Error(d.error||"Probe rate limited — wait a few seconds and retry.");if(!c.ok)throw Error(d.error||`Probe failed (${c.status})`);k(d),o(d.ranAt||new Date().toISOString()),s(t?(d.attempts||[]).length:0)}catch(a){m(a?.name==="AbortError"?"Probe timed out — try again.":a?.message||"Probe failed")}finally{clearTimeout(d),h(!1)}},y=function(a,b=Date.now()){if(!a)return null;let c=new Date(a).getTime();if(!Number.isFinite(c))return null;let d=Math.max(0,Math.round((b-c)/1e3));if(d<10)return"Last run just now";if(d<60)return`Last run ${d}s ago`;let e=Math.floor(d/60);if(e<60)return`Last run ${e} min ago`;let f=Math.floor(e/60);return f<24?`Last run ${f}h ago`:`Last run ${Math.floor(f/24)}d ago`}(n),z=v.slice(0,t?w:r+1);return(0,d.jsxs)("section",{"aria-label":"Test this route",className:"mt-auto flex flex-col gap-3 rounded-2xl border border-line bg-bg p-[18px]",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("h3",{className:"font-display m-0 text-lg font-bold",children:"Test this route"}),y&&(0,d.jsx)("span",{className:"text-xs text-muted",children:y}),(0,d.jsx)(j.default,{size:"sm",variant:"secondary",icon:"play_arrow",onClick:x,loading:g,disabled:!a||c,"aria-describedby":c?"combo-route-test-disabled-hint":void 0,className:"ms-auto",children:"Run test"}),w>0&&!g&&!c&&!t&&(0,d.jsx)(j.default,{size:"sm",variant:"ghost",icon:"restart_alt",onClick:()=>s(0),"aria-label":"Replay the last run on the route track",children:"Replay"})]}),(0,d.jsx)("p",{className:"m-0 text-xs text-muted",children:"Uses a tiny amount of quota. Runs the real route, so it also advances rotation."}),c&&(0,d.jsx)("p",{id:"combo-route-test-disabled-hint",className:"m-0 text-xs text-warn",children:"Save the route to test it."}),l&&(0,d.jsx)("p",{role:"alert",className:"m-0 text-sm text-err",children:l}),!l&&!i&&!g&&(0,d.jsx)("p",{className:"m-0 text-[13px] text-muted",children:"Send a tiny probe through this route to watch the fallback happen."}),g&&!i&&(0,d.jsx)("p",{role:"status",className:"m-0 text-[13px] text-muted",children:"Probing route…"}),z.length>0&&(0,d.jsx)("ul",{"aria-label":"Probe steps",className:"m-0 flex list-none flex-col gap-1 p-0",children:z.map((a,b)=>{let c=!t&&b===r&&b<w,e=null!=a.status&&a.status>=200&&a.status<300;return(0,d.jsxs)("li",{className:"flex items-center gap-3 text-[13px]",children:[c?(0,d.jsxs)(q.default,{variant:"info",size:"sm",className:"min-w-10 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"progress_activity"}),(0,d.jsx)("span",{className:"sr-only",children:"Trying…"})]}):(0,d.jsx)(q.default,{variant:e?"ok":"err",size:"sm",className:"min-w-10 justify-center",children:(0,d.jsx)("span",{className:"font-mono",children:a.status??"—"})}),(0,d.jsx)(p.default,{providerId:a.model,size:"sm"}),(0,d.jsx)("span",{className:"min-w-0 truncate font-mono",children:a.model}),(0,d.jsxs)("span",{className:"truncate text-muted",children:[c?"Trying…":`${a.reason} \xb7 ${a.latency}`,a.account?` \xb7 ${a.account}`:"","panel"===a.role?" \xb7 panel":"","judge"===a.role?" \xb7 judge":"","nested"===a.role&&a.via?` \xb7 via ${a.via}`:""]}),!c&&(0,d.jsx)("span",{className:`ms-auto shrink-0 font-semibold ${"answered"===a.state?"text-lime-ink":"text-muted"}`,children:U[a.outcome]?.label??U.skipped.label})]},`${a.model}-${b}`)})}),(0,d.jsx)("p",{"aria-live":"polite",className:"sr-only m-0",children:v.slice(0,t?w:r).map(a=>a.text).join(" ")}),i?.summary&&(t||r>=w)&&(0,d.jsx)("p",{className:"m-0 border-t border-line pt-2.5 text-[13px]",children:(0,d.jsx)("strong",{children:i.summary})})]})}function W({combo:a,strategy:b,weights:c,judgeModel:f,headroom:g,headroomQuotaSource:h,savedModels:i,healthByProvider:k,providerLabelById:m,saving:n,dirty:o,emptyAdapters:p=[],onAddAdapterModel:q,saveError:r,onRename:D,onDelete:E,onSave:F,onDiscard:H,onStrategyChange:J,onWeightSave:K,onJudgeChange:L,onModelsChange:N,activeProviders:P,modelAliases:Q}){var R;let T,U,[X,Y]=(0,e.useState)(!1),[Z,$]=(0,e.useState)(a.name),[_,aa]=(0,e.useState)(""),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(!1),[ah,ai]=(0,e.useState)({}),[aj,ak]=(0,e.useState)({}),[al,am]=(0,e.useState)(""),[an,ao]=(0,e.useState)([]),ap=(0,e.useRef)([]),aq=a.models||[],ar=JSON.stringify(aq)!==JSON.stringify(i||[]),as="weighted"===b,at=(0,t.FR)((0,t.MS)(t.AN,{activationConstraint:{distance:5}}),(0,t.MS)(t.uN,{coordinateGetter:u.JR})),au=function(a,b=[]){let c=new Map;for(let a of b||[])a&&"string"==typeof a.id&&"string"==typeof a.model&&(c.has(a.model)||c.set(a.model,[]),c.get(a.model).push(a));let d=new Set;for(let a of b||[])a&&"string"==typeof a.id&&d.add(a.id);let e=0;return(a||[]).map(a=>{let b,f=c.get(a);if(f&&f.length>0)return f.shift();do e+=1,b=`step-${e}`;while(d.has(b));return d.add(b),{id:b,model:a}})}(aq,ap.current);ap.current=au;let av={};for(let{id:a,model:b}of au){let d=G(ah[a]);av[b]=d.ok?d.value:c[b]??1}let aw=as?(R=au.map(a=>a.model),U=function(a,b,c){let d=new Map,e=0;for(let g of a||[]){var f;if("string"!=typeof g||d.has(g))continue;let a=(f=c?.[g],A(g,b)*B(f));d.set(g,a),e+=a}return(a||[]).map(a=>{let b=d.get(a)??0;return e>0?Math.round(b/e*1e3)/10:0})}(T=Array.isArray(R)?R:[],av,g),T.map((a,b)=>{let c=B(g?.[a]),d=A(a,av);return{base:d,quota:c,quotaSource:h?.[a]||"static",share:U[b]??0,fallbackOnly:0===d,outOfQuota:d>0&&0==A(a,av)*B(c)}})):[],ax=()=>{let b=I(Z);b.ok?(aa(""),Y(!1),b.value!==a.name&&D?.(b.value)):aa(b.error)};return(0,d.jsxs)("section",{"aria-label":`Edit combo ${a.name}`,className:"flex min-w-0 flex-1 flex-col gap-5 rounded-[20px] border border-line bg-panel p-5 shadow-card sm:p-7",children:[(0,d.jsx)("span",{"aria-live":"polite",className:"sr-only",children:al}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,d.jsx)("div",{className:"flex shrink-0 flex-col gap-1",children:X?(0,d.jsxs)("div",{className:"flex max-w-sm flex-col gap-1",children:[(0,d.jsx)(y.default,{value:Z,onChange:a=>{if($(a.target.value),a.target.value){let b=I(a.target.value);aa(b.ok?"":b.error)}else aa("")},onKeyDown:b=>{"Enter"===b.key&&ax(),"Escape"===b.key&&(b.preventDefault(),$(a.name),aa(""),Y(!1))},"aria-label":"Combo name",error:_,autoFocus:!0}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.default,{size:"sm",variant:"secondary",onClick:ax,disabled:!!_||!Z.trim(),children:"Apply"}),(0,d.jsx)(j.default,{size:"sm",variant:"ghost",onClick:()=>{$(a.name),aa(""),Y(!1)},children:"Cancel"})]})]}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-xs font-semibold tracking-wider text-muted uppercase",children:"Combo"}),(0,d.jsx)(x.default,{icon:"edit",label:`Rename combo ${a.name}`,onClick:()=>{$(a.name),aa(""),Y(!0)},className:"size-8 rounded-md"})]})}),(0,d.jsx)(w.default,{value:`"model": "${a.name}"`,copyValue:a.name,label:"Copy combo model name",className:"w-full min-w-0 sm:w-auto sm:min-w-52 sm:flex-1"}),(0,d.jsxs)("div",{className:"ms-auto flex flex-wrap items-center gap-2",children:[(0,d.jsx)(j.default,{variant:"danger",icon:"delete",onClick:()=>ac(!0),children:"Delete"}),(0,d.jsx)(j.default,{variant:"secondary",icon:"undo",disabled:!o||n,onClick:()=>{ai({}),ak({}),H?.()},children:"Discard"}),(0,d.jsx)(j.default,{variant:"primary",icon:"save",loading:n,disabled:!o||n,onClick:F,children:"Save"})]})]}),(0,d.jsxs)("p",{"aria-live":"polite",className:`-mt-2 flex items-center gap-2 text-xs font-medium ${o?"text-warn":"text-muted"}`,children:[(0,d.jsx)("span",{"aria-hidden":"true",className:`size-2 rounded-full ${o?"bg-warn":"bg-subtle"}`}),o?"Unsaved changes":"No changes"]}),r&&(0,d.jsx)("p",{role:"alert",className:"text-sm text-err",children:r}),p.length>0&&(0,d.jsxs)("p",{role:"status",className:"rounded-xl border border-warn bg-warn-bg p-3 text-sm text-warn",children:[p.map(a=>"vision"===a?"Vision":"Audio").join(" and ")," ",`adapter on, but no models. ${s.Hc.slug} tries oc/mimo-v2.5-free; if it can't handle the request, the original route may reject the media.`," ",(0,d.jsx)("button",{type:"button",className:"font-semibold underline underline-offset-2 focus-visible:shadow-focus focus-visible:outline-none",onClick:()=>q?.(p[0]),children:"Add model"})]}),(0,d.jsx)(O,{value:b,onChange:J}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("p",{className:"mb-3 text-xs font-semibold tracking-wider text-muted uppercase",children:"The route"}),0===aq.length?(0,d.jsx)("p",{className:"rounded-xl border border-dashed border-line p-6 text-center text-sm text-muted",children:"No models in this route yet. Add one below."}):(0,d.jsx)(t.Mp,{sensors:at,collisionDetection:t.fp,onDragEnd:a=>{let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=au.findIndex(a=>a.id===b.id),e=au.findIndex(a=>a.id===c.id);if(-1===d||-1===e)return;let f=au[d],g=(0,u.be)(au,d,e).map(a=>a.model);ap.current=(0,u.be)(au,d,e),N?.(g),am(`Moved ${f.model} to position ${e+1} of ${au.length}`)},modifiers:[v.FN,v.gj],children:(0,d.jsx)(u.gB,{items:au.map(a=>a.id),strategy:u._G,children:(0,d.jsx)("ol",{className:"m-0 list-none p-0",children:au.map(({id:a,model:e},f)=>{let g=e.includes("/")?e.slice(0,e.indexOf("/")):e,h=k?.[g]||{label:"No data",variant:"neutral"},i=aw[f],j=an[f];return(0,d.jsx)(S,{uid:a,index:f,model:e,providerLabel:m?.[g]||g,role:"round-robin"===b?"In rotation":"weighted"===b?"Weighted":"fusion"===b?"Panelist":0===f?"Primary":"Backup",health:h.label,healthVariant:h.variant,showWeight:as,weight:ah[a]??String(c[e]??1),weightDetail:i?function(a){if(!a)return null;let b=C[a.quotaSource]||C.static;if(a.fallbackOnly)return"Weight 0 — fallback only: no traffic until the others fail.";if(a.outOfQuota)return`No quota left (${b}) — paused until quota resets.`;let c=Math.round(100*a.quota);return`Weight ${a.base} \xd7 ${c}% quota left (${b}) → about ${a.share}% of traffic.`}(i):void 0,share:i?.share??0,replayState:j?.state,replayReason:j?.reason,weightError:aj[a],onWeightChange:b=>{ai(c=>({...c,[a]:b})),ak(b=>{let{[a]:c,...d}=b;return d});let c=G(b);c.ok&&void 0!==e&&K?.(e,c.value)},onWeightBlur:()=>(a=>{if(!(a in ah))return;let b=au.find(b=>b.id===a)?.model,d=()=>ai(b=>{let{[a]:c,...d}=b;return d}),e=G(ah[a]);if(!e.ok)return void ak(b=>({...b,[a]:e.error}));if(void 0!==b&&e.value===(c[b]??1)){d(),ak(b=>{let{[a]:c,...d}=b;return d});return}ak(b=>{let{[a]:c,...d}=b;return d}),d(),void 0!==b&&K?.(b,e.value)})(a),onRemove:()=>{let b=new Set(au.map(a=>a.id).filter(b=>b!==a));ai(a=>M(a,b)),ak(a=>M(a,b)),N?.(aq.filter((a,b)=>b!==f))}},a)})})})}),(0,d.jsxs)("div",{className:"flex gap-3.5",children:[(0,d.jsx)("div",{className:"flex w-8 shrink-0 justify-center","aria-hidden":"true",children:(0,d.jsx)("span",{className:"size-7 rounded-full border-2 border-dashed border-subtle"})}),(0,d.jsx)(j.default,{variant:"ghost",icon:"add",onClick:()=>ae(!0),className:"flex-1 justify-start border-dashed text-muted",children:"Add a model to this route"})]}),"fusion"===b&&(0,d.jsxs)("div",{className:"mt-3.5 ms-11 flex items-center gap-3 rounded-xl border border-coral bg-coral-bg p-3.5 sm:p-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[20px] text-coral-ink","aria-hidden":"true",children:"gavel"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"text-sm font-semibold text-text",children:["Judge \xb7"," ",(0,d.jsx)("code",{className:"font-mono",children:f||`Auto — ${aq[0]||"first model"}`})]}),(0,d.jsx)("p",{className:"text-xs text-muted",children:"Reads every panel answer and returns the best one"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[f&&(0,d.jsx)(j.default,{size:"sm",variant:"ghost",onClick:()=>L?.(""),"aria-label":"Reset judge to Auto",children:"Reset to Auto"}),(0,d.jsx)(j.default,{size:"sm",variant:"secondary",onClick:()=>ag(!0),children:"Change"})]})]})]}),ad&&(0,d.jsx)(z.default,{isOpen:ad,onClose:()=>ae(!1),onSelect:a=>{a?.value&&!aq.includes(a.value)&&N?.([...aq,a.value])},onDeselect:a=>{a?.value&&N?.(aq.filter(b=>b!==a.value))},activeProviders:P,modelAliases:Q,title:"Add model to route",addedModelValues:aq,closeOnSelect:!1}),af&&(0,d.jsx)(z.default,{isOpen:af,onClose:()=>ag(!1),onSelect:a=>{L?.(a?.value||""),ag(!1)},activeProviders:P,modelAliases:Q,title:"Select judge model",addedModelValues:f?[f]:[],closeOnSelect:!0}),(0,d.jsx)(l.ConfirmDialog,{isOpen:ab,onClose:()=>ac(!1),onConfirm:()=>{ac(!1),E?.()},title:"Delete combo",message:`Delete combo "${a.name}"? This cannot be undone.`,confirmText:"Delete",variant:"danger"}),(0,d.jsx)(V,{comboId:a.id,models:aq,disabled:ar,onTrackStatesChange:ao},aq.join("\n"))]})}V.propTypes={comboId:o().string,models:o().arrayOf(o().string),disabled:o().bool,onTrackStatesChange:o().func},W.propTypes={combo:o().shape({id:o().string.isRequired,name:o().string.isRequired,models:o().arrayOf(o().string)}).isRequired,strategy:o().string.isRequired,weights:o().object,judgeModel:o().string,headroom:o().objectOf(o().number),headroomQuotaSource:o().objectOf(o().string),savedModels:o().arrayOf(o().string),healthByProvider:o().object,providerLabelById:o().object,saving:o().bool,dirty:o().bool,emptyAdapters:o().arrayOf(o().string),onAddAdapterModel:o().func,saveError:o().string,onRename:o().func,onDelete:o().func,onSave:o().func,onDiscard:o().func,onStrategyChange:o().func,onWeightSave:o().func,onJudgeChange:o().func,onModelsChange:o().func,activeProviders:o().array,modelAliases:o().object};var X=c(95514),Y=c(38930);let Z=[{key:"vision",label:"Vision adapter",short:"Vision",icon:"visibility",desc:"Text-only models get eyes: images are described by a vision model before the request goes out."},{key:"audioInput",label:"Audio adapter",short:"Audio",icon:"graphic_eq",desc:"Text-only models get ears: audio clips are transcribed by an audio model before the request goes out."}];function $({capacityAdapter:a={},activeCapForModal:b,onActiveCapChange:c,onChange:e,activeProviders:f=[],getCaps:g}){let h=K(a),i=(b,c)=>{let d={...a[b]||{enabled:!0,roundRobin:!1,models:[]},...c};e?.({...a,[b]:d})},k=(b,c,d)=>{let e=a[b]||{enabled:!0,roundRobin:!1,models:[]},f=Array.isArray(e.models)?[...e.models]:[],g=c+d;g<0||g>=f.length||([f[c],f[g]]=[f[g],f[c]],i(b,{models:f}))},l=Z.find(a=>a.key===b);return(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[Z.map(b=>{let e=a[b.key]||{enabled:!0,roundRobin:!1,models:[]},f=!1!==e.enabled,l=!!e.roundRobin,m=Array.isArray(e.models)?e.models:[];return(0,d.jsxs)("section",{"aria-label":b.label,className:`flex flex-col gap-3 rounded-2xl border border-dashed border-line bg-panel p-4 transition-opacity ${f?"opacity-100":"opacity-60"}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,d.jsx)("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-lg bg-sky-bg text-sky","aria-hidden":"true",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:b.icon})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 font-display text-sm font-semibold text-text",children:b.label}),(0,d.jsx)(X.default,{size:"sm",checked:f,onChange:a=>i(b.key,{enabled:a}),"aria-label":`${b.label} enabled`})]}),(0,d.jsx)("p",{className:"text-xs text-muted leading-relaxed",children:b.desc}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 pt-1 border-t border-line/60",children:[(0,d.jsx)("span",{className:"flex items-center gap-2 text-xs text-muted",children:(0,d.jsx)(X.default,{size:"sm",checked:l,disabled:!f,onChange:a=>i(b.key,{roundRobin:a}),label:"Round robin"})}),(0,d.jsx)(j.default,{variant:"secondary",size:"sm",icon:"add",disabled:!f,onClick:()=>c?.(b.key),className:"h-8 border-dashed px-2.5 text-xs",children:"Add model"})]}),h.includes(b.key)&&(0,d.jsxs)("p",{role:"status",className:"rounded-xl border border-warn bg-warn-bg p-3 text-xs text-warn",children:[`On, but no models. ${s.Hc.slug} tries oc/mimo-v2.5-free; if it can't handle the request, the original route may reject the media.`," ",(0,d.jsx)("button",{type:"button",onClick:()=>c?.(b.key),className:"font-semibold underline underline-offset-2 focus-visible:shadow-focus focus-visible:outline-none",children:"Add model"})]}),m.length>0?(0,d.jsx)("ul",{"aria-label":`${b.label} model pool`,className:"flex flex-col gap-1.5 pt-1",children:m.map((c,e)=>(0,d.jsxs)("li",{className:"group/chip flex min-w-0 items-center gap-1 rounded-md border border-line bg-raised ps-2 pe-1 py-0.5 font-mono text-xs text-text [&>*:not(:first-child)]:shrink-0",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",title:c,children:c}),(0,d.jsx)(Y.default,{caps:g?.(c)}),(0,d.jsx)("button",{type:"button",disabled:!f||0===e,onClick:()=>k(b.key,e,-1),"aria-label":`Move ${c} up`,title:"Move up",className:"p-0.5 text-muted hover:text-coral disabled:opacity-20",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"arrow_upward"})}),(0,d.jsx)("button",{type:"button",disabled:!f||e===m.length-1,onClick:()=>k(b.key,e,1),"aria-label":`Move ${c} down`,title:"Move down",className:"p-0.5 text-muted hover:text-coral disabled:opacity-20",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"arrow_downward"})}),(0,d.jsx)("button",{type:"button",disabled:!f,onClick:()=>{var c;let d;return c=b.key,d=a[c]||{enabled:!0,roundRobin:!1,models:[]},void i(c,{models:(Array.isArray(d.models)?d.models:[]).filter((a,b)=>b!==e)})},"aria-label":`Remove ${c} from ${b.label}`,title:"Remove",className:"p-0.5 text-muted hover:text-err disabled:opacity-20",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"close"})})]},`${c}-${e}`))}):(0,d.jsx)("span",{className:"text-xs italic text-muted",children:"No models in pool"})]},b.key)}),b&&l&&(0,d.jsx)(z.default,{isOpen:!0,onClose:()=>c?.(null),onSelect:c=>((b,c)=>{if(!c?.value)return;let d=a[b]||{enabled:!0,roundRobin:!1,models:[]},e=Array.isArray(d.models)?d.models:[];e.includes(c.value)||i(b,{models:[...e,c.value]})})(b,c),activeProviders:f,title:`Add ${l.short} Model`,capFilter:l.key,addedModelValues:a[b]?.models||[],closeOnSelect:!1})]})}async function _({putModels:a,patchStrategy:b,onModelsCommitted:c,onSaved:d}){let e=await a();return c?.(e),await b(),d?.(e),e}$.propTypes={capacityAdapter:o().object,activeCapForModal:o().string,onActiveCapChange:o().func,onChange:o().func.isRequired,activeProviders:o().array,getCaps:o().func};var aa=c(19415);let ab={enabled:!0,roundRobin:!1,models:[]};function ac(a,b,c="replace"){let d,e,f,g,h,i=`${window.location.search}${window.location.hash}`,j=(f=new URLSearchParams(-1===(e=(d=i||"").indexOf("#"))?d:d.slice(0,e)),g=-1===e?"":d.slice(e),void 0!==b.combo&&(b.combo?f.set("combo",b.combo):f.delete("combo")),void 0!==b.create&&(b.create?f.set("create","1"):f.delete("create")),h=f.toString(),`${h?`/dashboard/combos?${h}`:"/dashboard/combos"}${g}`);j!==`${window.location.pathname}${i}`&&("push"===c?a.push(j,{scroll:!1}):a.replace(j,{scroll:!1}))}function ad(a,b,c){let d=Array.isArray(b)?b:[];return a&&d.some(b=>b.id===a)?a:c&&d.some(a=>a.id===c)?c:d[0]?.id||null}function ae(a,b){return a?.[b]?.fallbackStrategy||"fallback"}function af(){var a;let[b,c]=(0,e.useState)([]),[n,o]=(0,e.useState)(!0),[p,q]=(0,e.useState)(""),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)([]),[y,z]=(0,e.useState)({}),[A,B]=(0,e.useState)({vision:{...ab},audioInput:{...ab}}),[C,F]=(0,e.useState)({}),[G,H]=(0,e.useState)({}),[I,M]=(0,e.useState)(null),[N,O]=(0,e.useState)("fallback"),[P,Q]=(0,e.useState)({}),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)({}),[V,X]=(0,e.useState)({}),[Y,Z]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(""),[ah,ai]=(0,e.useState)(""),[aj,ak]=(0,e.useState)(null),[al,am]=(0,e.useState)(""),[an,ao]=(0,e.useState)(null),{getCaps:ap}=(0,m.y)(),aq=(0,e.useRef)(y),ar=(0,e.useRef)(Promise.resolve()),as=(0,e.useRef)(0),at=(0,e.useRef)(null),au=(0,g.useSearchParams)(),av=(0,g.useRouter)(),aw=au?.toString()??"",ax=(a,b)=>ac(av,{combo:a},b),ay=new URLSearchParams(aw||"").get("combo")||null;new URLSearchParams(aw||"").get("create");let az=b.some(a=>a.id===ay)?ay:null;(0,e.useRef)(ax).current=ax;let aA=(0,e.useRef)(az||u);az&&(aA.current=az);let aB=ad(null,b,aA.current??u),[aC,aD]=(0,e.useState)(null),aE=aC&&b.some(a=>a.id===aC)?aC:az||aB,aF=(0,e.useRef)(null),aG=(0,e.useRef)(!1),aH=(0,e.useRef)(null),aI=a=>{a!==aE&&aQ.requestNavigation(()=>{aH.current=a,at.current=a,as.current+=1,aD(a),v(a),ax(a,"push")})},aJ=()=>aQ.requestNavigation(()=>{t(!0),ac(av,{create:!0})}),aK=(0,e.useCallback)(async()=>{q("");try{let[b,d,e,f,g]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings"),fetch("/api/usage/stats?period=today"),fetch("/api/models/alias")]);if(!b.ok)throw Error(`combos ${b.status}`);let h=await b.json(),i=d.ok?await d.json():{},j=e.ok?await e.json():{},k=f.ok?await f.json():{},l=g.ok?await g.json():{},m=(h.combos||[]).filter(a=>!a.kind||"llm"===a.kind);c(m),v(a=>ad(null,m,a)),x(i.connections||[]),z(j.comboStrategies||{});let n=j.capacityAdapter||{},o={};for(let b of J){var a;o[b]=(a=n[b],Array.isArray(a)?{enabled:!0,roundRobin:!1,models:a.map(a=>a?.model||a).filter(Boolean)}:a&&"object"==typeof a?{enabled:!1!==a.enabled,roundRobin:!!a.roundRobin,models:Array.isArray(a.models)?a.models.filter(Boolean):[]}:{...ab})}B(o);let p=k.byModel||{},q={};for(let a of m)q[a.id]=function(a,b){if(!b||"object"!=typeof b)return 0;let c="string"==typeof a?a:a?.name,d=Array.isArray(a?.models)?a.models:[],e=0;for(let[a,f]of Object.entries(b)){let b=f?.rawModel||String(a).split(" (")[0];if(b===c)e+=f?.requests||0;else if(d.length>0)for(let a of d){let c=a.includes("/")?a.slice(a.indexOf("/")+1):a;if(b===a||b===c){e+=f?.requests||0;break}}}return e}(a,p);F(q),H(l.aliases||{})}catch(a){q(a?.message||"Failed to load combos")}finally{o(!1)}},[]),aL=b.find(a=>a.id===aE)||null,aM=aL?ae(y,aL.name):"fallback",aN=null!=aL&&null!=I?L({models:I,strategy:N,weights:P,judge:R}):null,aO=null!=aL?L({models:aL.models||[],strategy:aM,weights:y[aL.name]?.weights||{},judge:y[aL.name]?.judgeModel||""}):null,aP=!!aN&&JSON.stringify((a={saved:aO,draft:aN}).saved)!==JSON.stringify(a.draft),aQ=function(a,b){(0,g.useRouter)();let[c,d]=(0,e.useState)(null),f=(0,e.useRef)(a);f.current=a;let h=(0,e.useRef)(b);h.current=b,(0,e.useRef)(!1);let i=(0,e.useRef)({armed:!1,pendingForward:null});(0,e.useRef)(!1),(0,e.useRef)(()=>window.setTimeout(()=>window.history.back(),0));let j=a=>{f.current?d(()=>a):a()},k=(0,e.useCallback)(a=>(function(a,b,c){if(a.pendingForward){a.pendingForward=c;return}a.armed?(a.armed=!1,a.pendingForward=c,b()):c()})(i.current,()=>window.history.back(),a),[]);return{request:j,requestNavigation:(a,b)=>{if(!b||i.current.pendingForward||new URL(b,window.location.href).href!==window.location.href){var c;c=f.current,c?j(()=>{(()=>h.current?.())(),(()=>k(a))()}):(()=>k(a))()}},pending:!!c,confirm:()=>{d(null),c?.()},cancel:()=>d(null)}}(aP,()=>{aL&&(aG.current=!1,aT.current=aL.id,aU(aL,aq.current))});aF.current=aQ;let{registerRouteGuard:aR}=(0,aa.useCommandPalette)()||{};aG.current=aP;let aS=K(A),aT=(0,e.useRef)(null),aU=(a,b)=>{(as.current+=1,a)?(M(a.models||[]),O(ae(b,a.name)),Q(b[a.name]?.weights||{}),S(b[a.name]?.judgeModel||""),ag("")):M(null)};at.current=aE,aL?.id;let aV=async a=>{B(a),ai("");try{let b=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({capacityAdapter:a})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||`adapter save failed (${b.status})`)}}catch(a){B(A),ai(a?.message||"Failed to save adapter")}},aW=async a=>{let b=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create combo");let c=await b.json().catch(()=>null);await aK(),(0,f.q0)(),t(!1),c?.id?(v(c.id),ac(av,{combo:c.id,create:!1},"push")):ac(av,{create:!1})},aX=aL&&y[aL.name]||{},aY=function(a){let b={};for(let c of a||[])b[c.provider]||(b[c.provider]=[]),b[c.provider].push(c);let c={};for(let[a,d]of Object.entries(b)){let b=a=>{let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"},e=d.map(b);if(d.length>0&&d.every(a=>!1===a.isActive))c[a]={label:"Paused",variant:"neutral"};else if(e.some(a=>"active"===a||"success"===a))c[a]={label:"Healthy",variant:"ok"};else if(e.some(a=>"error"===a||"expired"===a||"unavailable"===a)){let e=function(a){if(!a)return null;if("upstream_rate_limited"===a.lastErrorType)return"429";if("upstream_unavailable"===a.lastErrorType)return"5XX";if("upstream_auth_error"===a.lastErrorType||"auth_missing"===a.lastErrorType||"token_refresh_failed"===a.lastErrorType||"token_expired"===a.lastErrorType)return"Auth error";let b=Number(a.errorCode);return Number.isFinite(b)&&b>=400?String(b):"Error"}(d.find(a=>"error"===b(a)||"expired"===b(a)||"unavailable"===b(a)));c[a]={label:e||"Error",variant:"err"}}else c[a]={label:"No data",variant:"neutral"}}return c}(w),aZ=function(a){let b={};for(let c of a||[])c.provider&&!b[c.provider]&&(b[c.provider]=c.name||c.provider);return b}(w),a$=async()=>{if(!aL||Y)return;let a=aL.id,b=aL.name,d=as.current,e=[...I||[]],f={fallbackStrategy:N};"weighted"===N&&(f.weights={...P}),"fusion"===N&&R&&(f.judgeModel=R),"fusion"===N&&!R&&aX.judgeModel&&(f.judgeModel=""),Z(!0),ag(""),am("");try{await _({putModels:async()=>{let b=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({models:e})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||"Failed to save route")}let c=await b.json().catch(()=>null);return{id:c?.id||a,models:c?.models||e}},patchStrategy:async()=>{let a,c=await (a=ar.current.then(async()=>{let a=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategyPatch:{name:b,patch:f}})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||`Save failed (${a.status})`);let c=aq.current[b]||{},d={...c,...f};f.weights&&(d.weights={...c.weights,...f.weights});let e={...aq.current};return d.fallbackStrategy?e[b]=d:delete e[b],aq.current=e,z(e),{ok:!0}}).catch(a=>({ok:!1,error:a?.message||"Save failed — network error"})),ar.current=a,a);if(!c?.ok)throw Error(c?.error||"Failed to save strategy")},onModelsCommitted:a=>{a?.id&&c(b=>(b||[]).map(b=>b.id===a.id?{...b,models:[...a.models||[]]}:b))},onSaved:c=>{var e,f;e=at.current,f=as.current,a===e&&d===f&&(aT.current=a,aU({id:a,name:b,models:c.models},aq.current)),at.current===a&&am("Saved")}})}catch(b){at.current===a&&(am("Couldn't save"),ag(b?.message||"Failed to save"))}finally{Z(!1)}},a_=async a=>{if(aL&&a!==aL.name){Z(!0),ag("");try{let b=await fetch(`/api/combos/${aL.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a})});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||"Failed to rename combo")}await aK()}catch(a){ag(a?.message||"Failed to rename")}finally{Z(!1)}}};return n?(0,d.jsxs)("div",{className:"flex flex-col gap-4",role:"status","aria-label":"Loading combos",children:[(0,d.jsx)(h.CardSkeleton,{}),(0,d.jsx)(h.CardSkeleton,{})]}):p&&0===b.length?(0,d.jsx)(i.default,{icon:"error",title:"Couldn't load combos",body:p,action:(0,d.jsx)(j.default,{icon:"refresh",onClick:()=>{o(!0),aK()},children:"Retry"})}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,d.jsx)("span",{"aria-live":"polite",className:"sr-only",children:al}),0===b.length?(0,d.jsx)(i.default,{icon:"layers",title:"No combos yet",body:"Create model combos with fallback support.",action:(0,d.jsx)(j.default,{icon:"add",onClick:aJ,children:"New combo"})}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 lg:flex-row lg:items-start",children:[(0,d.jsxs)("div",{className:"flex w-full min-w-0 shrink-0 flex-col gap-3 lg:w-80",children:[(0,d.jsx)(j.default,{variant:"secondary",icon:"add",fullWidth:!0,onClick:aJ,children:"New combo"}),(0,d.jsx)("ul",{"aria-label":"Combos",className:"m-0 flex list-none flex-col gap-3 p-0",children:b.map(a=>{let b=ae(y,a.name);return(0,d.jsx)("li",{children:(0,d.jsx)(r,{combo:a,strategy:b,strategyLabel:D.find(a=>a.id===b)?.label||"Fallback",strategyVariant:E[b]||"brand",usageToday:C[a.id]||0,selected:a.id===aE,onSelect:aI})},a.id)})}),aS.length>0&&(0,d.jsxs)("p",{role:"status",className:"text-xs text-warn",children:["Capability adapter on, empty pool:"," ",aS.map(a=>"vision"===a?"vision":"audio").join(", "),". Pick a pool below to add a model."]}),(0,d.jsxs)("section",{"aria-label":"Capability adapter",className:"flex flex-col gap-3",children:[(0,d.jsx)("h2",{className:"text-xs font-semibold tracking-wider text-muted uppercase",children:"Capability adapter"}),(0,d.jsx)($,{capacityAdapter:A,activeCapForModal:aj,onActiveCapChange:ak,onChange:aV,activeProviders:w,getCaps:ap}),ah&&(0,d.jsx)("p",{role:"alert",className:"text-xs text-err",children:ah})]})]}),aL&&null!==I&&(0,d.jsx)(W,{combo:{...aL,models:I},strategy:N,weights:P,judgeModel:R,headroom:T,headroomQuotaSource:V,savedModels:aL.models||[],healthByProvider:aY,providerLabelById:aZ,saving:Y,dirty:aP,emptyAdapters:aS,onAddAdapterModel:ak,saveError:af,onRename:a_,onDelete:()=>{if(!aL)return;let{id:a,name:d}=aL;ao({title:"Delete combo",message:`Delete combo "${d}"? This cannot be undone.`,onConfirm:async()=>{ao(null);try{let e=await fetch(`/api/combos/${a}`,{method:"DELETE"});if(!e.ok)throw Error(`delete ${e.status}`);z(a=>{if(!Object.hasOwn(a,d))return a;let b={...a};return delete b[d],aq.current=b,b});let g=b.filter(b=>b.id!==a),h=ad(null,g,u===a?null:u);aE===a&&ax(h,"replace"),c(g),v(h),(0,f.q0)()}catch(a){ag(a?.message||"Failed to delete combo")}}})},onSave:a$,onDiscard:()=>aU(aL,aq.current),onStrategyChange:a=>{as.current+=1,O(a),ag("")},onWeightSave:(a,b)=>{as.current+=1,Q(c=>({...c,[a]:b})),ag("")},onJudgeChange:a=>{as.current+=1,S(a),ag("")},onModelsChange:a=>{as.current+=1,M(a),ag("")},activeProviders:w,modelAliases:G},aL.id)]}),s&&(0,d.jsx)(k.default,{isOpen:s,onClose:()=>{t(!1),ac(av,{create:!1})},onSave:aW,activeProviders:w},"create"),(0,d.jsx)(l.ConfirmDialog,{isOpen:aQ.pending,onClose:aQ.cancel,onConfirm:aQ.confirm,title:"Discard unsaved changes?",message:"This combo has route changes that aren't saved. Leave without saving them?",confirmText:"Discard changes",cancelText:"Keep editing"}),(0,d.jsx)(l.ConfirmModal,{isOpen:!!an,onClose:()=>ao(null),onConfirm:an?.onConfirm,title:an?.title||"Confirm",message:an?.message,variant:"danger"})]})}},40610:a=>{"use strict";a.exports=require("node:dns")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46193:a=>{"use strict";a.exports=require("node:string_decoder")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},56266:(a,b,c)=>{"use strict";c.d(b,{gl:()=>d.gl});var d=c(70296)},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},59106:(a,b,c)=>{Promise.resolve().then(c.bind(c,86051)),Promise.resolve().then(c.bind(c,18200)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,690)),Promise.resolve().then(c.bind(c,4996)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,52734)),Promise.resolve().then(c.bind(c,33811)),Promise.resolve().then(c.bind(c,71189)),Promise.resolve().then(c.bind(c,20493)),Promise.resolve().then(c.bind(c,46516)),Promise.resolve().then(c.bind(c,19489)),Promise.resolve().then(c.bind(c,62870)),Promise.resolve().then(c.bind(c,98337)),Promise.resolve().then(c.bind(c,92231)),Promise.resolve().then(c.bind(c,66020)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,24069)),Promise.resolve().then(c.bind(c,70139)),Promise.resolve().then(c.bind(c,41970)),Promise.resolve().then(c.bind(c,55826)),Promise.resolve().then(c.bind(c,28956)),Promise.resolve().then(c.bind(c,64148)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,29354)),Promise.resolve().then(c.bind(c,8229)),Promise.resolve().then(c.bind(c,80342)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,34465)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,45205)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,962)),Promise.resolve().then(c.bind(c,32583)),Promise.resolve().then(c.bind(c,66915)),Promise.resolve().then(c.bind(c,10079)),Promise.resolve().then(c.bind(c,99069)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,5843)),Promise.resolve().then(c.bind(c,10524)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,92252)),Promise.resolve().then(c.bind(c,78903)),Promise.resolve().then(c.bind(c,81923)),Promise.resolve().then(c.bind(c,14321)),Promise.resolve().then(c.bind(c,52819)),Promise.resolve().then(c.bind(c,13607)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,44020)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,66285)),Promise.resolve().then(c.bind(c,32537)),Promise.resolve().then(c.bind(c,11741)),Promise.resolve().then(c.bind(c,50650)),Promise.resolve().then(c.bind(c,8653)),Promise.resolve().then(c.bind(c,83960)),Promise.resolve().then(c.bind(c,26252)),Promise.resolve().then(c.bind(c,65298)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,637)),Promise.resolve().then(c.bind(c,18421)),Promise.resolve().then(c.bind(c,8604)),Promise.resolve().then(c.bind(c,18060))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77258:(a,b,c)=>{Promise.resolve().then(c.bind(c,40082)),Promise.resolve().then(c.bind(c,67738)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,216)),Promise.resolve().then(c.bind(c,38930)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,28304)),Promise.resolve().then(c.bind(c,54510)),Promise.resolve().then(c.bind(c,54579)),Promise.resolve().then(c.bind(c,62727)),Promise.resolve().then(c.bind(c,36882)),Promise.resolve().then(c.bind(c,19415)),Promise.resolve().then(c.bind(c,38120)),Promise.resolve().then(c.bind(c,67635)),Promise.resolve().then(c.bind(c,41489)),Promise.resolve().then(c.bind(c,516)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,40435)),Promise.resolve().then(c.bind(c,94248)),Promise.resolve().then(c.bind(c,26584)),Promise.resolve().then(c.bind(c,27444)),Promise.resolve().then(c.bind(c,37661)),Promise.resolve().then(c.bind(c,43182)),Promise.resolve().then(c.bind(c,59285)),Promise.resolve().then(c.bind(c,3236)),Promise.resolve().then(c.bind(c,51175)),Promise.resolve().then(c.bind(c,79488)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,21951)),Promise.resolve().then(c.bind(c,939)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,267)),Promise.resolve().then(c.bind(c,27737)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,20084)),Promise.resolve().then(c.bind(c,63069)),Promise.resolve().then(c.bind(c,65181)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,6011)),Promise.resolve().then(c.bind(c,64521)),Promise.resolve().then(c.bind(c,50585)),Promise.resolve().then(c.bind(c,69814)),Promise.resolve().then(c.bind(c,97968)),Promise.resolve().then(c.bind(c,87366)),Promise.resolve().then(c.bind(c,65365)),Promise.resolve().then(c.bind(c,11633)),Promise.resolve().then(c.bind(c,83035)),Promise.resolve().then(c.bind(c,83521)),Promise.resolve().then(c.bind(c,78197)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,31023)),Promise.resolve().then(c.bind(c,1582)),Promise.resolve().then(c.bind(c,42196)),Promise.resolve().then(c.bind(c,75379)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,73655)),Promise.resolve().then(c.bind(c,47392)),Promise.resolve().then(c.bind(c,24279)),Promise.resolve().then(c.bind(c,25994)),Promise.resolve().then(c.bind(c,50366)),Promise.resolve().then(c.bind(c,44928)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,33597)),Promise.resolve().then(c.bind(c,32971)),Promise.resolve().then(c.bind(c,3090)),Promise.resolve().then(c.bind(c,24622))},77598:a=>{"use strict";a.exports=require("node:crypto")},77602:(a,b,c)=>{"use strict";c.d(b,{PM:()=>d.PM,Sj:()=>d.Sj,Vy:()=>d.Vy,fF:()=>d.fF,sl:()=>d.sl,vL:()=>d.vL,y$:()=>d.y$,zM:()=>d.zM});var d=c(32174)},78474:a=>{"use strict";a.exports=require("node:events")},79646:a=>{"use strict";a.exports=require("child_process")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86051:(a,b,c)=>{"use strict";c.d(b,{default:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call comboHref() from the server but comboHref is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","comboHref"),(0,d.registerClientReference)(function(){throw Error("Attempted to call readComboSelection() from the server but readComboSelection is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","readComboSelection"),(0,d.registerClientReference)(function(){throw Error("Attempted to call readCreateRequested() from the server but readCreateRequested is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","readCreateRequested"),(0,d.registerClientReference)(function(){throw Error("Attempted to call resolveComboSelection() from the server but resolveComboSelection is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","resolveComboSelection"),(0,d.registerClientReference)(function(){throw Error("Attempted to call normalizeCapEntry() from the server but normalizeCapEntry is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","normalizeCapEntry");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","default");(0,d.registerClientReference)(function(){throw Error("Attempted to call healthByConnections() from the server but healthByConnections is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","healthByConnections")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,8666,2430,2217,2116,1778,5560,6561,9421,7819,6070,1152,915,7642,4123,4903,1533,6244,6849,1320,8171,499,4521,2592,8708,6427,4685,1794,3097,8853],()=>b(b.s=23293));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/lib/binding.js","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/explain.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-x64.node","../../../../../../node_modules/bundle-name/index.js","../../../../../../node_modules/bundle-name/package.json","../../../../../../node_modules/default-browser-id/index.js","../../../../../../node_modules/default-browser-id/package.json","../../../../../../node_modules/default-browser/index.js","../../../../../../node_modules/default-browser/package.json","../../../../../../node_modules/default-browser/windows.js","../../../../../../node_modules/define-lazy-prop/index.js","../../../../../../node_modules/define-lazy-prop/package.json","../../../../../../node_modules/is-docker/index.js","../../../../../../node_modules/is-docker/package.json","../../../../../../node_modules/is-in-ssh/index.js","../../../../../../node_modules/is-in-ssh/package.json","../../../../../../node_modules/is-inside-container/index.js","../../../../../../node_modules/is-inside-container/package.json","../../../../../../node_modules/is-wsl/index.js","../../../../../../node_modules/is-wsl/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/open/index.js","../../../../../../node_modules/open/package.json","../../../../../../node_modules/open/xdg-open","../../../../../../node_modules/powershell-utils/index.js","../../../../../../node_modules/powershell-utils/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/run-applescript/index.js","../../../../../../node_modules/run-applescript/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/wsl-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/package.json","../../../../../../node_modules/wsl-utils/package.json","../../../../../../node_modules/wsl-utils/utilities.js","../../../../../../package.json","../../../../../../src/shared/components/package.json","../../../../../package.json","../../../../chunks/1026.js","../../../../chunks/1129.js","../../../../chunks/1152.js","../../../../chunks/1159.js","../../../../chunks/1204.js","../../../../chunks/1227.js","../../../../chunks/1245.js","../../../../chunks/1320.js","../../../../chunks/1336.js","../../../../chunks/1432.js","../../../../chunks/1452.js","../../../../chunks/1455.js","../../../../chunks/1487.js","../../../../chunks/1533.js","../../../../chunks/1764.js","../../../../chunks/1778.js","../../../../chunks/1794.js","../../../../chunks/1813.js","../../../../chunks/1863.js","../../../../chunks/1930.js","../../../../chunks/1952.js","../../../../chunks/1994.js","../../../../chunks/1998.js","../../../../chunks/2051.js","../../../../chunks/206.js","../../../../chunks/2116.js","../../../../chunks/2217.js","../../../../chunks/2380.js","../../../../chunks/2384.js","../../../../chunks/24.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2460.js","../../../../chunks/2592.js","../../../../chunks/2600.js","../../../../chunks/3016.js","../../../../chunks/3093.js","../../../../chunks/3097.js","../../../../chunks/318.js","../../../../chunks/3225.js","../../../../chunks/3306.js","../../../../chunks/331.js","../../../../chunks/3340.js","../../../../chunks/3414.js","../../../../chunks/3535.js","../../../../chunks/3546.js","../../../../chunks/3558.js","../../../../chunks/3586.js","../../../../chunks/3593.js","../../../../chunks/3676.js","../../../../chunks/385.js","../../../../chunks/3859.js","../../../../chunks/3894.js","../../../../chunks/3919.js","../../../../chunks/392.js","../../../../chunks/3943.js","../../../../chunks/3966.js","../../../../chunks/4000.js","../../../../chunks/4033.js","../../../../chunks/4037.js","../../../../chunks/4072.js","../../../../chunks/4114.js","../../../../chunks/4123.js","../../../../chunks/4125.js","../../../../chunks/4152.js","../../../../chunks/4199.js","../../../../chunks/4247.js","../../../../chunks/4278.js","../../../../chunks/4334.js","../../../../chunks/4406.js","../../../../chunks/4452.js","../../../../chunks/4492.js","../../../../chunks/4521.js","../../../../chunks/4547.js","../../../../chunks/4685.js","../../../../chunks/4730.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4780.js","../../../../chunks/4876.js","../../../../chunks/4892.js","../../../../chunks/4954.js","../../../../chunks/499.js","../../../../chunks/507.js","../../../../chunks/5081.js","../../../../chunks/5173.js","../../../../chunks/524.js","../../../../chunks/5258.js","../../../../chunks/539.js","../../../../chunks/5433.js","../../../../chunks/5497.js","../../../../chunks/5560.js","../../../../chunks/5573.js","../../../../chunks/5615.js","../../../../chunks/5699.js","../../../../chunks/5781.js","../../../../chunks/6070.js","../../../../chunks/6103.js","../../../../chunks/6158.js","../../../../chunks/6244.js","../../../../chunks/6252.js","../../../../chunks/6353.js","../../../../chunks/6354.js","../../../../chunks/6427.js","../../../../chunks/6496.js","../../../../chunks/6551.js","../../../../chunks/6561.js","../../../../chunks/6588.js","../../../../chunks/6589.js","../../../../chunks/6703.js","../../../../chunks/6734.js","../../../../chunks/6763.js","../../../../chunks/6769.js","../../../../chunks/6844.js","../../../../chunks/6849.js","../../../../chunks/698.js","../../../../chunks/7023.js","../../../../chunks/7184.js","../../../../chunks/7211.js","../../../../chunks/7247.js","../../../../chunks/7261.js","../../../../chunks/737.js","../../../../chunks/7382.js","../../../../chunks/7469.js","../../../../chunks/7616.js","../../../../chunks/7642.js","../../../../chunks/7716.js","../../../../chunks/7774.js","../../../../chunks/7819.js","../../../../chunks/7828.js","../../../../chunks/7901.js","../../../../chunks/7914.js","../../../../chunks/7965.js","../../../../chunks/8037.js","../../../../chunks/8062.js","../../../../chunks/8171.js","../../../../chunks/8255.js","../../../../chunks/8372.js","../../../../chunks/8416.js","../../../../chunks/8432.js","../../../../chunks/8468.js","../../../../chunks/8469.js","../../../../chunks/8520.js","../../../../chunks/8624.js","../../../../chunks/8635.js","../../../../chunks/8658.js","../../../../chunks/8666.js","../../../../chunks/8708.js","../../../../chunks/8823.js","../../../../chunks/8853.js","../../../../chunks/8895.js","../../../../chunks/8920.js","../../../../chunks/9124.js","../../../../chunks/915.js","../../../../chunks/9343.js","../../../../chunks/9421.js","../../../../chunks/9578.js","../../../../chunks/9613.js","../../../../chunks/965.js","../../../../chunks/9710.js","../../../../chunks/9713.js","../../../../chunks/9755.js","../../../../chunks/9850.js","../../../../chunks/9899.js","../../../../chunks/994.js","../../../../chunks/9994.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/lib/binding.js","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/explain.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-x64.node","../../../../../../node_modules/bundle-name/index.js","../../../../../../node_modules/bundle-name/package.json","../../../../../../node_modules/default-browser-id/index.js","../../../../../../node_modules/default-browser-id/package.json","../../../../../../node_modules/default-browser/index.js","../../../../../../node_modules/default-browser/package.json","../../../../../../node_modules/default-browser/windows.js","../../../../../../node_modules/define-lazy-prop/index.js","../../../../../../node_modules/define-lazy-prop/package.json","../../../../../../node_modules/is-docker/index.js","../../../../../../node_modules/is-docker/package.json","../../../../../../node_modules/is-in-ssh/index.js","../../../../../../node_modules/is-in-ssh/package.json","../../../../../../node_modules/is-inside-container/index.js","../../../../../../node_modules/is-inside-container/package.json","../../../../../../node_modules/is-wsl/index.js","../../../../../../node_modules/is-wsl/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/open/index.js","../../../../../../node_modules/open/package.json","../../../../../../node_modules/open/xdg-open","../../../../../../node_modules/powershell-utils/index.js","../../../../../../node_modules/powershell-utils/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/run-applescript/index.js","../../../../../../node_modules/run-applescript/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/wsl-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/package.json","../../../../../../node_modules/wsl-utils/package.json","../../../../../../node_modules/wsl-utils/utilities.js","../../../../../../package.json","../../../../../../src/shared/components/package.json","../../../../../package.json","../../../../chunks/1129.js","../../../../chunks/1152.js","../../../../chunks/1159.js","../../../../chunks/1204.js","../../../../chunks/1227.js","../../../../chunks/1245.js","../../../../chunks/1320.js","../../../../chunks/1336.js","../../../../chunks/1432.js","../../../../chunks/1452.js","../../../../chunks/1455.js","../../../../chunks/1487.js","../../../../chunks/1533.js","../../../../chunks/1764.js","../../../../chunks/1778.js","../../../../chunks/1794.js","../../../../chunks/1813.js","../../../../chunks/1854.js","../../../../chunks/1863.js","../../../../chunks/1930.js","../../../../chunks/1952.js","../../../../chunks/1994.js","../../../../chunks/1998.js","../../../../chunks/2051.js","../../../../chunks/206.js","../../../../chunks/2116.js","../../../../chunks/2217.js","../../../../chunks/2380.js","../../../../chunks/24.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2460.js","../../../../chunks/2592.js","../../../../chunks/2600.js","../../../../chunks/3016.js","../../../../chunks/3097.js","../../../../chunks/318.js","../../../../chunks/3225.js","../../../../chunks/3306.js","../../../../chunks/3340.js","../../../../chunks/3535.js","../../../../chunks/3546.js","../../../../chunks/3558.js","../../../../chunks/3593.js","../../../../chunks/3676.js","../../../../chunks/368.js","../../../../chunks/385.js","../../../../chunks/3859.js","../../../../chunks/3894.js","../../../../chunks/3919.js","../../../../chunks/392.js","../../../../chunks/3943.js","../../../../chunks/3966.js","../../../../chunks/4000.js","../../../../chunks/4033.js","../../../../chunks/4037.js","../../../../chunks/4072.js","../../../../chunks/4114.js","../../../../chunks/4123.js","../../../../chunks/4125.js","../../../../chunks/4152.js","../../../../chunks/4199.js","../../../../chunks/4247.js","../../../../chunks/4334.js","../../../../chunks/4406.js","../../../../chunks/4452.js","../../../../chunks/4492.js","../../../../chunks/4521.js","../../../../chunks/4547.js","../../../../chunks/4685.js","../../../../chunks/4730.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4780.js","../../../../chunks/4876.js","../../../../chunks/4892.js","../../../../chunks/4903.js","../../../../chunks/4954.js","../../../../chunks/499.js","../../../../chunks/5055.js","../../../../chunks/507.js","../../../../chunks/5081.js","../../../../chunks/5173.js","../../../../chunks/524.js","../../../../chunks/5258.js","../../../../chunks/5260.js","../../../../chunks/5335.js","../../../../chunks/539.js","../../../../chunks/5433.js","../../../../chunks/5497.js","../../../../chunks/5560.js","../../../../chunks/5573.js","../../../../chunks/5615.js","../../../../chunks/5699.js","../../../../chunks/5765.js","../../../../chunks/5781.js","../../../../chunks/5827.js","../../../../chunks/6000.js","../../../../chunks/6070.js","../../../../chunks/6103.js","../../../../chunks/620.js","../../../../chunks/6244.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6353.js","../../../../chunks/6403.js","../../../../chunks/6427.js","../../../../chunks/6496.js","../../../../chunks/6551.js","../../../../chunks/6561.js","../../../../chunks/6565.js","../../../../chunks/6588.js","../../../../chunks/6589.js","../../../../chunks/6703.js","../../../../chunks/6734.js","../../../../chunks/6763.js","../../../../chunks/6844.js","../../../../chunks/6849.js","../../../../chunks/698.js","../../../../chunks/7023.js","../../../../chunks/7184.js","../../../../chunks/7211.js","../../../../chunks/7247.js","../../../../chunks/737.js","../../../../chunks/7382.js","../../../../chunks/7469.js","../../../../chunks/7616.js","../../../../chunks/7642.js","../../../../chunks/7716.js","../../../../chunks/7774.js","../../../../chunks/7819.js","../../../../chunks/7828.js","../../../../chunks/7901.js","../../../../chunks/7914.js","../../../../chunks/7965.js","../../../../chunks/8037.js","../../../../chunks/8062.js","../../../../chunks/8171.js","../../../../chunks/8255.js","../../../../chunks/8372.js","../../../../chunks/8416.js","../../../../chunks/8432.js","../../../../chunks/8468.js","../../../../chunks/8469.js","../../../../chunks/8520.js","../../../../chunks/8624.js","../../../../chunks/8658.js","../../../../chunks/8666.js","../../../../chunks/8708.js","../../../../chunks/8823.js","../../../../chunks/8853.js","../../../../chunks/8895.js","../../../../chunks/8920.js","../../../../chunks/8988.js","../../../../chunks/9124.js","../../../../chunks/915.js","../../../../chunks/9219.js","../../../../chunks/9243.js","../../../../chunks/9326.js","../../../../chunks/9343.js","../../../../chunks/9421.js","../../../../chunks/9489.js","../../../../chunks/9578.js","../../../../chunks/9594.js","../../../../chunks/9613.js","../../../../chunks/965.js","../../../../chunks/9710.js","../../../../chunks/9713.js","../../../../chunks/9755.js","../../../../chunks/9850.js","../../../../chunks/9899.js","../../../../chunks/9994.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|