omniroute 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +55 -55
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +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 +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js.nft.json +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 +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route.js +1 -1
- package/app/.next/server/app/api/evals/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js.nft.json +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.js.nft.json +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +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_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.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +2 -2
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route.js +1 -1
- package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route.js +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route.js +1 -1
- package/app/.next/server/app/api/translator/detect/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route.js +2 -2
- package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +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.js.nft.json +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +55 -55
- package/app/.next/server/chunks/1313.js +1 -0
- package/app/.next/server/chunks/1909.js +1 -1
- package/app/.next/server/chunks/2180.js +1 -247
- package/app/.next/server/chunks/2767.js +1 -1
- package/app/.next/server/chunks/292.js +2 -2
- package/app/.next/server/chunks/4488.js +3 -3
- package/app/.next/server/chunks/4631.js +1 -1
- package/app/.next/server/chunks/4935.js +1 -0
- package/app/.next/server/chunks/7327.js +1 -0
- package/app/.next/server/chunks/{2951.js → 7544.js} +2 -2
- package/app/.next/server/chunks/8158.js +1 -0
- package/app/.next/server/chunks/8252.js +135 -0
- package/app/.next/server/chunks/8907.js +1 -0
- package/app/.next/server/chunks/9854.js +2 -2
- package/app/.next/server/instrumentation.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{5846-014698d5430bb218.js → 5846-24bfc997547aa5eb.js} +1 -1
- package/app/.next/static/chunks/647-2caa8c920fe18ef0.js +21 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-65334129a8e63369.js +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/server/chunks/6242.js +0 -1
- package/app/.next/server/chunks/9340.js +0 -1
- package/app/.next/static/chunks/647-52d3e2e64d7de62e.js +0 -21
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-e8a28e4cf62889bd.js +0 -1
- /package/app/.next/static/{GDoUzLvy4YDqhnGqUCiZ0 → zQe0APljlfwuFfOOippgL}/_buildManifest.js +0 -0
- /package/app/.next/static/{GDoUzLvy4YDqhnGqUCiZ0 → zQe0APljlfwuFfOOippgL}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1066],{40993:(e,t,s)=>{"use strict";s.d(t,{Ex:()=>o.default,$n:()=>a.default,Zp:()=>n.default,Qv:()=>c.CardSkeleton,G9:()=>y.default,bQ:()=>N.default,pp:()=>v.default,Qn:()=>k.default,pd:()=>r.default,Mh:()=>g.default,uR:()=>m.default,aF:()=>i.default,rq:()=>x.default,LF:()=>u.default,KN:()=>f.default,Lo:()=>b.default,y7:()=>h.default,Iz:()=>j.default,l6:()=>l.default,lM:()=>d.default,cn:()=>p.default});var a=s(35806),r=s(34422),l=s(42994),n=s(81060),i=s(71361),c=s(92542);s(17705);var o=s(80927),d=s(19790);s(6261),s(55846),s(34243),s(89938),s(99023);var u=s(80178),x=s(85444),m=s(91961);s(25112);var p=s(45624),h=s(37415),f=s(48643),b=s(8287);s(1652);var g=s(92701);s(18150);var y=s(71689),j=s(33709);s(76332);var v=s(66200);s(61580);var k=s(51503);s(54128);var N=s(44638);s(21720),s(97050)},73732:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>j});var a=s(95155),r=s(12115),l=s(40993),n=s(50910),i=s(5772),c=s(35144),o=s(8898);function d(e){let t="string"==typeof e?e.trim():"";if(!t)return{key:"unknown",label:"Unknown",variant:"default",rank:0,raw:null};let s=t.toUpperCase();return s.includes("ENTERPRISE")||s.includes("CORP")||s.includes("ORG")?{key:"enterprise",label:"Enterprise",variant:"info",rank:7,raw:t}:s.includes("TEAM")||s.includes("CHATGPTTEAM")?{key:"team",label:"Team",variant:"info",rank:6,raw:t}:s.includes("BUSINESS")||s.includes("STANDARD")||s.includes("BIZ")?{key:"business",label:"Business",variant:"warning",rank:5,raw:t}:s.includes("ULTRA")?{key:"ultra",label:"Ultra",variant:"success",rank:4,raw:t}:s.includes("PRO")||s.includes("PREMIUM")?{key:"pro",label:"Pro",variant:"primary",rank:3,raw:t}:s.includes("PLUS")||s.includes("PAID")?{key:"plus",label:"Plus",variant:"secondary",rank:2,raw:t}:s.includes("FREE")||s.includes("INDIVIDUAL")||s.includes("BASIC")||s.includes("TRIAL")||s.includes("LEGACY")?{key:"free",label:"Free",variant:"default",rank:1,raw:t}:{key:"unknown",label:t.toLowerCase().split(/[\s_-]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")||"Unknown",variant:"default",rank:0,raw:t}}var u=s(81060),x=s(80927),m=s(92542),p=s(20909);let h={antigravity:{label:"Antigravity",color:"#F59E0B"},github:{label:"GitHub Copilot",color:"#333"},kiro:{label:"Kiro AI",color:"#FF6B35"},codex:{label:"OpenAI Codex",color:"#10A37F"},claude:{label:"Claude Code",color:"#D97757"}},f=[{key:"all",labelKey:"tierAll"},{key:"enterprise",labelKey:"tierEnterprise"},{key:"team",labelKey:"tierTeam"},{key:"business",labelKey:"tierBusiness"},{key:"ultra",labelKey:"tierUltra"},{key:"pro",labelKey:"tierPro"},{key:"plus",labelKey:"tierPlus"},{key:"free",labelKey:"tierFree"},{key:"unknown",labelKey:"tierUnknown"}];function b(){let e=(0,n.c)("usage"),[t,s]=(0,r.useState)([]),[l,b]=(0,r.useState)({}),[g,y]=(0,r.useState)({}),[j,v]=(0,r.useState)({}),[k,N]=(0,r.useState)(!0),[w,S]=(0,r.useState)(null),[E,C]=(0,r.useState)(!1),[A,I]=(0,r.useState)(120),[M,P]=(0,r.useState)(!0),[T,q]=(0,r.useState)("all"),F=(0,r.useRef)(null),K=(0,r.useRef)(null),L=(0,r.useRef)({}),_=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/providers/client");if(!e.ok)throw Error("Failed");let t=(await e.json()).connections||[];return s(t),t}catch{return s([]),[]}},[]),R=(0,r.useCallback)(async(e,t)=>{let s=Date.now();if(!(s-(L.current[e]||0)<3e4)){L.current[e]=s,y(t=>({...t,[e]:!0})),v(t=>({...t,[e]:null}));try{let s=await fetch(`/api/usage/${e}`);if(!s.ok){let t=(await s.json().catch(()=>({}))).error||s.statusText;if(404===s.status)return;if(401===s.status)return void b(s=>({...s,[e]:{quotas:[],message:t}}));throw Error(`HTTP ${s.status}: ${t}`)}let a=await s.json(),r=function(e,t){if(!t||"object"!=typeof t)return[];let s=[];try{switch(e.toLowerCase()){case"github":default:t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{s.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{s.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:(0,o.Q1)(t.remainingPercentage)})});break;case"codex":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{s.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"kiro":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{s.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"claude":t.message?s.push({name:"error",used:0,total:0,resetAt:null,message:t.message}):t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{s.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:(0,o.Q1)(t.remainingPercentage)})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let a=(0,c.KC)(e);if(a.length>0){let e=new Map(a.map((e,t)=>[e.id,t]));s.sort((t,s)=>{let a=t.modelKey||t.name,r=s.modelKey||s.name;return(e.get(a)??999)-(e.get(r)??999)})}return s}(t,a);b(t=>({...t,[e]:{quotas:r,plan:a.plan||null,message:a.message||null,raw:a}}))}catch(t){v(s=>({...s,[e]:t.message||"Failed to fetch quota"}))}finally{y(t=>({...t,[e]:!1}))}}},[]),D=(0,r.useCallback)(async(e,t)=>{await R(e,t),S(new Date)},[R]),O=(0,r.useCallback)(async()=>{if(!E){C(!0),I(120);try{let e=(await _()).filter(e=>p.wb.includes(e.provider)&&"oauth"===e.authType);await Promise.all(e.map(e=>R(e.id,e.provider))),S(new Date)}catch(e){console.error("Error refreshing all:",e)}finally{C(!1)}}},[E,_,R]);(0,r.useEffect)(()=>{(async()=>{P(!0),await O(),P(!1)})()},[]),(0,r.useEffect)(()=>{if(!k){F.current&&clearInterval(F.current),K.current&&clearInterval(K.current);return}return F.current=setInterval(O,12e4),K.current=setInterval(()=>{I(e=>e<=1?120:e-1)},1e3),()=>{F.current&&clearInterval(F.current),K.current&&clearInterval(K.current)}},[k,O]),(0,r.useEffect)(()=>{let e=()=>{document.hidden?(F.current&&clearInterval(F.current),K.current&&clearInterval(K.current)):k&&(F.current=setInterval(O,12e4),K.current=setInterval(()=>{I(e=>e<=1?120:e-1)},1e3))};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[k,O]);let U=(0,r.useMemo)(()=>t.filter(e=>p.wb.includes(e.provider)&&"oauth"===e.authType),[t]),$=(0,r.useMemo)(()=>{let e={antigravity:1,github:2,codex:3,claude:4,kiro:5};return[...U].sort((t,s)=>(e[t.provider]||9)-(e[s.provider]||9))},[U]),Q=(0,r.useMemo)(()=>{let e={};for(let t of $)e[t.id]=d(l[t.id]?.plan);return e},[$,l]),G=(0,r.useMemo)(()=>{let e={all:$.length,enterprise:0,team:0,business:0,ultra:0,pro:0,free:0,unknown:0};for(let t of $){let s=Q[t.id]?.key||"unknown";e[s]=(e[s]||0)+1}return e},[$,Q]),B=(0,r.useMemo)(()=>"all"===T?$:$.filter(e=>(Q[e.id]?.key||"unknown")===T),[$,Q,T]);return M?(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(m.CardSkeleton,{}),(0,a.jsx)(m.CardSkeleton,{})]}):0===$.length?(0,a.jsx)(u.default,{padding:"lg",children:(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[64px] opacity-15",children:"cloud_off"}),(0,a.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-main",children:e("noProviders")}),(0,a.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-[400px] mx-auto",children:e("connectProvidersForQuota")})]})}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-text-main m-0",children:e("providerLimits")}),(0,a.jsxs)("span",{className:"text-[13px] text-text-muted",children:[e("accountsCount",{count:B.length}),B.length!==$.length&&` ${e("filteredFromCount",{count:$.length})}`]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("button",{onClick:()=>N(e=>!e),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-white/[0.08] bg-transparent cursor-pointer text-text-main text-[13px]",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",style:{color:k?"#22c55e":"var(--text-muted)"},children:k?"toggle_on":"toggle_off"}),e("autoRefresh"),k&&(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:["(",A,"s)"]})]}),(0,a.jsxs)("button",{onClick:O,disabled:E,className:"flex items-center gap-1.5 px-3.5 py-1.5 rounded-lg bg-white/[0.06] border border-white/10 text-text-main text-[13px] disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",children:[(0,a.jsx)("span",{className:`material-symbols-outlined text-[16px] ${E?"animate-spin":""}`,children:"refresh"}),e("refreshAll")]})]})]}),(0,a.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:f.map(t=>{if("all"!==t.key&&!G[t.key])return null;let s=T===t.key;return(0,a.jsxs)("button",{onClick:()=>q(t.key),className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold cursor-pointer",style:{border:s?"1px solid var(--primary, #E54D5E)":"1px solid rgba(255,255,255,0.12)",background:s?"rgba(249,120,21,0.14)":"transparent",color:s?"var(--primary, #E54D5E)":"var(--text-muted)"},children:[(0,a.jsx)("span",{children:e(t.labelKey)}),(0,a.jsx)("span",{className:"opacity-85",children:G[t.key]||0})]},t.key)})}),(0,a.jsxs)("div",{className:"rounded-xl border border-white/[0.06] overflow-hidden bg-black/15",children:[(0,a.jsxs)("div",{className:"items-center px-4 py-2.5 border-b border-white/[0.06] text-[11px] font-semibold uppercase tracking-wider text-text-muted",style:{display:"grid",gridTemplateColumns:"280px 1fr 100px 48px"},children:[(0,a.jsx)("div",{children:e("account")}),(0,a.jsx)("div",{children:e("modelQuotas")}),(0,a.jsx)("div",{className:"text-center",children:e("lastUsed")}),(0,a.jsx)("div",{className:"text-center",children:e("actions")})]}),B.map((t,s)=>{let r=l[t.id],n=g[t.id],c=j[t.id],o=h[t.provider]||{label:t.provider,color:"#666"},u=Q[t.id]||d(null);return(0,a.jsxs)("div",{className:"items-center px-4 py-3.5 transition-[background] duration-150 hover:bg-white/[0.02]",style:{display:"grid",gridTemplateColumns:"280px 1fr 100px 48px",borderBottom:s<B.length-1?"1px solid rgba(255,255,255,0.04)":"none"},children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center overflow-hidden shrink-0",children:(0,a.jsx)(i.default,{src:`/providers/${t.provider}.png`,alt:t.provider,width:32,height:32,className:"object-contain",sizes:"32px"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"text-[13px] font-semibold text-text-main truncate",children:t.name||o.label}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 mt-0.5",children:[(0,a.jsx)("span",{title:r?.plan?e("rawPlanWithValue",{plan:r.plan}):e("noPlanFromProvider"),children:(0,a.jsx)(x.default,{variant:u.variant,size:"sm",dot:!0,children:u.label})}),(0,a.jsx)("span",{className:"text-[11px] text-text-muted",children:o.label})]})]})]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-x-3 gap-y-1.5 pr-3",children:n?(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-text-muted text-xs",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),e("loadingQuotas")]}):c?(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-red-500",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),(0,a.jsx)("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap max-w-[300px]",children:c})]}):r?.message&&(!r.quotas||0===r.quotas.length)?(0,a.jsx)("div",{className:"text-xs text-text-muted italic",children:r.message}):r?.quotas?.length>0?r.quotas.map((e,t)=>{var s,r,l;let n=void 0!==e.remainingPercentage?Math.round(e.remainingPercentage):(s=e.used,(r=e.total)&&0!==r?!s||s<0?100:s>=r?0:Math.round((r-s)/r*100):0),i=n>70?{bar:"#22c55e",text:"#22c55e",bg:"rgba(34,197,94,0.12)"}:n>=30?{bar:"#eab308",text:"#eab308",bg:"rgba(234,179,8,0.12)"}:{bar:"#ef4444",text:"#ef4444",bg:"rgba(239,68,68,0.12)"},c=function(e){if(!e)return null;try{let t=new Date(e)-new Date;if(t<=0)return null;let s=Math.floor(t/36e5),a=Math.floor(t%36e5/6e4);if(s>=24){let e=Math.floor(s/24);return`${e}d ${s%24}h`}return`${s}h ${a}m`}catch{return null}}(e.resetAt),o={"gemini-3-pro-high":"G3 Pro","gemini-3-pro-low":"G3 Pro Low","gemini-3-flash":"G3 Flash","gemini-2.5-flash":"G2.5 Flash","claude-opus-4-6-thinking":"Opus 4.6 Tk","claude-opus-4-5-thinking":"Opus 4.5 Tk","claude-opus-4-5":"Opus 4.5","claude-sonnet-4-5-thinking":"Sonnet 4.5 Tk","claude-sonnet-4-5":"Sonnet 4.5",chat:"Chat",completions:"Completions",premium_interactions:"Premium",session:"Session",weekly:"Weekly",agentic_request:"Agentic",agentic_request_freetrial:"Agentic (Trial)"}[l=e.name]||l;return(0,a.jsxs)("div",{className:"flex items-center gap-1.5 min-w-[200px] shrink-0",children:[(0,a.jsx)("span",{className:"text-[11px] font-semibold py-0.5 px-2 rounded whitespace-nowrap min-w-[60px] text-center",style:{background:i.bg,color:i.text},children:o}),c&&(0,a.jsxs)("span",{className:"text-[10px] text-text-muted whitespace-nowrap",children:["⏱ ",c]}),(0,a.jsx)("div",{className:"flex-1 h-1.5 rounded-sm bg-white/[0.06] min-w-[60px] overflow-hidden",children:(0,a.jsx)("div",{className:"h-full rounded-sm transition-[width] duration-300 ease-out",style:{width:`${Math.min(n,100)}%`,background:i.bar}})}),(0,a.jsxs)("span",{className:"text-[11px] font-semibold min-w-[32px] text-right",style:{color:i.text},children:[n,"%"]})]},t)}):(0,a.jsx)("div",{className:"text-xs text-text-muted italic",children:e("noQuotaData")})}),(0,a.jsx)("div",{className:"text-center text-[11px] text-text-muted",children:w?(0,a.jsx)("span",{children:w.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}):"-"}),(0,a.jsx)("div",{className:"flex justify-center gap-0.5",children:(0,a.jsx)("button",{onClick:()=>D(t.id,t.provider),disabled:n,title:e("refreshQuota"),className:"p-1 rounded-md border-none bg-transparent cursor-pointer disabled:cursor-not-allowed disabled:opacity-30 opacity-60 hover:opacity-100 flex items-center justify-center transition-opacity duration-150",children:(0,a.jsx)("span",{className:`material-symbols-outlined text-[16px] text-text-muted ${n?"animate-spin":""}`,children:"refresh"})})})]},t.id)}),0===B.length&&(0,a.jsxs)("div",{className:"py-6 px-4 text-center text-text-muted text-[13px]",children:[e("noAccountsForTierFilter")," ",(0,a.jsx)("strong",{children:e(f.find(e=>e.key===T)?.labelKey||"tierUnknown")}),"."]})]})]})}function g(){let e=(0,n.c)("usage"),t=(0,n.c)("common"),[s,i]=(0,r.useState)({lockouts:[],cacheStats:null}),[c,o]=(0,r.useState)(!0),d=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/rate-limits");e.ok&&i(await e.json())}catch{}finally{o(!1)}},[]);return(0,r.useEffect)(()=>{d();let e=setInterval(d,1e4);return()=>clearInterval(e)},[d]),(0,a.jsx)("div",{className:"flex flex-col gap-4",children:(0,a.jsxs)(l.Zp,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-orange-500/10 text-orange-500",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"lock_clock"})}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold",children:e("modelLockouts")}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:e("lockoutsAutoRefreshHint")})]}),s.lockouts.length>0&&(0,a.jsx)("span",{className:"px-2.5 py-1 rounded-full text-xs font-semibold bg-orange-500/10 text-orange-400 border border-orange-500/20",children:e("lockedCount",{count:s.lockouts.length})})]}),0===s.lockouts.length?(0,a.jsxs)("div",{className:"text-center py-6 text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px] mb-2 block opacity-40","aria-hidden":"true",children:"lock_open"}),(0,a.jsx)("p",{className:"text-sm",children:e("noLockouts")})]}):(0,a.jsx)("div",{className:"flex flex-col gap-2",children:s.lockouts.map((s,r)=>{var l;return(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-2.5 rounded-lg bg-orange-500/5 border border-orange-500/15",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-orange-400","aria-hidden":"true",children:"lock"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:s.model}),(0,a.jsxs)("p",{className:"text-xs text-text-muted",children:[e("account"),":"," ",(0,a.jsx)("span",{className:"font-mono",children:s.accountId?.slice(0,12)||t("none")}),s.reason&&(0,a.jsxs)(a.Fragment,{children:[e("reasonSeparator"),s.reason]})]})]})]}),(0,a.jsx)("span",{className:"text-xs font-mono tabular-nums text-orange-400",children:e("timeLeft",{time:(l=s.remainingMs)<1e3?e("durationMillisecondsShort",{value:l}):l<6e4?e("durationSecondsShort",{value:Math.ceil(l/1e3)}):e("durationMinutesShort",{value:Math.ceil(l/6e4)})})})]},r)})})]})})}function y(){let e=(0,n.c)("usage"),[t,s]=(0,r.useState)({count:0,sessions:[]}),[i,c]=(0,r.useState)(!0),o=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/sessions");e.ok&&s(await e.json())}catch{}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{o();let e=setInterval(o,5e3);return()=>clearInterval(e)},[o]),(0,a.jsxs)(l.Zp,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-cyan-500/10 text-cyan-500",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"fingerprint"})}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold",children:e("activeSessions")}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:e("sessionsTrackedHint")})]}),(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsxs)("span",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-cyan-500/10 border border-cyan-500/20",children:[(0,a.jsx)("span",{className:"w-2 h-2 rounded-full bg-cyan-500 animate-pulse"}),(0,a.jsx)("span",{className:"text-sm font-semibold tabular-nums text-cyan-400",children:t.count})]})})]}),0===t.sessions.length?(0,a.jsxs)("div",{className:"text-center py-8 text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[40px] mb-2 block opacity-40","aria-hidden":"true",children:"fingerprint"}),(0,a.jsx)("p",{className:"text-sm",children:e("noSessions")}),(0,a.jsx)("p",{className:"text-xs mt-1",children:e("sessionsHint")})]}):(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full text-sm",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"border-b border-border/30",children:[(0,a.jsx)("th",{className:"text-left py-2 px-3 text-xs font-semibold text-text-muted uppercase tracking-wider",children:e("session")}),(0,a.jsx)("th",{className:"text-left py-2 px-3 text-xs font-semibold text-text-muted uppercase tracking-wider",children:e("age")}),(0,a.jsx)("th",{className:"text-right py-2 px-3 text-xs font-semibold text-text-muted uppercase tracking-wider",children:e("requests")}),(0,a.jsx)("th",{className:"text-left py-2 px-3 text-xs font-semibold text-text-muted uppercase tracking-wider",children:e("connection")})]})}),(0,a.jsx)("tbody",{children:t.sessions.map(t=>{var s;return(0,a.jsxs)("tr",{className:"border-b border-border/10 hover:bg-surface/20 transition-colors",children:[(0,a.jsx)("td",{className:"py-2.5 px-3",children:(0,a.jsxs)("span",{className:"font-mono text-xs px-2 py-1 rounded bg-surface/40 text-text-muted",children:[t.sessionId.slice(0,12),"…"]})}),(0,a.jsx)("td",{className:"py-2.5 px-3 text-text-muted tabular-nums",children:(s=t.ageMs)<6e4?e("durationSecondsShort",{value:Math.floor(s/1e3)}):s<36e5?e("durationMinutesShort",{value:Math.floor(s/6e4)}):e("durationHoursShort",{value:Math.floor(s/36e5)})}),(0,a.jsx)("td",{className:"py-2.5 px-3 text-right",children:(0,a.jsx)("span",{className:"font-semibold tabular-nums",children:t.requestCount})}),(0,a.jsx)("td",{className:"py-2.5 px-3",children:t.connectionId?(0,a.jsx)("span",{className:"text-xs font-mono text-cyan-400",children:t.connectionId.slice(0,10)}):(0,a.jsx)("span",{className:"text-text-muted/40",children:e("notAvailableSymbol")})})]},t.sessionId)})})]})})]})}function j(){return(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)(r.Suspense,{fallback:(0,a.jsx)(l.Qv,{}),children:(0,a.jsx)(b,{})}),(0,a.jsx)(g,{}),(0,a.jsx)(y,{})]})}},86879:(e,t,s)=>{Promise.resolve().then(s.bind(s,73732))}},e=>{e.O(0,[8500,3418,9751,8055,1149,5846,647,8441,3794,7358],()=>e(e.s=86879)),_N_E=e.O()}]);
|
package/app/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omniroute",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=6242,exports.ids=[6242],exports.modules={33651:()=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.dbBackupRestoreSchema=exports.testComboSchema=exports.updateComboSchema=exports.cloudSyncActionSchema=exports.cloudModelAliasUpdateSchema=exports.cloudResolveAliasSchema=exports.cloudCredentialUpdateSchema=exports.kiroSocialExchangeSchema=exports.kiroImportSchema=exports.cursorImportSchema=exports.oauthPollSchema=exports.oauthExchangeSchema=exports.translatorTranslateSchema=exports.translatorSendSchema=exports.translatorSaveSchema=exports.translatorDetectSchema=exports.testProxySchema=exports.updateProxyConfigSchema=exports.removeModelAliasSchema=exports.addModelAliasSchema=exports.updateModelAliasesSchema=exports.updateIpFilterSchema=exports.updateThinkingBudgetSchema=exports.updateSystemPromptSchema=exports.updateRequireLoginSchema=exports.updateComboDefaultsSchema=exports.resetStatsActionSchema=exports.jsonObjectSchema=exports.updateResilienceSchema=exports.toggleRateLimitSchema=exports.updatePricingSchema=exports.providerModelMutationSchema=exports.clearModelAvailabilitySchema=exports.updateModelAliasSchema=exports.removeFallbackSchema=exports.registerFallbackSchema=exports.policyActionSchema=exports.setBudgetSchema=exports.v1CountTokensSchema=exports.providerChatCompletionSchema=exports.v1RerankSchema=exports.v1ModerationSchema=exports.v1AudioSpeechSchema=exports.v1ImageGenerationSchema=exports.v1EmbeddingsSchema=exports.loginSchema=exports.updateSettingsSchema=exports.createComboSchema=exports.createKeySchema=exports.createProviderSchema=void 0,exports.guideSettingsSaveSchema=exports.codexProfileIdSchema=exports.codexProfileNameSchema=exports.cliModelConfigSchema=exports.cliSettingsEnvSchema=exports.cliBackupMutationSchema=exports.cliMitmAliasUpdateSchema=exports.cliMitmStopSchema=exports.cliMitmStartSchema=exports.v1betaGeminiGenerateSchema=exports.validateProviderApiKeySchema=exports.providersBatchTestSchema=exports.updateProviderConnectionSchema=exports.providerNodeValidateSchema=exports.updateProviderNodeSchema=exports.createProviderNodeSchema=exports.updateKeyPermissionsSchema=exports.evalRunSuiteSchema=void 0,exports.validateBody=function(a,b){var c,d=a.safeParse(b);return d.success?{success:!0,data:d.data}:{success:!1,error:{message:"Invalid request",details:(Array.isArray(null==(c=d.error)?void 0:c.issues)?d.error.issues:[]).map(function(a){return{field:a.path.join("."),message:a.message}})}}};var a=require("zod");exports.createProviderSchema=a.z.object({provider:a.z.string().min(1).max(100),apiKey:a.z.string().min(1).max(1e4),name:a.z.string().min(1).max(200),priority:a.z.number().int().min(1).max(100).optional(),globalPriority:a.z.number().int().min(1).max(100).nullable().optional(),defaultModel:a.z.string().max(200).nullable().optional(),testStatus:a.z.string().max(50).optional()}),exports.createKeySchema=a.z.object({name:a.z.string().min(1,"Name is required").max(200)});var b=a.z.union([a.z.string(),a.z.object({model:a.z.string().min(1),weight:a.z.number().min(0).max(100).default(0)})]),c=a.z.object({maxRetries:a.z.number().int().min(0).max(10).optional(),retryDelayMs:a.z.number().int().min(0).max(6e4).optional(),timeoutMs:a.z.number().int().min(1e3).max(6e5).optional(),healthCheckEnabled:a.z.boolean().optional()}).optional(),d=a.z.enum(["priority","weighted","round-robin","random","least-used","cost-optimized"]),e=a.z.object({strategy:d.optional(),maxRetries:a.z.coerce.number().int().min(0).max(10).optional(),retryDelayMs:a.z.coerce.number().int().min(0).max(6e4).optional(),timeoutMs:a.z.coerce.number().int().min(1e3).max(6e5).optional(),concurrencyPerModel:a.z.coerce.number().int().min(1).max(20).optional(),queueTimeoutMs:a.z.coerce.number().int().min(1e3).max(12e4).optional(),healthCheckEnabled:a.z.boolean().optional(),healthCheckTimeoutMs:a.z.coerce.number().int().min(100).max(3e4).optional(),maxComboDepth:a.z.coerce.number().int().min(1).max(10).optional(),trackMetrics:a.z.boolean().optional()}).strict();exports.createComboSchema=a.z.object({name:a.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and ."),models:a.z.array(b).optional().default([]),strategy:d.optional().default("priority"),config:c}),exports.updateSettingsSchema=a.z.object({newPassword:a.z.string().min(1).max(200).optional(),currentPassword:a.z.string().max(200).optional(),theme:a.z.string().max(50).optional(),language:a.z.string().max(10).optional(),requireLogin:a.z.boolean().optional(),enableRequestLogs:a.z.boolean().optional(),enableSocks5Proxy:a.z.boolean().optional(),instanceName:a.z.string().max(100).optional(),corsOrigins:a.z.string().max(500).optional(),logRetentionDays:a.z.number().int().min(1).max(365).optional(),cloudUrl:a.z.string().max(500).optional(),baseUrl:a.z.string().max(500).optional(),setupComplete:a.z.boolean().optional(),requireAuthForModels:a.z.boolean().optional(),blockedProviders:a.z.array(a.z.string().max(100)).optional(),hideHealthCheckLogs:a.z.boolean().optional(),fallbackStrategy:a.z.enum(["fill-first","round-robin","p2c","random","least-used","cost-optimized"]).optional(),wildcardAliases:a.z.array(a.z.object({pattern:a.z.string(),target:a.z.string()})).optional(),stickyRoundRobinLimit:a.z.number().int().min(0).max(1e3).optional()}),exports.loginSchema=a.z.object({password:a.z.string().min(1,"Password is required").max(200)});var f=a.z.string().trim().min(1,"Model is required").max(200),g=a.z.string().trim().min(1,"Field is required"),h=a.z.array(a.z.number().int().min(0)).min(1,"input token array must contain at least one item"),i=a.z.union([g,a.z.array(g).min(1,"input must contain at least one item"),h,a.z.array(h).min(1,"input must contain at least one item")]),j=a.z.object({role:a.z.string().trim().min(1,"messages[].role is required"),content:a.z.union([g,a.z.array(a.z.unknown()).min(1),a.z.null()]).optional()}).catchall(a.z.unknown()),k=a.z.object({content:a.z.union([g,a.z.array(a.z.object({type:a.z.string().optional(),text:a.z.string().optional()}).catchall(a.z.unknown())).min(1,"messages[].content must contain at least one item")])}).catchall(a.z.unknown());exports.v1EmbeddingsSchema=a.z.object({model:f,input:i,dimensions:a.z.coerce.number().int().positive().optional(),encoding_format:a.z.enum(["float","base64"]).optional()}).catchall(a.z.unknown()),exports.v1ImageGenerationSchema=a.z.object({model:f,prompt:g}).catchall(a.z.unknown()),exports.v1AudioSpeechSchema=a.z.object({model:f,input:g}).catchall(a.z.unknown()),exports.v1ModerationSchema=a.z.object({model:f.optional(),input:a.z.unknown().refine(function(a){return null!=a&&("string"==typeof a?a.trim().length>0:!Array.isArray(a)||a.length>0)},"Input is required")}).catchall(a.z.unknown()),exports.v1RerankSchema=a.z.object({model:f,query:g,documents:a.z.array(a.z.unknown()).min(1,"documents must contain at least one item")}).catchall(a.z.unknown()),exports.providerChatCompletionSchema=a.z.object({model:f,messages:a.z.array(j).min(1).optional(),input:a.z.union([g,a.z.array(a.z.unknown()).min(1)]).optional(),prompt:g.optional()}).catchall(a.z.unknown()).superRefine(function(b,c){void 0===b.messages&&void 0===b.input&&void 0===b.prompt&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"messages, input or prompt is required",path:[]})}),exports.v1CountTokensSchema=a.z.object({messages:a.z.array(k).min(1,"messages must contain at least one item")}).catchall(a.z.unknown()),exports.setBudgetSchema=a.z.object({apiKeyId:a.z.string().trim().min(1,"apiKeyId is required"),dailyLimitUsd:a.z.coerce.number().positive("dailyLimitUsd must be greater than zero"),monthlyLimitUsd:a.z.coerce.number().positive("monthlyLimitUsd must be greater than zero").optional(),warningThreshold:a.z.coerce.number().min(0).max(1).optional()}),exports.policyActionSchema=a.z.object({action:a.z.enum(["unlock"]),identifier:a.z.string().trim().min(1).optional()}).superRefine(function(b,c){"unlock"!==b.action||b.identifier||c.addIssue({code:a.z.ZodIssueCode.custom,message:"identifier is required for unlock action",path:["identifier"]})});var l=a.z.object({provider:a.z.string().trim().min(1,"provider is required"),priority:a.z.number().int().min(1).max(100).optional(),enabled:a.z.boolean().optional()}).catchall(a.z.unknown());exports.registerFallbackSchema=a.z.object({model:f,chain:a.z.array(l).min(1,"chain must contain at least one provider")}),exports.removeFallbackSchema=a.z.object({model:f}),exports.updateModelAliasSchema=a.z.object({model:f,alias:a.z.string().trim().min(1,"Alias is required").max(200)}),exports.clearModelAvailabilitySchema=a.z.object({provider:a.z.string().trim().min(1,"provider is required").max(120),model:f}),exports.providerModelMutationSchema=a.z.object({provider:a.z.string().trim().min(1,"provider is required").max(120),modelId:a.z.string().trim().min(1,"modelId is required").max(240),modelName:a.z.string().trim().max(240).optional(),source:a.z.string().trim().max(80).optional()});var m=a.z.object({input:a.z.number().min(0).optional(),output:a.z.number().min(0).optional(),cached:a.z.number().min(0).optional(),reasoning:a.z.number().min(0).optional(),cache_creation:a.z.number().min(0).optional()}).strict();exports.updatePricingSchema=a.z.record(a.z.string().trim().min(1),a.z.record(a.z.string().trim().min(1),m)),exports.toggleRateLimitSchema=a.z.object({connectionId:a.z.string().trim().min(1,"connectionId is required"),enabled:a.z.boolean()});var n=a.z.object({transientCooldown:a.z.number().min(0),rateLimitCooldown:a.z.number().min(0),maxBackoffLevel:a.z.number().int().min(0),circuitBreakerThreshold:a.z.number().int().min(0),circuitBreakerReset:a.z.number().min(0)}),o=a.z.object({requestsPerMinute:a.z.number().int().min(1).optional(),minTimeBetweenRequests:a.z.number().int().min(1).optional(),concurrentRequests:a.z.number().int().min(1).optional()}).strict();exports.updateResilienceSchema=a.z.object({profiles:a.z.object({oauth:n.optional(),apikey:n.optional()}).strict().optional(),defaults:o.optional()}).superRefine(function(b,c){b.profiles||b.defaults||c.addIssue({code:a.z.ZodIssueCode.custom,message:"Must provide profiles or defaults",path:[]})}),exports.jsonObjectSchema=a.z.record(a.z.string(),a.z.unknown()),exports.resetStatsActionSchema=a.z.object({action:a.z.literal("reset-stats")}),exports.updateComboDefaultsSchema=a.z.object({comboDefaults:e.optional(),providerOverrides:a.z.record(a.z.string().trim().min(1),e).optional()}).superRefine(function(b,c){b.comboDefaults||b.providerOverrides||c.addIssue({code:a.z.ZodIssueCode.custom,message:"Nothing to update",path:[]})}),exports.updateRequireLoginSchema=a.z.object({requireLogin:a.z.boolean().optional(),password:a.z.string().min(4,"Password must be at least 4 characters").optional()}).superRefine(function(b,c){void 0!==b.requireLogin||b.password||c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),exports.updateSystemPromptSchema=a.z.object({prompt:a.z.string().max(5e4).optional(),enabled:a.z.boolean().optional()}).strict().superRefine(function(b,c){void 0===b.prompt&&void 0===b.enabled&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),exports.updateThinkingBudgetSchema=a.z.object({mode:a.z.enum(["passthrough","auto","custom","adaptive"]).optional(),customBudget:a.z.coerce.number().int().min(0).max(131072).optional(),effortLevel:a.z.enum(["none","low","medium","high"]).optional(),baseBudget:a.z.coerce.number().int().min(0).max(131072).optional(),complexityMultiplier:a.z.coerce.number().min(0).optional()}).strict().superRefine(function(b,c){void 0===b.mode&&void 0===b.customBudget&&void 0===b.effortLevel&&void 0===b.baseBudget&&void 0===b.complexityMultiplier&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})});var p=a.z.enum(["blacklist","whitelist"]),q=a.z.object({ip:a.z.string().trim().min(1),durationMs:a.z.coerce.number().int().min(1).optional(),reason:a.z.string().max(200).optional()});exports.updateIpFilterSchema=a.z.object({enabled:a.z.boolean().optional(),mode:p.optional(),blacklist:a.z.array(a.z.string()).optional(),whitelist:a.z.array(a.z.string()).optional(),addBlacklist:a.z.string().optional(),removeBlacklist:a.z.string().optional(),addWhitelist:a.z.string().optional(),removeWhitelist:a.z.string().optional(),tempBan:q.optional(),removeBan:a.z.string().optional()}).strict().superRefine(function(b,c){0===Object.keys(b).length&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),exports.updateModelAliasesSchema=a.z.object({aliases:a.z.record(a.z.string().trim().min(1),a.z.string().trim().min(1))}),exports.addModelAliasSchema=a.z.object({from:a.z.string().trim().min(1),to:a.z.string().trim().min(1)}),exports.removeModelAliasSchema=a.z.object({from:a.z.string().trim().min(1)});var r=a.z.object({type:a.z.preprocess(function(a){return"string"==typeof a?a.trim().toLowerCase():a},a.z.enum(["http","https","socks5"])).optional(),host:a.z.string().trim().min(1).optional(),port:a.z.coerce.number().int().min(1).max(65535).optional(),username:a.z.string().optional(),password:a.z.string().optional()}).strict();exports.updateProxyConfigSchema=a.z.object({proxy:r.nullable().optional(),global:r.nullable().optional(),providers:a.z.record(a.z.string().trim().min(1),r.nullable()).optional(),combos:a.z.record(a.z.string().trim().min(1),r.nullable()).optional(),keys:a.z.record(a.z.string().trim().min(1),r.nullable()).optional(),level:a.z.enum(["global","provider","combo","key"]).optional(),id:a.z.string().optional()}).strict().superRefine(function(b,c){var d;void 0===b.proxy&&void 0===b.global&&void 0===b.providers&&void 0===b.combos&&void 0===b.keys&&void 0===b.level&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]}),void 0!==b.level&&void 0===b.proxy&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"proxy is required when level is provided",path:["proxy"]}),!b.level||"global"===b.level||(null==(d=b.id)?void 0:d.trim())||c.addIssue({code:a.z.ZodIssueCode.custom,message:"id is required for provider/combo/key level updates",path:["id"]})}),exports.testProxySchema=a.z.object({proxy:a.z.object({type:a.z.string().optional(),host:a.z.string().trim().min(1,"proxy.host is required"),port:a.z.union([a.z.string(),a.z.number()]),username:a.z.string().optional(),password:a.z.string().optional()})});var s=a.z.record(a.z.string(),a.z.unknown()).refine(function(a){return Object.keys(a).length>0},"Body must be a non-empty object"),t=a.z.enum(["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt"]);exports.translatorDetectSchema=a.z.object({body:s}),exports.translatorSaveSchema=a.z.object({file:t,content:a.z.string().min(1,"Content is required").max(1e6,"Content is too large")}),exports.translatorSendSchema=a.z.object({provider:a.z.string().trim().min(1,"Provider is required"),body:s}),exports.translatorTranslateSchema=a.z.object({step:a.z.union([a.z.number().int().min(1).max(4),a.z.literal("direct")]),provider:a.z.string().trim().min(1).optional(),body:s,sourceFormat:a.z.string().optional(),targetFormat:a.z.string().optional()}).superRefine(function(b,c){"direct"===b.step||b.provider||c.addIssue({code:a.z.ZodIssueCode.custom,message:"Step and provider are required",path:["provider"]})}),exports.oauthExchangeSchema=a.z.object({code:a.z.string().trim().min(1),redirectUri:a.z.string().trim().min(1),codeVerifier:a.z.string().trim().min(1),state:a.z.string().optional()}),exports.oauthPollSchema=a.z.object({deviceCode:a.z.string().trim().min(1),codeVerifier:a.z.string().optional(),extraData:a.z.unknown().optional()}),exports.cursorImportSchema=a.z.object({accessToken:a.z.string().trim().min(1,"Access token is required"),machineId:a.z.string().trim().min(1,"Machine ID is required")}),exports.kiroImportSchema=a.z.object({refreshToken:a.z.string().trim().min(1,"Refresh token is required")}),exports.kiroSocialExchangeSchema=a.z.object({code:a.z.string().trim().min(1,"Code is required"),codeVerifier:a.z.string().trim().min(1,"Code verifier is required"),provider:a.z.enum(["google","github"])}),exports.cloudCredentialUpdateSchema=a.z.object({provider:a.z.string().trim().min(1,"Provider is required"),credentials:a.z.object({accessToken:a.z.string().optional(),refreshToken:a.z.string().optional(),expiresIn:a.z.coerce.number().positive().optional()}).strict().superRefine(function(b,c){void 0===b.accessToken&&void 0===b.refreshToken&&void 0===b.expiresIn&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"At least one credential field must be provided",path:[]})})}),exports.cloudResolveAliasSchema=a.z.object({alias:a.z.string().trim().min(1,"Missing alias")}),exports.cloudModelAliasUpdateSchema=a.z.object({model:a.z.string().trim().min(1,"Model and alias required"),alias:a.z.string().trim().min(1,"Model and alias required")}),exports.cloudSyncActionSchema=a.z.object({action:a.z.enum(["enable","sync","disable"])}),exports.updateComboSchema=a.z.object({name:a.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and .").optional(),models:a.z.array(b).optional(),strategy:d.optional(),config:e.optional(),isActive:a.z.boolean().optional()}).superRefine(function(b,c){void 0===b.name&&void 0===b.models&&void 0===b.strategy&&void 0===b.config&&void 0===b.isActive&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),exports.testComboSchema=a.z.object({comboName:a.z.string().trim().min(1,"comboName is required")}),exports.dbBackupRestoreSchema=a.z.object({backupId:a.z.string().trim().min(1,"backupId is required")}),exports.evalRunSuiteSchema=a.z.object({suiteId:a.z.string().trim().min(1,"suiteId is required"),outputs:a.z.record(a.z.string(),a.z.unknown())}),exports.updateKeyPermissionsSchema=a.z.object({allowedModels:a.z.array(a.z.string().trim().min(1)).max(1e3).optional(),noLog:a.z.boolean().optional()}).superRefine(function(b,c){void 0===b.allowedModels&&void 0===b.noLog&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),exports.createProviderNodeSchema=a.z.object({name:a.z.string().trim().min(1,"Name is required"),prefix:a.z.string().trim().min(1,"Prefix is required"),apiType:a.z.enum(["chat","responses"]).optional(),baseUrl:a.z.string().trim().min(1).optional(),type:a.z.enum(["openai-compatible","anthropic-compatible"]).optional()}).superRefine(function(b,c){"openai-compatible"!==(b.type||"openai-compatible")||b.apiType||c.addIssue({code:a.z.ZodIssueCode.custom,message:"Invalid OpenAI compatible API type",path:["apiType"]})}),exports.updateProviderNodeSchema=a.z.object({name:a.z.string().trim().min(1,"Name is required"),prefix:a.z.string().trim().min(1,"Prefix is required"),apiType:a.z.enum(["chat","responses"]).optional(),baseUrl:a.z.string().trim().min(1,"Base URL is required")}),exports.providerNodeValidateSchema=a.z.object({baseUrl:a.z.string().trim().min(1,"Base URL and API key required"),apiKey:a.z.string().trim().min(1,"Base URL and API key required"),type:a.z.enum(["openai-compatible","anthropic-compatible"]).optional()}),exports.updateProviderConnectionSchema=a.z.object({name:a.z.string().max(200).optional(),priority:a.z.coerce.number().int().min(1).max(100).optional(),globalPriority:a.z.union([a.z.coerce.number().int().min(1).max(100),a.z.null()]).optional(),defaultModel:a.z.union([a.z.string().max(200),a.z.null()]).optional(),isActive:a.z.boolean().optional(),apiKey:a.z.string().max(1e4).optional(),testStatus:a.z.string().max(50).optional(),lastError:a.z.union([a.z.string(),a.z.null()]).optional(),lastErrorAt:a.z.union([a.z.string(),a.z.null()]).optional(),lastErrorType:a.z.union([a.z.string(),a.z.null()]).optional(),lastErrorSource:a.z.union([a.z.string(),a.z.null()]).optional(),errorCode:a.z.union([a.z.string(),a.z.null()]).optional(),rateLimitedUntil:a.z.union([a.z.string(),a.z.null()]).optional(),lastTested:a.z.union([a.z.string(),a.z.null()]).optional(),healthCheckInterval:a.z.coerce.number().int().min(0).optional()}).superRefine(function(b,c){0===Object.keys(b).length&&c.addIssue({code:a.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),exports.providersBatchTestSchema=a.z.object({mode:a.z.enum(["provider","oauth","free","apikey","compatible","all"]),providerId:a.z.string().trim().min(1).optional()}).superRefine(function(b,c){"provider"!==b.mode||b.providerId||c.addIssue({code:a.z.ZodIssueCode.custom,message:"providerId is required when mode=provider",path:["providerId"]})}),exports.validateProviderApiKeySchema=a.z.object({provider:a.z.string().trim().min(1,"Provider and API key required"),apiKey:a.z.string().trim().min(1,"Provider and API key required")});var u=a.z.object({text:a.z.string().optional()}).catchall(a.z.unknown()),v=a.z.object({role:a.z.string().optional(),parts:a.z.array(u).optional()}).catchall(a.z.unknown());exports.v1betaGeminiGenerateSchema=a.z.object({contents:a.z.array(v).optional(),systemInstruction:a.z.object({parts:a.z.array(u).optional()}).catchall(a.z.unknown()).optional(),generationConfig:a.z.object({stream:a.z.boolean().optional(),maxOutputTokens:a.z.coerce.number().int().min(1).optional(),temperature:a.z.coerce.number().optional(),topP:a.z.coerce.number().optional()}).catchall(a.z.unknown()).optional()}).catchall(a.z.unknown()).superRefine(function(b,c){b.contents||b.systemInstruction||c.addIssue({code:a.z.ZodIssueCode.custom,message:"contents or systemInstruction is required",path:[]})}),exports.cliMitmStartSchema=a.z.object({apiKey:a.z.string().trim().min(1,"Missing apiKey"),sudoPassword:a.z.string().optional()}),exports.cliMitmStopSchema=a.z.object({sudoPassword:a.z.string().optional()}),exports.cliMitmAliasUpdateSchema=a.z.object({tool:a.z.string().trim().min(1,"tool and mappings required"),mappings:a.z.record(a.z.string(),a.z.string().optional())}),exports.cliBackupMutationSchema=a.z.object({tool:a.z.string().trim().min(1).optional(),toolId:a.z.string().trim().min(1).optional(),backupId:a.z.string().trim().min(1,"tool and backupId are required")}).superRefine(function(b,c){b.tool||b.toolId||c.addIssue({code:a.z.ZodIssueCode.custom,message:"tool and backupId are required",path:["tool"]})});var w=a.z.string().trim().min(1,"Environment key is required").max(120).regex(/^[A-Z_][A-Z0-9_]*$/,"Invalid environment key format"),x=a.z.union([a.z.string(),a.z.number(),a.z.boolean()]).transform(function(a){return String(a)}).refine(function(a){return a.length>0},"Environment value is required").refine(function(a){return a.length<=1e4},"Environment value is too long");exports.cliSettingsEnvSchema=a.z.object({env:a.z.record(w,x).refine(function(a){return Object.keys(a).length>0},"env must contain at least one key")}),exports.cliModelConfigSchema=a.z.object({baseUrl:a.z.string().trim().min(1,"baseUrl and model are required"),apiKey:a.z.string().optional(),model:a.z.string().trim().min(1,"baseUrl and model are required")}),exports.codexProfileNameSchema=a.z.object({name:a.z.string().trim().min(1,"Profile name is required")}),exports.codexProfileIdSchema=a.z.object({profileId:a.z.string().trim().min(1,"profileId is required")}),exports.guideSettingsSaveSchema=a.z.object({baseUrl:a.z.string().trim().min(1).optional(),apiKey:a.z.string().optional(),model:a.z.string().trim().min(1,"Model is required")})},76046:(a,b,c)=>{"use strict";c.d(b,{Jb:()=>e,kf:()=>f});var d=c(50292);function e(a,b){let c=a.safeParse(b);return c.success?{success:!0,data:c.data}:{success:!1,error:{message:"Invalid request",details:(Array.isArray(c.error?.issues)?c.error.issues:[]).map(a=>({field:a.path.join("."),message:a.message}))}}}function f(a){return!1===a.success}d.Ikc({password:d.YjP().min(1,"Password is required").max(200)})},78335:()=>{},96487:()=>{}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=9340,exports.ids=[4755,9340],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},21020:(a,b,c)=>{c.d(b,{Pt:()=>o,Tr:()=>p,c1:()=>m,kI:()=>q,vk:()=>n});var d=c(22901),e=c(74163),f=c(83779);function g(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function h(a){return"string"==typeof a&&a.trim().length>0?a:null}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function j(a){let b=g(a);return{id:h(b.id)||"",isActive:!0===b.isActive,rateLimitedUntil:h(b.rateLimitedUntil),testStatus:h(b.testStatus),apiKey:h(b.apiKey),accessToken:h(b.accessToken),refreshToken:h(b.refreshToken),tokenExpiresAt:h(b.tokenExpiresAt),expiresAt:h(b.expiresAt),projectId:h(b.projectId),providerSpecificData:g(b.providerSpecificData),lastUsedAt:h(b.lastUsedAt),consecutiveUseCount:i(b.consecutiveUseCount,0),priority:i(b.priority,999),lastError:h(b.lastError),errorCode:"string"==typeof b.errorCode||"number"==typeof b.errorCode?b.errorCode:null,backoffLevel:i(b.backoffLevel,0)}}let k=Promise.resolve(),l=new Map;async function m(a,b=null){let c,g=k;k=new Promise(a=>{c=a});try{let c;await g;let h=await (0,d.getProviderConnections)({provider:a,isActive:!0}),k=(Array.isArray(h)?h:[]).map(j).filter(a=>a.id.length>0);if(f.debug("AUTH",`${a} | total connections: ${k.length}, excludeId: ${b||"none"}`),0===k.length){let b=await (0,d.getProviderConnections)({provider:a}),c=(Array.isArray(b)?b:[]).map(j).filter(a=>a.id.length>0);if(f.debug("AUTH",`${a} | all connections (incl inactive): ${c.length}`),c.length>0){let b=(0,e.UY)(c);if(b)return f.warn("AUTH",`${a} | all ${c.length} accounts rate limited (${(0,e.Qo)(b)})`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,e.Qo)(b)};f.warn("AUTH",`${a} | ${c.length} accounts found but none active`),c.forEach(a=>{f.debug("AUTH",` → ${a.id?.slice(0,8)} | isActive=${a.isActive} | rateLimitedUntil=${a.rateLimitedUntil||"none"} | testStatus=${a.testStatus}`)})}return f.warn("AUTH",`No credentials for ${a}`),null}let l=k.filter(a=>!(b&&a.id===b||(0,e.AO)(a.rateLimitedUntil)));if(f.debug("AUTH",`${a} | available: ${l.length}/${k.length}`),k.forEach(a=>{let c=b&&a.id===b,d=(0,e.AO)(a.rateLimitedUntil);(c||d)&&f.debug("AUTH",` → ${a.id?.slice(0,8)} | ${c?"excluded":""} ${d?`rateLimited until ${a.rateLimitedUntil}`:""}`)}),0===l.length){let b=(0,e.UY)(k);if(b){let c=k.filter(a=>a.rateLimitedUntil&&new Date(a.rateLimitedUntil).getTime()>Date.now()).sort((a,b)=>new Date(a.rateLimitedUntil||0).getTime()-new Date(b.rateLimitedUntil||0).getTime())[0];return f.warn("AUTH",`${a} | all ${k.length} active accounts rate limited (${(0,e.Qo)(b)}) | lastErrorCode=${c?.errorCode}, lastError=${c?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,e.Qo)(b),lastError:c?.lastError||null,lastErrorCode:c?.errorCode||null}}return f.warn("AUTH",`${a} | all ${k.length} accounts unavailable`),null}let m=await (0,d.V7)(),n=m.fallbackStrategy||"fill-first";if("round-robin"===n){let a=i(m.stickyRoundRobinLimit,3),b=[...l].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt).getTime()-new Date(a.lastUsedAt).getTime():-1:1:(a.priority||999)-(b.priority||999))[0],e=b?.consecutiveUseCount||0;b&&b.lastUsedAt&&e<a?(c=b,await (0,d.rj)(c.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(c.consecutiveUseCount||0)+1})):(c=[...l].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.rj)(c.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else if("p2c"===n)if(l.length<=2)c=l[0];else{let a=Math.floor(Math.random()*l.length),b=Math.floor(Math.random()*(l.length-1));b>=a&&b++;let d=l[a],e=l[b],f=(d.consecutiveUseCount||0)+10*!!d.lastError,g=(e.consecutiveUseCount||0)+10*!!e.lastError;c=f<=g?d:e}else if("random"===n){let a=Math.floor(Math.random()*l.length);c=l[a]}else c="least-used"===n?[...l].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0]:"cost-optimized"===n?[...l].sort((a,b)=>(a.priority||999)-(b.priority||999))[0]:l[0];return{apiKey:c.apiKey,accessToken:c.accessToken,refreshToken:c.refreshToken,expiresAt:c.tokenExpiresAt||c.expiresAt||null,projectId:c.projectId,copilotToken:"string"==typeof c.providerSpecificData.copilotToken?c.providerSpecificData.copilotToken:null,providerSpecificData:c.providerSpecificData,connectionId:c.id,testStatus:c.testStatus,lastError:c.lastError,rateLimitedUntil:c.rateLimitedUntil}}finally{c&&c()}}async function n(a,b,c,g=null,h=null){let i,k=l.get(a)||Promise.resolve();l.set(a,new Promise(a=>{i=a}));try{await k;let i=await (0,d.getProviderConnections)({provider:g}),l=(Array.isArray(i)?i:[]).map(j).filter(a=>a.id.length>0).find(b=>b.id===a),m=l?.backoffLevel||0;if(l?.rateLimitedUntil&&new Date(l.rateLimitedUntil).getTime()>Date.now())return f.info("AUTH",`${a.slice(0,8)} already marked unavailable (until ${l.rateLimitedUntil}), skipping duplicate mark`),{shouldFallback:!0,cooldownMs:new Date(l.rateLimitedUntil).getTime()-Date.now()};let{shouldFallback:n,cooldownMs:o,newBackoffLevel:p,reason:q}=(0,e.hk)(b,c,m,h,g);if(!n)return{shouldFallback:!1,cooldownMs:0};let r=(0,e.vp)(o),s="string"==typeof c?c.slice(0,100):"Provider error";return await (0,d.rj)(a,{rateLimitedUntil:r,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??m}),g&&h&&o>0&&(0,e.R7)(g,a,h,q||"unknown",o),g&&b&&s&&console.error(`❌ ${g} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:o}}finally{i&&i(),l.delete(a)}}async function o(a,b){("unavailable"===b.testStatus||b.lastError||b.rateLimitedUntil)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,rateLimitedUntil:null,backoffLevel:0}),f.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}function p(a){let b=a.headers.get("Authorization");return b?.startsWith("Bearer ")?b.slice(7):null}async function q(a){return!!a&&await (0,d.ek)(a)}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},70884:(a,b,c)=>{c.d(b,{S:()=>j});var d=c(21020),e=c(22901),f=c(78790),g=c(71861),h=c(60293),i=c(83779);async function j(a,b){let c=(0,d.Tr)(a);if(!c)return{apiKey:null,apiKeyInfo:null,rejection:null};let j=null;try{j=await (0,e.v9)(c)}catch(a){return i.error("API_POLICY","Failed to fetch API key metadata. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:null,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"API key policy unavailable")}}if(!j)return{apiKey:c,apiKeyInfo:null,rejection:null};if(b&&j.allowedModels&&j.allowedModels.length>0&&!await (0,e.Oo)(c,b))return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Model "${b}" is not allowed for this API key`)};if(j.id)try{let a=(0,f.Ik)(j.id);if(!a.allowed)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.RATE_LIMITED,a.reason||"Budget limit exceeded")}}catch(a){return i.error("API_POLICY","Budget check failed. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"Budget policy unavailable")}}return{apiKey:c,apiKeyInfo:j,rejection:null}}},78790:(a,b,c)=>{c.d(b,{Ik:()=>j,n5:()=>i,qV:()=>g,uN:()=>k});var d=c(97917);function e(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="number"==typeof c.cost?c.cost:Number(c.cost??0),d="number"==typeof c.timestamp?c.timestamp:Number(c.timestamp??0);Number.isFinite(a)&&Number.isFinite(d)&&b.push({cost:a,timestamp:d})}return b}let f=new Map;function g(a,b){let c={dailyLimitUsd:b.dailyLimitUsd,monthlyLimitUsd:b.monthlyLimitUsd||0,warningThreshold:b.warningThreshold??.8};f.set(a,c);try{(0,d.zd)(a,c)}catch{}}function h(a){if(f.has(a))return f.get(a);try{let b=(0,d.io)(a);if(b)return f.set(a,b),b}catch{}return null}function i(a,b){let c=Date.now();try{(0,d.tv)(a,b,c)}catch{}}function j(a,b=0){let c=h(a);if(!c)return{allowed:!0,dailyUsed:0,dailyLimit:0,warningReached:!1};let f=function(a){let b=new Date;b.setHours(0,0,0,0);let c=b.getTime();try{return e((0,d.qA)(a,c)).reduce((a,b)=>a+b.cost,0)}catch{return 0}}(a),g=f+b,i=g>=c.dailyLimitUsd*c.warningThreshold;return g>c.dailyLimitUsd?{allowed:!1,reason:`Daily budget exceeded: $${g.toFixed(4)} / $${c.dailyLimitUsd.toFixed(2)}`,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:!0}:{allowed:!0,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:i}}function k(a){let b=new Date,c=new Date(b);c.setHours(0,0,0,0);let f=new Date(b.getFullYear(),b.getMonth(),1);try{let b=e((0,d.qA)(a,c.getTime())),g=e((0,d.qA)(a,f.getTime())),i=b.reduce((a,b)=>a+b.cost,0),j=g.reduce((a,b)=>a+b.cost,0);return{dailyTotal:i,monthlyTotal:j,totalEntries:g.length,budget:h(a)}}catch{return{dailyTotal:0,monthlyTotal:0,totalEntries:0,budget:h(a)}}}},83779:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>l,error:()=>o,info:()=>m,maskKey:()=>j,request:()=>p,response:()=>q,stream:()=>r,warn:()=>n});var d=c(74552),e=c.n(d),f=c(33873),g=c(29021);function h(){let a="false"!==process.env.LOG_TO_FILE,b=process.env.LOG_FILE_PATH||(0,f.join)(process.cwd(),"logs/application/app.log");return{logToFile:a,logFilePath:b,maxFileSize:function(a){if(!a)return 0x3200000;let b=a.match(/^(\d+)\s*(k|m|g|kb|mb|gb)?$/i);if(!b)return 0x3200000;let c=parseInt(b[1],10);switch((b[2]||"").toLowerCase()){case"k":case"kb":return 1024*c;case"m":case"mb":return 1024*c*1024;case"g":case"gb":return 1024*c*1048576;default:return c}}(process.env.LOG_MAX_FILE_SIZE),retentionDays:parseInt(process.env.LOG_RETENTION_DAYS||String(7),10)}}let i={level:process.env.LOG_LEVEL||"info",base:{service:"omniroute"},timestamp:e().stdTimeFunctions.isoTime,formatters:{level:a=>({level:a})}};function j(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}let k=(function(){let a=h(),b=i.level||"info";if(a.logToFile)try{let d=h();if(d.logToFile){var c;let a;c=d.logFilePath,a=(0,f.dirname)(c),(0,g.existsSync)(a)||(0,g.mkdirSync)(a,{recursive:!0}),function(a,b){try{if(!(0,g.existsSync)(a)||(0,g.statSync)(a).size<b)return;let c=(0,f.dirname)(a),d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=new Date,i=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}_${String(h.getHours()).padStart(2,"0")}${String(h.getMinutes()).padStart(2,"0")}${String(h.getSeconds()).padStart(2,"0")}`,j=(0,f.join)(c,`${e}.${i}${d}`);(0,g.renameSync)(a,j)}catch{}}(d.logFilePath,d.maxFileSize),function(a,b){try{let c=(0,f.dirname)(a);if(!(0,g.existsSync)(c))return;let d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=(0,g.readdirSync)(c),i=Date.now()-24*b*36e5;for(let b of h)if(b.startsWith(e+".")&&b.endsWith(d)&&b!==(0,f.basename)(a)){let a=(0,f.join)(c,b);try{(0,g.statSync)(a).mtimeMs<i&&(0,g.unlinkSync)(a)}catch{}}}catch{}}(d.logFilePath,d.retentionDays)}let j=(0,f.resolve)(a.logFilePath);return e()({...i,transport:{targets:[{target:"pino/file",options:{destination:1},level:b},{target:"pino/file",options:{destination:j,mkdir:!0},level:b}]}})}catch(c){console.warn("[logger] Failed to set up file transport, attempting sync fallback...",c?.message||c);try{let c=(0,f.resolve)(a.logFilePath),d=e().destination({dest:c,mkdir:!0,sync:!0});return e()(i,e().multistream([{stream:process.stdout,level:b},{stream:d,level:b}]))}catch(a){console.warn("[logger] Sync fallback also failed, falling back to console only",a?.message||a)}}return e()(i)})().child({module:"sse"});function l(a,b,c){k.debug({tag:a,...s(c)},b)}function m(a,b,c){k.info({tag:a,...s(c)},b)}function n(a,b,c){k.warn({tag:a,...s(c)},b)}function o(a,b,c){k.error({tag:a,...s(c)},b)}function p(a,b,c){k.info({tag:"HTTP",method:a,path:b,...s(c)},`📥 ${a} ${b}`)}function q(a,b,c){k[a<400?"info":"error"]({tag:"HTTP",status:a,duration:b,...s(c)},`📤 ${a} (${b}ms)`)}function r(a,b){k.debug({tag:"STREAM",event:a,...s(b)},`🌊 ${a}`)}function s(a){return a?"string"==typeof a?{detail:a}:"object"==typeof a?a:{detail:String(a)}:{}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92556:(a,b,c)=>{c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
|