omniroute 2.3.16 → 2.3.17
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/README.md +42 -1
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +53 -53
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route.js +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -2
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -2
- package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -2
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +2 -3
- package/app/.next/server/app/docs/page.js.nft.json +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +53 -53
- package/app/.next/server/chunks/1248.js +1 -1
- package/app/.next/server/chunks/1526.js +1 -1
- package/app/.next/server/chunks/1584.js +1 -1
- package/app/.next/server/chunks/1623.js +1 -1
- package/app/.next/server/chunks/1880.js +1 -1
- package/app/.next/server/chunks/1909.js +1 -1
- package/app/.next/server/chunks/1960.js +1 -1
- package/app/.next/server/chunks/1990.js +1 -1
- package/app/.next/server/chunks/2214.js +1 -1
- package/app/.next/server/chunks/2372.js +1 -1
- package/app/.next/server/chunks/2594.js +1 -1
- package/app/.next/server/chunks/3061.js +1 -1
- package/app/.next/server/chunks/3371.js +1 -1
- package/app/.next/server/chunks/3911.js +1 -1
- package/app/.next/server/chunks/496.js +1 -1
- package/app/.next/server/chunks/5047.js +1 -1
- package/app/.next/server/chunks/5094.js +1 -1
- package/app/.next/server/chunks/5097.js +1 -1
- package/app/.next/server/chunks/5521.js +1 -1
- package/app/.next/server/chunks/5945.js +1 -1
- package/app/.next/server/chunks/5979.js +2 -0
- package/app/.next/server/chunks/6118.js +1 -1
- package/app/.next/server/chunks/6930.js +1 -1
- package/app/.next/server/chunks/7011.js +1 -1
- package/app/.next/server/chunks/708.js +1 -1
- package/app/.next/server/chunks/7650.js +1 -1
- package/app/.next/server/chunks/8220.js +1 -1
- package/app/.next/server/chunks/8369.js +1 -1
- package/app/.next/server/chunks/8464.js +1 -1
- package/app/.next/server/chunks/8706.js +1 -1
- package/app/.next/server/chunks/8976.js +1 -1
- package/app/.next/server/chunks/9119.js +1 -1
- package/app/.next/server/chunks/944.js +1 -1
- package/app/.next/server/chunks/9837.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/5846-91acb28376b52f2b.js +2 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-822261c5b1a31e5f.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-07cbc45d62a20735.js +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/5846-add861cd813aff4e.js +0 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-bcd322cc28b040e9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-adb79ef07d8dd6c5.js +0 -1
- /package/app/.next/static/{sMRknb0_nN4sJNpx0fv_B → QxDWWnX69o-VpbuyG_9Li}/_buildManifest.js +0 -0
- /package/app/.next/static/{sMRknb0_nN4sJNpx0fv_B → QxDWWnX69o-VpbuyG_9Li}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[17267,[\"8039\",\"static/chunks/app/error-32c03f14529d3920.js\"],\"default\"]\n4:I[74581,[],\"\"]\n5:I[37145,[\"8500\",\"static/chunks/8500-2c410174062153d2.js\",\"4345\",\"static/chunks/app/not-found-faf36d2a9a452506.js\"],\"default\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[1009,[\"4209\",\"static/chunks/app/loading-da2f6e1471afc070.js\"],\"default\"]\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[26719,[\"4219\",\"static/chunks/app/global-error-5840b1caa830f2ec.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"
|
|
1
|
+
<!DOCTYPE html><!--QxDWWnX69o_VpbuyG_9Li--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9837b0fbf7de0b62.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-e2e541e45e5f80a8.js" async=""></script><script src="/_next/static/chunks/main-app-ae230f6bf51a5edb.js" async=""></script><script src="/_next/static/chunks/app/error-32c03f14529d3920.js" async=""></script><script src="/_next/static/chunks/8500-2c410174062153d2.js" async=""></script><script src="/_next/static/chunks/app/not-found-faf36d2a9a452506.js" async=""></script><script src="/_next/static/chunks/app/loading-da2f6e1471afc070.js" async=""></script><script src="/_next/static/chunks/app/global-error-5840b1caa830f2ec.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><!--$--><!--html--><!--head--><!--body--><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
|
|
2
|
+
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[17267,[\"8039\",\"static/chunks/app/error-32c03f14529d3920.js\"],\"default\"]\n4:I[74581,[],\"\"]\n5:I[37145,[\"8500\",\"static/chunks/8500-2c410174062153d2.js\",\"4345\",\"static/chunks/app/not-found-faf36d2a9a452506.js\"],\"default\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[1009,[\"4209\",\"static/chunks/app/loading-da2f6e1471afc070.js\"],\"default\"]\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[26719,[\"4219\",\"static/chunks/app/global-error-5840b1caa830f2ec.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"QxDWWnX69o-VpbuyG_9Li\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L5\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},[[\"$\",\"$L9\",\"l\",{}],[],[]],false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nd:[]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\"node\":{\"4048ff007222eeab310a094749f45f91e30aa56016\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"13949\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.ts\",\"exportedName\":\"GET\"},\"407dff04c2f12f917cbe6f0d8b913960f1c36c496d\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"13949\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.ts\",\"exportedName\":\"PUT\"},\"406483ff59c2c3f677e242d0404796139f5348d1b8\":{\"workers\":{\"app/api/cli-tools/backups/route\":{\"moduleId\":\"17567\",\"async\":true}},\"layer\":{\"app/api/cli-tools/backups/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/backups/route.ts\",\"exportedName\":\"DELETE\"},\"40d81804d92ca4bf7ff550ca6ae3d909c8a088be03\":{\"workers\":{\"app/api/cli-tools/backups/route\":{\"moduleId\":\"17567\",\"async\":true}},\"layer\":{\"app/api/cli-tools/backups/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/backups/route.ts\",\"exportedName\":\"POST\"},\"40f8ee0c8ca66c7e660952f20c06c1ce954fecab57\":{\"workers\":{\"app/api/cli-tools/backups/route\":{\"moduleId\":\"17567\",\"async\":true}},\"layer\":{\"app/api/cli-tools/backups/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/backups/route.ts\",\"exportedName\":\"GET\"},\"0078e98dd0cb1b20b6284cadb10571c48833380d8c\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"GET\"},\"4021a6dbbd7ca59e2b98f03be5c0a4d144d2c192c4\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"POST\"},\"4088720ad0c4631c55f2728ca8fcbf98b0f862d7f5\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"PUT\"},\"40fe473abd17f5aa18bd9477f724370e9ce5b1d62e\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"DELETE\"},\"00726b69daa1017948845c7762c0709f19d55f3079\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"55274\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.ts\",\"exportedName\":\"GET\"},\"40750a606807ab2314efdce18474dd43a4d326da1b\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"55274\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.ts\",\"exportedName\":\"DELETE\"},\"40dc932e1cfbdf7a1f31654a716b61af7dd4d438ce\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"55274\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.ts\",\"exportedName\":\"POST\"},\"0070b381431c3986cf5221d64e5563470e4d3c98f1\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"18187\",\"async\":true}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.ts\",\"exportedName\":\"GET\"},\"00dff683420d32cefa489d5f61cff56379b2741361\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"18187\",\"async\":true}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.ts\",\"exportedName\":\"DELETE\"},\"409c84e9d13a7668ce129fb3cf3cc82e53c388d696\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"18187\",\"async\":true}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.ts\",\"exportedName\":\"POST\"},\"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\"node\":{\"4048ff007222eeab310a094749f45f91e30aa56016\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"13949\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.ts\",\"exportedName\":\"GET\"},\"407dff04c2f12f917cbe6f0d8b913960f1c36c496d\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"13949\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.ts\",\"exportedName\":\"PUT\"},\"406483ff59c2c3f677e242d0404796139f5348d1b8\":{\"workers\":{\"app/api/cli-tools/backups/route\":{\"moduleId\":\"17567\",\"async\":true}},\"layer\":{\"app/api/cli-tools/backups/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/backups/route.ts\",\"exportedName\":\"DELETE\"},\"40d81804d92ca4bf7ff550ca6ae3d909c8a088be03\":{\"workers\":{\"app/api/cli-tools/backups/route\":{\"moduleId\":\"17567\",\"async\":true}},\"layer\":{\"app/api/cli-tools/backups/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/backups/route.ts\",\"exportedName\":\"POST\"},\"40f8ee0c8ca66c7e660952f20c06c1ce954fecab57\":{\"workers\":{\"app/api/cli-tools/backups/route\":{\"moduleId\":\"17567\",\"async\":true}},\"layer\":{\"app/api/cli-tools/backups/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/backups/route.ts\",\"exportedName\":\"GET\"},\"0078e98dd0cb1b20b6284cadb10571c48833380d8c\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"GET\"},\"4021a6dbbd7ca59e2b98f03be5c0a4d144d2c192c4\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"POST\"},\"4088720ad0c4631c55f2728ca8fcbf98b0f862d7f5\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"PUT\"},\"40fe473abd17f5aa18bd9477f724370e9ce5b1d62e\":{\"workers\":{\"app/api/cli-tools/codex-profiles/route\":{\"moduleId\":\"45460\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-profiles/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-profiles/route.ts\",\"exportedName\":\"DELETE\"},\"00726b69daa1017948845c7762c0709f19d55f3079\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"55274\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.ts\",\"exportedName\":\"GET\"},\"40750a606807ab2314efdce18474dd43a4d326da1b\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"55274\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.ts\",\"exportedName\":\"DELETE\"},\"40dc932e1cfbdf7a1f31654a716b61af7dd4d438ce\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/route\":{\"moduleId\":\"55274\",\"async\":true}},\"layer\":{\"app/api/cli-tools/antigravity-mitm/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/antigravity-mitm/route.ts\",\"exportedName\":\"POST\"},\"0070b381431c3986cf5221d64e5563470e4d3c98f1\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"18187\",\"async\":true}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.ts\",\"exportedName\":\"GET\"},\"00dff683420d32cefa489d5f61cff56379b2741361\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"18187\",\"async\":true}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.ts\",\"exportedName\":\"DELETE\"},\"409c84e9d13a7668ce129fb3cf3cc82e53c388d696\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"18187\",\"async\":true}},\"layer\":{\"app/api/cli-tools/claude-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/claude-settings/route.ts\",\"exportedName\":\"POST\"},\"00308e914b9fa5d7abbf9729d9087122228f3a49db\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"30282\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.ts\",\"exportedName\":\"GET\"},\"00dceddb4c4274d7e5e14c021ffad828959fb5028a\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"30282\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.ts\",\"exportedName\":\"DELETE\"},\"40468d06deb135aab523946fa73c6d82b3654ea2ca\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"30282\",\"async\":true}},\"layer\":{\"app/api/cli-tools/codex-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/codex-settings/route.ts\",\"exportedName\":\"POST\"},\"0043f3f04e4fe29c4b19a92399755712f39bbc1a9f\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"38481\",\"async\":true}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.ts\",\"exportedName\":\"DELETE\"},\"00cf54f7b0746f5d2cb9b0f8aa85d41ea65eb82e51\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"38481\",\"async\":true}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.ts\",\"exportedName\":\"GET\"},\"40cd1d782309201cf2130cca558c05cfd37e5daaea\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"38481\",\"async\":true}},\"layer\":{\"app/api/cli-tools/droid-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/droid-settings/route.ts\",\"exportedName\":\"POST\"},\"00414abb82142e76c9b53255aec52d88010e944158\":{\"workers\":{\"app/api/cli-tools/cline-settings/route\":{\"moduleId\":\"62956\",\"async\":true}},\"layer\":{\"app/api/cli-tools/cline-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/cline-settings/route.ts\",\"exportedName\":\"GET\"},\"00f18400c2e23d873f0428bcfd4b87a9cb19021f9e\":{\"workers\":{\"app/api/cli-tools/cline-settings/route\":{\"moduleId\":\"62956\",\"async\":true}},\"layer\":{\"app/api/cli-tools/cline-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/cline-settings/route.ts\",\"exportedName\":\"DELETE\"},\"40683847f378c544433bf2e17b1c57ed71855a0ec5\":{\"workers\":{\"app/api/cli-tools/cline-settings/route\":{\"moduleId\":\"62956\",\"async\":true}},\"layer\":{\"app/api/cli-tools/cline-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/cline-settings/route.ts\",\"exportedName\":\"POST\"},\"0091c860a1b5df5f6b51e9889c261d4cfbf47073b2\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"83279\",\"async\":true}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.ts\",\"exportedName\":\"DELETE\"},\"00d6458bec2fd64fe3eaf0a2c08effd089b7c854d6\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"83279\",\"async\":true}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.ts\",\"exportedName\":\"GET\"},\"403e43c1e636a77249c715a0950dd30e12710e9372\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"83279\",\"async\":true}},\"layer\":{\"app/api/cli-tools/openclaw-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/openclaw-settings/route.ts\",\"exportedName\":\"POST\"},\"007c318c09073961c03421cfdf08291b0bf89fa317\":{\"workers\":{\"app/api/cli-tools/kilo-settings/route\":{\"moduleId\":\"94034\",\"async\":true}},\"layer\":{\"app/api/cli-tools/kilo-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/kilo-settings/route.ts\",\"exportedName\":\"DELETE\"},\"00bc4d99aad92b8d18a269c2f0bbfca0c60cd7c155\":{\"workers\":{\"app/api/cli-tools/kilo-settings/route\":{\"moduleId\":\"94034\",\"async\":true}},\"layer\":{\"app/api/cli-tools/kilo-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/kilo-settings/route.ts\",\"exportedName\":\"GET\"},\"409d12e1dc14f7548c164cfa17eb1c0ab467169d09\":{\"workers\":{\"app/api/cli-tools/kilo-settings/route\":{\"moduleId\":\"94034\",\"async\":true}},\"layer\":{\"app/api/cli-tools/kilo-settings/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/kilo-settings/route.ts\",\"exportedName\":\"POST\"},\"60d3fcfbbcb7006d7e50e88c0008c7b4b39a9467c5\":{\"workers\":{\"app/api/cli-tools/runtime/[toolId]/route\":{\"moduleId\":\"73495\",\"async\":false}},\"layer\":{\"app/api/cli-tools/runtime/[toolId]/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/runtime/[toolId]/route.ts\",\"exportedName\":\"GET\"},\"00fd07481bc4404d4a7784c2175f4eab5a7c4d434a\":{\"workers\":{\"app/api/cli-tools/status/route\":{\"moduleId\":\"95893\",\"async\":false}},\"layer\":{\"app/api/cli-tools/status/route\":\"rsc\"},\"filename\":\"app/api/cli-tools/status/route.ts\",\"exportedName\":\"GET\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{"4048ff007222eeab310a094749f45f91e30aa56016":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"13949","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.ts","exportedName":"GET"},"407dff04c2f12f917cbe6f0d8b913960f1c36c496d":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"13949","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.ts","exportedName":"PUT"},"406483ff59c2c3f677e242d0404796139f5348d1b8":{"workers":{"app/api/cli-tools/backups/route":{"moduleId":"17567","async":true}},"layer":{"app/api/cli-tools/backups/route":"rsc"},"filename":"app/api/cli-tools/backups/route.ts","exportedName":"DELETE"},"40d81804d92ca4bf7ff550ca6ae3d909c8a088be03":{"workers":{"app/api/cli-tools/backups/route":{"moduleId":"17567","async":true}},"layer":{"app/api/cli-tools/backups/route":"rsc"},"filename":"app/api/cli-tools/backups/route.ts","exportedName":"POST"},"40f8ee0c8ca66c7e660952f20c06c1ce954fecab57":{"workers":{"app/api/cli-tools/backups/route":{"moduleId":"17567","async":true}},"layer":{"app/api/cli-tools/backups/route":"rsc"},"filename":"app/api/cli-tools/backups/route.ts","exportedName":"GET"},"0078e98dd0cb1b20b6284cadb10571c48833380d8c":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"GET"},"4021a6dbbd7ca59e2b98f03be5c0a4d144d2c192c4":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"POST"},"4088720ad0c4631c55f2728ca8fcbf98b0f862d7f5":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"PUT"},"40fe473abd17f5aa18bd9477f724370e9ce5b1d62e":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"DELETE"},"00726b69daa1017948845c7762c0709f19d55f3079":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"55274","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.ts","exportedName":"GET"},"40750a606807ab2314efdce18474dd43a4d326da1b":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"55274","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.ts","exportedName":"DELETE"},"40dc932e1cfbdf7a1f31654a716b61af7dd4d438ce":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"55274","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.ts","exportedName":"POST"},"0070b381431c3986cf5221d64e5563470e4d3c98f1":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"18187","async":true}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.ts","exportedName":"GET"},"00dff683420d32cefa489d5f61cff56379b2741361":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"18187","async":true}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.ts","exportedName":"DELETE"},"409c84e9d13a7668ce129fb3cf3cc82e53c388d696":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"18187","async":true}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.ts","exportedName":"POST"},"
|
|
1
|
+
{"node":{"4048ff007222eeab310a094749f45f91e30aa56016":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"13949","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.ts","exportedName":"GET"},"407dff04c2f12f917cbe6f0d8b913960f1c36c496d":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"13949","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/alias/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.ts","exportedName":"PUT"},"406483ff59c2c3f677e242d0404796139f5348d1b8":{"workers":{"app/api/cli-tools/backups/route":{"moduleId":"17567","async":true}},"layer":{"app/api/cli-tools/backups/route":"rsc"},"filename":"app/api/cli-tools/backups/route.ts","exportedName":"DELETE"},"40d81804d92ca4bf7ff550ca6ae3d909c8a088be03":{"workers":{"app/api/cli-tools/backups/route":{"moduleId":"17567","async":true}},"layer":{"app/api/cli-tools/backups/route":"rsc"},"filename":"app/api/cli-tools/backups/route.ts","exportedName":"POST"},"40f8ee0c8ca66c7e660952f20c06c1ce954fecab57":{"workers":{"app/api/cli-tools/backups/route":{"moduleId":"17567","async":true}},"layer":{"app/api/cli-tools/backups/route":"rsc"},"filename":"app/api/cli-tools/backups/route.ts","exportedName":"GET"},"0078e98dd0cb1b20b6284cadb10571c48833380d8c":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"GET"},"4021a6dbbd7ca59e2b98f03be5c0a4d144d2c192c4":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"POST"},"4088720ad0c4631c55f2728ca8fcbf98b0f862d7f5":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"PUT"},"40fe473abd17f5aa18bd9477f724370e9ce5b1d62e":{"workers":{"app/api/cli-tools/codex-profiles/route":{"moduleId":"45460","async":true}},"layer":{"app/api/cli-tools/codex-profiles/route":"rsc"},"filename":"app/api/cli-tools/codex-profiles/route.ts","exportedName":"DELETE"},"00726b69daa1017948845c7762c0709f19d55f3079":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"55274","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.ts","exportedName":"GET"},"40750a606807ab2314efdce18474dd43a4d326da1b":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"55274","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.ts","exportedName":"DELETE"},"40dc932e1cfbdf7a1f31654a716b61af7dd4d438ce":{"workers":{"app/api/cli-tools/antigravity-mitm/route":{"moduleId":"55274","async":true}},"layer":{"app/api/cli-tools/antigravity-mitm/route":"rsc"},"filename":"app/api/cli-tools/antigravity-mitm/route.ts","exportedName":"POST"},"0070b381431c3986cf5221d64e5563470e4d3c98f1":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"18187","async":true}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.ts","exportedName":"GET"},"00dff683420d32cefa489d5f61cff56379b2741361":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"18187","async":true}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.ts","exportedName":"DELETE"},"409c84e9d13a7668ce129fb3cf3cc82e53c388d696":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"18187","async":true}},"layer":{"app/api/cli-tools/claude-settings/route":"rsc"},"filename":"app/api/cli-tools/claude-settings/route.ts","exportedName":"POST"},"00308e914b9fa5d7abbf9729d9087122228f3a49db":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"30282","async":true}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.ts","exportedName":"GET"},"00dceddb4c4274d7e5e14c021ffad828959fb5028a":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"30282","async":true}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.ts","exportedName":"DELETE"},"40468d06deb135aab523946fa73c6d82b3654ea2ca":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"30282","async":true}},"layer":{"app/api/cli-tools/codex-settings/route":"rsc"},"filename":"app/api/cli-tools/codex-settings/route.ts","exportedName":"POST"},"0043f3f04e4fe29c4b19a92399755712f39bbc1a9f":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"38481","async":true}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.ts","exportedName":"DELETE"},"00cf54f7b0746f5d2cb9b0f8aa85d41ea65eb82e51":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"38481","async":true}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.ts","exportedName":"GET"},"40cd1d782309201cf2130cca558c05cfd37e5daaea":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"38481","async":true}},"layer":{"app/api/cli-tools/droid-settings/route":"rsc"},"filename":"app/api/cli-tools/droid-settings/route.ts","exportedName":"POST"},"00414abb82142e76c9b53255aec52d88010e944158":{"workers":{"app/api/cli-tools/cline-settings/route":{"moduleId":"62956","async":true}},"layer":{"app/api/cli-tools/cline-settings/route":"rsc"},"filename":"app/api/cli-tools/cline-settings/route.ts","exportedName":"GET"},"00f18400c2e23d873f0428bcfd4b87a9cb19021f9e":{"workers":{"app/api/cli-tools/cline-settings/route":{"moduleId":"62956","async":true}},"layer":{"app/api/cli-tools/cline-settings/route":"rsc"},"filename":"app/api/cli-tools/cline-settings/route.ts","exportedName":"DELETE"},"40683847f378c544433bf2e17b1c57ed71855a0ec5":{"workers":{"app/api/cli-tools/cline-settings/route":{"moduleId":"62956","async":true}},"layer":{"app/api/cli-tools/cline-settings/route":"rsc"},"filename":"app/api/cli-tools/cline-settings/route.ts","exportedName":"POST"},"0091c860a1b5df5f6b51e9889c261d4cfbf47073b2":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"83279","async":true}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.ts","exportedName":"DELETE"},"00d6458bec2fd64fe3eaf0a2c08effd089b7c854d6":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"83279","async":true}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.ts","exportedName":"GET"},"403e43c1e636a77249c715a0950dd30e12710e9372":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"83279","async":true}},"layer":{"app/api/cli-tools/openclaw-settings/route":"rsc"},"filename":"app/api/cli-tools/openclaw-settings/route.ts","exportedName":"POST"},"007c318c09073961c03421cfdf08291b0bf89fa317":{"workers":{"app/api/cli-tools/kilo-settings/route":{"moduleId":"94034","async":true}},"layer":{"app/api/cli-tools/kilo-settings/route":"rsc"},"filename":"app/api/cli-tools/kilo-settings/route.ts","exportedName":"DELETE"},"00bc4d99aad92b8d18a269c2f0bbfca0c60cd7c155":{"workers":{"app/api/cli-tools/kilo-settings/route":{"moduleId":"94034","async":true}},"layer":{"app/api/cli-tools/kilo-settings/route":"rsc"},"filename":"app/api/cli-tools/kilo-settings/route.ts","exportedName":"GET"},"409d12e1dc14f7548c164cfa17eb1c0ab467169d09":{"workers":{"app/api/cli-tools/kilo-settings/route":{"moduleId":"94034","async":true}},"layer":{"app/api/cli-tools/kilo-settings/route":"rsc"},"filename":"app/api/cli-tools/kilo-settings/route.ts","exportedName":"POST"},"60d3fcfbbcb7006d7e50e88c0008c7b4b39a9467c5":{"workers":{"app/api/cli-tools/runtime/[toolId]/route":{"moduleId":"73495","async":false}},"layer":{"app/api/cli-tools/runtime/[toolId]/route":"rsc"},"filename":"app/api/cli-tools/runtime/[toolId]/route.ts","exportedName":"GET"},"00fd07481bc4404d4a7784c2175f4eab5a7c4d434a":{"workers":{"app/api/cli-tools/status/route":{"moduleId":"95893","async":false}},"layer":{"app/api/cli-tools/status/route":"rsc"},"filename":"app/api/cli-tools/status/route.ts","exportedName":"GET"}},"edge":{},"encryptionKey":"mreTjP26DfPh1MUm9Uixsc/MnDIYd6Zol1/k+bURxuA="}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5846],{20909:(e,a,i)=>{i.d(a,{Q2:()=>h,DI:()=>c,fg:()=>m,MA:()=>g,IS:()=>l,zN:()=>s,JH:()=>d,wb:()=>f,wG:()=>k,zt:()=>b,gb:()=>u,mq:()=>p});var t=i(47173);let o=t.Ikc({id:t.YjP().min(1),alias:t.YjP().min(1),name:t.YjP().min(1),icon:t.YjP().min(1),color:t.YjP().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:t.YjP().optional(),website:t.YjP().url().optional(),passthroughModels:t.zMY().optional()}),n=t.g1P(t.YjP(),o);function r(e,a){let i=n.safeParse(e);if(!i.success){let e=i.error.issues.map(e=>` ${e.path.join(".")}: ${e.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${a} has invalid entries:
|
|
2
|
+
${e}`),Error(`Provider validation failed for ${a}`)}}let l={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},s={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},m={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"}},d="openai-compatible-",c="anthropic-compatible-";function p(e){return"string"==typeof e&&e.startsWith(d)}function u(e){return"string"==typeof e&&e.startsWith(c)}let h={...l,...s,...m},g={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function b(e){for(let a of Object.values(h))if(a.alias===e||a.id===e)return a;return null}function k(e){let a=h[e];return a?.alias||e}Object.values(h).reduce((e,a)=>(e[a.alias]=a.id,e),{}),Object.values(h).reduce((e,a)=>(e[a.id]=a.alias,e),{});let f=["antigravity","kiro","github","codex","claude","kimi-coding"];r(l,"FREE_PROVIDERS"),r(s,"OAUTH_PROVIDERS"),r(m,"APIKEY_PROVIDERS")},35144:(e,a,i)=>{i.d(a,{Xg:()=>r,vq:()=>n,KC:()=>l}),i(41463);let t={claude:{id:"claude",alias:"cc",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},oauth:{clientIdEnv:"CLAUDE_OAUTH_CLIENT_ID",clientIdDefault:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}]},gemini:{id:"gemini",alias:"gemini",format:"gemini",executor:"default",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",urlBuilder:(e,a,i)=>`${e}/${a}:${i?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"apikey",authHeader:"x-goog-api-key",oauth:{clientIdEnv:"GEMINI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3.0 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3.0 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},"gemini-cli":{id:"gemini-cli",alias:"gc",format:"gemini-cli",executor:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",urlBuilder:(e,a,i)=>`${e}:${i?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"oauth",authHeader:"bearer",oauth:{clientIdEnv:"GEMINI_CLI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_CLI_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3.0 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3.0 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},codex:{id:"codex",alias:"cx",format:"openai-responses",executor:"codex",baseUrl:"https://chatgpt.com/backend-api/codex/responses",authType:"oauth",authHeader:"bearer",headers:{Version:"0.92.0","Openai-Beta":"responses=experimental","User-Agent":"codex-cli/0.92.0 (Windows 10.0.26100; x64)"},oauth:{clientIdEnv:"CODEX_OAUTH_CLIENT_ID",clientIdDefault:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecretEnv:"CODEX_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://auth.openai.com/oauth/token"},models:[{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}]},qwen:{id:"qwen",alias:"qw",format:"openai",executor:"default",baseUrl:"https://portal.qwen.ai/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},oauth:{clientIdEnv:"QWEN_OAUTH_CLIENT_ID",clientIdDefault:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.5 (Coder Model)"}]},iflow:{id:"iflow",alias:"if",format:"openai",executor:"iflow",baseUrl:"https://apis.iflow.cn/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"iFlow-Cli"},oauth:{clientIdEnv:"IFLOW_OAUTH_CLIENT_ID",clientIdDefault:"10009311001",clientSecretEnv:"IFLOW_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},models:[{id:"iflow-rome-30ba3b",name:"iFlow ROME"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 Vision Plus"},{id:"kimi-k2-0905",name:"Kimi K2 0905"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek-V3.2-Exp"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3",name:"DeepSeek V3"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b",name:"Qwen3 235B"}]},antigravity:{id:"antigravity",alias:"ag",format:"antigravity",executor:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://cloudcode-pa.googleapis.com"],urlBuilder:(e,a,i)=>`${e}${i?"/v1internal:streamGenerateContent?alt=sse":"/v1internal:generateContent"}`,authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"antigravity/1.104.0 darwin/arm64"},oauth:{clientIdEnv:"ANTIGRAVITY_OAUTH_CLIENT_ID",clientIdDefault:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecretEnv:"ANTIGRAVITY_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-flash",name:"Gemini 3.0 Flash"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}]},github:{id:"github",alias:"gh",format:"openai",executor:"github",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesBaseUrl:"https://api.githubcopilot.com/responses",authType:"oauth",authHeader:"bearer",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},models:[{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",targetFormat:"openai-responses"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",targetFormat:"openai-responses"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5 (Full ID)"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}]},kiro:{id:"kiro",alias:"kr",format:"kiro",executor:"kiro",baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",authType:"oauth",authHeader:"bearer",headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},oauth:{tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},models:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"}]},cursor:{id:"cursor",alias:"cu",format:"cursor",executor:"cursor",baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",authType:"oauth",authHeader:"bearer",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"1.1.3",models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"}]},openai:{id:"openai",alias:"openai",format:"openai",executor:"default",baseUrl:"https://api.openai.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}]},anthropic:{id:"anthropic",alias:"anthropic",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01"},models:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}]},openrouter:{id:"openrouter",alias:"openrouter",format:"openai",executor:"default",baseUrl:"https://openrouter.ai/api/v1/chat/completions",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},models:[{id:"auto",name:"Auto (Best Available)"}]},glm:{id:"glm",alias:"glm",format:"claude",executor:"default",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.5v",name:"GLM 4.5V (Vision)"},{id:"glm-4.5",name:"GLM 4.5"},{id:"glm-4.5-air",name:"GLM 4.5 Air"},{id:"glm-4-32b",name:"GLM 4 32B"}]},kimi:{id:"kimi",alias:"kimi",format:"openai",executor:"default",baseUrl:"https://api.moonshot.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"},{id:"kimi-for-coding",name:"Kimi For Coding"}]},"kimi-coding":{id:"kimi-coding",alias:"kmc",format:"claude",executor:"default",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},oauth:{clientIdEnv:"KIMI_CODING_OAUTH_CLIENT_ID",clientIdDefault:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",authUrl:"https://auth.kimi.com/api/oauth/device_authorization"},models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}]},kilocode:{id:"kilocode",alias:"kc",format:"openrouter",executor:"openrouter",baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",modelsUrl:"https://api.kilo.ai/api/openrouter/models",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},models:[{id:"openrouter/free",name:"Free Models Router"},{id:"qwen/qwen3-vl-235b-a22b-thinking",name:"Qwen3 VL 235B A22B Thinking"},{id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen/qwen3-vl-30b-a3b-thinking",name:"Qwen3 VL 30B A3B Thinking"},{id:"stepfun/step-3.5-flash:free",name:"StepFun Step 3.5 Flash"},{id:"arcee-ai/trinity-large-preview:free",name:"Arcee AI Trinity Large Preview"},{id:"openai/gpt-4o-mini",name:"GPT-4o Mini"},{id:"openai/gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"openai/gpt-5-nano",name:"GPT-5 Nano"},{id:"openai/gpt-5-mini",name:"GPT-5 Mini"},{id:"anthropic/claude-3-haiku",name:"Claude 3 Haiku"},{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek V3.1"},{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-scout",name:"Llama 4 Scout"},{id:"meta-llama/llama-4-maverick",name:"Llama 4 Maverick"},{id:"qwen/qwen3-8b",name:"Qwen3 8B"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"qwen/qwen3-coder",name:"Qwen3 Coder 480B"},{id:"qwen/qwq-32b",name:"QwQ 32B"},{id:"mistralai/mistral-small-24b-instruct-2501",name:"Mistral Small 3"},{id:"mistralai/mistral-7b-instruct",name:"Mistral 7B"},{id:"x-ai/grok-code-fast-1",name:"Grok Code Fast 1"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"}],passthroughModels:!0},cline:{id:"cline",alias:"cl",format:"openai",executor:"openai",baseUrl:"https://api.cline.bot/api/v1/chat/completions",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",authUrl:"https://api.cline.bot/api/v1/auth/authorize"},extraHeaders:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"}],passthroughModels:!0},minimax:{id:"minimax",alias:"minimax",format:"claude",executor:"default",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",format:"claude",executor:"default",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},deepseek:{id:"deepseek",alias:"ds",format:"openai",executor:"default",baseUrl:"https://api.deepseek.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}]},groq:{id:"groq",alias:"groq",format:"openai",executor:"default",baseUrl:"https://api.groq.com/openai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"}]},blackbox:{id:"blackbox",alias:"bb",format:"openai",executor:"default",baseUrl:"https://api.blackbox.ai/v1/chat/completions",modelsUrl:"https://api.blackbox.ai/v1/models",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"deepseek-v3",name:"DeepSeek V3"},{id:"blackboxai",name:"Blackbox AI"},{id:"blackboxai-pro",name:"Blackbox AI Pro"}]},xai:{id:"xai",alias:"xai",format:"openai",executor:"default",baseUrl:"https://api.x.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}]},mistral:{id:"mistral",alias:"mistral",format:"openai",executor:"default",baseUrl:"https://api.mistral.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}]},perplexity:{id:"perplexity",alias:"pplx",format:"openai",executor:"default",baseUrl:"https://api.perplexity.ai/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}]},together:{id:"together",alias:"together",format:"openai",executor:"default",baseUrl:"https://api.together.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"}]},fireworks:{id:"fireworks",alias:"fireworks",format:"openai",executor:"default",baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"}]},cerebras:{id:"cerebras",alias:"cerebras",format:"openai",executor:"default",baseUrl:"https://api.cerebras.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",format:"openai",executor:"default",baseUrl:"https://api.ollama.com/v1/chat/completions",modelsUrl:"https://api.ollama.com/v1/models",authType:"apikey",authHeader:"bearer",models:[{id:"gemma3:27b",name:"Gemma 3 27B"},{id:"llama3.3:70b",name:"Llama 3.3 70B"},{id:"qwen3:72b",name:"Qwen3 72B"},{id:"devstral:24b",name:"Devstral 24B"},{id:"deepseek-r2:671b",name:"DeepSeek R2 671B"},{id:"phi4:14b",name:"Phi 4 14B"},{id:"mistral-small3.2:24b",name:"Mistral Small 3.2 24B"}],passthroughModels:!0},cohere:{id:"cohere",alias:"cohere",format:"openai",executor:"default",baseUrl:"https://api.cohere.com/v2/chat",authType:"apikey",authHeader:"bearer",models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},nvidia:{id:"nvidia",alias:"nvidia",format:"openai",executor:"default",baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"deepseek-ai/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"nvidia/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"deepseek/deepseek-r1",name:"DeepSeek R1"}]},nebius:{id:"nebius",alias:"nebius",format:"openai",executor:"default",baseUrl:"https://api.tokenfactory.nebius.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}]},siliconflow:{id:"siliconflow",alias:"siliconflow",format:"openai",executor:"default",baseUrl:"https://api.siliconflow.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}]},hyperbolic:{id:"hyperbolic",alias:"hyp",format:"openai",executor:"default",baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]}},o=new Map;for(let e of Object.values(t))e.alias&&e.alias!==e.id&&o.set(e.alias,e);let n=function(){let e={};for(let a of Object.values(t))if(a.models&&a.models.length>0){let i=a.alias||a.id;e[i]||(e[i]=a.models)}return e}(),r=function(){let e={};for(let a of Object.values(t))e[a.id]=a.alias||a.id;return e}();function l(e){return n[r[e]||e]||[]}},52529:(e,a,i)=>{i.d(a,{Q2:()=>t.Q2,fg:()=>t.fg,vQ:()=>o,MA:()=>t.MA,zN:()=>t.zN,B2:()=>n});var t=i(20909);i(81135);let o={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:"2.3.17"},n={storageKey:"theme",defaultTheme:"system"}},55846:(e,a,i)=>{i.d(a,{ThemeProvider:()=>r});var t=i(95155),o=i(12115),n=i(76851);function r({children:e}){let{initTheme:a}=(0,n.A)();return(0,o.useEffect)(()=>{a()},[a]),(0,t.jsx)(t.Fragment,{children:e})}},76851:(e,a,i)=>{i.d(a,{A:()=>c,F:()=>l});var t=i(1934),o=i(31692),n=i(52529);let r=(0,t.v)()((0,o.Zr)((e,a)=>({theme:n.B2.defaultTheme,colorTheme:"coral",customColor:"#3b82f6",setTheme:a=>{e({theme:a}),s(a)},setColorTheme:i=>{e({colorTheme:i}),m(i,a().customColor)},setCustomColorTheme:a=>{let i=d(a);e({colorTheme:"custom",customColor:i}),m("custom",i)},toggleTheme:()=>{let i="dark"===a().theme?"light":"dark";e({theme:i}),s(i)},initTheme:()=>{let{theme:e,colorTheme:i,customColor:t}=a();s(e),m(i,t)}}),{name:n.B2.storageKey})),l={coral:"#e54d5e",blue:"#3b82f6",red:"#ef4444",green:"#22c55e",violet:"#8b5cf6",orange:"#f97316",cyan:"#06b6d4"};function s(e){let a=document.documentElement,i=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?i:e)?a.classList.add("dark"):a.classList.remove("dark")}function m(e,a){let i,t,o,n,r,s,m=document.documentElement,c="custom"===e?d(a):l[e]||l.coral,p=(t=parseInt((i=d(c).slice(1)).slice(0,2),16),o=parseInt(i.slice(2,4),16),n=parseInt(i.slice(4,6),16),r=e=>{let a=Math.round((0-e)*Math.abs(-.14));return Math.max(0,Math.min(255,e-a))},s=e=>e.toString(16).padStart(2,"0"),`#${s(r(t))}${s(r(o))}${s(r(n))}`);m.style.setProperty("--color-primary",c),m.style.setProperty("--color-primary-hover",p)}function d(e){let a=(e||"").trim(),i=a.startsWith("#")?a:`#${a}`;return/^#([0-9a-fA-F]{6})$/.test(i)?i.toLowerCase():"#3b82f6"}let c=r},81135:(e,a,i)=>{i.d(a,{KC:()=>t.KC,Xg:()=>t.Xg});var t=i(35144);Object.entries(i(20909).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(t.vq).flatMap(([e,a])=>a.map(a=>({provider:e,model:a.id,name:a.name})))}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3649],{40993:(e,t,a)=>{"use strict";a.d(t,{Ex:()=>d.default,$n:()=>s.default,Zp:()=>i.default,Qv:()=>o.CardSkeleton,G9:()=>y.default,bQ:()=>N.default,pp:()=>j.default,Qn:()=>k.default,pd:()=>r.default,Mh:()=>f.default,uR:()=>p.default,aF:()=>n.default,rq:()=>x.default,LF:()=>m.default,KN:()=>b.default,Lo:()=>g.default,y7:()=>h.default,Iz:()=>v.default,l6:()=>l.default,lM:()=>c.default,cn:()=>u.default});var s=a(35806),r=a(34422),l=a(42994),i=a(81060),n=a(71361),o=a(92542);a(17705);var d=a(80927),c=a(19790);a(6261),a(55846),a(34243),a(89938),a(99023);var m=a(80178),x=a(85444),p=a(91961);a(25112);var u=a(45624),h=a(37415),b=a(48643),g=a(8287);a(1652);var f=a(92701);a(18150);var y=a(71689),v=a(33709);a(76332);var j=a(66200);a(61580);var k=a(51503);a(54128);var N=a(44638);a(21720),a(97050)},93062:(e,t,a)=>{Promise.resolve().then(a.bind(a,96191))},96191:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>N});var s=a(95155),r=a(12115),l=a(40993);function i({children:e,content:t,position:a="top",className:l="",delayMs:i=200}){let n,[o,d]=(0,r.useState)(!1),c=(0,r.useId)(),m=(0,r.useRef)(null),x=(0,r.useCallback)(()=>{clearTimeout(m.current),m.current=setTimeout(()=>d(!0),i)},[i]),p=(0,r.useCallback)(()=>{clearTimeout(m.current),d(!1)},[]);(0,r.useEffect)(()=>()=>{clearTimeout(m.current)},[]);let u={top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"},h=t?c:void 0,b=(0,r.isValidElement)(e)?(n=[e.props["aria-describedby"],h].filter(Boolean).join(" "),(0,r.cloneElement)(e,{"aria-describedby":n||void 0})):(0,s.jsx)("span",{tabIndex:0,"aria-describedby":h,children:e});return(0,s.jsxs)("span",{className:`relative inline-flex ${l}`,onMouseEnter:x,onMouseLeave:p,onFocus:x,onBlur:p,onKeyDown:e=>{"Escape"===e.key&&p()},children:[b,o&&t&&(0,s.jsx)("span",{id:c,role:"tooltip",className:`absolute z-50 px-2.5 py-1.5 text-xs font-medium text-white bg-gray-900/95 rounded-md shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in duration-150 motion-reduce:transition-none motion-reduce:animate-none border border-white/10 ${u[a]||u.top}`,children:t})]})}var n=a(30949),o=a(67671),d=a(50910);let c=/^[a-zA-Z0-9_/.-]+$/,m=[{value:"priority",labelKey:"priority",descKey:"priorityDesc",icon:"sort"},{value:"weighted",labelKey:"weighted",descKey:"weightedDesc",icon:"percent"},{value:"round-robin",labelKey:"roundRobin",descKey:"roundRobinDesc",icon:"autorenew"},{value:"random",labelKey:"random",descKey:"randomDesc",icon:"shuffle"},{value:"least-used",labelKey:"leastUsed",descKey:"leastUsedDesc",icon:"low_priority"},{value:"cost-optimized",labelKey:"costOpt",descKey:"costOptimizedDesc",icon:"savings"}],x={priority:{when:"Use when you have one preferred model and only want fallback on failure.",avoid:"Avoid when you need balanced load between models.",example:"Example: Primary coding model with cheaper backup for outages."},weighted:{when:"Use when you need controlled traffic split across models.",avoid:"Avoid when weights are not maintained or you need strict fairness.",example:"Example: 80% stable model and 20% canary model for safe rollout."},"round-robin":{when:"Use when you need predictable, even request distribution.",avoid:"Avoid when model latency/cost differs significantly.",example:"Example: Same model across multiple accounts to spread throughput."},random:{when:"Use when you want a simple spread with low configuration effort.",avoid:"Avoid when requests must be distributed with strict guarantees.",example:"Example: Prototyping with equivalent models and no traffic policy."},"least-used":{when:"Use when you want adaptive balancing based on recent demand.",avoid:"Avoid when your traffic is too low to benefit from usage balancing.",example:"Example: Mixed workloads where one model tends to get overloaded."},"cost-optimized":{when:"Use when minimizing cost is the top priority.",avoid:"Avoid when pricing data is missing or outdated.",example:"Example: Batch or background jobs where lower cost matters most."}},p={priority:{title:"Fail-safe baseline",description:"Use one primary model and keep fallback chain short and reliable.",tips:["Put your most reliable model first.","Keep 1-2 backup models with similar quality.","Use safe retries to absorb transient provider failures."]},weighted:{title:"Controlled traffic split",description:"Great for canary rollouts and gradual migration between models.",tips:["Start with conservative split like 90/10.","Keep the total at 100% and auto-balance after changes.","Monitor success and latency before increasing canary weight."]},"round-robin":{title:"Predictable load sharing",description:"Best when models are equivalent and you need smooth distribution.",tips:["Use at least 2 models.","Set concurrency limits to avoid burst overload.","Use queue timeout to fail fast under saturation."]},random:{title:"Quick spread with low setup",description:"Use when you need simple distribution without strict guarantees.",tips:["Use models with similar latency profiles.","Keep retries enabled to absorb random misses.","Prefer this for experimentation, not strict SLAs."]},"least-used":{title:"Adaptive balancing",description:"Routes to less-used models to reduce hotspots over time.",tips:["Works better under continuous traffic.","Combine with health checks for safer balancing.","Track per-model usage to validate distribution gains."]},"cost-optimized":{title:"Budget-first routing",description:"Routes to lower-cost models when pricing metadata is available.",tips:["Ensure pricing coverage for all selected models.","Keep a quality fallback for hard prompts.","Use for batch/background jobs where cost is the main KPI."]}},u="omniroute:combos:hide-usage-guide",h=[{id:"high-availability",icon:"shield",titleKey:"templateHighAvailability",descKey:"templateHighAvailabilityDesc",fallbackTitle:"High availability",fallbackDesc:"Priority routing with health checks and safe retries.",strategy:"priority",suggestedName:"high-availability",config:{maxRetries:2,retryDelayMs:1500,healthCheckEnabled:!0}},{id:"cost-saver",icon:"savings",titleKey:"templateCostSaver",descKey:"templateCostSaverDesc",fallbackTitle:"Cost saver",fallbackDesc:"Cost-optimized routing for budget-first workloads.",strategy:"cost-optimized",suggestedName:"cost-saver",config:{maxRetries:1,retryDelayMs:500,healthCheckEnabled:!0}},{id:"balanced",icon:"balance",titleKey:"templateBalanced",descKey:"templateBalancedDesc",fallbackTitle:"Balanced load",fallbackDesc:"Least-used routing to spread demand over time.",strategy:"least-used",suggestedName:"balanced-load",config:{maxRetries:1,retryDelayMs:1e3,healthCheckEnabled:!0}},{id:"free-stack",icon:"volunteer_activism",titleKey:"templateFreeStack",descKey:"templateFreeStackDesc",fallbackTitle:"Free Stack ($0)",fallbackDesc:"Round-robin across all free providers: Kiro, iFlow, Qwen, Gemini CLI. Zero cost, never stops.",strategy:"round-robin",suggestedName:"free-stack",config:{maxRetries:3,retryDelayMs:500,healthCheckEnabled:!0}}];function b(e){return m.find(t=>t.value===e)||m[0]}function g(e,t){return e(b(t).labelKey)}function f(e,t){return e(b(t).descKey)}function y(e,t,a){return"function"==typeof e.has&&e.has(t)?e(t):a}function v(e,t,a){let s=x[t]||x.priority;return y(e,`strategyGuide.${t}.${a}`,s[a])}function j(e,t,a){let s=p[t]||p.priority;return"tips"===a?s.tips.map((a,s)=>y(e,`strategyRecommendations.${t}.tip${s+1}`,a)):y(e,`strategyRecommendations.${t}.${a}`,s[a])}function k(e){return"string"==typeof e?{model:e,weight:0}:{model:e.model,weight:e.weight||0}}function N(){let e=(0,d.c)("combos"),t=(0,d.c)("common"),[a,i]=(0,r.useState)([]),[c,m]=(0,r.useState)(!0),[x,p]=(0,r.useState)(!1),[h,b]=(0,r.useState)(null),[g,f]=(0,r.useState)([]),[v,j]=(0,r.useState)({}),[k,N]=(0,r.useState)(null),[C,S]=(0,r.useState)(null),{copied:$,copy:M}=(0,n.C)(),P=(0,o.i)(),[R,z]=(0,r.useState)(null),[A,K]=(0,r.useState)(null),[q,_]=(0,r.useState)([]),[O,U]=(0,r.useState)(!0),[H,B]=(0,r.useState)("");(0,r.useEffect)(()=>{F(),fetch("/api/settings/proxy").then(e=>e.ok?e.json():null).then(e=>K(e)).catch(()=>{})},[]),(0,r.useEffect)(()=>{try{globalThis.localStorage?.getItem(u)==="1"&&U(!1)}catch{}},[]);let F=async()=>{try{let[e,t,a,s]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/combos/metrics"),fetch("/api/provider-nodes")]),r=await e.json(),l=await t.json(),n=await a.json(),o=s.ok?await s.json():{nodes:[]};if(e.ok&&i(r.combos||[]),t.ok){let e=(l.connections||[]).filter(e=>"active"===e.testStatus||"success"===e.testStatus);f(e)}a.ok&&j(n.metrics||{}),_(o.nodes||[])}catch(e){console.log("Error fetching data:",e)}finally{m(!1)}},L=async t=>{try{let a=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(a.ok)await F(),p(!1),B(t.name?.trim()||""),P.success(e("comboCreated"));else{let t=await a.json();P.error(t.error?.message||t.error||e("failedCreate"))}}catch(t){P.error(e("errorCreating"))}},G=async(t,a)=>{try{let s=await fetch(`/api/combos/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(s.ok)await F(),b(null),P.success(e("comboUpdated"));else{let t=await s.json();P.error(t.error?.message||t.error||e("failedUpdate"))}}catch(t){P.error(e("errorUpdating"))}},I=async t=>{if(confirm(e("deleteConfirm")))try{(await fetch(`/api/combos/${t}`,{method:"DELETE"})).ok&&(i(a.filter(e=>e.id!==t)),P.success(e("comboDeleted")))}catch(t){P.error(e("errorDeleting"))}},W=async e=>{let t=e.name.replace(/-copy(-\d+)?$/,""),s=a.map(e=>e.name),r=`${t}-copy`,l=1;for(;s.includes(r);)l++,r=`${t}-copy-${l}`;let i={name:r,models:e.models,strategy:e.strategy||"priority",config:e.config||{}};await L(i)},Q=async t=>{S(t.name),N(null);try{let e=await fetch("/api/combos/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboName:t.name})}),a=await e.json();N(a)}catch(t){N({error:e("testFailed")}),P.error(e("testFailed"))}},Z=async t=>{let a=!1===t.isActive;i(e=>e.map(e=>e.id===t.id?{...e,isActive:a}:e));try{await fetch(`/api/combos/${t.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:a})})}catch(s){i(e=>e.map(e=>e.id===t.id?{...e,isActive:!a}:e)),P.error(e("failedToggle"))}};return c?(0,s.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,s.jsx)(l.Qv,{}),(0,s.jsx)(l.Qv,{})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-2xl font-semibold",children:e("title")}),(0,s.jsx)("p",{className:"text-sm text-text-muted mt-1",children:e("description")})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[!O&&(0,s.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:()=>{U(!0);try{globalThis.localStorage?.removeItem(u)}catch{}},children:y(e,"usageGuideShow","Show guide")}),(0,s.jsx)(l.$n,{icon:"add",onClick:()=>p(!0),children:e("createCombo")})]})]}),O&&(0,s.jsx)(w,{onHide:()=>U(!1),onHideForever:()=>{U(!1);try{globalThis.localStorage?.setItem(u,"1")}catch{}}}),H&&(0,s.jsx)(l.Zp,{padding:"sm",className:"border border-emerald-500/20 bg-emerald-500/[0.04] dark:bg-emerald-500/[0.08]",children:(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-emerald-700 dark:text-emerald-300",children:y(e,"quickTestTitle",`Combo "${H}" ready to validate`)}),(0,s.jsx)("code",{className:"inline-block text-[11px] mt-0.5 px-1.5 py-0.5 rounded bg-emerald-500/15 text-emerald-700 dark:text-emerald-300",children:H}),(0,s.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:y(e,"quickTestDescription","Run a test now to confirm fallback and latency behavior.")})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(l.$n,{size:"sm",variant:"secondary",icon:"play_arrow",onClick:()=>{Q({name:H}),B("")},children:y(e,"testNow","Test now")}),(0,s.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:()=>B(""),children:t("close")})]})]})}),0===a.length?(0,s.jsx)(l.pp,{icon:"\uD83E\uDDE9",title:e("noCombosYet"),description:e("description"),actionLabel:e("createCombo"),onAction:()=>p(!0)}):(0,s.jsx)("div",{className:"flex flex-col gap-4",children:a.map(e=>(0,s.jsx)(T,{combo:e,metrics:v[e.name],providerNodes:q,copied:$,onCopy:M,onEdit:()=>b(e),onDelete:()=>I(e.id),onDuplicate:()=>W(e),onTest:()=>Q(e),testing:C===e.name,onProxy:()=>z(e),hasProxy:!!A?.combos?.[e.id],onToggle:()=>Z(e)},e.id))}),k&&(0,s.jsx)(l.aF,{isOpen:!!k,onClose:()=>{N(null),S(null)},title:e("testResults",{name:C}),children:(0,s.jsx)(D,{results:k})}),(0,s.jsx)(E,{isOpen:x,onClose:()=>p(!1),onSave:L,activeProviders:g,combo:null},"create"),(0,s.jsx)(E,{isOpen:!!h,combo:h,onClose:()=>b(null),onSave:e=>G(h.id,e),activeProviders:g},h?.id||"new"),R&&(0,s.jsx)(l.KN,{isOpen:!!R,onClose:()=>z(null),level:"combo",levelId:R.id,levelLabel:R.name})]})}function w({onHide:e,onHideForever:t}){let a=(0,d.c)("combos");return(0,s.jsxs)(l.Zp,{padding:"sm",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"size-7 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-primary text-[16px]",children:"tips_and_updates"})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold",children:a("routingStrategy")}),(0,s.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:a("description")})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,s.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:e,className:"!h-6 px-2 text-[10px]",children:y(a,"usageGuideHide","Hide")}),(0,s.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:t,className:"!h-6 px-2 text-[10px]",children:y(a,"usageGuideDontShowAgain","Don't show again")})]})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2 mt-3",children:["priority","cost-optimized","least-used"].map(e=>{let t=b(e);return(0,s.jsxs)("div",{className:"rounded-lg border border-black/10 dark:border-white/10 bg-black/[0.02] dark:bg-white/[0.02] p-2.5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px] text-primary",children:t.icon}),(0,s.jsx)("span",{className:"text-xs font-medium",children:g(a,e)})]}),(0,s.jsx)("p",{className:"text-[11px] leading-4 text-text-muted mt-1.5",children:f(a,e)})]},e)})})]})}function C({strategy:e}){let t=(0,d.c)("combos");return(0,s.jsxs)("div",{className:"rounded-lg border border-black/10 dark:border-white/10 bg-black/[0.02] dark:bg-white/[0.02] p-2.5",children:[(0,s.jsx)("div",{className:"text-[11px] text-text-muted",children:y(t,"strategyGuideTitle","How to use this strategy")}),(0,s.jsxs)("div",{className:"mt-1.5 flex flex-col gap-1.5 text-[11px]",children:[(0,s.jsxs)("p",{className:"text-text-main",children:[(0,s.jsxs)("span",{className:"font-semibold",children:[y(t,"strategyGuideWhen","When to use"),":"]})," ",v(t,e,"when")]}),(0,s.jsxs)("p",{className:"text-text-main",children:[(0,s.jsxs)("span",{className:"font-semibold",children:[y(t,"strategyGuideAvoid","Avoid when"),":"]})," ",v(t,e,"avoid")]}),(0,s.jsxs)("p",{className:"text-text-main",children:[(0,s.jsxs)("span",{className:"font-semibold",children:[y(t,"strategyGuideExample","Example"),":"]})," ",v(t,e,"example")]})]})]})}function S({strategy:e,onApply:t,showNudge:a}){let r=(0,d.c)("combos"),i=g(r,e),n=j(r,e,"title"),o=j(r,e,"description"),c=j(r,e,"tips");return(0,s.jsxs)("div",{className:"rounded-lg border border-black/10 dark:border-white/10 bg-white/70 dark:bg-white/[0.02] p-2.5",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:y(r,"recommendationsLabel","Recommended setup")}),(0,s.jsxs)("p",{className:"text-xs font-semibold text-text-main mt-0.5",children:[n," \xb7 ",(0,s.jsx)("span",{className:"text-primary",children:i})]}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:o})]}),(0,s.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:t,className:"!h-6 px-2 text-[10px]",children:y(r,"applyRecommendations","Apply recommendations")})]}),(0,s.jsx)("div",{className:"mt-2 grid grid-cols-1 gap-1",children:c.map((t,a)=>(0,s.jsxs)("div",{className:"flex items-start gap-1 rounded-md bg-black/[0.02] dark:bg-white/[0.03] px-1.5 py-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px] text-primary mt-0.5",children:"check"}),(0,s.jsx)("p",{className:"text-[10px] text-text-main",children:t})]},`${e}-tip-${a+1}`))}),a&&(0,s.jsx)("div",{"data-testid":"strategy-change-nudge",className:"mt-2 rounded-md border border-primary/20 bg-primary/10 px-2 py-1 text-[10px] text-primary",children:y(r,"recommendationsUpdated","Recommendations updated for {strategy}.").replace("{strategy}",i)})]})}function $({label:e,help:t}){return(0,s.jsxs)("div",{className:"flex items-center gap-1 mb-0.5",children:[(0,s.jsx)("label",{className:"text-[10px] text-text-muted",children:e}),(0,s.jsx)(i,{content:t,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px] text-text-muted cursor-help",children:"help"})})]})}function M({checks:e,blockers:t}){let a=(0,d.c)("combos"),r=t.length>0;return(0,s.jsxs)("div",{"data-testid":"combo-readiness-panel",className:`rounded-lg border px-2.5 py-2 ${r?"border-amber-500/30 bg-amber-500/5":"border-emerald-500/20 bg-emerald-500/[0.04]"}`,children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:`material-symbols-outlined text-[14px] ${r?"text-amber-600 dark:text-amber-400":"text-emerald-600 dark:text-emerald-400"}`,children:r?"rule":"check_circle"}),(0,s.jsx)("p",{className:"text-[11px] font-medium text-text-main",children:y(a,"readinessTitle","Ready to save?")})]}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:y(a,"readinessDescription","Review the checklist before creating or updating this combo.")}),(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-1 mt-2",children:e.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-1 rounded-md px-1.5 py-1 bg-black/[0.02] dark:bg-white/[0.02]",children:[(0,s.jsx)("span",{className:`material-symbols-outlined text-[12px] ${e.ok?"text-emerald-500":"text-amber-500"}`,children:e.ok?"task_alt":"pending"}),(0,s.jsx)("span",{className:"text-[10px] text-text-main",children:e.label})]},e.id))}),r&&(0,s.jsxs)("div",{"data-testid":"combo-save-blockers",className:"mt-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-2 py-1.5",children:[(0,s.jsx)("p",{className:"text-[10px] font-medium text-amber-700 dark:text-amber-300",children:y(a,"saveBlockedTitle","Save is blocked until the following items are fixed:")}),(0,s.jsx)("div",{className:"mt-1 flex flex-col gap-0.5",children:t.map((e,t)=>(0,s.jsxs)("p",{className:"text-[10px] text-amber-700 dark:text-amber-300",children:["• ",e]},`${e}-${t}`))})]})]})}function T({combo:e,metrics:t,copied:a,onCopy:r,onEdit:n,onDelete:o,onDuplicate:c,onTest:m,testing:x,onProxy:p,hasProxy:u,onToggle:h,providerNodes:b}){let y=e.strategy||"priority",v=e.models||[],j=!1===e.isActive,N=(0,d.c)("combos"),w=(0,d.c)("common"),C=f(N,y);return(0,s.jsx)(l.Zp,{padding:"sm",className:`group ${j?"opacity-50":""}`,children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,s.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"})}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("code",{className:"text-sm font-medium font-mono truncate",children:e.name}),(0,s.jsx)(i,{content:C,children:(0,s.jsx)("span",{className:`text-[9px] uppercase font-semibold px-1.5 py-0.5 rounded-full ${"weighted"===y?"bg-amber-500/15 text-amber-600 dark:text-amber-400":"round-robin"===y?"bg-emerald-500/15 text-emerald-600 dark:text-emerald-400":"random"===y?"bg-purple-500/15 text-purple-600 dark:text-purple-400":"least-used"===y?"bg-cyan-500/15 text-cyan-600 dark:text-cyan-400":"cost-optimized"===y?"bg-teal-500/15 text-teal-600 dark:text-teal-400":"bg-blue-500/15 text-blue-600 dark:text-blue-400"}`,children:g(N,y)})}),u&&(0,s.jsxs)("span",{className:"text-[9px] uppercase font-semibold px-1.5 py-0.5 rounded-full bg-primary/15 text-primary flex items-center gap-0.5",title:N("proxyConfigured"),children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"vpn_lock"}),"proxy"]}),(0,s.jsx)("button",{onClick:t=>{t.stopPropagation(),r(e.name,`combo-${e.id}`)},className:"p-0.5 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors opacity-100 md:opacity-0 md:group-hover:opacity-100",title:N("copyComboName"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:a===`combo-${e.id}`?"check":"content_copy"})})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 mt-0.5 flex-wrap",children:[0===v.length?(0,s.jsx)("span",{className:"text-xs text-text-muted italic",children:N("noModels")}):v.slice(0,3).map((e,t)=>{let{model:a,weight:r}=k(e);return(0,s.jsxs)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1.5 py-0.5 rounded text-text-muted",children:[(e=>{let t=e.split("/");if(2!==t.length)return e;let[a,s]=t,r=(b||[]).find(e=>e.id===a||e.prefix===a);return r?`${r.name}/${s}`:e})(a),"weighted"===y&&r>0?` (${r}%)`:""]},t)}),v.length>3&&(0,s.jsx)("span",{className:"text-[10px] text-text-muted",children:N("more",{count:v.length-3})})]}),t&&(0,s.jsxs)("div",{className:"flex items-center gap-3 mt-1",children:[(0,s.jsxs)("span",{className:"text-[10px] text-text-muted",children:[(0,s.jsx)("span",{className:"text-emerald-500",children:t.totalSuccesses}),"/",t.totalRequests," ",N("reqs")]}),(0,s.jsxs)("span",{className:"text-[10px] text-text-muted",children:[t.successRate,"% ",N("success")]}),(0,s.jsxs)("span",{className:"text-[10px] text-text-muted",children:["~",t.avgLatencyMs,"ms"]}),t.fallbackRate>0&&(0,s.jsxs)("span",{className:"text-[10px] text-amber-500",children:[t.fallbackRate,"% fallback"]})]})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0 ml-2",children:[(0,s.jsx)(l.lM,{size:"sm",checked:!j,onChange:h,title:N(j?"enableCombo":"disableCombo")}),(0,s.jsxs)("div",{className:"flex items-center gap-1 transition-opacity",children:[(0,s.jsx)("button",{onClick:m,disabled:x,className:"p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-emerald-500 transition-colors",title:N("testCombo"),children:(0,s.jsx)("span",{className:`material-symbols-outlined text-[16px] ${x?"animate-spin":""}`,children:x?"progress_activity":"play_arrow"})}),(0,s.jsx)("button",{onClick:c,className:"p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors",title:N("duplicate"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"content_copy"})}),(0,s.jsx)("button",{onClick:p,className:"p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors",title:N("proxyConfig"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"vpn_lock"})}),(0,s.jsx)("button",{onClick:n,className:"p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors",title:w("edit"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"edit"})}),(0,s.jsx)("button",{onClick:o,className:"p-1.5 hover:bg-red-500/10 rounded text-red-500 transition-colors",title:w("delete"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"delete"})})]})]})]})})}function D({results:e}){return e.error?(0,s.jsxs)("div",{className:"flex items-center gap-2 text-red-500 text-sm",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"error"}),"string"==typeof e.error?e.error:JSON.stringify(e.error)]}):(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[e.resolvedBy&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-emerald-500 text-[18px]",children:"check_circle"}),(0,s.jsxs)("span",{children:["Resolved by:"," ",(0,s.jsx)("code",{className:"text-xs bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 px-1.5 py-0.5 rounded",children:e.resolvedBy})]})]}),e.results?.map((e,t)=>(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs px-2 py-1.5 rounded bg-black/[0.02] dark:bg-white/[0.02]",children:[(0,s.jsx)("span",{className:`material-symbols-outlined text-[14px] ${"ok"===e.status?"text-emerald-500":"skipped"===e.status?"text-text-muted":"text-red-500"}`,children:"ok"===e.status?"check_circle":"skipped"===e.status?"skip_next":"error"}),(0,s.jsx)("code",{className:"font-mono flex-1",children:e.model}),void 0!==e.latencyMs&&(0,s.jsxs)("span",{className:"text-text-muted",children:[e.latencyMs,"ms"]}),(0,s.jsx)("span",{className:`text-[10px] uppercase font-medium ${"ok"===e.status?"text-emerald-500":"skipped"===e.status?"text-text-muted":"text-red-500"}`,children:e.status})]},t))]})}function E({isOpen:e,combo:t,onClose:a,onSave:n,activeProviders:x}){let p=(0,d.c)("combos"),u=(0,d.c)("common"),b=(0,o.i)(),[v,j]=(0,r.useState)(t?.name||""),[N,w]=(0,r.useState)(()=>(t?.models||[]).map(e=>k(e))),[T,D]=(0,r.useState)(t?.strategy||"priority"),[E,R]=(0,r.useState)(!1),[z,A]=(0,r.useState)(!1),[K,q]=(0,r.useState)(""),[_,O]=(0,r.useState)({}),[U,H]=(0,r.useState)({}),[B,F]=(0,r.useState)([]),[L,G]=(0,r.useState)(!1),[I,W]=(0,r.useState)(t?.config||{}),[Q,Z]=(0,r.useState)(!1),J=(0,r.useRef)(!1),Y=(0,r.useCallback)(e=>{let t=e.split("/");if(2!==t.length)return!1;let[a,s]=t,r=B.find(e=>e.id===a||e.prefix===a),l=[a];return r?.apiType&&l.push(r.apiType),r?.name&&l.push(String(r.name).toLowerCase()),l.some(e=>!!_?.[e]?.[s])},[_,B]),[V,X]=(0,r.useState)(null),[ee,et]=(0,r.useState)(null),ea=N.reduce((e,t)=>e+(t.weight||0),0),es=N.reduce((e,t)=>e+ +!!Y(t.model),0),er=N.length>0?Math.round(es/N.length*100):0,el=0===N.length,ei="round-robin"===T&&1===N.length,en="cost-optimized"===T&&N.length>0&&0===es,eo="cost-optimized"===T&&N.length>0&&es>0&&es<N.length,ed="weighted"===T&&N.length>0&&100!==ea,ec=!v.trim()||!!K||z||el||ed||en,em=[{id:"name",ok:!!v.trim()&&!K,label:y(p,"readinessCheckName","Combo name is valid")},{id:"models",ok:!el,label:y(p,"readinessCheckModels","At least one model is selected")},{id:"weights",ok:"weighted"!==T||!ed,label:"weighted"===T?y(p,"readinessCheckWeights","Weighted total is 100%"):y(p,"readinessCheckWeightsOptional","Weight rule not required")},{id:"pricing",ok:"cost-optimized"!==T||!en,label:"cost-optimized"===T?y(p,"readinessCheckPricing","Pricing data is available"):y(p,"readinessCheckPricingOptional","Pricing rule not required")}],ex=[];v.trim()?K&&ex.push(K):ex.push(y(p,"saveBlockName","Define a combo name.")),el&&ex.push(y(p,"saveBlockModels","Add at least one model.")),ed&&ex.push("function"==typeof p.has&&p.has("saveBlockWeighted")?p("saveBlockWeighted",{total:ea}):`Set weights to 100% (current: ${ea}%).`),en&&ex.push(y(p,"saveBlockPricing","Add pricing for at least one model or choose a different strategy."));let ep=async()=>{try{let[e,t,a]=await Promise.all([fetch("/api/models/alias"),fetch("/api/provider-nodes"),fetch("/api/pricing")]);if(!e.ok||!t.ok)throw Error(`Failed to fetch data: aliases=${e.status}, nodes=${t.status}`);let s=a.ok?await a.json():{},[r,l]=await Promise.all([e.json(),t.json()]);O(s&&"object"==typeof s&&!Array.isArray(s)?s:{}),H(r.aliases||{}),F(l.nodes||[])}catch(e){console.error("Error fetching modal data:",e)}};(0,r.useEffect)(()=>{e&&ep()},[e]),(0,r.useEffect)(()=>{if(!J.current){J.current=!0;return}Z(!0);let e=setTimeout(()=>Z(!1),2600);return()=>clearTimeout(e)},[T]);let eu=e=>e.trim()?c.test(e)?(q(""),!0):(q(p("nameInvalid")),!1):(q(p("nameRequired")),!1),eh=()=>{let e=N.length;if(0===e)return;let t=Math.floor(100/e),a=100-t*e;w(N.map((e,s)=>({...e,weight:t+(0===s?a:0)})))},eb=(0,r.useCallback)(e=>{let t=e.split("/");if(2!==t.length)return e;let[a,s]=t,r=B.find(e=>e.id===a||e.prefix===a);return r?`${r.name}/${s}`:e},[B]),eg=e=>{e.target&&(e.currentTarget.style.opacity="1"),X(null),et(null)},ef=async()=>{if(!eu(v)||el||ed||en)return;A(!0);let e={name:v.trim(),models:"weighted"===T?N:N.map(e=>e.model),strategy:T},t={...I};"round-robin"===T&&(void 0!==I.concurrencyPerModel&&(t.concurrencyPerModel=I.concurrencyPerModel),void 0!==I.queueTimeoutMs&&(t.queueTimeoutMs=I.queueTimeoutMs)),Object.keys(t).length>0&&(e.config=t),await n(e),A(!1)},ey=!!t;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.aF,{isOpen:e,onClose:a,title:ey?p("editCombo"):p("createCombo"),children:(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(l.pd,{label:p("comboName"),value:v,onChange:e=>{let t=e.target.value;j(t),t?eu(t):q("")},placeholder:p("comboNamePlaceholder"),error:K}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:p("nameHint")})]}),!ey&&(0,s.jsxs)("div",{className:"rounded-lg border border-black/10 dark:border-white/10 bg-black/[0.02] dark:bg-white/[0.02] p-2.5",children:[(0,s.jsxs)("div",{className:"mb-2",children:[(0,s.jsx)("p",{className:"text-xs font-medium",children:y(p,"templatesTitle","Quick templates")}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:y(p,"templatesDescription","Apply a starting profile, then adjust models and config.")})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-1.5",children:h.map(e=>(0,s.jsxs)("button",{type:"button",onClick:()=>{D(e.strategy),W(t=>({...t,...e.config})),v.trim()||j(e.suggestedName)},className:"text-left rounded-md border border-black/10 dark:border-white/10 bg-white/70 dark:bg-white/[0.03] px-2 py-1.5 hover:border-primary/40 hover:bg-primary/5 transition-colors",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px] text-primary",children:e.icon}),(0,s.jsx)("span",{className:"text-[11px] font-medium text-text-main",children:y(p,e.titleKey,e.fallbackTitle)})]}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-1 leading-4",children:y(p,e.descKey,e.fallbackDesc)}),(0,s.jsx)("p",{className:"text-[10px] text-primary mt-1",children:y(p,"templateApply","Apply template")})]},e.id))})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center gap-1 mb-1.5",children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:p("routingStrategy")}),(0,s.jsx)(i,{content:f(p,T),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[13px] text-text-muted cursor-help",children:"help"})})]}),(0,s.jsx)("div",{className:"grid grid-cols-3 gap-1 p-0.5 bg-black/5 dark:bg-white/5 rounded-lg",children:m.map(e=>(0,s.jsxs)("button",{onClick:()=>D(e.value),"data-testid":`strategy-option-${e.value}`,title:p(e.descKey),"aria-label":`${g(p,e.value)}. ${p(e.descKey)}`,className:`py-1.5 px-2 rounded-md text-xs font-medium transition-all ${T===e.value?"bg-white dark:bg-bg-main shadow-sm text-primary":"text-text-muted hover:text-text-main"}`,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px] align-middle mr-0.5",children:e.icon}),g(p,e.value)]},e.value))}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:f(p,T)}),(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsx)(C,{strategy:T})}),(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsx)(S,{strategy:T,onApply:()=>{let e={priority:{maxRetries:2,retryDelayMs:1500,healthCheckEnabled:!0},weighted:{maxRetries:1,retryDelayMs:1e3,healthCheckEnabled:!0},"round-robin":{maxRetries:1,retryDelayMs:750,healthCheckEnabled:!0,concurrencyPerModel:3,queueTimeoutMs:3e4},random:{maxRetries:1,retryDelayMs:1e3,healthCheckEnabled:!0},"least-used":{maxRetries:1,retryDelayMs:1e3,healthCheckEnabled:!0},"cost-optimized":{maxRetries:1,retryDelayMs:500,healthCheckEnabled:!0}},t=e[T]||e.priority;W(e=>{let a={...e};for(let[e,s]of Object.entries(t))(void 0===a[e]||null===a[e]||""===a[e])&&(a[e]=s);return a}),"weighted"===T&&N.length>1&&eh(),"round-robin"===T&&G(!0),b.success(y(p,"recommendationsApplied","Recommendations applied to this combo."))},showNudge:Q})})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:p("models")}),"weighted"===T&&N.length>1&&(0,s.jsx)("button",{onClick:eh,className:"text-[10px] text-primary hover:text-primary/80 transition-colors",children:p("autoBalance")})]}),0===N.length?(0,s.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:p("noModelsYet")})]}):(0,s.jsx)("div",{className:"flex flex-col gap-1 max-h-[240px] overflow-y-auto",children:N.map((e,t)=>(0,s.jsxs)("div",{draggable:!0,onDragStart:e=>{X(t),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",t.toString()),e.target&&setTimeout(()=>e.currentTarget.style.opacity="0.5",0)},onDragEnd:eg,onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move",et(t)},onDrop:e=>((e,t)=>{if(e.preventDefault(),null===V||V===t)return;let a=[...N],[s]=a.splice(V,1);a.splice(t,0,s),w(a),X(null),et(null)})(e,t),className:`group/item flex items-center gap-1.5 px-2 py-1.5 rounded-md transition-all cursor-grab active:cursor-grabbing ${ee===t&&V!==t?"bg-primary/10 border border-primary/30":"bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] border border-transparent"} ${V===t?"opacity-50":""}`,children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted/40 cursor-grab shrink-0",children:"drag_indicator"}),(0,s.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:t+1}),(0,s.jsx)("div",{className:"flex-1 min-w-0 px-1 text-xs text-text-main truncate",children:eb(e.model)}),"cost-optimized"===T&&(0,s.jsx)("span",{className:`text-[9px] px-1.5 py-0.5 rounded-full uppercase font-semibold ${Y(e.model)?"bg-emerald-500/15 text-emerald-600 dark:text-emerald-400":"bg-amber-500/15 text-amber-600 dark:text-amber-400"}`,title:Y(e.model)?y(p,"pricingAvailable","Pricing available"):y(p,"pricingMissing","No pricing"),children:Y(e.model)?y(p,"pricingAvailableShort","priced"):y(p,"pricingMissingShort","no-price")}),"weighted"===T&&(0,s.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[(0,s.jsx)("input",{type:"number",min:"0",max:"100",value:e.weight,onChange:e=>{var a;let s;return a=e.target.value,void((s=[...N])[t]={...s[t],weight:Math.max(0,Math.min(100,Number(a)||0))},w(s))},className:"w-10 text-[11px] text-center py-0.5 rounded border border-black/10 dark:border-white/10 bg-transparent focus:border-primary focus:outline-none"}),(0,s.jsx)("span",{className:"text-[10px] text-text-muted",children:"%"})]}),"priority"===T&&(0,s.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,s.jsx)("button",{onClick:()=>(e=>{if(0===e)return;let t=[...N];[t[e-1],t[e]]=[t[e],t[e-1]],w(t)})(t),disabled:0===t,className:`p-0.5 rounded ${0===t?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:p("moveUp"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,s.jsx)("button",{onClick:()=>(e=>{if(e===N.length-1)return;let t=[...N];[t[e],t[e+1]]=[t[e+1],t[e]],w(t)})(t),disabled:t===N.length-1,className:`p-0.5 rounded ${t===N.length-1?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:p("moveDown"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,s.jsx)("button",{onClick:()=>{w(N.filter((e,a)=>a!==t))},className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:p("removeModel"),children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},`${e.model}-${t}`))}),"weighted"===T&&N.length>0&&(0,s.jsx)(P,{models:N}),"cost-optimized"===T&&N.length>0&&(0,s.jsxs)("div",{className:"mt-2 rounded-md border border-black/10 dark:border-white/10 bg-black/[0.02] dark:bg-white/[0.02] px-2 py-1.5",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between text-[10px]",children:[(0,s.jsx)("span",{className:"text-text-muted",children:y(p,"pricingCoverage","Pricing coverage")}),(0,s.jsxs)("span",{className:"font-medium text-text-main",children:[es,"/",N.length," (",er,"%)"]})]}),(0,s.jsx)("div",{className:"h-1.5 mt-1 rounded-full bg-black/10 dark:bg-white/10 overflow-hidden",children:(0,s.jsx)("div",{className:`h-full transition-all duration-300 ${100===er?"bg-emerald-500":er>0?"bg-amber-500":"bg-red-500"}`,style:{width:`${er}%`}})}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted mt-1",children:y(p,"pricingCoverageHint","Cost-optimized works best when all combo models have pricing.")})]}),el&&(0,s.jsxs)("div",{className:"mt-2 rounded-md border border-amber-500/20 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-700 dark:text-amber-300 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),(0,s.jsx)("span",{children:p("noModelsYet")})]}),ed&&(0,s.jsxs)("div",{className:"mt-2 rounded-md border border-amber-500/20 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-700 dark:text-amber-300 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),(0,s.jsxs)("span",{children:[p("weighted")," ",ea,"% ","≠"," 100%. ",p("autoBalance")]})]}),ei&&(0,s.jsxs)("div",{className:"mt-2 rounded-md border border-blue-500/20 bg-blue-500/10 px-2 py-1.5 text-[10px] text-blue-700 dark:text-blue-300 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"info"}),(0,s.jsx)("span",{children:y(p,"warningRoundRobinSingleModel","Round-robin is most useful with at least 2 models.")})]}),eo&&(0,s.jsxs)("div",{className:"mt-2 rounded-md border border-amber-500/20 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-700 dark:text-amber-300 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),(0,s.jsx)("span",{children:"function"==typeof p.has&&p.has("warningCostOptimizedPartialPricing")?p("warningCostOptimizedPartialPricing",{priced:es,total:N.length}):`Only ${es} of ${N.length} models have pricing. Routing may be partially cost-aware.`})]}),en&&(0,s.jsxs)("div",{className:"mt-2 rounded-md border border-amber-500/20 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-700 dark:text-amber-300 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),(0,s.jsx)("span",{children:y(p,"warningCostOptimizedNoPricing","No pricing data found for this combo. Cost-optimized may route unexpectedly.")})]}),(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsx)(M,{checks:em,blockers:ex})}),(0,s.jsxs)("button",{onClick:()=>R(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-text-muted hover:text-primary hover:border-primary/30 transition-colors flex items-center justify-center gap-1",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),p("addModel")]})]}),(0,s.jsxs)("button",{onClick:()=>G(!L),className:"flex items-center gap-1 text-xs text-text-muted hover:text-text-main transition-colors self-start",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:L?"expand_less":"expand_more"}),p("advancedSettings")]}),L&&(0,s.jsxs)("div",{className:"flex flex-col gap-2 p-3 bg-black/[0.02] dark:bg-white/[0.02] rounded-lg border border-black/5 dark:border-white/5",children:[(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)($,{label:p("maxRetries"),help:y(p,"advancedHelp.maxRetries","How many retries are attempted before failing the request.")}),(0,s.jsx)("input",{type:"number",min:"0",max:"10",value:I.maxRetries??"",placeholder:"1",onChange:e=>W({...I,maxRetries:e.target.value?Number(e.target.value):void 0}),className:"w-full text-xs py-1.5 px-2 rounded border border-black/10 dark:border-white/10 bg-transparent focus:border-primary focus:outline-none"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)($,{label:p("retryDelay"),help:y(p,"advancedHelp.retryDelay","Initial delay between retries. Higher values reduce burst pressure.")}),(0,s.jsx)("input",{type:"number",min:"0",max:"60000",step:"500",value:I.retryDelayMs??"",placeholder:"2000",onChange:e=>W({...I,retryDelayMs:e.target.value?Number(e.target.value):void 0}),className:"w-full text-xs py-1.5 px-2 rounded border border-black/10 dark:border-white/10 bg-transparent focus:border-primary focus:outline-none"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)($,{label:p("timeout"),help:y(p,"advancedHelp.timeout","Maximum request time before aborting. Set higher for long generations.")}),(0,s.jsx)("input",{type:"number",min:"1000",max:"600000",step:"1000",value:I.timeoutMs??"",placeholder:"120000",onChange:e=>W({...I,timeoutMs:e.target.value?Number(e.target.value):void 0}),className:"w-full text-xs py-1.5 px-2 rounded border border-black/10 dark:border-white/10 bg-transparent focus:border-primary focus:outline-none"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)($,{label:p("healthcheck"),help:y(p,"advancedHelp.healthcheck","Skips unhealthy models/providers from routing decisions when enabled.")}),(0,s.jsx)("input",{type:"checkbox",checked:!1!==I.healthCheckEnabled,onChange:e=>W({...I,healthCheckEnabled:e.target.checked}),className:"accent-primary"})]})]}),"round-robin"===T&&(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 pt-2 border-t border-black/5 dark:border-white/5",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)($,{label:p("concurrencyPerModel"),help:y(p,"advancedHelp.concurrencyPerModel","Max simultaneous requests sent to each model in round-robin.")}),(0,s.jsx)("input",{type:"number",min:"1",max:"20",value:I.concurrencyPerModel??"",placeholder:"3",onChange:e=>W({...I,concurrencyPerModel:e.target.value?Number(e.target.value):void 0}),className:"w-full text-xs py-1.5 px-2 rounded border border-black/10 dark:border-white/10 bg-transparent focus:border-primary focus:outline-none"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)($,{label:p("queueTimeout"),help:y(p,"advancedHelp.queueTimeout","How long a request can wait in queue before timeout in round-robin.")}),(0,s.jsx)("input",{type:"number",min:"1000",max:"120000",step:"1000",value:I.queueTimeoutMs??"",placeholder:"30000",onChange:e=>W({...I,queueTimeoutMs:e.target.value?Number(e.target.value):void 0}),className:"w-full text-xs py-1.5 px-2 rounded border border-black/10 dark:border-white/10 bg-transparent focus:border-primary focus:outline-none"})]})]}),(0,s.jsx)("p",{className:"text-[10px] text-text-muted",children:p("advancedHint")})]}),(0,s.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,s.jsx)(l.$n,{onClick:a,variant:"ghost",fullWidth:!0,size:"sm",children:u("cancel")}),(0,s.jsx)(l.$n,{onClick:ef,fullWidth:!0,size:"sm",disabled:ec,children:z?p("saving"):ey?u("save"):p("createCombo")})]})]})}),(0,s.jsx)(l.rq,{isOpen:E,onClose:()=>R(!1),onSelect:e=>{N.find(t=>t.model===e.value)||w([...N,{model:e.value,weight:0}])},activeProviders:x,modelAliases:U,title:p("addModelToCombo"),selectedModel:null})]})}function P({models:e}){let t=e.reduce((e,t)=>e+(t.weight||0),0),a=100===t,r=["bg-blue-500","bg-emerald-500","bg-amber-500","bg-purple-500","bg-rose-500","bg-cyan-500","bg-orange-500","bg-indigo-500"];return(0,s.jsxs)("div",{className:"mt-1.5",children:[(0,s.jsx)("div",{className:"h-1.5 rounded-full bg-black/5 dark:bg-white/5 overflow-hidden flex",children:e.map((e,t)=>e.weight?(0,s.jsx)("div",{className:`${r[t%r.length]} transition-all duration-300`,style:{width:`${Math.min(e.weight,100)}%`}},t):null)}),(0,s.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,s.jsx)("div",{className:"flex gap-1",children:e.map((e,t)=>e.weight>0&&(0,s.jsxs)("span",{className:"flex items-center gap-0.5 text-[9px] text-text-muted",children:[(0,s.jsx)("span",{className:`inline-block w-1.5 h-1.5 rounded-full ${r[t%r.length]}`}),e.weight,"%"]},t))}),(0,s.jsxs)("span",{className:`text-[10px] font-medium ${a?"text-emerald-500":t>100?"text-red-500":"text-amber-500"}`,children:[t,"%",!a&&t>0&&" ≠ 100%"]})]})]})}}},e=>{e.O(0,[8500,3418,9751,8055,1149,5846,647,8441,3794,7358],()=>e(e.s=93062)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1606],{20433:(e,a,i)=>{Promise.resolve().then(i.bind(i,38701))},38701:(e,a,i)=>{"use strict";i.d(a,{default:()=>c});var t=i(95155),l=i(12115),n=i(50910);let r={image:{icon:"image",endpoint:"/api/v1/images/generations",label:"Image Generation",placeholder:"A serene landscape with mountains at sunset...",color:"from-purple-500 to-pink-500"},video:{icon:"videocam",endpoint:"/api/v1/videos/generations",label:"Video Generation",placeholder:"A timelapse of a flower blooming...",color:"from-blue-500 to-cyan-500"},music:{icon:"music_note",endpoint:"/api/v1/music/generations",label:"Music Generation",placeholder:"Upbeat electronic music with synth pads...",color:"from-orange-500 to-yellow-500"},speech:{icon:"record_voice_over",endpoint:"/api/v1/audio/speech",label:"Text to Speech",placeholder:"Hello! Welcome to OmniRoute, your intelligent AI gateway...",color:"from-green-500 to-teal-500",textLabel:"Text"},transcription:{icon:"mic",endpoint:"/api/v1/audio/transcriptions",label:"Transcription",placeholder:"Upload an audio file to transcribe...",color:"from-indigo-500 to-blue-500"}},s={image:[{id:"openai",name:"OpenAI",models:[{id:"openai/dall-e-3",name:"DALL-E 3"},{id:"openai/dall-e-2",name:"DALL-E 2"}]},{id:"xai",name:"xAI (Grok)",models:[{id:"xai/grok-2-image",name:"Grok 2 Image"}]},{id:"together",name:"Together AI",models:[{id:"together/stable-diffusion-xl",name:"SDXL"},{id:"together/FLUX.1-schnell-Free",name:"FLUX.1 Schnell"}]},{id:"fireworks",name:"Fireworks AI",models:[{id:"fireworks/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024"},{id:"fireworks/flux-1-dev-fp8",name:"FLUX.1 Dev"}]},{id:"nebius",name:"Nebius AI",models:[{id:"nebius/flux-dev",name:"FLUX Dev"},{id:"nebius/sdxl",name:"SDXL"}]},{id:"hyperbolic",name:"Hyperbolic",models:[{id:"hyperbolic/SDXL1.0-base",name:"SDXL Base"},{id:"hyperbolic/stable-diffusion-2",name:"SD 2"}]},{id:"nanobanana",name:"NanoBanana",models:[{id:"nanobanana/flux-schnell",name:"FLUX Schnell"}]},{id:"sdwebui",name:"SD WebUI",models:[{id:"sdwebui/sd_xl_base_1.0",name:"SDXL Base (Local)"}]},{id:"comfyui",name:"ComfyUI",models:[{id:"comfyui/flux-dev",name:"FLUX Dev (Local)"},{id:"comfyui/sdxl",name:"SDXL (Local)"}]}],video:[{id:"comfyui",name:"ComfyUI",models:[{id:"comfyui/animatediff",name:"AnimateDiff"},{id:"comfyui/svd",name:"Stable Video Diffusion"}]},{id:"sdwebui",name:"SD WebUI",models:[{id:"sdwebui/animatediff",name:"AnimateDiff (Local)"}]}],music:[{id:"comfyui",name:"ComfyUI",models:[{id:"comfyui/stable-audio",name:"Stable Audio Open"},{id:"comfyui/musicgen",name:"MusicGen"}]}],speech:[{id:"openai",name:"OpenAI",models:[{id:"openai/tts-1",name:"TTS-1"},{id:"openai/tts-1-hd",name:"TTS-1 HD"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},{id:"elevenlabs",name:"ElevenLabs",models:[{id:"elevenlabs/eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"elevenlabs/eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},{id:"deepgram",name:"Deepgram",models:[{id:"deepgram/aura-asteria-en",name:"Aura Asteria (EN)"},{id:"deepgram/aura-luna-en",name:"Aura Luna (EN)"},{id:"deepgram/aura-stella-en",name:"Aura Stella (EN)"}]},{id:"hyperbolic",name:"Hyperbolic",models:[{id:"hyperbolic/melo-tts",name:"Melo TTS"}]},{id:"nvidia",name:"NVIDIA NIM",models:[{id:"nvidia/fastpitch",name:"FastPitch"},{id:"nvidia/tacotron2",name:"Tacotron2"}]},{id:"inworld",name:"Inworld",models:[{id:"inworld/inworld-tts-1.5-max",name:"Inworld TTS Max"},{id:"inworld/inworld-tts-1.5-mini",name:"Inworld TTS Mini"}]},{id:"cartesia",name:"Cartesia",models:[{id:"cartesia/sonic-2",name:"Sonic 2"},{id:"cartesia/sonic-3",name:"Sonic 3"}]},{id:"playht",name:"PlayHT",models:[{id:"playht/PlayDialog",name:"PlayDialog"},{id:"playht/Play3.0-mini",name:"Play3.0 Mini"}]},{id:"huggingface",name:"HuggingFace",models:[{id:"huggingface/espnet/kan-bayashi_ljspeech_vits",name:"VITS LJSpeech"}]},{id:"qwen",name:"Qwen",models:[{id:"qwen/qwen3-tts",name:"Qwen3 TTS"}]}],transcription:[{id:"deepgram",name:"Deepgram ($200 free)",models:[{id:"deepgram/nova-3",name:"Nova 3 (Best)"},{id:"deepgram/nova-2",name:"Nova 2"},{id:"deepgram/enhanced",name:"Enhanced"},{id:"deepgram/base",name:"Base"}]},{id:"assemblyai",name:"AssemblyAI ($50 free)",models:[{id:"assemblyai/universal-3-pro",name:"Universal 3 Pro (Best)"},{id:"assemblyai/universal-2",name:"Universal 2"},{id:"assemblyai/nano",name:"Nano (Fast)"}]},{id:"groq",name:"Groq (Free — Whisper)",models:[{id:"groq/whisper-large-v3",name:"Whisper Large v3 (Free)"},{id:"groq/whisper-large-v3-turbo",name:"Whisper Turbo (Free)"}]},{id:"openai",name:"OpenAI",models:[{id:"openai/whisper-1",name:"Whisper 1"},{id:"openai/gpt-4o-transcription",name:"GPT-4o Transcription"}]},{id:"nvidia",name:"NVIDIA NIM",models:[{id:"nvidia/nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B"}]},{id:"huggingface",name:"HuggingFace",models:[{id:"huggingface/openai/whisper-large-v3",name:"Whisper Large v3 (HF)"}]},{id:"qwen",name:"Qwen",models:[{id:"qwen/qwen3-asr",name:"Qwen3 ASR"}]}]},o={default:[{id:"alloy",label:"Alloy"},{id:"echo",label:"Echo"},{id:"fable",label:"Fable"},{id:"onyx",label:"Onyx"},{id:"nova",label:"Nova"},{id:"shimmer",label:"Shimmer"}],elevenlabs:[{id:"21m00Tcm4TlvDq8ikWAM",label:"Rachel (EN)"},{id:"AZnzlk1XvdvUeBnXmlld",label:"Domi (EN)"},{id:"EXAVITQu4vr4xnSDxMaL",label:"Bella (EN)"},{id:"ErXwobaYiN019PkySvjV",label:"Antoni (EN)"},{id:"MF3mGyEYCl7XYWbV9V6O",label:"Elli (EN)"},{id:"TxGEqnHWrfWFTfGW9XjX",label:"Josh (EN)"},{id:"VR6AewLTigWG4xSOukaG",label:"Arnold (EN)"},{id:"pNInz6obpgDQGcFmaJgB",label:"Adam (EN)"},{id:"yoZ06aMxZJJ28mfd3POQ",label:"Sam (EN)"}],cartesia:[{id:"a0e99841-438c-4a64-b679-ae501e7d6091",label:"Barbershop Man"},{id:"694f9389-aac1-45b6-b726-9d9369183238",label:"Friendly Reading Man"},{id:"b7d50908-b17c-442d-ad8d-810c63997ed9",label:"California Girl"}],deepgram:[{id:"aura-asteria-en",label:"Asteria (EN)"},{id:"aura-luna-en",label:"Luna (EN)"},{id:"aura-stella-en",label:"Stella (EN)"},{id:"aura-zeus-en",label:"Zeus (EN)"},{id:"aura-orion-en",label:"Orion (EN)"}],inworld:[{id:"Eva",label:"Eva (EN)"},{id:"Marcus",label:"Marcus (EN)"}]},d=["mp3","wav","opus","flac","pcm"];function m(e){return o[e]??o.default}function c(){let e=(0,n.c)("media"),[a,i]=(0,l.useState)("image"),[o,c]=(0,l.useState)(""),[u,p]=(0,l.useState)(""),[x,b]=(0,l.useState)(""),[h,f]=(0,l.useState)(!1),[g,v]=(0,l.useState)(null),[y,w]=(0,l.useState)(null),[N,j]=(0,l.useState)("alloy"),[S,k]=(0,l.useState)("mp3"),[T,E]=(0,l.useState)(null),A=s[a]??[],D=A.find(e=>e.id===u)?.models??[],[L,I]=(0,l.useState)(!1);if(!L){I(!0);let e=(s.image??[])[0];p(e?.id??""),b(e?.models[0]?.id??"")}let F=async()=>{f(!0),w(null),v(null);try{let e=r[a];if("speech"===a){if(!o.trim()){w("Please enter text to synthesize."),f(!1);return}let a=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:x,input:o.trim(),voice:N,response_format:S})});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e?.error?.message||`TTS failed (${a.status})`)}let i=await a.blob(),t=URL.createObjectURL(i);v({type:"speech",data:{format:S},timestamp:Date.now(),audioUrl:t}),f(!1);return}if("transcription"===a){if(!T){w("Please select an audio file to transcribe."),f(!1);return}let a=new FormData;a.append("file",T),a.append("model",x);let i=await fetch(e.endpoint,{method:"POST",body:a});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e?.error?.message||`Transcription failed (${i.status})`)}let t=await i.json();v({type:"transcription",data:t,timestamp:Date.now()}),f(!1);return}if(!o.trim()){w("Please enter a prompt."),f(!1);return}let i=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:x,prompt:o.trim(),..."image"===a?{size:"1024x1024",n:1}:{}})});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e?.error?.message||`Generation failed (${i.status})`)}let t=await i.json();v({type:a,data:t,timestamp:Date.now()})}catch(e){w(e.message||"Generation failed")}f(!1)},P=r[a],_=m(u);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:e("title")}),(0,t.jsx)("p",{className:"text-text-muted text-sm mt-1",children:e("subtitle")})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 p-1 bg-surface/50 rounded-xl border border-black/5 dark:border-white/5",children:Object.keys(r).map(e=>{let l=r[e],n=e===a;return(0,t.jsxs)("button",{onClick:()=>{let a;return i(e),c(""),v(null),w(null),E(null),a=(s[e]??[])[0],void(p(a?.id??""),b(a?.models[0]?.id??""),"speech"===e&&j(m(a?.id??"")[0]?.id??"alloy"))},className:`flex-1 min-w-[110px] flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium transition-all ${n?"bg-primary/10 text-primary shadow-sm border border-primary/20":"text-text-muted hover:text-text-main hover:bg-surface/80"}`,children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:l.icon}),l.label]},e)})}),(0,t.jsxs)("div",{className:"bg-surface/30 rounded-xl border border-black/5 dark:border-white/5 p-6 space-y-4",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Provider"}),(0,t.jsx)("select",{value:u,onChange:e=>{var i;let t;return p(i=e.target.value),t=s[a]?.find(e=>e.id===i)?.models??[],void(b(t[0]?.id??""),"speech"===a&&j(m(i)[0]?.id??"alloy"))},className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:A.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:e("model")}),(0,t.jsx)("select",{value:x,onChange:e=>b(e.target.value),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:D.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))})]})]}),"speech"===a&&(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Voice"}),(0,t.jsx)("select",{value:N,onChange:e=>j(e.target.value),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:_.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Format"}),(0,t.jsx)("select",{value:S,onChange:e=>k(e.target.value),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:d.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]})]}),"transcription"===a?(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Audio File"}),(0,t.jsx)("input",{type:"file",accept:"audio/*,video/*",onChange:e=>E(e.target.files?.[0]??null),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30 file:mr-3 file:py-1 file:px-3 file:rounded file:border-0 file:bg-primary/10 file:text-primary file:text-sm"}),T&&(0,t.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:[T.name," (",(T.size/1024).toFixed(0)," KB)"]})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"speech"===a?"Text":e("prompt")}),(0,t.jsx)("textarea",{rows:3,value:o,onChange:e=>c(e.target.value),placeholder:P.placeholder,className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm placeholder:text-text-muted/50 focus:outline-none focus:ring-2 focus:ring-primary/30 resize-none"})]}),(0,t.jsx)("button",{onClick:F,disabled:h||("transcription"===a?!T:!o.trim()),className:`w-full flex items-center justify-center gap-2 px-4 py-3 rounded-lg text-white font-medium transition-all bg-gradient-to-r ${P.color} ${h||("transcription"===a?!T:!o.trim())?"opacity-50 cursor-not-allowed":"hover:opacity-90 hover:shadow-lg"}`,children:h?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),"speech"===a?"Synthesizing...":"transcription"===a?"Transcribing...":e("generating")]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"speech"===a?"volume_up":"transcription"===a?"mic":"auto_awesome"}),"speech"===a?"Synthesize Speech":"transcription"===a?"Transcribe Audio":`${e("generate")} ${P.label}`]})})]}),y&&(0,t.jsxs)("div",{className:"bg-red-500/10 border border-red-500/20 rounded-xl p-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-red-500 text-[20px] mt-0.5",children:"error"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-red-500",children:e("error")}),(0,t.jsx)("p",{className:"text-sm text-text-muted mt-1",children:y})]})]}),g&&(0,t.jsxs)("div",{className:"bg-surface/30 rounded-xl border border-black/5 dark:border-white/5 p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,t.jsx)("span",{className:`material-symbols-outlined text-[20px] bg-gradient-to-r ${P.color} bg-clip-text text-transparent`,children:P.icon}),(0,t.jsx)("h3",{className:"text-sm font-medium text-text-main",children:e("result")}),(0,t.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:new Date(g.timestamp).toLocaleTimeString()})]}),"speech"===g.type&&g.audioUrl?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("audio",{controls:!0,src:g.audioUrl,className:"w-full rounded-lg",autoPlay:!0}),(0,t.jsxs)("a",{href:g.audioUrl,download:`speech.${g.data?.format||"mp3"}`,className:"inline-flex items-center gap-2 text-sm text-primary hover:underline",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"download"}),"Download ",g.data?.format?.toUpperCase()||"MP3"]})]}):(0,t.jsx)("pre",{className:"bg-surface rounded-lg p-4 text-xs text-text-muted overflow-auto max-h-96 custom-scrollbar",children:JSON.stringify(g.data,null,2)})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-5 gap-4",children:Object.keys(r).map(e=>{let a=r[e],i=s[e]?.length??0;return(0,t.jsxs)("div",{className:"bg-surface/30 rounded-xl border border-black/5 dark:border-white/5 p-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("div",{className:`flex items-center justify-center size-8 rounded-lg bg-gradient-to-r ${a.color}`,children:(0,t.jsx)("span",{className:"material-symbols-outlined text-white text-[16px]",children:a.icon})}),(0,t.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.label})]}),(0,t.jsxs)("p",{className:"text-xs text-text-muted",children:[i," providers"]}),(0,t.jsxs)("code",{className:"block mt-2 text-xs text-primary/70 bg-primary/5 rounded px-2 py-1",children:["POST ",a.endpoint]})]},e)})})]})}},50910:(e,a,i)=>{"use strict";i.d(a,{c:()=>n});var t=i(33418);function l(e,a){return(...e)=>{try{return a(...e)}catch{throw Error(void 0)}}}let n=l(0,t.c3);l(0,t.kc)}},e=>{e.O(0,[3418,8441,3794,7358],()=>e(e.s=20433)),_N_E=e.O()}]);
|
package/app/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.17",
|
|
4
4
|
"description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.17",
|
|
4
4
|
"description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|