omniroute 2.0.14 → 2.0.15
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 +2 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +50 -49
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/required-server-files.json +1 -1
- package/app/.next/routes-manifest.json +6 -0
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/agents/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js.nft.json +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.js +4 -4
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +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 +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +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 +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/playground/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +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.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +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.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +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.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.js +2 -2
- package/app/.next/server/app/400/page.js.nft.json +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page.js +2 -2
- package/app/.next/server/app/401/page.js.nft.json +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page.js +2 -2
- package/app/.next/server/app/403/page.js.nft.json +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page.js +2 -2
- package/app/.next/server/app/408/page.js.nft.json +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page.js +2 -2
- package/app/.next/server/app/429/page.js.nft.json +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page.js +2 -2
- package/app/.next/server/app/500/page.js.nft.json +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page.js +2 -2
- package/app/.next/server/app/502/page.js.nft.json +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page.js +2 -2
- package/app/.next/server/app/503/page.js.nft.json +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +3 -3
- 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 +5 -5
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/a2a/route.js +2 -2
- package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/status/route.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.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.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.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.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.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.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.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.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.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.js +2 -2
- 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.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.js +2 -2
- 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.js +2 -2
- 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.js +2 -2
- 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.js +2 -2
- 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.js +2 -2
- 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.js +2 -2
- 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.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.js +2 -2
- 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.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.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.js +2 -2
- 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.js +2 -2
- 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.js +2 -2
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route.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.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.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.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.js +2 -2
- 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.js +2 -2
- 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.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.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.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.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.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.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.js +1 -0
- package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -0
- package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/models/route.js +2 -2
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +2 -2
- 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.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.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.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.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.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.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.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.js +2 -2
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route.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.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.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.js +2 -2
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route.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.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 +2 -2
- 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.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.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.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.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 +2 -2
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.js +2 -2
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.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.js +2 -2
- 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.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.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.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.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.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.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.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.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.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.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.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/embeddings/route.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.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +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.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.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.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.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.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.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.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.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +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.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.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.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.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.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.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +4 -4
- 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.js +2 -2
- package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page.js +2 -2
- package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page.js +2 -2
- package/app/.next/server/app/maintenance/page.js.nft.json +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page.js +2 -2
- package/app/.next/server/app/offline/page.js.nft.json +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page.js +2 -2
- package/app/.next/server/app/privacy/page.js.nft.json +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page.js +2 -2
- package/app/.next/server/app/status/page.js.nft.json +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page.js +2 -2
- package/app/.next/server/app/terms/page.js.nft.json +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +50 -49
- package/app/.next/server/chunks/2910.js +1 -1
- package/app/.next/server/chunks/3648.js +2 -2
- package/app/.next/server/chunks/438.js +1 -1
- package/app/.next/server/chunks/4488.js +1 -1
- package/app/.next/server/chunks/4935.js +1 -1
- package/app/.next/server/chunks/5248.js +1 -0
- package/app/.next/server/chunks/5419.js +1 -1
- package/app/.next/server/chunks/6743.js +1 -1
- package/app/.next/server/chunks/7109.js +1 -1
- package/app/.next/server/chunks/7544.js +2 -2
- package/app/.next/server/chunks/7889.js +2 -0
- package/app/.next/server/chunks/8020.js +3 -3
- package/app/.next/server/chunks/9548.js +1 -1
- package/app/.next/server/chunks/9854.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +3 -3
- package/app/.next/server/next-font-manifest.js +1 -1
- package/app/.next/server/next-font-manifest.json +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/9TbRsQGZYpzUzbh5jF8PL/_buildManifest.js +1 -0
- package/app/.next/static/chunks/{5846-c6f43f3a355ccea0.js → 5846-9617718359b23768.js} +1 -1
- package/app/.next/static/chunks/{647-549907058cdc88c1.js → 647-ffe8ad14f7499725.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-43d6fa6b75cca497.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/{page-9a7e08c4edef033d.js → page-19a12c8a9e5ddcd0.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-49ae846d72948391.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/{page-6ab7701da3357bb9.js → page-bef5c045e7eae657.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-16f886b3711a6a50.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/auto-combo/{page-851063ded34ab7a6.js → page-8e609f4c9b26a901.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-d1e5ed188e14c618.js +15 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-8d4d2f071d114b90.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-8f6233f59f5277e9.js → page-7a233357dfbd2e05.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-7b1037d65eef97a8.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/{page-1e1eb2f79d606ab2.js → page-66ee4e631429e0d8.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-2def921499d2ce60.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-95e4b5e0bf023d76.js → page-6e4bcb48b8731915.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-8e35334b9f393139.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-1d0ca9b5d3eaf7cd.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/{page-5378e9473a20cd6a.js → page-d424641c7e428be9.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-d75ccdb976b36258.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/{page-a8b59a29fb924d18.js → page-25e333c3c3c88920.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-3efa7798e9a68e36.js → page-f2474691bb72deca.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-7aa887699971d87f.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{error-a5ae03ba05400b04.js → error-0400f175dd1372fa.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-9552383fd2e11282.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-d57908b59d4b482c.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-cd0feb6c545b8a49.js → page-87f0d43ce6cca0cb.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{error-ec9643134a96bbcd.js → error-c39d18f10fb7d3f6.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{loading-3519a633b514f31a.js → loading-b5faf05c78a2cc54.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{page-cbaa4b638a583fe9.js → page-6b38a30bfddf3b89.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-69eb8b0eb0e9de00.js → page-a4b8b03ffb39da1d.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-10c186a0db5fde20.js → page-9168bf910743b2f5.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9e20463252daf023.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/{layout-7ae0c66c22bee8a1.js → layout-6d0afc53f5f2a538.js} +1 -1
- package/app/.next/static/chunks/app/.well-known/agent.json/{route-3efa7798e9a68e36.js → route-f2474691bb72deca.js} +1 -1
- package/app/.next/static/chunks/app/400/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
- package/app/.next/static/chunks/app/401/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
- package/app/.next/static/chunks/app/403/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
- package/app/.next/static/chunks/app/408/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
- package/app/.next/static/chunks/app/429/page-3b77bf358909019a.js +1 -0
- package/app/.next/static/chunks/app/500/page-3b77bf358909019a.js +1 -0
- package/app/.next/static/chunks/app/502/page-3b77bf358909019a.js +1 -0
- package/app/.next/static/chunks/app/503/page-3b77bf358909019a.js +1 -0
- package/app/.next/static/chunks/app/_global-error/{page-3efa7798e9a68e36.js → page-f2474691bb72deca.js} +1 -1
- package/app/.next/static/chunks/app/_not-found/{page-3efa7798e9a68e36.js → page-f2474691bb72deca.js} +1 -1
- package/app/.next/static/chunks/app/a2a/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/a2a/status/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/a2a/tasks/[id]/cancel/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/a2a/tasks/[id]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/a2a/tasks/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/acp/agents/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cache/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cache/stats/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw/auto-order/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/status/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/combos/auto/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/combos/metrics/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/combos/test/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/export/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/exportAll/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/import/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/evals/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/fallback/chains/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/logs/console/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/audit/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/audit/stats/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/sse/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/status/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/stream/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/tools/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/models/catalog/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/models/openrouter-catalog/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/monitoring/health/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/policies/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/defaults/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/models/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/provider-metrics/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/provider-models/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limit/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limits/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/reset/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/restart/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/sessions/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/background-degradation/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/model-aliases/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/storage/health/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/sync/cloud/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/sync/initialize/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/telemetry/summary/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/token-health/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/translator/detect/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/translator/history/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/analytics/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/budget/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/quota/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/moderations/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/music/generations/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/rerank/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/callback/{page-0f0ebc0820dd18a5.js → page-585a53f7dc6a30f1.js} +1 -1
- package/app/.next/static/chunks/app/docs/{page-dc88e0a01d291518.js → page-9624e5fb8cabf7d8.js} +1 -1
- package/app/.next/static/chunks/app/{error-32c03f14529d3920.js → error-f7f595c541537e63.js} +1 -1
- package/app/.next/static/chunks/app/forbidden/page-b33079c1573b0bfa.js +1 -0
- package/app/.next/static/chunks/app/forgot-password/page-90cd6259c75badfc.js +1 -0
- package/app/.next/static/chunks/app/global-error-1dfd1c91ad5199fe.js +1 -0
- package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +1 -0
- package/app/.next/static/chunks/app/{layout-070972eb026af319.js → layout-108592eafb959363.js} +1 -1
- package/app/.next/static/chunks/app/{loading-da2f6e1471afc070.js → loading-e063375d5b12a2f7.js} +1 -1
- package/app/.next/static/chunks/app/login/{page-26d717c652d56032.js → page-cf6b82187b09a701.js} +1 -1
- package/app/.next/static/chunks/app/maintenance/page-3b77bf358909019a.js +1 -0
- package/app/.next/static/chunks/app/not-found-511518956bcae7bc.js +1 -0
- package/app/.next/static/chunks/app/offline/page-9d6ea493783a0219.js +1 -0
- package/app/.next/static/chunks/app/page-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/app/privacy/{page-dc88e0a01d291518.js → page-9624e5fb8cabf7d8.js} +1 -1
- package/app/.next/static/chunks/app/status/page-4e5e9b5a513aa474.js +1 -0
- package/app/.next/static/chunks/app/terms/{page-dc88e0a01d291518.js → page-9624e5fb8cabf7d8.js} +1 -1
- package/app/.next/static/chunks/{main-app-ae230f6bf51a5edb.js → main-app-c9da11a8061df107.js} +1 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-f2474691bb72deca.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f2474691bb72deca.js +1 -0
- package/app/logs/application/app.log +0 -2788
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.env +0 -122
- package/app/.next/server/chunks/1909.js +0 -2
- package/app/.next/server/chunks/7167.js +0 -1
- package/app/.next/static/-8uV9_pF9xHPyJ274VYJM/_buildManifest.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-ed1f5b1ae0e01c02.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-6a2bb3ad980b05b9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-027b3eb09d2d46e0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c9b98846b8479f3f.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-86acc32f9984a4e2.js +0 -15
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-ac5dcffbe54f77f9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-36f33de29eb978a1.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-65334129a8e63369.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-d9b5c3282ec5d809.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-72b768421394b42c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-40d20c1273f57206.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-350aed2e86512c23.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-7deaa9f550841465.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-3ef302da4b756e50.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-8c8f2d59d0cbb516.js +0 -1
- package/app/.next/static/chunks/app/429/page-3b9079ea400ca287.js +0 -1
- package/app/.next/static/chunks/app/500/page-3b9079ea400ca287.js +0 -1
- package/app/.next/static/chunks/app/502/page-3b9079ea400ca287.js +0 -1
- package/app/.next/static/chunks/app/503/page-3b9079ea400ca287.js +0 -1
- package/app/.next/static/chunks/app/a2a/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/a2a/status/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/a2a/tasks/[id]/cancel/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/a2a/tasks/[id]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/a2a/tasks/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/acp/agents/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/auth/status/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cache/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cache/stats/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw/auto-order/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/status/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/combos/auto/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/combos/metrics/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/combos/test/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/export/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/exportAll/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/import/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/evals/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/fallback/chains/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/logs/console/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/audit/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/audit/stats/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/sse/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/status/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/stream/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/tools/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/models/catalog/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/monitoring/health/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/policies/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/defaults/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/models/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/provider-metrics/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/provider-models/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limit/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limits/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/resilience/reset/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/resilience/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/restart/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/sessions/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/background-degradation/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/model-aliases/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/storage/health/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/sync/cloud/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/sync/initialize/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/telemetry/summary/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/token-health/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/translator/detect/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/translator/history/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/analytics/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/budget/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/quota/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/moderations/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/music/generations/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/rerank/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1/videos/generations/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/forbidden/page-8d8e1709a1e32585.js +0 -1
- package/app/.next/static/chunks/app/forgot-password/page-d5c9b77748aa9deb.js +0 -1
- package/app/.next/static/chunks/app/global-error-5840b1caa830f2ec.js +0 -1
- package/app/.next/static/chunks/app/landing/page-75b0c988db383cfc.js +0 -1
- package/app/.next/static/chunks/app/maintenance/page-3b9079ea400ca287.js +0 -1
- package/app/.next/static/chunks/app/not-found-faf36d2a9a452506.js +0 -1
- package/app/.next/static/chunks/app/offline/page-bf68bf461af876a3.js +0 -1
- package/app/.next/static/chunks/app/page-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/app/status/page-29a433b40631ce12.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-3efa7798e9a68e36.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3efa7798e9a68e36.js +0 -1
- /package/app/.next/static/{-8uV9_pF9xHPyJ274VYJM → 9TbRsQGZYpzUzbh5jF8PL}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=4488,exports.ids=[4488],exports.modules={44488:(a,b,c)=>{c.d(b,{G6:()=>y,getDbInstance:()=>A,kB:()=>x});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(48161),k=c.n(j);let l="omniroute";function m(){try{return k().homedir()}catch{return process.cwd()}}function n(a){if("string"!=typeof a)return null;let b=a.trim();return b?g().resolve(b):null}function o(){return g().join(m(),`.${l}`)}var p=c(73136);let q=function(){try{let a="file:///home/
|
|
1
|
+
"use strict";exports.id=4488,exports.ids=[4488],exports.modules={44488:(a,b,c)=>{c.d(b,{G6:()=>y,getDbInstance:()=>A,kB:()=>x});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(48161),k=c.n(j);let l="omniroute";function m(){try{return k().homedir()}catch{return process.cwd()}}function n(a){if("string"!=typeof a)return null;let b=a.trim();return b?g().resolve(b):null}function o(){return g().join(m(),`.${l}`)}var p=c(73136);let q=function(){try{let a="file:///home/runner/work/OmniRoute/OmniRoute/src/lib/db/migrationRunner.ts";if(a&&a.startsWith("file://")){let b=(0,p.fileURLToPath)(a);return g().join(g().dirname(b),"migrations")}}catch{}return g().join(process.cwd(),"src","lib","db","migrations")}(),r="object"==typeof globalThis.caches&&null!==globalThis.caches,s="phase-production-build"===process.env.NEXT_PHASE,t=function({isCloud:a=!1}={}){if(a)return"/tmp";let b=n(process.env.DATA_DIR);if(b)return b;let c=m();if("win32"===process.platform){let a=process.env.APPDATA||g().join(c,"AppData","Roaming");return g().join(a,l)}let d=n(process.env.XDG_CONFIG_HOME);return d?g().join(d,l):o()}({isCloud:r});r||o();let u=r?null:g().join(t,"storage.sqlite"),v=r?null:g().join(t,"db.json");if(r||g().join(t,"db_backups"),!r&&!i().existsSync(t))try{i().mkdirSync(t,{recursive:!0})}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`[DB] Cannot create data directory '${t}': ${a}
|
|
2
2
|
[DB] Set the DATA_DIR environment variable to a writable path, e.g.:
|
|
3
3
|
[DB] DATA_DIR=/path/to/writable/dir omniroute`)}let w=`
|
|
4
4
|
CREATE TABLE IF NOT EXISTS provider_connections (
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=4935,exports.ids=[4935],exports.modules={76046:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Jb:()=>g,kf:()=>h});var e=c(42971),f=a([e]);function g(a,b){let c=a.safeParse(b);if(c.success)return{success:!0,data:c.data};let d=Array.isArray(c.error?.issues)?c.error.issues:[];return{success:!1,error:{message:"Invalid request",details:d.map(a=>({field:a.path.join("."),message:a.message}))}}}function h(a){return!1===a.success}(e=(f.then?(await f)():f)[0]).z.object({password:e.z.string().min(1,"Password is required").max(200)}),d()}catch(a){d(a)}})},78335:()=>{},91363:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$Q:()=>A,$g:()=>S,$q:()=>U,$z:()=>aB,A1:()=>y,AL:()=>ao,BR:()=>i,C9:()=>X,CN:()=>av,DD:()=>aH,E4:()=>aj,F0:()=>x,FO:()=>ai,GE:()=>ae,GR:()=>F,H3:()=>E,Hk:()=>aR,Ix:()=>aS,Jk:()=>ar,K3:()=>am,KS:()=>aa,LQ:()=>az,My:()=>al,NZ:()=>ah,QC:()=>aw,QI:()=>T,Qd:()=>I,Qt:()=>au,RD:()=>V,RK:()=>H,SQ:()=>$,Tp:()=>N,Tt:()=>aq,X5:()=>q,XK:()=>aP,Ym:()=>D,Z0:()=>an,_F:()=>n,_o:()=>aD,a6:()=>_,aR:()=>aE,bF:()=>ab,cf:()=>ak,cw:()=>aK,dB:()=>ax,fZ:()=>ad,ij:()=>aA,jC:()=>C,jD:()=>O,jG:()=>aL,lP:()=>K,nq:()=>h,nu:()=>ap,oL:()=>aO,q0:()=>at,qt:()=>ay,rE:()=>aJ,rR:()=>L,rv:()=>J,s8:()=>aC,t5:()=>z,tr:()=>p,uR:()=>R,wX:()=>W,x8:()=>aQ,xd:()=>aI,yA:()=>B,zM:()=>as});var e=c(42971),f=c(76046),g=a([e,f]);[e,f]=g.then?(await g)():g;let h=e.z.object({provider:e.z.string().min(1).max(100),apiKey:e.z.string().min(1).max(1e4),name:e.z.string().min(1).max(200),priority:e.z.number().int().min(1).max(100).optional(),globalPriority:e.z.number().int().min(1).max(100).nullable().optional(),defaultModel:e.z.string().max(200).nullable().optional(),testStatus:e.z.string().max(50).optional()}),i=e.z.object({name:e.z.string().min(1,"Name is required").max(200)}),j=e.z.union([e.z.string(),e.z.object({model:e.z.string().min(1),weight:e.z.number().min(0).max(100).default(0)})]),k=e.z.object({maxRetries:e.z.number().int().min(0).max(10).optional(),retryDelayMs:e.z.number().int().min(0).max(6e4).optional(),timeoutMs:e.z.number().int().min(1e3).max(6e5).optional(),healthCheckEnabled:e.z.boolean().optional()}).optional(),l=e.z.enum(["priority","weighted","round-robin","random","least-used","cost-optimized"]),m=e.z.object({strategy:l.optional(),maxRetries:e.z.coerce.number().int().min(0).max(10).optional(),retryDelayMs:e.z.coerce.number().int().min(0).max(6e4).optional(),timeoutMs:e.z.coerce.number().int().min(1e3).max(6e5).optional(),concurrencyPerModel:e.z.coerce.number().int().min(1).max(20).optional(),queueTimeoutMs:e.z.coerce.number().int().min(1e3).max(12e4).optional(),healthCheckEnabled:e.z.boolean().optional(),healthCheckTimeoutMs:e.z.coerce.number().int().min(100).max(3e4).optional(),maxComboDepth:e.z.coerce.number().int().min(1).max(10).optional(),trackMetrics:e.z.boolean().optional()}).strict(),n=e.z.object({name:e.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and ."),models:e.z.array(j).optional().default([]),strategy:l.optional().default("priority"),config:k}),o=e.z.object({quota:e.z.number().min(0).max(1),health:e.z.number().min(0).max(1),costInv:e.z.number().min(0).max(1),latencyInv:e.z.number().min(0).max(1),taskFit:e.z.number().min(0).max(1),stability:e.z.number().min(0).max(1)}).optional(),p=e.z.object({id:e.z.string().trim().min(1,"id is required").max(100),name:e.z.string().trim().min(1,"name is required").max(200),candidatePool:e.z.array(e.z.string().min(1)).optional().default([]),weights:o,modePack:e.z.string().max(100).optional(),budgetCap:e.z.number().positive().optional(),explorationRate:e.z.number().min(0).max(1).optional().default(.05)});e.z.object({newPassword:e.z.string().min(1).max(200).optional(),currentPassword:e.z.string().max(200).optional(),theme:e.z.string().max(50).optional(),language:e.z.string().max(10).optional(),requireLogin:e.z.boolean().optional(),enableRequestLogs:e.z.boolean().optional(),enableSocks5Proxy:e.z.boolean().optional(),instanceName:e.z.string().max(100).optional(),corsOrigins:e.z.string().max(500).optional(),logRetentionDays:e.z.number().int().min(1).max(365).optional(),cloudUrl:e.z.string().max(500).optional(),baseUrl:e.z.string().max(500).optional(),setupComplete:e.z.boolean().optional(),requireAuthForModels:e.z.boolean().optional(),blockedProviders:e.z.array(e.z.string().max(100)).optional(),hideHealthCheckLogs:e.z.boolean().optional(),fallbackStrategy:e.z.enum(["fill-first","round-robin","p2c","random","least-used","cost-optimized"]).optional(),wildcardAliases:e.z.array(e.z.object({pattern:e.z.string(),target:e.z.string()})).optional(),stickyRoundRobinLimit:e.z.number().int().min(0).max(1e3).optional(),mcpEnabled:e.z.boolean().optional(),a2aEnabled:e.z.boolean().optional()});let q=e.z.object({password:e.z.string().min(1,"Password is required").max(200)}),r=e.z.string().trim().min(1,"Model is required").max(200),s=e.z.string().trim().min(1,"Field is required"),t=e.z.array(e.z.number().int().min(0)).min(1,"input token array must contain at least one item"),u=e.z.union([s,e.z.array(s).min(1,"input must contain at least one item"),t,e.z.array(t).min(1,"input must contain at least one item")]),v=e.z.object({role:e.z.string().trim().min(1,"messages[].role is required"),content:e.z.union([s,e.z.array(e.z.unknown()).min(1),e.z.null()]).optional()}).catchall(e.z.unknown()),w=e.z.object({content:e.z.union([s,e.z.array(e.z.object({type:e.z.string().optional(),text:e.z.string().optional()}).catchall(e.z.unknown())).min(1,"messages[].content must contain at least one item")])}).catchall(e.z.unknown()),x=e.z.object({model:r,input:u,dimensions:e.z.coerce.number().int().positive().optional(),encoding_format:e.z.enum(["float","base64"]).optional()}).catchall(e.z.unknown()),y=e.z.object({model:r,prompt:s}).catchall(e.z.unknown()),z=e.z.object({model:r,input:s}).catchall(e.z.unknown()),A=e.z.object({model:r.optional(),input:e.z.unknown().refine(a=>null!=a&&("string"==typeof a?a.trim().length>0:!Array.isArray(a)||a.length>0),"Input is required")}).catchall(e.z.unknown()),B=e.z.object({model:r,query:s,documents:e.z.array(e.z.unknown()).min(1,"documents must contain at least one item")}).catchall(e.z.unknown()),C=e.z.object({model:r,messages:e.z.array(v).min(1).optional(),input:e.z.union([s,e.z.array(e.z.unknown()).min(1)]).optional(),prompt:s.optional()}).catchall(e.z.unknown()).superRefine((a,b)=>{void 0===a.messages&&void 0===a.input&&void 0===a.prompt&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"messages, input or prompt is required",path:[]})}),D=e.z.object({messages:e.z.array(w).min(1,"messages must contain at least one item")}).catchall(e.z.unknown()),E=e.z.object({apiKeyId:e.z.string().trim().min(1,"apiKeyId is required"),dailyLimitUsd:e.z.coerce.number().positive("dailyLimitUsd must be greater than zero"),monthlyLimitUsd:e.z.coerce.number().positive("monthlyLimitUsd must be greater than zero").optional(),warningThreshold:e.z.coerce.number().min(0).max(1).optional()}),F=e.z.object({action:e.z.enum(["unlock"]),identifier:e.z.string().trim().min(1).optional()}).superRefine((a,b)=>{"unlock"!==a.action||a.identifier||b.addIssue({code:e.z.ZodIssueCode.custom,message:"identifier is required for unlock action",path:["identifier"]})}),G=e.z.object({provider:e.z.string().trim().min(1,"provider is required"),priority:e.z.number().int().min(1).max(100).optional(),enabled:e.z.boolean().optional()}).catchall(e.z.unknown()),H=e.z.object({model:r,chain:e.z.array(G).min(1,"chain must contain at least one provider")}),I=e.z.object({model:r}),J=e.z.object({model:r,alias:e.z.string().trim().min(1,"Alias is required").max(200)}),K=e.z.object({provider:e.z.string().trim().min(1,"provider is required").max(120),model:r}),L=e.z.object({provider:e.z.string().trim().min(1,"provider is required").max(120),modelId:e.z.string().trim().min(1,"modelId is required").max(240),modelName:e.z.string().trim().max(240).optional(),source:e.z.string().trim().max(80).optional(),apiFormat:e.z.enum(["chat-completions","responses"]).default("chat-completions"),supportedEndpoints:e.z.array(e.z.enum(["chat","embeddings","images","audio"])).default(["chat"])}),M=e.z.object({input:e.z.number().min(0).optional(),output:e.z.number().min(0).optional(),cached:e.z.number().min(0).optional(),reasoning:e.z.number().min(0).optional(),cache_creation:e.z.number().min(0).optional()}).strict(),N=e.z.record(e.z.string().trim().min(1),e.z.record(e.z.string().trim().min(1),M)),O=e.z.object({connectionId:e.z.string().trim().min(1,"connectionId is required"),enabled:e.z.boolean()}),P=e.z.object({transientCooldown:e.z.number().min(0),rateLimitCooldown:e.z.number().min(0),maxBackoffLevel:e.z.number().int().min(0),circuitBreakerThreshold:e.z.number().int().min(0),circuitBreakerReset:e.z.number().min(0)}),Q=e.z.object({requestsPerMinute:e.z.number().int().min(1).optional(),minTimeBetweenRequests:e.z.number().int().min(1).optional(),concurrentRequests:e.z.number().int().min(1).optional()}).strict(),R=e.z.object({profiles:e.z.object({oauth:P.optional(),apikey:P.optional()}).strict().optional(),defaults:Q.optional()}).superRefine((a,b)=>{a.profiles||a.defaults||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Must provide profiles or defaults",path:[]})}),S=e.z.record(e.z.string(),e.z.unknown()),T=e.z.object({action:e.z.literal("reset-stats")}),U=e.z.object({comboDefaults:m.optional(),providerOverrides:e.z.record(e.z.string().trim().min(1),m).optional()}).superRefine((a,b)=>{a.comboDefaults||a.providerOverrides||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Nothing to update",path:[]})}),V=e.z.object({requireLogin:e.z.boolean().optional(),password:e.z.string().min(4,"Password must be at least 4 characters").optional()}).superRefine((a,b)=>{void 0!==a.requireLogin||a.password||b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),W=e.z.object({prompt:e.z.string().max(5e4).optional(),enabled:e.z.boolean().optional()}).strict().superRefine((a,b)=>{void 0===a.prompt&&void 0===a.enabled&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),X=e.z.object({mode:e.z.enum(["passthrough","auto","custom","adaptive"]).optional(),customBudget:e.z.coerce.number().int().min(0).max(131072).optional(),effortLevel:e.z.enum(["none","low","medium","high"]).optional(),baseBudget:e.z.coerce.number().int().min(0).max(131072).optional(),complexityMultiplier:e.z.coerce.number().min(0).optional()}).strict().superRefine((a,b)=>{void 0===a.mode&&void 0===a.customBudget&&void 0===a.effortLevel&&void 0===a.baseBudget&&void 0===a.complexityMultiplier&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),Y=e.z.enum(["blacklist","whitelist"]),Z=e.z.object({ip:e.z.string().trim().min(1),durationMs:e.z.coerce.number().int().min(1).optional(),reason:e.z.string().max(200).optional()}),$=e.z.object({enabled:e.z.boolean().optional(),mode:Y.optional(),blacklist:e.z.array(e.z.string()).optional(),whitelist:e.z.array(e.z.string()).optional(),addBlacklist:e.z.string().optional(),removeBlacklist:e.z.string().optional(),addWhitelist:e.z.string().optional(),removeWhitelist:e.z.string().optional(),tempBan:Z.optional(),removeBan:e.z.string().optional()}).strict().superRefine((a,b)=>{0===Object.keys(a).length&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),_=e.z.object({aliases:e.z.record(e.z.string().trim().min(1),e.z.string().trim().min(1))}),aa=e.z.object({from:e.z.string().trim().min(1),to:e.z.string().trim().min(1)}),ab=e.z.object({from:e.z.string().trim().min(1)}),ac=e.z.object({type:e.z.preprocess(a=>"string"==typeof a?a.trim().toLowerCase():a,e.z.enum(["http","https","socks5"])).optional(),host:e.z.string().trim().min(1).optional(),port:e.z.coerce.number().int().min(1).max(65535).optional(),username:e.z.string().optional(),password:e.z.string().optional()}).strict(),ad=e.z.object({proxy:ac.nullable().optional(),global:ac.nullable().optional(),providers:e.z.record(e.z.string().trim().min(1),ac.nullable()).optional(),combos:e.z.record(e.z.string().trim().min(1),ac.nullable()).optional(),keys:e.z.record(e.z.string().trim().min(1),ac.nullable()).optional(),level:e.z.enum(["global","provider","combo","key"]).optional(),id:e.z.string().optional()}).strict().superRefine((a,b)=>{void 0===a.proxy&&void 0===a.global&&void 0===a.providers&&void 0===a.combos&&void 0===a.keys&&void 0===a.level&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]}),void 0!==a.level&&void 0===a.proxy&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"proxy is required when level is provided",path:["proxy"]}),a.level&&"global"!==a.level&&!a.id?.trim()&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"id is required for provider/combo/key level updates",path:["id"]})}),ae=e.z.object({proxy:e.z.object({type:e.z.string().optional(),host:e.z.string().trim().min(1,"proxy.host is required"),port:e.z.union([e.z.string(),e.z.number()]),username:e.z.string().optional(),password:e.z.string().optional()})}),af=e.z.record(e.z.string(),e.z.unknown()).refine(a=>Object.keys(a).length>0,"Body must be a non-empty object"),ag=e.z.enum(["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt"]),ah=e.z.object({body:af}),ai=e.z.object({file:ag,content:e.z.string().min(1,"Content is required").max(1e6,"Content is too large")}),aj=e.z.object({provider:e.z.string().trim().min(1,"Provider is required"),body:af}),ak=e.z.object({step:e.z.union([e.z.number().int().min(1).max(4),e.z.literal("direct")]),provider:e.z.string().trim().min(1).optional(),body:af,sourceFormat:e.z.string().optional(),targetFormat:e.z.string().optional()}).superRefine((a,b)=>{"direct"===a.step||a.provider||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Step and provider are required",path:["provider"]})}),al=e.z.object({code:e.z.string().trim().min(1),redirectUri:e.z.string().trim().min(1),codeVerifier:e.z.string().trim().min(1),state:e.z.string().optional()}),am=e.z.object({deviceCode:e.z.string().trim().min(1),codeVerifier:e.z.string().optional(),extraData:e.z.unknown().optional()}),an=e.z.object({accessToken:e.z.string().trim().min(1,"Access token is required"),machineId:e.z.string().trim().min(1,"Machine ID is required")}),ao=e.z.object({refreshToken:e.z.string().trim().min(1,"Refresh token is required")}),ap=e.z.object({code:e.z.string().trim().min(1,"Code is required"),codeVerifier:e.z.string().trim().min(1,"Code verifier is required"),provider:e.z.enum(["google","github"])}),aq=e.z.object({provider:e.z.string().trim().min(1,"Provider is required"),credentials:e.z.object({accessToken:e.z.string().optional(),refreshToken:e.z.string().optional(),expiresIn:e.z.coerce.number().positive().optional()}).strict().superRefine((a,b)=>{void 0===a.accessToken&&void 0===a.refreshToken&&void 0===a.expiresIn&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"At least one credential field must be provided",path:[]})})}),ar=e.z.object({alias:e.z.string().trim().min(1,"Missing alias")}),as=e.z.object({model:e.z.string().trim().min(1,"Model and alias required"),alias:e.z.string().trim().min(1,"Model and alias required")}),at=e.z.object({action:e.z.enum(["enable","sync","disable"])}),au=e.z.object({name:e.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and .").optional(),models:e.z.array(j).optional(),strategy:l.optional(),config:m.optional(),isActive:e.z.boolean().optional()}).superRefine((a,b)=>{void 0===a.name&&void 0===a.models&&void 0===a.strategy&&void 0===a.config&&void 0===a.isActive&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),av=e.z.object({comboName:e.z.string().trim().min(1,"comboName is required")}),aw=e.z.object({backupId:e.z.string().trim().min(1,"backupId is required")}),ax=e.z.object({suiteId:e.z.string().trim().min(1,"suiteId is required"),outputs:e.z.record(e.z.string(),e.z.string())}),ay=e.z.object({allowedModels:e.z.array(e.z.string().trim().min(1)).max(1e3).optional(),noLog:e.z.boolean().optional()}).superRefine((a,b)=>{void 0===a.allowedModels&&void 0===a.noLog&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),az=e.z.object({name:e.z.string().trim().min(1,"Name is required"),prefix:e.z.string().trim().min(1,"Prefix is required"),apiType:e.z.enum(["chat","responses"]).optional(),baseUrl:e.z.string().trim().min(1).optional(),type:e.z.enum(["openai-compatible","anthropic-compatible"]).optional()}).superRefine((a,b)=>{let c=a.type||"openai-compatible";"openai-compatible"!==c||a.apiType||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Invalid OpenAI compatible API type",path:["apiType"]})}),aA=e.z.object({name:e.z.string().trim().min(1,"Name is required"),prefix:e.z.string().trim().min(1,"Prefix is required"),apiType:e.z.enum(["chat","responses"]).optional(),baseUrl:e.z.string().trim().min(1,"Base URL is required")}),aB=e.z.object({baseUrl:e.z.string().trim().min(1,"Base URL and API key required"),apiKey:e.z.string().trim().min(1,"Base URL and API key required"),type:e.z.enum(["openai-compatible","anthropic-compatible"]).optional()}),aC=e.z.object({name:e.z.string().max(200).optional(),priority:e.z.coerce.number().int().min(1).max(100).optional(),globalPriority:e.z.union([e.z.coerce.number().int().min(1).max(100),e.z.null()]).optional(),defaultModel:e.z.union([e.z.string().max(200),e.z.null()]).optional(),isActive:e.z.boolean().optional(),apiKey:e.z.string().max(1e4).optional(),testStatus:e.z.string().max(50).optional(),lastError:e.z.union([e.z.string(),e.z.null()]).optional(),lastErrorAt:e.z.union([e.z.string(),e.z.null()]).optional(),lastErrorType:e.z.union([e.z.string(),e.z.null()]).optional(),lastErrorSource:e.z.union([e.z.string(),e.z.null()]).optional(),errorCode:e.z.union([e.z.string(),e.z.null()]).optional(),rateLimitedUntil:e.z.union([e.z.string(),e.z.null()]).optional(),lastTested:e.z.union([e.z.string(),e.z.null()]).optional(),healthCheckInterval:e.z.coerce.number().int().min(0).optional()}).superRefine((a,b)=>{0===Object.keys(a).length&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),aD=e.z.object({mode:e.z.enum(["provider","oauth","free","apikey","compatible","all"]),providerId:e.z.string().trim().min(1).optional()}).superRefine((a,b)=>{"provider"!==a.mode||a.providerId||b.addIssue({code:e.z.ZodIssueCode.custom,message:"providerId is required when mode=provider",path:["providerId"]})}),aE=e.z.object({provider:e.z.string().trim().min(1,"Provider and API key required"),apiKey:e.z.string().trim().min(1,"Provider and API key required")}),aF=e.z.object({text:e.z.string().optional()}).catchall(e.z.unknown()),aG=e.z.object({role:e.z.string().optional(),parts:e.z.array(aF).optional()}).catchall(e.z.unknown()),aH=e.z.object({contents:e.z.array(aG).optional(),systemInstruction:e.z.object({parts:e.z.array(aF).optional()}).catchall(e.z.unknown()).optional(),generationConfig:e.z.object({stream:e.z.boolean().optional(),maxOutputTokens:e.z.coerce.number().int().min(1).optional(),temperature:e.z.coerce.number().optional(),topP:e.z.coerce.number().optional()}).catchall(e.z.unknown()).optional()}).catchall(e.z.unknown()).superRefine((a,b)=>{a.contents||a.systemInstruction||b.addIssue({code:e.z.ZodIssueCode.custom,message:"contents or systemInstruction is required",path:[]})}),aI=e.z.object({apiKey:e.z.string().trim().min(1,"Missing apiKey"),sudoPassword:e.z.string().optional()}),aJ=e.z.object({sudoPassword:e.z.string().optional()}),aK=e.z.object({tool:e.z.string().trim().min(1,"tool and mappings required"),mappings:e.z.record(e.z.string(),e.z.string().optional())}),aL=e.z.object({tool:e.z.string().trim().min(1).optional(),toolId:e.z.string().trim().min(1).optional(),backupId:e.z.string().trim().min(1,"tool and backupId are required")}).superRefine((a,b)=>{a.tool||a.toolId||b.addIssue({code:e.z.ZodIssueCode.custom,message:"tool and backupId are required",path:["tool"]})}),aM=e.z.string().trim().min(1,"Environment key is required").max(120).regex(/^[A-Z_][A-Z0-9_]*$/,"Invalid environment key format"),aN=e.z.union([e.z.string(),e.z.number(),e.z.boolean()]).transform(a=>String(a)).refine(a=>a.length>0,"Environment value is required").refine(a=>a.length<=1e4,"Environment value is too long"),aO=e.z.object({env:e.z.record(aM,aN).refine(a=>Object.keys(a).length>0,"env must contain at least one key")}),aP=e.z.object({baseUrl:e.z.string().trim().min(1,"baseUrl and model are required"),apiKey:e.z.string().optional(),model:e.z.string().trim().min(1,"baseUrl and model are required")}),aQ=e.z.object({name:e.z.string().trim().min(1,"Profile name is required")}),aR=e.z.object({profileId:e.z.string().trim().min(1,"profileId is required")}),aS=e.z.object({baseUrl:e.z.string().trim().min(1).optional(),apiKey:e.z.string().optional(),model:e.z.string().trim().min(1,"Model is required")});d()}catch(a){d(a)}})},96487:()=>{}};
|
|
1
|
+
exports.id=4935,exports.ids=[4935],exports.modules={76046:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Jb:()=>g,kf:()=>h});var e=c(42971),f=a([e]);function g(a,b){let c=a.safeParse(b);if(c.success)return{success:!0,data:c.data};let d=Array.isArray(c.error?.issues)?c.error.issues:[];return{success:!1,error:{message:"Invalid request",details:d.map(a=>({field:a.path.join("."),message:a.message}))}}}function h(a){return!1===a.success}(e=(f.then?(await f)():f)[0]).z.object({password:e.z.string().min(1,"Password is required").max(200)}),d()}catch(a){d(a)}})},78335:()=>{},91363:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$Q:()=>A,$g:()=>S,$q:()=>U,$z:()=>aB,A1:()=>y,AL:()=>ao,BR:()=>i,C9:()=>X,CN:()=>av,DD:()=>aH,E4:()=>aj,F0:()=>x,FO:()=>ai,GE:()=>ae,GR:()=>F,H3:()=>E,Hk:()=>aR,Ix:()=>aS,Jk:()=>ar,K3:()=>am,KS:()=>aa,LQ:()=>az,My:()=>al,NZ:()=>ah,QC:()=>aw,QI:()=>T,Qd:()=>I,Qt:()=>au,RD:()=>V,RK:()=>H,SQ:()=>$,Tp:()=>N,Tt:()=>aq,X5:()=>q,XK:()=>aP,Ym:()=>D,Z0:()=>an,_F:()=>n,_o:()=>aD,a6:()=>_,aR:()=>aE,bF:()=>ab,cf:()=>ak,cw:()=>aK,dB:()=>ax,fZ:()=>ad,ij:()=>aA,jC:()=>C,jD:()=>O,jG:()=>aL,lP:()=>K,nq:()=>h,nu:()=>ap,oL:()=>aO,q0:()=>at,qt:()=>ay,rE:()=>aJ,rR:()=>L,rv:()=>J,s8:()=>aC,t5:()=>z,tr:()=>p,uR:()=>R,wX:()=>W,x8:()=>aQ,xd:()=>aI,yA:()=>B,zM:()=>as});var e=c(42971),f=c(76046),g=a([e,f]);[e,f]=g.then?(await g)():g;let h=e.z.object({provider:e.z.string().min(1).max(100),apiKey:e.z.string().min(1).max(1e4),name:e.z.string().min(1).max(200),priority:e.z.number().int().min(1).max(100).optional(),globalPriority:e.z.number().int().min(1).max(100).nullable().optional(),defaultModel:e.z.string().max(200).nullable().optional(),testStatus:e.z.string().max(50).optional()}),i=e.z.object({name:e.z.string().min(1,"Name is required").max(200)}),j=e.z.union([e.z.string(),e.z.object({model:e.z.string().min(1),weight:e.z.number().min(0).max(100).default(0)})]),k=e.z.object({maxRetries:e.z.number().int().min(0).max(10).optional(),retryDelayMs:e.z.number().int().min(0).max(6e4).optional(),timeoutMs:e.z.number().int().min(1e3).max(6e5).optional(),healthCheckEnabled:e.z.boolean().optional()}).optional(),l=e.z.enum(["priority","weighted","round-robin","random","least-used","cost-optimized"]),m=e.z.object({strategy:l.optional(),maxRetries:e.z.coerce.number().int().min(0).max(10).optional(),retryDelayMs:e.z.coerce.number().int().min(0).max(6e4).optional(),timeoutMs:e.z.coerce.number().int().min(1e3).max(6e5).optional(),concurrencyPerModel:e.z.coerce.number().int().min(1).max(20).optional(),queueTimeoutMs:e.z.coerce.number().int().min(1e3).max(12e4).optional(),healthCheckEnabled:e.z.boolean().optional(),healthCheckTimeoutMs:e.z.coerce.number().int().min(100).max(3e4).optional(),maxComboDepth:e.z.coerce.number().int().min(1).max(10).optional(),trackMetrics:e.z.boolean().optional()}).strict(),n=e.z.object({name:e.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and ."),models:e.z.array(j).optional().default([]),strategy:l.optional().default("priority"),config:k}),o=e.z.object({quota:e.z.number().min(0).max(1),health:e.z.number().min(0).max(1),costInv:e.z.number().min(0).max(1),latencyInv:e.z.number().min(0).max(1),taskFit:e.z.number().min(0).max(1),stability:e.z.number().min(0).max(1)}).optional(),p=e.z.object({id:e.z.string().trim().min(1,"id is required").max(100),name:e.z.string().trim().min(1,"name is required").max(200),candidatePool:e.z.array(e.z.string().min(1)).optional().default([]),weights:o,modePack:e.z.string().max(100).optional(),budgetCap:e.z.number().positive().optional(),explorationRate:e.z.number().min(0).max(1).optional().default(.05)});e.z.object({newPassword:e.z.string().min(1).max(200).optional(),currentPassword:e.z.string().max(200).optional(),theme:e.z.string().max(50).optional(),language:e.z.string().max(10).optional(),requireLogin:e.z.boolean().optional(),enableRequestLogs:e.z.boolean().optional(),enableSocks5Proxy:e.z.boolean().optional(),instanceName:e.z.string().max(100).optional(),corsOrigins:e.z.string().max(500).optional(),logRetentionDays:e.z.number().int().min(1).max(365).optional(),cloudUrl:e.z.string().max(500).optional(),baseUrl:e.z.string().max(500).optional(),setupComplete:e.z.boolean().optional(),requireAuthForModels:e.z.boolean().optional(),blockedProviders:e.z.array(e.z.string().max(100)).optional(),hideHealthCheckLogs:e.z.boolean().optional(),fallbackStrategy:e.z.enum(["fill-first","round-robin","p2c","random","least-used","cost-optimized"]).optional(),wildcardAliases:e.z.array(e.z.object({pattern:e.z.string(),target:e.z.string()})).optional(),stickyRoundRobinLimit:e.z.number().int().min(0).max(1e3).optional(),mcpEnabled:e.z.boolean().optional(),a2aEnabled:e.z.boolean().optional()});let q=e.z.object({password:e.z.string().min(1,"Password is required").max(200)}),r=e.z.string().trim().min(1,"Model is required").max(200),s=e.z.string().trim().min(1,"Field is required"),t=e.z.array(e.z.number().int().min(0)).min(1,"input token array must contain at least one item"),u=e.z.union([s,e.z.array(s).min(1,"input must contain at least one item"),t,e.z.array(t).min(1,"input must contain at least one item")]),v=e.z.object({role:e.z.string().trim().min(1,"messages[].role is required"),content:e.z.union([s,e.z.array(e.z.unknown()).min(1),e.z.null()]).optional()}).catchall(e.z.unknown()),w=e.z.object({content:e.z.union([s,e.z.array(e.z.object({type:e.z.string().optional(),text:e.z.string().optional()}).catchall(e.z.unknown())).min(1,"messages[].content must contain at least one item")])}).catchall(e.z.unknown()),x=e.z.object({model:r,input:u,dimensions:e.z.coerce.number().int().positive().optional(),encoding_format:e.z.enum(["float","base64"]).optional()}).catchall(e.z.unknown()),y=e.z.object({model:r,prompt:s}).catchall(e.z.unknown()),z=e.z.object({model:r,input:s}).catchall(e.z.unknown()),A=e.z.object({model:r.optional(),input:e.z.unknown().refine(a=>null!=a&&("string"==typeof a?a.trim().length>0:!Array.isArray(a)||a.length>0),"Input is required")}).catchall(e.z.unknown()),B=e.z.object({model:r,query:s,documents:e.z.array(e.z.unknown()).min(1,"documents must contain at least one item")}).catchall(e.z.unknown()),C=e.z.object({model:r,messages:e.z.array(v).min(1).optional(),input:e.z.union([s,e.z.array(e.z.unknown()).min(1)]).optional(),prompt:s.optional()}).catchall(e.z.unknown()).superRefine((a,b)=>{void 0===a.messages&&void 0===a.input&&void 0===a.prompt&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"messages, input or prompt is required",path:[]})}),D=e.z.object({messages:e.z.array(w).min(1,"messages must contain at least one item")}).catchall(e.z.unknown()),E=e.z.object({apiKeyId:e.z.string().trim().min(1,"apiKeyId is required"),dailyLimitUsd:e.z.coerce.number().positive("dailyLimitUsd must be greater than zero"),monthlyLimitUsd:e.z.coerce.number().positive("monthlyLimitUsd must be greater than zero").optional(),warningThreshold:e.z.coerce.number().min(0).max(1).optional()}),F=e.z.object({action:e.z.enum(["unlock"]),identifier:e.z.string().trim().min(1).optional()}).superRefine((a,b)=>{"unlock"!==a.action||a.identifier||b.addIssue({code:e.z.ZodIssueCode.custom,message:"identifier is required for unlock action",path:["identifier"]})}),G=e.z.object({provider:e.z.string().trim().min(1,"provider is required"),priority:e.z.number().int().min(1).max(100).optional(),enabled:e.z.boolean().optional()}).catchall(e.z.unknown()),H=e.z.object({model:r,chain:e.z.array(G).min(1,"chain must contain at least one provider")}),I=e.z.object({model:r}),J=e.z.object({model:r,alias:e.z.string().trim().min(1,"Alias is required").max(200)}),K=e.z.object({provider:e.z.string().trim().min(1,"provider is required").max(120),model:r}),L=e.z.object({provider:e.z.string().trim().min(1,"provider is required").max(120),modelId:e.z.string().trim().min(1,"modelId is required").max(240),modelName:e.z.string().trim().max(240).optional(),source:e.z.string().trim().max(80).optional(),apiFormat:e.z.enum(["chat-completions","responses"]).default("chat-completions"),supportedEndpoints:e.z.array(e.z.enum(["chat","embeddings","images","audio"])).default(["chat"])}),M=e.z.object({input:e.z.number().min(0).optional(),output:e.z.number().min(0).optional(),cached:e.z.number().min(0).optional(),reasoning:e.z.number().min(0).optional(),cache_creation:e.z.number().min(0).optional()}).strict(),N=e.z.record(e.z.string().trim().min(1),e.z.record(e.z.string().trim().min(1),M)),O=e.z.object({connectionId:e.z.string().trim().min(1,"connectionId is required"),enabled:e.z.boolean()}),P=e.z.object({transientCooldown:e.z.number().min(0),rateLimitCooldown:e.z.number().min(0),maxBackoffLevel:e.z.number().int().min(0),circuitBreakerThreshold:e.z.number().int().min(0),circuitBreakerReset:e.z.number().min(0)}),Q=e.z.object({requestsPerMinute:e.z.number().int().min(1).optional(),minTimeBetweenRequests:e.z.number().int().min(1).optional(),concurrentRequests:e.z.number().int().min(1).optional()}).strict(),R=e.z.object({profiles:e.z.object({oauth:P.optional(),apikey:P.optional()}).strict().optional(),defaults:Q.optional()}).superRefine((a,b)=>{a.profiles||a.defaults||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Must provide profiles or defaults",path:[]})}),S=e.z.record(e.z.string(),e.z.unknown()),T=e.z.object({action:e.z.literal("reset-stats")}),U=e.z.object({comboDefaults:m.optional(),providerOverrides:e.z.record(e.z.string().trim().min(1),m).optional()}).superRefine((a,b)=>{a.comboDefaults||a.providerOverrides||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Nothing to update",path:[]})}),V=e.z.object({requireLogin:e.z.boolean().optional(),password:e.z.string().min(4,"Password must be at least 4 characters").optional()}).superRefine((a,b)=>{void 0!==a.requireLogin||a.password||b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),W=e.z.object({prompt:e.z.string().max(5e4).optional(),enabled:e.z.boolean().optional()}).strict().superRefine((a,b)=>{void 0===a.prompt&&void 0===a.enabled&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),X=e.z.object({mode:e.z.enum(["passthrough","auto","custom","adaptive"]).optional(),customBudget:e.z.coerce.number().int().min(0).max(131072).optional(),effortLevel:e.z.enum(["none","low","medium","high"]).optional(),baseBudget:e.z.coerce.number().int().min(0).max(131072).optional(),complexityMultiplier:e.z.coerce.number().min(0).optional()}).strict().superRefine((a,b)=>{void 0===a.mode&&void 0===a.customBudget&&void 0===a.effortLevel&&void 0===a.baseBudget&&void 0===a.complexityMultiplier&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),Y=e.z.enum(["blacklist","whitelist"]),Z=e.z.object({ip:e.z.string().trim().min(1),durationMs:e.z.coerce.number().int().min(1).optional(),reason:e.z.string().max(200).optional()}),$=e.z.object({enabled:e.z.boolean().optional(),mode:Y.optional(),blacklist:e.z.array(e.z.string()).optional(),whitelist:e.z.array(e.z.string()).optional(),addBlacklist:e.z.string().optional(),removeBlacklist:e.z.string().optional(),addWhitelist:e.z.string().optional(),removeWhitelist:e.z.string().optional(),tempBan:Z.optional(),removeBan:e.z.string().optional()}).strict().superRefine((a,b)=>{0===Object.keys(a).length&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),_=e.z.object({aliases:e.z.record(e.z.string().trim().min(1),e.z.string().trim().min(1))}),aa=e.z.object({from:e.z.string().trim().min(1),to:e.z.string().trim().min(1)}),ab=e.z.object({from:e.z.string().trim().min(1)}),ac=e.z.object({type:e.z.preprocess(a=>"string"==typeof a?a.trim().toLowerCase():a,e.z.enum(["http","https","socks5"])).optional(),host:e.z.string().trim().min(1).optional(),port:e.z.coerce.number().int().min(1).max(65535).optional(),username:e.z.string().optional(),password:e.z.string().optional()}).strict(),ad=e.z.object({proxy:ac.nullable().optional(),global:ac.nullable().optional(),providers:e.z.record(e.z.string().trim().min(1),ac.nullable()).optional(),combos:e.z.record(e.z.string().trim().min(1),ac.nullable()).optional(),keys:e.z.record(e.z.string().trim().min(1),ac.nullable()).optional(),level:e.z.enum(["global","provider","combo","key"]).optional(),id:e.z.string().optional()}).strict().superRefine((a,b)=>{void 0===a.proxy&&void 0===a.global&&void 0===a.providers&&void 0===a.combos&&void 0===a.keys&&void 0===a.level&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]}),void 0!==a.level&&void 0===a.proxy&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"proxy is required when level is provided",path:["proxy"]}),a.level&&"global"!==a.level&&!a.id?.trim()&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"id is required for provider/combo/key level updates",path:["id"]})}),ae=e.z.object({proxy:e.z.object({type:e.z.string().optional(),host:e.z.string().trim().min(1,"proxy.host is required"),port:e.z.union([e.z.string(),e.z.number()]),username:e.z.string().optional(),password:e.z.string().optional()})}),af=e.z.record(e.z.string(),e.z.unknown()).refine(a=>Object.keys(a).length>0,"Body must be a non-empty object"),ag=e.z.enum(["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt"]),ah=e.z.object({body:af}),ai=e.z.object({file:ag,content:e.z.string().min(1,"Content is required").max(1e6,"Content is too large")}),aj=e.z.object({provider:e.z.string().trim().min(1,"Provider is required"),body:af}),ak=e.z.object({step:e.z.union([e.z.number().int().min(1).max(4),e.z.literal("direct")]),provider:e.z.string().trim().min(1).optional(),body:af,sourceFormat:e.z.string().optional(),targetFormat:e.z.string().optional()}).superRefine((a,b)=>{"direct"===a.step||a.provider||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Step and provider are required",path:["provider"]})}),al=e.z.object({code:e.z.string().trim().min(1),redirectUri:e.z.string().trim().min(1),codeVerifier:e.z.string().trim().min(1),state:e.z.string().optional()}),am=e.z.object({deviceCode:e.z.string().trim().min(1),codeVerifier:e.z.string().optional(),extraData:e.z.unknown().optional()}),an=e.z.object({accessToken:e.z.string().trim().min(1,"Access token is required"),machineId:e.z.string().trim().min(1,"Machine ID is required")}),ao=e.z.object({refreshToken:e.z.string().trim().min(1,"Refresh token is required")}),ap=e.z.object({code:e.z.string().trim().min(1,"Code is required"),codeVerifier:e.z.string().trim().min(1,"Code verifier is required"),provider:e.z.enum(["google","github"])}),aq=e.z.object({provider:e.z.string().trim().min(1,"Provider is required"),credentials:e.z.object({accessToken:e.z.string().optional(),refreshToken:e.z.string().optional(),expiresIn:e.z.coerce.number().positive().optional()}).strict().superRefine((a,b)=>{void 0===a.accessToken&&void 0===a.refreshToken&&void 0===a.expiresIn&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"At least one credential field must be provided",path:[]})})}),ar=e.z.object({alias:e.z.string().trim().min(1,"Missing alias")}),as=e.z.object({model:e.z.string().trim().min(1,"Model and alias required"),alias:e.z.string().trim().min(1,"Model and alias required")}),at=e.z.object({action:e.z.enum(["enable","sync","disable"])}),au=e.z.object({name:e.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and .").optional(),models:e.z.array(j).optional(),strategy:l.optional(),config:m.optional(),isActive:e.z.boolean().optional()}).superRefine((a,b)=>{void 0===a.name&&void 0===a.models&&void 0===a.strategy&&void 0===a.config&&void 0===a.isActive&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),av=e.z.object({comboName:e.z.string().trim().min(1,"comboName is required")}),aw=e.z.object({backupId:e.z.string().trim().min(1,"backupId is required")}),ax=e.z.object({suiteId:e.z.string().trim().min(1,"suiteId is required"),outputs:e.z.record(e.z.string(),e.z.string())}),ay=e.z.object({allowedModels:e.z.array(e.z.string().trim().min(1)).max(1e3).optional(),noLog:e.z.boolean().optional()}).superRefine((a,b)=>{void 0===a.allowedModels&&void 0===a.noLog&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),az=e.z.object({name:e.z.string().trim().min(1,"Name is required"),prefix:e.z.string().trim().min(1,"Prefix is required"),apiType:e.z.enum(["chat","responses"]).optional(),baseUrl:e.z.string().trim().min(1).optional(),type:e.z.enum(["openai-compatible","anthropic-compatible"]).optional()}).superRefine((a,b)=>{let c=a.type||"openai-compatible";"openai-compatible"!==c||a.apiType||b.addIssue({code:e.z.ZodIssueCode.custom,message:"Invalid OpenAI compatible API type",path:["apiType"]})}),aA=e.z.object({name:e.z.string().trim().min(1,"Name is required"),prefix:e.z.string().trim().min(1,"Prefix is required"),apiType:e.z.enum(["chat","responses"]).optional(),baseUrl:e.z.string().trim().min(1,"Base URL is required")}),aB=e.z.object({baseUrl:e.z.string().trim().min(1,"Base URL and API key required"),apiKey:e.z.string().trim().min(1,"Base URL and API key required"),type:e.z.enum(["openai-compatible","anthropic-compatible"]).optional()}),aC=e.z.object({name:e.z.string().max(200).optional(),priority:e.z.coerce.number().int().min(1).max(100).optional(),globalPriority:e.z.union([e.z.coerce.number().int().min(1).max(100),e.z.null()]).optional(),defaultModel:e.z.union([e.z.string().max(200),e.z.null()]).optional(),isActive:e.z.boolean().optional(),apiKey:e.z.string().max(1e4).optional(),testStatus:e.z.string().max(50).optional(),lastError:e.z.union([e.z.string(),e.z.null()]).optional(),lastErrorAt:e.z.union([e.z.string(),e.z.null()]).optional(),lastErrorType:e.z.union([e.z.string(),e.z.null()]).optional(),lastErrorSource:e.z.union([e.z.string(),e.z.null()]).optional(),errorCode:e.z.union([e.z.string(),e.z.null()]).optional(),rateLimitedUntil:e.z.union([e.z.string(),e.z.null()]).optional(),lastTested:e.z.union([e.z.string(),e.z.null()]).optional(),healthCheckInterval:e.z.coerce.number().int().min(0).optional(),providerSpecificData:e.z.record(e.z.string(),e.z.unknown()).optional()}).superRefine((a,b)=>{0===Object.keys(a).length&&b.addIssue({code:e.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),aD=e.z.object({mode:e.z.enum(["provider","oauth","free","apikey","compatible","all"]),providerId:e.z.string().trim().min(1).optional()}).superRefine((a,b)=>{"provider"!==a.mode||a.providerId||b.addIssue({code:e.z.ZodIssueCode.custom,message:"providerId is required when mode=provider",path:["providerId"]})}),aE=e.z.object({provider:e.z.string().trim().min(1,"Provider and API key required"),apiKey:e.z.string().trim().min(1,"Provider and API key required")}),aF=e.z.object({text:e.z.string().optional()}).catchall(e.z.unknown()),aG=e.z.object({role:e.z.string().optional(),parts:e.z.array(aF).optional()}).catchall(e.z.unknown()),aH=e.z.object({contents:e.z.array(aG).optional(),systemInstruction:e.z.object({parts:e.z.array(aF).optional()}).catchall(e.z.unknown()).optional(),generationConfig:e.z.object({stream:e.z.boolean().optional(),maxOutputTokens:e.z.coerce.number().int().min(1).optional(),temperature:e.z.coerce.number().optional(),topP:e.z.coerce.number().optional()}).catchall(e.z.unknown()).optional()}).catchall(e.z.unknown()).superRefine((a,b)=>{a.contents||a.systemInstruction||b.addIssue({code:e.z.ZodIssueCode.custom,message:"contents or systemInstruction is required",path:[]})}),aI=e.z.object({apiKey:e.z.string().trim().min(1,"Missing apiKey"),sudoPassword:e.z.string().optional()}),aJ=e.z.object({sudoPassword:e.z.string().optional()}),aK=e.z.object({tool:e.z.string().trim().min(1,"tool and mappings required"),mappings:e.z.record(e.z.string(),e.z.string().optional())}),aL=e.z.object({tool:e.z.string().trim().min(1).optional(),toolId:e.z.string().trim().min(1).optional(),backupId:e.z.string().trim().min(1,"tool and backupId are required")}).superRefine((a,b)=>{a.tool||a.toolId||b.addIssue({code:e.z.ZodIssueCode.custom,message:"tool and backupId are required",path:["tool"]})}),aM=e.z.string().trim().min(1,"Environment key is required").max(120).regex(/^[A-Z_][A-Z0-9_]*$/,"Invalid environment key format"),aN=e.z.union([e.z.string(),e.z.number(),e.z.boolean()]).transform(a=>String(a)).refine(a=>a.length>0,"Environment value is required").refine(a=>a.length<=1e4,"Environment value is too long"),aO=e.z.object({env:e.z.record(aM,aN).refine(a=>Object.keys(a).length>0,"env must contain at least one key")}),aP=e.z.object({baseUrl:e.z.string().trim().min(1,"baseUrl and model are required"),apiKey:e.z.string().optional(),model:e.z.string().trim().min(1,"baseUrl and model are required")}),aQ=e.z.object({name:e.z.string().trim().min(1,"Profile name is required")}),aR=e.z.object({profileId:e.z.string().trim().min(1,"profileId is required")}),aS=e.z.object({baseUrl:e.z.string().trim().min(1).optional(),apiKey:e.z.string().optional(),model:e.z.string().trim().min(1,"Model is required")});d()}catch(a){d(a)}})},96487:()=>{}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=5248,exports.ids=[5248],exports.modules={1596:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ColumnToggle.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ColumnToggle.tsx","default")},1972:(a,b,c)=>{Promise.resolve().then(c.bind(c,45567)),Promise.resolve().then(c.bind(c,4355)),Promise.resolve().then(c.bind(c,77088)),Promise.resolve().then(c.bind(c,53156)),Promise.resolve().then(c.bind(c,2490)),Promise.resolve().then(c.bind(c,52198)),Promise.resolve().then(c.bind(c,27309)),Promise.resolve().then(c.bind(c,50818)),Promise.resolve().then(c.bind(c,85974)),Promise.resolve().then(c.bind(c,67083)),Promise.resolve().then(c.bind(c,22245)),Promise.resolve().then(c.bind(c,74771)),Promise.resolve().then(c.bind(c,29518)),Promise.resolve().then(c.bind(c,98004)),Promise.resolve().then(c.bind(c,41371)),Promise.resolve().then(c.bind(c,53140)),Promise.resolve().then(c.bind(c,16116)),Promise.resolve().then(c.bind(c,53280)),Promise.resolve().then(c.bind(c,22746)),Promise.resolve().then(c.bind(c,1237)),Promise.resolve().then(c.bind(c,65953)),Promise.resolve().then(c.bind(c,29494)),Promise.resolve().then(c.bind(c,18732)),Promise.resolve().then(c.bind(c,8744)),Promise.resolve().then(c.bind(c,56589)),Promise.resolve().then(c.bind(c,73979)),Promise.resolve().then(c.bind(c,46230)),Promise.resolve().then(c.bind(c,86059)),Promise.resolve().then(c.bind(c,59256)),Promise.resolve().then(c.bind(c,51490)),Promise.resolve().then(c.bind(c,75146)),Promise.resolve().then(c.bind(c,59869)),Promise.resolve().then(c.bind(c,65472)),Promise.resolve().then(c.bind(c,62688)),Promise.resolve().then(c.bind(c,82054))},6676:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5735);c(97528),c(61647),c(65630),c(39896),c(37487),c(23520),c(44453),c(9037),c(83746),c(19411),c(32444),c(84832),c(11669),c(70643),c(77406),c(92452),c(22571),c(11492),c(44389),c(60595),c(23059),c(33696),c(8598),c(91685),c(13618),c(20263),c(9465),c(77042),c(53504),c(89806),c(62805),c(1596),c(73272);var e=c(51098);function f({children:a}){return(0,d.jsx)(e.default,{children:a})}c(27914)},8598:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/KiroAuthModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/KiroAuthModal.tsx","default")},9037:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Badge.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Badge.tsx","default")},9465:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/SegmentedControl.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/SegmentedControl.tsx","default")},11492:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/UsageStats.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/UsageStats.tsx","default")},11669:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Header.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Header.tsx","default")},13618:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/KiroSocialOAuthModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/KiroSocialOAuthModal.tsx","default")},19411:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ThemeToggle.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ThemeToggle.tsx","default")},20263:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/CursorAuthModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/CursorAuthModal.tsx","default")},22571:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ManualConfigModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ManualConfigModal.tsx","default")},23059:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ProxyConfigModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ProxyConfigModal.tsx","default")},23520:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Spinner() from the server but Spinner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Loading.tsx","Spinner"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLoading() from the server but PageLoading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Loading.tsx","PageLoading"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call Skeleton() from the server but Skeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Loading.tsx","Skeleton"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CardSkeleton() from the server but CardSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Loading.tsx","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Loading.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Loading.tsx","default")},27914:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/layouts/AuthLayout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/layouts/AuthLayout.tsx","default")},33696:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ProxyLogger.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ProxyLogger.tsx","default")},37487:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Modal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Modal.tsx","default"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ConfirmModal() from the server but ConfirmModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Modal.tsx","ConfirmModal")},39896:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Card.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Card.tsx","default")},44389:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/UsageAnalytics.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/UsageAnalytics.tsx","default")},44453:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Avatar.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Avatar.tsx","default")},49236:(a,b,c)=>{Promise.resolve().then(c.bind(c,44453)),Promise.resolve().then(c.bind(c,9037)),Promise.resolve().then(c.bind(c,77042)),Promise.resolve().then(c.bind(c,97528)),Promise.resolve().then(c.bind(c,39896)),Promise.resolve().then(c.bind(c,1596)),Promise.resolve().then(c.bind(c,20263)),Promise.resolve().then(c.bind(c,73272)),Promise.resolve().then(c.bind(c,53504)),Promise.resolve().then(c.bind(c,62805)),Promise.resolve().then(c.bind(c,70643)),Promise.resolve().then(c.bind(c,11669)),Promise.resolve().then(c.bind(c,61647)),Promise.resolve().then(c.bind(c,8598)),Promise.resolve().then(c.bind(c,91685)),Promise.resolve().then(c.bind(c,13618)),Promise.resolve().then(c.bind(c,27914)),Promise.resolve().then(c.bind(c,51098)),Promise.resolve().then(c.bind(c,23520)),Promise.resolve().then(c.bind(c,22571)),Promise.resolve().then(c.bind(c,37487)),Promise.resolve().then(c.bind(c,92452)),Promise.resolve().then(c.bind(c,89806)),Promise.resolve().then(c.bind(c,77406)),Promise.resolve().then(c.bind(c,23059)),Promise.resolve().then(c.bind(c,33696)),Promise.resolve().then(c.bind(c,60595)),Promise.resolve().then(c.bind(c,9465)),Promise.resolve().then(c.bind(c,65630)),Promise.resolve().then(c.bind(c,84832)),Promise.resolve().then(c.bind(c,32444)),Promise.resolve().then(c.bind(c,19411)),Promise.resolve().then(c.bind(c,83746)),Promise.resolve().then(c.bind(c,44389)),Promise.resolve().then(c.bind(c,11492))},51098:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/layouts/DashboardLayout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/layouts/DashboardLayout.tsx","default")},53504:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/EmptyState.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/EmptyState.tsx","default")},60595:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/RequestLoggerV2.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/RequestLoggerV2.tsx","default")},61647:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Input.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Input.tsx","default")},62805:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/FilterBar.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/FilterBar.tsx","default")},65630:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Select.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Select.tsx","default")},70643:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Footer.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Footer.tsx","default")},73272:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/DataTable.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/DataTable.tsx","default")},77042:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Breadcrumbs.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Breadcrumbs.tsx","default")},77406:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/OAuthModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/OAuthModal.tsx","default")},83746:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Toggle.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Toggle.tsx","default")},84832:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Sidebar.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Sidebar.tsx","default")},89806:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/NotificationToast.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/NotificationToast.tsx","default")},91685:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/KiroOAuthWrapper.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/KiroOAuthWrapper.tsx","default")},92452:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ModelSelectModal.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/ModelSelectModal.tsx","default")},97528:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Button.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/shared/components/Button.tsx","default")}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=5419,exports.ids=[5419],exports.modules={647:(a,b,c)=>{c.d(b,{Bm:()=>x,DZ:()=>u,h$:()=>y,nX:()=>t,ne:()=>z,nq:()=>v,yL:()=>s,zl:()=>w});var d=c(64926),e=c(13419);let f=process.env.OMNIROUTE_BASE_URL||"http://localhost:20128",g=process.env.OMNIROUTE_API_KEY||"";async function h(a,b={}){let c=`${f}${a}`,d={"Content-Type":"application/json",...g?{Authorization:`Bearer ${g}`}:{},...b.headers||{}},e=await fetch(c,{...b,headers:d,signal:AbortSignal.timeout(3e4)});if(!e.ok){let a=await e.text().catch(()=>"Unknown error");throw Error(`API [${e.status}]: ${a}`)}return e.json()}function i(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function j(a){return i(a)?a:{}}function k(a){return Array.isArray(a)?a.filter(i):[]}function l(a,b=""){return"string"==typeof a?a:b}function m(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function n(a){let b=k(a.models),c=k(j(a.data).models);return(b.length>0?b:c).map(a=>({provider:l(a.provider,"unknown"),model:l(a.model,""),inputCostPer1M:m(a.inputCostPer1M,3)}))}function o(a){if(Array.isArray(a))return a.filter(i);let b=j(a);return Array.isArray(b.combos)?b.combos.filter(i):[]}let p=null,q={aggressive:{profiles:{oauth:{transientCooldown:3e3,rateLimitCooldown:3e4,maxBackoffLevel:4,circuitBreakerThreshold:2,circuitBreakerReset:3e4},apikey:{transientCooldown:2e3,rateLimitCooldown:0,maxBackoffLevel:3,circuitBreakerThreshold:3,circuitBreakerReset:15e3}},defaults:{requestsPerMinute:180,minTimeBetweenRequests:100,concurrentRequests:16}},balanced:{profiles:{oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},defaults:{requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10}},conservative:{profiles:{oauth:{transientCooldown:8e3,rateLimitCooldown:12e4,maxBackoffLevel:10,circuitBreakerThreshold:8,circuitBreakerReset:12e4},apikey:{transientCooldown:5e3,rateLimitCooldown:3e4,maxBackoffLevel:8,circuitBreakerThreshold:8,circuitBreakerReset:6e4}},defaults:{requestsPerMinute:60,minTimeBetweenRequests:350,concurrentRequests:6}}},r={coding:{preferred:["claude","deepseek","codex"],traits:["fast","code-optimized"]},review:{preferred:["claude","gemini","openai"],traits:["analytical","thorough"]},planning:{preferred:["gemini","claude","openai"],traits:["reasoning","structured"]},analysis:{preferred:["gemini","claude"],traits:["deep-reasoning","large-context"]},debugging:{preferred:["claude","deepseek","codex"],traits:["code-aware","fast"]},documentation:{preferred:["gemini","claude","openai"],traits:["clear","structured"]}};async function s(a){let b=Date.now();try{let[c,f,g]=await Promise.allSettled([h("/api/combos"),h("/api/monitoring/health"),h("/api/usage/quota")]),i="fulfilled"===c.status?o(c.value):[],m="fulfilled"===f.status?j(f.value):{},p="fulfilled"===g.status?(0,e.H)(g.value):(0,e.H)({}),q=a.combo?i.find(b=>l(b.id)===a.combo||l(b.name)===a.combo):i.find(a=>!1!==a.enabled);if(!q)return{content:[{type:"text",text:JSON.stringify({error:"No matching combo found"})}],isError:!0};let r=n(q),s=k(m.circuitBreakers),t=p.providers,u=r.map((b,c)=>{let d=s.find(a=>l(a.provider)===b.provider),e=t.find(a=>a.provider===b.provider),f=a.promptTokenEstimate/1e6*b.inputCostPer1M;return{provider:b.provider,model:b.model||a.model,probability:0===c?.85:.15/Math.max(r.length-1,1),estimatedCost:Math.round(1e4*f)/1e4,healthStatus:l(d?.state,"CLOSED"),quotaAvailable:e?.percentRemaining??100}}),v=u.map(a=>a.estimatedCost),w={simulatedPath:u,fallbackTree:{primary:u[0]?.provider||"unknown",fallbacks:u.slice(1).map(a=>a.provider),worstCaseCost:Math.max(...v,0),bestCaseCost:Math.min(...v,0)}};return await (0,d.Bv)("omniroute_simulate_route",a,w,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(w,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_simulate_route",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function t(a){let b=Date.now();try{let c=0;try{let a=j(await h("/api/usage/analytics?period=session"));c=m(a.totalCost,0)}catch{}p={sessionId:`budget_${Date.now()}`,maxCost:a.maxCost,action:a.action,degradeToTier:a.degradeToTier,spent:c,createdAt:new Date().toISOString()};let e=Math.max(0,a.maxCost-c),f={sessionId:p.sessionId,budgetTotal:a.maxCost,budgetSpent:Math.round(1e4*c)/1e4,budgetRemaining:Math.round(1e4*e)/1e4,action:a.action,status:e<=0?"exceeded":e<.2*a.maxCost?"warning":"active"};return await (0,d.Bv)("omniroute_set_budget_guard",{maxCost:a.maxCost,action:a.action},f,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(f,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_set_budget_guard",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function u(a){let b=Date.now();try{let c=q[a.profile];if(!c)return{content:[{type:"text",text:`Error: Invalid profile "${a.profile}"`}],isError:!0};await h("/api/resilience",{method:"PATCH",body:JSON.stringify({profiles:c.profiles,defaults:c.defaults})});let e={applied:!0,profile:a.profile,settings:c};return await (0,d.Bv)("omniroute_set_resilience_profile",a,e,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(e,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_set_resilience_profile",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function v(a){let b=Date.now();try{let c=o(await h("/api/combos")).find(b=>l(b.id)===a.comboId||l(b.name)===a.comboId);if(!c)return{content:[{type:"text",text:JSON.stringify({error:`Combo "${a.comboId}" not found`})}],isError:!0};let e=n(c),f=(a.testPrompt||"Say hello").slice(0,200),g=(await Promise.allSettled(e.map(async a=>{let b=Date.now();try{let c=j(await h("/v1/chat/completions",{method:"POST",body:JSON.stringify({model:a.model||"auto",messages:[{role:"user",content:f}],max_tokens:50,stream:!1,"x-provider":a.provider})})),d=j(c.usage);return{provider:a.provider,model:a.model||l(c.model,"unknown"),success:!0,latencyMs:Date.now()-b,cost:m(c.cost,0),tokenCount:m(d.prompt_tokens,0)+m(d.completion_tokens,0)}}catch(c){return{provider:a.provider,model:a.model||"unknown",success:!1,latencyMs:Date.now()-b,cost:0,tokenCount:0,error:c instanceof Error?c.message:String(c)}}}))).map(a=>"fulfilled"===a.status?a.value:{provider:"unknown",model:"unknown",success:!1,latencyMs:0,cost:0,tokenCount:0,error:"Promise rejected"}),i=g.filter(a=>a.success),k=i.sort((a,b)=>a.latencyMs-b.latencyMs)[0],p=i.sort((a,b)=>a.cost-b.cost)[0],q={results:g,summary:{totalProviders:g.length,successful:i.length,fastestProvider:k?.provider||"none",cheapestProvider:p?.provider||"none"}};return await (0,d.Bv)("omniroute_test_combo",{comboId:a.comboId},q.summary,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(q,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_test_combo",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function w(a){let b=Date.now();try{let[c,f,g]=await Promise.allSettled([h("/api/monitoring/health"),h(`/api/usage/quota?provider=${encodeURIComponent(a.provider)}`),h(`/api/usage/analytics?period=session&provider=${encodeURIComponent(a.provider)}`)]),i="fulfilled"===c.status?j(c.value):{},n="fulfilled"===f.status?(0,e.H)(f.value,{provider:a.provider}):(0,e.H)({}),o="fulfilled"===g.status?j(g.value):{},p=k(i.circuitBreakers).find(b=>l(b.provider)===a.provider),q=n.providers.find(b=>b.provider===a.provider)||null,r={provider:a.provider,successRate:m(o.successRate,1),requestCount:m(o.requestCount,0),avgLatencyMs:m(o.avgLatencyMs,0),p50LatencyMs:m(o.p50LatencyMs,0),p95LatencyMs:m(o.p95LatencyMs,0),p99LatencyMs:m(o.p99LatencyMs,0),errorRate:m(o.errorRate,0),lastError:l(o.lastError)||null,circuitBreakerState:l(p?.state,"CLOSED"),quotaInfo:q?{used:q.quotaUsed,total:q.quotaTotal,resetAt:q.resetAt}:{used:0,total:null,resetAt:null}};return await (0,d.Bv)("omniroute_get_provider_metrics",a,r,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_get_provider_metrics",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function x(a){let b=Date.now();try{let c=r[a.taskType]||r.coding,e=o(await h("/api/combos")).filter(a=>!1!==a.enabled);if(0===e.length)return{content:[{type:"text",text:JSON.stringify({error:"No enabled combos available"})}],isError:!0};let f=e.map(a=>{let b=n(a),d=0;for(let a of b){let b=c.preferred.indexOf(a.provider);b>=0&&(d+=(c.preferred.length-b)*10)}let e=l(a.name).toLowerCase();for(let a of c.traits)e.includes(a)&&(d+=5);let f=e.includes("free")||b.every(a=>a.provider.toLowerCase().includes("free"));return{combo:a,score:d,isFree:f}});f.sort((a,b)=>b.score-a.score);let g=f[0],i=f.slice(1,4).map(a=>({id:a.combo.id,name:a.combo.name,tradeoff:a.isFree?"free but may have limits":a.score<.5*g.score?"cheaper but slower":"similar quality, different providers"})),j=f.find(a=>a.isFree&&a!==g),k={recommendedCombo:{id:g.combo.id,name:g.combo.name,reason:`Best match for "${a.taskType}": preferred providers (${c.preferred.slice(0,3).join(", ")})`},alternatives:i,freeAlternative:j?{id:j.combo.id,name:j.combo.name}:null};return await (0,d.Bv)("omniroute_best_combo_for_task",a,k.recommendedCombo,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(k,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_best_combo_for_task",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function y(a){let b=Date.now();try{let c=null;try{c=j(await h(`/api/routing/decisions/${encodeURIComponent(a.requestId)}`))}catch{}let e=c?{requestId:a.requestId,decision:{comboUsed:c.comboUsed||"default",providerSelected:c.providerSelected||"unknown",modelUsed:c.modelUsed||"unknown",score:c.score||0,factors:c.factors||[{name:"health",value:1,weight:.3,contribution:.3},{name:"quota",value:1,weight:.25,contribution:.25},{name:"cost",value:.8,weight:.2,contribution:.16},{name:"latency",value:.9,weight:.15,contribution:.135},{name:"task_fit",value:.7,weight:.1,contribution:.07}],fallbacksTriggered:c.fallbacksTriggered||[],costActual:c.costActual||0,latencyActual:c.latencyActual||0}}:{requestId:a.requestId,decision:{comboUsed:"unknown",providerSelected:"unknown",modelUsed:"unknown",score:0,factors:[],fallbacksTriggered:[],costActual:0,latencyActual:0},note:"Routing decision not found. The /api/routing/decisions endpoint may not be implemented yet, or the requestId is invalid."};return await (0,d.Bv)("omniroute_explain_route",a,{requestId:a.requestId},Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(e,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_explain_route",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function z(){let a=Date.now();try{let b=j(await h("/api/usage/analytics?period=session").catch(()=>({}))),c=j(b.tokenCount),e=k(b.byModel),f=k(b.byProvider),g={sessionStart:l(b.sessionStart,new Date().toISOString()),duration:l(b.duration,"unknown"),requestCount:m(b.requestCount,0),costTotal:m(b.totalCost,0),tokenCount:{prompt:m(c.prompt,0),completion:m(c.completion,0)},topModels:e.slice(0,5).map(a=>({model:l(a.model,"unknown"),count:m(a.requests,0)})),topProviders:f.slice(0,5).map(a=>({provider:l(a.name,"unknown"),count:m(a.requests,0)})),errors:m(b.errorCount,0),fallbacks:m(b.fallbackCount,0),budgetGuard:p?{active:!0,remaining:Math.max(0,p.maxCost-p.spent),action:p.action}:null};return await (0,d.Bv)("omniroute_get_session_snapshot",{},{requestCount:g.requestCount},Date.now()-a,!0),{content:[{type:"text",text:JSON.stringify(g,null,2)}]}}catch(c){let b=c instanceof Error?c.message:String(c);return await (0,d.Bv)("omniroute_get_session_snapshot",{},null,Date.now()-a,!1,b),{content:[{type:"text",text:`Error: ${b}`}],isError:!0}}}},13234:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>i,x:()=>h});var e=c(2306),f=a([e]);function g(a){if(!Array.isArray(a))return[];let b=a.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(Boolean);return Array.from(new Set(b))}function h(a,b=[]){let c="string"==typeof a?.authInfo?.clientId&&a.authInfo.clientId.trim()||"string"==typeof a?.sessionId&&a.sessionId.trim()||"anonymous",d=g(a?.authInfo?.scopes);if(d.length>0)return{callerId:c,scopes:d,source:"authInfo"};let e=function(a){if(!a||"object"!=typeof a)return[];let b=g(a.scopes);if(b.length>0)return b;let c=a.auth;if(c&&"object"==typeof c){let a=g(c.scopes);if(a.length>0)return a}let d=a.omniroute;if(d&&"object"==typeof d){let a=g(d.scopes);if(a.length>0)return a}return[]}(a?._meta);if(e.length>0)return{callerId:c,scopes:e,source:"meta"};let f=g(b);return f.length>0?{callerId:c,scopes:f,source:"env"}:{callerId:c,scopes:[],source:"none"}}function i(a,b,c){let d=e.Dk[a];if(!d)return{allowed:!1,required:[],provided:Array.from(b),missing:[],reason:"tool_definition_missing"};let f=Array.isArray(d.scopes)?Array.from(d.scopes):[],h=g(b);if(!c||0===f.length)return{allowed:!0,required:f,provided:h,missing:[]};let i=f.filter(a=>!h.some(b=>(function(a,b){if("*"===a||a===b)return!0;if(a.endsWith("*")){let c=a.slice(0,-1);return b.startsWith(c)}return!1})(b,a)));return{allowed:0===i.length,required:f,provided:h,missing:i,reason:i.length>0?"missing_scopes":void 0}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},13419:(a,b,c)=>{c.d(b,{H:()=>h,J:()=>g});let d=["valid","expiring","expired","refreshing"];function e(a){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&""!==a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return null}function f(a,b,c){return Math.min(c,Math.max(b,a))}function g(a){var b;let c=a&&"object"==typeof a?a:{},g="string"==typeof c.provider?c.provider:"unknown",h="string"==typeof c.name&&c.name.trim()?c.name:g,i="string"==typeof c.connectionId&&c.connectionId.trim()?c.connectionId:"unknown",j=e(c.quotaTotal),k=null!==j&&j>=0?j:null,l=e(c.quotaUsed)??0,m=null!==k?f(l,0,k):Math.max(0,l),n=e(c.percentRemaining);return null===n&&(n=k&&k>0?(k-m)/k*100:100),{name:h,provider:g,connectionId:i,quotaUsed:m,quotaTotal:k,percentRemaining:f(n,0,100),resetAt:"string"==typeof c.resetAt&&c.resetAt.trim()?c.resetAt:null,tokenStatus:"string"==typeof(b=c.tokenStatus)&&d.includes(b)?b:"valid"}}function h(a,b={}){let c=a&&"object"==typeof a?a:{},d=(Array.isArray(c.providers)?c.providers:Array.isArray(a)?a:[]).map(a=>g(a)),e=c.meta&&"object"==typeof c.meta?c.meta:{},f=e.filters&&"object"==typeof e.filters?e.filters:{},i=b.provider??("string"==typeof f.provider&&f.provider.trim()?f.provider:null),j=b.connectionId??("string"==typeof f.connectionId&&f.connectionId.trim()?f.connectionId:null);return{providers:d,meta:{generatedAt:"string"==typeof e.generatedAt&&e.generatedAt.trim()?e.generatedAt:new Date().toISOString(),filters:{provider:i||null,connectionId:j||null},totalProviders:d.length}}}},25755:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{c:()=>B});var e=c(10610),f=c(92827),g=c(2306),h=c(43620),i=c(64926),j=c(13234),k=c(647),l=c(13419),m=a([e,f,g,j]);[e,f,g,j]=m.then?(await m)():m;let D=process.env.OMNIROUTE_BASE_URL||"http://localhost:20128",E=process.env.OMNIROUTE_API_KEY||"",F="true"===process.env.OMNIROUTE_MCP_ENFORCE_SCOPES,G=new Set((process.env.OMNIROUTE_MCP_SCOPES||"").split(",").map(a=>a.trim()).filter(Boolean));function n(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function o(a){return Array.isArray(a)?a:[]}function p(a,b=""){return"string"==typeof a?a:b}function q(a,b=0){return"number"==typeof a&&Number.isFinite(a)?a:b}async function r(a,b={}){let c=`${D}${a}`,d={"Content-Type":"application/json",...E?{Authorization:`Bearer ${E}`}:{},...b.headers||{}},e=await fetch(c,{...b,headers:d,signal:AbortSignal.timeout(1e4)});if(!e.ok){let a=await e.text().catch(()=>"Unknown error");throw Error(`OmniRoute API error [${e.status}]: ${a}`)}return e.json()}function s(a,b){return async(c,d)=>{let e=(0,j.x)(d,Array.from(G)),f=(0,j.Z)(a,e.scopes,F);if(!f.allowed){let b=f.missing.length>0?f.missing.join(", "):"unavailable",d=f.reason||"scope_check_failed",g=`Insufficient MCP scopes for ${a}. Missing: ${b}. Caller=${e.callerId}, source=${e.source}.`,h=c&&"object"==typeof c?n(c):{rawArgs:c};return await (0,i.Bv)(a,{...h,_scopeCheck:{callerId:e.callerId,source:e.source,required:f.required,provided:f.provided,missing:f.missing}},null,0,!1,`scope_denied:${d}`),{content:[{type:"text",text:`Error: ${g}`}],isError:!0}}return b(c,d)}}async function t(){let a=Date.now();try{let[b,c,d]=await Promise.allSettled([r("/api/monitoring/health"),r("/api/resilience"),r("/api/rate-limits")]),e="fulfilled"===b.status?n(b.value):{},f="fulfilled"===c.status?n(c.value):{},g="fulfilled"===d.status?n(d.value):{},h=n(e.memoryUsage),j=n(e.cacheStats),k=o(f.circuitBreakers),l=o(g.limits),m={uptime:p(e.uptime,"unknown"),version:p(e.version,"unknown"),memoryUsage:{heapUsed:q(h.heapUsed,0),heapTotal:q(h.heapTotal,0)},circuitBreakers:k,rateLimits:l,cacheStats:Object.keys(j).length>0?{hits:q(j.hits,0),misses:q(j.misses,0),hitRate:q(j.hitRate,0)}:void 0};return await (0,i.Bv)("omniroute_get_health",{},m,Date.now()-a,!0),{content:[{type:"text",text:JSON.stringify(m,null,2)}]}}catch(c){let b=c instanceof Error?c.message:String(c);return await (0,i.Bv)("omniroute_get_health",{},null,Date.now()-a,!1,b),{content:[{type:"text",text:`Error: ${b}`}],isError:!0}}}async function u(a){let b=Date.now();try{let c=await r("/api/combos"),d=n(c),e=Array.isArray(d.combos)?d.combos:Array.isArray(c)?c:[],f={};a.includeMetrics&&(f=n(await r("/api/combos/metrics").catch(()=>({}))));let g={combos:o(e).map(b=>{let c=n(b),d=n(c.data),e=p(c.id,""),g=Array.isArray(c.models)&&c.models.length>0?c.models:d.models;return{id:e,name:p(c.name,e||"unnamed"),models:o(g).map((a,b)=>{let c=n(a);return{provider:p(c.provider,"unknown"),model:p(c.model,"unknown"),priority:q(c.priority,b+1)}}),strategy:p(c.strategy,p(d.strategy,"priority")),enabled:!1!==c.enabled,...a.includeMetrics?{metrics:f[e]??null}:{}}})};return await (0,i.Bv)("omniroute_list_combos",a,g,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(g,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_list_combos",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function v(a){let b=Date.now();try{let c=await r(`/api/combos/metrics?comboId=${encodeURIComponent(a.comboId)}`);return await (0,i.Bv)("omniroute_get_combo_metrics",a,c,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_get_combo_metrics",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function w(a){let b=Date.now();try{let c=await r(`/api/combos/${encodeURIComponent(a.comboId)}`,{method:"PUT",body:JSON.stringify({isActive:a.active})});return await (0,i.Bv)("omniroute_switch_combo",a,c,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_switch_combo",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function x(a){let b=Date.now();try{let c="/api/usage/quota";a.connectionId?c+=`?connectionId=${encodeURIComponent(a.connectionId)}`:a.provider&&(c+=`?provider=${encodeURIComponent(a.provider)}`);let d=(0,l.H)(await r(c),{provider:a.provider||null,connectionId:a.connectionId||null});return await (0,i.Bv)("omniroute_check_quota",a,d,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_check_quota",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function y(a){let b=Date.now();try{let c={model:a.model,messages:a.messages,stream:!1};a.combo&&(c["x-combo"]=a.combo);let d=await r("/v1/chat/completions",{method:"POST",body:JSON.stringify(c)}),e=o(d.choices),f=n(e[0]),g=n(f.message),h=n(d.usage),j={response:{content:p(g.content,""),model:p(d.model,a.model),tokens:{prompt:q(h.prompt_tokens,0),completion:q(h.completion_tokens,0)}},routing:{provider:p(d.provider,"unknown"),combo:d.combo??null,fallbacksTriggered:q(d.fallbacksTriggered,0),cost:q(d.cost,0),latencyMs:Date.now()-b,routingExplanation:p(d.routingExplanation,"Request routed through primary provider")}};return await (0,i.Bv)("omniroute_route_request",{model:a.model,messageCount:a.messages.length},j.routing,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(j,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_route_request",{model:a.model},null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function z(a){let b=Date.now();try{let c=a.period||"session",d={session:"1d",day:"1d",week:"7d",month:"30d"}[c]||"30d",e=n(await r(`/api/usage/analytics?range=${encodeURIComponent(d)}`)),f=n(e.tokenCount),g=n(e.budget),h={period:c,totalCost:q(e.totalCost,0),requestCount:q(e.requestCount,0),tokenCount:{prompt:q(f.prompt,0),completion:q(f.completion,0)},byProvider:o(e.byProvider),byModel:o(e.byModel),budget:{limit:g.limit??null,remaining:g.remaining??null}};return await (0,i.Bv)("omniroute_cost_report",a,h,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(h,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_cost_report",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function A(a){let b=Date.now();try{let c="/v1/models",d=new URLSearchParams;a.provider&&d.set("provider",a.provider),a.capability&&d.set("capability",a.capability),d.toString()&&(c+=`?${d.toString()}`);let e=n(await r(c)),f={models:o(e.data).map(a=>{let b=n(a);return{id:p(b.id,""),provider:p(b.owned_by,p(b.provider,"unknown")),capabilities:function(a,b=[]){let c=o(a).filter(a=>"string"==typeof a);return c.length>0?c:b}(b.capabilities,["chat"]),status:p(b.status,"available"),pricing:b.pricing}})};return await (0,i.Bv)("omniroute_list_models_catalog",a,{modelCount:f.models.length},Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(f,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_list_models_catalog",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}function B(){let a=new e._({name:"omniroute",version:process.env.npm_package_version||"1.8.1"});return a.registerTool("omniroute_get_health",{description:"Returns OmniRoute health status including uptime, memory, circuit breakers, rate limits, and cache stats",inputSchema:g.nu},s("omniroute_get_health",async a=>(g.nu.parse(a??{}),t()))),a.registerTool("omniroute_list_combos",{description:"Lists all configured combos (model chains) with strategies and optional metrics",inputSchema:g.ME},s("omniroute_list_combos",a=>u(g.ME.parse(a)))),a.registerTool("omniroute_get_combo_metrics",{description:"Returns detailed performance metrics for a specific combo",inputSchema:g.Gs},s("omniroute_get_combo_metrics",a=>v(g.Gs.parse(a)))),a.registerTool("omniroute_switch_combo",{description:"Activates or deactivates a combo for routing",inputSchema:g.B1},s("omniroute_switch_combo",a=>w(g.B1.parse(a)))),a.registerTool("omniroute_check_quota",{description:"Checks remaining API quota for one or all providers",inputSchema:g.Fp},s("omniroute_check_quota",a=>x(g.Fp.parse(a)))),a.registerTool("omniroute_route_request",{description:"Sends a chat completion request through OmniRoute intelligent routing",inputSchema:g.fL},s("omniroute_route_request",a=>y(g.fL.parse(a)))),a.registerTool("omniroute_cost_report",{description:"Generates a cost report for the specified period",inputSchema:g.c},s("omniroute_cost_report",a=>z(g.c.parse(a)))),a.registerTool("omniroute_list_models_catalog",{description:"Lists all available AI models across providers with capabilities and pricing",inputSchema:g._v},s("omniroute_list_models_catalog",a=>A(g._v.parse(a)))),a.registerTool("omniroute_simulate_route",{description:"Simulates the routing path a request would take without executing it (dry-run)",inputSchema:g.gl},s("omniroute_simulate_route",a=>(0,k.yL)(g.gl.parse(a)))),a.registerTool("omniroute_set_budget_guard",{description:"Sets a session budget limit with configurable action when exceeded (degrade/block/alert)",inputSchema:g.b9},s("omniroute_set_budget_guard",a=>(0,k.nX)(g.b9.parse(a)))),a.registerTool("omniroute_set_resilience_profile",{description:"Applies a resilience profile controlling circuit breakers, retries, timeouts, and fallback depth",inputSchema:g.dE},s("omniroute_set_resilience_profile",a=>(0,k.DZ)(g.dE.parse(a)))),a.registerTool("omniroute_test_combo",{description:"Tests each provider in a combo with a real prompt, reporting latency, cost, and success per provider",inputSchema:g.n0},s("omniroute_test_combo",a=>(0,k.nq)(g.n0.parse(a)))),a.registerTool("omniroute_get_provider_metrics",{description:"Returns detailed metrics for a specific provider including latency percentiles and circuit breaker state",inputSchema:g.xs},s("omniroute_get_provider_metrics",a=>(0,k.zl)(g.xs.parse(a)))),a.registerTool("omniroute_best_combo_for_task",{description:"Recommends the best combo for a task type based on provider fitness and constraints",inputSchema:g.h0},s("omniroute_best_combo_for_task",a=>(0,k.Bm)(g.h0.parse(a)))),a.registerTool("omniroute_explain_route",{description:"Explains why a request was routed to a specific provider, showing scoring factors and fallbacks",inputSchema:g.t7},s("omniroute_explain_route",a=>(0,k.h$)(g.t7.parse(a)))),a.registerTool("omniroute_get_session_snapshot",{description:"Returns a full snapshot of the current working session: cost, tokens, top models, errors, budget status",inputSchema:g.ne},s("omniroute_get_session_snapshot",async a=>(g.ne.parse(a??{}),(0,k.ne)()))),a}async function C(){let a=B(),b=new f.S,c=process.env.npm_package_version||"1.8.1",d=(0,h.rs)({version:c,scopesEnforced:F,allowedScopes:Array.from(G),toolCount:g.nS.length}),e=()=>{d()};process.once("exit",e),process.once("SIGINT",e),process.once("SIGTERM",e),console.error("[MCP] OmniRoute MCP Server starting (stdio transport)...");try{await a.connect(b),console.error("[MCP] OmniRoute MCP Server connected and ready.")}finally{e(),process.off("exit",e),process.off("SIGINT",e),process.off("SIGTERM",e)}}process.argv[1]&&"file:///home/diegosouzapw/dev/proxys/9router/open-sse/mcp-server/server.ts".endsWith(process.argv[1].replace(/\\/g,"/"))&&C().catch(a=>{console.error("[MCP] Fatal error:",a),process.exit(1)}),d()}catch(a){d(a)}})},43620:(a,b,c)=>{c.d(b,{Im:()=>n,c7:()=>i,h6:()=>l,jW:()=>m,rs:()=>k});var d=c(73024),e=c(48161),f=c(76760);let g="runtime";function h(){let a=process.env.DATA_DIR;return"string"==typeof a&&a.trim().length>0?a.trim():(0,f.join)((0,e.homedir)(),".omniroute")}function i(){return(0,f.join)(h(),g,"mcp-heartbeat.json")}async function j(a){let b=i(),c=(0,f.join)(h(),g);await d.promises.mkdir(c,{recursive:!0}),await d.promises.writeFile(b,JSON.stringify(a,null,2),"utf-8")}function k(a){let b=new Date().toISOString(),c=null,d=!1,e="number"==typeof a.intervalMs&&a.intervalMs>0?a.intervalMs:5e3,f=async()=>{if(d)return;let c={pid:process.pid,startedAt:b,lastHeartbeatAt:new Date().toISOString(),version:a.version,transport:"stdio",scopesEnforced:a.scopesEnforced,allowedScopes:[...a.allowedScopes],toolCount:a.toolCount};try{await j(c)}catch(a){console.error("[MCP Heartbeat] Failed to write heartbeat:",a instanceof Error?a.message:String(a))}};return f(),c=setInterval(()=>{f()},e),()=>{d||(d=!0,c&&(clearInterval(c),c=null),f())}}async function l(){let a=i();try{let b=await d.promises.readFile(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||"number"!=typeof c.pid||"string"!=typeof c.startedAt||"string"!=typeof c.lastHeartbeatAt||"string"!=typeof c.version||"stdio"!==c.transport||"boolean"!=typeof c.scopesEnforced||!Array.isArray(c.allowedScopes)||"number"!=typeof c.toolCount)return null;let e=c.allowedScopes.filter(a=>"string"==typeof a);return{pid:c.pid,startedAt:c.startedAt,lastHeartbeatAt:c.lastHeartbeatAt,version:c.version,transport:"stdio",scopesEnforced:c.scopesEnforced,allowedScopes:e,toolCount:c.toolCount}}catch{return null}}function m(a){if(!Number.isFinite(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch{return!1}}function n(a,b){if(!a)return!1;let c="number"==typeof b?.staleAfterMs&&b.staleAfterMs>0?b.staleAfterMs:15e3,d=Date.now()-new Date(a.lastHeartbeatAt).getTime();return!!Number.isFinite(d)&&!(d>c)&&(b?.requireLivePid===!1||m(a.pid))}},45419:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{V6:()=>j,e5:()=>k,lJ:()=>l});var e=c(77598),f=c(25755),g=c(60021),h=a([f,g]);[f,g]=h.then?(await h)():h;let m=null,n=null,o=null,p=null;function i(a){if(m&&n&&p===a)return{server:m,transport:n};if(n)try{n.close()}catch{}return m=(0,f.c)(),n=new g.a({sessionIdGenerator:()=>(0,e.randomUUID)()}),p=a,o=Date.now(),m.connect(n),console.log(`[MCP] HTTP transport started (${a})`),{server:m,transport:n}}async function j(a){let{transport:b}=i("streamable-http");try{return await b.handleRequest(a)}catch(a){return console.error("[MCP] Streamable HTTP error:",a),new Response(JSON.stringify({error:"MCP transport error"}),{status:500,headers:{"Content-Type":"application/json"}})}}async function k(a){let{transport:b}=i("sse");try{return await b.handleRequest(a)}catch(a){return console.error("[MCP] SSE error:",a),new Response(JSON.stringify({error:"MCP SSE transport error"}),{status:500,headers:{"Content-Type":"application/json"}})}}function l(){return{online:null!==n&&null!==p,transport:p,startedAt:o,uptime:o?`${Math.floor((Date.now()-o)/1e3)}s`:null}}d()}catch(a){d(a)}})},64926:(a,b,c)=>{async function d(a){let b=JSON.stringify(a),c=new TextEncoder;return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",c.encode(b)))).map(a=>a.toString(16).padStart(2,"0")).join("")}function e(a){return"string"==typeof a?a:null}function f(a,b){let c=i(a,b);return Number.isFinite(c)?Math.max(0,Math.floor(c)):b}function g(a){return{id:f(a.id,0),toolName:j(a.tool_name),inputHash:j(a.input_hash),outputSummary:j(a.output_summary),durationMs:i(a.duration_ms,0),apiKeyId:e(a.api_key_id),success:function(a,b=!1){return"boolean"==typeof a?a:1===a||"1"===a||0!==a&&"0"!==a&&b}(a.success,!1),errorCode:e(a.error_code),createdAt:j(a.created_at)}}c.d(b,{JY:()=>n,Bv:()=>l,Gj:()=>m});let h=null;function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function j(a){return"string"==typeof a?a:""}async function k(){if(h)return h;try{let{homedir:a}=await Promise.resolve().then(c.t.bind(c,48161,23)),{join:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d}=await Promise.resolve().then(c.t.bind(c,73024,23)),e=process.env.DATA_DIR?b(process.env.DATA_DIR,"storage.sqlite"):b(a(),".omniroute","storage.sqlite");if(!d(e))return console.error(`[MCP Audit] Database not found at ${e} — audit logging disabled`),null;return h=new(await Promise.resolve().then(c.t.bind(c,87550,23))).default(e)}catch(a){return console.error("[MCP Audit] Failed to connect to database:",a instanceof Error?a.message:String(a)),null}}async function l(a,b,c,e,f,g){try{let h=await k();if(!h)return;let i=await d(b),j=function(a,b=200){if(null==a)return"(null)";let c="string"==typeof a?a:JSON.stringify(a);return c.length<=b?c:c.slice(0,b)+"…"}(c),l=process.env.OMNIROUTE_API_KEY_ID||null;h.prepare(`INSERT INTO mcp_tool_audit (tool_name, input_hash, output_summary, duration_ms, api_key_id, success, error_code)
|
|
1
|
+
"use strict";exports.id=5419,exports.ids=[5419],exports.modules={647:(a,b,c)=>{c.d(b,{Bm:()=>x,DZ:()=>u,h$:()=>y,nX:()=>t,ne:()=>z,nq:()=>v,yL:()=>s,zl:()=>w});var d=c(64926),e=c(13419);let f=process.env.OMNIROUTE_BASE_URL||"http://localhost:20128",g=process.env.OMNIROUTE_API_KEY||"";async function h(a,b={}){let c=`${f}${a}`,d={"Content-Type":"application/json",...g?{Authorization:`Bearer ${g}`}:{},...b.headers||{}},e=await fetch(c,{...b,headers:d,signal:AbortSignal.timeout(3e4)});if(!e.ok){let a=await e.text().catch(()=>"Unknown error");throw Error(`API [${e.status}]: ${a}`)}return e.json()}function i(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function j(a){return i(a)?a:{}}function k(a){return Array.isArray(a)?a.filter(i):[]}function l(a,b=""){return"string"==typeof a?a:b}function m(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function n(a){let b=k(a.models),c=k(j(a.data).models);return(b.length>0?b:c).map(a=>({provider:l(a.provider,"unknown"),model:l(a.model,""),inputCostPer1M:m(a.inputCostPer1M,3)}))}function o(a){if(Array.isArray(a))return a.filter(i);let b=j(a);return Array.isArray(b.combos)?b.combos.filter(i):[]}let p=null,q={aggressive:{profiles:{oauth:{transientCooldown:3e3,rateLimitCooldown:3e4,maxBackoffLevel:4,circuitBreakerThreshold:2,circuitBreakerReset:3e4},apikey:{transientCooldown:2e3,rateLimitCooldown:0,maxBackoffLevel:3,circuitBreakerThreshold:3,circuitBreakerReset:15e3}},defaults:{requestsPerMinute:180,minTimeBetweenRequests:100,concurrentRequests:16}},balanced:{profiles:{oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},defaults:{requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10}},conservative:{profiles:{oauth:{transientCooldown:8e3,rateLimitCooldown:12e4,maxBackoffLevel:10,circuitBreakerThreshold:8,circuitBreakerReset:12e4},apikey:{transientCooldown:5e3,rateLimitCooldown:3e4,maxBackoffLevel:8,circuitBreakerThreshold:8,circuitBreakerReset:6e4}},defaults:{requestsPerMinute:60,minTimeBetweenRequests:350,concurrentRequests:6}}},r={coding:{preferred:["claude","deepseek","codex"],traits:["fast","code-optimized"]},review:{preferred:["claude","gemini","openai"],traits:["analytical","thorough"]},planning:{preferred:["gemini","claude","openai"],traits:["reasoning","structured"]},analysis:{preferred:["gemini","claude"],traits:["deep-reasoning","large-context"]},debugging:{preferred:["claude","deepseek","codex"],traits:["code-aware","fast"]},documentation:{preferred:["gemini","claude","openai"],traits:["clear","structured"]}};async function s(a){let b=Date.now();try{let[c,f,g]=await Promise.allSettled([h("/api/combos"),h("/api/monitoring/health"),h("/api/usage/quota")]),i="fulfilled"===c.status?o(c.value):[],m="fulfilled"===f.status?j(f.value):{},p="fulfilled"===g.status?(0,e.H)(g.value):(0,e.H)({}),q=a.combo?i.find(b=>l(b.id)===a.combo||l(b.name)===a.combo):i.find(a=>!1!==a.enabled);if(!q)return{content:[{type:"text",text:JSON.stringify({error:"No matching combo found"})}],isError:!0};let r=n(q),s=k(m.circuitBreakers),t=p.providers,u=r.map((b,c)=>{let d=s.find(a=>l(a.provider)===b.provider),e=t.find(a=>a.provider===b.provider),f=a.promptTokenEstimate/1e6*b.inputCostPer1M;return{provider:b.provider,model:b.model||a.model,probability:0===c?.85:.15/Math.max(r.length-1,1),estimatedCost:Math.round(1e4*f)/1e4,healthStatus:l(d?.state,"CLOSED"),quotaAvailable:e?.percentRemaining??100}}),v=u.map(a=>a.estimatedCost),w={simulatedPath:u,fallbackTree:{primary:u[0]?.provider||"unknown",fallbacks:u.slice(1).map(a=>a.provider),worstCaseCost:Math.max(...v,0),bestCaseCost:Math.min(...v,0)}};return await (0,d.Bv)("omniroute_simulate_route",a,w,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(w,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_simulate_route",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function t(a){let b=Date.now();try{let c=0;try{let a=j(await h("/api/usage/analytics?period=session"));c=m(a.totalCost,0)}catch{}p={sessionId:`budget_${Date.now()}`,maxCost:a.maxCost,action:a.action,degradeToTier:a.degradeToTier,spent:c,createdAt:new Date().toISOString()};let e=Math.max(0,a.maxCost-c),f={sessionId:p.sessionId,budgetTotal:a.maxCost,budgetSpent:Math.round(1e4*c)/1e4,budgetRemaining:Math.round(1e4*e)/1e4,action:a.action,status:e<=0?"exceeded":e<.2*a.maxCost?"warning":"active"};return await (0,d.Bv)("omniroute_set_budget_guard",{maxCost:a.maxCost,action:a.action},f,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(f,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_set_budget_guard",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function u(a){let b=Date.now();try{let c=q[a.profile];if(!c)return{content:[{type:"text",text:`Error: Invalid profile "${a.profile}"`}],isError:!0};await h("/api/resilience",{method:"PATCH",body:JSON.stringify({profiles:c.profiles,defaults:c.defaults})});let e={applied:!0,profile:a.profile,settings:c};return await (0,d.Bv)("omniroute_set_resilience_profile",a,e,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(e,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_set_resilience_profile",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function v(a){let b=Date.now();try{let c=o(await h("/api/combos")).find(b=>l(b.id)===a.comboId||l(b.name)===a.comboId);if(!c)return{content:[{type:"text",text:JSON.stringify({error:`Combo "${a.comboId}" not found`})}],isError:!0};let e=n(c),f=(a.testPrompt||"Say hello").slice(0,200),g=(await Promise.allSettled(e.map(async a=>{let b=Date.now();try{let c=j(await h("/v1/chat/completions",{method:"POST",body:JSON.stringify({model:a.model||"auto",messages:[{role:"user",content:f}],max_tokens:50,stream:!1,"x-provider":a.provider})})),d=j(c.usage);return{provider:a.provider,model:a.model||l(c.model,"unknown"),success:!0,latencyMs:Date.now()-b,cost:m(c.cost,0),tokenCount:m(d.prompt_tokens,0)+m(d.completion_tokens,0)}}catch(c){return{provider:a.provider,model:a.model||"unknown",success:!1,latencyMs:Date.now()-b,cost:0,tokenCount:0,error:c instanceof Error?c.message:String(c)}}}))).map(a=>"fulfilled"===a.status?a.value:{provider:"unknown",model:"unknown",success:!1,latencyMs:0,cost:0,tokenCount:0,error:"Promise rejected"}),i=g.filter(a=>a.success),k=i.sort((a,b)=>a.latencyMs-b.latencyMs)[0],p=i.sort((a,b)=>a.cost-b.cost)[0],q={results:g,summary:{totalProviders:g.length,successful:i.length,fastestProvider:k?.provider||"none",cheapestProvider:p?.provider||"none"}};return await (0,d.Bv)("omniroute_test_combo",{comboId:a.comboId},q.summary,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(q,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_test_combo",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function w(a){let b=Date.now();try{let[c,f,g]=await Promise.allSettled([h("/api/monitoring/health"),h(`/api/usage/quota?provider=${encodeURIComponent(a.provider)}`),h(`/api/usage/analytics?period=session&provider=${encodeURIComponent(a.provider)}`)]),i="fulfilled"===c.status?j(c.value):{},n="fulfilled"===f.status?(0,e.H)(f.value,{provider:a.provider}):(0,e.H)({}),o="fulfilled"===g.status?j(g.value):{},p=k(i.circuitBreakers).find(b=>l(b.provider)===a.provider),q=n.providers.find(b=>b.provider===a.provider)||null,r={provider:a.provider,successRate:m(o.successRate,1),requestCount:m(o.requestCount,0),avgLatencyMs:m(o.avgLatencyMs,0),p50LatencyMs:m(o.p50LatencyMs,0),p95LatencyMs:m(o.p95LatencyMs,0),p99LatencyMs:m(o.p99LatencyMs,0),errorRate:m(o.errorRate,0),lastError:l(o.lastError)||null,circuitBreakerState:l(p?.state,"CLOSED"),quotaInfo:q?{used:q.quotaUsed,total:q.quotaTotal,resetAt:q.resetAt}:{used:0,total:null,resetAt:null}};return await (0,d.Bv)("omniroute_get_provider_metrics",a,r,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_get_provider_metrics",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function x(a){let b=Date.now();try{let c=r[a.taskType]||r.coding,e=o(await h("/api/combos")).filter(a=>!1!==a.enabled);if(0===e.length)return{content:[{type:"text",text:JSON.stringify({error:"No enabled combos available"})}],isError:!0};let f=e.map(a=>{let b=n(a),d=0;for(let a of b){let b=c.preferred.indexOf(a.provider);b>=0&&(d+=(c.preferred.length-b)*10)}let e=l(a.name).toLowerCase();for(let a of c.traits)e.includes(a)&&(d+=5);let f=e.includes("free")||b.every(a=>a.provider.toLowerCase().includes("free"));return{combo:a,score:d,isFree:f}});f.sort((a,b)=>b.score-a.score);let g=f[0],i=f.slice(1,4).map(a=>({id:a.combo.id,name:a.combo.name,tradeoff:a.isFree?"free but may have limits":a.score<.5*g.score?"cheaper but slower":"similar quality, different providers"})),j=f.find(a=>a.isFree&&a!==g),k={recommendedCombo:{id:g.combo.id,name:g.combo.name,reason:`Best match for "${a.taskType}": preferred providers (${c.preferred.slice(0,3).join(", ")})`},alternatives:i,freeAlternative:j?{id:j.combo.id,name:j.combo.name}:null};return await (0,d.Bv)("omniroute_best_combo_for_task",a,k.recommendedCombo,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(k,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_best_combo_for_task",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function y(a){let b=Date.now();try{let c=null;try{c=j(await h(`/api/routing/decisions/${encodeURIComponent(a.requestId)}`))}catch{}let e=c?{requestId:a.requestId,decision:{comboUsed:c.comboUsed||"default",providerSelected:c.providerSelected||"unknown",modelUsed:c.modelUsed||"unknown",score:c.score||0,factors:c.factors||[{name:"health",value:1,weight:.3,contribution:.3},{name:"quota",value:1,weight:.25,contribution:.25},{name:"cost",value:.8,weight:.2,contribution:.16},{name:"latency",value:.9,weight:.15,contribution:.135},{name:"task_fit",value:.7,weight:.1,contribution:.07}],fallbacksTriggered:c.fallbacksTriggered||[],costActual:c.costActual||0,latencyActual:c.latencyActual||0}}:{requestId:a.requestId,decision:{comboUsed:"unknown",providerSelected:"unknown",modelUsed:"unknown",score:0,factors:[],fallbacksTriggered:[],costActual:0,latencyActual:0},note:"Routing decision not found. The /api/routing/decisions endpoint may not be implemented yet, or the requestId is invalid."};return await (0,d.Bv)("omniroute_explain_route",a,{requestId:a.requestId},Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(e,null,2)}]}}catch(e){let c=e instanceof Error?e.message:String(e);return await (0,d.Bv)("omniroute_explain_route",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function z(){let a=Date.now();try{let b=j(await h("/api/usage/analytics?period=session").catch(()=>({}))),c=j(b.tokenCount),e=k(b.byModel),f=k(b.byProvider),g={sessionStart:l(b.sessionStart,new Date().toISOString()),duration:l(b.duration,"unknown"),requestCount:m(b.requestCount,0),costTotal:m(b.totalCost,0),tokenCount:{prompt:m(c.prompt,0),completion:m(c.completion,0)},topModels:e.slice(0,5).map(a=>({model:l(a.model,"unknown"),count:m(a.requests,0)})),topProviders:f.slice(0,5).map(a=>({provider:l(a.name,"unknown"),count:m(a.requests,0)})),errors:m(b.errorCount,0),fallbacks:m(b.fallbackCount,0),budgetGuard:p?{active:!0,remaining:Math.max(0,p.maxCost-p.spent),action:p.action}:null};return await (0,d.Bv)("omniroute_get_session_snapshot",{},{requestCount:g.requestCount},Date.now()-a,!0),{content:[{type:"text",text:JSON.stringify(g,null,2)}]}}catch(c){let b=c instanceof Error?c.message:String(c);return await (0,d.Bv)("omniroute_get_session_snapshot",{},null,Date.now()-a,!1,b),{content:[{type:"text",text:`Error: ${b}`}],isError:!0}}}},13234:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Z:()=>i,x:()=>h});var e=c(2306),f=a([e]);function g(a){if(!Array.isArray(a))return[];let b=a.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(Boolean);return Array.from(new Set(b))}function h(a,b=[]){let c="string"==typeof a?.authInfo?.clientId&&a.authInfo.clientId.trim()||"string"==typeof a?.sessionId&&a.sessionId.trim()||"anonymous",d=g(a?.authInfo?.scopes);if(d.length>0)return{callerId:c,scopes:d,source:"authInfo"};let e=function(a){if(!a||"object"!=typeof a)return[];let b=g(a.scopes);if(b.length>0)return b;let c=a.auth;if(c&&"object"==typeof c){let a=g(c.scopes);if(a.length>0)return a}let d=a.omniroute;if(d&&"object"==typeof d){let a=g(d.scopes);if(a.length>0)return a}return[]}(a?._meta);if(e.length>0)return{callerId:c,scopes:e,source:"meta"};let f=g(b);return f.length>0?{callerId:c,scopes:f,source:"env"}:{callerId:c,scopes:[],source:"none"}}function i(a,b,c){let d=e.Dk[a];if(!d)return{allowed:!1,required:[],provided:Array.from(b),missing:[],reason:"tool_definition_missing"};let f=Array.isArray(d.scopes)?Array.from(d.scopes):[],h=g(b);if(!c||0===f.length)return{allowed:!0,required:f,provided:h,missing:[]};let i=f.filter(a=>!h.some(b=>(function(a,b){if("*"===a||a===b)return!0;if(a.endsWith("*")){let c=a.slice(0,-1);return b.startsWith(c)}return!1})(b,a)));return{allowed:0===i.length,required:f,provided:h,missing:i,reason:i.length>0?"missing_scopes":void 0}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},13419:(a,b,c)=>{c.d(b,{H:()=>h,J:()=>g});let d=["valid","expiring","expired","refreshing"];function e(a){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&""!==a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return null}function f(a,b,c){return Math.min(c,Math.max(b,a))}function g(a){var b;let c=a&&"object"==typeof a?a:{},g="string"==typeof c.provider?c.provider:"unknown",h="string"==typeof c.name&&c.name.trim()?c.name:g,i="string"==typeof c.connectionId&&c.connectionId.trim()?c.connectionId:"unknown",j=e(c.quotaTotal),k=null!==j&&j>=0?j:null,l=e(c.quotaUsed)??0,m=null!==k?f(l,0,k):Math.max(0,l),n=e(c.percentRemaining);return null===n&&(n=k&&k>0?(k-m)/k*100:100),{name:h,provider:g,connectionId:i,quotaUsed:m,quotaTotal:k,percentRemaining:f(n,0,100),resetAt:"string"==typeof c.resetAt&&c.resetAt.trim()?c.resetAt:null,tokenStatus:"string"==typeof(b=c.tokenStatus)&&d.includes(b)?b:"valid"}}function h(a,b={}){let c=a&&"object"==typeof a?a:{},d=(Array.isArray(c.providers)?c.providers:Array.isArray(a)?a:[]).map(a=>g(a)),e=c.meta&&"object"==typeof c.meta?c.meta:{},f=e.filters&&"object"==typeof e.filters?e.filters:{},i=b.provider??("string"==typeof f.provider&&f.provider.trim()?f.provider:null),j=b.connectionId??("string"==typeof f.connectionId&&f.connectionId.trim()?f.connectionId:null);return{providers:d,meta:{generatedAt:"string"==typeof e.generatedAt&&e.generatedAt.trim()?e.generatedAt:new Date().toISOString(),filters:{provider:i||null,connectionId:j||null},totalProviders:d.length}}}},25755:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{c:()=>B});var e=c(10610),f=c(92827),g=c(2306),h=c(43620),i=c(64926),j=c(13234),k=c(647),l=c(13419),m=a([e,f,g,j]);[e,f,g,j]=m.then?(await m)():m;let D=process.env.OMNIROUTE_BASE_URL||"http://localhost:20128",E=process.env.OMNIROUTE_API_KEY||"",F="true"===process.env.OMNIROUTE_MCP_ENFORCE_SCOPES,G=new Set((process.env.OMNIROUTE_MCP_SCOPES||"").split(",").map(a=>a.trim()).filter(Boolean));function n(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function o(a){return Array.isArray(a)?a:[]}function p(a,b=""){return"string"==typeof a?a:b}function q(a,b=0){return"number"==typeof a&&Number.isFinite(a)?a:b}async function r(a,b={}){let c=`${D}${a}`,d={"Content-Type":"application/json",...E?{Authorization:`Bearer ${E}`}:{},...b.headers||{}},e=await fetch(c,{...b,headers:d,signal:AbortSignal.timeout(1e4)});if(!e.ok){let a=await e.text().catch(()=>"Unknown error");throw Error(`OmniRoute API error [${e.status}]: ${a}`)}return e.json()}function s(a,b){return async(c,d)=>{let e=(0,j.x)(d,Array.from(G)),f=(0,j.Z)(a,e.scopes,F);if(!f.allowed){let b=f.missing.length>0?f.missing.join(", "):"unavailable",d=f.reason||"scope_check_failed",g=`Insufficient MCP scopes for ${a}. Missing: ${b}. Caller=${e.callerId}, source=${e.source}.`,h=c&&"object"==typeof c?n(c):{rawArgs:c};return await (0,i.Bv)(a,{...h,_scopeCheck:{callerId:e.callerId,source:e.source,required:f.required,provided:f.provided,missing:f.missing}},null,0,!1,`scope_denied:${d}`),{content:[{type:"text",text:`Error: ${g}`}],isError:!0}}return b(c,d)}}async function t(){let a=Date.now();try{let[b,c,d]=await Promise.allSettled([r("/api/monitoring/health"),r("/api/resilience"),r("/api/rate-limits")]),e="fulfilled"===b.status?n(b.value):{},f="fulfilled"===c.status?n(c.value):{},g="fulfilled"===d.status?n(d.value):{},h=n(e.memoryUsage),j=n(e.cacheStats),k=o(f.circuitBreakers),l=o(g.limits),m={uptime:p(e.uptime,"unknown"),version:p(e.version,"unknown"),memoryUsage:{heapUsed:q(h.heapUsed,0),heapTotal:q(h.heapTotal,0)},circuitBreakers:k,rateLimits:l,cacheStats:Object.keys(j).length>0?{hits:q(j.hits,0),misses:q(j.misses,0),hitRate:q(j.hitRate,0)}:void 0};return await (0,i.Bv)("omniroute_get_health",{},m,Date.now()-a,!0),{content:[{type:"text",text:JSON.stringify(m,null,2)}]}}catch(c){let b=c instanceof Error?c.message:String(c);return await (0,i.Bv)("omniroute_get_health",{},null,Date.now()-a,!1,b),{content:[{type:"text",text:`Error: ${b}`}],isError:!0}}}async function u(a){let b=Date.now();try{let c=await r("/api/combos"),d=n(c),e=Array.isArray(d.combos)?d.combos:Array.isArray(c)?c:[],f={};a.includeMetrics&&(f=n(await r("/api/combos/metrics").catch(()=>({}))));let g={combos:o(e).map(b=>{let c=n(b),d=n(c.data),e=p(c.id,""),g=Array.isArray(c.models)&&c.models.length>0?c.models:d.models;return{id:e,name:p(c.name,e||"unnamed"),models:o(g).map((a,b)=>{let c=n(a);return{provider:p(c.provider,"unknown"),model:p(c.model,"unknown"),priority:q(c.priority,b+1)}}),strategy:p(c.strategy,p(d.strategy,"priority")),enabled:!1!==c.enabled,...a.includeMetrics?{metrics:f[e]??null}:{}}})};return await (0,i.Bv)("omniroute_list_combos",a,g,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(g,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_list_combos",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function v(a){let b=Date.now();try{let c=await r(`/api/combos/metrics?comboId=${encodeURIComponent(a.comboId)}`);return await (0,i.Bv)("omniroute_get_combo_metrics",a,c,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_get_combo_metrics",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function w(a){let b=Date.now();try{let c=await r(`/api/combos/${encodeURIComponent(a.comboId)}`,{method:"PUT",body:JSON.stringify({isActive:a.active})});return await (0,i.Bv)("omniroute_switch_combo",a,c,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(c,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_switch_combo",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function x(a){let b=Date.now();try{let c="/api/usage/quota";a.connectionId?c+=`?connectionId=${encodeURIComponent(a.connectionId)}`:a.provider&&(c+=`?provider=${encodeURIComponent(a.provider)}`);let d=(0,l.H)(await r(c),{provider:a.provider||null,connectionId:a.connectionId||null});return await (0,i.Bv)("omniroute_check_quota",a,d,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(d,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_check_quota",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function y(a){let b=Date.now();try{let c={model:a.model,messages:a.messages,stream:!1};a.combo&&(c["x-combo"]=a.combo);let d=await r("/v1/chat/completions",{method:"POST",body:JSON.stringify(c)}),e=o(d.choices),f=n(e[0]),g=n(f.message),h=n(d.usage),j={response:{content:p(g.content,""),model:p(d.model,a.model),tokens:{prompt:q(h.prompt_tokens,0),completion:q(h.completion_tokens,0)}},routing:{provider:p(d.provider,"unknown"),combo:d.combo??null,fallbacksTriggered:q(d.fallbacksTriggered,0),cost:q(d.cost,0),latencyMs:Date.now()-b,routingExplanation:p(d.routingExplanation,"Request routed through primary provider")}};return await (0,i.Bv)("omniroute_route_request",{model:a.model,messageCount:a.messages.length},j.routing,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(j,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_route_request",{model:a.model},null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function z(a){let b=Date.now();try{let c=a.period||"session",d={session:"1d",day:"1d",week:"7d",month:"30d"}[c]||"30d",e=n(await r(`/api/usage/analytics?range=${encodeURIComponent(d)}`)),f=n(e.tokenCount),g=n(e.budget),h={period:c,totalCost:q(e.totalCost,0),requestCount:q(e.requestCount,0),tokenCount:{prompt:q(f.prompt,0),completion:q(f.completion,0)},byProvider:o(e.byProvider),byModel:o(e.byModel),budget:{limit:g.limit??null,remaining:g.remaining??null}};return await (0,i.Bv)("omniroute_cost_report",a,h,Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(h,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_cost_report",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}async function A(a){let b=Date.now();try{let c="/v1/models",d=new URLSearchParams;a.provider&&d.set("provider",a.provider),a.capability&&d.set("capability",a.capability),d.toString()&&(c+=`?${d.toString()}`);let e=n(await r(c)),f={models:o(e.data).map(a=>{let b=n(a);return{id:p(b.id,""),provider:p(b.owned_by,p(b.provider,"unknown")),capabilities:function(a,b=[]){let c=o(a).filter(a=>"string"==typeof a);return c.length>0?c:b}(b.capabilities,["chat"]),status:p(b.status,"available"),pricing:b.pricing}})};return await (0,i.Bv)("omniroute_list_models_catalog",a,{modelCount:f.models.length},Date.now()-b,!0),{content:[{type:"text",text:JSON.stringify(f,null,2)}]}}catch(d){let c=d instanceof Error?d.message:String(d);return await (0,i.Bv)("omniroute_list_models_catalog",a,null,Date.now()-b,!1,c),{content:[{type:"text",text:`Error: ${c}`}],isError:!0}}}function B(){let a=new e._({name:"omniroute",version:process.env.npm_package_version||"1.8.1"});return a.registerTool("omniroute_get_health",{description:"Returns OmniRoute health status including uptime, memory, circuit breakers, rate limits, and cache stats",inputSchema:g.nu},s("omniroute_get_health",async a=>(g.nu.parse(a??{}),t()))),a.registerTool("omniroute_list_combos",{description:"Lists all configured combos (model chains) with strategies and optional metrics",inputSchema:g.ME},s("omniroute_list_combos",a=>u(g.ME.parse(a)))),a.registerTool("omniroute_get_combo_metrics",{description:"Returns detailed performance metrics for a specific combo",inputSchema:g.Gs},s("omniroute_get_combo_metrics",a=>v(g.Gs.parse(a)))),a.registerTool("omniroute_switch_combo",{description:"Activates or deactivates a combo for routing",inputSchema:g.B1},s("omniroute_switch_combo",a=>w(g.B1.parse(a)))),a.registerTool("omniroute_check_quota",{description:"Checks remaining API quota for one or all providers",inputSchema:g.Fp},s("omniroute_check_quota",a=>x(g.Fp.parse(a)))),a.registerTool("omniroute_route_request",{description:"Sends a chat completion request through OmniRoute intelligent routing",inputSchema:g.fL},s("omniroute_route_request",a=>y(g.fL.parse(a)))),a.registerTool("omniroute_cost_report",{description:"Generates a cost report for the specified period",inputSchema:g.c},s("omniroute_cost_report",a=>z(g.c.parse(a)))),a.registerTool("omniroute_list_models_catalog",{description:"Lists all available AI models across providers with capabilities and pricing",inputSchema:g._v},s("omniroute_list_models_catalog",a=>A(g._v.parse(a)))),a.registerTool("omniroute_simulate_route",{description:"Simulates the routing path a request would take without executing it (dry-run)",inputSchema:g.gl},s("omniroute_simulate_route",a=>(0,k.yL)(g.gl.parse(a)))),a.registerTool("omniroute_set_budget_guard",{description:"Sets a session budget limit with configurable action when exceeded (degrade/block/alert)",inputSchema:g.b9},s("omniroute_set_budget_guard",a=>(0,k.nX)(g.b9.parse(a)))),a.registerTool("omniroute_set_resilience_profile",{description:"Applies a resilience profile controlling circuit breakers, retries, timeouts, and fallback depth",inputSchema:g.dE},s("omniroute_set_resilience_profile",a=>(0,k.DZ)(g.dE.parse(a)))),a.registerTool("omniroute_test_combo",{description:"Tests each provider in a combo with a real prompt, reporting latency, cost, and success per provider",inputSchema:g.n0},s("omniroute_test_combo",a=>(0,k.nq)(g.n0.parse(a)))),a.registerTool("omniroute_get_provider_metrics",{description:"Returns detailed metrics for a specific provider including latency percentiles and circuit breaker state",inputSchema:g.xs},s("omniroute_get_provider_metrics",a=>(0,k.zl)(g.xs.parse(a)))),a.registerTool("omniroute_best_combo_for_task",{description:"Recommends the best combo for a task type based on provider fitness and constraints",inputSchema:g.h0},s("omniroute_best_combo_for_task",a=>(0,k.Bm)(g.h0.parse(a)))),a.registerTool("omniroute_explain_route",{description:"Explains why a request was routed to a specific provider, showing scoring factors and fallbacks",inputSchema:g.t7},s("omniroute_explain_route",a=>(0,k.h$)(g.t7.parse(a)))),a.registerTool("omniroute_get_session_snapshot",{description:"Returns a full snapshot of the current working session: cost, tokens, top models, errors, budget status",inputSchema:g.ne},s("omniroute_get_session_snapshot",async a=>(g.ne.parse(a??{}),(0,k.ne)()))),a}async function C(){let a=B(),b=new f.S,c=process.env.npm_package_version||"1.8.1",d=(0,h.rs)({version:c,scopesEnforced:F,allowedScopes:Array.from(G),toolCount:g.nS.length}),e=()=>{d()};process.once("exit",e),process.once("SIGINT",e),process.once("SIGTERM",e),console.error("[MCP] OmniRoute MCP Server starting (stdio transport)...");try{await a.connect(b),console.error("[MCP] OmniRoute MCP Server connected and ready.")}finally{e(),process.off("exit",e),process.off("SIGINT",e),process.off("SIGTERM",e)}}process.argv[1]&&"file:///home/runner/work/OmniRoute/OmniRoute/open-sse/mcp-server/server.ts".endsWith(process.argv[1].replace(/\\/g,"/"))&&C().catch(a=>{console.error("[MCP] Fatal error:",a),process.exit(1)}),d()}catch(a){d(a)}})},43620:(a,b,c)=>{c.d(b,{Im:()=>n,c7:()=>i,h6:()=>l,jW:()=>m,rs:()=>k});var d=c(73024),e=c(48161),f=c(76760);let g="runtime";function h(){let a=process.env.DATA_DIR;return"string"==typeof a&&a.trim().length>0?a.trim():(0,f.join)((0,e.homedir)(),".omniroute")}function i(){return(0,f.join)(h(),g,"mcp-heartbeat.json")}async function j(a){let b=i(),c=(0,f.join)(h(),g);await d.promises.mkdir(c,{recursive:!0}),await d.promises.writeFile(b,JSON.stringify(a,null,2),"utf-8")}function k(a){let b=new Date().toISOString(),c=null,d=!1,e="number"==typeof a.intervalMs&&a.intervalMs>0?a.intervalMs:5e3,f=async()=>{if(d)return;let c={pid:process.pid,startedAt:b,lastHeartbeatAt:new Date().toISOString(),version:a.version,transport:"stdio",scopesEnforced:a.scopesEnforced,allowedScopes:[...a.allowedScopes],toolCount:a.toolCount};try{await j(c)}catch(a){console.error("[MCP Heartbeat] Failed to write heartbeat:",a instanceof Error?a.message:String(a))}};return f(),c=setInterval(()=>{f()},e),()=>{d||(d=!0,c&&(clearInterval(c),c=null),f())}}async function l(){let a=i();try{let b=await d.promises.readFile(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||"number"!=typeof c.pid||"string"!=typeof c.startedAt||"string"!=typeof c.lastHeartbeatAt||"string"!=typeof c.version||"stdio"!==c.transport||"boolean"!=typeof c.scopesEnforced||!Array.isArray(c.allowedScopes)||"number"!=typeof c.toolCount)return null;let e=c.allowedScopes.filter(a=>"string"==typeof a);return{pid:c.pid,startedAt:c.startedAt,lastHeartbeatAt:c.lastHeartbeatAt,version:c.version,transport:"stdio",scopesEnforced:c.scopesEnforced,allowedScopes:e,toolCount:c.toolCount}}catch{return null}}function m(a){if(!Number.isFinite(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch{return!1}}function n(a,b){if(!a)return!1;let c="number"==typeof b?.staleAfterMs&&b.staleAfterMs>0?b.staleAfterMs:15e3,d=Date.now()-new Date(a.lastHeartbeatAt).getTime();return!!Number.isFinite(d)&&!(d>c)&&(b?.requireLivePid===!1||m(a.pid))}},45419:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{V6:()=>j,e5:()=>k,lJ:()=>l});var e=c(77598),f=c(25755),g=c(60021),h=a([f,g]);[f,g]=h.then?(await h)():h;let m=null,n=null,o=null,p=null;function i(a){if(m&&n&&p===a)return{server:m,transport:n};if(n)try{n.close()}catch{}return m=(0,f.c)(),n=new g.a({sessionIdGenerator:()=>(0,e.randomUUID)()}),p=a,o=Date.now(),m.connect(n),console.log(`[MCP] HTTP transport started (${a})`),{server:m,transport:n}}async function j(a){let{transport:b}=i("streamable-http");try{return await b.handleRequest(a)}catch(a){return console.error("[MCP] Streamable HTTP error:",a),new Response(JSON.stringify({error:"MCP transport error"}),{status:500,headers:{"Content-Type":"application/json"}})}}async function k(a){let{transport:b}=i("sse");try{return await b.handleRequest(a)}catch(a){return console.error("[MCP] SSE error:",a),new Response(JSON.stringify({error:"MCP SSE transport error"}),{status:500,headers:{"Content-Type":"application/json"}})}}function l(){return{online:null!==n&&null!==p,transport:p,startedAt:o,uptime:o?`${Math.floor((Date.now()-o)/1e3)}s`:null}}d()}catch(a){d(a)}})},64926:(a,b,c)=>{async function d(a){let b=JSON.stringify(a),c=new TextEncoder;return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",c.encode(b)))).map(a=>a.toString(16).padStart(2,"0")).join("")}function e(a){return"string"==typeof a?a:null}function f(a,b){let c=i(a,b);return Number.isFinite(c)?Math.max(0,Math.floor(c)):b}function g(a){return{id:f(a.id,0),toolName:j(a.tool_name),inputHash:j(a.input_hash),outputSummary:j(a.output_summary),durationMs:i(a.duration_ms,0),apiKeyId:e(a.api_key_id),success:function(a,b=!1){return"boolean"==typeof a?a:1===a||"1"===a||0!==a&&"0"!==a&&b}(a.success,!1),errorCode:e(a.error_code),createdAt:j(a.created_at)}}c.d(b,{JY:()=>n,Bv:()=>l,Gj:()=>m});let h=null;function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function j(a){return"string"==typeof a?a:""}async function k(){if(h)return h;try{let{homedir:a}=await Promise.resolve().then(c.t.bind(c,48161,23)),{join:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d}=await Promise.resolve().then(c.t.bind(c,73024,23)),e=process.env.DATA_DIR?b(process.env.DATA_DIR,"storage.sqlite"):b(a(),".omniroute","storage.sqlite");if(!d(e))return console.error(`[MCP Audit] Database not found at ${e} — audit logging disabled`),null;return h=new(await Promise.resolve().then(c.t.bind(c,87550,23))).default(e)}catch(a){return console.error("[MCP Audit] Failed to connect to database:",a instanceof Error?a.message:String(a)),null}}async function l(a,b,c,e,f,g){try{let h=await k();if(!h)return;let i=await d(b),j=function(a,b=200){if(null==a)return"(null)";let c="string"==typeof a?a:JSON.stringify(a);return c.length<=b?c:c.slice(0,b)+"…"}(c),l=process.env.OMNIROUTE_API_KEY_ID||null;h.prepare(`INSERT INTO mcp_tool_audit (tool_name, input_hash, output_summary, duration_ms, api_key_id, success, error_code)
|
|
2
2
|
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(a,i,j,e,l,+!!f,g||null)}catch(a){console.error("[MCP Audit] Failed to log:",a instanceof Error?a.message:String(a))}}async function m(a={}){try{let b,c,d=await k(),e=Math.max(1,Math.min(500,f(a.limit,50))),h=Math.max(0,f(a.offset,0));if(!d)return{entries:[],total:0,limit:e,offset:h};let{whereSql:i,params:j}=(b=[],c=[],"string"==typeof a.tool&&a.tool.trim().length>0&&(b.push("tool_name = ?"),c.push(a.tool.trim())),"boolean"==typeof a.success&&(b.push("success = ?"),c.push(+!!a.success)),"string"==typeof a.apiKeyId&&a.apiKeyId.trim().length>0&&(b.push("api_key_id = ?"),c.push(a.apiKeyId.trim())),{whereSql:b.length>0?`WHERE ${b.join(" AND ")}`:"",params:c}),l=d.prepare(`SELECT COUNT(*) as total FROM mcp_tool_audit ${i}`).get(...j);return{entries:d.prepare(`SELECT
|
|
3
3
|
id,
|
|
4
4
|
tool_name,
|