omniroute 1.4.5 → 1.4.9
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 +90 -8
- package/README.pt-BR.md +1 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +26 -26
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -676
- package/app/.next/required-server-files.json +4 -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 +1 -1
- 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/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 +1 -1
- 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 +1 -1
- 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/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/profile/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/_global-error/page.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.js +1 -1
- 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/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_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_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_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 +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 +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 +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_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_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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- 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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.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/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_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.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route_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_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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/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_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.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/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/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.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 +1 -1
- 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 +1 -1
- 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/page.js +1 -1
- 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 +1 -1
- 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/terms/page.js +1 -1
- 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 +26 -26
- package/app/.next/server/chunks/1259.js +2 -0
- package/app/.next/server/chunks/1960.js +1 -0
- package/app/.next/server/chunks/1990.js +1 -0
- package/app/.next/server/chunks/2767.js +2 -2
- package/app/.next/server/chunks/2901.js +2 -2
- package/app/.next/server/chunks/3447.js +1 -1
- package/app/.next/server/chunks/3498.js +39 -0
- package/app/.next/server/chunks/3596.js +1 -1
- package/app/.next/server/chunks/3699.js +1 -1
- package/app/.next/server/chunks/{1079.js → 3875.js} +3 -1
- package/app/.next/server/chunks/4509.js +1 -0
- package/app/.next/server/chunks/5248.js +1 -1
- package/app/.next/server/chunks/5573.js +1 -1
- package/app/.next/server/chunks/7544.js +1 -1
- package/app/.next/server/chunks/7669.js +1 -3
- package/app/.next/server/chunks/8020.js +1 -1
- package/app/.next/server/chunks/9340.js +1 -0
- package/app/.next/server/chunks/9342.js +1 -1
- package/app/.next/server/chunks/9824.js +3 -3
- package/app/.next/server/instrumentation.js +1 -1
- package/app/.next/server/middleware.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/pages-manifest.json +0 -1
- 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/3418-66271bd83bd2e66a.js +3 -0
- package/app/.next/static/chunks/5846-756d72eb0e01a60c.js +2 -0
- package/app/.next/static/chunks/{1149-fefe7f95f0e9842f.js → 6458-085536744d592424.js} +1 -1
- package/app/.next/static/chunks/993-961f6e199b93539a.js +21 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-3fcbbdb2221f0b0c.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-d806e4f28c15636a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-27bc511cf3930e1e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-918d5f38d5cdbbc2.js → page-012be9f38cda4c4a.js} +4 -4
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-ede2315b6918315e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-f256689b8410bd74.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-6e4f3ca7ac9778be.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-8725f1a181e558a3.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-a5a48afa8c125ada.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-6ee69634597daee0.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-931fa0c45dca76c9.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-04bc41f9e9de17ef.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-62c6fceede3a5549.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-2dc2a865e90681dd.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-ac85ce5066cd9044.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-88cac9e6f2fbe335.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-77158451270c1852.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-75c8b38a55e13042.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-51a813eac9d71eed.js → page-f0809c7842e4f5b4.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-b23c2c5427e04dcf.js +1 -0
- package/app/.next/static/chunks/app/callback/page-e439cd5a287000d8.js +1 -0
- package/app/.next/static/chunks/app/forbidden/page-4a39fedc08aaaf55.js +1 -0
- package/app/.next/static/chunks/app/forgot-password/page-057ea91c6f140e0b.js +1 -0
- package/app/.next/static/chunks/app/layout-108592eafb959363.js +1 -0
- package/app/.next/static/chunks/app/login/page-c1d7bfab91a7877c.js +1 -0
- package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/app/package.json +2 -1
- package/app/server.js +1 -1
- package/package.json +2 -1
- package/app/.next/server/app/_not-found.html +0 -1
- package/app/.next/server/app/_not-found.meta +0 -16
- package/app/.next/server/app/_not-found.rsc +0 -23
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +0 -23
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -4
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/callback.html +0 -1
- package/app/.next/server/app/callback.meta +0 -15
- package/app/.next/server/app/callback.rsc +0 -24
- package/app/.next/server/app/callback.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/callback.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/callback.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/callback.segments/callback.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/analytics.html +0 -2
- package/app/.next/server/app/dashboard/analytics.meta +0 -17
- package/app/.next/server/app/dashboard/analytics.rsc +0 -26
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +0 -26
- package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/api-manager.html +0 -1
- package/app/.next/server/app/dashboard/api-manager.meta +0 -17
- package/app/.next/server/app/dashboard/api-manager.rsc +0 -22
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/api-manager.segments/_full.segment.rsc +0 -22
- package/app/.next/server/app/dashboard/api-manager.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/api-manager.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/api-manager.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/audit-log.html +0 -1
- package/app/.next/server/app/dashboard/audit-log.meta +0 -17
- package/app/.next/server/app/dashboard/audit-log.rsc +0 -25
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/audit-log.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/audit-log.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/audit-log.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/audit-log.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/cli-tools.html +0 -1
- package/app/.next/server/app/dashboard/cli-tools.meta +0 -17
- package/app/.next/server/app/dashboard/cli-tools.rsc +0 -23
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +0 -23
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/combos.html +0 -1
- package/app/.next/server/app/dashboard/combos.meta +0 -17
- package/app/.next/server/app/dashboard/combos.rsc +0 -25
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/costs.html +0 -1
- package/app/.next/server/app/dashboard/costs.meta +0 -17
- package/app/.next/server/app/dashboard/costs.rsc +0 -25
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/endpoint.html +0 -1
- package/app/.next/server/app/dashboard/endpoint.meta +0 -17
- package/app/.next/server/app/dashboard/endpoint.rsc +0 -23
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +0 -23
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/health.html +0 -1
- package/app/.next/server/app/dashboard/health.meta +0 -17
- package/app/.next/server/app/dashboard/health.rsc +0 -25
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/limits.html +0 -2
- package/app/.next/server/app/dashboard/limits.meta +0 -17
- package/app/.next/server/app/dashboard/limits.rsc +0 -25
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/logs.html +0 -1
- package/app/.next/server/app/dashboard/logs.meta +0 -17
- package/app/.next/server/app/dashboard/logs.rsc +0 -25
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/logs.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/logs.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/logs.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/logs.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/onboarding.html +0 -1
- package/app/.next/server/app/dashboard/onboarding.meta +0 -17
- package/app/.next/server/app/dashboard/onboarding.rsc +0 -25
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/profile.html +0 -1
- package/app/.next/server/app/dashboard/profile.meta +0 -19
- package/app/.next/server/app/dashboard/profile.rsc +0 -22
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +0 -22
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers/new.html +0 -2
- package/app/.next/server/app/dashboard/providers/new.meta +0 -18
- package/app/.next/server/app/dashboard/providers/new.rsc +0 -27
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers.html +0 -2
- package/app/.next/server/app/dashboard/providers.meta +0 -17
- package/app/.next/server/app/dashboard/providers.rsc +0 -27
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings/pricing.html +0 -2
- package/app/.next/server/app/dashboard/settings/pricing.meta +0 -18
- package/app/.next/server/app/dashboard/settings/pricing.rsc +0 -27
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings.html +0 -1
- package/app/.next/server/app/dashboard/settings.meta +0 -17
- package/app/.next/server/app/dashboard/settings.rsc +0 -27
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/translator.html +0 -19
- package/app/.next/server/app/dashboard/translator.meta +0 -17
- package/app/.next/server/app/dashboard/translator.rsc +0 -22
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +0 -22
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/usage.html +0 -1
- package/app/.next/server/app/dashboard/usage.meta +0 -17
- package/app/.next/server/app/dashboard/usage.rsc +0 -25
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/docs.html +0 -1
- package/app/.next/server/app/docs.meta +0 -15
- package/app/.next/server/app/docs.rsc +0 -88
- package/app/.next/server/app/docs.segments/_full.segment.rsc +0 -88
- package/app/.next/server/app/docs.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/docs.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/docs.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +0 -67
- package/app/.next/server/app/docs.segments/docs.segment.rsc +0 -4
- package/app/.next/server/app/forbidden.html +0 -1
- package/app/.next/server/app/forbidden.meta +0 -15
- package/app/.next/server/app/forbidden.rsc +0 -24
- package/app/.next/server/app/forbidden.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/forbidden.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/forbidden.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +0 -4
- package/app/.next/server/app/forgot-password.html +0 -1
- package/app/.next/server/app/forgot-password.meta +0 -15
- package/app/.next/server/app/forgot-password.rsc +0 -24
- package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +0 -4
- package/app/.next/server/app/index.html +0 -1
- package/app/.next/server/app/index.meta +0 -16
- package/app/.next/server/app/index.rsc +0 -21
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/index.segments/_full.segment.rsc +0 -21
- package/app/.next/server/app/index.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/index.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/index.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/landing.html +0 -1
- package/app/.next/server/app/landing.meta +0 -15
- package/app/.next/server/app/landing.rsc +0 -24
- package/app/.next/server/app/landing.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/landing.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/landing.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/landing.segments/landing.segment.rsc +0 -4
- package/app/.next/server/app/login.html +0 -1
- package/app/.next/server/app/login.meta +0 -15
- package/app/.next/server/app/login.rsc +0 -24
- package/app/.next/server/app/login.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/login.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/login.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/login.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/login.segments/login.segment.rsc +0 -4
- package/app/.next/server/app/privacy.html +0 -1
- package/app/.next/server/app/privacy.meta +0 -15
- package/app/.next/server/app/privacy.rsc +0 -28
- package/app/.next/server/app/privacy.segments/_full.segment.rsc +0 -28
- package/app/.next/server/app/privacy.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/privacy.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/privacy.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +0 -11
- package/app/.next/server/app/privacy.segments/privacy.segment.rsc +0 -4
- package/app/.next/server/app/terms.html +0 -1
- package/app/.next/server/app/terms.meta +0 -15
- package/app/.next/server/app/terms.rsc +0 -29
- package/app/.next/server/app/terms.segments/_full.segment.rsc +0 -29
- package/app/.next/server/app/terms.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/terms.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/terms.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +0 -7
- package/app/.next/server/app/terms.segments/terms.segment.rsc +0 -4
- package/app/.next/server/chunks/2760.js +0 -1
- package/app/.next/server/chunks/438.js +0 -1
- package/app/.next/server/chunks/9723.js +0 -37
- package/app/.next/server/chunks/9979.js +0 -2
- package/app/.next/server/pages/404.html +0 -1
- package/app/.next/static/chunks/5846-8a4d88e4bc5e07f6.js +0 -2
- package/app/.next/static/chunks/993-4cb24412f8681dc9.js +0 -21
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-f8b57e41a1b6fce6.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-10e24238da560d00.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c37f849e39b1bf02.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-f017a1a13b450ed3.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-9495b294cfe54d73.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-90f0a2f2cfc02a76.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-58ea3e55f475ea7b.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-2a3cd7fd5ca34713.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-88e667cb7ae99420.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-19072ecdea202e4e.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-d2651dc387e7fdfd.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-56e8174ce9caec1b.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-200bed170f9ee2b0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-7fec684a49291104.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-06d076294b449efb.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-1b3f14c99d3edf09.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-775e1506821cac94.js +0 -4
- package/app/.next/static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js +0 -1
- package/app/.next/static/chunks/app/callback/page-5c58a06902dd94ed.js +0 -1
- package/app/.next/static/chunks/app/forbidden/page-86b6392f80a3ff69.js +0 -1
- package/app/.next/static/chunks/app/forgot-password/page-373672767bb0aae4.js +0 -1
- package/app/.next/static/chunks/app/layout-3375493e8f9133db.js +0 -1
- package/app/.next/static/chunks/app/login/page-ca4dde4376ccd169.js +0 -1
- /package/app/.next/static/{5wRmzcux4mm_n3yTB8RLl → oaQaCPrOo77oe3OAEMAe-}/_buildManifest.js +0 -0
- /package/app/.next/static/{5wRmzcux4mm_n3yTB8RLl → oaQaCPrOo77oe3OAEMAe-}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
exports.id=1259,exports.ids=[1259],exports.modules={3845:(a,b,c)=>{var d={"./en.json":[31960,1960],"./pt-BR.json":[41990,1990]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=3845,a.exports=e},7224:(a,b,c)=>{Promise.resolve().then(c.bind(c,67045))},8979:(a,b,c)=>{"use strict";c.r(b),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/app/not-found.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/app/not-found.tsx","default")},12608:(a,b,c)=>{Promise.resolve().then(c.bind(c,8979))},17084:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>o,DI:()=>l,fg:()=>j,MA:()=>p,IS:()=>h,zN:()=>i,JH:()=>k,wb:()=>s,wG:()=>r,zt:()=>q,gb:()=>n,mq:()=>m});var d=c(60258);let e=d.Ikc({id:d.YjP().min(1),alias:d.YjP().min(1),name:d.YjP().min(1),icon:d.YjP().min(1),color:d.YjP().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:d.YjP().optional(),website:d.YjP().url().optional(),passthroughModels:d.zMY().optional()}),f=d.g1P(d.YjP(),e);function g(a,b){let c=f.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
|
|
2
|
+
${a}`),Error(`Provider validation failed for ${b}`)}}let h={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},j={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"}},k="openai-compatible-",l="anthropic-compatible-";function m(a){return"string"==typeof a&&a.startsWith(k)}function n(a){return"string"==typeof a&&a.startsWith(l)}let o={...h,...i,...j},p={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function q(a){for(let b of Object.values(o))if(b.alias===a||b.id===a)return b;return null}function r(a){let b=o[a];return b?.alias||a}Object.values(o).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(o).reduce((a,b)=>(a[b.id]=b.alias,a),{});let s=["antigravity","kiro","github","codex","claude"];g(h,"FREE_PROVIDERS"),g(i,"OAUTH_PROVIDERS"),g(j,"APIKEY_PROVIDERS")},21280:(a,b,c)=>{"use strict";c.d(b,{S_:()=>m});var d=c(22901),e=c(87068);let f="[HealthCheck]",g=null,h=0,i=null;async function j(){let a=Date.now();return null!==g&&a-h<3e4?g:null!==i?i:i=(async()=>{try{let b=await (0,d.V7)();return g=!0===b.hideHealthCheckLogs,h=a,g}catch{return!1}finally{i=null}})()}function k(a,...b){j().then(c=>{c||console.log(a,...b)})}function l(a,...b){j().then(c=>{c||console.error(a,...b)})}function m(){g=null,h=0}let n=!1;async function o(){try{let a=await (0,d.getProviderConnections)({authType:"oauth"});if(!a||0===a.length)return;for(let b of a)try{await p(b)}catch(a){l(`${f} Error checking ${b.name||b.id}:`,a.message)}}catch(a){l(`${f} Sweep error:`,a.message)}}async function p(a){let b=a.healthCheckInterval??60;if(b<=0||!a.isActive||!a.refreshToken||"string"!=typeof a.refreshToken||"expired"===a.testStatus)return;if(!(0,e.Ny)(a.provider)){let b=new Date().toISOString();await (0,d.rj)(a.id,{lastHealthCheckAt:b}),k(`${f} Skipping ${a.provider}/${a.name||a.email||a.id} (refresh unsupported)`);return}let c=a.lastHealthCheckAt?new Date(a.lastHealthCheckAt).getTime():0;if(Date.now()-c<60*b*1e3)return;k(`${f} Refreshing ${a.provider}/${a.name||a.email||a.id} (interval: ${b}min)`);let g={refreshToken:a.refreshToken,accessToken:a.accessToken,expiresAt:a.tokenExpiresAt,providerSpecificData:a.providerSpecificData},h=await j(),i=await (0,e.iD)(a.provider,g,{info:(a,b)=>{h||console.log(`${f} [${a}] ${b}`)},warn:(a,b)=>{h||console.warn(`${f} [${a}] ${b}`)},error:(a,b,c)=>{h||console.error(`${f} [${a}] ${b}`,c||"")}}),m=new Date().toISOString();if((0,e.jT)(i)){await (0,d.rj)(a.id,{lastHealthCheckAt:m,testStatus:"expired",lastError:`Refresh token consumed (${i.error}). Please re-authenticate this account.`,lastErrorAt:m,lastErrorType:i.error,lastErrorSource:"oauth",errorCode:i.error,isActive:!1,refreshToken:null}),l(`${f} ✗ ${a.provider}/${a.name||a.email||a.id} — Refresh token is permanently invalid (${i.error}). Connection deactivated. Re-authenticate to restore.`);return}if(i&&i.accessToken){let b={accessToken:i.accessToken,lastHealthCheckAt:m,testStatus:"active",lastError:null,lastErrorAt:null,lastErrorType:null,lastErrorSource:null,errorCode:null};i.refreshToken&&(b.refreshToken=i.refreshToken),i.expiresIn&&(b.tokenExpiresAt=new Date(Date.now()+1e3*i.expiresIn).toISOString()),await (0,d.rj)(a.id,b),k(`${f} ✓ ${a.provider}/${a.name||a.email||a.id} refreshed`)}else await (0,d.rj)(a.id,{lastHealthCheckAt:m,testStatus:"error",lastError:"Health check: token refresh failed",lastErrorAt:m,lastErrorType:"token_refresh_failed",lastErrorSource:"oauth",errorCode:"refresh_failed"}),function(a,...b){j().then(c=>{c||console.warn(a,...b)})}(`${f} ✗ ${a.provider}/${a.name||a.email||a.id} refresh failed`)}n=!0,k(`${f} Starting proactive token health-check (tick every 60s)`),setTimeout(()=>{o(),setInterval(o,6e4)},1e4)},32444:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider 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/ThemeProvider.tsx","ThemeProvider")},34017:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(29389),e=c(65573);let f=["en","pt-BR"],g=(0,d.A)(async()=>{let a=await (0,e.UL)(),b=a.get("NEXT_LOCALE")?.value||"";b||(b=(await (0,e.b3)()).get("x-locale")||""),f.includes(b)||(b="en");let d=(await c(3845)(`./${b}.json`)).default;return{locale:b,messages:d}})},39710:(a,b,c)=>{Promise.resolve().then(c.bind(c,97507))},44438:(a,b,c)=>{Promise.resolve().then(c.bind(c,64385))},47695:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(31417),e=c(300),f=c(73959);let g=(0,d.v)()((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c="dark"===b().theme?"light":"dark";a({theme:c})},initTheme:()=>{b().theme}}),{name:f.B2.storageKey}))},47825:(a,b,c)=>{"use strict";c.d(b,{KC:()=>d.KC,Xg:()=>d.Xg});var d=c(97319);Object.entries(c(17084).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},49226:(a,b,c)=>{"use strict";c.d(b,{A:()=>k});var d=c(90357),e=c(22901);let f=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||process.env.NEXT_PUBLIC_APP_URL||"http://localhost:20128";class g{constructor(a=null,b=15){this.machineId=a,this.intervalMinutes=b,this.intervalId=null}async initializeMachineId(){this.machineId||(this.machineId=await (0,d.Xj)())}async start(){this.intervalId||(await this.initializeMachineId(),setTimeout(()=>{this.syncWithRetry().catch(()=>{})},3e4),this.intervalId=setInterval(()=>{this.syncWithRetry().catch(()=>{})},60*this.intervalMinutes*1e3))}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}async syncWithRetry(a=1){for(let b=1;b<=a;b++)try{return await this.sync()}catch(d){if(b===a)return null;let c=Math.min(1e3*Math.pow(2,b),1e4);await new Promise(a=>setTimeout(a,c))}}async sync(){if(!await (0,e.Nx)())return null;await this.initializeMachineId();let a=await fetch(`${f}/api/sync/cloud`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:this.machineId,action:"sync"})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Sync failed");return await a.json()}isRunning(){return null!==this.intervalId}}let h=null;async function i(a=null,b=15){return h||(h=new g(a,b)),h}async function j(){try{await (0,e.bI)();let a=await i(null,15);return await a.start(),a}catch(a){throw console.error("[CloudSync] Error initializing scheduler:",a),a}}a=c.hmd(a),c.c[c.s]===a&&j().catch(a=>console.error("[CloudSync] init failed:",a));let k=j},61135:()=>{},64385:(a,b,c)=>{"use strict";c.r(b),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/app/error.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/app/error.tsx","default")},67045:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(48249);function e({error:a,reset:b}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{className:"flex flex-col items-center justify-center min-h-screen p-6 bg-[#0a0a0f] text-[#e0e0e0] font-[system-ui,-apple-system,sans-serif] text-center m-0",children:(0,d.jsxs)("main",{role:"alert","aria-live":"assertive",className:"flex flex-col items-center",children:[(0,d.jsx)("div",{className:"text-[64px] mb-4","aria-hidden":"true",children:"⚠️"}),(0,d.jsx)("h1",{className:"text-[28px] font-bold mb-2",children:"Something went wrong"}),(0,d.jsx)("p",{className:"text-[15px] text-[#888] max-w-[400px] leading-relaxed mb-6",children:"An unexpected error occurred. This has been logged and our team will investigate."}),!1,(0,d.jsx)("button",{onClick:b,"aria-label":"Retry loading the page",className:"px-8 py-3 rounded-[10px] text-white border-none text-sm font-semibold cursor-pointer transition-transform duration-200 shadow-[0_4px_16px_rgba(99,102,241,0.3)] hover:-translate-y-0.5 bg-gradient-to-br from-[#6366f1] to-[#8b5cf6] focus:outline-2 focus:outline-offset-2 focus:outline-[#6366f1]",children:"Try Again"})]})})})}},69199:(a,b,c)=>{Promise.resolve().then(c.bind(c,86392)),Promise.resolve().then(c.bind(c,32444))},73857:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(48249),e=c(2116),f=c.n(e);function g(){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-screen p-6 bg-bg text-text-main text-center",role:"main","aria-labelledby":"not-found-title",children:[(0,d.jsx)("div",{className:"text-[96px] font-extrabold leading-none mb-2 bg-gradient-to-br from-primary to-primary-hover bg-clip-text text-transparent","aria-hidden":"true",children:"404"}),(0,d.jsx)("h1",{id:"not-found-title",className:"text-2xl font-semibold mb-2",children:"Page not found"}),(0,d.jsx)("p",{className:"text-[15px] text-text-muted max-w-[400px] leading-relaxed mb-8",children:"The page you're looking for doesn't exist or has been moved."}),(0,d.jsx)(f(),{href:"/dashboard",className:"px-8 py-3 rounded-xl text-white text-sm font-medium no-underline transition-all duration-200 shadow-warm hover:-translate-y-0.5 bg-gradient-to-br from-primary to-primary-hover hover:shadow-elevated focus:outline-2 focus:outline-offset-2 focus:outline-primary","aria-label":"Return to dashboard",children:"Go to Dashboard"})]})}},73959:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>d.Q2,fg:()=>d.fg,vQ:()=>e,MA:()=>d.MA,zN:()=>d.zN,B2:()=>f});var d=c(17084);c(47825);let e={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:"1.4.9"},f={storageKey:"theme",defaultTheme:"system"}},75146:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(48249);c(67484);var e=c(47695);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},76160:(a,b,c)=>{Promise.resolve().then(c.bind(c,73857))},76537:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,metadata:()=>k});var d=c(5735),e=c(50609),f=c.n(e);c(61135);var g=c(32444);c(91057);var h=c(68625),i=c(62026),j=c(28440);let k={title:"OmniRoute — AI Gateway for Multi-Provider LLMs",description:"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers.",icons:{icon:"/favicon.svg",apple:"/apple-touch-icon.svg"}};async function l({children:a}){let b=await (0,i.A)(),c=await (0,j.A)();return(0,d.jsxs)("html",{lang:b,suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,d.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap",rel:"stylesheet"})]}),(0,d.jsxs)("body",{className:`${f().variable} font-sans antialiased`,suppressHydrationWarning:!0,children:[(0,d.jsx)("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg",children:"Skip to content"}),(0,d.jsx)(h.A,{locale:b,messages:c,children:(0,d.jsx)(g.ThemeProvider,{children:a})})]})]})}},77447:(a,b,c)=>{Promise.resolve().then(c.bind(c,62626)),Promise.resolve().then(c.bind(c,75146))},79369:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},81227:(a,b,c)=>{"use strict";c.r(b),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/app/global-error.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/app/global-error.tsx","default")},89097:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},90357:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},91057:(a,b,c)=>{"use strict";var d=c(49226);c(21280);let e=!1;(async function(){if(!e)try{await (0,d.A)(),e=!0}catch(a){console.error("[ServerInit] Error initializing cloud sync:",a)}return e})().catch(a=>console.error("[CloudSync] ensure failed:",a))},97319:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>g,vq:()=>f,KC:()=>h});let d={claude:{id:"claude",alias:"cc",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},oauth:{clientIdEnv:"CLAUDE_OAUTH_CLIENT_ID",clientIdDefault:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}]},gemini:{id:"gemini",alias:"gemini",format:"gemini",executor:"default",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",urlBuilder:(a,b,c)=>`${a}/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"apikey",authHeader:"x-goog-api-key",oauth:{clientIdEnv:"GEMINI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_OAUTH_CLIENT_SECRET",clientSecretDefault:"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"},models:[{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},"gemini-cli":{id:"gemini-cli",alias:"gc",format:"gemini-cli",executor:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",urlBuilder:(a,b,c)=>`${a}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"oauth",authHeader:"bearer",oauth:{clientIdEnv:"GEMINI_CLI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_CLI_OAUTH_CLIENT_SECRET",clientSecretDefault:"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"},models:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},codex:{id:"codex",alias:"cx",format:"openai-responses",executor:"codex",baseUrl:"https://chatgpt.com/backend-api/codex/responses",authType:"oauth",authHeader:"bearer",headers:{Version:"0.92.0","Openai-Beta":"responses=experimental","User-Agent":"codex-cli/0.92.0 (Windows 10.0.26100; x64)"},oauth:{clientIdEnv:"CODEX_OAUTH_CLIENT_ID",clientIdDefault:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecretEnv:"CODEX_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://auth.openai.com/oauth/token"},models:[{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}]},qwen:{id:"qwen",alias:"qw",format:"openai",executor:"default",baseUrl:"https://portal.qwen.ai/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},oauth:{clientIdEnv:"QWEN_OAUTH_CLIENT_ID",clientIdDefault:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}]},iflow:{id:"iflow",alias:"if",format:"openai",executor:"iflow",baseUrl:"https://apis.iflow.cn/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"iFlow-Cli"},oauth:{clientIdEnv:"IFLOW_OAUTH_CLIENT_ID",clientIdDefault:"10009311001",clientSecretEnv:"IFLOW_OAUTH_CLIENT_SECRET",clientSecretDefault:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-v3.2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"minimax-m2.1",name:"MiniMax M2.1"},{id:"glm-4.7",name:"GLM 4.7"}]},antigravity:{id:"antigravity",alias:"ag",format:"antigravity",executor:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://cloudcode-pa.googleapis.com"],urlBuilder:(a,b,c)=>`${a}${c?"/v1internal:streamGenerateContent?alt=sse":"/v1internal:generateContent"}`,authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"antigravity/1.104.0 darwin/arm64"},oauth:{clientIdEnv:"ANTIGRAVITY_OAUTH_CLIENT_ID",clientIdDefault:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecretEnv:"ANTIGRAVITY_OAUTH_CLIENT_SECRET",clientSecretDefault:"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"},models:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}]},github:{id:"github",alias:"gh",format:"openai",executor:"github",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesBaseUrl:"https://api.githubcopilot.com/responses",authType:"oauth",authHeader:"bearer",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},models:[{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",targetFormat:"openai-responses"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",targetFormat:"openai-responses"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5 (Full ID)"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}]},kiro:{id:"kiro",alias:"kr",format:"kiro",executor:"kiro",baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",authType:"oauth",authHeader:"bearer",headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},oauth:{tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},models:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"}]},cursor:{id:"cursor",alias:"cu",format:"cursor",executor:"cursor",baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",authType:"oauth",authHeader:"bearer",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"1.1.3",models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"}]},openai:{id:"openai",alias:"openai",format:"openai",executor:"default",baseUrl:"https://api.openai.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}]},anthropic:{id:"anthropic",alias:"anthropic",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01"},models:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}]},openrouter:{id:"openrouter",alias:"openrouter",format:"openai",executor:"default",baseUrl:"https://openrouter.ai/api/v1/chat/completions",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},models:[{id:"auto",name:"Auto (Best Available)"}]},glm:{id:"glm",alias:"glm",format:"claude",executor:"default",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.5v",name:"GLM 4.5V (Vision)"},{id:"glm-4.5",name:"GLM 4.5"},{id:"glm-4.5-air",name:"GLM 4.5 Air"},{id:"glm-4-32b",name:"GLM 4 32B"}]},kimi:{id:"kimi",alias:"kimi",format:"openai",executor:"default",baseUrl:"https://api.moonshot.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}]},"kimi-coding":{id:"kimi-coding",alias:"kmc",format:"claude",executor:"default",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},oauth:{clientIdEnv:"KIMI_CODING_OAUTH_CLIENT_ID",clientIdDefault:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",authUrl:"https://auth.kimi.com/api/oauth/device_authorization"},models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}]},kilocode:{id:"kilocode",alias:"kc",format:"openrouter",executor:"openrouter",baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",modelsUrl:"https://api.kilo.ai/api/openrouter/models",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},models:[{id:"openrouter/free",name:"Free Models Router"},{id:"qwen/qwen3-vl-235b-a22b-thinking",name:"Qwen3 VL 235B A22B Thinking"},{id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen/qwen3-vl-30b-a3b-thinking",name:"Qwen3 VL 30B A3B Thinking"},{id:"stepfun/step-3.5-flash:free",name:"StepFun Step 3.5 Flash"},{id:"arcee-ai/trinity-large-preview:free",name:"Arcee AI Trinity Large Preview"},{id:"openai/gpt-4o-mini",name:"GPT-4o Mini"},{id:"openai/gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"openai/gpt-5-nano",name:"GPT-5 Nano"},{id:"openai/gpt-5-mini",name:"GPT-5 Mini"},{id:"anthropic/claude-3-haiku",name:"Claude 3 Haiku"},{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek V3.1"},{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-scout",name:"Llama 4 Scout"},{id:"meta-llama/llama-4-maverick",name:"Llama 4 Maverick"},{id:"qwen/qwen3-8b",name:"Qwen3 8B"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"qwen/qwen3-coder",name:"Qwen3 Coder 480B"},{id:"qwen/qwq-32b",name:"QwQ 32B"},{id:"mistralai/mistral-small-24b-instruct-2501",name:"Mistral Small 3"},{id:"mistralai/mistral-7b-instruct",name:"Mistral 7B"},{id:"x-ai/grok-code-fast-1",name:"Grok Code Fast 1"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"}],passthroughModels:!0},cline:{id:"cline",alias:"cl",format:"openai",executor:"openai",baseUrl:"https://api.cline.bot/api/v1/chat/completions",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",authUrl:"https://api.cline.bot/api/v1/auth/authorize"},extraHeaders:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"}],passthroughModels:!0},minimax:{id:"minimax",alias:"minimax",format:"claude",executor:"default",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",format:"claude",executor:"default",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},deepseek:{id:"deepseek",alias:"ds",format:"openai",executor:"default",baseUrl:"https://api.deepseek.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}]},groq:{id:"groq",alias:"groq",format:"openai",executor:"default",baseUrl:"https://api.groq.com/openai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"}]},xai:{id:"xai",alias:"xai",format:"openai",executor:"default",baseUrl:"https://api.x.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}]},mistral:{id:"mistral",alias:"mistral",format:"openai",executor:"default",baseUrl:"https://api.mistral.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}]},perplexity:{id:"perplexity",alias:"pplx",format:"openai",executor:"default",baseUrl:"https://api.perplexity.ai/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}]},together:{id:"together",alias:"together",format:"openai",executor:"default",baseUrl:"https://api.together.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"}]},fireworks:{id:"fireworks",alias:"fireworks",format:"openai",executor:"default",baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"}]},cerebras:{id:"cerebras",alias:"cerebras",format:"openai",executor:"default",baseUrl:"https://api.cerebras.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},cohere:{id:"cohere",alias:"cohere",format:"openai",executor:"default",baseUrl:"https://api.cohere.com/v2/chat",authType:"apikey",authHeader:"bearer",models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},nvidia:{id:"nvidia",alias:"nvidia",format:"openai",executor:"default",baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"deepseek-ai/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"nvidia/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"deepseek/deepseek-r1",name:"DeepSeek R1"}]},nebius:{id:"nebius",alias:"nebius",format:"openai",executor:"default",baseUrl:"https://api.tokenfactory.nebius.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}]},siliconflow:{id:"siliconflow",alias:"siliconflow",format:"openai",executor:"default",baseUrl:"https://api.siliconflow.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}]},hyperbolic:{id:"hyperbolic",alias:"hyp",format:"openai",executor:"default",baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]}},e=new Map;for(let a of Object.values(d))a.alias&&a.alias!==a.id&&e.set(a.alias,a);let f=function(){let a={};for(let b of Object.values(d))if(b.models&&b.models.length>0){let c=b.alias||b.id;a[c]||(a[c]=b.models)}return a}(),g=function(){let a={};for(let b of Object.values(d))a[b.id]=b.alias||b.id;return a}();function h(a){return f[g[a]||a]||[]}},97496:(a,b,c)=>{Promise.resolve().then(c.bind(c,81227))},97507:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(48249);function e({error:a,reset:b}){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-[60vh] p-6 text-center",role:"alert","aria-live":"assertive",children:[(0,d.jsx)("div",{className:"text-[64px] mb-4","aria-hidden":"true",children:"\uD83D\uDD27"}),(0,d.jsx)("h1",{className:"text-[28px] font-bold mb-2 text-[var(--color-text-main)]",children:"Internal Server Error"}),(0,d.jsx)("p",{className:"text-[15px] text-[var(--color-text-muted)] max-w-[400px] leading-relaxed mb-2",children:"Something went wrong while processing your request. Our team has been notified and is working on a fix."}),a?.digest&&(0,d.jsxs)("p",{className:"text-xs text-[var(--color-text-muted)] mb-6 font-mono",children:["Error ID: ",a.digest]}),!1,(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("button",{onClick:b,"aria-label":"Retry loading the page",className:"px-6 py-2.5 rounded-lg text-white text-sm font-semibold cursor-pointer transition-all duration-200 bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]",children:"Try Again"}),(0,d.jsx)("a",{href:"/dashboard",className:"px-6 py-2.5 rounded-lg text-[var(--color-text-main)] text-sm font-semibold cursor-pointer transition-all duration-200 border border-[var(--color-border)] hover:bg-[var(--color-bg-alt)] no-underline focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]","aria-label":"Return to dashboard",children:"Go to Dashboard"})]})]})}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=1960,exports.ids=[1960],exports.modules={31960:a=>{a.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","delete":"Delete","loading":"Loading...","error":"An error occurred","success":"Success","confirm":"Are you sure?","refresh":"Refresh","close":"Close","add":"Add","edit":"Edit","search":"Search","back":"Back","next":"Next","submit":"Submit","reset":"Reset","copy":"Copy","copied":"Copied!","enabled":"Enabled","disabled":"Disabled","active":"Active","inactive":"Inactive","noData":"No data available","configure":"Configure","manage":"Manage","name":"Name","actions":"Actions","status":"Status","type":"Type","model":"Model","models":"models","provider":"Provider","account":"Account","time":"Time","details":"Details","created":"Created","lastUsed":"Last Used","loadMore":"Load More","noResults":"No results found","reloadPage":"Reload Page","connected":"Connected","disconnected":"Disconnected","notConfigured":"Not configured","testConnection":"Test Connection","enable":"Enable","disable":"Disable","columns":"Columns","newest":"Newest","oldest":"Oldest","all":"All","none":"None","yes":"Yes","no":"No","warning":"Warning","note":"Note","free":"Free","skipToContent":"Skip to content"},"sidebar":{"home":"Home","dashboard":"Dashboard","providers":"Providers","combos":"Combos","usage":"Usage","analytics":"Analytics","costs":"Costs","health":"Health","limits":"Limits & Quotas","cliTools":"CLI Tools","settings":"Settings","translator":"Translator","docs":"Docs","issues":"Issues","endpoint":"Endpoint","apiManager":"API Manager","logs":"Logs","auditLog":"Audit Log","shutdown":"Shutdown","restart":"Restart","shutdownConfirm":"Shut down OmniRoute?","restartConfirm":"Restart OmniRoute?","version":"v{version}","debug":"Debug","system":"System","help":"Help","serverDisconnected":"Server Disconnected","serverDisconnectedMsg":"The proxy server has been stopped or is restarting.","expandSidebar":"Expand sidebar","collapseSidebar":"Collapse sidebar"},"header":{"logout":"Logout","language":"Language","providers":"Providers","providerDescription":"Manage your AI provider connections","combos":"Combos","comboDescription":"Model combos with fallback","usage":"Usage & Analytics","usageDescription":"Monitor your API usage, token consumption, and request logs","analytics":"Analytics","analyticsDescription":"Charts, trends, and evaluation insights","cliTools":"CLI Tools","cliToolsDescription":"Configure CLI tools","home":"Home","homeDescription":"Welcome to OmniRoute","endpoint":"Endpoint","endpointDescription":"API endpoint configuration","settings":"Settings","settingsDescription":"Manage your preferences","openaiCompatible":"OpenAI Compatible","anthropicCompatible":"Anthropic Compatible"},"home":{"quickStart":"Quick Start","quickStartDesc":"Get up and running in 4 steps. Connect providers, route models, monitor everything.","fullDocs":"Full Docs","step1Title":"1. Create API key","step1Desc":"Go to {endpoint} → Registered Keys. Generate one key per environment.","step2Title":"2. Connect providers","step2Desc":"Add accounts in {providers}. Supports OAuth, API Key, and free tiers.","step3Title":"3. Point your client","step3Desc":"Set base URL to {url} in your IDE or API client.","step4Title":"4. Monitor & optimize","step4Desc":"Track tokens, cost and errors in {logs} and {analytics}.","providersOverview":"Providers Overview","configuredOf":"{configured} configured of {total} available providers","noModelsAvailable":"No models available for this provider.","configureFirst":"Configure a connection first in {providers}","configureProvider":"Configure Provider","modelAvailable":"{count} model available","modelsAvailable":"{count} models available","connectionsActive":"{count} connection active","connectionsActivePlural":"{count} connections active","copyModelName":"Copy model name","documentation":"Documentation","healthMonitor":"Health Monitor","reportIssue":"Report issue","activeError":"{active} active \xb7 {errors} error"},"analytics":{"title":"Analytics","overviewDescription":"Monitor your API usage patterns, token consumption, costs, and activity trends across all providers and models.","evalsDescription":"Run evaluation suites to test and validate your LLM endpoints. Compare model quality, detect regressions, and benchmark latency.","overview":"Overview","evals":"Evals"},"apiManager":{"title":"API Keys","createKey":"Create API Key","key":"Key","revokeKey":"Revoke Key","revokeConfirm":"Are you sure you want to revoke this API key?","noKeys":"No API keys yet","noKeysDesc":"Create your first API key to authenticate requests to your endpoint","keyLabel":"Key Label","permissions":"Permissions","expiresAt":"Expires","never":"Never","revoke":"Revoke","showKey":"Show Key","hideKey":"Hide Key","copyKey":"Copy API Key","allModels":"All models","selectedModels":"Selected Models","readOnly":"Read Only","fullAccess":"Full Access","keyManagement":"API Key Management","keyManagementDesc":"Create and manage API keys for authenticating requests to your endpoint","totalKeys":"Total Keys","restricted":"Restricted","totalRequests":"Total Requests","modelsAvailable":"Models Available","registeredKeys":"Registered Keys","keysRegistered":"{count} keys registered","keyRegistered":"{count} key registered","keysSecurityNote":"Each key isolates usage tracking and can be revoked independently. Keys are masked after creation for security.","createFirstKey":"Create Your First Key","name":"Name","usage":"Usage","created":"Created","actions":"Actions","reqs":"reqs","neverUsed":"Never used","deleteConfirm":"Delete this API key?","usageTips":"Usage Tips","tipAuth":"Use API keys in the Authorization header as Bearer YOUR_KEY","tipSecure":"Keys are only shown once during creation — store them securely","tipSeparate":"Create separate keys for different clients or environments","tipRestrict":"Restrict keys to specific models for better security and cost control","keyName":"Key Name","keyNamePlaceholder":"e.g., Production Key, Development Key","keyNameDesc":"Choose a descriptive name to identify this key\'s purpose","keyCreated":"API Key Created","keyCreatedSuccess":"Key created successfully!","keyCreatedNote":"Copy and store this key now — it won\'t be shown again.","done":"Done","savePermissions":"Save Permissions","allowAll":"Allow All","restrict":"Restrict","allowAllInfo":"This key can access all available models.","restrictInfo":"This key can access {selected} of {total} models.","selected":"{count} selected","all":"All","clear":"Clear","searchModels":"Search models by name or provider...","noModelsFound":"No models found","keyNameRequired":"Key name is required","keyNameTooLong":"Key name must be {max} characters or less","keyNameInvalid":"Key name can only contain letters, numbers, spaces, hyphens, and underscores","model":"{count} model","models":"{count} models","permissionsTitle":"Permissions: {name}","allowAllDesc":"This key can access all available models.","restrictDesc":"This key can access {selectedCount} of {totalModels} models.","selectedCount":"{count} selected"},"auditLog":{"title":"Audit Log","searchPlaceholder":"Search actions...","action":"Action","actor":"Actor","target":"Target","ipAddress":"IP Address","timestamp":"Timestamp","noEntries":"No audit entries found","filterByAction":"Filter by action...","filterByActor":"Filter by actor...","description":"Administrative actions and security events","showing":"Showing {count} entries (offset {offset})","previous":"Previous"},"cliTools":{"title":"CLI Tools","noActiveProviders":"No active providers","noActiveProvidersDesc":"Please add and connect providers first to configure CLI tools.","mapModels":"Map Models","testConnection":"Test Connection","connectionStatus":"Connection Status","configureEndpoint":"Configure Endpoint","instructions":"Instructions","modelMapping":"Model Mapping","baseUrl":"Base URL","apiKey":"API Key"},"combos":{"title":"Combos","description":"Create model combos with weighted routing and fallback support","createCombo":"Create Combo","editCombo":"Edit Combo","deleteCombo":"Delete Combo","noModels":"No models","noModelsYet":"No models added yet","addModel":"Add Model","addModelToCombo":"Add Model to Combo","routingStrategy":"Routing Strategy","maxRetries":"Max Retries","timeout":"Timeout (ms)","healthcheck":"Healthcheck","priority":"Priority","fallback":"Fallback","roundRobin":"Round Robin","random":"Random","leastLatency":"Least Latency","comboName":"Combo Name","comboNamePlaceholder":"my-combo","deleteConfirm":"Delete this combo?","noCombosYet":"No combos yet","comboCreated":"Combo created successfully","comboUpdated":"Combo updated successfully","comboDeleted":"Combo deleted","failedCreate":"Failed to create combo","failedUpdate":"Failed to update combo","errorCreating":"Error creating combo","errorUpdating":"Error updating combo","errorDeleting":"Error deleting combo","testFailed":"Test request failed","failedToggle":"Failed to toggle combo","testResults":"Test Results — {name}","resolvedBy":"Resolved by:","more":"+{count} more","reqs":"reqs","success":"success","proxyConfigured":"Proxy configured","copyComboName":"Copy combo name","enableCombo":"Enable combo","disableCombo":"Disable combo","testCombo":"Test combo","duplicate":"Duplicate","proxyConfig":"Proxy configuration","nameRequired":"Name is required","nameInvalid":"Only letters, numbers, -, _, / and . allowed","nameHint":"Letters, numbers, -, _, / and . allowed","priorityDesc":"Sequential fallback: tries model 1 first, then 2, etc.","weightedDesc":"Distributes traffic by weight percentage with fallback","roundRobinDesc":"Circular distribution: each request goes to the next model in rotation","randomDesc":"Uniform random selection, then fallback to remaining models","leastUsedDesc":"Picks the model with fewest requests, balancing load over time","costOptimizedDesc":"Routes to the cheapest model first based on pricing","models":"Models","autoBalance":"Auto-balance","advancedSettings":"Advanced Settings","retryDelay":"Retry Delay (ms)","concurrencyPerModel":"Concurrency / Model","queueTimeout":"Queue Timeout (ms)","advancedHint":"Leave empty to use global defaults. These override per-provider settings.","saving":"Saving...","weighted":"Weighted","leastUsed":"Least-Used","costOpt":"Cost-Opt"},"costs":{"title":"Costs","budget":"Budget","totalCost":"Total Cost","breakdown":"Cost Breakdown","noData":"No cost data","byModel":"By Model","byProvider":"By Provider"},"endpoint":{"title":"API Endpoint","available":"Available Endpoints","cloudProxy":"Cloud Proxy","disableConfirm":"Are you sure you want to disable cloud proxy?","baseUrl":"Base URL","apiKeyLabel":"API Key","registeredKeys":"Registered Keys","chatCompletions":"Chat Completions","responses":"Responses","listModels":"List Models","usingCloudProxy":"Using Cloud Proxy","usingLocalServer":"Using Local Server","machineId":"Machine ID: {id}...","disableCloud":"Disable Cloud","enableCloud":"Enable Cloud","modelsAcrossEndpoints":"{models} models across {endpoints} endpoints","chatDesc":"Streaming & non-streaming chat with all providers","embeddings":"Embeddings","embeddingsDesc":"Text embeddings for search & RAG pipelines","imageGeneration":"Image Generation","imageDesc":"Generate images from text prompts","rerank":"Rerank","rerankDesc":"Rerank documents by relevance to a query","audioTranscription":"Audio Transcription","audioTranscriptionDesc":"Transcribe audio files to text (Whisper)","textToSpeech":"Text to Speech","textToSpeechDesc":"Convert text to natural-sounding speech","moderations":"Moderations","moderationsDesc":"Content moderation and safety classification","enableCloudTitle":"Enable Cloud Proxy","whatYouGet":"What you will get","cloudBenefitAccess":"Access your API from anywhere in the world","cloudBenefitShare":"Share endpoint with your team easily","cloudBenefitPorts":"No need to open ports or configure firewall","cloudBenefitEdge":"Fast global edge network","cloudSessionNote":"Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.","cloudUnstableNote":"Cloud is currently unstable with Claude Code OAuth in some cases.","cloudConnected":"Cloud Proxy connected!","connectingToCloud":"Connecting to cloud...","verifyingConnection":"Verifying connection...","connecting":"Connecting...","verifying":"Verifying...","connected":"Connected!","disableCloudTitle":"Disable Cloud Proxy","disableWarning":"All auth sessions will be deleted from cloud.","syncingData":"Syncing latest data...","disablingCloud":"Disabling cloud...","syncing":"Syncing...","disabling":"Disabling...","cloudConnectedVerified":"Cloud Proxy connected and verified!","connectedVerificationPending":"Connected — verification pending","cloudDisabledSuccess":"Cloud disabled successfully","syncedSuccess":"Synced successfully","failedDisable":"Failed to disable cloud","failedEnable":"Failed to enable cloud"},"health":{"title":"System Health","description":"Real-time monitoring of your OmniRoute instance","healthy":"Healthy","degraded":"Degraded","down":"Down","uptime":"Uptime","memory":"Memory","memoryRss":"Memory (RSS)","heap":"Heap","cpu":"CPU","database":"Database","version":"Version","lastCheck":"Last Check","providerHealth":"Provider Health","systemMetrics":"System Metrics","tokenHealth":"Token Health","refreshAll":"Refresh All","checkNow":"Check Now","loadingHealth":"Loading health data...","failedToLoad":"Failed to load health data: {error}","retry":"Retry","allOperational":"All systems operational","issuesDetected":"System issues detected","latency":"Latency","totalRequests":"Total requests","noDataYet":"No data yet","promptCache":"Prompt Cache","entries":"Entries","hitRate":"Hit Rate","hitsMisses":"Hits / Misses","signatureCache":"Signature Cache","recovering":"Recovering","noCBData":"No circuit breaker data available. Make some requests first.","issuesLabel":"Issues Detected","operational":"Operational","failures":"{count} failure","failuresPlural":"{count} failures","lastFailure":"Last","rateLimitStatus":"Rate Limit Status","activeLimiters":"{count} active limiter","activeLimitersPlural":"{count} active limiters","queued":"Queued","running":"running","activeLockouts":"Active Lockouts","resetConfirm":"Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.","resetting":"Resetting...","resetAll":"Reset All","until":"Until {time}"},"limits":{"title":"Limits & Quotas","rateLimit":"Rate Limit","remaining":"Remaining","requestsPerMinute":"Requests/min","tokensPerMinute":"Tokens/min","dailyLimit":"Daily Limit"},"logs":{"title":"Logs","requestLogs":"Request Logs","proxyLogs":"Proxy Logs","auditLog":"Audit Log","console":"Console","auditLogDesc":"Administrative actions and security events","loading":"Loading...","refresh":"Refresh","filterByAction":"Filter by action...","filterByActor":"Filter by actor...","search":"Search","timestamp":"Timestamp","action":"Action","actor":"Actor","target":"Target","details":"Details","noEntries":"No audit log entries found","previous":"Previous","next":"Next"},"onboarding":{"welcome":"Welcome","security":"Security","test":"Test","ready":"Ready!","setPassword":"Set Password","addProvider":"Add your first provider","getStarted":"Get Started","skip":"Skip","skipWizard":"Skip wizard entirely","skipPassword":"Skip password setup","skipAndContinue":"Skip & Continue","passwordLabel":"Password","confirmPassword":"Confirm Password","enterPassword":"Enter password","confirmPasswordPlaceholder":"Confirm password","passwordsMismatch":"Passwords do not match","setupComplete":"Setup Complete!","goToDashboard":"Go to Dashboard →","welcomeDesc":"OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.","multiProvider":"Multi-Provider","usageTracking":"Usage Tracking","apiKeyMgmt":"API Key Mgmt","securityDesc":"Set a password to protect your dashboard, or skip for now.","providerDesc":"Connect your first AI provider. You can add more later.","apiKeyRequired":"API Key (required)","customUrlOptional":"Custom URL (optional)","testDesc":"Let\'s verify your provider connection works.","runTest":"Run Connection Test","testingConnection":"Testing connection...","connectionSuccessful":"Connection successful! Your provider is ready.","noProviderFound":"No provider found. You can add one from the dashboard later.","testFailed":"Test failed, but you can configure this later.","couldNotTest":"Could not test right now. You can test from the dashboard.","doneDesc":"You\'re all set! Your OmniRoute instance is configured and ready to proxy AI requests.","yourEndpoint":"Your endpoint:","continue":"Continue","retry":"Retry","failedSetPassword":"Failed to set password. Try again.","failedAddProvider":"Failed to add provider. Try again.","connectionError":"Connection error. Please try again."},"providers":{"title":"Providers","addProvider":"Add Provider","editProvider":"Edit Provider","deleteProvider":"Delete Provider","noProviders":"No providers configured","modelAvailability":"Model Availability","accounts":"Accounts","newAccount":"New Account","deleteConfirm":"Are you sure you want to delete this provider?","testing":"Testing...","testSuccess":"Connection successful","testFailed":"Connection failed","available":"Available","unavailable":"Unavailable","unknown":"Unknown","oauthProviders":"OAuth Providers","freeProviders":"Free Providers","apiKeyProviders":"API Key Providers","compatibleProviders":"API Key Compatible Providers","testAll":"Test All","testAllOAuth":"Test all OAuth connections","testAllFree":"Test all Free connections","testAllApiKey":"Test all API Key connections","testAllCompatible":"Test all Compatible connections","connected":"{count} Connected","errorCount":"{count} Error ({code})","errorCountNoCode":"{count} Error","noConnections":"No connections","disabled":"Disabled","enableProvider":"Enable provider","disableProvider":"Disable provider","testResults":"Test Results","noCompatibleYet":"No compatible providers added yet","compatibleHint":"Use the buttons above to add OpenAI or Anthropic compatible endpoints","addOpenAICompatible":"Add OpenAI Compatible","addAnthropicCompatible":"Add Anthropic Compatible","addNewProvider":"Add New Provider","backToProviders":"Back to Providers","configureNewProvider":"Configure a new AI provider to use with your applications.","selectProvider":"Select a provider","selectedProvider":"Selected provider","authMethod":"Authentication Method","apiKeyRequired":"API Key is required","selectProviderRequired":"Please select a provider","enterApiKey":"Enter your API key","apiKeySecure":"Your API key will be encrypted and stored securely.","oauth2Connect":"Connect with OAuth2","oauth2Desc":"Connect your account using OAuth2 authentication.","displayName":"Display Name","displayNamePlaceholder":"e.g., Production API, Dev Environment","displayNameHint":"Optional. A friendly name to identify this configuration.","active":"Active","activeDescription":"Enable this provider for use in your applications","createProvider":"Create Provider","failedCreate":"Failed to create provider","errorOccurred":"An error occurred. Please try again.","modelStatus":"Model Status","allModelsOperational":"All models operational","modelsWithIssues":"{count} model(s) with issues","allModelsNormal":"All models are responding normally.","cooldownCleared":"Cooldown cleared for {model}","failedClearCooldown":"Failed to clear cooldown","loadingAvailability":"Loading model availability...","clearCooldown":"Clear","clearing":"Clearing...","providerTestFailed":"Provider test failed","allTestsPassed":"All {total} tests passed","testSummary":"{passed}/{total} passed, {failed} failed","nameLabel":"Name","prefixLabel":"Prefix","baseUrlLabel":"Base URL","apiTypeLabel":"API Type","prefixHint":"Required. Unique prefix for model names.","nameHint":"Required. A friendly label for this node.","baseUrlHint":"Required. Provider API base URL.","validateConnection":"Validate Connection","validating":"Validating...","connectionValid":"Connection is valid!","connectionFailed":"Connection failed. Check URL and key.","testKeyLabel":"Test API Key","testKeyPlaceholder":"sk-... (for validation only)","providerNotFound":"Provider not found","deleteConnectionConfirm":"Delete this connection?","failedSetAlias":"Failed to set alias","failedSaveConnection":"Failed to save connection","failedSaveConnectionRetry":"Failed to save connection. Please try again.","failedRetestConnection":"Failed to retest connection","deleteCompatibleNodeConfirm":"Delete this {type} Compatible node?","anthropicCompatibleDetails":"Anthropic Compatible Details","openaiCompatibleDetails":"OpenAI Compatible Details","messagesApi":"Messages API","responsesApi":"Responses API","chatCompletions":"Chat Completions","importingModels":"Importing...","importFromModels":"Import from /models","addConnectionToImport":"Add a connection to enable importing.","noModelsConfigured":"No models configured","connectionCount":"{count} connection(s)","fetchingModels":"Fetching available models...","failedFetchModels":"Failed to fetch models","noModelsFound":"No models found","importFailed":"Import failed","noNewModelsAdded":"No new models were added.","adding":"Adding...","importingModelsTitle":"Importing Models","copyModel":"Copy model","removeModel":"Remove model","rateLimitProtected":"Protected","rateLimitUnprotected":"Unprotected","enableRateLimitProtection":"Click to enable rate limit protection","disableRateLimitProtection":"Click to disable rate limit protection","productionKey":"Production Key","enterNewApiKey":"Enter new API key","optional":"Optional"},"settings":{"title":"Settings","general":"General","security":"Security","appearance":"Appearance","routing":"Routing","cache":"Cache","resilience":"Resilience","systemPrompt":"System Prompt","thinkingBudget":"Thinking Budget","proxy":"Proxy","pricing":"Pricing","storage":"Storage","policies":"Policies","ipFilter":"IP Filter","comboDefaults":"Combo Defaults","fallbackChains":"Fallback Chains","changePassword":"Change Password","enablePassword":"Enable Password","darkMode":"Dark Mode","lightMode":"Light Mode","systemTheme":"System Theme","enableCache":"Enable Cache","cacheTTL":"Cache TTL","maxCacheSize":"Max Cache Size","clearCache":"Clear Cache","cacheHits":"Cache Hits","cacheMisses":"Cache Misses","hitRate":"Hit Rate","cacheEntries":"Cache Entries","circuitBreaker":"Circuit Breaker","retryPolicy":"Retry Policy","maxRetries":"Max Retries","retryDelay":"Retry Delay","timeoutMs":"Timeout (ms)","enableSystemPrompt":"Enable System Prompt","systemPromptText":"System Prompt Text","enableThinking":"Enable Thinking","maxThinkingTokens":"Max Thinking Tokens","enableProxy":"Enable Proxy","proxyUrl":"Proxy URL","pricingRates":"Pricing Rates Format","currentPricing":"Current Pricing Overview","loadingPricing":"Loading pricing data...","noPricing":"No pricing data available","input":"Input","output":"Output","cached":"Cached","reasoning":"Reasoning","cacheCreation":"Cache Creation","customPricing":"Custom Pricing","databaseSize":"Database Size","backupDb":"Backup Database","restoreDb":"Restore Database","exportData":"Export Data","importData":"Import Data","clearData":"Clear All Data","clearDataConfirm":"This will permanently delete all data. Are you sure?","enableRequestLogs":"Enable Request Logs","logRetention":"Log Retention","ipWhitelist":"IP Whitelist","ipBlacklist":"IP Blacklist","addIP":"Add IP","savedSuccessfully":"Settings saved successfully","ai":"AI","advanced":"Advanced","localMode":"Local Mode — All data stored on your machine","switchThemes":"Switch between light and dark themes","hideHealthLogs":"Hide Health Check Logs","hideHealthLogsDesc":"When ON, suppress [HealthCheck] messages in server console","promptCache":"Prompt Cache","flushCache":"Flush Cache","flushing":"Flushing…","size":"Size","hits":"Hits","evictions":"Evictions","loadingCacheStats":"Loading cache stats…","globalProxy":"Global Proxy","globalProxyDesc":"Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.","noGlobalProxy":"No global proxy configured","configure":"Configure","globalSystemPrompt":"Global System Prompt","systemPromptDesc":"Injected into all requests at proxy level","saved":"Saved","systemPromptPlaceholder":"Enter system prompt to inject into all requests...","systemPromptHint":"This prompt is prepended to the system message of every request. Use for global instructions, safety guidelines, or response formatting rules.","chars":"{count} chars","thinkingBudgetTitle":"Thinking Budget","thinkingBudgetDesc":"Control AI reasoning token usage across all requests","passthrough":"Passthrough","passthroughDesc":"No changes — client controls thinking budget","auto":"Auto","autoDesc":"Strip all thinking config — let provider decide","custom":"Custom","customDesc":"Set a fixed token budget for all requests","adaptive":"Adaptive","adaptiveDesc":"Scale budget based on request complexity","tokenBudget":"Token Budget","tokens":"tokens","baseEffortLevel":"Base Effort Level","adaptiveHint":"Adaptive mode scales from this base level based on message count, tool usage, and prompt length.","requireLogin":"Require login","requireLoginDesc":"When ON, dashboard requires password. When OFF, access without login.","currentPassword":"Current Password","enterCurrentPassword":"Enter current password","newPassword":"New Password","enterNewPassword":"Enter new password","confirmPassword":"Confirm New Password","confirmPasswordPlaceholder":"Confirm new password","passwordsNoMatch":"Passwords do not match","passwordUpdated":"Password updated successfully","failedUpdatePassword":"Failed to update password","errorOccurred":"An error occurred","updatePassword":"Update Password","setPassword":"Set Password","apiEndpointProtection":"API Endpoint Protection","requireAuthModels":"Require API key for /models","requireAuthModelsDesc":"When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.","blockedProviders":"Blocked Providers","blockedProvidersDesc":"Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.","providersBlocked":"{count} provider(s) blocked from /models","routingStrategy":"Routing Strategy","fillFirst":"Fill First","fillFirstDesc":"Use accounts in priority order","roundRobin":"Round Robin","roundRobinDesc":"Cycle through all accounts","p2c":"P2C","p2cDesc":"Pick 2 random, use the healthier one","random":"Random","randomDesc":"Random account each request","leastUsed":"Least Used","leastUsedDesc":"Pick least recently used account","costOpt":"Cost Opt","costOptDesc":"Prefer cheapest available account","stickyLimit":"Sticky Limit","stickyLimitDesc":"Calls per account before switching","modelAliases":"Model Aliases","modelAliasesDesc":"Wildcard patterns to remap model names • Use * and ?","pattern":"Pattern","targetModel":"Target Model","add":"+ Add","session":"Session","status":"Status","authenticated":"Authenticated","guest":"Guest","loginTime":"Login Time","sessionAge":"Session Age","browser":"Browser","clearLocalData":"Clear Local Data","logout":"Logout","clearLocalDataConfirm":"Clear all local data? This will reset your preferences.","ipAccessControl":"IP Access Control","ipAccessControlDesc":"Block or allow specific IP addresses","addIpAddress":"Add IP Address","block":"+ Block","allow":"+ Allow","blocked":"Blocked ({count})","allowed":"Allowed ({count})","temporaryBans":"Temporary Bans ({count})","minLeft":"{min}m left","auditLog":"Audit Log","searchAuditLogs":"Search audit logs...","failedLoadAuditLog":"Failed to load audit log","noAuditEvents":"No audit events found","action":"Action","actor":"Actor","details":"Details","time":"Time","fallbackChainsTitle":"Fallback Chains","fallbackChainsDesc":"Define provider fallback order per model","addChain":"+ Add Chain","modelName":"Model Name","providersCommaSeparated":"Providers (comma-separated, in priority order)","createChain":"Create Chain","noFallbackChains":"No Fallback Chains","noFallbackChainsDesc":"Create a chain to define provider fallback order for a model.","loadingFallbackChains":"Loading fallback chains...","deleteChainConfirm":"Delete fallback chain for \\"{model}\\"?","chainCreated":"Chain created for {model}","chainDeleted":"Chain deleted for {model}","failedCreateChain":"Failed to create chain","failedDeleteChain":"Failed to delete chain","fillModelAndProviders":"Please fill model name and providers","addAtLeastOneProvider":"Add at least one provider","comboDefaultsTitle":"Combo Defaults","globalComboConfig":"Global combo configuration","defaultStrategy":"Default Strategy","defaultStrategyDesc":"Applied to new combos without explicit strategy","priority":"Priority","weighted":"Weighted","healthCheck":"Health Check","healthCheckDesc":"Pre-check provider availability","trackMetrics":"Track Metrics","trackMetricsDesc":"Record per-combo request metrics","providerOverrides":"Provider Overrides","providerOverridesDesc":"Override timeout and retries per provider. Provider settings override global defaults.","retries":"retries","ms":"ms","saveComboDefaults":"Save Combo Defaults","maxNestingDepth":"Max Nesting Depth","concurrencyPerModel":"Concurrency / Model","queueTimeout":"Queue Timeout (ms)","providerProfiles":"Provider Profiles","providerProfilesDesc":"Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.","oauthProviders":"OAuth Providers","apiKeyProviders":"API Key Providers","transientCooldown":"Transient Cooldown","rateLimitCooldown":"Rate Limit Cooldown","maxBackoffLevel":"Max Backoff Level","cbThreshold":"CB Threshold","cbResetTime":"CB Reset Time","rateLimiting":"Rate Limiting","rateLimitingDesc":"API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.","defaultSafetyNet":"Default Safety Net","rpm":"RPM","minGap":"Min Gap","maxConcurrent":"Max Concurrent","activeLimiters":"Active Limiters","noActiveLimiters":"No active rate limiters yet.","reservoir":"Reservoir","running":"Running","queued":"Queued","circuitBreakers":"Circuit Breakers","tripped":"{count} tripped","healthy":"{count} healthy","resetAll":"Reset All","noCircuitBreakers":"No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.","failures":"{count} failure(s)","policiesLocked":"Policies & Locked Identifiers","allOperational":"All systems operational — no lockouts or tripped breakers","loadingPolicies":"Loading policies...","lockedIdentifiers":"Locked Identifiers","forceUnlock":"Force Unlock","unlocking":"Unlocking...","failedUnlock":"Failed to unlock","loadingResilience":"Loading resilience status...","retry":"Retry","systemStorage":"System & Storage","allDataLocal":"All data stored locally on your machine","databasePath":"Database Path","exportDatabase":"Export Database","exportAll":"Export All (.tar.gz)","importDatabase":"Import Database","confirmDbImport":"Confirm Database Import","confirmDbImportDesc":"This will replace all current data with the content from {file}. A backup will be created automatically before the import.","yesImport":"Yes, Import","lastBackup":"Last Backup","noBackupYet":"No backup yet","backupNow":"Backup Now","backupRestore":"Backup & Restore","viewBackups":"View Backups","hide":"Hide","backupRetentionDesc":"Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.","loadingBackups":"Loading backups...","noBackupsYet":"No backups available yet. Backups will be created automatically when data changes.","backupsAvailable":"{count} backup(s) available","refresh":"Refresh","confirm":"Confirm?","yes":"Yes","no":"No","restore":"Restore","invalidFileType":"Invalid file type. Only .sqlite files are accepted.","noChangesSinceBackup":"No changes since last backup","backupFailed":"Backup failed","restoreFailed":"Restore failed","importFailed":"Import failed","errorDuringRestore":"An error occurred during restore","errorDuringImport":"An error occurred during import","modelPricing":"Model Pricing","modelPricingDesc":"Configure cost rates per model • All rates in $/1M tokens","providers":"Providers","registry":"Registry","priced":"Priced","searchProvidersModels":"Search providers or models...","showAll":"Show All","noProvidersMatch":"No providers match your search.","howPricingWorks":"How Pricing Works","cacheWrite":"Cache Write","unsaved":"unsaved","resetDefaults":"Reset Defaults","saveProvider":"Save Provider","saving":"Saving...","model":"Model","models":"models","withPricing":"with pricing configured","policiesCircuitBreakers":"Policies & Circuit Breakers","activeIssuesDetected":"Active issues detected","off":"Off","resetPricingConfirm":"Reset all pricing for {provider} to defaults?","pricingDescInput":"Input: tokens sent to the model","pricingDescOutput":"Output: tokens generated","pricingDescCached":"Cached: reused input (~50% of input rate)","pricingDescReasoning":"Reasoning: thinking tokens (falls back to Output)","pricingDescCacheWrite":"Cache Write: creating cache entries (falls back to Input)","pricingDescFormula":"Cost = (input \xd7 input_rate) + (output \xd7 output_rate) + (cached \xd7 cached_rate) per million tokens.","pricingSettingsTitle":"Pricing Settings","totalModels":"Total Models","active":"Active","costCalculation":"Cost Calculation","costCalculationDesc":"Costs are calculated based on token usage and pricing rates configured for each model.","pricingFormat":"Pricing Format","pricingFormatDesc":"All rates are in $/1M tokens (dollars per million tokens).","tokenTypes":"Token Types","inputTokenDesc":"Standard prompt tokens","outputTokenDesc":"Completion/response tokens","cachedTokenDesc":"Cached input tokens (typically 50% of input rate)","reasoningTokenDesc":"Special reasoning/thinking tokens (fallback to output rate)","cacheCreationTokenDesc":"Tokens used to create cache entries (fallback to input rate)","customPricingNote":"You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.","editPricing":"Edit Pricing","viewFullDetails":"View Full Details"},"translator":{"title":"Translator","realtime":"Real-Time Translation Activity","chatTester":"Chat Tester","testBench":"Test Bench","recentTranslations":"Recent Translations","noTranslations":"No translations yet","source":"Source","target":"Target","latency":"Latency","formatConverter":"Format Converter","input":"Input","output":"Output","exampleTemplates":"Example Templates","compatibilityTester":"Compatibility Tester","compatibilityReport":"Compatibility Report","pipelineDebugger":"Pipeline Debugger","translationPipeline":"Translation Pipeline","pipelineVisualization":"Pipeline visualization"},"usage":{"title":"Usage","budgetManagement":"Budget Management","apiKey":"API Key","thisMonth":"This Month","setLimits":"Set Limits","totalRequests":"Total requests","noDataYet":"No data yet","entries":"Entries","hitRate":"Hit Rate","hitsMisses":"Hits / Misses","circuitBreakers":"Circuit Breakers","lockedIPs":"Locked IPs","howItWorks":"How It Works","define":"Define","run":"Run","evaluate":"Evaluate","evalSuites":"Evaluation Suites","modelEvals":"Model Evaluations","modelLockouts":"Model Lockouts","noLockouts":"No models currently locked","activeSessions":"Active Sessions","noSessions":"No active sessions","sessionsHint":"Sessions appear as requests flow through the proxy","session":"Session","age":"Age","requests":"Requests","connection":"Connection","providerLimits":"Provider Limits","noProviders":"No Providers Connected","modelQuotas":"Model Quotas","noQuotaData":"No quota data","noQuotaDataAvailable":"No quota data available"},"modals":{"waitingAuth":"Waiting for Authorization","verificationUrl":"Verification URL","yourCode":"Your Code","remoteAccess":"Remote access:","connectedSuccess":"Connected Successfully!","connectionFailed":"Connection Failed","chooseAuthMethod":"Choose your authentication method:","awsBuilderId":"AWS Builder ID","awsIamIdentity":"AWS IAM Identity Center","googleAccount":"Google Account","githubAccount":"GitHub Account","importToken":"Import Token","pasteToken":"Paste refresh token from Kiro IDE.","awsRegion":"AWS Region","autoDetecting":"Auto-detecting tokens...","readingFromCache":"Reading from AWS SSO cache","readingFromCursor":"Reading from Cursor IDE database","initializing":"Initializing...","pricingConfig":"Pricing Configuration","loadingPricing":"Loading pricing data...","pricingRatesFormat":"Pricing Rates Format","noPricingData":"No pricing data available","noModelsFound":"No models found"},"loggers":{"allProviders":"All Providers","allModels":"All Models","allAccounts":"All Accounts","allApiKeys":"All API Keys","allTypes":"All Types","allLevels":"All Levels","modelAZ":"Model A-Z","modelZA":"Model Z-A","loadingLogs":"Loading logs...","loadingProxyLogs":"Loading proxy logs...","noLogEntries":"No log entries found","noPayloadData":"No payload data available for this log entry.","proxyEvent":"Proxy Event","proxy":"Proxy","level":"Level","directNative":"Direct (native)","combo":"Combo","inputTokens":"I:","outputTokens":"O:"},"stats":{"usageOverview":"Usage Overview","outputTokens":"Output Tokens","totalCost":"Total Cost","usageByModel":"Usage by Model","usageByAccount":"Usage by Account","failedToLoad":"Failed to load usage statistics.","tokenHealth":"Token Health","totalOAuth":"Total OAuth","healthy":"Healthy","errored":"Errored","lastCheck":"Last check","noData":"No data","share":"Share","unableToLoad":"Unable to load system metrics","product":"Product","resources":"Resources","company":"Company"},"auth":{"welcome":"Welcome","signIn":"Sign in","enterPassword":"Enter your password to continue","password":"Password","unifiedProxy":"Unified AI API Proxy","passwordNotEnabled":"Password protection is not enabled","resetPassword":"Reset Password","resetDescription":"Choose a method to recover access to your dashboard","stopServer":"Stop the OmniRoute server","processing":"Processing...","pleaseWait":"Please wait while we complete the authorization.","authSuccess":"Authorization Successful!","copyUrl":"Copy This URL","accessDenied":"Access Denied","forgotPassword":"Forgot password?"},"landing":{"allProviders":"All AI Providers","oneEndpoint":"One Endpoint","powerfulFeatures":"Powerful Features","howItWorks":"How OmniRoute Works","installOmniRoute":"Install OmniRoute","openDashboard":"Open Dashboard","routeRequests":"Route Requests","dataLocation":"Data Location:","getStarted":"Get Started","product":"Product","resources":"Resources","legal":"Legal","interactiveDiagram":"Interactive diagram visible on desktop"},"docs":{"title":"Documentation","quickStart":"Quick Start","features":"Features","supportedProviders":"Supported Providers","commonUseCases":"Common Use Cases","clientCompatibility":"Client Compatibility","apiReference":"API Reference","method":"Method","path":"Path","notes":"Notes","modelPrefixes":"Model Prefixes","prefix":"Prefix","troubleshooting":"Troubleshooting","supportsChat":"Supports both chat and responses endpoints.","oauthAutoRefresh":"OAuth connection with automatic token refresh.","fullStreaming":"Full streaming support for all models."},"legal":{"privacyPolicy":"Privacy Policy","termsOfService":"Terms of Service","providerConfigurations":"Provider configurations","apiKeys":"API keys","usageLogs":"Usage logs","applicationSettings":"Application settings","viewExportAnalytics":"View and export usage analytics","clearHistory":"Clear usage history at any time","configureRetention":"Configure log retention policies","backupRestore":"Back up and restore your database"}}')}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=1990,exports.ids=[1990],exports.modules={41990:a=>{a.exports=JSON.parse('{"common":{"save":"Salvar","cancel":"Cancelar","delete":"Excluir","loading":"Carregando...","error":"Ocorreu um erro","success":"Sucesso","confirm":"Tem certeza?","refresh":"Atualizar","close":"Fechar","add":"Adicionar","edit":"Editar","search":"Pesquisar","back":"Voltar","next":"Pr\xf3ximo","submit":"Enviar","reset":"Resetar","copy":"Copiar","copied":"Copiado!","enabled":"Ativado","disabled":"Desativado","active":"Ativo","inactive":"Inativo","noData":"Nenhum dado dispon\xedvel","configure":"Configurar","manage":"Gerenciar","name":"Nome","actions":"A\xe7\xf5es","status":"Status","type":"Tipo","model":"Modelo","models":"modelos","provider":"Provedor","account":"Conta","time":"Tempo","details":"Detalhes","created":"Criado","lastUsed":"\xdaltimo Uso","loadMore":"Carregar Mais","noResults":"Nenhum resultado encontrado","reloadPage":"Recarregar P\xe1gina","connected":"Conectado","disconnected":"Desconectado","notConfigured":"N\xe3o configurado","testConnection":"Testar Conex\xe3o","enable":"Ativar","disable":"Desativar","columns":"Colunas","newest":"Mais Recente","oldest":"Mais Antigo","all":"Todos","none":"Nenhum","yes":"Sim","no":"N\xe3o","warning":"Aviso","note":"Nota","free":"Gratuito","skipToContent":"Pular para conte\xfado"},"sidebar":{"home":"In\xedcio","dashboard":"Painel","providers":"Provedores","combos":"Combos","usage":"Uso","analytics":"An\xe1lises","costs":"Custos","health":"Sa\xfade","limits":"Limites e Cotas","cliTools":"Ferramentas CLI","settings":"Configura\xe7\xf5es","translator":"Tradutor","docs":"Documenta\xe7\xe3o","issues":"Problemas","endpoint":"Endpoint","apiManager":"Gerenciador API","logs":"Logs","auditLog":"Log de Auditoria","shutdown":"Desligar","restart":"Reiniciar","shutdownConfirm":"Desligar o OmniRoute?","restartConfirm":"Reiniciar o OmniRoute?","version":"v{version}","debug":"Depura\xe7\xe3o","system":"Sistema","help":"Ajuda","serverDisconnected":"Servidor Desconectado","serverDisconnectedMsg":"O servidor proxy foi parado ou est\xe1 reiniciando.","expandSidebar":"Expandir barra lateral","collapseSidebar":"Recolher barra lateral"},"header":{"logout":"Sair","language":"Idioma","providers":"Provedores","providerDescription":"Gerencie suas conex\xf5es de provedores de IA","combos":"Combos","comboDescription":"Combos de modelos com fallback","usage":"Uso e An\xe1lises","usageDescription":"Monitore seu uso de API, consumo de tokens e logs de requisi\xe7\xf5es","analytics":"An\xe1lises","analyticsDescription":"Gr\xe1ficos, tend\xeancias e insights de avalia\xe7\xe3o","cliTools":"Ferramentas CLI","cliToolsDescription":"Configurar ferramentas de linha de comando","home":"In\xedcio","homeDescription":"Bem-vindo ao OmniRoute","endpoint":"Endpoint","endpointDescription":"Configura\xe7\xe3o de endpoint da API","settings":"Configura\xe7\xf5es","settingsDescription":"Gerencie suas prefer\xeancias","openaiCompatible":"Compat\xedvel com OpenAI","anthropicCompatible":"Compat\xedvel com Anthropic"},"home":{"quickStart":"In\xedcio R\xe1pido","quickStartDesc":"Comece em 4 passos. Conecte provedores, roteie modelos, monitore tudo.","fullDocs":"Docs Completa","step1Title":"1. Criar chave de API","step1Desc":"V\xe1 em {endpoint} → Chaves Registradas. Gere uma chave por ambiente.","step2Title":"2. Conectar provedores","step2Desc":"Adicione contas em {providers}. Suporta OAuth, API Key e planos gratuitos.","step3Title":"3. Apontar seu cliente","step3Desc":"Defina a URL base como {url} no seu IDE ou cliente de API.","step4Title":"4. Monitorar e otimizar","step4Desc":"Acompanhe tokens, custos e erros em {logs} e {analytics}.","providersOverview":"Vis\xe3o Geral dos Provedores","configuredOf":"{configured} configurados de {total} provedores dispon\xedveis","noModelsAvailable":"Nenhum modelo dispon\xedvel para este provedor.","configureFirst":"Configure uma conex\xe3o primeiro em {providers}","configureProvider":"Configurar Provedor","modelAvailable":"{count} modelo dispon\xedvel","modelsAvailable":"{count} modelos dispon\xedveis","connectionsActive":"{count} conex\xe3o ativa","connectionsActivePlural":"{count} conex\xf5es ativas","copyModelName":"Copiar nome do modelo","documentation":"Documenta\xe7\xe3o","healthMonitor":"Monitor de Sa\xfade","reportIssue":"Reportar problema","activeError":"{active} ativo \xb7 {errors} erro"},"analytics":{"title":"An\xe1lises","overviewDescription":"Monitore padr\xf5es de uso da API, consumo de tokens, custos e tend\xeancias de atividade em todos os provedores e modelos.","evalsDescription":"Execute su\xedtes de avalia\xe7\xe3o para testar e validar seus endpoints LLM. Compare qualidade de modelos, detecte regress\xf5es e fa\xe7a benchmarks de lat\xeancia.","overview":"Vis\xe3o Geral","evals":"Avalia\xe7\xf5es"},"apiManager":{"title":"Chaves de API","createKey":"Criar Chave de API","key":"Chave","revokeKey":"Revogar Chave","revokeConfirm":"Tem certeza que deseja revogar esta chave de API?","noKeys":"Nenhuma chave de API ainda","noKeysDesc":"Crie sua primeira chave de API para autenticar requisi\xe7\xf5es ao seu endpoint","keyLabel":"R\xf3tulo da Chave","permissions":"Permiss\xf5es","expiresAt":"Expira","never":"Nunca","revoke":"Revogar","showKey":"Mostrar Chave","hideKey":"Ocultar Chave","copyKey":"Copiar Chave de API","allModels":"Todos os modelos","selectedModels":"Modelos Selecionados","readOnly":"Somente Leitura","fullAccess":"Acesso Total","keyManagement":"Gerenciamento de Chaves de API","keyManagementDesc":"Crie e gerencie chaves de API para autenticar requisi\xe7\xf5es ao seu endpoint","totalKeys":"Total de Chaves","restricted":"Restrita","totalRequests":"Total de Requisi\xe7\xf5es","modelsAvailable":"Modelos Dispon\xedveis","registeredKeys":"Chaves Registradas","keysRegistered":"{count} chaves registradas","keyRegistered":"{count} chave registrada","keysSecurityNote":"Cada chave isola o rastreamento de uso e pode ser revogada independentemente. As chaves s\xe3o mascaradas ap\xf3s a cria\xe7\xe3o por seguran\xe7a.","createFirstKey":"Crie Sua Primeira Chave","name":"Nome","usage":"Uso","created":"Criado","actions":"A\xe7\xf5es","reqs":"reqs","neverUsed":"Nunca usada","deleteConfirm":"Excluir esta chave de API?","usageTips":"Dicas de Uso","tipAuth":"Use chaves de API no cabe\xe7alho Authorization como Bearer SUA_CHAVE","tipSecure":"As chaves s\xe3o mostradas apenas uma vez durante a cria\xe7\xe3o — armazene-as com seguran\xe7a","tipSeparate":"Crie chaves separadas para diferentes clientes ou ambientes","tipRestrict":"Restrinja chaves a modelos espec\xedficos para maior seguran\xe7a e controle de custos","keyName":"Nome da Chave","keyNamePlaceholder":"ex: Chave de Produ\xe7\xe3o, Chave de Desenvolvimento","keyNameDesc":"Escolha um nome descritivo para identificar o prop\xf3sito desta chave","keyCreated":"Chave de API Criada","keyCreatedSuccess":"Chave criada com sucesso!","keyCreatedNote":"Copie e armazene esta chave agora — ela n\xe3o ser\xe1 mostrada novamente.","done":"Pronto","savePermissions":"Salvar Permiss\xf5es","allowAll":"Permitir Tudo","restrict":"Restringir","allowAllInfo":"Esta chave pode acessar todos os modelos dispon\xedveis.","restrictInfo":"Esta chave pode acessar {selected} de {total} modelos.","selected":"{count} selecionados","all":"Todos","clear":"Limpar","searchModels":"Buscar modelos por nome ou provedor...","noModelsFound":"Nenhum modelo encontrado","keyNameRequired":"Nome da chave \xe9 obrigat\xf3rio","keyNameTooLong":"Nome da chave deve ter {max} caracteres ou menos","keyNameInvalid":"Nome da chave pode conter apenas letras, n\xfameros, espa\xe7os, h\xedfens e sublinhados","model":"{count} modelo","models":"{count} modelos","permissionsTitle":"Permiss\xf5es: {name}","allowAllDesc":"Esta chave pode acessar todos os modelos dispon\xedveis.","restrictDesc":"Esta chave pode acessar {selectedCount} de {totalModels} modelos.","selectedCount":"{count} selecionados"},"auditLog":{"title":"Log de Auditoria","searchPlaceholder":"Buscar a\xe7\xf5es...","action":"A\xe7\xe3o","actor":"Autor","target":"Alvo","ipAddress":"Endere\xe7o IP","timestamp":"Data/Hora","noEntries":"Nenhum registro de auditoria","filterByAction":"Filtrar por a\xe7\xe3o...","filterByActor":"Filtrar por autor...","description":"A\xe7\xf5es administrativas e eventos de seguran\xe7a","showing":"Mostrando {count} entradas (offset {offset})","previous":"Anterior"},"cliTools":{"title":"Ferramentas CLI","noActiveProviders":"Nenhum provedor ativo","noActiveProvidersDesc":"Adicione e conecte provedores primeiro para configurar as ferramentas CLI.","mapModels":"Mapear Modelos","testConnection":"Testar Conex\xe3o","connectionStatus":"Status da Conex\xe3o","configureEndpoint":"Configurar Endpoint","instructions":"Instru\xe7\xf5es","modelMapping":"Mapeamento de Modelos","baseUrl":"URL Base","apiKey":"Chave de API"},"combos":{"title":"Combos","description":"Crie combos de modelos com roteamento ponderado e suporte a fallback","createCombo":"Criar Combo","editCombo":"Editar Combo","deleteCombo":"Excluir Combo","noModels":"Sem modelos","noModelsYet":"Nenhum modelo adicionado","addModel":"Adicionar Modelo","addModelToCombo":"Adicionar Modelo ao Combo","routingStrategy":"Estrat\xe9gia de Roteamento","maxRetries":"M\xe1ximo de Tentativas","timeout":"Timeout (ms)","healthcheck":"Verifica\xe7\xe3o de Sa\xfade","priority":"Prioridade","fallback":"Fallback","roundRobin":"Round Robin","random":"Aleat\xf3rio","leastLatency":"Menor Lat\xeancia","comboName":"Nome do Combo","comboNamePlaceholder":"meu-combo","deleteConfirm":"Excluir este combo?","noCombosYet":"Nenhum combo ainda","comboCreated":"Combo criado com sucesso","comboUpdated":"Combo atualizado com sucesso","comboDeleted":"Combo exclu\xeddo","failedCreate":"Falha ao criar combo","failedUpdate":"Falha ao atualizar combo","errorCreating":"Erro ao criar combo","errorUpdating":"Erro ao atualizar combo","errorDeleting":"Erro ao excluir combo","testFailed":"Requisi\xe7\xe3o de teste falhou","failedToggle":"Falha ao alternar combo","testResults":"Resultados do Teste — {name}","resolvedBy":"Resolvido por:","more":"+{count} mais","reqs":"reqs","success":"sucesso","proxyConfigured":"Proxy configurado","copyComboName":"Copiar nome do combo","enableCombo":"Ativar combo","disableCombo":"Desativar combo","testCombo":"Testar combo","duplicate":"Duplicar","proxyConfig":"Configura\xe7\xe3o de proxy","nameRequired":"Nome \xe9 obrigat\xf3rio","nameInvalid":"Apenas letras, n\xfameros, -, _, / e . permitidos","nameHint":"Letras, n\xfameros, -, _, / e . permitidos","priorityDesc":"Fallback sequencial: tenta modelo 1 primeiro, depois 2, etc.","weightedDesc":"Distribui tr\xe1fego por porcentagem de peso com fallback","roundRobinDesc":"Distribui\xe7\xe3o circular: cada requisi\xe7\xe3o vai para o pr\xf3ximo modelo na rota\xe7\xe3o","randomDesc":"Sele\xe7\xe3o aleat\xf3ria uniforme, depois fallback para modelos restantes","leastUsedDesc":"Escolhe o modelo com menos requisi\xe7\xf5es, equilibrando carga ao longo do tempo","costOptimizedDesc":"Roteia para o modelo mais barato primeiro baseado em pre\xe7os","models":"Modelos","autoBalance":"Auto-balancear","advancedSettings":"Configura\xe7\xf5es Avan\xe7adas","retryDelay":"Intervalo de Tentativa (ms)","concurrencyPerModel":"Concorr\xeancia / Modelo","queueTimeout":"Timeout da Fila (ms)","advancedHint":"Deixe vazio para usar padr\xf5es globais. Estes substituem configura\xe7\xf5es por provedor.","saving":"Salvando...","weighted":"Ponderado","leastUsed":"Menos Usado","costOpt":"Custo-Otim"},"costs":{"title":"Custos","budget":"Or\xe7amento","totalCost":"Custo Total","breakdown":"Detalhamento de Custos","noData":"Sem dados de custo","byModel":"Por Modelo","byProvider":"Por Provedor"},"endpoint":{"title":"Endpoint da API","available":"Endpoints Dispon\xedveis","cloudProxy":"Proxy na Nuvem","disableConfirm":"Tem certeza que deseja desativar o proxy na nuvem?","baseUrl":"URL Base","apiKeyLabel":"Chave de API","registeredKeys":"Chaves Registradas","chatCompletions":"Chat Completions","responses":"Respostas","listModels":"Listar Modelos","usingCloudProxy":"Usando Proxy na Nuvem","usingLocalServer":"Usando Servidor Local","machineId":"ID da M\xe1quina: {id}...","disableCloud":"Desativar Nuvem","enableCloud":"Ativar Nuvem","modelsAcrossEndpoints":"{models} modelos em {endpoints} endpoints","chatDesc":"Chat streaming e n\xe3o-streaming com todos os provedores","embeddings":"Embeddings","embeddingsDesc":"Embeddings de texto para busca e pipelines RAG","imageGeneration":"Gera\xe7\xe3o de Imagens","imageDesc":"Gerar imagens a partir de prompts de texto","rerank":"Rerank","rerankDesc":"Reordenar documentos por relev\xe2ncia a uma consulta","audioTranscription":"Transcri\xe7\xe3o de \xc1udio","audioTranscriptionDesc":"Transcrever arquivos de \xe1udio para texto (Whisper)","textToSpeech":"Texto para Fala","textToSpeechDesc":"Converter texto em fala natural","moderations":"Modera\xe7\xf5es","moderationsDesc":"Modera\xe7\xe3o de conte\xfado e classifica\xe7\xe3o de seguran\xe7a","enableCloudTitle":"Ativar Proxy na Nuvem","whatYouGet":"O que voc\xea ter\xe1","cloudBenefitAccess":"Acesse sua API de qualquer lugar do mundo","cloudBenefitShare":"Compartilhe o endpoint com sua equipe facilmente","cloudBenefitPorts":"Sem necessidade de abrir portas ou configurar firewall","cloudBenefitEdge":"Rede de borda global r\xe1pida","cloudSessionNote":"A nuvem manter\xe1 sua sess\xe3o de autentica\xe7\xe3o por 1 dia. Se n\xe3o usada, ser\xe1 automaticamente exclu\xedda.","cloudUnstableNote":"A nuvem est\xe1 atualmente inst\xe1vel com Claude Code OAuth em alguns casos.","cloudConnected":"Proxy na Nuvem conectado!","connectingToCloud":"Conectando \xe0 nuvem...","verifyingConnection":"Verificando conex\xe3o...","connecting":"Conectando...","verifying":"Verificando...","connected":"Conectado!","disableCloudTitle":"Desativar Proxy na Nuvem","disableWarning":"Todas as sess\xf5es de autentica\xe7\xe3o ser\xe3o exclu\xeddas da nuvem.","syncingData":"Sincronizando dados mais recentes...","disablingCloud":"Desativando nuvem...","syncing":"Sincronizando...","disabling":"Desativando...","cloudConnectedVerified":"Proxy na Nuvem conectado e verificado!","connectedVerificationPending":"Conectado — verifica\xe7\xe3o pendente","cloudDisabledSuccess":"Nuvem desativada com sucesso","syncedSuccess":"Sincronizado com sucesso","failedDisable":"Falha ao desativar nuvem","failedEnable":"Falha ao ativar nuvem"},"health":{"title":"Sa\xfade do Sistema","description":"Monitoramento em tempo real da sua inst\xe2ncia OmniRoute","healthy":"Saud\xe1vel","degraded":"Degradado","down":"Offline","uptime":"Tempo Ativo","memory":"Mem\xf3ria","memoryRss":"Mem\xf3ria (RSS)","heap":"Heap","cpu":"CPU","database":"Banco de Dados","version":"Vers\xe3o","lastCheck":"\xdaltima Verifica\xe7\xe3o","providerHealth":"Sa\xfade dos Provedores","systemMetrics":"M\xe9tricas do Sistema","tokenHealth":"Sa\xfade dos Tokens","refreshAll":"Atualizar Tudo","checkNow":"Verificar Agora","loadingHealth":"Carregando dados de sa\xfade...","failedToLoad":"Falha ao carregar dados de sa\xfade: {error}","retry":"Tentar Novamente","allOperational":"Todos os sistemas operacionais","issuesDetected":"Problemas detectados no sistema","latency":"Lat\xeancia","totalRequests":"Total de requisi\xe7\xf5es","noDataYet":"Sem dados ainda","promptCache":"Cache de Prompt","entries":"Entradas","hitRate":"Taxa de Acerto","hitsMisses":"Acertos / Erros","signatureCache":"Cache de Assinatura","recovering":"Recuperando","noCBData":"Nenhum dado de circuit breaker dispon\xedvel. Fa\xe7a algumas requisi\xe7\xf5es primeiro.","issuesLabel":"Problemas Detectados","operational":"Operacional","failures":"{count} falha","failuresPlural":"{count} falhas","lastFailure":"\xdaltima","rateLimitStatus":"Status de Limite de Taxa","activeLimiters":"{count} limitador ativo","activeLimitersPlural":"{count} limitadores ativos","queued":"Na Fila","running":"executando","activeLockouts":"Bloqueios Ativos","resetConfirm":"Resetar todos os circuit breakers para estado saud\xe1vel? Isso limpar\xe1 todos os contadores de falha e restaurar\xe1 todos os provedores ao status operacional.","resetting":"Resetando...","resetAll":"Resetar Tudo","until":"At\xe9 {time}"},"limits":{"title":"Limites e Cotas","rateLimit":"Limite de Taxa","remaining":"Restante","requestsPerMinute":"Requisi\xe7\xf5es/min","tokensPerMinute":"Tokens/min","dailyLimit":"Limite Di\xe1rio"},"logs":{"title":"Logs","requestLogs":"Logs de Requisi\xe7\xf5es","proxyLogs":"Logs do Proxy","auditLog":"Log de Auditoria","console":"Console","auditLogDesc":"A\xe7\xf5es administrativas e eventos de seguran\xe7a","loading":"Carregando...","refresh":"Atualizar","filterByAction":"Filtrar por a\xe7\xe3o...","filterByActor":"Filtrar por ator...","search":"Buscar","timestamp":"Data/Hora","action":"A\xe7\xe3o","actor":"Ator","target":"Alvo","details":"Detalhes","noEntries":"Nenhuma entrada de log de auditoria encontrada","previous":"Anterior","next":"Pr\xf3ximo"},"onboarding":{"welcome":"Bem-vindo","security":"Seguran\xe7a","test":"Teste","ready":"Pronto!","setPassword":"Definir Senha","addProvider":"Adicione seu primeiro provedor","getStarted":"Come\xe7ar","skip":"Pular","skipWizard":"Pular assistente completamente","skipPassword":"Pular configura\xe7\xe3o de senha","skipAndContinue":"Pular e Continuar","passwordLabel":"Senha","confirmPassword":"Confirmar Senha","enterPassword":"Digite a senha","confirmPasswordPlaceholder":"Confirme a senha","passwordsMismatch":"As senhas n\xe3o coincidem","setupComplete":"Configura\xe7\xe3o Conclu\xedda!","goToDashboard":"Ir para o Painel →","welcomeDesc":"OmniRoute \xe9 seu proxy local de API de IA. Ele roteia requisi\xe7\xf5es para m\xfaltiplos provedores de IA com balanceamento de carga, failover e rastreamento de uso.","multiProvider":"Multi-Provedor","usageTracking":"Rastreamento de Uso","apiKeyMgmt":"Ger. de Chaves API","securityDesc":"Defina uma senha para proteger seu painel, ou pule por enquanto.","providerDesc":"Conecte seu primeiro provedor de IA. Voc\xea pode adicionar mais depois.","apiKeyRequired":"Chave de API (obrigat\xf3rio)","customUrlOptional":"URL personalizada (opcional)","testDesc":"Vamos verificar se a conex\xe3o com seu provedor funciona.","runTest":"Executar Teste de Conex\xe3o","testingConnection":"Testando conex\xe3o...","connectionSuccessful":"Conex\xe3o bem-sucedida! Seu provedor est\xe1 pronto.","noProviderFound":"Nenhum provedor encontrado. Voc\xea pode adicionar um pelo painel depois.","testFailed":"Teste falhou, mas voc\xea pode configurar isso depois.","couldNotTest":"N\xe3o foi poss\xedvel testar agora. Voc\xea pode testar pelo painel.","doneDesc":"Tudo pronto! Sua inst\xe2ncia OmniRoute est\xe1 configurada e pronta para rotear requisi\xe7\xf5es de IA.","yourEndpoint":"Seu endpoint:","continue":"Continuar","retry":"Tentar Novamente","failedSetPassword":"Falha ao definir senha. Tente novamente.","failedAddProvider":"Falha ao adicionar provedor. Tente novamente.","connectionError":"Erro de conex\xe3o. Tente novamente."},"providers":{"title":"Provedores","addProvider":"Adicionar Provedor","editProvider":"Editar Provedor","deleteProvider":"Excluir Provedor","noProviders":"Nenhum provedor configurado","modelAvailability":"Disponibilidade de Modelos","accounts":"Contas","newAccount":"Nova Conta","deleteConfirm":"Tem certeza que deseja excluir este provedor?","testing":"Testando...","testSuccess":"Conex\xe3o bem-sucedida","testFailed":"Falha na conex\xe3o","available":"Dispon\xedvel","unavailable":"Indispon\xedvel","unknown":"Desconhecido","oauthProviders":"Provedores OAuth","freeProviders":"Provedores Gratuitos","apiKeyProviders":"Provedores por Chave de API","compatibleProviders":"Provedores Compat\xedveis por Chave de API","testAll":"Testar Todos","testAllOAuth":"Testar todas as conex\xf5es OAuth","testAllFree":"Testar todas as conex\xf5es gratuitas","testAllApiKey":"Testar todas as conex\xf5es por chave de API","testAllCompatible":"Testar todas as conex\xf5es compat\xedveis","connected":"{count} Conectado(s)","errorCount":"{count} Erro ({code})","errorCountNoCode":"{count} Erro","noConnections":"Sem conex\xf5es","disabled":"Desativado","enableProvider":"Ativar provedor","disableProvider":"Desativar provedor","testResults":"Resultados do Teste","noCompatibleYet":"Nenhum provedor compat\xedvel adicionado","compatibleHint":"Use os bot\xf5es acima para adicionar endpoints compat\xedveis com OpenAI ou Anthropic","addOpenAICompatible":"Adicionar Compat\xedvel OpenAI","addAnthropicCompatible":"Adicionar Compat\xedvel Anthropic","addNewProvider":"Adicionar Novo Provedor","backToProviders":"Voltar para Provedores","configureNewProvider":"Configure um novo provedor de IA para usar com suas aplica\xe7\xf5es.","selectProvider":"Selecione um provedor","selectedProvider":"Provedor selecionado","authMethod":"M\xe9todo de Autentica\xe7\xe3o","apiKeyRequired":"Chave de API \xe9 obrigat\xf3ria","selectProviderRequired":"Selecione um provedor","enterApiKey":"Digite sua chave de API","apiKeySecure":"Sua chave de API ser\xe1 criptografada e armazenada com seguran\xe7a.","oauth2Connect":"Conectar com OAuth2","oauth2Desc":"Conecte sua conta usando autentica\xe7\xe3o OAuth2.","displayName":"Nome de Exibi\xe7\xe3o","displayNamePlaceholder":"ex.: API de Produ\xe7\xe3o, Ambiente Dev","displayNameHint":"Opcional. Um nome amig\xe1vel para identificar esta configura\xe7\xe3o.","active":"Ativo","activeDescription":"Habilitar este provedor para uso em suas aplica\xe7\xf5es","createProvider":"Criar Provedor","failedCreate":"Falha ao criar provedor","errorOccurred":"Ocorreu um erro. Tente novamente.","modelStatus":"Status dos Modelos","allModelsOperational":"Todos os modelos operacionais","modelsWithIssues":"{count} modelo(s) com problemas","allModelsNormal":"Todos os modelos est\xe3o respondendo normalmente.","cooldownCleared":"Cooldown limpo para {model}","failedClearCooldown":"Falha ao limpar cooldown","loadingAvailability":"Carregando disponibilidade dos modelos...","clearCooldown":"Limpar","clearing":"Limpando...","providerTestFailed":"Teste de provedor falhou","allTestsPassed":"Todos os {total} testes passaram","testSummary":"{passed}/{total} passaram, {failed} falharam","nameLabel":"Nome","prefixLabel":"Prefixo","baseUrlLabel":"URL Base","apiTypeLabel":"Tipo de API","prefixHint":"Obrigat\xf3rio. Prefixo \xfanico para nomes de modelos.","nameHint":"Obrigat\xf3rio. Um r\xf3tulo amig\xe1vel para este n\xf3.","baseUrlHint":"Obrigat\xf3rio. URL base da API do provedor.","validateConnection":"Validar Conex\xe3o","validating":"Validando...","connectionValid":"Conex\xe3o v\xe1lida!","connectionFailed":"Falha na conex\xe3o. Verifique URL e chave.","testKeyLabel":"Chave de API de Teste","testKeyPlaceholder":"sk-... (apenas para valida\xe7\xe3o)","providerNotFound":"Provedor n\xe3o encontrado","deleteConnectionConfirm":"Excluir esta conex\xe3o?","failedSetAlias":"Falha ao definir alias","failedSaveConnection":"Falha ao salvar conex\xe3o","failedSaveConnectionRetry":"Falha ao salvar conex\xe3o. Tente novamente.","failedRetestConnection":"Falha ao retestar conex\xe3o","deleteCompatibleNodeConfirm":"Excluir este n\xf3 Compat\xedvel com {type}?","anthropicCompatibleDetails":"Detalhes Compat\xedvel Anthropic","openaiCompatibleDetails":"Detalhes Compat\xedvel OpenAI","messagesApi":"API de Mensagens","responsesApi":"API de Respostas","chatCompletions":"Chat Completions","importingModels":"Importando...","importFromModels":"Importar de /models","addConnectionToImport":"Adicione uma conex\xe3o para habilitar importa\xe7\xe3o.","noModelsConfigured":"Nenhum modelo configurado","connectionCount":"{count} conex\xe3o(\xf5es)","fetchingModels":"Buscando modelos dispon\xedveis...","failedFetchModels":"Falha ao buscar modelos","noModelsFound":"Nenhum modelo encontrado","importFailed":"Falha na importa\xe7\xe3o","noNewModelsAdded":"Nenhum novo modelo foi adicionado.","adding":"Adicionando...","importingModelsTitle":"Importando Modelos","copyModel":"Copiar modelo","removeModel":"Remover modelo","rateLimitProtected":"Protegido","rateLimitUnprotected":"Desprotegido","enableRateLimitProtection":"Clique para habilitar prote\xe7\xe3o de limite de taxa","disableRateLimitProtection":"Clique para desabilitar prote\xe7\xe3o de limite de taxa","productionKey":"Chave de Produ\xe7\xe3o","enterNewApiKey":"Insira a nova chave API","optional":"Opcional"},"settings":{"title":"Configura\xe7\xf5es","general":"Geral","security":"Seguran\xe7a","appearance":"Apar\xeancia","routing":"Roteamento","cache":"Cache","resilience":"Resili\xeancia","systemPrompt":"Prompt do Sistema","thinkingBudget":"Or\xe7amento de Racioc\xednio","proxy":"Proxy","pricing":"Pre\xe7os","storage":"Armazenamento","policies":"Pol\xedticas","ipFilter":"Filtro de IP","comboDefaults":"Padr\xf5es de Combo","fallbackChains":"Cadeias de Fallback","changePassword":"Alterar Senha","enablePassword":"Ativar Senha","darkMode":"Modo Escuro","lightMode":"Modo Claro","systemTheme":"Tema do Sistema","enableCache":"Ativar Cache","cacheTTL":"TTL do Cache","maxCacheSize":"Tamanho M\xe1ximo do Cache","clearCache":"Limpar Cache","cacheHits":"Acertos de Cache","cacheMisses":"Erros de Cache","hitRate":"Taxa de Acerto","cacheEntries":"Entradas no Cache","circuitBreaker":"Disjuntor","retryPolicy":"Pol\xedtica de Retentativa","maxRetries":"M\xe1ximo de Tentativas","retryDelay":"Intervalo de Retentativa","timeoutMs":"Timeout (ms)","enableSystemPrompt":"Ativar Prompt do Sistema","systemPromptText":"Texto do Prompt do Sistema","enableThinking":"Ativar Racioc\xednio","maxThinkingTokens":"M\xe1ximo de Tokens de Racioc\xednio","enableProxy":"Ativar Proxy","proxyUrl":"URL do Proxy","pricingRates":"Formato de Taxas de Pre\xe7o","currentPricing":"Vis\xe3o Geral de Pre\xe7os Atual","loadingPricing":"Carregando dados de pre\xe7os...","noPricing":"Nenhum dado de pre\xe7o dispon\xedvel","input":"Entrada","output":"Sa\xedda","cached":"Em Cache","reasoning":"Racioc\xednio","cacheCreation":"Cria\xe7\xe3o de Cache","customPricing":"Pre\xe7os Personalizados","databaseSize":"Tamanho do Banco de Dados","backupDb":"Backup do Banco de Dados","restoreDb":"Restaurar Banco de Dados","exportData":"Exportar Dados","importData":"Importar Dados","clearData":"Limpar Todos os Dados","clearDataConfirm":"Isso excluir\xe1 permanentemente todos os dados. Tem certeza?","enableRequestLogs":"Ativar Logs de Requisi\xe7\xe3o","logRetention":"Reten\xe7\xe3o de Logs","ipWhitelist":"Lista de IPs Permitidos","ipBlacklist":"Lista de IPs Bloqueados","addIP":"Adicionar IP","savedSuccessfully":"Configura\xe7\xf5es salvas com sucesso","ai":"IA","advanced":"Avan\xe7ado","localMode":"Modo Local — Todos os dados armazenados na sua m\xe1quina","switchThemes":"Alternar entre temas claro e escuro","hideHealthLogs":"Ocultar Logs de Health Check","hideHealthLogsDesc":"Quando ATIVADO, suprime mensagens [HealthCheck] no console do servidor","promptCache":"Cache de Prompt","flushCache":"Limpar Cache","flushing":"Limpando…","size":"Tamanho","hits":"Acertos","evictions":"Remo\xe7\xf5es","loadingCacheStats":"Carregando estat\xedsticas do cache…","globalProxy":"Proxy Global","globalProxyDesc":"Configure um proxy de sa\xedda global para todas as chamadas de API. Provedores individuais, combos e chaves podem sobrescrever.","noGlobalProxy":"Nenhum proxy global configurado","configure":"Configurar","globalSystemPrompt":"Prompt de Sistema Global","systemPromptDesc":"Injetado em todas as requisi\xe7\xf5es no n\xedvel do proxy","saved":"Salvo","systemPromptPlaceholder":"Digite o prompt de sistema para injetar em todas as requisi\xe7\xf5es...","systemPromptHint":"Este prompt \xe9 adicionado antes da mensagem de sistema de cada requisi\xe7\xe3o. Use para instru\xe7\xf5es globais, diretrizes de seguran\xe7a ou regras de formata\xe7\xe3o.","chars":"{count} caracteres","thinkingBudgetTitle":"Or\xe7amento de Racioc\xednio","thinkingBudgetDesc":"Controle o uso de tokens de racioc\xednio da IA em todas as requisi\xe7\xf5es","passthrough":"Passagem Direta","passthroughDesc":"Sem altera\xe7\xf5es — cliente controla or\xe7amento de racioc\xednio","auto":"Autom\xe1tico","autoDesc":"Remove toda configura\xe7\xe3o de racioc\xednio — provedor decide","custom":"Personalizado","customDesc":"Define um or\xe7amento fixo de tokens para todas as requisi\xe7\xf5es","adaptive":"Adaptativo","adaptiveDesc":"Escala or\xe7amento baseado na complexidade da requisi\xe7\xe3o","tokenBudget":"Or\xe7amento de Tokens","tokens":"tokens","baseEffortLevel":"N\xedvel de Esfor\xe7o Base","adaptiveHint":"Modo adaptativo escala a partir deste n\xedvel base baseado na quantidade de mensagens, uso de ferramentas e tamanho do prompt.","requireLogin":"Exigir login","requireLoginDesc":"Quando ATIVADO, dashboard exige senha. Quando DESATIVADO, acesso sem login.","currentPassword":"Senha Atual","enterCurrentPassword":"Digite a senha atual","newPassword":"Nova Senha","enterNewPassword":"Digite a nova senha","confirmPassword":"Confirmar Nova Senha","confirmPasswordPlaceholder":"Confirme a nova senha","passwordsNoMatch":"As senhas n\xe3o coincidem","passwordUpdated":"Senha atualizada com sucesso","failedUpdatePassword":"Falha ao atualizar senha","errorOccurred":"Ocorreu um erro","updatePassword":"Atualizar Senha","setPassword":"Definir Senha","apiEndpointProtection":"Prote\xe7\xe3o de Endpoint da API","requireAuthModels":"Exigir chave de API para /models","requireAuthModelsDesc":"Quando ATIVADO, o endpoint /v1/models retorna 404 para requisi\xe7\xf5es n\xe3o autenticadas. Impede descoberta de modelos por usu\xe1rios n\xe3o autorizados.","blockedProviders":"Provedores Bloqueados","blockedProvidersDesc":"Ocultar provedores espec\xedficos da resposta /v1/models. Provedores bloqueados n\xe3o aparecer\xe3o nas listagens de modelos.","providersBlocked":"{count} provedor(es) bloqueado(s) do /models","routingStrategy":"Estrat\xe9gia de Roteamento","fillFirst":"Preencher Primeiro","fillFirstDesc":"Usar contas em ordem de prioridade","roundRobin":"Round Robin","roundRobinDesc":"Ciclar entre todas as contas","p2c":"P2C","p2cDesc":"Escolher 2 aleat\xf3rias, usar a mais saud\xe1vel","random":"Aleat\xf3rio","randomDesc":"Conta aleat\xf3ria em cada requisi\xe7\xe3o","leastUsed":"Menos Usado","leastUsedDesc":"Escolher a conta usada menos recentemente","costOpt":"Custo Otimizado","costOptDesc":"Preferir conta mais barata dispon\xedvel","stickyLimit":"Limite Fixo","stickyLimitDesc":"Chamadas por conta antes de trocar","modelAliases":"Aliases de Modelo","modelAliasesDesc":"Padr\xf5es coringa para remapear nomes de modelos • Use * e ?","pattern":"Padr\xe3o","targetModel":"Modelo Alvo","add":"+ Adicionar","session":"Sess\xe3o","status":"Status","authenticated":"Autenticado","guest":"Visitante","loginTime":"Hora do Login","sessionAge":"Dura\xe7\xe3o da Sess\xe3o","browser":"Navegador","clearLocalData":"Limpar Dados Locais","logout":"Sair","clearLocalDataConfirm":"Limpar todos os dados locais? Isso redefinir\xe1 suas prefer\xeancias.","ipAccessControl":"Controle de Acesso por IP","ipAccessControlDesc":"Bloquear ou permitir endere\xe7os IP espec\xedficos","addIpAddress":"Adicionar Endere\xe7o IP","block":"+ Bloquear","allow":"+ Permitir","blocked":"Bloqueados ({count})","allowed":"Permitidos ({count})","temporaryBans":"Banimentos Tempor\xe1rios ({count})","minLeft":"{min}m restantes","auditLog":"Log de Auditoria","searchAuditLogs":"Buscar logs de auditoria...","failedLoadAuditLog":"Falha ao carregar log de auditoria","noAuditEvents":"Nenhum evento de auditoria encontrado","action":"A\xe7\xe3o","actor":"Ator","details":"Detalhes","time":"Hora","fallbackChainsTitle":"Cadeias de Fallback","fallbackChainsDesc":"Definir ordem de fallback de provedores por modelo","addChain":"+ Adicionar Cadeia","modelName":"Nome do Modelo","providersCommaSeparated":"Provedores (separados por v\xedrgula, em ordem de prioridade)","createChain":"Criar Cadeia","noFallbackChains":"Sem Cadeias de Fallback","noFallbackChainsDesc":"Crie uma cadeia para definir a ordem de fallback de provedores para um modelo.","loadingFallbackChains":"Carregando cadeias de fallback...","deleteChainConfirm":"Excluir cadeia de fallback para \\"{model}\\"?","chainCreated":"Cadeia criada para {model}","chainDeleted":"Cadeia exclu\xedda para {model}","failedCreateChain":"Falha ao criar cadeia","failedDeleteChain":"Falha ao excluir cadeia","fillModelAndProviders":"Preencha o nome do modelo e os provedores","addAtLeastOneProvider":"Adicione pelo menos um provedor","comboDefaultsTitle":"Padr\xf5es de Combo","globalComboConfig":"Configura\xe7\xe3o global de combos","defaultStrategy":"Estrat\xe9gia Padr\xe3o","defaultStrategyDesc":"Aplicada a novos combos sem estrat\xe9gia expl\xedcita","priority":"Prioridade","weighted":"Ponderado","healthCheck":"Verifica\xe7\xe3o de Sa\xfade","healthCheckDesc":"Verificar disponibilidade do provedor antes","trackMetrics":"Rastrear M\xe9tricas","trackMetricsDesc":"Registrar m\xe9tricas de requisi\xe7\xe3o por combo","providerOverrides":"Sobrescritas por Provedor","providerOverridesDesc":"Substituir timeout e tentativas por provedor. Configura\xe7\xf5es do provedor substituem os padr\xf5es globais.","retries":"tentativas","ms":"ms","saveComboDefaults":"Salvar Padr\xf5es de Combo","maxNestingDepth":"Profundidade M\xe1x. de Aninhamento","concurrencyPerModel":"Concorr\xeancia / Modelo","queueTimeout":"Timeout da Fila (ms)","providerProfiles":"Perfis de Provedor","providerProfilesDesc":"Configura\xe7\xf5es de resili\xeancia separadas para provedores OAuth (baseados em sess\xe3o) e API Key (medidos). Provedores OAuth t\xeam limites mais rigorosos devido a taxas mais baixas.","oauthProviders":"Provedores OAuth","apiKeyProviders":"Provedores API Key","transientCooldown":"Cooldown Transit\xf3rio","rateLimitCooldown":"Cooldown de Rate Limit","maxBackoffLevel":"N\xedvel M\xe1x. de Backoff","cbThreshold":"Limiar do CB","cbResetTime":"Tempo de Reset do CB","rateLimiting":"Limita\xe7\xe3o de Taxa","rateLimitingDesc":"Provedores API Key s\xe3o automaticamente limitados com padr\xf5es seguros. Limites s\xe3o aprendidos dos cabe\xe7alhos de resposta e se adaptam ao longo do tempo.","defaultSafetyNet":"Rede de Seguran\xe7a Padr\xe3o","rpm":"RPM","minGap":"Intervalo M\xedn.","maxConcurrent":"M\xe1x. Concorrentes","activeLimiters":"Limitadores Ativos","noActiveLimiters":"Nenhum limitador de taxa ativo ainda.","reservoir":"Reservat\xf3rio","running":"Em Execu\xe7\xe3o","queued":"Na Fila","circuitBreakers":"Disjuntores","tripped":"{count} aberto(s)","healthy":"{count} saud\xe1vel(is)","resetAll":"Resetar Todos","noCircuitBreakers":"Nenhum disjuntor ativo ainda. Eles s\xe3o criados automaticamente quando requisi\xe7\xf5es passam pelo pipeline de combos.","failures":"{count} falha(s)","policiesLocked":"Pol\xedticas e Identificadores Bloqueados","allOperational":"Todos os sistemas operacionais — sem bloqueios ou disjuntores ativados","loadingPolicies":"Carregando pol\xedticas...","lockedIdentifiers":"Identificadores Bloqueados","forceUnlock":"For\xe7ar Desbloqueio","unlocking":"Desbloqueando...","failedUnlock":"Falha ao desbloquear","loadingResilience":"Carregando status de resili\xeancia...","retry":"Tentar Novamente","systemStorage":"Sistema e Armazenamento","allDataLocal":"Todos os dados armazenados localmente na sua m\xe1quina","databasePath":"Caminho do Banco de Dados","exportDatabase":"Exportar Banco de Dados","exportAll":"Exportar Tudo (.tar.gz)","importDatabase":"Importar Banco de Dados","confirmDbImport":"Confirmar Importa\xe7\xe3o do Banco","confirmDbImportDesc":"Isso substituir\xe1 todos os dados atuais pelo conte\xfado de {file}. Um backup ser\xe1 criado automaticamente antes da importa\xe7\xe3o.","yesImport":"Sim, Importar","lastBackup":"\xdaltimo Backup","noBackupYet":"Nenhum backup ainda","backupNow":"Backup Agora","backupRestore":"Backup e Restaura\xe7\xe3o","viewBackups":"Ver Backups","hide":"Ocultar","backupRetentionDesc":"Snapshots do banco s\xe3o criados automaticamente antes da restaura\xe7\xe3o e a cada 15 minutos quando h\xe1 altera\xe7\xf5es. Reten\xe7\xe3o: 24 hor\xe1rios + 30 di\xe1rios com rota\xe7\xe3o inteligente.","loadingBackups":"Carregando backups...","noBackupsYet":"Nenhum backup dispon\xedvel ainda. Backups ser\xe3o criados automaticamente quando houver altera\xe7\xf5es.","backupsAvailable":"{count} backup(s) dispon\xedvel(is)","refresh":"Atualizar","confirm":"Confirmar?","yes":"Sim","no":"N\xe3o","restore":"Restaurar","invalidFileType":"Tipo de arquivo inv\xe1lido. Apenas arquivos .sqlite s\xe3o aceitos.","noChangesSinceBackup":"Sem altera\xe7\xf5es desde o \xfaltimo backup","backupFailed":"Falha no backup","restoreFailed":"Falha na restaura\xe7\xe3o","importFailed":"Falha na importa\xe7\xe3o","errorDuringRestore":"Ocorreu um erro durante a restaura\xe7\xe3o","errorDuringImport":"Ocorreu um erro durante a importa\xe7\xe3o","modelPricing":"Pre\xe7os de Modelos","modelPricingDesc":"Configure taxas de custo por modelo • Todas as taxas em $/1M tokens","providers":"Provedores","registry":"Registro","priced":"Com Pre\xe7o","searchProvidersModels":"Buscar provedores ou modelos...","showAll":"Mostrar Todos","noProvidersMatch":"Nenhum provedor corresponde \xe0 sua busca.","howPricingWorks":"Como os Pre\xe7os Funcionam","cacheWrite":"Escrita em Cache","unsaved":"n\xe3o salvo","resetDefaults":"Restaurar Padr\xf5es","saveProvider":"Salvar Provedor","saving":"Salvando...","model":"Modelo","models":"modelos","withPricing":"com pre\xe7o configurado","policiesCircuitBreakers":"Pol\xedticas e Disjuntores","activeIssuesDetected":"Problemas ativos detectados","off":"Desligado","resetPricingConfirm":"Resetar todos os pre\xe7os de {provider} para os padr\xf5es?","pricingDescInput":"Input: tokens enviados ao modelo","pricingDescOutput":"Output: tokens gerados","pricingDescCached":"Cached: input reutilizado (~50% da taxa de input)","pricingDescReasoning":"Reasoning: tokens de racioc\xednio (fallback para Output)","pricingDescCacheWrite":"Cache Write: cria\xe7\xe3o de entradas de cache (fallback para Input)","pricingDescFormula":"Custo = (input \xd7 taxa_input) + (output \xd7 taxa_output) + (cached \xd7 taxa_cached) por milh\xe3o de tokens.","pricingSettingsTitle":"Configura\xe7\xf5es de Pre\xe7os","totalModels":"Total de Modelos","active":"Ativo","costCalculation":"C\xe1lculo de Custo","costCalculationDesc":"Custos s\xe3o calculados com base no uso de tokens e taxas de pre\xe7o configuradas para cada modelo.","pricingFormat":"Formato de Pre\xe7os","pricingFormatDesc":"Todas as taxas s\xe3o em $/1M tokens (d\xf3lares por milh\xe3o de tokens).","tokenTypes":"Tipos de Token","inputTokenDesc":"Tokens de prompt padr\xe3o","outputTokenDesc":"Tokens de conclus\xe3o/resposta","cachedTokenDesc":"Tokens de input em cache (tipicamente 50% da taxa de input)","reasoningTokenDesc":"Tokens especiais de racioc\xednio (fallback para taxa de output)","cacheCreationTokenDesc":"Tokens usados para criar entradas de cache (fallback para taxa de input)","customPricingNote":"Voc\xea pode sobrescrever pre\xe7os padr\xe3o para modelos espec\xedficos. Sobrescritas personalizadas t\xeam prioridade sobre pre\xe7os detectados automaticamente.","editPricing":"Editar Pre\xe7os","viewFullDetails":"Ver Detalhes Completos"},"translator":{"title":"Tradutor","realtime":"Atividade de Tradu\xe7\xe3o em Tempo Real","chatTester":"Testador de Chat","testBench":"Bancada de Testes","recentTranslations":"Tradu\xe7\xf5es Recentes","noTranslations":"Nenhuma tradu\xe7\xe3o ainda","source":"Origem","target":"Destino","latency":"Lat\xeancia","formatConverter":"Conversor de Formato","input":"Entrada","output":"Sa\xedda","exampleTemplates":"Modelos de Exemplo","compatibilityTester":"Testador de Compatibilidade","compatibilityReport":"Relat\xf3rio de Compatibilidade","pipelineDebugger":"Depurador de Pipeline","translationPipeline":"Pipeline de Tradu\xe7\xe3o","pipelineVisualization":"Visualiza\xe7\xe3o do pipeline"},"usage":{"title":"Uso","budgetManagement":"Gerenciamento de Or\xe7amento","apiKey":"Chave de API","thisMonth":"Este M\xeas","setLimits":"Definir Limites","totalRequests":"Total de requisi\xe7\xf5es","noDataYet":"Sem dados ainda","entries":"Entradas","hitRate":"Taxa de Acerto","hitsMisses":"Acertos / Erros","circuitBreakers":"Disjuntores","lockedIPs":"IPs Bloqueados","howItWorks":"Como Funciona","define":"Definir","run":"Executar","evaluate":"Avaliar","evalSuites":"Su\xedtes de Avalia\xe7\xe3o","modelEvals":"Avalia\xe7\xf5es de Modelos","modelLockouts":"Bloqueios de Modelo","noLockouts":"Nenhum modelo bloqueado","activeSessions":"Sess\xf5es Ativas","noSessions":"Sem sess\xf5es ativas","sessionsHint":"Sess\xf5es aparecem conforme requisi\xe7\xf5es passam pelo proxy","session":"Sess\xe3o","age":"Idade","requests":"Requisi\xe7\xf5es","connection":"Conex\xe3o","providerLimits":"Limites do Provedor","noProviders":"Nenhum Provedor Conectado","modelQuotas":"Cotas de Modelo","noQuotaData":"Sem dados de cota","noQuotaDataAvailable":"Nenhum dado de cota dispon\xedvel"},"modals":{"waitingAuth":"Aguardando Autoriza\xe7\xe3o","verificationUrl":"URL de Verifica\xe7\xe3o","yourCode":"Seu C\xf3digo","remoteAccess":"Acesso remoto:","connectedSuccess":"Conectado com Sucesso!","connectionFailed":"Falha na Conex\xe3o","chooseAuthMethod":"Escolha seu m\xe9todo de autentica\xe7\xe3o:","awsBuilderId":"AWS Builder ID","awsIamIdentity":"AWS IAM Identity Center","googleAccount":"Conta Google","githubAccount":"Conta GitHub","importToken":"Importar Token","pasteToken":"Cole o refresh token do Kiro IDE.","awsRegion":"Regi\xe3o AWS","autoDetecting":"Detectando tokens automaticamente...","readingFromCache":"Lendo do cache AWS SSO","readingFromCursor":"Lendo do banco de dados do Cursor IDE","initializing":"Inicializando...","pricingConfig":"Configura\xe7\xe3o de Pre\xe7os","loadingPricing":"Carregando dados de pre\xe7os...","pricingRatesFormat":"Formato de Taxas de Pre\xe7o","noPricingData":"Nenhum dado de pre\xe7o dispon\xedvel","noModelsFound":"Nenhum modelo encontrado"},"loggers":{"allProviders":"Todos os Provedores","allModels":"Todos os Modelos","allAccounts":"Todas as Contas","allApiKeys":"Todas as Chaves de API","allTypes":"Todos os Tipos","allLevels":"Todos os N\xedveis","modelAZ":"Modelo A-Z","modelZA":"Modelo Z-A","loadingLogs":"Carregando logs...","loadingProxyLogs":"Carregando logs do proxy...","noLogEntries":"Nenhuma entrada de log encontrada","noPayloadData":"Nenhum dado de payload dispon\xedvel para esta entrada.","proxyEvent":"Evento do Proxy","proxy":"Proxy","level":"N\xedvel","directNative":"Direto (nativo)","combo":"Combo","inputTokens":"E:","outputTokens":"S:"},"stats":{"usageOverview":"Vis\xe3o Geral de Uso","outputTokens":"Tokens de Sa\xedda","totalCost":"Custo Total","usageByModel":"Uso por Modelo","usageByAccount":"Uso por Conta","failedToLoad":"Falha ao carregar estat\xedsticas de uso.","tokenHealth":"Sa\xfade dos Tokens","totalOAuth":"Total OAuth","healthy":"Saud\xe1vel","errored":"Com Erro","lastCheck":"\xdaltima verifica\xe7\xe3o","noData":"Sem dados","share":"Compartilhar","unableToLoad":"N\xe3o foi poss\xedvel carregar m\xe9tricas do sistema","product":"Produto","resources":"Recursos","company":"Empresa"},"auth":{"welcome":"Bem-vindo","signIn":"Entrar","enterPassword":"Digite sua senha para continuar","password":"Senha","unifiedProxy":"Proxy Unificado de API de IA","passwordNotEnabled":"Prote\xe7\xe3o por senha n\xe3o est\xe1 ativada","resetPassword":"Redefinir Senha","resetDescription":"Escolha um m\xe9todo para recuperar acesso ao painel","stopServer":"Pare o servidor OmniRoute","processing":"Processando...","pleaseWait":"Aguarde enquanto completamos a autoriza\xe7\xe3o.","authSuccess":"Autoriza\xe7\xe3o bem-sucedida!","copyUrl":"Copiar esta URL","accessDenied":"Acesso Negado","forgotPassword":"Esqueceu a senha?"},"landing":{"allProviders":"Todos os Provedores de IA","oneEndpoint":"Um Endpoint","powerfulFeatures":"Recursos Poderosos","howItWorks":"Como o OmniRoute Funciona","installOmniRoute":"Instalar o OmniRoute","openDashboard":"Abrir Painel","routeRequests":"Rotear Requisi\xe7\xf5es","dataLocation":"Local dos Dados:","getStarted":"Come\xe7ar","product":"Produto","resources":"Recursos","legal":"Legal","interactiveDiagram":"Diagrama interativo vis\xedvel no desktop"},"docs":{"title":"Documenta\xe7\xe3o","quickStart":"In\xedcio R\xe1pido","features":"Recursos","supportedProviders":"Provedores Suportados","commonUseCases":"Casos de Uso Comuns","clientCompatibility":"Compatibilidade de Clientes","apiReference":"Refer\xeancia da API","method":"M\xe9todo","path":"Caminho","notes":"Notas","modelPrefixes":"Prefixos de Modelo","prefix":"Prefixo","troubleshooting":"Solu\xe7\xe3o de Problemas","supportsChat":"Suporta endpoints de chat e responses.","oauthAutoRefresh":"Conex\xe3o OAuth com atualiza\xe7\xe3o autom\xe1tica de token.","fullStreaming":"Suporte completo a streaming para todos os modelos."},"legal":{"privacyPolicy":"Pol\xedtica de Privacidade","termsOfService":"Termos de Servi\xe7o","providerConfigurations":"Configura\xe7\xf5es de provedores","apiKeys":"Chaves de API","usageLogs":"Logs de uso","applicationSettings":"Configura\xe7\xf5es do aplicativo","viewExportAnalytics":"Visualizar e exportar an\xe1lises de uso","clearHistory":"Limpar hist\xf3rico de uso a qualquer momento","configureRetention":"Configurar pol\xedticas de reten\xe7\xe3o de logs","backupRestore":"Fazer backup e restaurar seu banco de dados"}}')}};
|