omniroute 1.6.4 → 1.6.5
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.ar.md +108 -178
- package/README.bg.md +108 -259
- package/README.da.md +108 -259
- package/README.de.md +61 -129
- package/README.es.md +61 -129
- package/README.fi.md +109 -260
- package/README.fr.md +61 -129
- package/README.he.md +108 -259
- package/README.hu.md +108 -259
- package/README.id.md +108 -259
- package/README.in.md +51 -140
- package/README.it.md +61 -129
- package/README.ja.md +108 -178
- package/README.ko.md +108 -259
- package/README.md +135 -286
- package/README.ms.md +108 -259
- package/README.nl.md +108 -259
- package/README.no.md +108 -259
- package/README.phi.md +109 -260
- package/README.pl.md +109 -260
- package/README.pt-BR.md +61 -129
- package/README.pt.md +111 -262
- package/README.ro.md +109 -260
- package/README.ru.md +61 -129
- package/README.sk.md +108 -259
- package/README.sv.md +108 -259
- package/README.th.md +108 -259
- package/README.uk-UA.md +108 -259
- package/README.vi.md +108 -259
- package/README.zh-CN.md +61 -129
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +34 -34
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/required-server-files.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +3 -3
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +4 -4
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
- 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 +3 -3
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route.js +2 -2
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route.js +1 -1
- package/app/.next/server/app/api/logs/console/route.js.nft.json +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route.js +2 -2
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +2 -2
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +2 -2
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route.js +2 -2
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route.js +2 -2
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +2 -2
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +2 -2
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route.js +2 -2
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js +2 -2
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +2 -2
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +3 -3
- package/app/.next/server/app/docs/page.js.nft.json +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page.js +2 -2
- package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page.js +2 -2
- package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page.js +2 -2
- package/app/.next/server/app/privacy/page.js.nft.json +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page.js +2 -2
- package/app/.next/server/app/terms/page.js.nft.json +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +34 -34
- package/app/.next/server/chunks/2180.js +1 -1
- package/app/.next/server/chunks/2910.js +1 -1
- package/app/.next/server/chunks/3498.js +1 -1
- package/app/.next/server/chunks/4488.js +1 -1
- package/app/.next/server/chunks/5248.js +1 -0
- package/app/.next/server/chunks/5393.js +2 -0
- package/app/.next/server/chunks/7109.js +1 -1
- package/app/.next/server/chunks/8020.js +3 -3
- package/app/.next/server/chunks/9824.js +2 -2
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +3 -3
- package/app/.next/server/next-font-manifest.js +1 -1
- package/app/.next/server/next-font-manifest.json +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{5846-9aa3c1bcc8f44228.js → 5846-79cfb6380345004d.js} +1 -1
- package/app/.next/static/chunks/{993-95359de84711765c.js → 993-8fccc90073c1451f.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-6f1750506292c630.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/{page-20786f2c7fdbab57.js → page-52f76c7c91444ec2.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-1dd4d0c348a7b0a6.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-11e68927df2ceb77.js +15 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-85a3e6a423aceded.js → page-3dce7fccfcf177dd.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-cdb8071441476da9.js → page-3ed2a7685adf9b91.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-1420c3ca376f1585.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/{page-b480b3cb318782d7.js → page-9a6519bf1468f16e.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-f4a2d6d07df5ddc4.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-ffdc1dcf074c7528.js → page-833d24f322a20f5a.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/{page-5378e9473a20cd6a.js → page-d424641c7e428be9.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-388840686801f3f5.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c8ffb212f855704.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{error-f0730d6d62d02e82.js → error-2f0177a2197dd556.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{loading-59cbccd6d5185ca9.js → loading-99ab4d478260d53b.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-31cdb6e15134d8c2.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-40dc5ac82df708e9.js → page-1f022385b812b987.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{error-cc85c3ff1f63aea6.js → error-e844916e39172c8b.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{loading-19fc771a287bcb4c.js → loading-bb068659ee679ff4.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-1393d4935fc087cf.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-cbe9b21b62bbc2bd.js → page-f10a8d4bb8236913.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-534e13a69cb60a4f.js → page-83b07523f81d6282.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-86a076d820931a30.js → page-9cc99ab874fc36e7.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/{layout-16302e54f9ef3d0e.js → layout-00d5d56af65098a9.js} +1 -1
- package/app/.next/static/chunks/app/callback/{page-0f0ebc0820dd18a5.js → page-585a53f7dc6a30f1.js} +1 -1
- package/app/.next/static/chunks/app/docs/{page-3658b3f15df3a19e.js → page-2fe9dcbeb3f738c0.js} +1 -1
- package/app/.next/static/chunks/app/{error-f918d9961a2368d3.js → error-0d59fc4efafbc38c.js} +1 -1
- package/app/.next/static/chunks/app/forbidden/page-df886dfa2d5bd9fa.js +1 -0
- package/app/.next/static/chunks/app/forgot-password/page-2a495f0b0c653ab4.js +1 -0
- package/app/.next/static/chunks/app/global-error-41eef2a698918fc1.js +1 -0
- package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +1 -0
- package/app/.next/static/chunks/app/{layout-070972eb026af319.js → layout-108592eafb959363.js} +1 -1
- package/app/.next/static/chunks/app/login/{page-6c769465e407368f.js → page-121c612ee459e7c2.js} +1 -1
- package/app/.next/static/chunks/app/not-found-1dbd8c3e506fe00f.js +1 -0
- package/app/.next/static/chunks/app/privacy/{page-3658b3f15df3a19e.js → page-2fe9dcbeb3f738c0.js} +1 -1
- package/app/.next/static/chunks/app/terms/{page-3658b3f15df3a19e.js → page-2fe9dcbeb3f738c0.js} +1 -1
- package/app/.next/static/chunks/{main-app-ae230f6bf51a5edb.js → main-app-c9da11a8061df107.js} +1 -1
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.env +0 -110
- package/app/.next/server/chunks/3801.js +0 -2
- package/app/.next/server/chunks/9548.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-ce5214cdf489c9df.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-12d772841a253032.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c9b98846b8479f3f.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-6453cc8ebb7db016.js +0 -15
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ef0038a40cb26943.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-0ae1d6cc5fc4671f.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-5c87e49261a22fd5.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b38f2d03bae8166a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-a7fb36872be60fe0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-085a5e0a1d0de919.js +0 -1
- package/app/.next/static/chunks/app/forbidden/page-77657dfa95e61cd8.js +0 -1
- package/app/.next/static/chunks/app/forgot-password/page-be3bacc125c30a6b.js +0 -1
- package/app/.next/static/chunks/app/global-error-504ff9093e2a997d.js +0 -1
- package/app/.next/static/chunks/app/landing/page-75b0c988db383cfc.js +0 -1
- package/app/.next/static/chunks/app/not-found-11b712c853d93172.js +0 -1
- package/app/logs/application/app.log +0 -6697
- /package/app/.next/static/{Wr58mRLPo8-4Zh93woSiG → 3vFcTa-1x8yNMMbXwOlmb}/_buildManifest.js +0 -0
- /package/app/.next/static/{Wr58mRLPo8-4Zh93woSiG → 3vFcTa-1x8yNMMbXwOlmb}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
# 🚀 OmniRoute — The Free AI Gateway
|
|
5
5
|
|
|
6
|
-
🌐 **[English](#-omniroute--the-free-ai-gateway)** | **[Português (BR)](#-omniroute--gateway-de-ia-gratuito)**
|
|
7
|
-
|
|
8
6
|
### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback.
|
|
9
7
|
|
|
10
8
|
_Your universal API proxy — one endpoint, 36+ providers, zero downtime._
|
|
@@ -13,6 +11,20 @@ _Your universal API proxy — one endpoint, 36+ providers, zero downtime._
|
|
|
13
11
|
|
|
14
12
|
---
|
|
15
13
|
|
|
14
|
+
[](https://www.npmjs.com/package/omniroute)
|
|
15
|
+
[](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
16
|
+
[](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
|
|
17
|
+
[](https://omniroute.online)
|
|
18
|
+
[](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
19
|
+
|
|
20
|
+
[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
21
|
+
|
|
22
|
+
🌐 **Available in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italiano](README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी](README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [Magyar](README.hu.md) | 🇮🇩 [Bahasa Indonesia](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Nederlands](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Portugal)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Polski](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [Filipino](README.phi.md)
|
|
23
|
+
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
16
28
|
### 🤖 Free AI Provider for your favorite coding agents
|
|
17
29
|
|
|
18
30
|
_Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway for unlimited coding._
|
|
@@ -98,17 +110,15 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway f
|
|
|
98
110
|
|
|
99
111
|
---
|
|
100
112
|
|
|
101
|
-
|
|
102
|
-
[](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
103
|
-
[](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
|
|
104
|
-
[](https://omniroute.online)
|
|
105
|
-
[](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
106
|
-
|
|
107
|
-
[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
113
|
+
## 📧 Support
|
|
108
114
|
|
|
109
|
-
|
|
115
|
+
> 💬 **Join our community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Get help, share tips, and stay updated.
|
|
110
116
|
|
|
111
|
-
|
|
117
|
+
- **Website**: [omniroute.online](https://omniroute.online)
|
|
118
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
119
|
+
- **Issues**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
120
|
+
- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
121
|
+
- **Original Project**: [9router by decolua](https://github.com/decolua/9router)
|
|
112
122
|
|
|
113
123
|
---
|
|
114
124
|
|
|
@@ -321,67 +331,6 @@ When minimized, OmniRoute lives in your system tray with quick actions:
|
|
|
321
331
|
|
|
322
332
|
---
|
|
323
333
|
|
|
324
|
-
## 🎯 Use Cases
|
|
325
|
-
|
|
326
|
-
### Case 1: "I have Claude Pro subscription"
|
|
327
|
-
|
|
328
|
-
**Problem:** Quota expires unused, rate limits during heavy coding
|
|
329
|
-
|
|
330
|
-
```
|
|
331
|
-
Combo: "maximize-claude"
|
|
332
|
-
1. cc/claude-opus-4-6 (use subscription fully)
|
|
333
|
-
2. glm/glm-4.7 (cheap backup when quota out)
|
|
334
|
-
3. if/kimi-k2-thinking (free emergency fallback)
|
|
335
|
-
|
|
336
|
-
Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
|
|
337
|
-
vs. $20 + hitting limits = frustration
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
### Case 2: "I want zero cost"
|
|
341
|
-
|
|
342
|
-
**Problem:** Can't afford subscriptions, need reliable AI coding
|
|
343
|
-
|
|
344
|
-
```
|
|
345
|
-
Combo: "free-forever"
|
|
346
|
-
1. gc/gemini-3-flash (180K free/month)
|
|
347
|
-
2. if/kimi-k2-thinking (unlimited free)
|
|
348
|
-
3. qw/qwen3-coder-plus (unlimited free)
|
|
349
|
-
|
|
350
|
-
Monthly cost: $0
|
|
351
|
-
Quality: Production-ready models
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
### Case 3: "I need 24/7 coding, no interruptions"
|
|
355
|
-
|
|
356
|
-
**Problem:** Deadlines, can't afford downtime
|
|
357
|
-
|
|
358
|
-
```
|
|
359
|
-
Combo: "always-on"
|
|
360
|
-
1. cc/claude-opus-4-6 (best quality)
|
|
361
|
-
2. cx/gpt-5.2-codex (second subscription)
|
|
362
|
-
3. glm/glm-4.7 (cheap, resets daily)
|
|
363
|
-
4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
|
|
364
|
-
5. if/kimi-k2-thinking (free unlimited)
|
|
365
|
-
|
|
366
|
-
Result: 5 layers of fallback = zero downtime
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
### Case 4: "I want FREE AI in OpenClaw"
|
|
370
|
-
|
|
371
|
-
**Problem:** Need AI assistant in messaging apps, completely free
|
|
372
|
-
|
|
373
|
-
```
|
|
374
|
-
Combo: "openclaw-free"
|
|
375
|
-
1. if/glm-4.7 (unlimited free)
|
|
376
|
-
2. if/minimax-m2.1 (unlimited free)
|
|
377
|
-
3. if/kimi-k2-thinking (unlimited free)
|
|
378
|
-
|
|
379
|
-
Monthly cost: $0
|
|
380
|
-
Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
---
|
|
384
|
-
|
|
385
334
|
## 💡 Key Features
|
|
386
335
|
|
|
387
336
|
### 🧠 Core Routing & Intelligence
|
|
@@ -542,6 +491,67 @@ OmniRoute includes a powerful built-in Translator Playground with **4 modes** fo
|
|
|
542
491
|
|
|
543
492
|
---
|
|
544
493
|
|
|
494
|
+
## 🎯 Use Cases
|
|
495
|
+
|
|
496
|
+
### Case 1: "I have Claude Pro subscription"
|
|
497
|
+
|
|
498
|
+
**Problem:** Quota expires unused, rate limits during heavy coding
|
|
499
|
+
|
|
500
|
+
```
|
|
501
|
+
Combo: "maximize-claude"
|
|
502
|
+
1. cc/claude-opus-4-6 (use subscription fully)
|
|
503
|
+
2. glm/glm-4.7 (cheap backup when quota out)
|
|
504
|
+
3. if/kimi-k2-thinking (free emergency fallback)
|
|
505
|
+
|
|
506
|
+
Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
|
|
507
|
+
vs. $20 + hitting limits = frustration
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Case 2: "I want zero cost"
|
|
511
|
+
|
|
512
|
+
**Problem:** Can't afford subscriptions, need reliable AI coding
|
|
513
|
+
|
|
514
|
+
```
|
|
515
|
+
Combo: "free-forever"
|
|
516
|
+
1. gc/gemini-3-flash (180K free/month)
|
|
517
|
+
2. if/kimi-k2-thinking (unlimited free)
|
|
518
|
+
3. qw/qwen3-coder-plus (unlimited free)
|
|
519
|
+
|
|
520
|
+
Monthly cost: $0
|
|
521
|
+
Quality: Production-ready models
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### Case 3: "I need 24/7 coding, no interruptions"
|
|
525
|
+
|
|
526
|
+
**Problem:** Deadlines, can't afford downtime
|
|
527
|
+
|
|
528
|
+
```
|
|
529
|
+
Combo: "always-on"
|
|
530
|
+
1. cc/claude-opus-4-6 (best quality)
|
|
531
|
+
2. cx/gpt-5.2-codex (second subscription)
|
|
532
|
+
3. glm/glm-4.7 (cheap, resets daily)
|
|
533
|
+
4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
|
|
534
|
+
5. if/kimi-k2-thinking (free unlimited)
|
|
535
|
+
|
|
536
|
+
Result: 5 layers of fallback = zero downtime
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
### Case 4: "I want FREE AI in OpenClaw"
|
|
540
|
+
|
|
541
|
+
**Problem:** Need AI assistant in messaging apps, completely free
|
|
542
|
+
|
|
543
|
+
```
|
|
544
|
+
Combo: "openclaw-free"
|
|
545
|
+
1. if/glm-4.7 (unlimited free)
|
|
546
|
+
2. if/minimax-m2.1 (unlimited free)
|
|
547
|
+
3. if/kimi-k2-thinking (unlimited free)
|
|
548
|
+
|
|
549
|
+
Monthly cost: $0
|
|
550
|
+
Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
545
555
|
## 📖 Setup Guide
|
|
546
556
|
|
|
547
557
|
<details>
|
|
@@ -822,104 +832,90 @@ Settings → API Configuration:
|
|
|
822
832
|
|
|
823
833
|
---
|
|
824
834
|
|
|
825
|
-
##
|
|
826
|
-
|
|
827
|
-
<details>
|
|
828
|
-
<summary><b>View all available models</b></summary>
|
|
829
|
-
|
|
830
|
-
**Claude Code (`cc/`)** - Pro/Max:
|
|
831
|
-
|
|
832
|
-
- `cc/claude-opus-4-6`
|
|
833
|
-
- `cc/claude-sonnet-4-5-20250929`
|
|
834
|
-
- `cc/claude-haiku-4-5-20251001`
|
|
835
|
-
|
|
836
|
-
**Codex (`cx/`)** - Plus/Pro:
|
|
837
|
-
|
|
838
|
-
- `cx/gpt-5.2-codex`
|
|
839
|
-
- `cx/gpt-5.1-codex-max`
|
|
840
|
-
|
|
841
|
-
**Gemini CLI (`gc/`)** - FREE:
|
|
835
|
+
## 🧪 Evaluations (Evals)
|
|
842
836
|
|
|
843
|
-
-
|
|
844
|
-
- `gc/gemini-2.5-pro`
|
|
837
|
+
OmniRoute includes a built-in evaluation framework to test LLM response quality against a golden set. Access it via **Analytics → Evals** in the dashboard.
|
|
845
838
|
|
|
846
|
-
|
|
839
|
+
### Built-in Golden Set
|
|
847
840
|
|
|
848
|
-
-
|
|
849
|
-
- `gh/claude-4.5-sonnet`
|
|
841
|
+
The pre-loaded "OmniRoute Golden Set" contains 10 test cases covering:
|
|
850
842
|
|
|
851
|
-
|
|
843
|
+
- Greetings, math, geography, code generation
|
|
844
|
+
- JSON format compliance, translation, markdown
|
|
845
|
+
- Safety refusal (harmful content), counting, boolean logic
|
|
852
846
|
|
|
853
|
-
|
|
854
|
-
- `nvidia/mistral-7b-instruct`
|
|
855
|
-
- 50+ more models on [build.nvidia.com](https://build.nvidia.com)
|
|
847
|
+
### Evaluation Strategies
|
|
856
848
|
|
|
857
|
-
|
|
849
|
+
| Strategy | Description | Example |
|
|
850
|
+
| ---------- | ------------------------------------------------ | -------------------------------- |
|
|
851
|
+
| `exact` | Output must match exactly | `"4"` |
|
|
852
|
+
| `contains` | Output must contain substring (case-insensitive) | `"Paris"` |
|
|
853
|
+
| `regex` | Output must match regex pattern | `"1.*2.*3"` |
|
|
854
|
+
| `custom` | Custom JS function returns true/false | `(output) => output.length > 10` |
|
|
858
855
|
|
|
859
|
-
|
|
856
|
+
---
|
|
860
857
|
|
|
861
|
-
|
|
858
|
+
## 🐛 Troubleshooting
|
|
862
859
|
|
|
863
|
-
|
|
860
|
+
<details>
|
|
861
|
+
<summary><b>Click to expand troubleshooting guide</b></summary>
|
|
864
862
|
|
|
865
|
-
**
|
|
863
|
+
**"Language model did not provide messages"**
|
|
866
864
|
|
|
867
|
-
-
|
|
868
|
-
-
|
|
869
|
-
- `if/deepseek-r1`
|
|
870
|
-
- `if/glm-4.7`
|
|
871
|
-
- `if/minimax-m2`
|
|
865
|
+
- Provider quota exhausted → Check dashboard quota tracker
|
|
866
|
+
- Solution: Use combo fallback or switch to cheaper tier
|
|
872
867
|
|
|
873
|
-
**
|
|
868
|
+
**Rate limiting**
|
|
874
869
|
|
|
875
|
-
-
|
|
876
|
-
- `
|
|
870
|
+
- Subscription quota out → Fallback to GLM/MiniMax
|
|
871
|
+
- Add combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
|
|
877
872
|
|
|
878
|
-
**
|
|
873
|
+
**OAuth token expired**
|
|
879
874
|
|
|
880
|
-
-
|
|
881
|
-
-
|
|
875
|
+
- Auto-refreshed by OmniRoute
|
|
876
|
+
- If issues persist: Dashboard → Provider → Reconnect
|
|
882
877
|
|
|
883
|
-
**
|
|
878
|
+
**High costs**
|
|
884
879
|
|
|
885
|
-
-
|
|
886
|
-
-
|
|
887
|
-
-
|
|
880
|
+
- Check usage stats in Dashboard → Costs
|
|
881
|
+
- Switch primary model to GLM/MiniMax
|
|
882
|
+
- Use free tier (Gemini CLI, iFlow) for non-critical tasks
|
|
888
883
|
|
|
889
|
-
|
|
884
|
+
**Dashboard/API ports are wrong**
|
|
890
885
|
|
|
891
|
-
|
|
886
|
+
- `PORT` is the canonical base port (and API port by default)
|
|
887
|
+
- `API_PORT` overrides only OpenAI-compatible API listener
|
|
888
|
+
- `DASHBOARD_PORT` overrides only dashboard/Next.js listener
|
|
889
|
+
- Set `NEXT_PUBLIC_BASE_URL` to your dashboard/public URL (for OAuth callbacks)
|
|
892
890
|
|
|
893
|
-
|
|
891
|
+
**Cloud sync errors**
|
|
894
892
|
|
|
895
|
-
|
|
893
|
+
- Verify `BASE_URL` points to your running instance
|
|
894
|
+
- Verify `CLOUD_URL` points to your expected cloud endpoint
|
|
895
|
+
- Keep `NEXT_PUBLIC_*` values aligned with server-side values
|
|
896
896
|
|
|
897
|
-
|
|
897
|
+
**First login not working**
|
|
898
898
|
|
|
899
|
-
|
|
899
|
+
- Check `INITIAL_PASSWORD` in `.env`
|
|
900
|
+
- If unset, fallback password is `123456`
|
|
900
901
|
|
|
901
|
-
|
|
902
|
-
- JSON format compliance, translation, markdown
|
|
903
|
-
- Safety refusal (harmful content), counting, boolean logic
|
|
902
|
+
**No request logs**
|
|
904
903
|
|
|
905
|
-
|
|
904
|
+
- Set `ENABLE_REQUEST_LOGS=true` in `.env`
|
|
906
905
|
|
|
907
|
-
|
|
908
|
-
| ---------- | ------------------------------------------------ | -------------------------------- |
|
|
909
|
-
| `exact` | Output must match exactly | `"4"` |
|
|
910
|
-
| `contains` | Output must contain substring (case-insensitive) | `"Paris"` |
|
|
911
|
-
| `regex` | Output must match regex pattern | `"1.*2.*3"` |
|
|
912
|
-
| `custom` | Custom JS function returns true/false | `(output) => output.length > 10` |
|
|
906
|
+
**Connection test shows "Invalid" for OpenAI-compatible providers**
|
|
913
907
|
|
|
914
|
-
|
|
908
|
+
- Many providers don't expose a `/models` endpoint
|
|
909
|
+
- OmniRoute v1.0.6+ includes fallback validation via chat completions
|
|
910
|
+
- Ensure base URL includes `/v1` suffix
|
|
915
911
|
|
|
916
|
-
|
|
912
|
+
### 🔐 OAuth em Servidor Remoto (Remote OAuth Setup)
|
|
917
913
|
|
|
918
914
|
<a name="oauth-em-servidor-remoto"></a>
|
|
919
915
|
|
|
920
916
|
> **⚠️ IMPORTANTE para usuários com OmniRoute em VPS/Docker/servidor remoto**
|
|
921
917
|
|
|
922
|
-
|
|
918
|
+
#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?
|
|
923
919
|
|
|
924
920
|
Os provedores **Antigravity** e **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo.
|
|
925
921
|
|
|
@@ -929,7 +925,7 @@ As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `lo
|
|
|
929
925
|
Error 400: redirect_uri_mismatch
|
|
930
926
|
```
|
|
931
927
|
|
|
932
|
-
|
|
928
|
+
#### Solução: Configure suas próprias credenciais OAuth
|
|
933
929
|
|
|
934
930
|
Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com a URI do seu servidor.
|
|
935
931
|
|
|
@@ -992,7 +988,7 @@ Agora o Google redirecionará corretamente para `https://seu-servidor.com/callba
|
|
|
992
988
|
|
|
993
989
|
---
|
|
994
990
|
|
|
995
|
-
|
|
991
|
+
#### Workaround temporário (sem configurar credenciais próprias)
|
|
996
992
|
|
|
997
993
|
Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
|
|
998
994
|
|
|
@@ -1004,62 +1000,6 @@ Se não quiser criar credenciais próprias agora, ainda é possível usar o flux
|
|
|
1004
1000
|
|
|
1005
1001
|
> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não.
|
|
1006
1002
|
|
|
1007
|
-
---
|
|
1008
|
-
|
|
1009
|
-
## 🐛 Troubleshooting
|
|
1010
|
-
|
|
1011
|
-
<details>
|
|
1012
|
-
<summary><b>Click to expand troubleshooting guide</b></summary>
|
|
1013
|
-
|
|
1014
|
-
**"Language model did not provide messages"**
|
|
1015
|
-
|
|
1016
|
-
- Provider quota exhausted → Check dashboard quota tracker
|
|
1017
|
-
- Solution: Use combo fallback or switch to cheaper tier
|
|
1018
|
-
|
|
1019
|
-
**Rate limiting**
|
|
1020
|
-
|
|
1021
|
-
- Subscription quota out → Fallback to GLM/MiniMax
|
|
1022
|
-
- Add combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
|
|
1023
|
-
|
|
1024
|
-
**OAuth token expired**
|
|
1025
|
-
|
|
1026
|
-
- Auto-refreshed by OmniRoute
|
|
1027
|
-
- If issues persist: Dashboard → Provider → Reconnect
|
|
1028
|
-
|
|
1029
|
-
**High costs**
|
|
1030
|
-
|
|
1031
|
-
- Check usage stats in Dashboard → Costs
|
|
1032
|
-
- Switch primary model to GLM/MiniMax
|
|
1033
|
-
- Use free tier (Gemini CLI, iFlow) for non-critical tasks
|
|
1034
|
-
|
|
1035
|
-
**Dashboard/API ports are wrong**
|
|
1036
|
-
|
|
1037
|
-
- `PORT` is the canonical base port (and API port by default)
|
|
1038
|
-
- `API_PORT` overrides only OpenAI-compatible API listener
|
|
1039
|
-
- `DASHBOARD_PORT` overrides only dashboard/Next.js listener
|
|
1040
|
-
- Set `NEXT_PUBLIC_BASE_URL` to your dashboard/public URL (for OAuth callbacks)
|
|
1041
|
-
|
|
1042
|
-
**Cloud sync errors**
|
|
1043
|
-
|
|
1044
|
-
- Verify `BASE_URL` points to your running instance
|
|
1045
|
-
- Verify `CLOUD_URL` points to your expected cloud endpoint
|
|
1046
|
-
- Keep `NEXT_PUBLIC_*` values aligned with server-side values
|
|
1047
|
-
|
|
1048
|
-
**First login not working**
|
|
1049
|
-
|
|
1050
|
-
- Check `INITIAL_PASSWORD` in `.env`
|
|
1051
|
-
- If unset, fallback password is `123456`
|
|
1052
|
-
|
|
1053
|
-
**No request logs**
|
|
1054
|
-
|
|
1055
|
-
- Set `ENABLE_REQUEST_LOGS=true` in `.env`
|
|
1056
|
-
|
|
1057
|
-
**Connection test shows "Invalid" for OpenAI-compatible providers**
|
|
1058
|
-
|
|
1059
|
-
- Many providers don't expose a `/models` endpoint
|
|
1060
|
-
- OmniRoute v1.0.6+ includes fallback validation via chat completions
|
|
1061
|
-
- Ensure base URL includes `/v1` suffix
|
|
1062
|
-
|
|
1063
1003
|
</details>
|
|
1064
1004
|
|
|
1065
1005
|
---
|
|
@@ -1141,18 +1081,6 @@ OmniRoute has **210+ features planned** across multiple development phases. Here
|
|
|
1141
1081
|
|
|
1142
1082
|
---
|
|
1143
1083
|
|
|
1144
|
-
## 📧 Support
|
|
1145
|
-
|
|
1146
|
-
> 💬 **Join our community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Get help, share tips, and stay updated.
|
|
1147
|
-
|
|
1148
|
-
- **Website**: [omniroute.online](https://omniroute.online)
|
|
1149
|
-
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1150
|
-
- **Issues**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1151
|
-
- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
1152
|
-
- **Original Project**: [9router by decolua](https://github.com/decolua/9router)
|
|
1153
|
-
|
|
1154
|
-
---
|
|
1155
|
-
|
|
1156
1084
|
## 👥 Contributors
|
|
1157
1085
|
|
|
1158
1086
|
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
|
|
@@ -1202,85 +1130,6 @@ MIT License - see [LICENSE](LICENSE) for details.
|
|
|
1202
1130
|
|
|
1203
1131
|
---
|
|
1204
1132
|
|
|
1205
|
-
---
|
|
1206
|
-
|
|
1207
|
-
## 🇧🇷 OmniRoute — Gateway de IA Gratuito
|
|
1208
|
-
|
|
1209
|
-
<a name="-omniroute--gateway-de-ia-gratuito"></a>
|
|
1210
|
-
|
|
1211
|
-
### Nunca pare de codar. Roteamento inteligente para **modelos de IA GRATUITOS e de baixo custo** com fallback automático.
|
|
1212
|
-
|
|
1213
|
-
_Seu proxy universal de API — um endpoint, 36+ provedores, zero downtime._
|
|
1214
|
-
|
|
1215
|
-
### 🌐 Internacionalização (i18n)
|
|
1216
|
-
|
|
1217
|
-
O dashboard do OmniRoute suporta **múltiplos idiomas**. Atualmente disponível em:
|
|
1218
|
-
|
|
1219
|
-
| Idioma | Código | Status |
|
|
1220
|
-
| --------------------- | ------- | ----------- |
|
|
1221
|
-
| 🇺🇸 English | `en` | ✅ Completo |
|
|
1222
|
-
| 🇧🇷 Português (Brasil) | `pt-BR` | ✅ Completo |
|
|
1223
|
-
|
|
1224
|
-
**Para trocar o idioma:** Clique no seletor de idioma (🇺🇸 EN) no header do dashboard → selecione o idioma desejado.
|
|
1225
|
-
|
|
1226
|
-
**Para adicionar um novo idioma:**
|
|
1227
|
-
|
|
1228
|
-
1. Crie `src/i18n/messages/{codigo}.json` baseado em `en.json`
|
|
1229
|
-
2. Adicione o código em `src/i18n/config.ts` → `LOCALES` e `LANGUAGES`
|
|
1230
|
-
3. Reinicie o servidor
|
|
1231
|
-
|
|
1232
|
-
### ⚡ Início Rápido
|
|
1233
|
-
|
|
1234
|
-
```bash
|
|
1235
|
-
# Instalar via npm
|
|
1236
|
-
npx omniroute@latest
|
|
1237
|
-
|
|
1238
|
-
# Ou rodar do código-fonte
|
|
1239
|
-
cp .env.example .env
|
|
1240
|
-
npm install
|
|
1241
|
-
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
|
1242
|
-
```
|
|
1243
|
-
|
|
1244
|
-
### 🐳 Docker
|
|
1245
|
-
|
|
1246
|
-
```bash
|
|
1247
|
-
docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest
|
|
1248
|
-
```
|
|
1249
|
-
|
|
1250
|
-
### 🔑 Funcionalidades Principais
|
|
1251
|
-
|
|
1252
|
-
- **36+ provedores de IA** — Claude, GPT, Gemini, Llama, Qwen, DeepSeek, e mais
|
|
1253
|
-
- **Roteamento inteligente** — Fallback automático entre provedores
|
|
1254
|
-
- **Tradução de formato** — OpenAI ↔ Claude ↔ Gemini automaticamente
|
|
1255
|
-
- **Multi-conta** — Múltiplas contas por provedor com seleção inteligente
|
|
1256
|
-
- **Cache semântico** — Reduz custos e latência
|
|
1257
|
-
- **OAuth automático** — Tokens renovam automaticamente
|
|
1258
|
-
- **Combos personalizados** — 6 estratégias de roteamento
|
|
1259
|
-
- **Dashboard completo** — Monitoramento, logs, análises, configurações
|
|
1260
|
-
- **CLI Tools** — Configure Claude Code, Codex, Cursor, Cline com um clique
|
|
1261
|
-
- **100% TypeScript** — Código limpo e tipado
|
|
1262
|
-
|
|
1263
|
-
### 📖 Documentação
|
|
1264
|
-
|
|
1265
|
-
| Documento | Descrição |
|
|
1266
|
-
| ----------------------------------------------- | -------------------------------------- |
|
|
1267
|
-
| [Guia do Usuário](docs/USER_GUIDE.md) | Provedores, combos, CLI, deploy |
|
|
1268
|
-
| [Referência da API](docs/API_REFERENCE.md) | Todos os endpoints com exemplos |
|
|
1269
|
-
| [Solução de Problemas](docs/TROUBLESHOOTING.md) | Problemas comuns e soluções |
|
|
1270
|
-
| [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura e internos do sistema |
|
|
1271
|
-
| [Contribuição](CONTRIBUTING.md) | Setup de desenvolvimento e guidelines |
|
|
1272
|
-
| [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | Guia completo: VM + nginx + Cloudflare |
|
|
1273
|
-
|
|
1274
|
-
### 📧 Suporte
|
|
1275
|
-
|
|
1276
|
-
> 💬 **Entre para a comunidade!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Tire dúvidas, compartilhe dicas e fique atualizado.
|
|
1277
|
-
|
|
1278
|
-
- **Website**: [omniroute.online](https://omniroute.online)
|
|
1279
|
-
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1280
|
-
- **Issues**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1281
|
-
|
|
1282
|
-
---
|
|
1283
|
-
|
|
1284
1133
|
<div align="center">
|
|
1285
1134
|
<sub>Built with ❤️ for developers who code 24/7</sub>
|
|
1286
1135
|
<br/>
|