omniroute 0.8.8 β 1.0.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/README.de.md +995 -0
- package/README.es.md +995 -0
- package/README.fr.md +995 -0
- package/README.it.md +995 -0
- package/README.md +756 -81
- package/README.pt-BR.md +1048 -0
- package/README.ru.md +995 -0
- package/README.zh-CN.md +995 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +33 -30
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/routes-manifest.json +18 -0
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_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_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/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +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 +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_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 +2 -2
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route.js +1 -0
- package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -0
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -0
- package/app/.next/server/app/api/db-backups/exportAll/route.js.nft.json +1 -0
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/db-backups/import/route.js +1 -0
- package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -0
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/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 +1 -1
- 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/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/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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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_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_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_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_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_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_client-reference-manifest.js +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_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 +33 -30
- package/app/.next/server/chunks/5583.js +1 -1
- package/app/.next/server/chunks/8369.js +1 -1
- package/app/.next/server/chunks/9824.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/chunks/{5846-b70d10291438712b.js β 5846-e5043393303d82cc.js} +1 -1
- package/app/.next/static/chunks/{993-d43d3ceef35b3300.js β 993-547810f7937fb3fe.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-cdc5fc5dfecc1047.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-efca884c20a509a4.js β page-775e1506821cac94.js} +2 -2
- package/app/.next/static/chunks/app/_global-error/page-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/_not-found/page-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cache/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cache/stats/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/status/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/combos/metrics/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/combos/test/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/export/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/exportAll/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/import/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/evals/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/fallback/chains/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/models/catalog/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/monitoring/health/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/policies/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/defaults/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/models/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/provider-metrics/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/provider-models/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limit/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limits/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/reset/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/restart/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/sessions/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/storage/health/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/sync/cloud/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/sync/initialize/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/telemetry/summary/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/token-health/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/translator/detect/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/translator/history/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/analytics/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/budget/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/moderations/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/rerank/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/app/page-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-58b169603fdf1d6f.js +1 -0
- package/app/.next/static/css/{1c99dc691f001331.css β 99e359b9e40091af.css} +1 -1
- package/app/.next/static/r6jUR903zdObDI9pgxvsU/_buildManifest.js +1 -0
- package/app/package.json +2 -2
- package/app/public/providers/ironclaw.png +0 -0
- package/app/public/providers/nanobot.png +0 -0
- package/app/public/providers/opencode.svg +18 -0
- package/app/public/providers/picoclaw.jpg +0 -0
- package/app/public/providers/zeroclaw.png +0 -0
- package/package.json +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-3ac21c16bcfde2e4.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/_not-found/page-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cache/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cache/stats/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/status/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/combos/metrics/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/combos/test/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/evals/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/fallback/chains/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/models/catalog/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/monitoring/health/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/policies/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/defaults/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/models/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-metrics/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-models/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limit/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limits/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/resilience/reset/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/resilience/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/restart/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/sessions/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/storage/health/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/sync/cloud/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/sync/initialize/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/telemetry/summary/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/token-health/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/detect/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/history/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/analytics/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/budget/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/moderations/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/rerank/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/app/page-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9dc1eebb90668f5a.js +0 -1
- package/app/.next/static/xW2ax6VohvDsTIIwd1zWK/_buildManifest.js +0 -1
- /package/app/.next/static/{xW2ax6VohvDsTIIwd1zWK β r6jUR903zdObDI9pgxvsU}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,26 +1,110 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="./images/omniroute.png" alt="OmniRoute Dashboard" width="800"/>
|
|
3
3
|
|
|
4
|
-
# OmniRoute
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
4
|
+
# π OmniRoute β The Free AI Gateway
|
|
5
|
+
|
|
6
|
+
### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback.
|
|
7
|
+
|
|
8
|
+
_Your universal API proxy β one endpoint, 36+ providers, zero downtime._
|
|
9
|
+
|
|
10
|
+
**Chat Completions β’ Embeddings β’ Image Generation β’ Audio β’ Reranking β’ 100% TypeScript**
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
### π€ Free AI Provider for your favorite coding agents
|
|
15
|
+
|
|
16
|
+
_Connect any AI-powered IDE or CLI tool through OmniRoute β free API gateway for unlimited coding._
|
|
17
|
+
|
|
18
|
+
<table>
|
|
19
|
+
<tr>
|
|
20
|
+
<td align="center" width="110">
|
|
21
|
+
<a href="https://github.com/cline/cline">
|
|
22
|
+
<img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
|
|
23
|
+
<b>OpenClaw</b>
|
|
24
|
+
</a><br/>
|
|
25
|
+
<sub>β 205K</sub>
|
|
26
|
+
</td>
|
|
27
|
+
<td align="center" width="110">
|
|
28
|
+
<a href="https://github.com/HKUDS/nanobot">
|
|
29
|
+
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
|
30
|
+
<b>NanoBot</b>
|
|
31
|
+
</a><br/>
|
|
32
|
+
<sub>β 20.9K</sub>
|
|
33
|
+
</td>
|
|
34
|
+
<td align="center" width="110">
|
|
35
|
+
<a href="https://github.com/sipeed/picoclaw">
|
|
36
|
+
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
|
37
|
+
<b>PicoClaw</b>
|
|
38
|
+
</a><br/>
|
|
39
|
+
<sub>β 14.6K</sub>
|
|
40
|
+
</td>
|
|
41
|
+
<td align="center" width="110">
|
|
42
|
+
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
|
43
|
+
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
|
44
|
+
<b>ZeroClaw</b>
|
|
45
|
+
</a><br/>
|
|
46
|
+
<sub>β 9.9K</sub>
|
|
47
|
+
</td>
|
|
48
|
+
<td align="center" width="110">
|
|
49
|
+
<a href="https://github.com/nearai/ironclaw">
|
|
50
|
+
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
|
51
|
+
<b>IronClaw</b>
|
|
52
|
+
</a><br/>
|
|
53
|
+
<sub>β 2.1K</sub>
|
|
54
|
+
</td>
|
|
55
|
+
</tr>
|
|
56
|
+
<tr>
|
|
57
|
+
<td align="center" width="110">
|
|
58
|
+
<a href="https://github.com/anomalyco/opencode">
|
|
59
|
+
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
|
60
|
+
<b>OpenCode</b>
|
|
61
|
+
</a><br/>
|
|
62
|
+
<sub>β 106K</sub>
|
|
63
|
+
</td>
|
|
64
|
+
<td align="center" width="110">
|
|
65
|
+
<a href="https://github.com/openai/codex">
|
|
66
|
+
<img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
|
|
67
|
+
<b>Codex CLI</b>
|
|
68
|
+
</a><br/>
|
|
69
|
+
<sub>β 60.8K</sub>
|
|
70
|
+
</td>
|
|
71
|
+
<td align="center" width="110">
|
|
72
|
+
<a href="https://github.com/anthropics/claude-code">
|
|
73
|
+
<img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
|
|
74
|
+
<b>Claude Code</b>
|
|
75
|
+
</a><br/>
|
|
76
|
+
<sub>β 67.3K</sub>
|
|
77
|
+
</td>
|
|
78
|
+
<td align="center" width="110">
|
|
79
|
+
<a href="https://github.com/google-gemini/gemini-cli">
|
|
80
|
+
<img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
|
|
81
|
+
<b>Gemini CLI</b>
|
|
82
|
+
</a><br/>
|
|
83
|
+
<sub>β 94.7K</sub>
|
|
84
|
+
</td>
|
|
85
|
+
<td align="center" width="110">
|
|
86
|
+
<a href="https://github.com/Kilo-Org/kilocode">
|
|
87
|
+
<img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
|
|
88
|
+
<b>Kilo Code</b>
|
|
89
|
+
</a><br/>
|
|
90
|
+
<sub>β 15.5K</sub>
|
|
91
|
+
</td>
|
|
92
|
+
</tr>
|
|
93
|
+
</table>
|
|
94
|
+
|
|
95
|
+
<sub>π‘ All agents connect via <code>http://localhost:20128/v1</code> or <code>http://cloud.omniroute.online/v1</code> β one config, unlimited models and quota</sub>
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
[](https://www.npmjs.com/package/omniroute)
|
|
100
|
+
[](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
101
|
+
[](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
|
|
102
|
+
[](https://omniroute.online)
|
|
103
|
+
|
|
104
|
+
[π Website](https://omniroute.online) β’ [π Quick Start](#-quick-start) β’ [π‘ Features](#-key-features) β’ [π Docs](#-documentation) β’ [π° Pricing](#-pricing-at-a-glance)
|
|
105
|
+
|
|
106
|
+
π **Available in:** [English](README.md) | [PortuguΓͺs](README.pt-BR.md) | [EspaΓ±ol](README.es.md) | [Π ΡΡΡΠΊΠΈΠΉ](README.ru.md) | [δΈζ](README.zh-CN.md) | [Deutsch](README.de.md) | [FranΓ§ais](README.fr.md) | [Italiano](README.it.md)
|
|
107
|
+
|
|
24
108
|
</div>
|
|
25
109
|
|
|
26
110
|
---
|
|
@@ -29,17 +113,17 @@
|
|
|
29
113
|
|
|
30
114
|
**Stop wasting money and hitting limits:**
|
|
31
115
|
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
116
|
+
- <img src="https://img.shields.io/badge/β-e74c3c?style=flat-square" height="16"/> Subscription quota expires unused every month
|
|
117
|
+
- <img src="https://img.shields.io/badge/β-e74c3c?style=flat-square" height="16"/> Rate limits stop you mid-coding
|
|
118
|
+
- <img src="https://img.shields.io/badge/β-e74c3c?style=flat-square" height="16"/> Expensive APIs ($20-50/month per provider)
|
|
119
|
+
- <img src="https://img.shields.io/badge/β-e74c3c?style=flat-square" height="16"/> Manual switching between providers
|
|
36
120
|
|
|
37
121
|
**OmniRoute solves this:**
|
|
38
122
|
|
|
39
123
|
- β
**Maximize subscriptions** - Track quota, use every bit before reset
|
|
40
|
-
- β
**Auto fallback** - Subscription β Cheap β Free, zero downtime
|
|
124
|
+
- β
**Auto fallback** - Subscription β API Key β Cheap β Free, zero downtime
|
|
41
125
|
- β
**Multi-account** - Round-robin between accounts per provider
|
|
42
|
-
- β
**Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, any CLI tool
|
|
126
|
+
- β
**Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool
|
|
43
127
|
|
|
44
128
|
---
|
|
45
129
|
|
|
@@ -61,7 +145,7 @@
|
|
|
61
145
|
β
|
|
62
146
|
βββ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
|
|
63
147
|
β β quota exhausted
|
|
64
|
-
βββ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral,
|
|
148
|
+
βββ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
|
|
65
149
|
β β budget limit
|
|
66
150
|
βββ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
|
67
151
|
β β budget limit
|
|
@@ -158,7 +242,93 @@ docker compose --profile cli up -d
|
|
|
158
242
|
| Image | Tag | Size | Description |
|
|
159
243
|
| ------------------------ | -------- | ------ | --------------------- |
|
|
160
244
|
| `diegosouzapw/omniroute` | `latest` | ~250MB | Latest stable release |
|
|
161
|
-
| `diegosouzapw/omniroute` | `0.
|
|
245
|
+
| `diegosouzapw/omniroute` | `1.0.0` | ~250MB | Current version |
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## π° Pricing at a Glance
|
|
250
|
+
|
|
251
|
+
| Tier | Provider | Cost | Quota Reset | Best For |
|
|
252
|
+
| ------------------- | ----------------- | ----------------------- | ---------------- | -------------------- |
|
|
253
|
+
| **π³ SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed |
|
|
254
|
+
| | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users |
|
|
255
|
+
| | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! |
|
|
256
|
+
| | GitHub Copilot | $10-19/mo | Monthly | GitHub users |
|
|
257
|
+
| **π API KEY** | NVIDIA NIM | **FREE** (1000 credits) | One-time | Free tier testing |
|
|
258
|
+
| | DeepSeek | Pay-per-use | None | Best price/quality |
|
|
259
|
+
| | Groq | Free tier + paid | Rate limited | Ultra-fast inference |
|
|
260
|
+
| | xAI (Grok) | Pay-per-use | None | Grok models |
|
|
261
|
+
| | Mistral | Free tier + paid | Rate limited | European AI |
|
|
262
|
+
| | OpenRouter | Pay-per-use | None | 100+ models |
|
|
263
|
+
| **π° CHEAP** | GLM-4.7 | $0.6/1M | Daily 10AM | Budget backup |
|
|
264
|
+
| | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option |
|
|
265
|
+
| | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost |
|
|
266
|
+
| **π FREE** | iFlow | $0 | Unlimited | 8 models free |
|
|
267
|
+
| | Qwen | $0 | Unlimited | 3 models free |
|
|
268
|
+
| | Kiro | $0 | Unlimited | Claude free |
|
|
269
|
+
|
|
270
|
+
**π‘ Pro Tip:** Start with Gemini CLI (180K free/month) + iFlow (unlimited free) combo = $0 cost!
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## π― Use Cases
|
|
275
|
+
|
|
276
|
+
### Case 1: "I have Claude Pro subscription"
|
|
277
|
+
|
|
278
|
+
**Problem:** Quota expires unused, rate limits during heavy coding
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
Combo: "maximize-claude"
|
|
282
|
+
1. cc/claude-opus-4-6 (use subscription fully)
|
|
283
|
+
2. glm/glm-4.7 (cheap backup when quota out)
|
|
284
|
+
3. if/kimi-k2-thinking (free emergency fallback)
|
|
285
|
+
|
|
286
|
+
Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
|
|
287
|
+
vs. $20 + hitting limits = frustration
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Case 2: "I want zero cost"
|
|
291
|
+
|
|
292
|
+
**Problem:** Can't afford subscriptions, need reliable AI coding
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
Combo: "free-forever"
|
|
296
|
+
1. gc/gemini-3-flash (180K free/month)
|
|
297
|
+
2. if/kimi-k2-thinking (unlimited free)
|
|
298
|
+
3. qw/qwen3-coder-plus (unlimited free)
|
|
299
|
+
|
|
300
|
+
Monthly cost: $0
|
|
301
|
+
Quality: Production-ready models
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Case 3: "I need 24/7 coding, no interruptions"
|
|
305
|
+
|
|
306
|
+
**Problem:** Deadlines, can't afford downtime
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
Combo: "always-on"
|
|
310
|
+
1. cc/claude-opus-4-6 (best quality)
|
|
311
|
+
2. cx/gpt-5.2-codex (second subscription)
|
|
312
|
+
3. glm/glm-4.7 (cheap, resets daily)
|
|
313
|
+
4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
|
|
314
|
+
5. if/kimi-k2-thinking (free unlimited)
|
|
315
|
+
|
|
316
|
+
Result: 5 layers of fallback = zero downtime
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Case 4: "I want FREE AI in OpenClaw"
|
|
320
|
+
|
|
321
|
+
**Problem:** Need AI assistant in messaging apps, completely free
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
Combo: "openclaw-free"
|
|
325
|
+
1. if/glm-4.7 (unlimited free)
|
|
326
|
+
2. if/minimax-m2.1 (unlimited free)
|
|
327
|
+
3. if/kimi-k2-thinking (unlimited free)
|
|
328
|
+
|
|
329
|
+
Monthly cost: $0
|
|
330
|
+
Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
|
331
|
+
```
|
|
162
332
|
|
|
163
333
|
---
|
|
164
334
|
|
|
@@ -201,7 +371,6 @@ docker compose --profile cli up -d
|
|
|
201
371
|
| β‘ **Request Idempotency** | 5s dedup window for duplicate requests |
|
|
202
372
|
| π **TLS Fingerprint Spoofing** | Bypass TLS-based bot detection via wreq-js |
|
|
203
373
|
| π **IP Filtering** | Allowlist/blocklist for API access control |
|
|
204
|
-
| π **Compliance Audit Log** | Tamper-proof request logs with opt-out per API key |
|
|
205
374
|
| π **Editable Rate Limits** | Configurable RPM, min gap, and max concurrent at system level |
|
|
206
375
|
|
|
207
376
|
### π Observability & Analytics
|
|
@@ -215,14 +384,447 @@ docker compose --profile cli up -d
|
|
|
215
384
|
| π§ͺ **LLM Evaluations** | Golden set testing with 4 match strategies |
|
|
216
385
|
| π **Request Telemetry** | p50/p95/p99 latency aggregation + X-Request-Id tracing |
|
|
217
386
|
| π **Request Logs + Quotas** | Dedicated pages for log browsing and limits/quotas tracking |
|
|
387
|
+
| π₯ **Health Dashboard** | System uptime, circuit breaker states, lockouts, cache stats |
|
|
388
|
+
| π° **Cost Tracking** | Budget management + per-model pricing configuration |
|
|
218
389
|
|
|
219
390
|
### βοΈ Deployment & Sync
|
|
220
391
|
|
|
221
|
-
| Feature
|
|
222
|
-
|
|
|
223
|
-
| πΎ **Cloud Sync**
|
|
224
|
-
| π **Deploy Anywhere**
|
|
225
|
-
| π **API Key Management**
|
|
392
|
+
| Feature | What It Does |
|
|
393
|
+
| -------------------------- | --------------------------------------------------------------------- |
|
|
394
|
+
| πΎ **Cloud Sync** | Sync config across devices via Cloudflare Workers |
|
|
395
|
+
| π **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers |
|
|
396
|
+
| π **API Key Management** | Generate, rotate, and scope API keys per provider |
|
|
397
|
+
| π§ **Onboarding Wizard** | 4-step guided setup for first-time users |
|
|
398
|
+
| π§ **CLI Tools Dashboard** | One-click configure Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
|
|
399
|
+
| π **DB Backups** | Automatic backup, restore, export & import for all settings |
|
|
400
|
+
|
|
401
|
+
<details>
|
|
402
|
+
<summary><b>π Feature Details</b></summary>
|
|
403
|
+
|
|
404
|
+
### π― Smart 4-Tier Fallback
|
|
405
|
+
|
|
406
|
+
Create combos with automatic fallback:
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
Combo: "my-coding-stack"
|
|
410
|
+
1. cc/claude-opus-4-6 (your subscription)
|
|
411
|
+
2. nvidia/llama-3.3-70b (free NVIDIA API)
|
|
412
|
+
3. glm/glm-4.7 (cheap backup, $0.6/1M)
|
|
413
|
+
4. if/kimi-k2-thinking (free fallback)
|
|
414
|
+
|
|
415
|
+
β Auto switches when quota runs out or errors occur
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### π Real-Time Quota Tracking
|
|
419
|
+
|
|
420
|
+
- Token consumption per provider
|
|
421
|
+
- Reset countdown (5-hour, daily, weekly)
|
|
422
|
+
- Cost estimation for paid tiers
|
|
423
|
+
- Monthly spending reports
|
|
424
|
+
|
|
425
|
+
### π Format Translation
|
|
426
|
+
|
|
427
|
+
Seamless translation between formats:
|
|
428
|
+
|
|
429
|
+
- **OpenAI** β **Claude** β **Gemini** β **OpenAI Responses**
|
|
430
|
+
- Your CLI tool sends OpenAI format β OmniRoute translates β Provider receives native format
|
|
431
|
+
- Works with any tool that supports custom OpenAI endpoints
|
|
432
|
+
|
|
433
|
+
### π₯ Multi-Account Support
|
|
434
|
+
|
|
435
|
+
- Add multiple accounts per provider
|
|
436
|
+
- Auto round-robin or priority-based routing
|
|
437
|
+
- Fallback to next account when one hits quota
|
|
438
|
+
|
|
439
|
+
### π Auto Token Refresh
|
|
440
|
+
|
|
441
|
+
- OAuth tokens automatically refresh before expiration
|
|
442
|
+
- No manual re-authentication needed
|
|
443
|
+
- Seamless experience across all providers
|
|
444
|
+
|
|
445
|
+
### π¨ Custom Combos
|
|
446
|
+
|
|
447
|
+
- Create unlimited model combinations
|
|
448
|
+
- 6 strategies: fill-first, round-robin, power-of-two-choices, random, least-used, cost-optimized
|
|
449
|
+
- Share combos across devices with Cloud Sync
|
|
450
|
+
|
|
451
|
+
### π₯ Health Dashboard
|
|
452
|
+
|
|
453
|
+
- System status (uptime, version, memory usage)
|
|
454
|
+
- Circuit breaker states per provider (Closed/Open/Half-Open)
|
|
455
|
+
- Rate limit status and active lockouts
|
|
456
|
+
- Signature cache statistics
|
|
457
|
+
- Latency telemetry (p50/p95/p99) + prompt cache
|
|
458
|
+
- Reset health status with one click
|
|
459
|
+
|
|
460
|
+
### π§ Translator Playground
|
|
461
|
+
|
|
462
|
+
OmniRoute includes a powerful built-in Translator Playground with **4 modes** for debugging, testing, and monitoring API translations:
|
|
463
|
+
|
|
464
|
+
| Mode | Description |
|
|
465
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
466
|
+
| **π» Playground** | Direct format translation β paste any API request body and instantly see how OmniRoute translates it between provider formats (OpenAI β Claude β Gemini β Responses API). Includes example templates and format auto-detection. |
|
|
467
|
+
| **π¬ Chat Tester** | Send real chat requests through OmniRoute and see the full round-trip: your input, the translated request, the provider response, and the translated response back. Invaluable for validating combo routing. |
|
|
468
|
+
| **π§ͺ Test Bench** | Batch testing mode β define multiple test cases with different inputs and expected outputs, run them all at once, and compare results across providers and models. |
|
|
469
|
+
| **π± Live Monitor** | Real-time request monitoring β watch incoming requests as they flow through OmniRoute, see format translations happening live, and identify issues instantly. |
|
|
470
|
+
|
|
471
|
+
**Access:** Dashboard β Translator (sidebar)
|
|
472
|
+
|
|
473
|
+
### πΎ Cloud Sync
|
|
474
|
+
|
|
475
|
+
- Sync providers, combos, and settings across devices
|
|
476
|
+
- Automatic background sync
|
|
477
|
+
- Secure encrypted storage
|
|
478
|
+
|
|
479
|
+
</details>
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## π Setup Guide
|
|
484
|
+
|
|
485
|
+
<details>
|
|
486
|
+
<summary><b>π³ Subscription Providers</b></summary>
|
|
487
|
+
|
|
488
|
+
### Claude Code (Pro/Max)
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
Dashboard β Providers β Connect Claude Code
|
|
492
|
+
β OAuth login β Auto token refresh
|
|
493
|
+
β 5-hour + weekly quota tracking
|
|
494
|
+
|
|
495
|
+
Models:
|
|
496
|
+
cc/claude-opus-4-6
|
|
497
|
+
cc/claude-sonnet-4-5-20250929
|
|
498
|
+
cc/claude-haiku-4-5-20251001
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**Pro Tip:** Use Opus for complex tasks, Sonnet for speed. OmniRoute tracks quota per model!
|
|
502
|
+
|
|
503
|
+
### OpenAI Codex (Plus/Pro)
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
Dashboard β Providers β Connect Codex
|
|
507
|
+
β OAuth login (port 1455)
|
|
508
|
+
β 5-hour + weekly reset
|
|
509
|
+
|
|
510
|
+
Models:
|
|
511
|
+
cx/gpt-5.2-codex
|
|
512
|
+
cx/gpt-5.1-codex-max
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
### Gemini CLI (FREE 180K/month!)
|
|
516
|
+
|
|
517
|
+
```bash
|
|
518
|
+
Dashboard β Providers β Connect Gemini CLI
|
|
519
|
+
β Google OAuth
|
|
520
|
+
β 180K completions/month + 1K/day
|
|
521
|
+
|
|
522
|
+
Models:
|
|
523
|
+
gc/gemini-3-flash-preview
|
|
524
|
+
gc/gemini-2.5-pro
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
**Best Value:** Huge free tier! Use this before paid tiers.
|
|
528
|
+
|
|
529
|
+
### GitHub Copilot
|
|
530
|
+
|
|
531
|
+
```bash
|
|
532
|
+
Dashboard β Providers β Connect GitHub
|
|
533
|
+
β OAuth via GitHub
|
|
534
|
+
β Monthly reset (1st of month)
|
|
535
|
+
|
|
536
|
+
Models:
|
|
537
|
+
gh/gpt-5
|
|
538
|
+
gh/claude-4.5-sonnet
|
|
539
|
+
gh/gemini-3-pro
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
</details>
|
|
543
|
+
|
|
544
|
+
<details>
|
|
545
|
+
<summary><b>π API Key Providers</b></summary>
|
|
546
|
+
|
|
547
|
+
### NVIDIA NIM (FREE 1000 credits!)
|
|
548
|
+
|
|
549
|
+
1. Sign up: [build.nvidia.com](https://build.nvidia.com)
|
|
550
|
+
2. Get free API key (1000 inference credits included)
|
|
551
|
+
3. Dashboard β Add Provider β NVIDIA NIM:
|
|
552
|
+
- API Key: `nvapi-your-key`
|
|
553
|
+
|
|
554
|
+
**Models:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, and 50+ more
|
|
555
|
+
|
|
556
|
+
**Pro Tip:** OpenAI-compatible API β works seamlessly with OmniRoute's format translation!
|
|
557
|
+
|
|
558
|
+
### DeepSeek
|
|
559
|
+
|
|
560
|
+
1. Sign up: [platform.deepseek.com](https://platform.deepseek.com)
|
|
561
|
+
2. Get API key
|
|
562
|
+
3. Dashboard β Add Provider β DeepSeek
|
|
563
|
+
|
|
564
|
+
**Models:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
|
|
565
|
+
|
|
566
|
+
### Groq (Free Tier Available!)
|
|
567
|
+
|
|
568
|
+
1. Sign up: [console.groq.com](https://console.groq.com)
|
|
569
|
+
2. Get API key (free tier included)
|
|
570
|
+
3. Dashboard β Add Provider β Groq
|
|
571
|
+
|
|
572
|
+
**Models:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
|
|
573
|
+
|
|
574
|
+
**Pro Tip:** Ultra-fast inference β best for real-time coding!
|
|
575
|
+
|
|
576
|
+
### OpenRouter (100+ Models)
|
|
577
|
+
|
|
578
|
+
1. Sign up: [openrouter.ai](https://openrouter.ai)
|
|
579
|
+
2. Get API key
|
|
580
|
+
3. Dashboard β Add Provider β OpenRouter
|
|
581
|
+
|
|
582
|
+
**Models:** Access 100+ models from all major providers through a single API key.
|
|
583
|
+
|
|
584
|
+
</details>
|
|
585
|
+
|
|
586
|
+
<details>
|
|
587
|
+
<summary><b>π° Cheap Providers (Backup)</b></summary>
|
|
588
|
+
|
|
589
|
+
### GLM-4.7 (Daily reset, $0.6/1M)
|
|
590
|
+
|
|
591
|
+
1. Sign up: [Zhipu AI](https://open.bigmodel.cn/)
|
|
592
|
+
2. Get API key from Coding Plan
|
|
593
|
+
3. Dashboard β Add API Key:
|
|
594
|
+
- Provider: `glm`
|
|
595
|
+
- API Key: `your-key`
|
|
596
|
+
|
|
597
|
+
**Use:** `glm/glm-4.7`
|
|
598
|
+
|
|
599
|
+
**Pro Tip:** Coding Plan offers 3Γ quota at 1/7 cost! Reset daily 10:00 AM.
|
|
600
|
+
|
|
601
|
+
### MiniMax M2.1 (5h reset, $0.20/1M)
|
|
602
|
+
|
|
603
|
+
1. Sign up: [MiniMax](https://www.minimax.io/)
|
|
604
|
+
2. Get API key
|
|
605
|
+
3. Dashboard β Add API Key
|
|
606
|
+
|
|
607
|
+
**Use:** `minimax/MiniMax-M2.1`
|
|
608
|
+
|
|
609
|
+
**Pro Tip:** Cheapest option for long context (1M tokens)!
|
|
610
|
+
|
|
611
|
+
### Kimi K2 ($9/month flat)
|
|
612
|
+
|
|
613
|
+
1. Subscribe: [Moonshot AI](https://platform.moonshot.ai/)
|
|
614
|
+
2. Get API key
|
|
615
|
+
3. Dashboard β Add API Key
|
|
616
|
+
|
|
617
|
+
**Use:** `kimi/kimi-latest`
|
|
618
|
+
|
|
619
|
+
**Pro Tip:** Fixed $9/month for 10M tokens = $0.90/1M effective cost!
|
|
620
|
+
|
|
621
|
+
</details>
|
|
622
|
+
|
|
623
|
+
<details>
|
|
624
|
+
<summary><b>π FREE Providers (Emergency Backup)</b></summary>
|
|
625
|
+
|
|
626
|
+
### iFlow (8 FREE models)
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
Dashboard β Connect iFlow
|
|
630
|
+
β iFlow OAuth login
|
|
631
|
+
β Unlimited usage
|
|
632
|
+
|
|
633
|
+
Models:
|
|
634
|
+
if/kimi-k2-thinking
|
|
635
|
+
if/qwen3-coder-plus
|
|
636
|
+
if/glm-4.7
|
|
637
|
+
if/minimax-m2
|
|
638
|
+
if/deepseek-r1
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
### Qwen (3 FREE models)
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
Dashboard β Connect Qwen
|
|
645
|
+
β Device code authorization
|
|
646
|
+
β Unlimited usage
|
|
647
|
+
|
|
648
|
+
Models:
|
|
649
|
+
qw/qwen3-coder-plus
|
|
650
|
+
qw/qwen3-coder-flash
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
### Kiro (Claude FREE)
|
|
654
|
+
|
|
655
|
+
```bash
|
|
656
|
+
Dashboard β Connect Kiro
|
|
657
|
+
β AWS Builder ID or Google/GitHub
|
|
658
|
+
β Unlimited usage
|
|
659
|
+
|
|
660
|
+
Models:
|
|
661
|
+
kr/claude-sonnet-4.5
|
|
662
|
+
kr/claude-haiku-4.5
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
</details>
|
|
666
|
+
|
|
667
|
+
<details>
|
|
668
|
+
<summary><b>π¨ Create Combos</b></summary>
|
|
669
|
+
|
|
670
|
+
### Example 1: Maximize Subscription β Cheap Backup
|
|
671
|
+
|
|
672
|
+
```
|
|
673
|
+
Dashboard β Combos β Create New
|
|
674
|
+
|
|
675
|
+
Name: premium-coding
|
|
676
|
+
Models:
|
|
677
|
+
1. cc/claude-opus-4-6 (Subscription primary)
|
|
678
|
+
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
|
|
679
|
+
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
|
|
680
|
+
|
|
681
|
+
Use in CLI: premium-coding
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
### Example 2: Free-Only (Zero Cost)
|
|
685
|
+
|
|
686
|
+
```
|
|
687
|
+
Name: free-combo
|
|
688
|
+
Models:
|
|
689
|
+
1. gc/gemini-3-flash-preview (180K free/month)
|
|
690
|
+
2. if/kimi-k2-thinking (unlimited)
|
|
691
|
+
3. qw/qwen3-coder-plus (unlimited)
|
|
692
|
+
|
|
693
|
+
Cost: $0 forever!
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
</details>
|
|
697
|
+
|
|
698
|
+
<details>
|
|
699
|
+
<summary><b>π§ CLI Integration</b></summary>
|
|
700
|
+
|
|
701
|
+
### Cursor IDE
|
|
702
|
+
|
|
703
|
+
```
|
|
704
|
+
Settings β Models β Advanced:
|
|
705
|
+
OpenAI API Base URL: http://localhost:20128/v1
|
|
706
|
+
OpenAI API Key: [from OmniRoute dashboard]
|
|
707
|
+
Model: cc/claude-opus-4-6
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
### Claude Code
|
|
711
|
+
|
|
712
|
+
Use the **CLI Tools** page in the dashboard for one-click configuration, or edit `~/.claude/settings.json` manually.
|
|
713
|
+
|
|
714
|
+
### Codex CLI
|
|
715
|
+
|
|
716
|
+
```bash
|
|
717
|
+
export OPENAI_BASE_URL="http://localhost:20128"
|
|
718
|
+
export OPENAI_API_KEY="your-omniroute-api-key"
|
|
719
|
+
|
|
720
|
+
codex "your prompt"
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
### OpenClaw
|
|
724
|
+
|
|
725
|
+
**Option 1 β Dashboard (recommended):**
|
|
726
|
+
|
|
727
|
+
```
|
|
728
|
+
Dashboard β CLI Tools β OpenClaw β Select Model β Apply
|
|
729
|
+
```
|
|
730
|
+
|
|
731
|
+
**Option 2 β Manual:** Edit `~/.openclaw/openclaw.json`:
|
|
732
|
+
|
|
733
|
+
```json
|
|
734
|
+
{
|
|
735
|
+
"models": {
|
|
736
|
+
"providers": {
|
|
737
|
+
"omniroute": {
|
|
738
|
+
"baseUrl": "http://127.0.0.1:20128/v1",
|
|
739
|
+
"apiKey": "sk_omniroute",
|
|
740
|
+
"api": "openai-completions"
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
> **Note:** OpenClaw only works with local OmniRoute. Use `127.0.0.1` instead of `localhost` to avoid IPv6 resolution issues.
|
|
748
|
+
|
|
749
|
+
### Cline / Continue / RooCode
|
|
750
|
+
|
|
751
|
+
```
|
|
752
|
+
Settings β API Configuration:
|
|
753
|
+
Provider: OpenAI Compatible
|
|
754
|
+
Base URL: http://localhost:20128/v1
|
|
755
|
+
API Key: [from OmniRoute dashboard]
|
|
756
|
+
Model: if/kimi-k2-thinking
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
</details>
|
|
760
|
+
|
|
761
|
+
---
|
|
762
|
+
|
|
763
|
+
## π Available Models
|
|
764
|
+
|
|
765
|
+
<details>
|
|
766
|
+
<summary><b>View all available models</b></summary>
|
|
767
|
+
|
|
768
|
+
**Claude Code (`cc/`)** - Pro/Max:
|
|
769
|
+
|
|
770
|
+
- `cc/claude-opus-4-6`
|
|
771
|
+
- `cc/claude-sonnet-4-5-20250929`
|
|
772
|
+
- `cc/claude-haiku-4-5-20251001`
|
|
773
|
+
|
|
774
|
+
**Codex (`cx/`)** - Plus/Pro:
|
|
775
|
+
|
|
776
|
+
- `cx/gpt-5.2-codex`
|
|
777
|
+
- `cx/gpt-5.1-codex-max`
|
|
778
|
+
|
|
779
|
+
**Gemini CLI (`gc/`)** - FREE:
|
|
780
|
+
|
|
781
|
+
- `gc/gemini-3-flash-preview`
|
|
782
|
+
- `gc/gemini-2.5-pro`
|
|
783
|
+
|
|
784
|
+
**GitHub Copilot (`gh/`)**:
|
|
785
|
+
|
|
786
|
+
- `gh/gpt-5`
|
|
787
|
+
- `gh/claude-4.5-sonnet`
|
|
788
|
+
|
|
789
|
+
**NVIDIA NIM (`nvidia/`)** - FREE credits:
|
|
790
|
+
|
|
791
|
+
- `nvidia/llama-3.3-70b-instruct`
|
|
792
|
+
- `nvidia/mistral-7b-instruct`
|
|
793
|
+
- 50+ more models on [build.nvidia.com](https://build.nvidia.com)
|
|
794
|
+
|
|
795
|
+
**GLM (`glm/`)** - $0.6/1M:
|
|
796
|
+
|
|
797
|
+
- `glm/glm-4.7`
|
|
798
|
+
|
|
799
|
+
**MiniMax (`minimax/`)** - $0.2/1M:
|
|
800
|
+
|
|
801
|
+
- `minimax/MiniMax-M2.1`
|
|
802
|
+
|
|
803
|
+
**iFlow (`if/`)** - FREE:
|
|
804
|
+
|
|
805
|
+
- `if/kimi-k2-thinking`
|
|
806
|
+
- `if/qwen3-coder-plus`
|
|
807
|
+
- `if/deepseek-r1`
|
|
808
|
+
- `if/glm-4.7`
|
|
809
|
+
- `if/minimax-m2`
|
|
810
|
+
|
|
811
|
+
**Qwen (`qw/`)** - FREE:
|
|
812
|
+
|
|
813
|
+
- `qw/qwen3-coder-plus`
|
|
814
|
+
- `qw/qwen3-coder-flash`
|
|
815
|
+
|
|
816
|
+
**Kiro (`kr/`)** - FREE:
|
|
817
|
+
|
|
818
|
+
- `kr/claude-sonnet-4.5`
|
|
819
|
+
- `kr/claude-haiku-4.5`
|
|
820
|
+
|
|
821
|
+
**OpenRouter (`or/`)** - 100+ models:
|
|
822
|
+
|
|
823
|
+
- `or/anthropic/claude-4-sonnet`
|
|
824
|
+
- `or/google/gemini-2.5-pro`
|
|
825
|
+
- Any model from [openrouter.ai/models](https://openrouter.ai/models)
|
|
826
|
+
|
|
827
|
+
</details>
|
|
226
828
|
|
|
227
829
|
---
|
|
228
830
|
|
|
@@ -238,13 +840,6 @@ The pre-loaded "OmniRoute Golden Set" contains 10 test cases covering:
|
|
|
238
840
|
- JSON format compliance, translation, markdown
|
|
239
841
|
- Safety refusal (harmful content), counting, boolean logic
|
|
240
842
|
|
|
241
|
-
### How It Works
|
|
242
|
-
|
|
243
|
-
1. Click **"Run Eval"** on a suite in the dashboard
|
|
244
|
-
2. Each test case is sent to your proxy endpoint (`/v1/chat/completions`)
|
|
245
|
-
3. Real LLM responses are collected and evaluated against expected criteria
|
|
246
|
-
4. Results show pass/fail status, latency per case, and overall pass rate
|
|
247
|
-
|
|
248
843
|
### Evaluation Strategies
|
|
249
844
|
|
|
250
845
|
| Strategy | Description | Example |
|
|
@@ -254,47 +849,67 @@ The pre-loaded "OmniRoute Golden Set" contains 10 test cases covering:
|
|
|
254
849
|
| `regex` | Output must match regex pattern | `"1.*2.*3"` |
|
|
255
850
|
| `custom` | Custom JS function returns true/false | `(output) => output.length > 10` |
|
|
256
851
|
|
|
257
|
-
|
|
852
|
+
---
|
|
258
853
|
|
|
259
|
-
|
|
260
|
-
# List all eval suites
|
|
261
|
-
curl http://localhost:20128/api/evals
|
|
854
|
+
## π Troubleshooting
|
|
262
855
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
-H 'Content-Type: application/json' \
|
|
266
|
-
-d '{"suiteId": "golden-set", "outputs": {"gs-01": "Hello there!", "gs-02": "4"}}'
|
|
856
|
+
<details>
|
|
857
|
+
<summary><b>Click to expand troubleshooting guide</b></summary>
|
|
267
858
|
|
|
268
|
-
|
|
269
|
-
curl http://localhost:20128/api/evals/golden-set
|
|
270
|
-
```
|
|
859
|
+
**"Language model did not provide messages"**
|
|
271
860
|
|
|
272
|
-
|
|
861
|
+
- Provider quota exhausted β Check dashboard quota tracker
|
|
862
|
+
- Solution: Use combo fallback or switch to cheaper tier
|
|
273
863
|
|
|
274
|
-
|
|
864
|
+
**Rate limiting**
|
|
275
865
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
866
|
+
- Subscription quota out β Fallback to GLM/MiniMax
|
|
867
|
+
- Add combo: `cc/claude-opus-4-6 β glm/glm-4.7 β if/kimi-k2-thinking`
|
|
868
|
+
|
|
869
|
+
**OAuth token expired**
|
|
870
|
+
|
|
871
|
+
- Auto-refreshed by OmniRoute
|
|
872
|
+
- If issues persist: Dashboard β Provider β Reconnect
|
|
873
|
+
|
|
874
|
+
**High costs**
|
|
875
|
+
|
|
876
|
+
- Check usage stats in Dashboard β Costs
|
|
877
|
+
- Switch primary model to GLM/MiniMax
|
|
878
|
+
- Use free tier (Gemini CLI, iFlow) for non-critical tasks
|
|
879
|
+
|
|
880
|
+
**Dashboard opens on wrong port**
|
|
881
|
+
|
|
882
|
+
- Set `PORT=20128` and `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
|
|
883
|
+
|
|
884
|
+
**Cloud sync errors**
|
|
885
|
+
|
|
886
|
+
- Verify `BASE_URL` points to your running instance
|
|
887
|
+
- Verify `CLOUD_URL` points to your expected cloud endpoint
|
|
888
|
+
- Keep `NEXT_PUBLIC_*` values aligned with server-side values
|
|
889
|
+
|
|
890
|
+
**First login not working**
|
|
891
|
+
|
|
892
|
+
- Check `INITIAL_PASSWORD` in `.env`
|
|
893
|
+
- If unset, fallback password is `123456`
|
|
894
|
+
|
|
895
|
+
**No request logs**
|
|
896
|
+
|
|
897
|
+
- Set `ENABLE_REQUEST_LOGS=true` in `.env`
|
|
898
|
+
|
|
899
|
+
**Connection test shows "Invalid" for OpenAI-compatible providers**
|
|
900
|
+
|
|
901
|
+
- Many providers don't expose a `/models` endpoint
|
|
902
|
+
- OmniRoute v1.0.0+ includes fallback validation via chat completions
|
|
903
|
+
- Ensure base URL includes `/v1` suffix
|
|
904
|
+
|
|
905
|
+
</details>
|
|
291
906
|
|
|
292
907
|
---
|
|
293
908
|
|
|
294
909
|
## π οΈ Tech Stack
|
|
295
910
|
|
|
296
911
|
- **Runtime**: Node.js 20+
|
|
297
|
-
- **Language**: TypeScript 5.9 β **100% TypeScript** across `src/` and `open-sse/` (
|
|
912
|
+
- **Language**: TypeScript 5.9 β **100% TypeScript** across `src/` and `open-sse/` (v1.0.0)
|
|
298
913
|
- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
|
|
299
914
|
- **Database**: LowDB (JSON) + SQLite (domain state + proxy logs)
|
|
300
915
|
- **Streaming**: Server-Sent Events (SSE)
|
|
@@ -310,15 +925,61 @@ registerSuite({
|
|
|
310
925
|
|
|
311
926
|
## π Documentation
|
|
312
927
|
|
|
313
|
-
| Document
|
|
314
|
-
|
|
|
315
|
-
| [User Guide](docs/USER_GUIDE.md)
|
|
316
|
-
| [API Reference](docs/API_REFERENCE.md)
|
|
317
|
-
| [Troubleshooting](docs/TROUBLESHOOTING.md)
|
|
318
|
-
| [Architecture](docs/ARCHITECTURE.md)
|
|
319
|
-
| [Contributing](CONTRIBUTING.md)
|
|
320
|
-
| [OpenAPI Spec](docs/openapi.yaml)
|
|
321
|
-
| [Security Policy](SECURITY.md)
|
|
928
|
+
| Document | Description |
|
|
929
|
+
| -------------------------------------------- | ---------------------------------------------- |
|
|
930
|
+
| [User Guide](docs/USER_GUIDE.md) | Providers, combos, CLI integration, deployment |
|
|
931
|
+
| [API Reference](docs/API_REFERENCE.md) | All endpoints with examples |
|
|
932
|
+
| [Troubleshooting](docs/TROUBLESHOOTING.md) | Common problems and solutions |
|
|
933
|
+
| [Architecture](docs/ARCHITECTURE.md) | System architecture and internals |
|
|
934
|
+
| [Contributing](CONTRIBUTING.md) | Development setup and guidelines |
|
|
935
|
+
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 specification |
|
|
936
|
+
| [Security Policy](SECURITY.md) | Vulnerability reporting and security practices |
|
|
937
|
+
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Complete guide: VM + nginx + Cloudflare setup |
|
|
938
|
+
| [Features Gallery](docs/FEATURES.md) | Visual dashboard tour with screenshots |
|
|
939
|
+
|
|
940
|
+
### πΈ Dashboard Preview
|
|
941
|
+
|
|
942
|
+
<details>
|
|
943
|
+
<summary><b>Click to see dashboard screenshots</b></summary>
|
|
944
|
+
|
|
945
|
+
| Page | Screenshot |
|
|
946
|
+
| -------------- | ------------------------------------------------- |
|
|
947
|
+
| **Providers** |  |
|
|
948
|
+
| **Combos** |  |
|
|
949
|
+
| **Analytics** |  |
|
|
950
|
+
| **Health** |  |
|
|
951
|
+
| **Translator** |  |
|
|
952
|
+
| **Settings** |  |
|
|
953
|
+
| **CLI Tools** |  |
|
|
954
|
+
| **Usage Logs** |  |
|
|
955
|
+
| **Endpoint** |  |
|
|
956
|
+
|
|
957
|
+
</details>
|
|
958
|
+
|
|
959
|
+
---
|
|
960
|
+
|
|
961
|
+
## πΊοΈ Roadmap
|
|
962
|
+
|
|
963
|
+
OmniRoute has **210+ features planned** across multiple development phases. Here are the key areas:
|
|
964
|
+
|
|
965
|
+
| Category | Planned Features | Highlights |
|
|
966
|
+
| ----------------------------- | ---------------- | -------------------------------------------------------------------------------------- |
|
|
967
|
+
| π§ **Routing & Intelligence** | 25+ | Lowest-latency routing, tag-based routing, quota preflight, P2C account selection |
|
|
968
|
+
| π **Security & Compliance** | 20+ | SSRF hardening, credential cloaking, rate-limit per endpoint, management key scoping |
|
|
969
|
+
| π **Observability** | 15+ | OpenTelemetry integration, real-time quota monitoring, cost tracking per model |
|
|
970
|
+
| π **Provider Integrations** | 20+ | Dynamic model registry, provider cooldowns, multi-account Codex, Copilot quota parsing |
|
|
971
|
+
| β‘ **Performance** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API |
|
|
972
|
+
| π **Ecosystem** | 10+ | WebSocket API, config hot-reload, distributed config store, commercial mode |
|
|
973
|
+
|
|
974
|
+
### π Coming Soon
|
|
975
|
+
|
|
976
|
+
- π **OpenCode Integration** β Native provider support for the OpenCode AI coding IDE
|
|
977
|
+
- π **TRAE Integration** β Full support for the TRAE AI development framework
|
|
978
|
+
- π¦ **Batch API** β Asynchronous batch processing for bulk requests
|
|
979
|
+
- π― **Tag-Based Routing** β Route requests based on custom tags and metadata
|
|
980
|
+
- π° **Lowest-Cost Strategy** β Automatically select the cheapest available provider
|
|
981
|
+
|
|
982
|
+
> π Full feature specifications available in [`docs/new-features/`](docs/new-features/) (217 detailed specs)
|
|
322
983
|
|
|
323
984
|
---
|
|
324
985
|
|
|
@@ -349,14 +1010,28 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
|
|
|
349
1010
|
|
|
350
1011
|
```bash
|
|
351
1012
|
# Create a release β npm publish happens automatically
|
|
352
|
-
gh release create
|
|
1013
|
+
gh release create v1.0.0 --title "v1.0.0" --generate-notes
|
|
353
1014
|
```
|
|
354
1015
|
|
|
355
1016
|
---
|
|
356
1017
|
|
|
1018
|
+
## π Star History
|
|
1019
|
+
|
|
1020
|
+
<a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
|
|
1021
|
+
<picture>
|
|
1022
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
|
|
1023
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1024
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1025
|
+
</picture>
|
|
1026
|
+
</a>
|
|
1027
|
+
|
|
1028
|
+
---
|
|
1029
|
+
|
|
357
1030
|
## π Acknowledgments
|
|
358
1031
|
|
|
359
|
-
Special thanks to **
|
|
1032
|
+
Special thanks to **[9router](https://github.com/decolua/9router)** by **[decolua](https://github.com/decolua)** β the original project that inspired this fork. OmniRoute builds upon that incredible foundation with additional features, multi-modal APIs, and a full TypeScript rewrite.
|
|
1033
|
+
|
|
1034
|
+
Special thanks to **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** β the original Go implementation that inspired this JavaScript port.
|
|
360
1035
|
|
|
361
1036
|
---
|
|
362
1037
|
|