switchboard-router 0.9.35 → 0.9.36
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/static/chunks/1321-c1528d39ed74184d.js → .next/static/chunks/1321-76c1ce5818ad2fde.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-8049ea316a248839.js +1 -0
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +16 -16
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.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.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.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.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/combos/routing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.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.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.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.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.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.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.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.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.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.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.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.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/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- 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-full-catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/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/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/routable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/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/pricing/defaults/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.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/routing/feedback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/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/skills/[id]/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/token-saver/vault-stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +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/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +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 +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +16 -16
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/1351.js +1 -1
- package/app/.next-cli-build/server/chunks/1792.js +2 -2
- package/app/.next-cli-build/server/chunks/3423.js +1 -1
- package/app/.next-cli-build/server/chunks/7201.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +7 -7
- package/app/.next-cli-build/server/chunks/9698.js +1 -1
- package/app/.next-cli-build/server/chunks/static/media/{versions.dcff05ae.json → versions.d3affa61.json} +6 -6
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/{.next/static/chunks/1321-c1528d39ed74184d.js → .next-cli-build/static/chunks/1321-76c1ce5818ad2fde.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-8049ea316a248839.js +1 -0
- package/app/open-sse/identity/snapshots/versions.json +6 -6
- package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
- package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js +0 -1
- /package/app/.next/static/{YkHM5TQKLwTu2Dq4Ww-WE → ZkCKlL0Lgh8LMplBc9rvl}/_buildManifest.js +0 -0
- /package/app/.next/static/{YkHM5TQKLwTu2Dq4Ww-WE → ZkCKlL0Lgh8LMplBc9rvl}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{YkHM5TQKLwTu2Dq4Ww-WE → ZkCKlL0Lgh8LMplBc9rvl}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{YkHM5TQKLwTu2Dq4Ww-WE → ZkCKlL0Lgh8LMplBc9rvl}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{11059:(e,o,t)=>{"use strict";t.d(o,{C:()=>r});var n=t(12115);function r(e=2e3){let[o,t]=(0,n.useState)(null),s=(0,n.useRef)(null),l=(0,n.useCallback)(async(o,n="default")=>{let r=async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(o);else{let e=document.createElement("textarea");e.value=o,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e);try{if(e.select(),!document.execCommand("copy"))throw Error("Clipboard copy was rejected")}finally{document.body.removeChild(e)}}};try{return await r(),t(n),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{t(null)},e),!0}catch{return!1}},[e]);return(0,n.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{copied:o,copy:l}}},14051:(e,o,t)=>{e.exports=t(34701)()},21172:(e,o,t)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"useMergedRef",{enumerable:!0,get:function(){return r}});let n=t(12115);function r(e,o){let t=(0,n.useRef)(null),r=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=t.current;e&&(t.current=null,e());let o=r.current;o&&(r.current=null,o())}else e&&(t.current=s(e,n)),o&&(r.current=s(o,n))},[e,o])}function s(e,o){if("function"!=typeof e)return e.current=o,()=>{e.current=null};{let t=e(o);return"function"==typeof t?t:()=>e(null)}}("function"==typeof o.default||"object"==typeof o.default&&null!==o.default)&&void 0===o.default.__esModule&&(Object.defineProperty(o.default,"__esModule",{value:!0}),Object.assign(o.default,o),e.exports=o.default)},34701:(e,o,t)=>{"use strict";var n=t(82114);function r(){}function s(){}s.resetWarningCache=r,e.exports=function(){function e(e,o,t,r,s,l){if(l!==n){var a=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function o(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:o,element:e,elementType:e,instanceOf:o,node:e,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:s,resetWarningCache:r};return t.PropTypes=t,t}},48420:(e,o,t)=>{Promise.resolve().then(t.bind(t,63100))},63100:(e,o,t)=>{"use strict";t.d(o,{default:()=>p});var n=t(95155),r=t(12115),s=t(98500),l=t.n(s),a=t(73321),i=t(14051),d=t.n(i),c=t(11059);let u={fallback:"fallback","round-robin":"round-robin",fusion:"fusion",auto:"auto"};function p({initialData:e}){let o=(0,a.useRouter)(),[t,s]=(0,r.useState)(null),[i,d]=(0,r.useState)(null),[m,x]=(0,r.useState)(!1),{copied:b,copy:g}=(0,c.C)(),h=e?.providerCount??0,y=e?.connectionCount??h,v=(e?.readyProviderCount??0)>0,j=e?.keyCount??0,S=e?.comboCount??0,E=e?.defaultCombo||null,C=e?.learningSummary||null,k=e?.loadError||null,w=!!E?.isAuto,M=E?.strategy||"fallback";(0,r.useEffect)(()=>{s(window.location.origin||null)},[]),(0,r.useEffect)(()=>{let e=!1;return fetch("/api/usage/stats?period=24h").then(e=>{if(!e.ok)throw Error(`stats request failed: ${e.status}`);return e.json()}).then(o=>{e||d(o)}).catch(()=>{e||x(!0)}),()=>{e=!0}},[]);let P=e?.endpointUrls,B=e?.endpointHost||"127.0.0.1:20128",N=(0,r.useMemo)(()=>{let e=function({serverUrls:e=null,browserOrigin:o=null}={}){let t=Array.isArray(e)?[...e]:[];if(o){let e=`${String(o).replace(/\/$/,"")}/v1`;t.some(o=>o.url===e)||t.unshift({label:"This browser",url:e})}return t}({serverUrls:P,browserOrigin:t});return e.length>0?e:[{label:"Local",url:`http://${B}/v1`}]},[P,t,B]),R=(0,r.useMemo)(()=>{if(m||!i)return[{label:"Requests \xb7 24h",value:"—"},{label:"Tokens in",value:"—"},{label:"Tokens out",value:"—"},{label:"Est. cost",value:"—"}];let e=i?.totalRequests??i?.requests??0,o=i?.totalPromptTokens??0,t=i?.totalCompletionTokens??0,n=i?.totalCost??0;return[{label:"Requests \xb7 24h",value:f(e)},{label:"Tokens in",value:f(o)},{label:"Tokens out",value:f(t)},{label:"Est. cost",value:n?`$${Number(n).toFixed(2)}`:"$0.00"}]},[i,m]),A=(0,r.useMemo)(()=>E?w?[["Router",E.routerModel||"not configured"],["Worker pool",`${E.workerCount||0} workers`],["Objective",E.objective||"balanced"],["Exploration",E.exploration||"5%"]]:"fusion"===M?[["Panel",`${E.workerCount||0} models`],["Judge",E.judgeModel||"first model"],["Calls / request","N+1 (panel + judge)"],["Capacity switch",E.capacityAutoSwitch?"on":"off"]]:"round-robin"===M?[["Pool",`${E.workerCount||0} models`],["Rotation","spread load across models"],["Capacity switch",E.capacityAutoSwitch?"on":"off"],["On failure","try next in rotation"]]:[["Pool",`${E.workerCount||0} models`],["Order","try in listed order"],["Capacity switch",!1!==E.capacityAutoSwitch?"on":"off"],["On failure","next model"]]:[["Combos","none configured"],["Strategy","—"],["Models","—"],["Tip","Create a combo to group models"]],[E,w,M]);return(0,n.jsxs)("div",{className:"flex flex-col w-full",style:{gap:16,maxWidth:1120},children:[(0,n.jsxs)("div",{className:"flex flex-col",style:{gap:4},children:[(0,n.jsx)("span",{style:{fontSize:17,fontWeight:600,color:"#ECE4D2"},children:"Overview"}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--color-text-subtle)",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:"everything routing through your endpoint, at a glance"})]}),k&&(0,n.jsxs)("div",{role:"alert",className:"border-[#E5B454]",style:{background:"#1E1A13",borderStyle:"solid",borderWidth:1,borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center",style:{gap:8,marginBottom:8},children:[(0,n.jsx)("span",{className:"material-symbols-outlined","aria-hidden":"true",style:{fontSize:18,color:"#E5B454"},children:"warning"}),(0,n.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"#E5B454"},children:["Couldn't read dashboard data: ",k]})]}),(0,n.jsx)("div",{className:"text-text-subtle",style:{fontSize:12,marginBottom:12},children:"The numbers below may be incomplete. Check the server logs and try again."}),(0,n.jsx)("button",{type:"button",onClick:()=>o.refresh(),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:8,background:"#E5B454",color:"#1E1A13",fontSize:12,fontWeight:600,border:"none",cursor:"pointer"},children:"Retry"})]}),0===h&&!k&&(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #E5B454",borderRadius:12,padding:18},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"#E5B454",marginBottom:8},children:"Connect your first provider to get started"}),(0,n.jsx)("div",{style:{fontSize:12,color:"#8A7F66",marginBottom:12},children:"Add an API key for any provider to start routing requests through Switchboard."}),(0,n.jsx)(l(),{href:"/dashboard/providers",style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:8,background:"#E5B454",color:"#1E1A13",fontSize:12,fontWeight:600,textDecoration:"none"},children:"Connect Provider"})]}),(0,n.jsxs)("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2",children:[(0,n.jsxs)("div",{className:"flex flex-col justify-between",style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:12},children:[(0,n.jsx)("span",{style:{fontSize:10.5,letterSpacing:"1.2px",color:"#8A7F66",textTransform:"uppercase",fontWeight:600},children:"Endpoint"}),(0,n.jsxs)("span",{className:"flex items-center gap-[7px]",style:{fontSize:11.5,color:v?"#74C08A":"#8A7F66",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:[(0,n.jsx)("span",{className:"console-online-dot",style:v?void 0:{background:"#6F6653",boxShadow:"none"}}),v?"online":h>0?"providers unavailable":"no providers"]})]}),(0,n.jsx)("div",{className:"flex flex-col",style:{gap:10},children:N.map(e=>{let o=`overview_endpoint_${e.url}`;return(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,n.jsx)("span",{className:"shrink-0",style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",textTransform:"uppercase",letterSpacing:"0.5px",color:"#8A7F66",border:"1px solid #3A3221",borderRadius:999,padding:"2px 8px",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{className:"truncate",title:e.url,style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:13,color:"#E5B454"},children:e.url})]}),(0,n.jsx)("button",{type:"button",onClick:()=>g(e.url,o),className:"p-1.5 rounded hover:bg-white/10 text-[#8A7F66] hover:text-[#E5B454] transition-colors shrink-0",title:`Copy ${e.label} endpoint URL`,"aria-label":`Copy ${e.label} endpoint URL`,children:(0,n.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:b===o?"check":"content_copy"})})]},e.url)})})]}),(0,n.jsxs)("div",{style:{fontSize:11.5,color:"#6F6653",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",marginTop:14},children:[j," API key",1===j?"":"s"," \xb7 ",y," provider",1===y?"":"s"," connected"]})]}),(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:12},children:[(0,n.jsx)("span",{style:{fontSize:10.5,letterSpacing:"1.2px",color:"#8A7F66",textTransform:"uppercase",fontWeight:600},children:w?"Learning":"Combos"}),(0,n.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",padding:"2px 8px",borderRadius:999,textTransform:"uppercase",letterSpacing:"0.5px",background:"rgba(229,180,84,.15)",color:"#E5B454",border:"1px solid rgba(229,180,84,.4)"},children:w?C?.freezeLearning?"frozen":C?.version?`v${C.version}`:"no version yet":S?`${S} configured`:"none"})]}),(0,n.jsxs)("div",{className:"flex items-end gap-2.5",style:{marginBottom:3},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:32,fontWeight:600,lineHeight:1,color:"#ECE4D2"},children:w?C?.evalScore!=null?Number(C.evalScore).toFixed(0):"—":String(S)}),(0,n.jsx)("span",{style:{fontSize:11,color:w?"#74C08A":"#A99E86",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",paddingBottom:3},children:w?"eval score":"combos"})]}),(0,n.jsx)("div",{style:{fontSize:11,color:"#6F6653",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",marginBottom:14},children:w?"Auto strategy \xb7 relearn from Combos → Insights":"Group models \xb7 fallback / round-robin / fusion / auto"}),(0,n.jsxs)("div",{className:"flex gap-2 items-center flex-wrap",children:[(0,n.jsx)(l(),{href:"/dashboard/combos",style:{display:"inline-flex",alignItems:"center",gap:7,background:"rgba(229,180,84,.15)",border:"1px solid rgba(229,180,84,.4)",borderRadius:7,padding:"7px 12px",fontSize:12,color:"#E5B454",fontFamily:"inherit"},children:S?"Manage combos":"Create combo"}),w&&E?.name&&(0,n.jsx)(l(),{href:`/dashboard/combos/routing?combo=${encodeURIComponent(E.name)}`,style:{display:"inline-flex",alignItems:"center",gap:7,background:"transparent",border:"1px solid #3A3221",borderRadius:7,padding:"7px 10px",fontSize:12,color:"#A99E86"},children:"Routing insights"})]})]})]}),(0,n.jsx)("div",{className:"grid gap-3 grid-cols-2 lg:grid-cols-4",children:R.map(e=>(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:11,padding:15},children:[(0,n.jsx)("div",{style:{fontSize:10,letterSpacing:"0.6px",color:"#6F6653",textTransform:"uppercase",marginBottom:8},children:e.label}),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:21,fontWeight:600,color:"#ECE4D2"},children:e.value})]},e.label))}),m&&(0,n.jsx)("div",{role:"status",className:"text-text-subtle",style:{fontSize:11.5,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:"stats unavailable"}),(0,n.jsxs)("div",{className:"grid gap-4 items-start grid-cols-1 md:grid-cols-2",children:[(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:14},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#ECE4D2"},children:"Active routing"}),(0,n.jsx)(l(),{href:w&&E?.name?`/dashboard/combos/routing?combo=${encodeURIComponent(E.name)}`:"/dashboard/combos",style:{padding:"6px 12px",borderRadius:7,fontSize:11.5,border:"1px solid #3A3221",background:"transparent",color:"#A99E86"},children:w?"View insights":"Open combos"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2.5",style:{marginBottom:14},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:14,fontWeight:600,color:"#ECE4D2"},children:E?.name||"—"}),(0,n.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",padding:"2px 8px",borderRadius:999,textTransform:"uppercase",letterSpacing:"0.5px",background:"rgba(229,180,84,.15)",color:"#E5B454",border:"1px solid rgba(229,180,84,.4)"},children:u[M]||M||"fallback"})]}),(0,n.jsx)("div",{className:"flex flex-col",children:A.map(([e,o],t,r)=>(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",style:{padding:"9px 0",borderBottom:t<r.length-1?"1px solid #241F16":"none"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"#8A7F66"},children:e}),(0,n.jsx)("span",{className:"truncate text-right",style:{fontSize:12,color:"#A99E86",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",maxWidth:"60%"},title:String(o),children:o})]},e))})]}),(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:16},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#ECE4D2"},children:"Quota"}),(0,n.jsxs)("span",{className:"text-text-subtle",style:{fontSize:11,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:[y," connections"]})]}),(0,n.jsx)(l(),{href:"/dashboard/quota",style:{display:"inline-flex",alignItems:"center",gap:7,background:"transparent",border:"1px solid #3A3221",borderRadius:7,padding:"7px 12px",fontSize:12,color:"#A99E86",textDecoration:"none"},children:"Open quota dashboard →"}),(0,n.jsx)("div",{className:"text-text-subtle",style:{fontSize:11.5,marginTop:12},children:"Per-account limits and reset timers live on the Quota page."})]})]})]})}function f(e){let o=Number(e)||0;return o>=999950?`${(o/1e6).toFixed(1)}M`:o>=999.95?`${(o/1e3).toFixed(1)}k`:String(Math.round(o))}p.propTypes={initialData:d().object}},73321:(e,o,t)=>{"use strict";var n=t(74645);t.o(n,"notFound")&&t.d(o,{notFound:function(){return n.notFound}}),t.o(n,"useParams")&&t.d(o,{useParams:function(){return n.useParams}}),t.o(n,"usePathname")&&t.d(o,{usePathname:function(){return n.usePathname}}),t.o(n,"useRouter")&&t.d(o,{useRouter:function(){return n.useRouter}}),t.o(n,"useSearchParams")&&t.d(o,{useSearchParams:function(){return n.useSearchParams}})},82114:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=48420)),_N_E=e.O()}]);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"claude-cli": {
|
|
3
3
|
"npm": "@anthropic-ai/claude-code",
|
|
4
|
-
"version": "2.1.
|
|
5
|
-
"latestVersion": "2.1.
|
|
6
|
-
"capturedAt": "2026-
|
|
7
|
-
"releasedAt": "2026-
|
|
8
|
-
"tlsSpecRev": "claude-code-2.1.
|
|
9
|
-
"packageVersion": "0.
|
|
4
|
+
"version": "2.1.289",
|
|
5
|
+
"latestVersion": "2.1.289",
|
|
6
|
+
"capturedAt": "2026-10-05T00:29:45.739Z",
|
|
7
|
+
"releasedAt": "2026-10-03T20:12:02.717Z",
|
|
8
|
+
"tlsSpecRev": "claude-code-2.1.289",
|
|
9
|
+
"packageVersion": "0.128.0",
|
|
10
10
|
"runtimeVersion": "v26.3.0",
|
|
11
11
|
"entrypoint": "cli",
|
|
12
12
|
"betas": "claude-code-20250219,interleaved-thinking-2025-05-14,redact-thinking-2026-02-12,thinking-token-count-2026-05-13,context-management-2025-06-27,prompt-caching-scope-2026-01-05,mid-conversation-system-2026-04-07,effort-2025-11-24,structured-outputs-2025-12-15"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/app/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{11059:(e,o,t)=>{"use strict";t.d(o,{C:()=>r});var n=t(12115);function r(e=2e3){let[o,t]=(0,n.useState)(null),s=(0,n.useRef)(null),a=(0,n.useCallback)(async(o,n="default")=>{let r=async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(o);else{let e=document.createElement("textarea");e.value=o,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e);try{if(e.select(),!document.execCommand("copy"))throw Error("Clipboard copy was rejected")}finally{document.body.removeChild(e)}}};try{return await r(),t(n),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{t(null)},e),!0}catch{return!1}},[e]);return(0,n.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{copied:o,copy:a}}},14051:(e,o,t)=>{e.exports=t(34701)()},21172:(e,o,t)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"useMergedRef",{enumerable:!0,get:function(){return r}});let n=t(12115);function r(e,o){let t=(0,n.useRef)(null),r=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=t.current;e&&(t.current=null,e());let o=r.current;o&&(r.current=null,o())}else e&&(t.current=s(e,n)),o&&(r.current=s(o,n))},[e,o])}function s(e,o){if("function"!=typeof e)return e.current=o,()=>{e.current=null};{let t=e(o);return"function"==typeof t?t:()=>e(null)}}("function"==typeof o.default||"object"==typeof o.default&&null!==o.default)&&void 0===o.default.__esModule&&(Object.defineProperty(o.default,"__esModule",{value:!0}),Object.assign(o.default,o),e.exports=o.default)},34701:(e,o,t)=>{"use strict";var n=t(82114);function r(){}function s(){}s.resetWarningCache=r,e.exports=function(){function e(e,o,t,r,s,a){if(a!==n){var l=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function o(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:o,element:e,elementType:e,instanceOf:o,node:e,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:s,resetWarningCache:r};return t.PropTypes=t,t}},48420:(e,o,t)=>{Promise.resolve().then(t.bind(t,55084))},55084:(e,o,t)=>{"use strict";t.d(o,{default:()=>p});var n=t(95155),r=t(12115),s=t(98500),a=t.n(s),l=t(73321),i=t(14051),d=t.n(i),c=t(11059);let u={fallback:"fallback","round-robin":"round-robin",fusion:"fusion",auto:"auto"};function p({initialData:e}){let o=(0,l.useRouter)(),[t,s]=(0,r.useState)(e?.endpointHost||"127.0.0.1:20128"),[i,d]=(0,r.useState)(null),[m,x]=(0,r.useState)(!1),{copied:b,copy:g}=(0,c.C)(),h=e?.providerCount??0,y=e?.connectionCount??h,v=(e?.readyProviderCount??0)>0,j=e?.keyCount??0,E=e?.comboCount??0,S=e?.defaultCombo||null,C=e?.learningSummary||null,k=e?.loadError||null,w=!!S?.isAuto,B=S?.strategy||"fallback";(0,r.useEffect)(()=>{s(window.location.host||"127.0.0.1:20128")},[]),(0,r.useEffect)(()=>{let e=!1;return fetch("/api/usage/stats?period=24h").then(e=>{if(!e.ok)throw Error(`stats request failed: ${e.status}`);return e.json()}).then(o=>{e||d(o)}).catch(()=>{e||x(!0)}),()=>{e=!0}},[]);let P=`http://${t}/v1`,M=(0,r.useMemo)(()=>{if(m||!i)return[{label:"Requests \xb7 24h",value:"—"},{label:"Tokens in",value:"—"},{label:"Tokens out",value:"—"},{label:"Est. cost",value:"—"}];let e=i?.totalRequests??i?.requests??0,o=i?.totalPromptTokens??0,t=i?.totalCompletionTokens??0,n=i?.totalCost??0;return[{label:"Requests \xb7 24h",value:f(e)},{label:"Tokens in",value:f(o)},{label:"Tokens out",value:f(t)},{label:"Est. cost",value:n?`$${Number(n).toFixed(2)}`:"$0.00"}]},[i,m]),R=(0,r.useMemo)(()=>S?w?[["Router",S.routerModel||"not configured"],["Worker pool",`${S.workerCount||0} workers`],["Objective",S.objective||"balanced"],["Exploration",S.exploration||"5%"]]:"fusion"===B?[["Panel",`${S.workerCount||0} models`],["Judge",S.judgeModel||"first model"],["Calls / request","N+1 (panel + judge)"],["Capacity switch",S.capacityAutoSwitch?"on":"off"]]:"round-robin"===B?[["Pool",`${S.workerCount||0} models`],["Rotation","spread load across models"],["Capacity switch",S.capacityAutoSwitch?"on":"off"],["On failure","try next in rotation"]]:[["Pool",`${S.workerCount||0} models`],["Order","try in listed order"],["Capacity switch",!1!==S.capacityAutoSwitch?"on":"off"],["On failure","next model"]]:[["Combos","none configured"],["Strategy","—"],["Models","—"],["Tip","Create a combo to group models"]],[S,w,B]);return(0,n.jsxs)("div",{className:"flex flex-col w-full",style:{gap:16,maxWidth:1120},children:[(0,n.jsxs)("div",{className:"flex flex-col",style:{gap:4},children:[(0,n.jsx)("span",{style:{fontSize:17,fontWeight:600,color:"#ECE4D2"},children:"Overview"}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--color-text-subtle)",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:"everything routing through your endpoint, at a glance"})]}),k&&(0,n.jsxs)("div",{role:"alert",className:"border-[#E5B454]",style:{background:"#1E1A13",borderStyle:"solid",borderWidth:1,borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center",style:{gap:8,marginBottom:8},children:[(0,n.jsx)("span",{className:"material-symbols-outlined","aria-hidden":"true",style:{fontSize:18,color:"#E5B454"},children:"warning"}),(0,n.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"#E5B454"},children:["Couldn't read dashboard data: ",k]})]}),(0,n.jsx)("div",{className:"text-text-subtle",style:{fontSize:12,marginBottom:12},children:"The numbers below may be incomplete. Check the server logs and try again."}),(0,n.jsx)("button",{type:"button",onClick:()=>o.refresh(),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:8,background:"#E5B454",color:"#1E1A13",fontSize:12,fontWeight:600,border:"none",cursor:"pointer"},children:"Retry"})]}),0===h&&!k&&(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #E5B454",borderRadius:12,padding:18},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"#E5B454",marginBottom:8},children:"Connect your first provider to get started"}),(0,n.jsx)("div",{style:{fontSize:12,color:"#8A7F66",marginBottom:12},children:"Add an API key for any provider to start routing requests through Switchboard."}),(0,n.jsx)(a(),{href:"/dashboard/providers",style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:8,background:"#E5B454",color:"#1E1A13",fontSize:12,fontWeight:600,textDecoration:"none"},children:"Connect Provider"})]}),(0,n.jsxs)("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2",children:[(0,n.jsxs)("div",{className:"flex flex-col justify-between",style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:12},children:[(0,n.jsx)("span",{style:{fontSize:10.5,letterSpacing:"1.2px",color:"#8A7F66",textTransform:"uppercase",fontWeight:600},children:"Endpoint"}),(0,n.jsxs)("span",{className:"flex items-center gap-[7px]",style:{fontSize:11.5,color:v?"#74C08A":"#8A7F66",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:[(0,n.jsx)("span",{className:"console-online-dot",style:v?void 0:{background:"#6F6653",boxShadow:"none"}}),v?"online":h>0?"providers unavailable":"no providers"]})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:16,color:"#E5B454",wordBreak:"break-all"},children:P}),(0,n.jsx)("button",{type:"button",onClick:()=>g(P,"overview_endpoint"),className:"p-1.5 rounded hover:bg-white/10 text-[#8A7F66] hover:text-[#E5B454] transition-colors shrink-0",title:"Copy endpoint URL","aria-label":"Copy endpoint URL",children:(0,n.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"overview_endpoint"===b?"check":"content_copy"})})]})]}),(0,n.jsxs)("div",{style:{fontSize:11.5,color:"#6F6653",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",marginTop:14},children:[j," API key",1===j?"":"s"," \xb7 ",y," provider",1===y?"":"s"," connected"]})]}),(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:12},children:[(0,n.jsx)("span",{style:{fontSize:10.5,letterSpacing:"1.2px",color:"#8A7F66",textTransform:"uppercase",fontWeight:600},children:w?"Learning":"Combos"}),(0,n.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",padding:"2px 8px",borderRadius:999,textTransform:"uppercase",letterSpacing:"0.5px",background:"rgba(229,180,84,.15)",color:"#E5B454",border:"1px solid rgba(229,180,84,.4)"},children:w?C?.freezeLearning?"frozen":C?.version?`v${C.version}`:"no version yet":E?`${E} configured`:"none"})]}),(0,n.jsxs)("div",{className:"flex items-end gap-2.5",style:{marginBottom:3},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:32,fontWeight:600,lineHeight:1,color:"#ECE4D2"},children:w?C?.evalScore!=null?Number(C.evalScore).toFixed(0):"—":String(E)}),(0,n.jsx)("span",{style:{fontSize:11,color:w?"#74C08A":"#A99E86",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",paddingBottom:3},children:w?"eval score":"combos"})]}),(0,n.jsx)("div",{style:{fontSize:11,color:"#6F6653",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",marginBottom:14},children:w?"Auto strategy \xb7 relearn from Combos → Insights":"Group models \xb7 fallback / round-robin / fusion / auto"}),(0,n.jsxs)("div",{className:"flex gap-2 items-center flex-wrap",children:[(0,n.jsx)(a(),{href:"/dashboard/combos",style:{display:"inline-flex",alignItems:"center",gap:7,background:"rgba(229,180,84,.15)",border:"1px solid rgba(229,180,84,.4)",borderRadius:7,padding:"7px 12px",fontSize:12,color:"#E5B454",fontFamily:"inherit"},children:E?"Manage combos":"Create combo"}),w&&S?.name&&(0,n.jsx)(a(),{href:`/dashboard/combos/routing?combo=${encodeURIComponent(S.name)}`,style:{display:"inline-flex",alignItems:"center",gap:7,background:"transparent",border:"1px solid #3A3221",borderRadius:7,padding:"7px 10px",fontSize:12,color:"#A99E86"},children:"Routing insights"})]})]})]}),(0,n.jsx)("div",{className:"grid gap-3 grid-cols-2 lg:grid-cols-4",children:M.map(e=>(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:11,padding:15},children:[(0,n.jsx)("div",{style:{fontSize:10,letterSpacing:"0.6px",color:"#6F6653",textTransform:"uppercase",marginBottom:8},children:e.label}),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:21,fontWeight:600,color:"#ECE4D2"},children:e.value})]},e.label))}),m&&(0,n.jsx)("div",{role:"status",className:"text-text-subtle",style:{fontSize:11.5,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:"stats unavailable"}),(0,n.jsxs)("div",{className:"grid gap-4 items-start grid-cols-1 md:grid-cols-2",children:[(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:14},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#ECE4D2"},children:"Active routing"}),(0,n.jsx)(a(),{href:w&&S?.name?`/dashboard/combos/routing?combo=${encodeURIComponent(S.name)}`:"/dashboard/combos",style:{padding:"6px 12px",borderRadius:7,fontSize:11.5,border:"1px solid #3A3221",background:"transparent",color:"#A99E86"},children:w?"View insights":"Open combos"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2.5",style:{marginBottom:14},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:14,fontWeight:600,color:"#ECE4D2"},children:S?.name||"—"}),(0,n.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",padding:"2px 8px",borderRadius:999,textTransform:"uppercase",letterSpacing:"0.5px",background:"rgba(229,180,84,.15)",color:"#E5B454",border:"1px solid rgba(229,180,84,.4)"},children:u[B]||B||"fallback"})]}),(0,n.jsx)("div",{className:"flex flex-col",children:R.map(([e,o],t,r)=>(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",style:{padding:"9px 0",borderBottom:t<r.length-1?"1px solid #241F16":"none"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"#8A7F66"},children:e}),(0,n.jsx)("span",{className:"truncate text-right",style:{fontSize:12,color:"#A99E86",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",maxWidth:"60%"},title:String(o),children:o})]},e))})]}),(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:16},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#ECE4D2"},children:"Quota"}),(0,n.jsxs)("span",{className:"text-text-subtle",style:{fontSize:11,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:[y," connections"]})]}),(0,n.jsx)(a(),{href:"/dashboard/quota",style:{display:"inline-flex",alignItems:"center",gap:7,background:"transparent",border:"1px solid #3A3221",borderRadius:7,padding:"7px 12px",fontSize:12,color:"#A99E86",textDecoration:"none"},children:"Open quota dashboard →"}),(0,n.jsx)("div",{className:"text-text-subtle",style:{fontSize:11.5,marginTop:12},children:"Per-account limits and reset timers live on the Quota page."})]})]})]})}function f(e){let o=Number(e)||0;return o>=999950?`${(o/1e6).toFixed(1)}M`:o>=999.95?`${(o/1e3).toFixed(1)}k`:String(Math.round(o))}p.propTypes={initialData:d().object}},73321:(e,o,t)=>{"use strict";var n=t(74645);t.o(n,"notFound")&&t.d(o,{notFound:function(){return n.notFound}}),t.o(n,"useParams")&&t.d(o,{useParams:function(){return n.useParams}}),t.o(n,"usePathname")&&t.d(o,{usePathname:function(){return n.usePathname}}),t.o(n,"useRouter")&&t.d(o,{useRouter:function(){return n.useRouter}}),t.o(n,"useSearchParams")&&t.d(o,{useSearchParams:function(){return n.useSearchParams}})},82114:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=48420)),_N_E=e.O()}]);
|
package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{11059:(e,o,t)=>{"use strict";t.d(o,{C:()=>r});var n=t(12115);function r(e=2e3){let[o,t]=(0,n.useState)(null),s=(0,n.useRef)(null),a=(0,n.useCallback)(async(o,n="default")=>{let r=async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(o);else{let e=document.createElement("textarea");e.value=o,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e);try{if(e.select(),!document.execCommand("copy"))throw Error("Clipboard copy was rejected")}finally{document.body.removeChild(e)}}};try{return await r(),t(n),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{t(null)},e),!0}catch{return!1}},[e]);return(0,n.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{copied:o,copy:a}}},14051:(e,o,t)=>{e.exports=t(34701)()},21172:(e,o,t)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"useMergedRef",{enumerable:!0,get:function(){return r}});let n=t(12115);function r(e,o){let t=(0,n.useRef)(null),r=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=t.current;e&&(t.current=null,e());let o=r.current;o&&(r.current=null,o())}else e&&(t.current=s(e,n)),o&&(r.current=s(o,n))},[e,o])}function s(e,o){if("function"!=typeof e)return e.current=o,()=>{e.current=null};{let t=e(o);return"function"==typeof t?t:()=>e(null)}}("function"==typeof o.default||"object"==typeof o.default&&null!==o.default)&&void 0===o.default.__esModule&&(Object.defineProperty(o.default,"__esModule",{value:!0}),Object.assign(o.default,o),e.exports=o.default)},34701:(e,o,t)=>{"use strict";var n=t(82114);function r(){}function s(){}s.resetWarningCache=r,e.exports=function(){function e(e,o,t,r,s,a){if(a!==n){var l=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function o(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:o,element:e,elementType:e,instanceOf:o,node:e,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:s,resetWarningCache:r};return t.PropTypes=t,t}},48420:(e,o,t)=>{Promise.resolve().then(t.bind(t,55084))},55084:(e,o,t)=>{"use strict";t.d(o,{default:()=>p});var n=t(95155),r=t(12115),s=t(98500),a=t.n(s),l=t(73321),i=t(14051),d=t.n(i),c=t(11059);let u={fallback:"fallback","round-robin":"round-robin",fusion:"fusion",auto:"auto"};function p({initialData:e}){let o=(0,l.useRouter)(),[t,s]=(0,r.useState)(e?.endpointHost||"127.0.0.1:20128"),[i,d]=(0,r.useState)(null),[m,x]=(0,r.useState)(!1),{copied:b,copy:g}=(0,c.C)(),h=e?.providerCount??0,y=e?.connectionCount??h,v=(e?.readyProviderCount??0)>0,j=e?.keyCount??0,E=e?.comboCount??0,S=e?.defaultCombo||null,C=e?.learningSummary||null,k=e?.loadError||null,w=!!S?.isAuto,B=S?.strategy||"fallback";(0,r.useEffect)(()=>{s(window.location.host||"127.0.0.1:20128")},[]),(0,r.useEffect)(()=>{let e=!1;return fetch("/api/usage/stats?period=24h").then(e=>{if(!e.ok)throw Error(`stats request failed: ${e.status}`);return e.json()}).then(o=>{e||d(o)}).catch(()=>{e||x(!0)}),()=>{e=!0}},[]);let P=`http://${t}/v1`,M=(0,r.useMemo)(()=>{if(m||!i)return[{label:"Requests \xb7 24h",value:"—"},{label:"Tokens in",value:"—"},{label:"Tokens out",value:"—"},{label:"Est. cost",value:"—"}];let e=i?.totalRequests??i?.requests??0,o=i?.totalPromptTokens??0,t=i?.totalCompletionTokens??0,n=i?.totalCost??0;return[{label:"Requests \xb7 24h",value:f(e)},{label:"Tokens in",value:f(o)},{label:"Tokens out",value:f(t)},{label:"Est. cost",value:n?`$${Number(n).toFixed(2)}`:"$0.00"}]},[i,m]),R=(0,r.useMemo)(()=>S?w?[["Router",S.routerModel||"not configured"],["Worker pool",`${S.workerCount||0} workers`],["Objective",S.objective||"balanced"],["Exploration",S.exploration||"5%"]]:"fusion"===B?[["Panel",`${S.workerCount||0} models`],["Judge",S.judgeModel||"first model"],["Calls / request","N+1 (panel + judge)"],["Capacity switch",S.capacityAutoSwitch?"on":"off"]]:"round-robin"===B?[["Pool",`${S.workerCount||0} models`],["Rotation","spread load across models"],["Capacity switch",S.capacityAutoSwitch?"on":"off"],["On failure","try next in rotation"]]:[["Pool",`${S.workerCount||0} models`],["Order","try in listed order"],["Capacity switch",!1!==S.capacityAutoSwitch?"on":"off"],["On failure","next model"]]:[["Combos","none configured"],["Strategy","—"],["Models","—"],["Tip","Create a combo to group models"]],[S,w,B]);return(0,n.jsxs)("div",{className:"flex flex-col w-full",style:{gap:16,maxWidth:1120},children:[(0,n.jsxs)("div",{className:"flex flex-col",style:{gap:4},children:[(0,n.jsx)("span",{style:{fontSize:17,fontWeight:600,color:"#ECE4D2"},children:"Overview"}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--color-text-subtle)",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:"everything routing through your endpoint, at a glance"})]}),k&&(0,n.jsxs)("div",{role:"alert",className:"border-[#E5B454]",style:{background:"#1E1A13",borderStyle:"solid",borderWidth:1,borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center",style:{gap:8,marginBottom:8},children:[(0,n.jsx)("span",{className:"material-symbols-outlined","aria-hidden":"true",style:{fontSize:18,color:"#E5B454"},children:"warning"}),(0,n.jsxs)("div",{style:{fontSize:14,fontWeight:600,color:"#E5B454"},children:["Couldn't read dashboard data: ",k]})]}),(0,n.jsx)("div",{className:"text-text-subtle",style:{fontSize:12,marginBottom:12},children:"The numbers below may be incomplete. Check the server logs and try again."}),(0,n.jsx)("button",{type:"button",onClick:()=>o.refresh(),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:8,background:"#E5B454",color:"#1E1A13",fontSize:12,fontWeight:600,border:"none",cursor:"pointer"},children:"Retry"})]}),0===h&&!k&&(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #E5B454",borderRadius:12,padding:18},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"#E5B454",marginBottom:8},children:"Connect your first provider to get started"}),(0,n.jsx)("div",{style:{fontSize:12,color:"#8A7F66",marginBottom:12},children:"Add an API key for any provider to start routing requests through Switchboard."}),(0,n.jsx)(a(),{href:"/dashboard/providers",style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:8,background:"#E5B454",color:"#1E1A13",fontSize:12,fontWeight:600,textDecoration:"none"},children:"Connect Provider"})]}),(0,n.jsxs)("div",{className:"grid gap-4 grid-cols-1 md:grid-cols-2",children:[(0,n.jsxs)("div",{className:"flex flex-col justify-between",style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:12},children:[(0,n.jsx)("span",{style:{fontSize:10.5,letterSpacing:"1.2px",color:"#8A7F66",textTransform:"uppercase",fontWeight:600},children:"Endpoint"}),(0,n.jsxs)("span",{className:"flex items-center gap-[7px]",style:{fontSize:11.5,color:v?"#74C08A":"#8A7F66",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:[(0,n.jsx)("span",{className:"console-online-dot",style:v?void 0:{background:"#6F6653",boxShadow:"none"}}),v?"online":h>0?"providers unavailable":"no providers"]})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:16,color:"#E5B454",wordBreak:"break-all"},children:P}),(0,n.jsx)("button",{type:"button",onClick:()=>g(P,"overview_endpoint"),className:"p-1.5 rounded hover:bg-white/10 text-[#8A7F66] hover:text-[#E5B454] transition-colors shrink-0",title:"Copy endpoint URL","aria-label":"Copy endpoint URL",children:(0,n.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"overview_endpoint"===b?"check":"content_copy"})})]})]}),(0,n.jsxs)("div",{style:{fontSize:11.5,color:"#6F6653",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",marginTop:14},children:[j," API key",1===j?"":"s"," \xb7 ",y," provider",1===y?"":"s"," connected"]})]}),(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:12},children:[(0,n.jsx)("span",{style:{fontSize:10.5,letterSpacing:"1.2px",color:"#8A7F66",textTransform:"uppercase",fontWeight:600},children:w?"Learning":"Combos"}),(0,n.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",padding:"2px 8px",borderRadius:999,textTransform:"uppercase",letterSpacing:"0.5px",background:"rgba(229,180,84,.15)",color:"#E5B454",border:"1px solid rgba(229,180,84,.4)"},children:w?C?.freezeLearning?"frozen":C?.version?`v${C.version}`:"no version yet":E?`${E} configured`:"none"})]}),(0,n.jsxs)("div",{className:"flex items-end gap-2.5",style:{marginBottom:3},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:32,fontWeight:600,lineHeight:1,color:"#ECE4D2"},children:w?C?.evalScore!=null?Number(C.evalScore).toFixed(0):"—":String(E)}),(0,n.jsx)("span",{style:{fontSize:11,color:w?"#74C08A":"#A99E86",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",paddingBottom:3},children:w?"eval score":"combos"})]}),(0,n.jsx)("div",{style:{fontSize:11,color:"#6F6653",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",marginBottom:14},children:w?"Auto strategy \xb7 relearn from Combos → Insights":"Group models \xb7 fallback / round-robin / fusion / auto"}),(0,n.jsxs)("div",{className:"flex gap-2 items-center flex-wrap",children:[(0,n.jsx)(a(),{href:"/dashboard/combos",style:{display:"inline-flex",alignItems:"center",gap:7,background:"rgba(229,180,84,.15)",border:"1px solid rgba(229,180,84,.4)",borderRadius:7,padding:"7px 12px",fontSize:12,color:"#E5B454",fontFamily:"inherit"},children:E?"Manage combos":"Create combo"}),w&&S?.name&&(0,n.jsx)(a(),{href:`/dashboard/combos/routing?combo=${encodeURIComponent(S.name)}`,style:{display:"inline-flex",alignItems:"center",gap:7,background:"transparent",border:"1px solid #3A3221",borderRadius:7,padding:"7px 10px",fontSize:12,color:"#A99E86"},children:"Routing insights"})]})]})]}),(0,n.jsx)("div",{className:"grid gap-3 grid-cols-2 lg:grid-cols-4",children:M.map(e=>(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:11,padding:15},children:[(0,n.jsx)("div",{style:{fontSize:10,letterSpacing:"0.6px",color:"#6F6653",textTransform:"uppercase",marginBottom:8},children:e.label}),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:21,fontWeight:600,color:"#ECE4D2"},children:e.value})]},e.label))}),m&&(0,n.jsx)("div",{role:"status",className:"text-text-subtle",style:{fontSize:11.5,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:"stats unavailable"}),(0,n.jsxs)("div",{className:"grid gap-4 items-start grid-cols-1 md:grid-cols-2",children:[(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:14},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#ECE4D2"},children:"Active routing"}),(0,n.jsx)(a(),{href:w&&S?.name?`/dashboard/combos/routing?combo=${encodeURIComponent(S.name)}`:"/dashboard/combos",style:{padding:"6px 12px",borderRadius:7,fontSize:11.5,border:"1px solid #3A3221",background:"transparent",color:"#A99E86"},children:w?"View insights":"Open combos"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2.5",style:{marginBottom:14},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",fontSize:14,fontWeight:600,color:"#ECE4D2"},children:S?.name||"—"}),(0,n.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",padding:"2px 8px",borderRadius:999,textTransform:"uppercase",letterSpacing:"0.5px",background:"rgba(229,180,84,.15)",color:"#E5B454",border:"1px solid rgba(229,180,84,.4)"},children:u[B]||B||"fallback"})]}),(0,n.jsx)("div",{className:"flex flex-col",children:R.map(([e,o],t,r)=>(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",style:{padding:"9px 0",borderBottom:t<r.length-1?"1px solid #241F16":"none"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"#8A7F66"},children:e}),(0,n.jsx)("span",{className:"truncate text-right",style:{fontSize:12,color:"#A99E86",fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace",maxWidth:"60%"},title:String(o),children:o})]},e))})]}),(0,n.jsxs)("div",{style:{background:"#1E1A13",border:"1px solid #332C1E",borderRadius:12,padding:18},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{marginBottom:16},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"#ECE4D2"},children:"Quota"}),(0,n.jsxs)("span",{className:"text-text-subtle",style:{fontSize:11,fontFamily:"var(--font-mono), 'IBM Plex Mono', monospace"},children:[y," connections"]})]}),(0,n.jsx)(a(),{href:"/dashboard/quota",style:{display:"inline-flex",alignItems:"center",gap:7,background:"transparent",border:"1px solid #3A3221",borderRadius:7,padding:"7px 12px",fontSize:12,color:"#A99E86",textDecoration:"none"},children:"Open quota dashboard →"}),(0,n.jsx)("div",{className:"text-text-subtle",style:{fontSize:11.5,marginTop:12},children:"Per-account limits and reset timers live on the Quota page."})]})]})]})}function f(e){let o=Number(e)||0;return o>=999950?`${(o/1e6).toFixed(1)}M`:o>=999.95?`${(o/1e3).toFixed(1)}k`:String(Math.round(o))}p.propTypes={initialData:d().object}},73321:(e,o,t)=>{"use strict";var n=t(74645);t.o(n,"notFound")&&t.d(o,{notFound:function(){return n.notFound}}),t.o(n,"useParams")&&t.d(o,{useParams:function(){return n.useParams}}),t.o(n,"usePathname")&&t.d(o,{usePathname:function(){return n.usePathname}}),t.o(n,"useRouter")&&t.d(o,{useRouter:function(){return n.useRouter}}),t.o(n,"useSearchParams")&&t.d(o,{useSearchParams:function(){return n.useSearchParams}})},82114:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=48420)),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/app/.next-cli-build/static/{YkHM5TQKLwTu2Dq4Ww-WE → ZkCKlL0Lgh8LMplBc9rvl}/_ssgManifest.js
RENAMED
|
File without changes
|