omniroute 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +25 -24
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +27 -3
- package/app/.next/routes-manifest.json +6 -0
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +2 -0
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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_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/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route_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 +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.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.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route.js +1 -1
- package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_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.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route.js +2 -2
- package/app/.next/server/app/api/models/catalog/route.js.nft.json +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 +2 -2
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +2 -2
- package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route.js +1 -1
- package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +2 -2
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +2 -2
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route.js +1 -1
- package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js.nft.json +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.js +1 -1
- package/app/.next/server/app/api/token-health/route.js.nft.json +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.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js.nft.json +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.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js.nft.json +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.js.nft.json +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 +2 -2
- package/app/.next/server/app/api/v1/models/route.js.nft.json +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 +1 -1
- 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/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.html +2 -2
- package/app/.next/server/app/dashboard/analytics.rsc +5 -5
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/api-manager.html +1 -0
- package/app/.next/server/app/dashboard/api-manager.meta +17 -0
- package/app/.next/server/app/dashboard/api-manager.rsc +22 -0
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager/__PAGE__.segment.rsc +6 -0
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager.segment.rsc +4 -0
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/api-manager.segments/_full.segment.rsc +22 -0
- package/app/.next/server/app/dashboard/api-manager.segments/_head.segment.rsc +6 -0
- package/app/.next/server/app/dashboard/api-manager.segments/_index.segment.rsc +10 -0
- package/app/.next/server/app/dashboard/api-manager.segments/_tree.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/audit-log.html +1 -1
- package/app/.next/server/app/dashboard/audit-log.rsc +4 -4
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/audit-log.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/audit-log.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/audit-log.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/audit-log.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/costs.html +1 -1
- package/app/.next/server/app/dashboard/costs.rsc +5 -5
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/health.html +1 -1
- package/app/.next/server/app/dashboard/health.rsc +5 -5
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/limits.html +2 -2
- package/app/.next/server/app/dashboard/limits.rsc +5 -5
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/logs.html +1 -1
- package/app/.next/server/app/dashboard/logs.rsc +5 -5
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/logs.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/logs.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/logs.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/logs.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/onboarding.html +1 -1
- package/app/.next/server/app/dashboard/onboarding.rsc +4 -4
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +2 -2
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +2 -2
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.html +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.html +1 -1
- package/app/.next/server/app/dashboard/settings.rsc +5 -5
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.html +2 -2
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- 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/docs.html +1 -1
- package/app/.next/server/app/docs.rsc +3 -3
- package/app/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/docs.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/app/.next/server/app/forbidden/page.js +1 -1
- 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/forbidden.html +1 -1
- package/app/.next/server/app/forbidden.rsc +3 -3
- package/app/.next/server/app/forbidden.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/forbidden.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
- package/app/.next/server/app/forgot-password/page.js +1 -1
- 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/forgot-password.html +1 -1
- package/app/.next/server/app/forgot-password.rsc +4 -4
- package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- 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/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +1 -1
- 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/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page.js +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/privacy.html +1 -1
- package/app/.next/server/app/privacy.rsc +3 -3
- package/app/.next/server/app/privacy.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/privacy.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/privacy.segments/privacy.segment.rsc +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/terms.html +1 -1
- package/app/.next/server/app/terms.rsc +3 -3
- package/app/.next/server/app/terms.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/terms.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
- package/app/.next/server/app-paths-manifest.json +25 -24
- package/app/.next/server/chunks/1308.js +1 -1
- package/app/.next/server/chunks/2546.js +1 -0
- package/app/.next/server/chunks/2760.js +1 -0
- package/app/.next/server/chunks/2767.js +4 -11
- package/app/.next/server/chunks/2901.js +45 -0
- package/app/.next/server/chunks/3189.js +1 -0
- package/app/.next/server/chunks/3596.js +1 -1
- package/app/.next/server/chunks/{9343.js → 406.js} +3 -3
- package/app/.next/server/chunks/4168.js +8 -0
- package/app/.next/server/chunks/7109.js +1 -8
- package/app/.next/server/chunks/7230.js +2 -2
- package/app/.next/server/chunks/7544.js +1 -1
- package/app/.next/server/chunks/7547.js +1 -0
- package/app/.next/server/chunks/7669.js +1 -1
- package/app/.next/server/chunks/8369.js +1 -1
- package/app/.next/server/chunks/9824.js +1 -1
- package/app/.next/server/chunks/9979.js +1 -1
- package/app/.next/server/middleware.js +2 -2
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/Odj5WRCWNrqe5SAhIbFjc/_buildManifest.js +1 -0
- package/app/.next/static/chunks/5846-e62d1dba0fd91db6.js +2 -0
- package/app/.next/static/chunks/{993-549657c6dd78bae8.js → 993-0fb5100db47366c5.js} +3 -3
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-10e24238da560d00.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ac1f94b31ba2ec2b.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{page-98664026bfb4b4a9.js → page-06d076294b449efb.js} +1 -1
- package/app/.next/static/css/4729a5763a71a003.css +1 -0
- package/app/package.json +2 -2
- package/package.json +2 -2
- package/app/.next/server/chunks/1998.js +0 -1
- package/app/.next/server/chunks/287.js +0 -45
- package/app/.next/server/chunks/560.js +0 -1
- package/app/.next/server/chunks/5994.js +0 -1
- package/app/.next/server/chunks/6120.js +0 -1
- package/app/.next/server/chunks/73.js +0 -1
- package/app/.next/static/9QV1xZdZJ8C8UsEb83WdC/_buildManifest.js +0 -1
- package/app/.next/static/chunks/5846-c2c297076208b979.js +0 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-623e54048b5d4f69.js +0 -1
- package/app/.next/static/css/67c4b9dbfb14fddd.css +0 -1
- /package/app/.next/static/{9QV1xZdZJ8C8UsEb83WdC → Odj5WRCWNrqe5SAhIbFjc}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--9QV1xZdZJ8C8UsEb83WdC--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/67c4b9dbfb14fddd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9837b0fbf7de0b62.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-c9da11a8061df107.js" async=""></script><script src="/_next/static/chunks/8500-98e13bcce54aa7a0.js" async=""></script><script src="/_next/static/chunks/9751-3a35163d337d54ea.js" async=""></script><script src="/_next/static/chunks/782-5e138760b7f7bf48.js" async=""></script><script src="/_next/static/chunks/1149-fefe7f95f0e9842f.js" async=""></script><script src="/_next/static/chunks/5846-c2c297076208b979.js" async=""></script><script src="/_next/static/chunks/993-549657c6dd78bae8.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js" async=""></script><script src="/_next/static/chunks/app/error-0d59fc4efafbc38c.js" async=""></script><script src="/_next/static/chunks/app/not-found-1dbd8c3e506fe00f.js" async=""></script><script src="/_next/static/chunks/app/terms/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-41eef2a698918fc1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" as="style"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="next-size-adjust" content=""/><title>Terms of Service | OmniRoute</title><meta name="description" content="Terms of service for the OmniRoute AI API proxy router."/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.svg"/><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"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><a href="#main-content" class="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">Skip to content</a><main class="min-h-screen bg-bg text-text-main"><div class="max-w-3xl mx-auto px-6 py-16"><a class="inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8" href="/"><span class="material-symbols-outlined text-[18px]">arrow_back</span>Back to home</a><h1 class="text-3xl font-bold mb-2">Terms of Service</h1><p class="text-sm text-text-muted mb-10">Last updated: February 13, 2026</p><div class="space-y-8 text-text-muted leading-relaxed"><section><h2 class="text-lg font-semibold text-text-main mb-3">1. Overview</h2><p>OmniRoute is a <strong class="text-text-main">local-first</strong> AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">2. User Responsibilities</h2><ul class="list-disc pl-6 space-y-2"><li>You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).</li><li>You must comply with the terms of service of each AI provider whose API you access through OmniRoute.</li><li>You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">3. How It Works</h2><p>OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">4. Data Handling</h2><ul class="list-disc pl-6 space-y-2"><li>All data is stored <strong class="text-text-main">locally</strong> on your machine in a SQLite database.</li><li>OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.</li><li>Usage logs, API keys, and configuration are stored in<!-- --> <code class="text-primary text-sm">~/.omniroute/</code>.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">5. Disclaimer</h2><p>OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">6. Open Source</h2><p>OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.</p></section></div><div class="mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted"><p>Questions? Visit our<!-- --> <a href="https://github.com/diegosouzapw/OmniRoute" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">GitHub repository</a>.</p></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[55846,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9751\",\"static/chunks/9751-3a35163d337d54ea.js\",\"782\",\"static/chunks/782-5e138760b7f7bf48.js\",\"1149\",\"static/chunks/1149-fefe7f95f0e9842f.js\",\"5846\",\"static/chunks/5846-c2c297076208b979.js\",\"993\",\"static/chunks/993-549657c6dd78bae8.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[17267,[\"8039\",\"static/chunks/app/error-0d59fc4efafbc38c.js\"],\"default\"]\n5:I[74581,[],\"\"]\n6:I[37145,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-1dbd8c3e506fe00f.js\"],\"default\"]\n7:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"7066\",\"static/chunks/app/terms/page-8f74097544a61b9d.js\"],\"\"]\n10:I[26719,[\"4219\",\"static/chunks/app/global-error-41eef2a698918fc1.js\"],\"default\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/081a0afca5a9bd20.css\",\"style\"]\n:HL[\"/_next/static/css/67c4b9dbfb14fddd.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"9QV1xZdZJ8C8UsEb83WdC\",\"c\":[\"\",\"terms\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"terms\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/67c4b9dbfb14fddd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"a\",null,{\"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\"}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[18px]\",\"children\":\"arrow_back\"}],\"Back to home\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl font-bold mb-2\",\"children\":\"Terms of Service\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mb-10\",\"children\":\"Last updated: February 13, 2026\"}],[\"$\",\"div\",null,{\"className\":\"space-y-8 text-text-muted leading-relaxed\",\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"1. Overview\"}],[\"$\",\"p\",null,{\"children\":[\"OmniRoute is a \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"local-first\"}],\" AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.\"]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"2. User Responsibilities\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":\"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).\"}],[\"$\",\"li\",null,{\"children\":\"You must comply with the terms of service of each AI provider whose API you access through OmniRoute.\"}],[\"$\",\"li\",null,{\"children\":\"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.\"}]]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"3. How It Works\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.\"}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"4. Data Handling\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[\"$L8\",\"$L9\",\"$La\"]}]]}],\"$Lb\",\"$Lc\"]}],\"$Ld\"]}]}],null,\"$Le\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$Lf\",false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[90484,[],\"OutletBoundary\"]\n12:\"$Sreact.suspense\"\n14:I[90484,[],\"ViewportBoundary\"]\n16:I[90484,[],\"MetadataBoundary\"]\n8:[\"$\",\"li\",null,{\"children\":[\"All data is stored \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"locally\"}],\" on your machine in a SQLite database.\"]}]\n9:[\"$\",\"li\",null,{\"children\":\"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.\"}]\na:[\"$\",\"li\",null,{\"children\":[\"Usage logs, API keys, and configuration are stored in\",\" \",[\"$\",\"code\",null,{\"className\":\"text-primary text-sm\",\"children\":\"~/.omniroute/\"}],\".\"]}]\nb:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"5. Disclaimer\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.\"}]]}]\nc:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"6. Open Source\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.\"}]]}]\nd:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted\",\"children\":[\"$\",\"p\",null,{\"children\":[\"Questions? Visit our\",\" \",[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute\",\"className\":\"text-primary hover:underline\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub repository\"}],\".\"]}]}]\ne:[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@13\"}]}]\nf:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L16\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L17\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"18:I[86869,[],\"IconMark\"]\n13:null\n17:[[\"$\",\"title\",\"0\",{\"children\":\"Terms of Service | OmniRoute\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Terms of service for the OmniRoute AI API proxy router.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\"}],[\"$\",\"$L18\",\"4\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--Odj5WRCWNrqe5SAhIbFjc--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/4729a5763a71a003.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9837b0fbf7de0b62.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-c9da11a8061df107.js" async=""></script><script src="/_next/static/chunks/8500-98e13bcce54aa7a0.js" async=""></script><script src="/_next/static/chunks/9751-3a35163d337d54ea.js" async=""></script><script src="/_next/static/chunks/782-5e138760b7f7bf48.js" async=""></script><script src="/_next/static/chunks/1149-fefe7f95f0e9842f.js" async=""></script><script src="/_next/static/chunks/5846-e62d1dba0fd91db6.js" async=""></script><script src="/_next/static/chunks/993-0fb5100db47366c5.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js" async=""></script><script src="/_next/static/chunks/app/error-0d59fc4efafbc38c.js" async=""></script><script src="/_next/static/chunks/app/not-found-1dbd8c3e506fe00f.js" async=""></script><script src="/_next/static/chunks/app/terms/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-41eef2a698918fc1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" as="style"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="next-size-adjust" content=""/><title>Terms of Service | OmniRoute</title><meta name="description" content="Terms of service for the OmniRoute AI API proxy router."/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.svg"/><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"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><a href="#main-content" class="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">Skip to content</a><main class="min-h-screen bg-bg text-text-main"><div class="max-w-3xl mx-auto px-6 py-16"><a class="inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8" href="/"><span class="material-symbols-outlined text-[18px]">arrow_back</span>Back to home</a><h1 class="text-3xl font-bold mb-2">Terms of Service</h1><p class="text-sm text-text-muted mb-10">Last updated: February 13, 2026</p><div class="space-y-8 text-text-muted leading-relaxed"><section><h2 class="text-lg font-semibold text-text-main mb-3">1. Overview</h2><p>OmniRoute is a <strong class="text-text-main">local-first</strong> AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">2. User Responsibilities</h2><ul class="list-disc pl-6 space-y-2"><li>You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).</li><li>You must comply with the terms of service of each AI provider whose API you access through OmniRoute.</li><li>You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">3. How It Works</h2><p>OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">4. Data Handling</h2><ul class="list-disc pl-6 space-y-2"><li>All data is stored <strong class="text-text-main">locally</strong> on your machine in a SQLite database.</li><li>OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.</li><li>Usage logs, API keys, and configuration are stored in<!-- --> <code class="text-primary text-sm">~/.omniroute/</code>.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">5. Disclaimer</h2><p>OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">6. Open Source</h2><p>OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.</p></section></div><div class="mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted"><p>Questions? Visit our<!-- --> <a href="https://github.com/diegosouzapw/OmniRoute" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">GitHub repository</a>.</p></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[55846,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9751\",\"static/chunks/9751-3a35163d337d54ea.js\",\"782\",\"static/chunks/782-5e138760b7f7bf48.js\",\"1149\",\"static/chunks/1149-fefe7f95f0e9842f.js\",\"5846\",\"static/chunks/5846-e62d1dba0fd91db6.js\",\"993\",\"static/chunks/993-0fb5100db47366c5.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[17267,[\"8039\",\"static/chunks/app/error-0d59fc4efafbc38c.js\"],\"default\"]\n5:I[74581,[],\"\"]\n6:I[37145,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-1dbd8c3e506fe00f.js\"],\"default\"]\n7:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"7066\",\"static/chunks/app/terms/page-8f74097544a61b9d.js\"],\"\"]\n10:I[26719,[\"4219\",\"static/chunks/app/global-error-41eef2a698918fc1.js\"],\"default\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/081a0afca5a9bd20.css\",\"style\"]\n:HL[\"/_next/static/css/4729a5763a71a003.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Odj5WRCWNrqe5SAhIbFjc\",\"c\":[\"\",\"terms\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"terms\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4729a5763a71a003.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"a\",null,{\"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\"}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[18px]\",\"children\":\"arrow_back\"}],\"Back to home\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl font-bold mb-2\",\"children\":\"Terms of Service\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mb-10\",\"children\":\"Last updated: February 13, 2026\"}],[\"$\",\"div\",null,{\"className\":\"space-y-8 text-text-muted leading-relaxed\",\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"1. Overview\"}],[\"$\",\"p\",null,{\"children\":[\"OmniRoute is a \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"local-first\"}],\" AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.\"]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"2. User Responsibilities\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":\"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).\"}],[\"$\",\"li\",null,{\"children\":\"You must comply with the terms of service of each AI provider whose API you access through OmniRoute.\"}],[\"$\",\"li\",null,{\"children\":\"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.\"}]]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"3. How It Works\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.\"}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"4. Data Handling\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[\"$L8\",\"$L9\",\"$La\"]}]]}],\"$Lb\",\"$Lc\"]}],\"$Ld\"]}]}],null,\"$Le\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$Lf\",false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[90484,[],\"OutletBoundary\"]\n12:\"$Sreact.suspense\"\n14:I[90484,[],\"ViewportBoundary\"]\n16:I[90484,[],\"MetadataBoundary\"]\n8:[\"$\",\"li\",null,{\"children\":[\"All data is stored \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"locally\"}],\" on your machine in a SQLite database.\"]}]\n9:[\"$\",\"li\",null,{\"children\":\"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.\"}]\na:[\"$\",\"li\",null,{\"children\":[\"Usage logs, API keys, and configuration are stored in\",\" \",[\"$\",\"code\",null,{\"className\":\"text-primary text-sm\",\"children\":\"~/.omniroute/\"}],\".\"]}]\nb:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"5. Disclaimer\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.\"}]]}]\nc:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"6. Open Source\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.\"}]]}]\nd:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted\",\"children\":[\"$\",\"p\",null,{\"children\":[\"Questions? Visit our\",\" \",[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute\",\"className\":\"text-primary hover:underline\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub repository\"}],\".\"]}]}]\ne:[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@13\"}]}]\nf:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L16\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L17\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"18:I[86869,[],\"IconMark\"]\n13:null\n17:[[\"$\",\"title\",\"0\",{\"children\":\"Terms of Service | OmniRoute\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Terms of service for the OmniRoute AI API proxy router.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\"}],[\"$\",\"$L18\",\"4\",{}]]\n"])</script></body></html>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-
|
|
2
|
+
2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-e62d1dba0fd91db6.js","993","static/chunks/993-0fb5100db47366c5.js","9305","static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js"],"ThemeProvider"]
|
|
3
3
|
3:I[57121,[],""]
|
|
4
4
|
4:I[17267,["8039","static/chunks/app/error-0d59fc4efafbc38c.js"],"default"]
|
|
5
5
|
5:I[74581,[],""]
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
10:I[26719,["4219","static/chunks/app/global-error-41eef2a698918fc1.js"],"default"]
|
|
9
9
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
10
10
|
:HL["/_next/static/css/081a0afca5a9bd20.css","style"]
|
|
11
|
-
:HL["/_next/static/css/
|
|
11
|
+
:HL["/_next/static/css/4729a5763a71a003.css","style"]
|
|
12
12
|
:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
|
|
13
|
-
0:{"P":null,"b":"
|
|
13
|
+
0:{"P":null,"b":"Odj5WRCWNrqe5SAhIbFjc","c":["","terms"],"q":"","i":false,"f":[[["",{"children":["terms",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/4729a5763a71a003.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"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"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"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"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$4","errorStyles":[],"errorScripts":[],"template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L6",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L7",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":["$L8","$L9","$La"]}]]}],"$Lb","$Lc"]}],"$Ld"]}]}],null,"$Le"]}],{},null,false,false]},null,false,false]},null,false,false],"$Lf",false]],"m":"$undefined","G":["$10",[]],"S":true}
|
|
14
14
|
11:I[90484,[],"OutletBoundary"]
|
|
15
15
|
12:"$Sreact.suspense"
|
|
16
16
|
14:I[90484,[],"ViewportBoundary"]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-
|
|
2
|
+
2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-e62d1dba0fd91db6.js","993","static/chunks/993-0fb5100db47366c5.js","9305","static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js"],"ThemeProvider"]
|
|
3
3
|
3:I[57121,[],""]
|
|
4
4
|
4:I[17267,["8039","static/chunks/app/error-0d59fc4efafbc38c.js"],"default"]
|
|
5
5
|
5:I[74581,[],""]
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
10:I[26719,["4219","static/chunks/app/global-error-41eef2a698918fc1.js"],"default"]
|
|
9
9
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
10
10
|
:HL["/_next/static/css/081a0afca5a9bd20.css","style"]
|
|
11
|
-
:HL["/_next/static/css/
|
|
11
|
+
:HL["/_next/static/css/4729a5763a71a003.css","style"]
|
|
12
12
|
:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
|
|
13
|
-
0:{"P":null,"b":"
|
|
13
|
+
0:{"P":null,"b":"Odj5WRCWNrqe5SAhIbFjc","c":["","terms"],"q":"","i":false,"f":[[["",{"children":["terms",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/4729a5763a71a003.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"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"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"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"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$4","errorStyles":[],"errorScripts":[],"template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L6",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L7",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":["$L8","$L9","$La"]}]]}],"$Lb","$Lc"]}],"$Ld"]}]}],null,"$Le"]}],{},null,false,false]},null,false,false]},null,false,false],"$Lf",false]],"m":"$undefined","G":["$10",[]],"S":true}
|
|
14
14
|
11:I[90484,[],"OutletBoundary"]
|
|
15
15
|
12:"$Sreact.suspense"
|
|
16
16
|
14:I[90484,[],"ViewportBoundary"]
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[90484,[],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[86869,[],"IconMark"]
|
|
6
|
-
0:{"buildId":"
|
|
6
|
+
0:{"buildId":"Odj5WRCWNrqe5SAhIbFjc","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Terms of Service | OmniRoute"}],["$","meta","1",{"name":"description","content":"Terms of service for the OmniRoute AI API proxy router."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-touch-icon.svg"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-
|
|
2
|
+
2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-e62d1dba0fd91db6.js","993","static/chunks/993-0fb5100db47366c5.js","9305","static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js"],"ThemeProvider"]
|
|
3
3
|
3:I[57121,[],""]
|
|
4
4
|
4:I[17267,["8039","static/chunks/app/error-0d59fc4efafbc38c.js"],"default"]
|
|
5
5
|
5:I[74581,[],""]
|
|
6
6
|
6:I[37145,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-1dbd8c3e506fe00f.js"],"default"]
|
|
7
7
|
:HL["/_next/static/css/081a0afca5a9bd20.css","style"]
|
|
8
|
-
:HL["/_next/static/css/
|
|
8
|
+
:HL["/_next/static/css/4729a5763a71a003.css","style"]
|
|
9
9
|
:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
|
|
10
|
-
0:{"buildId":"
|
|
10
|
+
0:{"buildId":"Odj5WRCWNrqe5SAhIbFjc","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/4729a5763a71a003.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"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"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"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"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$4","errorStyles":[],"errorScripts":[],"template":["$","$L5",null,{}],"notFound":[["$","$L6",null,{}],[]]}]}]]}]]}]]}],"loading":null,"isPartial":false}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
2
2
|
:HL["/_next/static/css/081a0afca5a9bd20.css","style"]
|
|
3
|
-
:HL["/_next/static/css/
|
|
3
|
+
:HL["/_next/static/css/4729a5763a71a003.css","style"]
|
|
4
4
|
:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
|
|
5
|
-
0:{"buildId":"
|
|
5
|
+
0:{"buildId":"Odj5WRCWNrqe5SAhIbFjc","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"terms","paramType":null,"paramKey":"terms","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
2:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","7066","static/chunks/app/terms/page-8f74097544a61b9d.js"],""]
|
|
3
3
|
3:I[90484,[],"OutletBoundary"]
|
|
4
4
|
5:"$Sreact.suspense"
|
|
5
|
-
0:{"buildId":"
|
|
5
|
+
0:{"buildId":"Odj5WRCWNrqe5SAhIbFjc","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L2",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":["All data is stored ",["$","strong",null,{"className":"text-text-main","children":"locally"}]," on your machine in a SQLite database."]}],["$","li",null,{"children":"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features."}],["$","li",null,{"children":["Usage logs, API keys, and configuration are stored in"," ",["$","code",null,{"className":"text-primary text-sm","children":"~/.omniroute/"}],"."]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"5. Disclaimer"}],["$","p",null,{"children":"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"6. Open Source"}],["$","p",null,{"children":"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."}]]}]]}],["$","div",null,{"className":"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted","children":["$","p",null,{"children":["Questions? Visit our"," ",["$","a",null,{"href":"https://github.com/diegosouzapw/OmniRoute","className":"text-primary hover:underline","target":"_blank","rel":"noopener noreferrer","children":"GitHub repository"}],"."]}]}]]}]}],null,["$","$L3",null,{"children":"$L4"}]]}],"loading":null,"isPartial":false}
|
|
6
6
|
4:["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]
|
|
7
7
|
6:null
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[57121,[],""]
|
|
3
3
|
3:I[74581,[],""]
|
|
4
|
-
0:{"buildId":"
|
|
4
|
+
0:{"buildId":"Odj5WRCWNrqe5SAhIbFjc","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"/_global-error/page": "app/_global-error/page.js",
|
|
4
4
|
"/api/auth/login/route": "app/api/auth/login/route.js",
|
|
5
5
|
"/api/auth/logout/route": "app/api/auth/logout/route.js",
|
|
6
|
-
"/api/auth/status/route": "app/api/auth/status/route.js",
|
|
7
6
|
"/api/cache/route": "app/api/cache/route.js",
|
|
8
|
-
"/api/
|
|
7
|
+
"/api/auth/status/route": "app/api/auth/status/route.js",
|
|
9
8
|
"/api/cli-tools/antigravity-mitm/alias/route": "app/api/cli-tools/antigravity-mitm/alias/route.js",
|
|
9
|
+
"/api/cache/stats/route": "app/api/cache/stats/route.js",
|
|
10
10
|
"/api/cli-tools/backups/route": "app/api/cli-tools/backups/route.js",
|
|
11
11
|
"/api/cli-tools/codex-profiles/route": "app/api/cli-tools/codex-profiles/route.js",
|
|
12
12
|
"/api/cli-tools/guide-settings/[toolId]/route": "app/api/cli-tools/guide-settings/[toolId]/route.js",
|
|
@@ -14,23 +14,23 @@
|
|
|
14
14
|
"/api/cloud/credentials/update/route": "app/api/cloud/credentials/update/route.js",
|
|
15
15
|
"/api/cloud/model/resolve/route": "app/api/cloud/model/resolve/route.js",
|
|
16
16
|
"/api/cloud/models/alias/route": "app/api/cloud/models/alias/route.js",
|
|
17
|
-
"/api/combos/[id]/route": "app/api/combos/[id]/route.js",
|
|
18
17
|
"/api/combos/metrics/route": "app/api/combos/metrics/route.js",
|
|
18
|
+
"/api/combos/[id]/route": "app/api/combos/[id]/route.js",
|
|
19
19
|
"/api/combos/route": "app/api/combos/route.js",
|
|
20
|
-
"/api/compliance/audit-log/route": "app/api/compliance/audit-log/route.js",
|
|
21
20
|
"/api/db-backups/export/route": "app/api/db-backups/export/route.js",
|
|
22
|
-
"/api/
|
|
21
|
+
"/api/compliance/audit-log/route": "app/api/compliance/audit-log/route.js",
|
|
23
22
|
"/api/db-backups/import/route": "app/api/db-backups/import/route.js",
|
|
24
23
|
"/api/db-backups/route": "app/api/db-backups/route.js",
|
|
25
24
|
"/api/evals/[suiteId]/route": "app/api/evals/[suiteId]/route.js",
|
|
25
|
+
"/api/db-backups/exportAll/route": "app/api/db-backups/exportAll/route.js",
|
|
26
26
|
"/api/evals/route": "app/api/evals/route.js",
|
|
27
27
|
"/api/fallback/chains/route": "app/api/fallback/chains/route.js",
|
|
28
28
|
"/api/init/route": "app/api/init/route.js",
|
|
29
|
-
"/api/keys/[id]/route": "app/api/keys/[id]/route.js",
|
|
30
29
|
"/api/keys/route": "app/api/keys/route.js",
|
|
30
|
+
"/api/keys/[id]/route": "app/api/keys/[id]/route.js",
|
|
31
|
+
"/api/models/availability/route": "app/api/models/availability/route.js",
|
|
31
32
|
"/api/logs/console/route": "app/api/logs/console/route.js",
|
|
32
33
|
"/api/models/alias/route": "app/api/models/alias/route.js",
|
|
33
|
-
"/api/models/availability/route": "app/api/models/availability/route.js",
|
|
34
34
|
"/api/models/catalog/route": "app/api/models/catalog/route.js",
|
|
35
35
|
"/api/models/route": "app/api/models/route.js",
|
|
36
36
|
"/api/monitoring/health/route": "app/api/monitoring/health/route.js",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"/api/oauth/kiro/import/route": "app/api/oauth/kiro/import/route.js",
|
|
42
42
|
"/api/oauth/kiro/social-authorize/route": "app/api/oauth/kiro/social-authorize/route.js",
|
|
43
43
|
"/api/oauth/kiro/social-exchange/route": "app/api/oauth/kiro/social-exchange/route.js",
|
|
44
|
-
"/api/policies/route": "app/api/policies/route.js",
|
|
45
44
|
"/api/pricing/defaults/route": "app/api/pricing/defaults/route.js",
|
|
45
|
+
"/api/policies/route": "app/api/policies/route.js",
|
|
46
46
|
"/api/pricing/models/route": "app/api/pricing/models/route.js",
|
|
47
47
|
"/api/pricing/route": "app/api/pricing/route.js",
|
|
48
48
|
"/api/provider-metrics/route": "app/api/provider-metrics/route.js",
|
|
@@ -55,19 +55,19 @@
|
|
|
55
55
|
"/api/providers/route": "app/api/providers/route.js",
|
|
56
56
|
"/api/providers/test-batch/route": "app/api/providers/test-batch/route.js",
|
|
57
57
|
"/api/providers/validate/route": "app/api/providers/validate/route.js",
|
|
58
|
-
"/api/rate-limit/route": "app/api/rate-limit/route.js",
|
|
59
58
|
"/api/rate-limits/route": "app/api/rate-limits/route.js",
|
|
60
59
|
"/api/resilience/reset/route": "app/api/resilience/reset/route.js",
|
|
60
|
+
"/api/rate-limit/route": "app/api/rate-limit/route.js",
|
|
61
61
|
"/api/resilience/route": "app/api/resilience/route.js",
|
|
62
|
-
"/api/restart/route": "app/api/restart/route.js",
|
|
63
62
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
64
63
|
"/api/settings/combo-defaults/route": "app/api/settings/combo-defaults/route.js",
|
|
65
64
|
"/api/settings/ip-filter/route": "app/api/settings/ip-filter/route.js",
|
|
65
|
+
"/api/restart/route": "app/api/restart/route.js",
|
|
66
66
|
"/api/settings/require-login/route": "app/api/settings/require-login/route.js",
|
|
67
67
|
"/api/settings/route": "app/api/settings/route.js",
|
|
68
68
|
"/api/settings/system-prompt/route": "app/api/settings/system-prompt/route.js",
|
|
69
|
-
"/api/settings/thinking-budget/route": "app/api/settings/thinking-budget/route.js",
|
|
70
69
|
"/api/shutdown/route": "app/api/shutdown/route.js",
|
|
70
|
+
"/api/settings/thinking-budget/route": "app/api/settings/thinking-budget/route.js",
|
|
71
71
|
"/api/storage/health/route": "app/api/storage/health/route.js",
|
|
72
72
|
"/api/sync/cloud/route": "app/api/sync/cloud/route.js",
|
|
73
73
|
"/api/sync/initialize/route": "app/api/sync/initialize/route.js",
|
|
@@ -76,31 +76,31 @@
|
|
|
76
76
|
"/api/token-health/route": "app/api/token-health/route.js",
|
|
77
77
|
"/api/translator/detect/route": "app/api/translator/detect/route.js",
|
|
78
78
|
"/api/translator/history/route": "app/api/translator/history/route.js",
|
|
79
|
-
"/api/translator/load/route": "app/api/translator/load/route.js",
|
|
80
79
|
"/api/translator/save/route": "app/api/translator/save/route.js",
|
|
81
80
|
"/api/translator/send/route": "app/api/translator/send/route.js",
|
|
81
|
+
"/api/translator/load/route": "app/api/translator/load/route.js",
|
|
82
82
|
"/api/translator/translate/route": "app/api/translator/translate/route.js",
|
|
83
83
|
"/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
|
|
84
84
|
"/api/usage/analytics/route": "app/api/usage/analytics/route.js",
|
|
85
|
-
"/api/usage/budget/route": "app/api/usage/budget/route.js",
|
|
86
85
|
"/api/usage/call-logs/[id]/route": "app/api/usage/call-logs/[id]/route.js",
|
|
87
86
|
"/api/usage/call-logs/route": "app/api/usage/call-logs/route.js",
|
|
87
|
+
"/api/usage/budget/route": "app/api/usage/budget/route.js",
|
|
88
88
|
"/api/usage/logs/route": "app/api/usage/logs/route.js",
|
|
89
89
|
"/api/usage/history/route": "app/api/usage/history/route.js",
|
|
90
|
-
"/api/usage/request-logs/route": "app/api/usage/request-logs/route.js",
|
|
91
90
|
"/api/v1/api/chat/route": "app/api/v1/api/chat/route.js",
|
|
92
91
|
"/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js",
|
|
92
|
+
"/api/usage/request-logs/route": "app/api/usage/request-logs/route.js",
|
|
93
93
|
"/api/v1/audio/transcriptions/route": "app/api/v1/audio/transcriptions/route.js",
|
|
94
94
|
"/api/v1/embeddings/route": "app/api/v1/embeddings/route.js",
|
|
95
95
|
"/api/v1/images/generations/route": "app/api/v1/images/generations/route.js",
|
|
96
|
-
"/api/v1/messages/route": "app/api/v1/messages/route.js",
|
|
97
96
|
"/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js",
|
|
98
|
-
"/api/v1/
|
|
97
|
+
"/api/v1/messages/route": "app/api/v1/messages/route.js",
|
|
99
98
|
"/api/v1/models/route": "app/api/v1/models/route.js",
|
|
99
|
+
"/api/v1/moderations/route": "app/api/v1/moderations/route.js",
|
|
100
100
|
"/api/v1/providers/[provider]/chat/completions/route": "app/api/v1/providers/[provider]/chat/completions/route.js",
|
|
101
101
|
"/api/v1/providers/[provider]/images/generations/route": "app/api/v1/providers/[provider]/images/generations/route.js",
|
|
102
|
-
"/api/v1/rerank/route": "app/api/v1/rerank/route.js",
|
|
103
102
|
"/api/v1/providers/[provider]/embeddings/route": "app/api/v1/providers/[provider]/embeddings/route.js",
|
|
103
|
+
"/api/v1/rerank/route": "app/api/v1/rerank/route.js",
|
|
104
104
|
"/api/v1/responses/route": "app/api/v1/responses/route.js",
|
|
105
105
|
"/api/v1/route": "app/api/v1/route.js",
|
|
106
106
|
"/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js",
|
|
@@ -108,30 +108,31 @@
|
|
|
108
108
|
"/api/cli-tools/antigravity-mitm/route": "app/api/cli-tools/antigravity-mitm/route.js",
|
|
109
109
|
"/api/cli-tools/claude-settings/route": "app/api/cli-tools/claude-settings/route.js",
|
|
110
110
|
"/api/cli-tools/cline-settings/route": "app/api/cli-tools/cline-settings/route.js",
|
|
111
|
-
"/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
|
|
112
|
-
"/api/cli-tools/runtime/[toolId]/route": "app/api/cli-tools/runtime/[toolId]/route.js",
|
|
113
111
|
"/api/cli-tools/droid-settings/route": "app/api/cli-tools/droid-settings/route.js",
|
|
112
|
+
"/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
|
|
113
|
+
"/api/cli-tools/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
|
|
114
114
|
"/api/cli-tools/status/route": "app/api/cli-tools/status/route.js",
|
|
115
115
|
"/api/combos/test/route": "app/api/combos/test/route.js",
|
|
116
|
-
"/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
|
|
117
116
|
"/api/provider-nodes/route": "app/api/provider-nodes/route.js",
|
|
117
|
+
"/api/cli-tools/runtime/[toolId]/route": "app/api/cli-tools/runtime/[toolId]/route.js",
|
|
118
118
|
"/api/settings/proxy/route": "app/api/settings/proxy/route.js",
|
|
119
119
|
"/api/settings/proxy/test/route": "app/api/settings/proxy/test/route.js",
|
|
120
120
|
"/api/usage/proxy-logs/route": "app/api/usage/proxy-logs/route.js",
|
|
121
|
+
"/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
|
|
121
122
|
"/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js",
|
|
122
|
-
"/api/cli-tools/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
|
|
123
123
|
"/api/providers/[id]/test/route": "app/api/providers/[id]/test/route.js",
|
|
124
124
|
"/callback/page": "app/callback/page.js",
|
|
125
|
-
"/docs/page": "app/docs/page.js",
|
|
126
125
|
"/forbidden/page": "app/forbidden/page.js",
|
|
127
126
|
"/forgot-password/page": "app/forgot-password/page.js",
|
|
127
|
+
"/login/page": "app/login/page.js",
|
|
128
|
+
"/docs/page": "app/docs/page.js",
|
|
128
129
|
"/landing/page": "app/landing/page.js",
|
|
129
130
|
"/page": "app/page.js",
|
|
130
|
-
"/login/page": "app/login/page.js",
|
|
131
131
|
"/terms/page": "app/terms/page.js",
|
|
132
132
|
"/privacy/page": "app/privacy/page.js",
|
|
133
133
|
"/(dashboard)/dashboard/analytics/page": "app/(dashboard)/dashboard/analytics/page.js",
|
|
134
134
|
"/(dashboard)/dashboard/audit-log/page": "app/(dashboard)/dashboard/audit-log/page.js",
|
|
135
|
+
"/(dashboard)/dashboard/api-manager/page": "app/(dashboard)/dashboard/api-manager/page.js",
|
|
135
136
|
"/(dashboard)/dashboard/cli-tools/page": "app/(dashboard)/dashboard/cli-tools/page.js",
|
|
136
137
|
"/(dashboard)/dashboard/costs/page": "app/(dashboard)/dashboard/costs/page.js",
|
|
137
138
|
"/(dashboard)/dashboard/endpoint/page": "app/(dashboard)/dashboard/endpoint/page.js",
|
|
@@ -141,8 +142,8 @@
|
|
|
141
142
|
"/(dashboard)/dashboard/providers/new/page": "app/(dashboard)/dashboard/providers/new/page.js",
|
|
142
143
|
"/(dashboard)/dashboard/settings/page": "app/(dashboard)/dashboard/settings/page.js",
|
|
143
144
|
"/(dashboard)/dashboard/settings/pricing/page": "app/(dashboard)/dashboard/settings/pricing/page.js",
|
|
144
|
-
"/(dashboard)/dashboard/logs/page": "app/(dashboard)/dashboard/logs/page.js",
|
|
145
145
|
"/(dashboard)/dashboard/page": "app/(dashboard)/dashboard/page.js",
|
|
146
|
+
"/(dashboard)/dashboard/logs/page": "app/(dashboard)/dashboard/logs/page.js",
|
|
146
147
|
"/(dashboard)/dashboard/onboarding/page": "app/(dashboard)/dashboard/onboarding/page.js",
|
|
147
148
|
"/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
|
|
148
149
|
"/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=1308,exports.ids=[293,1308,4163],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>n,Kr:()=>t,UE:()=>u,YO:()=>p,getAllRateLimitStatus:()=>v,mg:()=>m,rh:()=>l});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);let h=new Map,i=new Set,j=!1,k={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null};async function l(){if(!j){j=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,40287)),b=await a(),d=0,j=0;for(let a of b)if(a.rateLimitProtection)i.add(a.id),d++;else if(a.provider&&"apikey"===(0,f.oQ)(a.provider)&&a.isActive){i.add(a.id),j++;let b=`${a.provider}:${a.id}`;h.has(b)||h.set(b,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,id:b}))}(d>0||j>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${j} auto-enabled (API key) protection(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function m(a){i.add(a)}function n(a){for(let[b]of(i.delete(a),h))if(b.includes(a)){let a=h.get(b);a?.disconnect(),h.delete(b)}}function o(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!h.has(d)){let a=new(e())({...k,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),h.set(d,a)}return h.get(d)}async function p(a,b,c,d){return i.has(b)?o(a,b,null).schedule(d):d()}let q={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},r={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function s(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function t(a,b,c,d,e=null){if(!i.has(b)||!c)return;let f=o(a,b,null),g="claude"===a||"anthropic"===a?r:q,h=a=>"function"==typeof c.get?c.get(a):c[a]||null,j=parseInt(h(g.limit)),k=parseInt(h(g.remaining)),l=h(g.reset),m=h(g.retryAfter),n=h(q.overLimit);if(429===d){let c=s(m)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),f.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===n){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),f.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){let c=s(l)||6e4,d={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(k)&&(k<.1*j?(d.reservoir=k,d.reservoirRefreshAmount=j,d.reservoirRefreshInterval=c,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${k}/${j} remaining, throttling`)):k>.5*j&&(d.minTime=0,d.reservoir=null,d.reservoirRefreshAmount=null,d.reservoirRefreshInterval=null)),f.updateSettings(d)}}function u(a,b){let c=`${a}:${b}`,d=h.get(c);if(!d)return{enabled:i.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:i.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function v(){let a={};for(let[b,c]of h){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}},60293:(a,b,c)=>{c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(83596);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]},74163:(a,b,c)=>{c.d(b,{AO:()=>l,Qo:()=>o,R7:()=>h,T_:()=>f,UY:()=>n,getAllModelLockouts:()=>i,hk:()=>k,vp:()=>m});var d=c(60293),e=c(83596);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map;function h(a,b,c,d,e){if(!c)return;let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function i(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function j(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function k(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function l(a){return!!a&&new Date(a).getTime()>Date.now()}function m(a){return new Date(Date.now()+a).toISOString()}function n(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3).unref()}};
|
|
1
|
+
"use strict";exports.id=1308,exports.ids=[293,1308,4163],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>n,Kr:()=>t,UE:()=>u,YO:()=>p,getAllRateLimitStatus:()=>v,mg:()=>m,rh:()=>l});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);let h=new Map,i=new Set,j=!1,k={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null};async function l(){if(!j){j=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,22901)),b=await a(),d=0,j=0;for(let a of b)if(a.rateLimitProtection)i.add(a.id),d++;else if(a.provider&&"apikey"===(0,f.oQ)(a.provider)&&a.isActive){i.add(a.id),j++;let b=`${a.provider}:${a.id}`;h.has(b)||h.set(b,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,id:b}))}(d>0||j>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${j} auto-enabled (API key) protection(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function m(a){i.add(a)}function n(a){for(let[b]of(i.delete(a),h))if(b.includes(a)){let a=h.get(b);a?.disconnect(),h.delete(b)}}function o(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!h.has(d)){let a=new(e())({...k,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),h.set(d,a)}return h.get(d)}async function p(a,b,c,d){return i.has(b)?o(a,b,null).schedule(d):d()}let q={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},r={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function s(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function t(a,b,c,d,e=null){if(!i.has(b)||!c)return;let f=o(a,b,null),g="claude"===a||"anthropic"===a?r:q,h=a=>"function"==typeof c.get?c.get(a):c[a]||null,j=parseInt(h(g.limit)),k=parseInt(h(g.remaining)),l=h(g.reset),m=h(g.retryAfter),n=h(q.overLimit);if(429===d){let c=s(m)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),f.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===n){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),f.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){let c=s(l)||6e4,d={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(k)&&(k<.1*j?(d.reservoir=k,d.reservoirRefreshAmount=j,d.reservoirRefreshInterval=c,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${k}/${j} remaining, throttling`)):k>.5*j&&(d.minTime=0,d.reservoir=null,d.reservoirRefreshAmount=null,d.reservoirRefreshInterval=null)),f.updateSettings(d)}}function u(a,b){let c=`${a}:${b}`,d=h.get(c);if(!d)return{enabled:i.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:i.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function v(){let a={};for(let[b,c]of h){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}},60293:(a,b,c)=>{c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(83596);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]},74163:(a,b,c)=>{c.d(b,{AO:()=>l,Qo:()=>o,R7:()=>h,T_:()=>f,UY:()=>n,getAllModelLockouts:()=>i,hk:()=>k,vp:()=>m});var d=c(60293),e=c(83596);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map;function h(a,b,c,d,e){if(!c)return;let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function i(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function j(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function k(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function l(a){return!!a&&new Date(a).getTime()>Date.now()}function m(a){return new Date(Date.now()+a).toISOString()}function n(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3).unref()}};
|