From b09ac0bcdf382defff32da8ef437837239bcd01e Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Sun, 2 Aug 2026 16:55:36 -0300 Subject: [PATCH] feat(providers): finalize audited free-tier integration --- AGENTS.md | 1173 ++++++++--------- CLAUDE.md | 577 +++++++- CONTRIBUTING.md | 2 +- README.md | 75 +- docs/architecture/ARCHITECTURE.md | 4 +- docs/architecture/CODEBASE_DOCUMENTATION.md | 2 +- docs/architecture/REPOSITORY_MAP.md | 62 +- docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md | 6 +- docs/diagrams/cli-terminal.svg | 8 +- docs/diagrams/comparison-table.svg | 6 +- docs/diagrams/exported/request-pipeline.svg | 2 +- docs/diagrams/promise-pillars.svg | 8 +- docs/diagrams/readme-hero.svg | 8 +- docs/diagrams/request-pipeline.mmd | 2 +- docs/frameworks/A2A-SERVER.md | 2 +- docs/frameworks/ACP.md | 2 +- docs/frameworks/AGENTBRIDGE.md | 2 +- docs/frameworks/OPEN_SSE_ARCHITECTURE.md | 4 +- docs/getting-started/FREE-TIERS-GUIDE.md | 228 ++-- docs/getting-started/PROVIDERS-GUIDE.md | 2 +- docs/guides/FREE_PROVIDER_RANKINGS.md | 2 +- docs/i18n/ar/CLAUDE.md | 2 +- docs/i18n/ar/CONTRIBUTING.md | 2 +- docs/i18n/ar/README.md | 6 +- .../i18n/ar/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ar/llm.txt | 12 +- docs/i18n/az/CLAUDE.md | 2 +- docs/i18n/az/CONTRIBUTING.md | 2 +- docs/i18n/az/README.md | 6 +- .../i18n/az/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/az/llm.txt | 12 +- docs/i18n/bg/CLAUDE.md | 2 +- docs/i18n/bg/CONTRIBUTING.md | 2 +- docs/i18n/bg/README.md | 6 +- .../i18n/bg/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/bg/llm.txt | 12 +- docs/i18n/bn/CLAUDE.md | 2 +- docs/i18n/bn/CONTRIBUTING.md | 2 +- docs/i18n/bn/README.md | 6 +- .../i18n/bn/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/bn/llm.txt | 12 +- docs/i18n/cs/CLAUDE.md | 2 +- docs/i18n/cs/CONTRIBUTING.md | 2 +- docs/i18n/cs/README.md | 6 +- .../i18n/cs/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/cs/llm.txt | 12 +- docs/i18n/da/CLAUDE.md | 2 +- docs/i18n/da/CONTRIBUTING.md | 2 +- docs/i18n/da/README.md | 6 +- .../i18n/da/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/da/llm.txt | 12 +- docs/i18n/de/CLAUDE.md | 2 +- docs/i18n/de/CONTRIBUTING.md | 2 +- docs/i18n/de/README.md | 6 +- .../i18n/de/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/de/llm.txt | 12 +- docs/i18n/es/CLAUDE.md | 2 +- docs/i18n/es/CONTRIBUTING.md | 2 +- docs/i18n/es/README.md | 6 +- .../i18n/es/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/es/llm.txt | 12 +- docs/i18n/fa/CLAUDE.md | 2 +- docs/i18n/fa/CONTRIBUTING.md | 2 +- docs/i18n/fa/README.md | 6 +- .../i18n/fa/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/fa/llm.txt | 12 +- docs/i18n/fi/CLAUDE.md | 2 +- docs/i18n/fi/CONTRIBUTING.md | 2 +- docs/i18n/fi/README.md | 6 +- .../i18n/fi/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/fi/llm.txt | 12 +- docs/i18n/fr/CLAUDE.md | 2 +- docs/i18n/fr/CONTRIBUTING.md | 2 +- docs/i18n/fr/README.md | 6 +- .../i18n/fr/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/fr/llm.txt | 12 +- docs/i18n/gu/CLAUDE.md | 2 +- docs/i18n/gu/CONTRIBUTING.md | 2 +- docs/i18n/gu/README.md | 6 +- .../i18n/gu/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/gu/llm.txt | 12 +- docs/i18n/he/CLAUDE.md | 2 +- docs/i18n/he/CONTRIBUTING.md | 2 +- docs/i18n/he/README.md | 6 +- .../i18n/he/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/he/llm.txt | 12 +- docs/i18n/hi/CLAUDE.md | 2 +- docs/i18n/hi/CONTRIBUTING.md | 2 +- docs/i18n/hi/README.md | 6 +- .../i18n/hi/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/hi/llm.txt | 12 +- docs/i18n/hu/CLAUDE.md | 2 +- docs/i18n/hu/CONTRIBUTING.md | 2 +- docs/i18n/hu/README.md | 6 +- .../i18n/hu/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/hu/llm.txt | 12 +- docs/i18n/id/CLAUDE.md | 2 +- docs/i18n/id/CONTRIBUTING.md | 2 +- docs/i18n/id/README.md | 6 +- .../i18n/id/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/id/llm.txt | 12 +- docs/i18n/in/CLAUDE.md | 2 +- docs/i18n/in/CONTRIBUTING.md | 2 +- docs/i18n/in/README.md | 6 +- .../i18n/in/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/in/llm.txt | 12 +- docs/i18n/it/CLAUDE.md | 2 +- docs/i18n/it/CONTRIBUTING.md | 2 +- docs/i18n/it/README.md | 6 +- .../i18n/it/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/it/llm.txt | 12 +- docs/i18n/ja/CLAUDE.md | 2 +- docs/i18n/ja/CONTRIBUTING.md | 2 +- docs/i18n/ja/README.md | 6 +- .../i18n/ja/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ja/llm.txt | 12 +- docs/i18n/ko/CLAUDE.md | 2 +- docs/i18n/ko/CONTRIBUTING.md | 2 +- docs/i18n/ko/README.md | 6 +- .../i18n/ko/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ko/llm.txt | 12 +- docs/i18n/mr/CLAUDE.md | 2 +- docs/i18n/mr/CONTRIBUTING.md | 2 +- docs/i18n/mr/README.md | 6 +- .../i18n/mr/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/mr/llm.txt | 12 +- docs/i18n/ms/CLAUDE.md | 2 +- docs/i18n/ms/CONTRIBUTING.md | 2 +- docs/i18n/ms/README.md | 6 +- .../i18n/ms/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ms/llm.txt | 12 +- docs/i18n/nl/CLAUDE.md | 2 +- docs/i18n/nl/CONTRIBUTING.md | 2 +- docs/i18n/nl/README.md | 6 +- .../i18n/nl/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/nl/llm.txt | 12 +- docs/i18n/no/CLAUDE.md | 2 +- docs/i18n/no/CONTRIBUTING.md | 2 +- docs/i18n/no/README.md | 6 +- .../i18n/no/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/no/llm.txt | 12 +- docs/i18n/phi/CLAUDE.md | 2 +- docs/i18n/phi/CONTRIBUTING.md | 2 +- docs/i18n/phi/README.md | 6 +- .../phi/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/phi/llm.txt | 12 +- docs/i18n/pl/CLAUDE.md | 2 +- docs/i18n/pl/CONTRIBUTING.md | 2 +- docs/i18n/pl/README.md | 18 +- .../i18n/pl/docs/architecture/ARCHITECTURE.md | 4 +- .../architecture/CODEBASE_DOCUMENTATION.md | 2 +- .../pl/docs/architecture/REPOSITORY_MAP.md | 4 +- .../comparison/OMNIROUTE_VS_ALTERNATIVES.md | 6 +- docs/i18n/pl/docs/frameworks/ACP.md | 2 +- docs/i18n/pl/docs/frameworks/AGENTBRIDGE.md | 2 +- .../docs/frameworks/OPEN_SSE_ARCHITECTURE.md | 2 +- .../docs/getting-started/FREE-TIERS-GUIDE.md | 2 +- .../docs/getting-started/PROVIDERS-GUIDE.md | 2 +- .../pl/docs/guides/FREE_PROVIDER_RANKINGS.md | 2 +- docs/i18n/pl/llm.txt | 12 +- docs/i18n/pt-BR/CLAUDE.md | 2 +- docs/i18n/pt-BR/CONTRIBUTING.md | 2 +- docs/i18n/pt-BR/README.md | 6 +- .../pt-BR/docs/architecture/ARCHITECTURE.md | 4 +- docs/i18n/pt-BR/llm.txt | 12 +- docs/i18n/pt/CLAUDE.md | 2 +- docs/i18n/pt/CONTRIBUTING.md | 2 +- docs/i18n/pt/README.md | 6 +- .../i18n/pt/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/pt/llm.txt | 12 +- docs/i18n/ro/CLAUDE.md | 2 +- docs/i18n/ro/CONTRIBUTING.md | 2 +- docs/i18n/ro/README.md | 6 +- .../i18n/ro/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ro/llm.txt | 12 +- docs/i18n/ru/CLAUDE.md | 2 +- docs/i18n/ru/CONTRIBUTING.md | 2 +- docs/i18n/ru/README.md | 22 +- .../i18n/ru/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ru/llm.txt | 12 +- docs/i18n/sk/CLAUDE.md | 2 +- docs/i18n/sk/CONTRIBUTING.md | 2 +- docs/i18n/sk/README.md | 6 +- .../i18n/sk/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/sk/llm.txt | 12 +- docs/i18n/sv/CLAUDE.md | 2 +- docs/i18n/sv/CONTRIBUTING.md | 2 +- docs/i18n/sv/README.md | 6 +- .../i18n/sv/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/sv/llm.txt | 12 +- docs/i18n/sw/CLAUDE.md | 2 +- docs/i18n/sw/CONTRIBUTING.md | 2 +- docs/i18n/sw/README.md | 6 +- .../i18n/sw/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/sw/llm.txt | 12 +- docs/i18n/ta/CLAUDE.md | 2 +- docs/i18n/ta/CONTRIBUTING.md | 2 +- docs/i18n/ta/README.md | 6 +- .../i18n/ta/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ta/llm.txt | 12 +- docs/i18n/te/CLAUDE.md | 2 +- docs/i18n/te/CONTRIBUTING.md | 2 +- docs/i18n/te/README.md | 6 +- .../i18n/te/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/te/llm.txt | 12 +- docs/i18n/th/CLAUDE.md | 2 +- docs/i18n/th/CONTRIBUTING.md | 2 +- docs/i18n/th/README.md | 6 +- .../i18n/th/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/th/llm.txt | 12 +- docs/i18n/tr/CLAUDE.md | 2 +- docs/i18n/tr/CONTRIBUTING.md | 2 +- docs/i18n/tr/README.md | 6 +- .../i18n/tr/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/tr/llm.txt | 12 +- docs/i18n/uk-UA/CLAUDE.md | 2 +- docs/i18n/uk-UA/CONTRIBUTING.md | 2 +- docs/i18n/uk-UA/README.md | 6 +- .../uk-UA/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/uk-UA/llm.txt | 12 +- docs/i18n/ur/CLAUDE.md | 2 +- docs/i18n/ur/CONTRIBUTING.md | 2 +- docs/i18n/ur/README.md | 6 +- .../i18n/ur/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/ur/llm.txt | 12 +- docs/i18n/vi/CLAUDE.md | 2 +- docs/i18n/vi/CONTRIBUTING.md | 2 +- docs/i18n/vi/README.md | 6 +- .../i18n/vi/docs/architecture/ARCHITECTURE.md | 2 +- docs/i18n/vi/llm.txt | 12 +- docs/i18n/zh-CN/CLAUDE.md | 2 +- docs/i18n/zh-CN/CONTRIBUTING.md | 2 +- docs/i18n/zh-CN/README.md | 26 +- .../zh-CN/docs/architecture/ARCHITECTURE.md | 4 +- .../architecture/CODEBASE_DOCUMENTATION.md | 2 +- docs/i18n/zh-CN/llm.txt | 12 +- docs/i18n/zh-TW/CLAUDE.md | 2 +- docs/i18n/zh-TW/CONTRIBUTING.md | 2 +- docs/i18n/zh-TW/README.md | 26 +- .../zh-TW/docs/architecture/ARCHITECTURE.md | 4 +- .../architecture/CODEBASE_DOCUMENTATION.md | 2 +- docs/i18n/zh-TW/llm.txt | 12 +- docs/reference/FREE_TIERS.md | 2 +- docs/reference/PROVIDER_REFERENCE.md | 66 +- llm.txt | 12 +- tests/snapshots/provider/translate-path.json | 795 +++++++++-- tests/unit/8336-audit-loopback-login.test.ts | 2 +- tests/unit/providers-constants-split.test.ts | 15 +- 248 files changed, 2544 insertions(+), 1637 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 9d29c93258..4d2b585d62 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,691 +1,604 @@ -# OmniRoute agent guide +# omniroute — Agent Guidelines -> **Single source of truth.** This file holds ALL project rules, conventions, architecture notes -> and Hard Rules for every AI assistant working this repository (Claude Code, Gemini, Codex, -> Copilot, and any other agent). `CLAUDE.md` and `GEMINI.md` only add assistant-specific deltas -> and point back here. When a rule needs to change, change it HERE — never re-fork it into an -> assistant-specific file. +## Project -## Quick Start +Unified AI proxy/router — route any LLM through one endpoint. Multi-provider support +with **329 provider entries** (OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Fireworks, +Cohere, NVIDIA, Cerebras, Pollinations, Puter, Cloudflare AI, HuggingFace, DeepInfra, +SambaNova, Meta Llama API, Moonshot AI, AI21 Labs, Databricks, Snowflake, and many more) +with **MCP Server** (107 tools), **A2A v0.3 Protocol**, and **Electron desktop app**. -```bash -npm install # Install deps (auto-generates .env from .env.example) -npm run dev # Dev server at http://localhost:20128 -npm run build # Production build (Next.js 16 standalone) -npm run build:release # Release build -npm run lint # ESLint (0 errors expected; warnings are pre-existing) -npm run typecheck:core # TypeScript check (should be clean) -npm run typecheck:noimplicit:core # Strict check (no implicit any) -npm run test:coverage # Unit tests + coverage gate (60/60/60/60 — statements/lines/functions/branches) -npm run check # lint + test combined -npm run check:cycles # Detect circular dependencies -npm run check:docs-all # Run after changing documentation (includes fabricated-docs validation) -``` +> **Live counts (v3.8.50)**: providers 329 · executor implementations 89 · OAuth catalog entries 23 · +> OAuth modules 21 · MCP tools 107 · MCP scopes 32 · A2A skills 6 · cloud agents 4 · +> open-sse services 178 · routing strategies 19 · auto-combo scoring factors 13 · +> DB modules 110 · DB migrations 130 · base tables 17 · search providers 12 · +> i18n locales 43. **Refresh with `npm run check:docs-all`; regenerate the provider catalog +> first with `npm run gen:provider-reference`.** + +## Doc Accuracy Discipline (read before writing any doc) + +> **If `grep -rn "name" src/ open-sse/ bin/` returns nothing, the name does not exist. Do not document it.** + +The recurring failure mode in AI-generated docs is _plausible-but-unverified specifics_. +Every claim in a `.md` file under `docs/` should be verifiable against the source. + +**Rules (enforced by `npm run check:fabricated-docs`):** + +1. **Never state an API name, endpoint, path, CLI command, or env var without grepping for it first.** + ```bash + grep -rn "theName" src/ open-sse/ bin/ + # 0 hits → do not document + ``` +2. **Never write a line count, file size, migration count, provider count, or strategy count from memory.** + ```bash + wc -l # exact line count + ls /*.ts | wc -l # file count + ``` +3. **Every code example should be copy-pasted from real usage or actually run** — not synthesized. + Link to a real call site (`path:line`) instead of inventing a signature. +4. **Prefer citing real source (`file.ts:line`) over paraphrasing behavior** — verifiable and self-correcting. +5. **A shorter doc that is 100% accurate beats a comprehensive one with fabrications.** + Wrong docs cost more than missing docs, because people trust and act on them. + +The script `scripts/check/check-fabricated-docs.mjs` extracts every route path, env var, hook +name, function name, and file reference from `docs/**/*.md` and verifies each one against the +codebase. Run it locally before pushing docs; it runs in CI via `npm run check:docs-all`. + +## Stack + +- **Runtime**: Next.js 16 (App Router), Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) +- **Language**: TypeScript 6.0 (`src/`) + JavaScript (`open-sse/`, `electron/`) +- **Database**: better-sqlite3 (SQLite) — `DATA_DIR` configurable, default `~/.omniroute/` +- **Streaming**: SSE via `open-sse` internal workspace package +- **Styling**: Tailwind CSS v4 +- **i18n**: next-intl with 43 locales (`src/i18n/messages/`) — refresh with `ls src/i18n/messages/*.json | wc -l` +- **Desktop**: Electron (cross-platform: Windows, macOS, Linux) +- **Schemas**: Zod v4 for all API / MCP input validation + +--- + +## Build, Lint, and Test Commands + +| Command | Description | +| ----------------------------------- | ------------------------------------------------------------------ | +| `npm run dev` | Start Next.js dev server | +| `npm run build` | Production build: `next build` → `.build/next/` + assemble `dist/` | +| `npm run build:release` | Clean rebuild + HEAD sentinel (`dist/BUILD_SHA`) — use for deploy | +| `npm run start` | Run production build | +| `npm run build:cli` | Build CLI package | +| `npm run lint` | ESLint on all source files | +| `npm run typecheck:core` | TypeScript core type checking | +| `npm run typecheck:noimplicit:core` | Strict checking (no implicit any) | +| `npm run check` | Run lint + test | +| `npm run check:cycles` | Check for circular dependencies | +| `npm run electron:dev` | Run Electron app in dev mode | +| `npm run electron:build` | Build Electron app for current OS | + +**Build output layout:** + +| Directory | Purpose | Gitignored | +| --------- | -------------------------------------------------- | ---------- | +| `src/` | Application source (TypeScript / TSX) | No | +| `.build/` | Build intermediates (`distDir = .build/next`) | Yes | +| `dist/` | Shippable bundle assembled by `assembleStandalone` | Yes | + +The pipeline is a single `next build` pass — intermediates land in `.build/next/`, the +assembled bundle in `dist/`. VPS deploys rsync `dist/` into the remote +`/usr/lib/node_modules/omniroute/app/` directory (VPS image path is unchanged). ### Running Tests -Run the most focused test for changed code first: - ```bash -# Single test file (Node.js native test runner — most tests) -node --import tsx/esm --test tests/unit/your-file.test.ts +# All tests (unit + vitest + ecosystem + e2e) +npm run test:all -# Vitest (MCP server, autoCombo, cache) +# Single test file (Node.js native test runner — most tests use this) +node --import tsx/esm --test tests/unit/your-file.test.ts +node --import tsx/esm --test tests/unit/plan3-p0.test.ts +node --import tsx/esm --test tests/unit/fixes-p1.test.ts +node --import tsx/esm --test tests/unit/security-fase01.test.ts + +# Integration tests +node --import tsx/esm --test tests/integration/*.test.ts + +# Vitest (MCP server, autoCombo) npm run test:vitest -# All suites -npm run test:all +# E2E with Playwright +npm run test:e2e + +# Protocol clients E2E (MCP transports, A2A) +npm run test:protocols:e2e + +# Ecosystem compatibility tests +npm run test:ecosystem + +# Coverage (see CONTRIBUTING.md) +npm run test:coverage ``` -Other suites: `npm run test:e2e`, `npm run test:protocols:e2e`, `npm run test:ecosystem`. - -For full test matrix, see `CONTRIBUTING.md` → "Running Tests". For deep architecture, see the -Repository map and Reference Documentation sections below. +**For authoritative coverage requirements, test execution, and PR gates, see [`CONTRIBUTING.md`](CONTRIBUTING.md#running-tests).** --- -## Project at a Glance +## Code Style Guidelines -**OmniRoute** — unified AI proxy/router. One endpoint, 291 LLM providers, auto-fallback. +### Formatting (Prettier — enforced via lint-staged) -| Layer | Location | Purpose | -| ------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| API Routes | `src/app/api/v1/` | Next.js App Router — entry points | -| Handlers | `open-sse/handlers/` | Request processing (chat, embeddings, etc) | -| Executors | `open-sse/executors/` | Provider-specific HTTP dispatch | -| Translators | `open-sse/translator/` | Format conversion (OpenAI↔Claude↔Gemini) | -| Transformer | `open-sse/transformer/` | Responses API ↔ Chat Completions | -| Services | `open-sse/services/` | Combo routing, rate limits, caching, etc | -| Database | `src/lib/db/` | SQLite domain modules (130 migrations) | -| Domain/Policy | `src/domain/` | Policy engine, cost rules, fallback logic | -| MCP Server | `open-sse/mcp-server/` | 105 tools (42 base + memory/skill/agentSkill/pool/notion/obsidian/gamification/plugin modules), 3 transports (stdio / SSE / Streamable HTTP), 31 scopes | -| A2A Server | `src/lib/a2a/` | JSON-RPC 2.0 agent protocol | -| Skills | `src/lib/skills/` | Extensible skill framework | -| Memory | `src/lib/memory/` | Persistent conversational memory | +2 spaces · semicolons required · double quotes (`"`) · 100 char width · es5 trailing commas. +Always run `prettier --write` on changed files. -Monorepo: `src/` (Next.js 16 app), `open-sse/` (streaming engine workspace), `electron/` (desktop app), `tests/`, `bin/` (CLI entry point). +### TypeScript ---- +- **Target**: ES2022 · **Module**: `esnext` · **Resolution**: `bundler` +- `strict: false` — prefer explicit types, don't rely on inference +- Path aliases: `@/*` → `src/`, `@omniroute/open-sse` → `open-sse/`, `@omniroute/open-sse/*` → `open-sse/*` -## Request Pipeline +### ESLint Rules -``` -Client → /v1/chat/completions (Next.js route) - → CORS → Zod validation → auth? → policy check → prompt injection guard - → handleChatCore() [open-sse/handlers/chatCore.ts] - → cache check → rate limit → combo routing? - → resolveComboTargets() → handleSingleModel() per target - → translateRequest() → getExecutor() → executor.execute() - → fetch() upstream → retry w/ backoff - → response translation → SSE stream or JSON - → If Responses API: responsesTransformer.ts TransformStream -``` +- **Security (error, everywhere)**: `no-eval`, `no-implied-eval`, `no-new-func` +- **Relaxed in `open-sse/` and `tests/`**: `@typescript-eslint/no-explicit-any` = warn +- React hooks rules and `@next/next/no-assign-module-variable` disabled in `open-sse/` and `tests/` -API routes follow a consistent pattern: `Route → CORS preflight → Zod body validation → Optional auth (extractApiKey/isValidApiKey) → API key policy enforcement → Handler delegation (open-sse)`. No global Next.js middleware — interception is route-specific. +### Naming -**Combo routing** (`open-sse/services/combo.ts`): 19 public strategies (priority, weighted, fill-first, round-robin, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline). Each target calls `handleSingleModel()` which wraps `handleChatCore()` with per-target error handling and circuit breaker checks. The `fusion` strategy is the exception: it fans out to a panel of models in parallel, then a judge model synthesizes one final answer (`open-sse/services/fusion.ts`). See `docs/routing/AUTO-COMBO.md` for the 13-factor Auto-Combo scoring + the full strategy table and `docs/architecture/RESILIENCE_GUIDE.md` for the 3 resilience layers. +| Element | Convention | Example | +| ------------------- | -------------------------------- | ------------------------------------ | +| Files | camelCase / kebab-case | `chatCore.ts`, `tokenHealthCheck.ts` | +| React components | PascalCase | `Dashboard.tsx`, `ProviderCard.tsx` | +| Functions/variables | camelCase | `getHealth()`, `switchCombo()` | +| Constants | UPPER_SNAKE | `MAX_RETRIES`, `DEFAULT_TIMEOUT` | +| Interfaces | PascalCase (`I` prefix optional) | `ProviderConfig` | +| Enums | PascalCase (members too) | `LogLevel.Error` | ---- +### Imports -## Resilience Runtime State - -OmniRoute has three related but distinct temporary-failure mechanisms. Keep their -scope separate when debugging routing behavior. See the -[3-layer resilience diagram](./docs/diagrams/exported/resilience-3layers.svg) -(source: [docs/diagrams/resilience-3layers.mmd](./docs/diagrams/resilience-3layers.mmd)) -for an at-a-glance map. - -### Provider Circuit Breaker - -**Scope**: whole provider, e.g. `glm`, `openai`, `anthropic`. - -**Purpose**: stop sending traffic to a provider that is repeatedly failing at the -upstream/service level, so one unhealthy provider does not slow down every request. - -**Implementation**: - -- Core class: `src/shared/utils/circuitBreaker.ts` -- Chat gate/execution wiring: `src/sse/handlers/chatHelpers.ts`, `src/sse/handlers/chat.ts` -- Runtime status API: `src/app/api/monitoring/health/route.ts` -- Shared wrappers: `open-sse/services/accountFallback.ts` -- Persisted state table: `domain_circuit_breakers` - -**States**: - -- `CLOSED`: normal traffic is allowed. -- `OPEN`: provider is temporarily blocked; callers get a provider-circuit-open response - or combo routing skips to another target. -- `HALF_OPEN`: reset timeout has elapsed; allow a probe request. Success closes the - breaker, failure opens it again. - -**Defaults** (`open-sse/config/constants.ts`): - -- OAuth providers: threshold `3`, reset timeout `60s`. -- API-key providers: threshold `5`, reset timeout `30s`. -- Local providers: threshold `2`, reset timeout `15s`. - -Only provider-level failure statuses should trip the provider breaker: - -```ts -(408, 500, 502, 503, 504); -``` - -Do not trip the whole-provider breaker for normal account/key/model errors like most -`401`, `403`, or `429` cases. Those usually belong to connection cooldown or model -lockout. A generic API-key provider `403` should be recoverable unless it is classified -as a terminal provider/account error. - -The breaker uses lazy recovery, not a background timer. When `OPEN` expires, reads such -as `getStatus()`, `canExecute()`, and `getRetryAfterMs()` refresh the state to -`HALF_OPEN`, so dashboards and combo candidate builders do not keep excluding an -expired provider forever. - -### Connection Cooldown - -**Scope**: one provider connection/account/key. - -**Purpose**: temporarily skip one bad key/account while allowing other connections for -the same provider to continue serving requests. - -**Implementation**: - -- Write/update path: `src/sse/services/auth.ts::markAccountUnavailable()` -- Account selection/filtering: `src/sse/services/auth.ts::getProviderCredentials...` -- Cooldown calculation: `open-sse/services/accountFallback.ts::checkFallbackError()` -- Settings: `src/lib/resilience/settings.ts` - -Important fields on provider connections: - -```ts -rateLimitedUntil; -testStatus: "unavailable"; -lastError; -lastErrorType; -errorCode; -backoffLevel; -``` - -During account selection, a connection is skipped while: - -```ts -new Date(rateLimitedUntil).getTime() > Date.now(); -``` - -Cooldowns are also lazy: when `rateLimitedUntil` is in the past, the connection becomes -eligible again. On successful use, `clearAccountError()` clears `testStatus`, -`rateLimitedUntil`, error fields, and `backoffLevel`. - -Default connection cooldown behavior: - -- OAuth base cooldown: `5s`. -- API-key base cooldown: `3s`. -- API-key `429` should prefer upstream retry hints (`Retry-After`, reset headers, or - parseable reset text) when available. -- Repeated recoverable failures use exponential backoff: - -```ts -baseCooldownMs * 2 ** failureIndex; -``` - -The anti-thundering-herd guard prevents concurrent failures on the same connection from -repeatedly extending the cooldown or double-incrementing `backoffLevel`. - -Terminal states are not cooldowns. `banned`, `expired`, and `credits_exhausted` are -intended to stay unavailable until credentials/settings change or an operator resets -them. Do not overwrite terminal states with transient cooldown state. - -### Model Lockout - -**Scope**: provider + connection + model. - -**Purpose**: avoid disabling a whole connection when only one model is unavailable or -quota-limited for that connection. - -Examples: - -- Per-model quota providers returning `429`. -- Local providers returning `404` for one missing model. -- Provider-specific mode/model permission failures such as selected Grok modes. - -Model lockout lives in `open-sse/services/accountFallback.ts` and lets the same -connection continue serving other models. - -### Debugging Guidance - -- If all keys for a provider are skipped, inspect both provider breaker state and each - connection's `rateLimitedUntil`/`testStatus`. -- If a provider appears permanently excluded after the reset window, check whether code - is reading raw `state` instead of using `getStatus()`/`canExecute()`. -- If one provider key fails but others should work, prefer connection cooldown over - provider breaker. -- If only one model fails, prefer model lockout over connection cooldown. -- If a state should self-recover, it should have a future timestamp/reset timeout and a - read path that refreshes expired state. Permanent statuses require manual credential - or config changes. - ---- - -## Repository map - -Read the nearest `AGENTS.md` and the linked deep-dive before making a non-trivial change. - -| Area | Location | Start here | -| ---------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| API routes | `src/app/api/v1/` | [`docs/architecture/ARCHITECTURE.md`](docs/architecture/ARCHITECTURE.md) | -| Streaming request handling | `open-sse/handlers/` | [`docs/architecture/ARCHITECTURE.md`](docs/architecture/ARCHITECTURE.md) | -| Provider execution and translation | `open-sse/executors/`, `open-sse/translator/` | [`docs/architecture/CODEBASE_DOCUMENTATION.md`](docs/architecture/CODEBASE_DOCUMENTATION.md) | -| Routing and resilience | `open-sse/services/` | [`open-sse/services/AGENTS.md`](open-sse/services/AGENTS.md), [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md) | -| Database and migrations | `src/lib/db/`, `db/migrations/` | [`src/lib/db/AGENTS.md`](src/lib/db/AGENTS.md) | -| Domain policy | `src/domain/` | [`docs/architecture/ARCHITECTURE.md`](docs/architecture/ARCHITECTURE.md) | -| MCP and A2A | `open-sse/mcp-server/`, `src/lib/a2a/` | [`docs/frameworks/MCP-SERVER.md`](docs/frameworks/MCP-SERVER.md), [`docs/frameworks/A2A-SERVER.md`](docs/frameworks/A2A-SERVER.md) | -| Agent features | `src/lib/{acp,memory,skills,cloudAgent}/` | [`docs/frameworks/AGENT_PROTOCOLS_GUIDE.md`](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md), [`docs/frameworks/SKILLS.md`](docs/frameworks/SKILLS.md) | -| Safety and governance | `src/lib/{guardrails,compliance}/`, `src/server/authz/` | [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md), [`docs/architecture/AUTHZ_GUIDE.md`](docs/architecture/AUTHZ_GUIDE.md) | -| Operations | `src/mitm/`, tunnel modules, `electron/` | [`docs/ops/TUNNELS_GUIDE.md`](docs/ops/TUNNELS_GUIDE.md), [`docs/guides/ELECTRON_GUIDE.md`](docs/guides/ELECTRON_GUIDE.md) | - ---- - -## File placement & repo-root hygiene - -- **Test files**: ALL unit tests, integration tests, ecosystem tests, or Vitest files MUST strictly be placed within the `tests/` directory (e.g., `tests/unit/`, `tests/integration/`). NEVER create test files in the project root (`/`). -- **Scripts and utilities**: ALL maintenance, debugging, generation, or experimental scripts (`.cjs`, `.mjs`, `.js`, `.ts`) MUST be placed strictly inside one of the `scripts/` subfolders (`build/`, `dev/`, `check/`, `docs/`, `i18n/`, `ad-hoc/`). One-shot or experimental code goes under `scripts/ad-hoc/`. NEVER dump loose scripts in the project root (`/`) or the top-level `scripts/` folder. - -**The project root MUST ONLY contain:** - -- Configuration files (`vitest.config.ts`, `next.config.mjs`, `eslint.config.mjs`, `tsconfig*.json`, `playwright.config.ts`, `prettier.config.mjs`, `postcss.config.mjs`, `sonar-project.properties`, `fly.toml`, `docker-compose*.yml`, `Dockerfile`) -- Dependency files (`package.json`, `package-lock.json`) -- Documentation files (`README.md`, `CHANGELOG.md`, `LICENSE`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, `llm.txt`, `Tuto_Qdrant.md`) -- CI/CD files and ignore definitions (`.gitignore`, `.dockerignore`, `.npmignore`, `.npmrc`, `.node-version`, `.nvmrc`, `.env.example`) - -When creating _any_ validation tests or one-off logic scripts, default to `scripts/ad-hoc/` or `tests/unit/` according to your goals. Do not pollute the `/` root context. - ---- - -## Key Conventions - -### Code Style - -- **2 spaces**, semicolons, double quotes, 100 char width, es5 trailing commas (enforced by lint-staged via Prettier) — run Prettier on changed files -- **Imports**: external → internal (`@/`, `@omniroute/open-sse`) → relative -- **Naming**: files=camelCase/kebab, components=PascalCase, constants=UPPER_SNAKE -- **ESLint**: `no-eval`, `no-implied-eval`, `no-new-func` = error everywhere; `no-explicit-any` = **error** in `open-sse/` and `tests/` (since #6218 — pre-existing violations are frozen in `config/quality/eslint-suppressions.json`, new ones must be fixed; `npm run lint` applies the suppressions and is what CI runs) -- **TypeScript**: `strict: false`, target ES2022, module esnext, resolution bundler. Prefer explicit types. - -### Database - -- **Always** go through `src/lib/db/` domain modules — **never** write raw SQL in routes or handlers -- **Never** add logic to `src/lib/localDb.ts` (re-export layer only) -- **Never** barrel-import from `localDb.ts` — import specific `db/` modules instead -- DB singleton: `getDbInstance()` from `src/lib/db/core.ts` (WAL journaling) -- Migrations: `src/lib/db/migrations/` — versioned SQL files, idempotent, run in transactions +- **Order**: external → internal (`@/`, `@omniroute/open-sse`) → relative (`./`, `../`) +- **No barrel imports** from `localDb.ts` — import from the specific `db/` module instead ### Error Handling -- try/catch with specific error types, log with pino context -- Never swallow errors in SSE streams — use abort signals for cleanup -- Return proper HTTP status codes (4xx/5xx) +- try/catch with specific error types; always log with context (pino logger) +- Never silently swallow errors in SSE streams — use abort signals for cleanup +- Return proper HTTP status codes (4xx client, 5xx server) ### Security -- **Never** use `eval()`, `new Function()`, or implied eval -- Validate all inputs with Zod schemas -- Encrypt credentials at rest (AES-256-GCM); never log SQLite encryption keys -- Sanitize user HTML with DOMPurify -- Upstream header denylist: `src/shared/constants/upstreamHeaders.ts` — keep sanitize, Zod schemas, and unit tests aligned when editing -- **Public upstream credentials** (Gemini/Antigravity/Windsurf-style OAuth client_id/secret + Firebase Web keys extracted from public CLIs): **MUST** be embedded via `resolvePublicCred()` from `open-sse/utils/publicCreds.ts` — **never** as string literals. See `docs/security/PUBLIC_CREDS.md` for the mandatory pattern. -- **Error responses** (HTTP / SSE / executor / MCP handler): **MUST** route through `buildErrorBody()` or `sanitizeErrorMessage()` from `open-sse/utils/error.ts` — **never** put raw `err.stack` or `err.message` in a response body. See `docs/security/ERROR_SANITIZATION.md`. -- **Shell commands built from variables**: when calling `exec()`/`spawn()` with a script that needs runtime values, pass them via the `env` option (shell-escaped automatically) — **never** string-interpolate untrusted/external paths into the script body. Reference: `src/mitm/cert/install.ts::updateNssDatabases`. -- **Secure-by-default libraries** ([tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults)): prefer Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink over custom implementations whenever adding new security-sensitive surfaces. +- **NEVER** commit API keys, secrets, or credentials +- Validate all user inputs with Zod schemas +- Auth middleware required on all API routes +- Never log SQLite encryption keys +- Sanitize user content (dompurify for HTML) +- **Public upstream OAuth identifiers** (Gemini / Antigravity / Windsurf-style client_id/secret + Firebase Web keys extracted from public CLIs): use `resolvePublicCred()` from `open-sse/utils/publicCreds.ts`, **never** as string literals. Full pattern in `docs/security/PUBLIC_CREDS.md`. +- **Error responses** (HTTP / SSE / executor / MCP): use `buildErrorBody()` or `sanitizeErrorMessage()` from `open-sse/utils/error.ts`, **never** put raw `err.stack` / `err.message` in a Response body. Full pattern in `docs/security/ERROR_SANITIZATION.md`. +- **`exec()` / `spawn()` with runtime values**: pass via the `env` option, **never** string-interpolate paths/values into the script body. Reference: `src/mitm/cert/install.ts::updateNssDatabases`. +- Prefer secure-by-default libraries when available — see [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) for the curated list (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink, etc.). --- -## Documentation accuracy +## Architecture -Documentation must describe verified behavior, not plausible behavior. +### Data Layer (`src/lib/db/`) -1. Before documenting an API name, endpoint, path, CLI command, or environment variable, - search for it: `rg -n "name" src/ open-sse/ bin/`. If it has no source match, do not - document it. -2. Measure mutable counts instead of writing them from memory: use `wc -l ` or a - directory-specific count command. -3. Copy code examples from working usage or run them. Prefer a source link such as - `path/to/file.ts:line` to an invented signature. -4. Run `npm run check:docs-all` for edits under `docs/`; it includes the fabricated-docs - validation. +All persistence uses SQLite through **110 top-level modules** in `src/lib/db/`. Top modules: ---- +- Core: `core.ts`, `migrationRunner.ts`, `encryption.ts`, `stateReset.ts` +- Providers / catalog: `providers.ts`, `models.ts`, `providerLimits.ts`, `compressionAnalytics.ts` +- Routing: `combos.ts`, `modelComboMappings.ts`, `domainState.ts`, `commandCodeAuth.ts` +- Auth: `apiKeys.ts`, `secrets.ts`, `registeredKeys.ts`, `sessionAccountAffinity.ts` +- Usage / billing: `quotaSnapshots.ts`, `creditBalance.ts`, `usage*.ts`, `compressionCacheStats.ts` +- Storage: `backup.ts`, `cleanup.ts`, `jsonMigration.ts`, `healthCheck.ts`, `databaseSettings.ts` +- Extension modules: `evals.ts`, `webhooks.ts`, `reasoningCache.ts`, `readCache.ts`, `tierConfig.ts`, `compressionCombos.ts`, `compressionScheduler.ts`, `batches.ts`, `files.ts`, `syncTokens.ts`, `proxies.ts`, `oneproxy.ts`, `upstreamProxy.ts`, `versionManager.ts`, `cliToolState.ts`, `prompts.ts`, `detailedLogs.ts`, `contextHandoffs.ts`, `compression.ts`, `stats.ts` -## Common Modification Scenarios +Live count: `ls src/lib/db/*.ts | wc -l` (currently 110). Drift detection: `npm run check:docs-counts`. +Schema migrations live in `src/lib/db/migrations/` (**130 files** as of v3.8.50) and run via `migrationRunner.ts`. +`src/lib/localDb.ts` is a **re-export layer only** — never add logic there. + +#### DB Internals + +- **`core.ts`**: `getDbInstance()` returns a singleton `better-sqlite3` instance with WAL + journaling. `SCHEMA_SQL` defines **17 base tables** (verify with `grep -c "CREATE TABLE" src/lib/db/core.ts` minus 1 for the bookkeeping `_omniroute_migrations` table). Helpers: `rowToCamel`, `encryptConnectionFields`. +- **`migrationRunner.ts`**: Applies versioned SQL files from `db/migrations/` inside transactions. + Tracks applied migrations in `_omniroute_migrations` table. +- **Migrations**: 130 files (`001_initial_schema.sql` → `133_*.sql`, with intentionally unused version numbers). + Each migration is idempotent and runs in a transaction. Live count: `ls src/lib/db/migrations/*.sql | wc -l`. +- **Domain modules** import `getDbInstance()` from `core.ts` for all CRUD operations. + Each module owns a specific table/set of tables (e.g., `providers.ts` → `provider_connections`, + `combos.ts` → `combos`). Encryption helpers protect sensitive fields at rest. +- **`localDb.ts`** re-exports all domain modules — consumers import from here for convenience. + +### API Route Layer (`src/app/api/v1/`) + +Next.js App Router routes — each follows a consistent pattern: + +``` +Route → CORS preflight → Body validation (Zod) → Optional auth (extractApiKey/isValidApiKey) + → API key policy enforcement (enforceApiKeyPolicy) → Handler delegation (open-sse) +``` + +| Route | Handler | Notes | +| ------------------------------- | ------------------------- | ------------------------------------------------------------- | +| `chat/completions/route.ts` | `handleChat()` | + prompt injection guard (clones request) | +| `responses/route.ts` | `handleChat()` (unified) | Responses API format | +| `embeddings/route.ts` | `handleEmbedding()` | Model listing + creation | +| `images/generations/route.ts` | `handleImageGeneration()` | Model listing + creation | +| `audio/transcriptions/route.ts` | audio handler | Multipart form data | +| `audio/speech/route.ts` | TTS handler | Binary audio response | +| `videos/generations/route.ts` | video handler | ComfyUI/SD WebUI | +| `music/generations/route.ts` | music handler | ComfyUI workflows | +| `moderations/route.ts` | moderation handler | Content safety | +| `rerank/route.ts` | rerank handler | Document relevance | +| `search/route.ts` | search handler | Web search (12 providers per `open-sse/handlers/search.ts:6`) | + +**No global Next.js middleware file** — interception is route-specific. Auth is optional +(controlled by `REQUIRE_API_KEY` env). Prompt injection guard is unique to chat completions. + +### Request Pipeline (`open-sse/`) + +The `open-sse/` workspace is the core streaming engine. Full request flow: + +``` +Client Request + → src/app/api/v1/.../route.ts (Next.js route) + → open-sse/handlers/chatCore.ts::handleChatCore() + → Semantic/signature cache check + → Rate limit check (rateLimitManager) + → Combo routing? → open-sse/services/combo.ts::handleComboChat() + → resolveComboTargets() → ordered ResolvedComboTarget[] + → For each target: handleSingleModel() (wraps chatCore) + → translateRequest() (open-sse/translator/) + → Convert source format (e.g., OpenAI) → target format (e.g., Claude) + → getExecutor() → provider-specific executor instance + → executor.execute() (BaseExecutor → DefaultExecutor or provider-specific) + → buildUrl() + buildHeaders() + transformRequest() + → fetch() to upstream provider + → Retry logic with exponential backoff + → Response translation back to client format + → If Responses API: responsesTransformer.ts TransformStream + → SSE stream or JSON response to client +``` + +**Handlers** (`open-sse/handlers/`): `chatCore.ts`, `responsesHandler.ts`, `embeddings.ts`, +`imageGeneration.ts`, `videoGeneration.ts`, `musicGeneration.ts`, `audioSpeech.ts`, +`audioTranscription.ts`, `moderations.ts`, `rerank.ts`, `search.ts`. + +**Upstream headers**: merged after default auth; same header name replaces executor value. +**T5 intra-family fallback** recomputes headers using only the fallback model id. +Forbidden header names: `src/shared/constants/upstreamHeaders.ts` — keep sanitize, +Zod schemas, and unit tests aligned when editing. + +### Provider Categories + +- **No-auth** (9): credential-less provider endpoints in `NOAUTH_PROVIDERS` +- **OAuth** (23): sign-in providers in `OAUTH_PROVIDERS`, including Claude Code, Antigravity, Codex, GitHub Copilot, Cursor, Kimi Coding, Kiro, Qoder, Gemini, Windsurf, GitLab Duo, Zed, Trae, and others +- **API Key** (225): OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, + Together, Fireworks, Cerebras, Cohere, NVIDIA, Nebius, SiliconFlow, Hyperbolic, + HuggingFace, OpenRouter, Vertex AI, Cloudflare AI, Scaleway, AI/ML API, Pollinations, + Puter, Longcat, Alibaba, Kimi, Minimax, Blackbox, Synthetic, Kilo Gateway, + Z.AI, GLM, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, + NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper, Brave, Exa, + Tavily, OpenCode Zen/Go, Bailian Coding Plan, DeepInfra, Vercel AI Gateway, + Lambda AI, SambaNova, nScale, OVHcloud AI, Baseten, PublicAI, Moonshot AI, + Meta Llama API, v0 (Vercel), Morph, Featherless AI, FriendliAI, LlamaGate, + Galadriel, Weights & Biases Inference, Volcengine, AI21 Labs, Venice.ai, + Codestral, Upstage, Maritalk, Xiaomi MiMo, Inference.net, NanoGPT, Predibase, + Bytez, Heroku AI, Databricks, Snowflake Cortex, GigaChat (Sber), CrofAI, + AgentRouter, ChatGPT Web, Baidu Qianfan, AWS Polly, RunwayML, GitLab Duo, + Amazon Q, Empower, Poe, and many more. +- **Self-Hosted** (10): Ollama, LM Studio, vLLM, Lemonade, Llamafile, llama.cpp, Triton, Docker Model Runner, Xinference, Oobabooga +- **Custom**: OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) prefixes + +Providers are registered in `src/shared/constants/providers.ts` with Zod validation at module load. + +### Executors (`open-sse/executors/`) + +Provider-specific request executors: `base.ts`, `default.ts`, `cursor.ts`, `codex.ts`, +`antigravity.ts`, `github.ts`, `kiro.ts`, `qoder.ts`, `vertex.ts`, +`cloudflare-ai.ts`, `opencode.ts`, `pollinations.ts`, `puter.ts`. + +#### Executor Internals + +- **`base.ts`** (`BaseExecutor`): Abstract base with `buildUrl()`, `buildHeaders()`, + `transformRequest()`, retry logic (exponential backoff), and `execute()`. Subclasses + override URL/header/transform methods for provider-specific behavior. +- **`default.ts`** (`DefaultExecutor extends BaseExecutor`): Handles most OpenAI-compatible + providers. Reads provider config from `providerRegistry.ts` to resolve base URL, auth + header format, and request transformations. +- **`getExecutor()`** (`executors/index.ts`): Factory that returns the correct executor + instance based on provider ID. Provider-specific executors (Cursor, Codex, Vertex, etc.) + override only what differs from the default. + +### Translator (`open-sse/translator/`) + +Translates between API formats (OpenAI-format ↔ Anthropic, Gemini, etc.). +Includes request/response translators with helpers for image handling. + +#### Translator Internals + +- **`translator/index.ts`**: Exports `translateRequest()` and format constants. Called by + `chatCore.ts` before executor dispatch. +- **Flow**: `translateRequest(body, sourceFormat, targetFormat)` → detects source format + (OpenAI, Anthropic, Gemini) → applies the matching translator module → returns + transformed body ready for the target provider. +- **Response translation** runs in reverse after upstream response, converting back to + the client's expected format. + +### Transformer (`open-sse/transformer/`) + +`responsesTransformer.ts` — transforms Responses API format to/from Chat Completions format. + +#### Transformer Internals + +- **`createResponsesApiTransformStream()`**: Returns a `TransformStream` that converts + Chat Completions SSE chunks (`data: {"choices":[...]}`) into Responses API SSE events + (`response.output_item.added`, `response.output_text.delta`, etc.). +- Used when the client sends a Responses API request: the request is internally converted + to Chat Completions format, dispatched normally, and the response is piped through this + transform stream before reaching the client. + +### Services (`open-sse/services/`) + +178 service modules in `open-sse/services/` (top-level only; more including sub-dirs like `autoCombo/` and `compression/`). Refresh: `ls open-sse/services/*.ts | wc -l`. Key modules: +`combo.ts` (routing engine), `usage.ts`, `tokenRefresh.ts`, +`rateLimitManager.ts`, `accountFallback.ts`, `sessionManager.ts`, `wildcardRouter.ts`, +`autoCombo/`, `intentClassifier.ts`, `taskAwareRouter.ts`, `thinkingBudget.ts`, +`contextManager.ts`, `modelDeprecation.ts`, `modelFamilyFallback.ts`, +`emergencyFallback.ts`, `workflowFSM.ts`, `backgroundTaskDetector.ts`, `ipFilter.ts`, +`signatureCache.ts`, `volumeDetector.ts`, `contextHandoff.ts`, `compression/` (prompt +compression pipeline), and more. + +#### Prompt Compression Pipeline (`compression/`) + +Modular prompt compression that runs proactively before the existing reactive context manager. + +- **`strategySelector.ts`**: Selects compression mode based on config, compression combo assignments, + combo overrides, auto-trigger thresholds, and defaults. Priority: assigned compression combo > + combo override > auto-trigger > default mode > off. +- **`lite.ts`**: 5 lite-mode techniques: `collapseWhitespace`, `dedupSystemPrompt`, + `compressToolResults`, `removeRedundantContent`, `replaceImageUrls`. Target: 10-15% savings at + <1ms latency. +- **`caveman.ts` / `cavemanRules.ts`**: Caveman-style semantic condensation backed by built-in + rules plus file-loaded language packs under `compression/rules/`. +- **`engines/rtk/`**: Rule-based terminal/tool-output compression inspired by RTK patterns. Detects + command output classes, applies JSON filter packs, deduplicates repeated lines, strips ANSI/code + noise, and preserves errors/actionable context. The RTK JSON DSL supports replace, + match-output short-circuit, strip/keep, per-line truncation, head/tail/max-line truncation, + inline tests, trust-gated project/global custom filters, and optional redacted raw-output + retention for authenticated recovery. +- **`engines/registry.ts`**: Registers engines (`caveman`, `rtk`) and powers stacked pipelines. +- **`stats.ts`**: Per-request compression stats tracking (original tokens, compressed tokens, + savings %, techniques used, engine breakdown, compression combo id). +- **`types.ts`**: `CompressionMode` (off/lite/standard/aggressive/ultra/rtk/stacked), + `CompressionConfig`, `CompressionStats`, `CompressionResult`. +- DB settings in `src/lib/db/compression.ts`, compression combos in + `src/lib/db/compressionCombos.ts`, API routes under `src/app/api/settings/compression/`, + `src/app/api/context/*`, and preview/language-pack routes under `src/app/api/compression/*`. + +#### Combo Routing Engine (`combo.ts`) + +- **`handleComboChat()`**: Entry point for combo-routed requests. Receives the combo config + and iterates through targets in order until one succeeds or all fail. +- **`resolveComboTargets()`**: Expands a combo configuration into an ordered array of + `ResolvedComboTarget[]`, each specifying provider + model + account + credentials. +- **Strategies** (19): priority, weighted, fill-first, round-robin, P2C, random, + least-used, reset-aware, reset-window, cost-optimized, strict-random, auto, lkgp, + context-optimized, cache-optimized, context-relay, headroom, fusion, pipeline. Source: + `ROUTING_STRATEGY_VALUES` in `src/shared/constants/routingStrategies.ts`. +- Each target calls **`handleSingleModel()`** which wraps `handleChatCore()` with + per-target error handling and circuit breaker checks. + +### Domain Layer (`src/domain/`) + +Policy engine modules: `policyEngine.ts`, `comboResolver.ts`, `costRules.ts`, +`degradation.ts`, `fallbackPolicy.ts`, `lockoutPolicy.ts`, `modelAvailability.ts`, +`providerExpiration.ts`, `quotaCache.ts`, `responses.ts`, `configAudit.ts`. + +### MCP Server (`open-sse/mcp-server/`) + +**107 tools** total (`TOTAL_MCP_TOOL_COUNT`, `open-sse/mcp-server/server.ts`): a 42-entry base registry (`MCP_TOOLS` in `schemas/tools.ts`, bundling the core / cache / compression / 1proxy / advanced tools) **plus** standalone module sets — memory (3), skill (4), agentSkill (3), pool (6), gamification (8), plugin (8), notion (6), obsidian (22). 3 transports (stdio / SSE / Streamable HTTP). Scoped auth (32 scopes — see `OMNIROUTE_MCP_SCOPES`), Zod schemas. See [`docs/frameworks/MCP-SERVER.md`](docs/frameworks/MCP-SERVER.md). + +**Core tools** (20): get_health, list_combos, get_combo_metrics, switch_combo, check_quota, +route_request, cost_report, list_models_catalog, web_search, simulate_route, set_budget_guard, +set_routing_strategy, set_resilience_profile, test_combo, get_provider_metrics, +best_combo_for_task, explain_route, get_session_snapshot, db_health_check, sync_pricing. + +**Cache tools** (2): cache_stats, cache_flush. + +**Compression tools** (5): compression_status, compression_configure, set_compression_engine, +list_compression_combos, compression_combo_stats. + +**1proxy tools** (3): oneproxy_fetch, oneproxy_rotate, oneproxy_stats. + +**Memory tools** (3): memory_search, memory_add, memory_clear. + +**Skill tools** (4): skills_list, skills_enable, skills_execute, skills_executions. + +**Agent-skill tools** (3): A2A skill discovery / invocation bridges. + +**Gamification tools** (8): levels, badges, leaderboard, and community-federation queries. + +**Plugin tools** (8): plugin marketplace listing, install/enable/disable, and runtime inspection. + +**Notion tools** (6) + **Obsidian tools** (22): knowledge-base read/write integrations (the largest tool family — vault search, note CRUD, WebDAV-backed file ops). + +#### MCP Internals + +- **Tool registration**: Each tool is an object with `{ name, description, inputSchema: ZodSchema, +handler: async (args) => {...} }`. Zod validates inputs before the handler fires. +- **`createMcpServer()`** and **`startMcpStdio()`** exported from `mcp-server/index.ts`. + `createMcpServer()` wires all tool sets; `startMcpStdio()` launches the stdio transport. +- **Transports**: stdio (CLI `omniroute --mcp`), SSE (`/api/mcp/sse`), Streamable HTTP + (`/api/mcp/stream`). All share the same tool/scope engine. +- **Scopes** (30): Control which tool categories an API key can access. Enforcement happens + before handler dispatch. +- **Audit**: Every tool invocation is logged to SQLite (`mcp_audit` table) with tool name, + args, success/failure, API key attribution, and timestamp. + +### A2A Server (`src/lib/a2a/`) + +JSON-RPC 2.0, SSE streaming, Task Manager with TTL cleanup. +Agent Card at `/.well-known/agent.json`. +Skills (6): `smartRouting.ts`, `quotaManagement.ts`, `providerDiscovery.ts`, `costAnalysis.ts`, `healthReport.ts`, `listCapabilities.ts`. + +#### A2A Internals + +- **`taskManager.ts`**: State machine lifecycle for tasks: `submitted → working → +completed | failed | canceled`. Tasks have TTL and are cleaned up automatically. +- **JSON-RPC methods**: `message/send` (sync), `message/stream` (SSE), `tasks/get`, + `tasks/cancel`. Dispatched via `POST /a2a`. +- **Skills**: Registered in a DB-backed registry. Each skill receives task context + (messages, metadata) and returns structured results. `quotaManagement.ts` summarizes + quota; `smartRouting.ts` recommends routing decisions. +- **Agent Card**: `/.well-known/agent.json` exposes capabilities, skills, and metadata + for client auto-discovery. + +### ACP Module (`src/lib/acp/`) + +Agent Communication Protocol registry and manager. + +### Memory System (`src/lib/memory/`) + +Extraction, injection, retrieval, summarization, and store modules for persistent +conversational memory across sessions. + +### Skills System (`src/lib/skills/`) + +Extensible skill framework: registry, executor, sandbox, built-in skills, +custom skill support, interception, and injection. + +#### Skills Internals + +- **`registry.ts`**: DB-backed skill registration and discovery. Skills have metadata + (name, description, version, enabled status) stored in SQLite. +- **`executor.ts`**: Execution engine with configurable timeout and retry logic. + Receives skill name + input, looks up the skill, runs it in the sandbox. +- **`sandbox.ts`**: Isolation layer for custom (user-provided) skills. Limits resource + access and execution time. +- **Built-in skills**: Ship with OmniRoute (e.g., quota management, routing). Located + alongside the registry. +- **Interception/Injection**: Skills can intercept requests in the pipeline (pre/post + processing) or inject context into prompts. + +### Compliance (`src/lib/compliance/`) + +Policy index for compliance enforcement. + +### MITM Proxy (`src/mitm/`) + +MITM proxy capability with certificate management, DNS handling, and target routing. + +### Middleware (`src/middleware/`) + +Request middleware including `promptInjectionGuard.ts`. + +### Guardrails (`src/lib/guardrails/`) + +Hot-reloadable guardrails framework (3 built-in: pii-masker, prompt-injection, vision-bridge). Fail-open. The `pii-masker` guardrail is registered and runs on every request, but its data-mutating logic is **opt-in** and OFF by default — it only redacts when `PII_REDACTION_ENABLED` (request) / `PII_RESPONSE_SANITIZATION` (response + streaming) are enabled (both `defaultValue: "false"`); with them off, payloads pass through untouched. A request can additionally opt OUT of any guardrail via header (`x-omniroute-disabled-guardrails`). Never make PII default-on (Hard Rule #20). See [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md). + +### Cloud Agents (`src/lib/cloudAgent/`) + +`CloudAgentBase` abstract class + 4 agents (codex-cloud, cursor-cloud, devin, jules). Tasks persisted in `cloud_agent_tasks`; management auth required. See [`docs/frameworks/CLOUD_AGENT.md`](docs/frameworks/CLOUD_AGENT.md). + +### Evals (`src/lib/evals/`) + +Generic eval framework: `evalRunner.ts`, `runtime.ts`. Targets: combo / model / suite-default. See [`docs/frameworks/EVALS.md`](docs/frameworks/EVALS.md). + +### Webhooks (`src/lib/webhookDispatcher.ts`) + +HMAC-signed delivery, exponential backoff, auto-disable after 10 failures. 7 event types. See [`docs/frameworks/WEBHOOKS.md`](docs/frameworks/WEBHOOKS.md). + +### Authorization Pipeline (`src/server/authz/`) + +`classify → policies → enforce`. 3 route classes (PUBLIC / CLIENT_API / MANAGEMENT). See [`docs/architecture/AUTHZ_GUIDE.md`](docs/architecture/AUTHZ_GUIDE.md). + +### Reasoning Replay (`src/lib/db/reasoningCache.ts` + `open-sse/services/reasoningCache.ts`) + +Hybrid in-memory + SQLite cache for `reasoning_content`. Re-injects on multi-turn for strict providers (DeepSeek V4, Kimi K2, Qwen-Thinking, GLM, xiaomi-mimo). See [`docs/routing/REASONING_REPLAY.md`](docs/routing/REASONING_REPLAY.md). + +### Tunnels (`src/lib/{cloudflaredTunnel,ngrokTunnel}.ts` + `src/app/api/tunnels/`) + +Cloudflare Quick/Named, ngrok, Tailscale Funnel. See [`docs/ops/TUNNELS_GUIDE.md`](docs/ops/TUNNELS_GUIDE.md). ### Adding a New Provider -1. Register in `src/shared/constants/providers.ts` (Zod-validated at load) -2. Add executor in `open-sse/executors/` if custom logic needed (extend `BaseExecutor`) -3. Add translator in `open-sse/translator/` if non-OpenAI format -4. Add OAuth config in `src/lib/oauth/constants/oauth.ts` if OAuth-based — if the upstream CLI ships a public client_id/secret, embed via `resolvePublicCred()` (see `docs/security/PUBLIC_CREDS.md`), **never** as a literal -5. Register models in `open-sse/config/providerRegistry.ts` -6. Write tests in `tests/unit/` (include the publicCreds shape assertion if you added a new embedded default) - -### Adding a New API Route - -1. Create directory under `src/app/api/v1/your-route/` -2. Create `route.ts` with `GET`/`POST` handlers -3. Follow pattern: CORS → Zod body validation → optional auth → handler delegation -4. Handler goes in `open-sse/handlers/` (import from there, not inline) -5. Error responses use `buildErrorBody()` / `errorResponse()` from `open-sse/utils/error.ts` (auto-sanitized — never put `err.stack` or `err.message` raw in the body). See `docs/security/ERROR_SANITIZATION.md`. -6. Add tests — including at least one assertion that error responses do not leak stack traces (`!body.error.message.includes("at /")`) - -### Adding a New DB Module - -1. Create `src/lib/db/yourModule.ts` — import `getDbInstance` from `./core.ts` -2. Export CRUD functions for your domain table(s) -3. Add migration in `src/lib/db/migrations/` if new tables needed -4. Re-export from `src/lib/localDb.ts` (add to the re-export list only) -5. Write tests - -### Adding a New MCP Tool - -1. Add tool definition in `open-sse/mcp-server/tools/` with Zod input schema + async handler -2. Register in tool set (wired by `createMcpServer()`) -3. Assign to appropriate scope(s) -4. Write tests (tool invocation logged to `mcp_audit` table) - -### Adding a New A2A Skill - -1. Create skill in `src/lib/a2a/skills/` (5 already exist: smart-routing, quota-management, provider-discovery, cost-analysis, health-report) -2. Skill receives task context (messages, metadata) → returns structured result -3. Register in `A2A_SKILL_HANDLERS` in `src/lib/a2a/taskExecution.ts` -4. Expose in `src/app/.well-known/agent.json/route.ts` (Agent Card) -5. Write tests in `tests/unit/` -6. Document in `docs/frameworks/A2A-SERVER.md` skill table - -### Adding a New Cloud Agent - -1. Create agent class in `src/lib/cloudAgent/agents/` extending `CloudAgentBase` (3 already exist: codex-cloud, devin, jules) -2. Implement `createTask`, `getStatus`, `approvePlan`, `sendMessage`, `listSources` -3. Register in `src/lib/cloudAgent/registry.ts` -4. Add OAuth/credentials handling if needed (`src/lib/oauth/providers/`) -5. Tests + document in `docs/frameworks/CLOUD_AGENT.md` - -### Adding a New Embedded Service - -1. Create installer in `src/lib/services/installers/{name}.ts` modeled on `ninerouter.ts` (use `runNpm` from `installers/utils.ts` — no shell interpolation, hard rule #13). -2. Register the service in `src/lib/services/bootstrap.ts` (add to `SERVICES[]` array and extend `buildSpawnArgsFactory()`). -3. Add a DB seed row for the new service in `src/lib/db/migrations/` (`version_manager` table, `status='not_installed'`, `auto_start=0`). -4. Create 7 API endpoints under `src/app/api/services/{name}/` (`_lib.ts`, `install`, `start`, `stop`, `restart`, `update`, `status`, `auto-start`). All delegate errors through `createErrorResponse()`. The shared `logs` endpoint is already wired via `[name]/logs/route.ts`. -5. Verify `/api/services/` is in `LOCAL_ONLY_API_PREFIXES` in `src/server/authz/routeGuard.ts`; add a test asserting `isLocalOnlyPath()` returns `true` for the new prefix if you add one (hard rule #17). -6. Add a UI tab in `src/app/(dashboard)/dashboard/providers/services/tabs/` reusing `ServiceStatusCard`, `ServiceLifecycleButtons`, `ServiceLogsPanel`. -7. Document in `docs/frameworks/EMBEDDED-SERVICES.md` (update §1 service table + §4 API reference) and `docs/openapi.yaml`. -8. Write tests: unit (`tests/unit/services/`), integration (`tests/integration/services/`, gated by `RUN_SERVICES_INT=1`), and update `docs/ops/RELEASE_CHECKLIST.md` smoke section. - -### Adding a New Guardrail / Eval / Skill / Webhook event - -- Guardrail: `src/lib/guardrails/` → docs: `docs/security/GUARDRAILS.md` -- Eval suite: `src/lib/evals/` → docs: `docs/frameworks/EVALS.md` -- Skill (sandbox): `src/lib/skills/` → docs: `docs/frameworks/SKILLS.md` -- Webhook event: `src/lib/webhookDispatcher.ts` → docs: `docs/frameworks/WEBHOOKS.md` +1. Register in `src/shared/constants/providers.ts` +2. Add executor in `open-sse/executors/` (if custom logic needed) +3. Add translator in `open-sse/translator/` (if non-OpenAI format) +4. Add OAuth config in `src/lib/oauth/constants/oauth.ts` (if OAuth-based) +5. Add models in `open-sse/config/providerRegistry.ts` --- -## Reference Documentation +## Subdirectory AGENTS.md Files + +- **[`src/lib/db/AGENTS.md`](src/lib/db/AGENTS.md)** — SQLite persistence, domain modules, migrations +- **[`open-sse/services/AGENTS.md`](open-sse/services/AGENTS.md)** — Routing engine, combo resolution, strategy selection + +## Reference Documentation (docs/) For any non-trivial change, read the matching deep-dive first: -| Area | Doc | -| --------------------------------------------- | ------------------------------------------------------- | -| Repo navigation | `docs/architecture/REPOSITORY_MAP.md` | -| Architecture | `docs/architecture/ARCHITECTURE.md` | -| Engineering reference | `docs/architecture/CODEBASE_DOCUMENTATION.md` | -| Auto-Combo (13-factor scoring, 19 strategies) | `docs/routing/AUTO-COMBO.md` | -| Resilience (3 mechanisms) | `docs/architecture/RESILIENCE_GUIDE.md` | -| Reasoning replay | `docs/routing/REASONING_REPLAY.md` | -| Skills framework | `docs/frameworks/SKILLS.md` | -| Radar (free-model catalog overlay) | `docs/frameworks/RADAR.md` | -| Memory system (FTS5 + Qdrant) | `docs/frameworks/MEMORY.md` | -| Cloud agents | `docs/frameworks/CLOUD_AGENT.md` | -| Guardrails (PII / injection / vision) | `docs/security/GUARDRAILS.md` | -| Public upstream credentials (Gemini/etc.) | `docs/security/PUBLIC_CREDS.md` | -| Error message sanitization | `docs/security/ERROR_SANITIZATION.md` | -| Evals | `docs/frameworks/EVALS.md` | -| Compliance / audit | `docs/security/COMPLIANCE.md` | -| Webhooks | `docs/frameworks/WEBHOOKS.md` | -| Authorization pipeline | `docs/architecture/AUTHZ_GUIDE.md` | -| Stealth (TLS / fingerprint) | `docs/security/STEALTH_GUIDE.md` | -| Agent protocols (A2A / ACP / Cloud) | `docs/frameworks/AGENT_PROTOCOLS_GUIDE.md` | -| MCP server | `docs/frameworks/MCP-SERVER.md` | -| A2A server | `docs/frameworks/A2A-SERVER.md` | -| API reference + OpenAPI | `docs/reference/API_REFERENCE.md` + `docs/openapi.yaml` | -| Provider catalog (auto-generated) | `docs/reference/PROVIDER_REFERENCE.md` | -| Tunnels | `docs/ops/TUNNELS_GUIDE.md` | -| Electron desktop app | `docs/guides/ELECTRON_GUIDE.md` | -| Release flow | `docs/ops/RELEASE_CHECKLIST.md` | -| Embedded services | `docs/frameworks/EMBEDDED-SERVICES.md` | -| Quality gates (~48 scripts, allowlist policy) | `docs/architecture/QUALITY_GATES.md` | +| Area | Doc | +| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | +| Repo navigation | [`docs/architecture/REPOSITORY_MAP.md`](docs/architecture/REPOSITORY_MAP.md) | +| Architecture | [`docs/architecture/ARCHITECTURE.md`](docs/architecture/ARCHITECTURE.md) | +| Engineering reference | [`docs/architecture/CODEBASE_DOCUMENTATION.md`](docs/architecture/CODEBASE_DOCUMENTATION.md) | +| Auto-Combo (13-factor, 19 strategies) | [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md) | +| Resilience (3 layers) | [`docs/architecture/RESILIENCE_GUIDE.md`](docs/architecture/RESILIENCE_GUIDE.md) | +| Skills | [`docs/frameworks/SKILLS.md`](docs/frameworks/SKILLS.md) | +| Memory | [`docs/frameworks/MEMORY.md`](docs/frameworks/MEMORY.md) | +| Cloud agents | [`docs/frameworks/CLOUD_AGENT.md`](docs/frameworks/CLOUD_AGENT.md) | +| Guardrails | [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) | +| Evals | [`docs/frameworks/EVALS.md`](docs/frameworks/EVALS.md) | +| Compliance | [`docs/security/COMPLIANCE.md`](docs/security/COMPLIANCE.md) | +| Webhooks | [`docs/frameworks/WEBHOOKS.md`](docs/frameworks/WEBHOOKS.md) | +| Authz | [`docs/architecture/AUTHZ_GUIDE.md`](docs/architecture/AUTHZ_GUIDE.md) | +| Stealth | [`docs/security/STEALTH_GUIDE.md`](docs/security/STEALTH_GUIDE.md) | +| Reasoning replay | [`docs/routing/REASONING_REPLAY.md`](docs/routing/REASONING_REPLAY.md) | +| Agent protocols (A2A / ACP / Cloud) | [`docs/frameworks/AGENT_PROTOCOLS_GUIDE.md`](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md) | +| MCP server | [`docs/frameworks/MCP-SERVER.md`](docs/frameworks/MCP-SERVER.md) | +| A2A server | [`docs/frameworks/A2A-SERVER.md`](docs/frameworks/A2A-SERVER.md) | +| API reference | [`docs/reference/API_REFERENCE.md`](docs/reference/API_REFERENCE.md) + [`docs/openapi.yaml`](docs/openapi.yaml) | +| Provider catalog (auto-generated) | [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md) | +| Tunnels | [`docs/ops/TUNNELS_GUIDE.md`](docs/ops/TUNNELS_GUIDE.md) | +| Electron desktop | [`docs/guides/ELECTRON_GUIDE.md`](docs/guides/ELECTRON_GUIDE.md) | +| Release flow | [`docs/ops/RELEASE_CHECKLIST.md`](docs/ops/RELEASE_CHECKLIST.md) | +| Quality gates (35 gates, allowlist policy) | [`docs/architecture/QUALITY_GATES.md`](docs/architecture/QUALITY_GATES.md) | +| Cluster opt-in profiles (memory, bifrost) | [`docs/architecture/cluster-decisions.md`](docs/architecture/cluster-decisions.md) | --- -## Testing +## Fork / Upstream Workflow -| What | Command | -| ----------------------- | --------------------------------------------------------------------------- | -| Unit tests | `npm run test:unit` | -| Single file | `node --import tsx/esm --test tests/unit/your-file.test.ts` | -| Vitest (MCP, autoCombo) | `npm run test:vitest` | -| E2E (Playwright) | `npm run test:e2e` | -| Protocol E2E (MCP+A2A) | `npm run test:protocols:e2e` | -| Ecosystem | `npm run test:ecosystem` | -| Coverage gate | `npm run test:coverage` (60/60/60/60 — statements/lines/functions/branches) | -| Coverage report | `npm run coverage:report` | +This repository is a fork of `diegosouzapw/OmniRoute`. Keep fork-only operational +changes (for example GHCR image publishing, personal deployment workflows, or local +automation) out of upstream contribution PRs. -**PR rule**: If you change production code in `src/`, `open-sse/`, `electron/`, or `bin/`, you must include or update tests in the same PR. - -**Test layer preference**: unit first → integration (multi-module or DB state) → e2e (UI/workflow only). Encode bug reproductions as automated tests before or alongside the fix. - -**Both test runners must pass**: `npm run test:unit` (Node native — most tests) AND `npm run test:vitest` (MCP server, autoCombo, cache) cover **non-overlapping files**. Both are wired in CI (jobs `test-unit` and `test-vitest`) and must be green before merging. A PR where only one suite passes may silently ship broken MCP tools or routing regressions. - -**Bug fix / issue triage protocol (Hard Rule #18)**: Every fix for a reported issue must be validated by one of the following — no exceptions: - -1. **TDD (preferred)** — write a failing test reproducing the bug → fix it → confirm the test passes. The test becomes the permanent regression guard. Touch only the files the test proves need changing; nothing more. -2. **Real-environment test (when TDD is not possible)** — deploy to the production VPS (`root@192.168.0.15`) and run a documented live test. Record the exact command + result in the PR description. Applies to: OAuth upstream flows, Cloudflare/WS upstream behavior, UI-only regressions, hardware-dependent behavior. -3. "It worked locally without a test" does not count. A fix without a test or a VPS validation record is not a fix — it is a guess. - -Why this matters: fixing bug A while opening bug B is worse than not fixing at all. The TDD/VPS gate enforces surgical scope — you touch only what the failing test proves is broken. Examples where this paid off: #3090 (claude-web 403), #3113 (WS HTTP fallback), #3052 (heap-guard auto-calibration). - -**Copilot coverage policy**: When a PR changes production code and coverage is below 60% (statements/lines/functions/branches), do not just report — add or update tests, rerun the coverage gate, then ask for confirmation. Include commands run, changed test files, and final coverage result in the PR report. - ---- - -## Review focus - -- Keep database operations in `src/lib/db/`; do not issue raw SQL from routes. -- Send provider requests through `open-sse/handlers/`. -- Keep MCP and A2A pages as tabs inside `/dashboard/endpoint`. -- Preserve SSE cleanup, rate-limit header parsing, Zod validation, and provider-schema - validation. -- Treat Memory and Skills as cross-cutting changes that can affect MCP tools, the request - pipeline, and A2A skills. -- Do not close a contributor pull request after using its code; merge it through GitHub so - the contributor receives credit. - ---- - -## Planning & Research Artifacts - -`_tasks/` is a **separate, isolated git repository** that is gitignored by the main -repo (`.gitignore` → `_tasks/`). It is the canonical home for working artifacts — -plans, specs/designs, research, hand-offs — so they stay **versioned in their own -repo** instead of polluting the main OmniRoute tree. - -**Hard rule — never write planning / research output under `docs/` or the repo root.** -Whenever any plan/spec/research generator runs in this project (superpowers or otherwise), -save to `_tasks/` using the filename convention: - -| Artifact | Save here | -| -------------- | ------------------------------------------------------------- | -| Plans | `_tasks/superpowers/plans/YYYY-MM-DD-.md` | -| Specs / design | `_tasks/superpowers/specs/YYYY-MM-DD--design.md` | -| Research | `_tasks/research/…` | -| Hand-offs | `_tasks/hands-off/__v_sess-/` | - -Commit those artifacts inside the `_tasks/` repo (`git -C _tasks …`), never in the main repo. - ---- - -## Git Workflow - -```bash -# Never commit directly to main -git checkout -b feat/your-feature -git commit -m "feat: describe your change" -git push -u origin feat/your-feature -``` - -**Branch prefixes**: `feat/`, `fix/`, `refactor/`, `docs/`, `test/`, `chore/` - -**Commit format** (Conventional Commits): `feat(db): add circuit breaker` — scopes: `db`, `sse`, `oauth`, `dashboard`, `api`, `cli`, `docker`, `ci`, `mcp`, `a2a`, `memory`, `skills` - -**Husky hooks**: - -- **pre-commit**: lint-staged + `check-docs-sync` + `check:any-budget:t11` + `check:tracked-artifacts` -- **pre-push**: intentionally light (PATH/npm sanity only). `any-budget` + `tracked-artifacts` - already run on pre-commit; re-running them on every push was pure double-pay. CI still - enforces both. (Was Fase 6A.12 full pre-push gate; folded into pre-commit in #6716.) - -### Worktree isolation (MANDATORY for every development task) - -Multiple sessions/agents work this repo in parallel. The main checkout is **shared**, so a -`git checkout`/branch switch in it silently discards another session's uncommitted work and -yanks the branch out from under whatever else is running (incidents: 2026-06-05, 2026-06-13). - -**Rule: never develop on the shared main checkout. Every task gets its own git worktree on its -own dedicated branch, and you MUST confirm the base branch with the operator before creating it.** - -1. **Ask first — which base branch?** Before creating anything, ask the operator (unless they - already told you) from which branch the new worktree/branch should be cut. Do NOT assume - `main` or "whatever I'm on" — the answer is usually the active `release/vX.Y.Z`, but it can - be another feature/release branch. Get the base explicitly. -2. **Create an isolated worktree + branch off that base** (never reuse the main checkout). - **🔴 MANDATORY PATH: every worktree lives under `.claude/worktrees/` — and nowhere else.** - This is the single canonical location. It is gitignored AND in the `tsconfig.json` / - `.dockerignore` excludes, so worktrees never leak into the build scope. **Never** use - `.worktrees/`, repo-root, or any other path — a worktree outside `.claude/worktrees/` - (a) escapes the build-scope excludes and poisons `next build` (the `tsconfig` - `include: **/*` globs ~70× the codebase → OOM; incident 2026-06-25) and (b) scatters - worktrees across two dirs. - - ```bash - BASE_BRANCH="release/vX.Y.Z" # ← the branch the operator confirmed in step 1 - TASK="feat/your-feature" # feat/ fix/ refactor/ docs/ test/ chore/ - git fetch origin "$BASE_BRANCH" - git worktree add ".claude/worktrees/${TASK##*/}" -b "$TASK" "origin/$BASE_BRANCH" - cd ".claude/worktrees/${TASK##*/}" - # Reuse the main checkout's node_modules to skip a per-worktree npm install. - # HARD LINKS (`cp -al`), never a symlink: ~5s for the whole tree and near-zero extra - # disk (the inodes are shared), and unlike a symlink it does not break the dev server. - cp -al "$(git -C rev-parse --show-toplevel)/node_modules" node_modules - ``` - - **Never `ln -s` node_modules.** Turbopack rejects a symlink that resolves outside the - project root, so `npm run dev` dies with a FATAL panic (`Symlink [project]/node_modules -is invalid, it points out of the filesystem root`) while typecheck, lint and the test - runners all keep passing — the error names "filesystem root", not the worktree, so it - reads like a Next/build bug and costs real time to trace (incident 2026-07-31, #9043). - -3. **Work, commit, push, open the PR — all from inside the worktree.** Never `git checkout` a - different branch inside a worktree another session might share. -4. **Tear down only your own** worktree + branch when done, from the main checkout: - `git worktree remove .claude/worktrees/` then `git branch -D `. Never blanket-delete - `fix/*`/`feat/*` — other sessions keep their own; delete only the branches you created, by name. -5. **Never touch another session's worktree, branch, or uncommitted changes.** If `git worktree -list` shows worktrees you didn't create, leave them alone. End every session with the main - checkout back on the branch it started on (the active `release/vX.Y.Z`, never `main`). - -### Base-green check (PRs must not be born red) - -Before cutting a branch, merging the base into a PR branch, mass-retargeting PRs, or opening a -PR: check whether the base tip is green. The `Release-Green (continuous)` workflow -(`.github/workflows/nightly-release-green.yml`) publishes the verdict in a single deduplicated -issue titled `🔴 Release branch not green: ` (label `base-red`). One call replaces any -local suite run for this purpose: - -```bash -gh issue list --repo diegosouzapw/OmniRoute --state open \ - --search "Release branch not green: in:title" -``` - -If the base is red: never treat the inherited failures as your branch's defect; never "fix" them -inside your feature branch (a base-red fix is its own freeze-gated `fix/release-vX.Y.Z-basereds` -PR); and if you must open a PR anyway, add `⚠️ base-red inherited: #` to the PR body so -reviewers and CI babysitters do not chase ghosts. - ---- - -## Upstream contributions - -This checkout is a fork of `diegosouzapw/OmniRoute`. Keep fork-only deployment and personal -automation changes out of upstream PRs. - -Start upstream work from the active upstream default branch, not `main`: +When preparing a PR for upstream, always start the work branch from the upstream +**default branch** — the active `release/vX.Y.Z` line (today `release/v3.8.49`). +Never branch from `main`: `main` only receives release squash-merges, so a branch +cut there is weeks behind and produces conflict-heavy PRs +(see `CONTRIBUTING.md` and `docs/ops/BRANCHING_MODEL.md`): ```bash git fetch upstream -git switch -c upstream/ +# the default branch is the active release line, e.g. release/v3.8.49 +git switch -c upstream/release/vX.Y.Z ``` -Target that same release branch in the pull request. Stage only the intended files, run the -focused checks, and use a Conventional Commit message (for example, `docs: slim AGENTS.md`). +Only cherry-pick or reapply the changes intended for the upstream PR. --- -## Environment +## Review Focus -- **Runtime**: Node.js ≥22.0.0 <23 || ≥24.0.0 <27, ES Modules. This is the **only supported** runtime for the published `omniroute` CLI, the server, and the test suites (`node:test` + vitest) — `engines.node` is authoritative and end users never need Bun. A **best-effort `bun:sqlite` compatibility path** exists so a global Bun install (`bun install -g omniroute`) can start without `better-sqlite3` (driver adapter + Bun-aware process spawning); it is **not** a supported runtime — no support guarantees — and every Bun-specific runtime change MUST preserve the Node driver/fallback chain and ship a Bun test (`test:bun:db`) or an explicit reason why the path is Node-only. -- **Bun (build/dev script runner + compatibility smoke only)**: Bun `1.3.14` is pinned as an **exact devDependency** (provisioned through the existing `npm ci` via the lockfile's `@oven/bun-*` platform binaries — no `setup-bun`/ad-hoc install). It is used **only** to execute a small, allow-listed set of TypeScript **gate/generator scripts** (replacing `node --import tsx` for startup speed): the CI checks `check:provider-consistency`, `check:compression-budget`, `check:known-symbols`, and the non-CI `gen:provider-reference`, `bench:compression` — plus the focused `test:bun:db` compatibility smoke suite for the best-effort `bun:sqlite` path. **Do NOT** widen Bun to `npm install`, the build (`build:cli*`), `check:pack-artifact`, the supported published runtime, or the main test runners — those stay on Node. Any new Bun-invoking gate/generator script must be validated byte-identical against its `node --import tsx` output first. After pulling the lockfile change, run `npm install` so `bun` resolves locally (a stale `node_modules` will fail those scripts with `bun: not found`). -- **TypeScript**: 6.0+, target ES2022, module esnext, resolution bundler -- **Path aliases**: `@/*` → `src/`, `@omniroute/open-sse` → `open-sse/`, `@omniroute/open-sse/*` → `open-sse/*` -- **Default port**: 20128 (API + dashboard on same port) -- **Data directory**: `DATA_DIR` env var, defaults to `~/.omniroute/` -- **Key env vars**: `PORT`, `JWT_SECRET`, `API_KEY_SECRET`, `INITIAL_PASSWORD`, `REQUIRE_API_KEY`, `APP_LOG_LEVEL` -- Setup: `cp .env.example .env` then generate `JWT_SECRET` (`openssl rand -base64 48`) and `API_KEY_SECRET` (`openssl rand -hex 32`) - ---- - -## Quality Gates & Ratchets - -OmniRoute has **~48 quality-gate scripts** (`scripts/check/` + `scripts/quality/`) wired -across **9 gate-running jobs** in `.github/workflows/ci.yml` (`lint`, `quality-gate`, -`quality-extended`, `docs-sync-strict`, `i18n-ui-coverage`, `i18n`, `pr-test-policy`, -`test-vitest`, `sonarqube`), plus the `quality.yml` fast-gates job (PR→`release/**`) and -3 nightly workflows (`nightly-property`, `nightly-resilience`, `nightly-llm-security`; -`nightly-mutation` once merged). Full inventory, per-job breakdown, and operational -procedures are in [`docs/architecture/QUALITY_GATES.md`](docs/architecture/QUALITY_GATES.md). - -**Quick reference:** - -- Gates in jobs `lint` + `docs-sync-strict`: pass/fail policy gates — - fix the violation or add an allowlist entry with a justification comment + tracking issue. -- Gates in job `quality-gate`: ratchet — metrics (ESLint warnings, code coverage, duplication, - complexity) must not regress vs `quality-baseline.json`. Update via - `npm run quality:ratchet -- --update` when a metric genuinely improves. -- Job `test-vitest` runs `npm run test:vitest` (MCP tools, autoCombo, cache) — blocking. - `test:vitest:ui` has been blocking since PR #7127. - -**Allowlist policy (short form):** Fix the cause; use the allowlist only for pre-existing -violations you cannot fix in the same PR. Add a comment with justification + issue number. -Stale allowlist entries (suppressing a violation that no longer exists) will be caught by -the stale-enforcement added in Fase 6A.3. - ---- - -## Hard Rules - -1. Never commit secrets or credentials -2. Never add logic to `localDb.ts` -3. Never use `eval()` / `new Function()` / implied eval -4. Never commit directly to `main` -5. Never write raw SQL in routes — use `src/lib/db/` modules -6. Never silently swallow errors in SSE streams -7. Always validate inputs with Zod schemas -8. Always include tests when changing production code -9. Coverage must not regress below the baseline frozen in `quality-baseline.json` (ratchet); absolute floor is 60% (statements/lines/functions/branches). Update the baseline via `npm run quality:ratchet -- --update` only when coverage genuinely improves. See `docs/architecture/QUALITY_GATES.md`. -10. Never bypass Husky hooks (`--no-verify`, `--no-gpg-sign`) without explicit operator approval. -11. Never embed public upstream OAuth client_id/secret or Firebase Web keys as string literals — always go through `resolvePublicCred()` (`open-sse/utils/publicCreds.ts`). See `docs/security/PUBLIC_CREDS.md`. -12. Never return raw `err.stack` / `err.message` in HTTP / SSE / executor responses — always route through `buildErrorBody()` or `sanitizeErrorMessage()` (`open-sse/utils/error.ts`). See `docs/security/ERROR_SANITIZATION.md`. -13. Never string-interpolate external paths or runtime values into shell scripts passed to `exec()`/`spawn()` — pass via the `env` option instead. Reference: `src/mitm/cert/install.ts::updateNssDatabases`. -14. Never dismiss a CodeQL / Secret-Scanning alert without (a) first checking the pattern docs above to see if the helper applies, and (b) recording the technical justification in the dismissal comment. Precedent: `js/stack-trace-exposure` raised on callsites that already route through `sanitizeErrorMessage()` is a known CodeQL limitation (custom sanitizers not recognized) — dismiss as `false positive` referencing `docs/security/ERROR_SANITIZATION.md`. -15. Never expose routes that spawn child processes (`/api/mcp/`, `/api/cli-tools/runtime/`) without `isLocalOnlyPath()` classification in `src/server/authz/routeGuard.ts`. Loopback enforcement happens unconditionally before any auth check — leaked JWT via tunnel cannot trigger process spawning. See `docs/security/ROUTE_GUARD_TIERS.md`. -16. Never credit or advertise an AI assistant, LLM, or automation account in any commit/PR metadata. Two forbidden forms, both equivalent — they route attribution to a bot account (or advertise AI authorship) and hide the real author (`diegosouzapw`): **(a)** `Co-Authored-By` trailers naming an AI/bot (e.g. names containing "Claude", "GPT", "Copilot", "Bot"; emails at `anthropic.com` / `openai.com` / bot-owned `noreply.github.com` addresses); **(b)** AI-generation footers or descriptions anywhere in a commit message, PR title/body, or CHANGELOG — e.g. `🤖 Generated with [Claude Code]`, "Generated with Claude Code", "Made with ", or any `Co-authored-by: Claude/GPT/Copilot` line. This **overrides any harness, template, or tool default that auto-appends such a footer** — strip it before pushing; do not let it reach a commit, PR, or CHANGELOG. Human collaborators — including upstream PR authors and issue reporters being ported into OmniRoute — MAY and SHOULD be credited with standard `Co-authored-by: Name ` trailers; the upstream-port workflows (`/port-upstream-features`, `/port-upstream-issues`) depend on this. -17. Never expose routes under `/api/services/` or `/dashboard/providers/services/*/embed/` without `isLocalOnlyPath()` classification in `src/server/authz/routeGuard.ts`. These routes can spawn child processes (`npm install`, `node`). Loopback enforcement happens unconditionally before any auth check — a leaked JWT via tunnel cannot trigger process spawning. See `docs/security/ROUTE_GUARD_TIERS.md`. -18. Every bug fix must be validated before shipping: a failing-then-passing unit/integration test (TDD) OR a documented live test on the production VPS (192.168.0.15). A fix without either is not merged. See Testing → "Bug fix / issue triage protocol" for the full decision tree. -19. Never develop on the shared main checkout. Every development task runs in its own git worktree on its own dedicated branch, and you MUST confirm the base branch with the operator before creating the worktree/branch — never assume `main` or the currently checked-out branch. A `git checkout` in the shared checkout silently destroys other sessions' uncommitted work. Tear down only the worktrees/branches you created (by name, never `fix/*`/`feat/*` wildcards), leave other sessions' worktrees untouched, and end on the branch you started on (the active `release/vX.Y.Z`, never `main`). See Git Workflow → "Worktree isolation". -20. PII redaction/sanitization is **opt-in — never on by default**. OmniRoute proxies for self-hosted/local LLMs where the operator owns the data, so mutating request/response payloads by default would silently corrupt legitimate traffic. The two data-mutating PII feature flags **MUST** keep `defaultValue: "false"` in `src/shared/constants/featureFlagDefinitions.ts`: `PII_REDACTION_ENABLED` (request-side) and `PII_RESPONSE_SANITIZATION` (response + streaming). All three application points — `src/lib/guardrails/piiMasker.ts` (request guardrail), `src/lib/piiSanitizer.ts` (response), `src/lib/streamingPiiTransform.ts` (SSE) — are gated on these flags; with both off the `pii-masker` guardrail still runs but never mutates payloads (data passes through untouched). Flipping either default to `"true"` requires explicit operator approval. The regression guard is `tests/unit/pii-opt-in-default.test.ts` (asserts both definition defaults + behavioral pass-through). Opt-in is per-operator via env or the settings/DB override (`src/lib/db/featureFlags.ts`), never a silent default. See `docs/security/GUARDRAILS.md`. -21. **Release-freeze — the FROZEN release branch belongs to the release captain; development does NOT stop (parallel-cycle model, 2026-07-04).** `/generate-release` opens a marker issue labeled `release-freeze` at the start of reconciliation (Phase 0a), **immediately cuts the next cycle's branch `release/vX+1` from the frozen tip (Phase 0a.0b — bump + living release PR + re-home of open PRs)**, and closes the freeze once the release PR squash-merges to `main`. Before merging **any** PR, every campaign workflow (`/review-prs`, `/review-group-prs`, `/merge-prs`, `/triage-fix-bugs`, `/implement-fix-bugs`, `/triage-features`, `/implement-features`, `/green-prs`, `/port-upstream-*`) **MUST** check `gh issue list --repo diegosouzapw/OmniRoute --label release-freeze --state open` — if a freeze is active: **NEVER merge into the frozen `release/vX.Y.Z` named in the freeze title**; instead resolve the ACTIVE development branch (the **highest** `release/v*` by semver — normally `release/vX+1`, announced in a freeze-issue comment) and **retarget the PR there** (`gh pr edit --base release/vX+1`, then VERIFY with `gh pr view --json baseRefName` — the edit fails silently) and merge normally. **HOLD only when the highest release/v\* branch IS the frozen one** (the short window before 0a.0b completes, or a pre-parallel-cycle release) — in that case leave the PR ready and open, tell the operator, and resume when the next branch appears or the freeze lifts. The just-shipped fixes reach `release/vX+1` via the Phase 5 sync-back (`scripts/release/sync-next-cycle.mjs`); do not try to sync mid-release. This is a **coordination signal, not a permission lock**: the release captain and the campaign sessions share the `diegosouzapw` identity, so a GitHub branch-protection lock cannot distinguish them — only this honored marker prevents the mid-release commit races that forced full CHANGELOG re-reconciliation in v3.8.40/v3.8.41 (a parallel campaign advanced `release/vX.Y.Z` by 34 commits mid-run). The release captain's own reconciliation/cycle-open pushes are exempt — they _are_ the release. Fixes that must land during a freeze (a homologation finding) follow the post-merge read-only rule: land on `main` first via `fix/release-vX.Y.Z-*`. **⛔ ONLY `/generate-release` may raise a release-freeze, and ONLY at its Phase 0a (start of generating a new version) — lifted at Phase 12c after the squash-merge to `main`.** No campaign, session, or agent may open a `release-freeze` marker at any other time — a freeze is **never** a mid-development coordination tool. If a session ever believes a freeze is genuinely, unavoidably necessary outside the `/generate-release` flow, it **MUST first ask the operator (`diegosouzapw`) in chat, explicitly alert "estou criando um freeze" and get an explicit yes** — never open, extend, or re-open a `release-freeze` autonomously. Conversely, do **not** close/lift an active `/generate-release` freeze to unblock campaign merges: it protects the captain's single clean CI run and auto-lifts at Phase 12c — closing it early re-triggers the exact commit race it prevents. Verify a freeze is legitimate before acting on it: an open `release-freeze` whose title/body references an **OPEN** release PR (`gh pr view --json state`) is the authorized captain freeze — hold, don't touch. (Cycle-model proposal: `_tasks/finished/release-flow/2026-07-04_proposta-ciclo-paralelo-v2.md`.) -22. **Cross-session safety — this repo is worked by MANY parallel sessions/agents at once; never step on another's in-flight work.** Two absolute bans, both recurring incidents (this rule exists because they keep happening): - - **(a) Never `git stash` / `git stash pop` — ANYWHERE in this repo, including inside an isolated worktree, and including inside any subagent you dispatch.** `git stash` operates on the **shared repository object store**, not the per-worktree working tree — so a stash pushed or popped in one session can silently clobber or resurrect another parallel session's uncommitted changes. This is not hypothetical: 2026-07-02 a `#5923` quotaCache change leaked into the unrelated `#2296` worktree via a global `stash pop`, and the same class reincided through a **subagent**. To compare working changes against a base ref **without** stashing, use `git show :` or `git diff -- `; to confirm a typecheck/lint error is pre-existing on the base, inspect the base ref directly (`git show origin/release/vX.Y.Z:`) — never stash your tree away to "get it clean". **Put this ban verbatim in the prompt of every subagent that touches git** (agents don't inherit this file's context — the recurrence was a subagent). - - **(b) Never merge, push, rebase, or force-push a PR / branch / worktree that another session is actively working.** An open PR whose head is a live fix worktree in `.claude/worktrees/` you did **not** create (e.g. `fix-5852`/`fix-5923` carrying fresh commits, even when they share your `diegosouzapw` identity), or any branch another session owns, is **off-limits — HOLD**, and let the owning session merge it. **Before** merging or pushing to any PR you did not create _this_ session, run `git worktree list` to check for a matching in-flight worktree and re-check `gh pr view --json state,headRefOid`. Only the owning session merges its own in-flight PR; mid-flight merges race the owner and re-trigger the exact commit/CHANGELOG races Rule #19 and Rule #21 guard against. (Reinforces Rule #19.) - ---- - -## PII & Stream Sanitization Learnings - -### 1. Regex Security (ReDoS) - -All regex patterns matching variable-length strings (e.g. IPv6 address, credit cards) must use strictly bounded, non-overlapping sequences (e.g., limit occurrences with bounded ranges `{1,7}`) to prevent catastrophic backtracking when processing untrusted inputs. - -### 2. SSE Snapshot Handling - -When parsing streaming LLM responses (e.g. Responses API), check if a chunk represents a final snapshot (`done` or `completed` events). Snapshot text must be sanitized directly as a standalone string (bypassing rolling delta buffers) to prevent text duplication at the end of the stream. - -### 3. Database Handles in Tests - -Ensure that any unit tests that trigger database migrations or establish SQLite connections call `resetDbInstance()` and properly clean up/close all DB handles in a `test.after(...)` hook. Failure to release database connection handles will cause Node's native test runner to hang indefinitely. - ---- - -## Local development access - -The dashboard is reachable at the operator's chosen URL/port (default `http://localhost:20128`). Credentials are operator-specific: - -- **Initial admin password** is read from the `INITIAL_PASSWORD` env var on first install (defaults to `CHANGEME` in `.env.example`; rotate immediately after first login). -- **Local VPS / shared dev environments**: ask the operator for the URL and current credentials — they live in their personal vault, NOT in this repo. - -> Any credential observed in a previous version of this file was a non-production demo value; treat it as compromised and do not reuse it. +- **DB ops** go through `src/lib/db/` modules, never raw SQL in routes +- **Provider requests** flow through `open-sse/handlers/` +- **MCP/A2A pages** are tabs inside `/dashboard/endpoint`, not standalone routes +- **No memory leaks** in SSE streams (abort signals, cleanup) +- **Rate limit headers** must be parsed correctly +- All API inputs validated with **Zod schemas** +- **Provider constants** validated at module load via Zod (`src/shared/validation/providerSchema.ts`) +- **Pricing data** syncs from LiteLLM via `src/lib/pricingSync.ts` +- **Memory/Skills** are cross-cutting: affect MCP tools, request pipeline, and A2A skills +- **⛔ NEVER close a contributor's PR** after using their code — always merge via GitHub so they get credit. See `.agents/workflows/review-prs.md` for full policy. diff --git a/CLAUDE.md b/CLAUDE.md index 102ecd1378..a578e4407b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,42 +1,406 @@ # CLAUDE.md -@AGENTS.md +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. -**All project rules live in [`AGENTS.md`](AGENTS.md)** — the single source of truth for every AI -assistant (architecture, conventions, testing, quality gates, git workflow, the 22 Hard Rules, -PII learnings). Read it in full; do not re-add project rules here. Everything below applies ONLY -to Claude Code — operational refinements of rules already defined in `AGENTS.md`. +## Quick Start -## Worktree isolation — Claude Code specifics +```bash +npm install # Install deps (auto-generates .env from .env.example) +npm run dev # Dev server at http://localhost:20128 +npm run build # Production build (Next.js 16 standalone) +npm run lint # ESLint (0 errors expected; warnings are pre-existing) +npm run typecheck:core # TypeScript check (should be clean) +npm run typecheck:noimplicit:core # Strict check (no implicit any) +npm run test:coverage # Unit tests + coverage gate (60/60/60/60 — statements/lines/functions/branches) +npm run check # lint + test combined +npm run check:cycles # Detect circular dependencies +``` -The full mandatory worktree protocol (base-branch confirmation, `.claude/worktrees/` canonical -path, `cp -al` node_modules, teardown rules) is in `AGENTS.md` → Git Workflow → "Worktree -isolation". Claude-Code-specific points: +### Running Tests -- Confirm the base branch with the operator via `AskUserQuestion` (Hard Rule #19) unless they - already told you. -- Prefer the native `EnterWorktree` tool — it already creates worktrees under - `.claude/worktrees/` (the canonical path). Create the worktree with the documented `git -worktree add` command, then call `EnterWorktree` with its `path`. +```bash +# Single test file (Node.js native test runner — most tests) +node --import tsx/esm --test tests/unit/your-file.test.ts -## Cross-session safety — Claude Code specifics +# Vitest (MCP server, autoCombo, cache) +npm run test:vitest -Hard Rules #19/#21/#22 (in `AGENTS.md`) govern parallel sessions. Operational reminders for this -harness: +# All suites +npm run test:all +``` -- **Replicate the `git stash` ban verbatim in the prompt of every subagent that touches git** - (Agent tool / Workflow scripts) — subagents do not inherit this file, and the recorded - recurrence of the stash incident came through a subagent. -- Before merging or pushing to any PR you did not create _this session_, run `git worktree list` - and re-check `gh pr view --json state,headRefOid` (Hard Rule #22b). -- End every session with the main checkout on the branch it started on. +For full test matrix, see `CONTRIBUTING.md` → "Running Tests". For deep architecture, see `AGENTS.md`. -## Superpowers / planning artifacts — path overrides +--- -The `_tasks/` convention is defined in `AGENTS.md` → "Planning & Research Artifacts". The -superpowers skills ship with defaults that point at `docs/…` — those defaults are **overridden -here**. When a superpowers skill announces a path like "saved to `docs/superpowers/plans/…`", -rewrite it to the `_tasks/…` equivalent before writing: +## Project at a Glance + +**OmniRoute** — unified AI proxy/router. One endpoint, 329 AI providers, auto-fallback. + +| Layer | Location | Purpose | +| ------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| API Routes | `src/app/api/v1/` | Next.js App Router — entry points | +| Handlers | `open-sse/handlers/` | Request processing (chat, embeddings, etc) | +| Executors | `open-sse/executors/` | Provider-specific HTTP dispatch | +| Translators | `open-sse/translator/` | Format conversion (OpenAI↔Claude↔Gemini) | +| Transformer | `open-sse/transformer/` | Responses API ↔ Chat Completions | +| Services | `open-sse/services/` | Combo routing, rate limits, caching, etc | +| Database | `src/lib/db/` | SQLite domain modules (130 migrations) | +| Domain/Policy | `src/domain/` | Policy engine, cost rules, fallback logic | +| MCP Server | `open-sse/mcp-server/` | 107 tools (42 base + memory/skill/agentSkill/pool/notion/obsidian/gamification/plugin modules), 3 transports (stdio / SSE / Streamable HTTP), 32 scopes | +| A2A Server | `src/lib/a2a/` | JSON-RPC 2.0 agent protocol | +| Skills | `src/lib/skills/` | Extensible skill framework | +| Memory | `src/lib/memory/` | Persistent conversational memory | + +Monorepo: `src/` (Next.js 16 app), `open-sse/` (streaming engine workspace), `electron/` (desktop app), `tests/`, `bin/` (CLI entry point). + +--- + +## Request Pipeline + +``` +Client → /v1/chat/completions (Next.js route) + → CORS → Zod validation → auth? → policy check → prompt injection guard + → handleChatCore() [open-sse/handlers/chatCore.ts] + → cache check → rate limit → combo routing? + → resolveComboTargets() → handleSingleModel() per target + → translateRequest() → getExecutor() → executor.execute() + → fetch() upstream → retry w/ backoff + → response translation → SSE stream or JSON + → If Responses API: responsesTransformer.ts TransformStream +``` + +API routes follow a consistent pattern: `Route → CORS preflight → Zod body validation → Optional auth (extractApiKey/isValidApiKey) → API key policy enforcement → Handler delegation (open-sse)`. No global Next.js middleware — interception is route-specific. + +**Combo routing** (`open-sse/services/combo.ts`): 19 public strategies (priority, weighted, fill-first, round-robin, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, context-relay, fusion, pipeline). Each target calls `handleSingleModel()` which wraps `handleChatCore()` with per-target error handling and circuit breaker checks. The `fusion` strategy is the exception: it fans out to a panel of models in parallel, then a judge model synthesizes one final answer (`open-sse/services/fusion.ts`). See `docs/routing/AUTO-COMBO.md` for the 13-factor Auto-Combo scoring + the full strategy table and `docs/architecture/RESILIENCE_GUIDE.md` for the 3 resilience layers. + +--- + +## Resilience Runtime State + +OmniRoute has three related but distinct temporary-failure mechanisms. Keep their +scope separate when debugging routing behavior. See the +[3-layer resilience diagram](./docs/diagrams/exported/resilience-3layers.svg) +(source: [docs/diagrams/resilience-3layers.mmd](./docs/diagrams/resilience-3layers.mmd)) +for an at-a-glance map. + +### Provider Circuit Breaker + +**Scope**: whole provider, e.g. `glm`, `openai`, `anthropic`. + +**Purpose**: stop sending traffic to a provider that is repeatedly failing at the +upstream/service level, so one unhealthy provider does not slow down every request. + +**Implementation**: + +- Core class: `src/shared/utils/circuitBreaker.ts` +- Chat gate/execution wiring: `src/sse/handlers/chatHelpers.ts`, `src/sse/handlers/chat.ts` +- Runtime status API: `src/app/api/monitoring/health/route.ts` +- Shared wrappers: `open-sse/services/accountFallback.ts` +- Persisted state table: `domain_circuit_breakers` + +**States**: + +- `CLOSED`: normal traffic is allowed. +- `OPEN`: provider is temporarily blocked; callers get a provider-circuit-open response + or combo routing skips to another target. +- `HALF_OPEN`: reset timeout has elapsed; allow a probe request. Success closes the + breaker, failure opens it again. + +**Defaults** (`open-sse/config/constants.ts`): + +- OAuth providers: threshold `3`, reset timeout `60s`. +- API-key providers: threshold `5`, reset timeout `30s`. +- Local providers: threshold `2`, reset timeout `15s`. + +Only provider-level failure statuses should trip the provider breaker: + +```ts +(408, 500, 502, 503, 504); +``` + +Do not trip the whole-provider breaker for normal account/key/model errors like most +`401`, `403`, or `429` cases. Those usually belong to connection cooldown or model +lockout. A generic API-key provider `403` should be recoverable unless it is classified +as a terminal provider/account error. + +The breaker uses lazy recovery, not a background timer. When `OPEN` expires, reads such +as `getStatus()`, `canExecute()`, and `getRetryAfterMs()` refresh the state to +`HALF_OPEN`, so dashboards and combo candidate builders do not keep excluding an +expired provider forever. + +### Connection Cooldown + +**Scope**: one provider connection/account/key. + +**Purpose**: temporarily skip one bad key/account while allowing other connections for +the same provider to continue serving requests. + +**Implementation**: + +- Write/update path: `src/sse/services/auth.ts::markAccountUnavailable()` +- Account selection/filtering: `src/sse/services/auth.ts::getProviderCredentials...` +- Cooldown calculation: `open-sse/services/accountFallback.ts::checkFallbackError()` +- Settings: `src/lib/resilience/settings.ts` + +Important fields on provider connections: + +```ts +rateLimitedUntil; +testStatus: "unavailable"; +lastError; +lastErrorType; +errorCode; +backoffLevel; +``` + +During account selection, a connection is skipped while: + +```ts +new Date(rateLimitedUntil).getTime() > Date.now(); +``` + +Cooldowns are also lazy: when `rateLimitedUntil` is in the past, the connection becomes +eligible again. On successful use, `clearAccountError()` clears `testStatus`, +`rateLimitedUntil`, error fields, and `backoffLevel`. + +Default connection cooldown behavior: + +- OAuth base cooldown: `5s`. +- API-key base cooldown: `3s`. +- API-key `429` should prefer upstream retry hints (`Retry-After`, reset headers, or + parseable reset text) when available. +- Repeated recoverable failures use exponential backoff: + +```ts +baseCooldownMs * 2 ** failureIndex; +``` + +The anti-thundering-herd guard prevents concurrent failures on the same connection from +repeatedly extending the cooldown or double-incrementing `backoffLevel`. + +Terminal states are not cooldowns. `banned`, `expired`, and `credits_exhausted` are +intended to stay unavailable until credentials/settings change or an operator resets +them. Do not overwrite terminal states with transient cooldown state. + +### Model Lockout + +**Scope**: provider + connection + model. + +**Purpose**: avoid disabling a whole connection when only one model is unavailable or +quota-limited for that connection. + +Examples: + +- Per-model quota providers returning `429`. +- Local providers returning `404` for one missing model. +- Provider-specific mode/model permission failures such as selected Grok modes. + +Model lockout lives in `open-sse/services/accountFallback.ts` and lets the same +connection continue serving other models. + +### Debugging Guidance + +- If all keys for a provider are skipped, inspect both provider breaker state and each + connection's `rateLimitedUntil`/`testStatus`. +- If a provider appears permanently excluded after the reset window, check whether code + is reading raw `state` instead of using `getStatus()`/`canExecute()`. +- If one provider key fails but others should work, prefer connection cooldown over + provider breaker. +- If only one model fails, prefer model lockout over connection cooldown. +- If a state should self-recover, it should have a future timestamp/reset timeout and a + read path that refreshes expired state. Permanent statuses require manual credential + or config changes. + +--- + +## Key Conventions + +### Code Style + +- **2 spaces**, semicolons, double quotes, 100 char width, es5 trailing commas (enforced by lint-staged via Prettier) +- **Imports**: external → internal (`@/`, `@omniroute/open-sse`) → relative +- **Naming**: files=camelCase/kebab, components=PascalCase, constants=UPPER_SNAKE +- **ESLint**: `no-eval`, `no-implied-eval`, `no-new-func` = error everywhere; `no-explicit-any` = **error** in `open-sse/` and `tests/` (since #6218 — pre-existing violations are frozen in `config/quality/eslint-suppressions.json`, new ones must be fixed; `npm run lint` applies the suppressions and is what CI runs) +- **TypeScript**: `strict: false`, target ES2022, module esnext, resolution bundler. Prefer explicit types. + +### Database + +- **Always** go through `src/lib/db/` domain modules — **never** write raw SQL in routes or handlers +- **Never** add logic to `src/lib/localDb.ts` (re-export layer only) +- **Never** barrel-import from `localDb.ts` — import specific `db/` modules instead +- DB singleton: `getDbInstance()` from `src/lib/db/core.ts` (WAL journaling) +- Migrations: `src/lib/db/migrations/` — versioned SQL files, idempotent, run in transactions + +### Error Handling + +- try/catch with specific error types, log with pino context +- Never swallow errors in SSE streams — use abort signals for cleanup +- Return proper HTTP status codes (4xx/5xx) + +### Security + +- **Never** use `eval()`, `new Function()`, or implied eval +- Validate all inputs with Zod schemas +- Encrypt credentials at rest (AES-256-GCM) +- Upstream header denylist: `src/shared/constants/upstreamHeaders.ts` — keep sanitize, Zod schemas, and unit tests aligned when editing +- **Public upstream credentials** (Gemini/Antigravity/Windsurf-style OAuth client_id/secret + Firebase Web keys extracted from public CLIs): **MUST** be embedded via `resolvePublicCred()` from `open-sse/utils/publicCreds.ts` — **never** as string literals. See `docs/security/PUBLIC_CREDS.md` for the mandatory pattern. +- **Error responses** (HTTP / SSE / executor / MCP handler): **MUST** route through `buildErrorBody()` or `sanitizeErrorMessage()` from `open-sse/utils/error.ts` — **never** put raw `err.stack` or `err.message` in a response body. See `docs/security/ERROR_SANITIZATION.md`. +- **Shell commands built from variables**: when calling `exec()`/`spawn()` with a script that needs runtime values, pass them via the `env` option (shell-escaped automatically) — **never** string-interpolate untrusted/external paths into the script body. Reference: `src/mitm/cert/install.ts::updateNssDatabases`. +- **Secure-by-default libraries** ([tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults)): prefer Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink over custom implementations whenever adding new security-sensitive surfaces. + +--- + +## Common Modification Scenarios + +### Adding a New Provider + +1. Register in `src/shared/constants/providers.ts` (Zod-validated at load) +2. Add executor in `open-sse/executors/` if custom logic needed (extend `BaseExecutor`) +3. Add translator in `open-sse/translator/` if non-OpenAI format +4. Add OAuth config in `src/lib/oauth/constants/oauth.ts` if OAuth-based — if the upstream CLI ships a public client_id/secret, embed via `resolvePublicCred()` (see `docs/security/PUBLIC_CREDS.md`), **never** as a literal +5. Register models in `open-sse/config/providerRegistry.ts` +6. Write tests in `tests/unit/` (include the publicCreds shape assertion if you added a new embedded default) + +### Adding a New API Route + +1. Create directory under `src/app/api/v1/your-route/` +2. Create `route.ts` with `GET`/`POST` handlers +3. Follow pattern: CORS → Zod body validation → optional auth → handler delegation +4. Handler goes in `open-sse/handlers/` (import from there, not inline) +5. Error responses use `buildErrorBody()` / `errorResponse()` from `open-sse/utils/error.ts` (auto-sanitized — never put `err.stack` or `err.message` raw in the body). See `docs/security/ERROR_SANITIZATION.md`. +6. Add tests — including at least one assertion that error responses do not leak stack traces (`!body.error.message.includes("at /")`) + +### Adding a New DB Module + +1. Create `src/lib/db/yourModule.ts` — import `getDbInstance` from `./core.ts` +2. Export CRUD functions for your domain table(s) +3. Add migration in `src/lib/db/migrations/` if new tables needed +4. Re-export from `src/lib/localDb.ts` (add to the re-export list only) +5. Write tests + +### Adding a New MCP Tool + +1. Add tool definition in `open-sse/mcp-server/tools/` with Zod input schema + async handler +2. Register in tool set (wired by `createMcpServer()`) +3. Assign to appropriate scope(s) +4. Write tests (tool invocation logged to `mcp_audit` table) + +### Adding a New A2A Skill + +1. Create skill in `src/lib/a2a/skills/` (5 already exist: smart-routing, quota-management, provider-discovery, cost-analysis, health-report) +2. Skill receives task context (messages, metadata) → returns structured result +3. Register in `A2A_SKILL_HANDLERS` in `src/lib/a2a/taskExecution.ts` +4. Expose in `src/app/.well-known/agent.json/route.ts` (Agent Card) +5. Write tests in `tests/unit/` +6. Document in `docs/frameworks/A2A-SERVER.md` skill table + +### Adding a New Cloud Agent + +1. Create agent class in `src/lib/cloudAgent/agents/` extending `CloudAgentBase` (3 already exist: codex-cloud, devin, jules) +2. Implement `createTask`, `getStatus`, `approvePlan`, `sendMessage`, `listSources` +3. Register in `src/lib/cloudAgent/registry.ts` +4. Add OAuth/credentials handling if needed (`src/lib/oauth/providers/`) +5. Tests + document in `docs/frameworks/CLOUD_AGENT.md` + +### Adding a New Embedded Service + +1. Create installer in `src/lib/services/installers/{name}.ts` modeled on `ninerouter.ts` (use `runNpm` from `installers/utils.ts` — no shell interpolation, hard rule #13). +2. Register the service in `src/lib/services/bootstrap.ts` (add to `SERVICES[]` array and extend `buildSpawnArgsFactory()`). +3. Add a DB seed row for the new service in `src/lib/db/migrations/` (`version_manager` table, `status='not_installed'`, `auto_start=0`). +4. Create 7 API endpoints under `src/app/api/services/{name}/` (`_lib.ts`, `install`, `start`, `stop`, `restart`, `update`, `status`, `auto-start`). All delegate errors through `createErrorResponse()`. The shared `logs` endpoint is already wired via `[name]/logs/route.ts`. +5. Verify `/api/services/` is in `LOCAL_ONLY_API_PREFIXES` in `src/server/authz/routeGuard.ts`; add a test asserting `isLocalOnlyPath()` returns `true` for the new prefix if you add one (hard rule #17). +6. Add a UI tab in `src/app/(dashboard)/dashboard/providers/services/tabs/` reusing `ServiceStatusCard`, `ServiceLifecycleButtons`, `ServiceLogsPanel`. +7. Document in `docs/frameworks/EMBEDDED-SERVICES.md` (update §1 service table + §4 API reference) and `docs/openapi.yaml`. +8. Write tests: unit (`tests/unit/services/`), integration (`tests/integration/services/`, gated by `RUN_SERVICES_INT=1`), and update `docs/ops/RELEASE_CHECKLIST.md` smoke section. + +### Adding a New Guardrail / Eval / Skill / Webhook event + +- Guardrail: `src/lib/guardrails/` → docs: `docs/security/GUARDRAILS.md` +- Eval suite: `src/lib/evals/` → docs: `docs/frameworks/EVALS.md` +- Skill (sandbox): `src/lib/skills/` → docs: `docs/frameworks/SKILLS.md` +- Webhook event: `src/lib/webhookDispatcher.ts` → docs: `docs/frameworks/WEBHOOKS.md` + +--- + +## Reference Documentation + +For any non-trivial change, read the matching deep-dive first: + +| Area | Doc | +| --------------------------------------------- | ------------------------------------------------------- | +| Repo navigation | `docs/architecture/REPOSITORY_MAP.md` | +| Architecture | `docs/architecture/ARCHITECTURE.md` | +| Engineering reference | `docs/architecture/CODEBASE_DOCUMENTATION.md` | +| Auto-Combo (13-factor scoring, 19 strategies) | `docs/routing/AUTO-COMBO.md` | +| Resilience (3 mechanisms) | `docs/architecture/RESILIENCE_GUIDE.md` | +| Reasoning replay | `docs/routing/REASONING_REPLAY.md` | +| Skills framework | `docs/frameworks/SKILLS.md` | +| Memory system (FTS5 + Qdrant) | `docs/frameworks/MEMORY.md` | +| Cloud agents | `docs/frameworks/CLOUD_AGENT.md` | +| Guardrails (PII / injection / vision) | `docs/security/GUARDRAILS.md` | +| Public upstream credentials (Gemini/etc.) | `docs/security/PUBLIC_CREDS.md` | +| Error message sanitization | `docs/security/ERROR_SANITIZATION.md` | +| Evals | `docs/frameworks/EVALS.md` | +| Compliance / audit | `docs/security/COMPLIANCE.md` | +| Webhooks | `docs/frameworks/WEBHOOKS.md` | +| Authorization pipeline | `docs/architecture/AUTHZ_GUIDE.md` | +| Stealth (TLS / fingerprint) | `docs/security/STEALTH_GUIDE.md` | +| Agent protocols (A2A / ACP / Cloud) | `docs/frameworks/AGENT_PROTOCOLS_GUIDE.md` | +| MCP server | `docs/frameworks/MCP-SERVER.md` | +| A2A server | `docs/frameworks/A2A-SERVER.md` | +| API reference + OpenAPI | `docs/reference/API_REFERENCE.md` + `docs/openapi.yaml` | +| Provider catalog (auto-generated) | `docs/reference/PROVIDER_REFERENCE.md` | +| Release flow | `docs/ops/RELEASE_CHECKLIST.md` | +| Embedded services | `docs/frameworks/EMBEDDED-SERVICES.md` | +| Quality gates (~48 scripts, allowlist policy) | `docs/architecture/QUALITY_GATES.md` | + +--- + +## Testing + +| What | Command | +| ----------------------- | --------------------------------------------------------------------------- | +| Unit tests | `npm run test:unit` | +| Single file | `node --import tsx/esm --test tests/unit/file.test.ts` | +| Vitest (MCP, autoCombo) | `npm run test:vitest` | +| E2E (Playwright) | `npm run test:e2e` | +| Protocol E2E (MCP+A2A) | `npm run test:protocols:e2e` | +| Ecosystem | `npm run test:ecosystem` | +| Coverage gate | `npm run test:coverage` (60/60/60/60 — statements/lines/functions/branches) | +| Coverage report | `npm run coverage:report` | + +**PR rule**: If you change production code in `src/`, `open-sse/`, `electron/`, or `bin/`, you must include or update tests in the same PR. + +**Test layer preference**: unit first → integration (multi-module or DB state) → e2e (UI/workflow only). Encode bug reproductions as automated tests before or alongside the fix. + +**Both test runners must pass**: `npm run test:unit` (Node native — most tests) AND `npm run test:vitest` (MCP server, autoCombo, cache) cover **non-overlapping files**. Both are wired in CI (jobs `test-unit` and `test-vitest`) and must be green before merging. A PR where only one suite passes may silently ship broken MCP tools or routing regressions. + +**Bug fix / issue triage protocol (Hard Rule #18)**: Every fix for a reported issue must be validated by one of the following — no exceptions: + +1. **TDD (preferred)** — write a failing test reproducing the bug → fix it → confirm the test passes. The test becomes the permanent regression guard. Touch only the files the test proves need changing; nothing more. +2. **Real-environment test (when TDD is not possible)** — deploy to the production VPS (`root@192.168.0.15`) and run a documented live test. Record the exact command + result in the PR description. Applies to: OAuth upstream flows, Cloudflare/WS upstream behavior, UI-only regressions, hardware-dependent behavior. +3. "It worked locally without a test" does not count. A fix without a test or a VPS validation record is not a fix — it is a guess. + +Why this matters: fixing bug A while opening bug B is worse than not fixing at all. The TDD/VPS gate enforces surgical scope — you touch only what the failing test proves is broken. Examples where this paid off: #3090 (claude-web 403), #3113 (WS HTTP fallback), #3052 (heap-guard auto-calibration). + +**Copilot coverage policy**: When a PR changes production code and coverage is below 60% (statements/lines/functions/branches), do not just report — add or update tests, rerun the coverage gate, then ask for confirmation. Include commands run, changed test files, and final coverage result in the PR report. + +--- + +## Planning & Research Artifacts (superpowers, deep-research) + +`_tasks/` is a **separate, isolated git repository** that is gitignored by the main +repo (`.gitignore` → `_tasks/`). It is the canonical home for working artifacts — +plans, specs/designs, research, hand-offs — so they stay **versioned in their own +repo** instead of polluting the main OmniRoute tree. + +**Hard rule — never write superpowers / planning / research output under `docs/` or +the repo root.** The superpowers skills ship with defaults that point at `docs/…` +(`writing-plans` → `docs/superpowers/plans/`, `brainstorming` → `docs/superpowers/specs/`). +Those defaults are **overridden here**. Whenever you invoke superpowers (or any +plan/spec/research generator) in this project, save to `_tasks/` instead, using the +same filename convention: | Artifact (skill) | Default (do NOT use) | Save here instead | | ---------------------------------- | ------------------------- | ------------------------------------------------------------- | @@ -45,11 +409,156 @@ rewrite it to the `_tasks/…` equivalent before writing: | Research (`deep-research`, ad-hoc) | `docs/research/` | `_tasks/research/…` | | Hand-offs (`/handoff`) | — | `_tasks/hands-off/__v_sess-/` | -Commit those artifacts inside the `_tasks/` repo (`git -C _tasks …`), never in the main repo. +When a superpowers skill announces a path like "saved to `docs/superpowers/plans/…`", +rewrite it to the `_tasks/…` equivalent before writing. Commit those artifacts inside +the `_tasks/` repo (`git -C _tasks …`), never in the main repo. -## Base-green before opening PRs +## Git Workflow -Before cutting a branch or opening a PR, run the base-green check (`AGENTS.md` → Git Workflow → -"Base-green check"; project skills reference it as `.agents/skills/_shared/base-green.md`). A PR -opened while the base tip is red must carry `⚠️ base-red inherited: #` in its body. To -drain an accumulated red state (base tip + red PRs), use the `/sweep-reds` skill. +```bash +# Never commit directly to main +git checkout -b feat/your-feature +git commit -m "feat: describe your change" +git push -u origin feat/your-feature +``` + +**Branch prefixes**: `feat/`, `fix/`, `refactor/`, `docs/`, `test/`, `chore/` + +**Commit format** (Conventional Commits): `feat(db): add circuit breaker` — scopes: `db`, `sse`, `oauth`, `dashboard`, `api`, `cli`, `docker`, `ci`, `mcp`, `a2a`, `memory`, `skills` + +**Husky hooks**: + +- **pre-commit**: lint-staged + `check-docs-sync` + `check:any-budget:t11` + `check:tracked-artifacts` +- **pre-push**: intentionally light (PATH/npm sanity only). `any-budget` + `tracked-artifacts` + already run on pre-commit; re-running them on every push was pure double-pay. CI still + enforces both. (Was Fase 6A.12 full pre-push gate; folded into pre-commit in #6716.) + +### Worktree isolation (MANDATORY for every development task) + +Multiple sessions/agents work this repo in parallel. The main checkout is **shared**, so a +`git checkout`/branch switch in it silently discards another session's uncommitted work and +yanks the branch out from under whatever else is running (incidents: 2026-06-05, 2026-06-13). + +**Rule: never develop on the shared main checkout. Every task gets its own git worktree on its +own dedicated branch, and you MUST confirm the base branch with the operator before creating it.** + +1. **Ask first — which base branch?** Before creating anything, ask the operator (via + `AskUserQuestion`, unless they already told you) from which branch the new worktree/branch + should be cut. Do NOT assume `main` or "whatever I'm on" — the answer is usually the active + `release/vX.Y.Z`, but it can be another feature/release branch. Get the base explicitly. +2. **Create an isolated worktree + branch off that base** (never reuse the main checkout). + **🔴 MANDATORY PATH: every worktree lives under `.claude/worktrees/` — and nowhere else.** + This is the single canonical location (the same dir the native `EnterWorktree` tool uses). It + is gitignored AND in the `tsconfig.json` / `.dockerignore` excludes, so worktrees never leak + into the build scope. **Never** use `.worktrees/`, repo-root, or any other path — a worktree + outside `.claude/worktrees/` (a) escapes the build-scope excludes and poisons `next build` (the + `tsconfig` `include: **/*` globs ~70× the codebase → OOM; incident 2026-06-25) and (b) scatters + worktrees across two dirs. + + ```bash + BASE_BRANCH="release/vX.Y.Z" # ← the branch the operator confirmed in step 1 + TASK="feat/your-feature" # feat/ fix/ refactor/ docs/ test/ chore/ + git fetch origin "$BASE_BRANCH" + git worktree add ".claude/worktrees/${TASK##*/}" -b "$TASK" "origin/$BASE_BRANCH" + cd ".claude/worktrees/${TASK##*/}" + # symlink node_modules from the main checkout to skip a per-worktree npm install: + ln -s "$(git -C rev-parse --show-toplevel)/node_modules" node_modules + ``` + + In Claude Code prefer the native `EnterWorktree` tool (it already creates worktrees under + `.claude/worktrees/`): create the worktree with the command above, then call `EnterWorktree` + with its `path`. + +3. **Work, commit, push, open the PR — all from inside the worktree.** Never `git checkout` a + different branch inside a worktree another session might share. +4. **Tear down only your own** worktree + branch when done, from the main checkout: + `git worktree remove .claude/worktrees/` then `git branch -D `. Never blanket-delete + `fix/*`/`feat/*` — other sessions keep their own; delete only the branches you created, by name. +5. **Never touch another session's worktree, branch, or uncommitted changes.** If `git worktree +list` shows worktrees you didn't create, leave them alone. End every session with the main + checkout back on the branch it started on (the active `release/vX.Y.Z`, never `main`). + +--- + +## Environment + +- **Runtime**: Node.js ≥22.0.0 <23 || ≥24.0.0 <27, ES Modules. This is the **only supported** runtime for the published `omniroute` CLI, the server, and the test suites (`node:test` + vitest) — `engines.node` is authoritative and end users never need Bun. A **best-effort `bun:sqlite` compatibility path** exists so a global Bun install (`bun install -g omniroute`) can start without `better-sqlite3` (driver adapter + Bun-aware process spawning); it is **not** a supported runtime — no support guarantees — and every Bun-specific runtime change MUST preserve the Node driver/fallback chain and ship a Bun test (`test:bun:db`) or an explicit reason why the path is Node-only. +- **Bun (build/dev script runner + compatibility smoke only)**: Bun `1.3.14` is pinned as an **exact devDependency** (provisioned through the existing `npm ci` via the lockfile's `@oven/bun-*` platform binaries — no `setup-bun`/ad-hoc install). It is used **only** to execute a small, allow-listed set of TypeScript **gate/generator scripts** (replacing `node --import tsx` for startup speed): the CI checks `check:provider-consistency`, `check:compression-budget`, `check:known-symbols`, and the non-CI `gen:provider-reference`, `bench:compression` — plus the focused `test:bun:db` compatibility smoke suite for the best-effort `bun:sqlite` path. **Do NOT** widen Bun to `npm install`, the build (`build:cli*`), `check:pack-artifact`, the supported published runtime, or the main test runners — those stay on Node. Any new Bun-invoking gate/generator script must be validated byte-identical against its `node --import tsx` output first. After pulling the lockfile change, run `npm install` so `bun` resolves locally (a stale `node_modules` will fail those scripts with `bun: not found`). +- **TypeScript**: 6.0+, target ES2022, module esnext, resolution bundler +- **Path aliases**: `@/*` → `src/`, `@omniroute/open-sse` → `open-sse/`, `@omniroute/open-sse/*` → `open-sse/*` +- **Default port**: 20128 (API + dashboard on same port) +- **Data directory**: `DATA_DIR` env var, defaults to `~/.omniroute/` +- **Key env vars**: `PORT`, `JWT_SECRET`, `API_KEY_SECRET`, `INITIAL_PASSWORD`, `REQUIRE_API_KEY`, `APP_LOG_LEVEL` +- Setup: `cp .env.example .env` then generate `JWT_SECRET` (`openssl rand -base64 48`) and `API_KEY_SECRET` (`openssl rand -hex 32`) + +--- + +## Quality Gates & Ratchets + +OmniRoute has **~48 quality-gate scripts** (`scripts/check/` + `scripts/quality/`) wired +across **9 gate-running jobs** in `.github/workflows/ci.yml` (`lint`, `quality-gate`, +`quality-extended`, `docs-sync-strict`, `i18n-ui-coverage`, `i18n`, `pr-test-policy`, +`test-vitest`, `sonarqube`), plus the `quality.yml` fast-gates job (PR→`release/**`) and +3 nightly workflows (`nightly-property`, `nightly-resilience`, `nightly-llm-security`; +`nightly-mutation` once merged). Full inventory, per-job breakdown, and operational +procedures are in [`docs/architecture/QUALITY_GATES.md`](docs/architecture/QUALITY_GATES.md). + +**Quick reference:** + +- Gates in jobs `lint` + `docs-sync-strict`: pass/fail policy gates — + fix the violation or add an allowlist entry with a justification comment + tracking issue. +- Gates in job `quality-gate`: ratchet — metrics (ESLint warnings, code coverage, duplication, + complexity) must not regress vs `quality-baseline.json`. Update via + `npm run quality:ratchet -- --update` when a metric genuinely improves. +- Job `test-vitest` runs `npm run test:vitest` (MCP tools, autoCombo, cache) — blocking. + `test:vitest:ui` is advisory until UI component tests are triaged. + +**Allowlist policy (short form):** Fix the cause; use the allowlist only for pre-existing +violations you cannot fix in the same PR. Add a comment with justification + issue number. +Stale allowlist entries (suppressing a violation that no longer exists) will be caught by +the stale-enforcement added in Fase 6A.3. + +--- + +## Hard Rules + +1. Never commit secrets or credentials +2. Never add logic to `localDb.ts` +3. Never use `eval()` / `new Function()` / implied eval +4. Never commit directly to `main` +5. Never write raw SQL in routes — use `src/lib/db/` modules +6. Never silently swallow errors in SSE streams +7. Always validate inputs with Zod schemas +8. Always include tests when changing production code +9. Coverage must not regress below the baseline frozen in `quality-baseline.json` (ratchet); absolute floor is 60% (statements/lines/functions/branches). Update the baseline via `npm run quality:ratchet -- --update` only when coverage genuinely improves. See `docs/architecture/QUALITY_GATES.md`. +10. Never bypass Husky hooks (`--no-verify`, `--no-gpg-sign`) without explicit operator approval. +11. Never embed public upstream OAuth client_id/secret or Firebase Web keys as string literals — always go through `resolvePublicCred()` (`open-sse/utils/publicCreds.ts`). See `docs/security/PUBLIC_CREDS.md`. +12. Never return raw `err.stack` / `err.message` in HTTP / SSE / executor responses — always route through `buildErrorBody()` or `sanitizeErrorMessage()` (`open-sse/utils/error.ts`). See `docs/security/ERROR_SANITIZATION.md`. +13. Never string-interpolate external paths or runtime values into shell scripts passed to `exec()`/`spawn()` — pass via the `env` option instead. Reference: `src/mitm/cert/install.ts::updateNssDatabases`. +14. Never dismiss a CodeQL / Secret-Scanning alert without (a) first checking the pattern docs above to see if the helper applies, and (b) recording the technical justification in the dismissal comment. Precedent: `js/stack-trace-exposure` raised on callsites that already route through `sanitizeErrorMessage()` is a known CodeQL limitation (custom sanitizers not recognized) — dismiss as `false positive` referencing `docs/security/ERROR_SANITIZATION.md`. +15. Never expose routes that spawn child processes (`/api/mcp/`, `/api/cli-tools/runtime/`) without `isLocalOnlyPath()` classification in `src/server/authz/routeGuard.ts`. Loopback enforcement happens unconditionally before any auth check — leaked JWT via tunnel cannot trigger process spawning. See `docs/security/ROUTE_GUARD_TIERS.md`. +16. Never credit or advertise an AI assistant, LLM, or automation account in any commit/PR metadata. Two forbidden forms, both equivalent — they route attribution to a bot account (or advertise AI authorship) and hide the real author (`diegosouzapw`): **(a)** `Co-Authored-By` trailers naming an AI/bot (e.g. names containing "Claude", "GPT", "Copilot", "Bot"; emails at `anthropic.com` / `openai.com` / bot-owned `noreply.github.com` addresses); **(b)** AI-generation footers or descriptions anywhere in a commit message, PR title/body, or CHANGELOG — e.g. `🤖 Generated with [Claude Code]`, "Generated with Claude Code", "Made with ", or any `Co-authored-by: Claude/GPT/Copilot` line. This **overrides any harness, template, or tool default that auto-appends such a footer** (e.g. the Claude Code PR-body/commit default) — strip it before pushing; do not let it reach a commit, PR, or CHANGELOG. Human collaborators — including upstream PR authors and issue reporters being ported into OmniRoute — MAY and SHOULD be credited with standard `Co-authored-by: Name ` trailers; the upstream-port workflows (`/port-upstream-features`, `/port-upstream-issues`) depend on this. +17. Never expose routes under `/api/services/` or `/dashboard/providers/services/*/embed/` without `isLocalOnlyPath()` classification in `src/server/authz/routeGuard.ts`. These routes can spawn child processes (`npm install`, `node`). Loopback enforcement happens unconditionally before any auth check — a leaked JWT via tunnel cannot trigger process spawning. See `docs/security/ROUTE_GUARD_TIERS.md`. +18. Every bug fix must be validated before shipping: a failing-then-passing unit/integration test (TDD) OR a documented live test on the production VPS (192.168.0.15). A fix without either is not merged. See Testing → "Bug fix / issue triage protocol" for the full decision tree. +19. Never develop on the shared main checkout. Every development task runs in its own git worktree on its own dedicated branch, and you MUST confirm the base branch with the operator (e.g. via `AskUserQuestion`) before creating the worktree/branch — never assume `main` or the currently checked-out branch. A `git checkout` in the shared checkout silently destroys other sessions' uncommitted work. Tear down only the worktrees/branches you created (by name, never `fix/*`/`feat/*` wildcards), leave other sessions' worktrees untouched, and end on the branch you started on (the active `release/vX.Y.Z`, never `main`). See Git Workflow → "Worktree isolation". +20. PII redaction/sanitization is **opt-in — never on by default**. OmniRoute proxies for self-hosted/local LLMs where the operator owns the data, so mutating request/response payloads by default would silently corrupt legitimate traffic. The two data-mutating PII feature flags **MUST** keep `defaultValue: "false"` in `src/shared/constants/featureFlagDefinitions.ts`: `PII_REDACTION_ENABLED` (request-side) and `PII_RESPONSE_SANITIZATION` (response + streaming). All three application points — `src/lib/guardrails/piiMasker.ts` (request guardrail), `src/lib/piiSanitizer.ts` (response), `src/lib/streamingPiiTransform.ts` (SSE) — are gated on these flags; with both off the `pii-masker` guardrail still runs but never mutates payloads (data passes through untouched). Flipping either default to `"true"` requires explicit operator approval. The regression guard is `tests/unit/pii-opt-in-default.test.ts` (asserts both definition defaults + behavioral pass-through). Opt-in is per-operator via env or the settings/DB override (`src/lib/db/featureFlags.ts`), never a silent default. See `docs/security/GUARDRAILS.md`. +21. **Release-freeze — the FROZEN release branch belongs to the release captain; development does NOT stop (parallel-cycle model, 2026-07-04).** `/generate-release` opens a marker issue labeled `release-freeze` at the start of reconciliation (Phase 0a), **immediately cuts the next cycle's branch `release/vX+1` from the frozen tip (Phase 0a.0b — bump + living release PR + re-home of open PRs)**, and closes the freeze once the release PR squash-merges to `main`. Before merging **any** PR, every campaign workflow (`/review-prs`, `/review-group-prs`, `/merge-prs`, `/triage-fix-bugs`, `/implement-fix-bugs`, `/triage-features`, `/implement-features`, `/green-prs`, `/port-upstream-*`) **MUST** check `gh issue list --repo diegosouzapw/OmniRoute --label release-freeze --state open` — if a freeze is active: **NEVER merge into the frozen `release/vX.Y.Z` named in the freeze title**; instead resolve the ACTIVE development branch (the **highest** `release/v*` by semver — normally `release/vX+1`, announced in a freeze-issue comment) and **retarget the PR there** (`gh pr edit --base release/vX+1`, then VERIFY with `gh pr view --json baseRefName` — the edit fails silently) and merge normally. **HOLD only when the highest release/v\* branch IS the frozen one** (the short window before 0a.0b completes, or a pre-parallel-cycle release) — in that case leave the PR ready and open, tell the operator, and resume when the next branch appears or the freeze lifts. The just-shipped fixes reach `release/vX+1` via the Phase 5 sync-back (`scripts/release/sync-next-cycle.mjs`); do not try to sync mid-release. This is a **coordination signal, not a permission lock**: the release captain and the campaign sessions share the `diegosouzapw` identity, so a GitHub branch-protection lock cannot distinguish them — only this honored marker prevents the mid-release commit races that forced full CHANGELOG re-reconciliation in v3.8.40/v3.8.41 (a parallel campaign advanced `release/vX.Y.Z` by 34 commits mid-run). The release captain's own reconciliation/cycle-open pushes are exempt — they _are_ the release. Fixes that must land during a freeze (a homologation finding) follow the post-merge read-only rule: land on `main` first via `fix/release-vX.Y.Z-*`. **⛔ ONLY `/generate-release` may raise a release-freeze, and ONLY at its Phase 0a (start of generating a new version) — lifted at Phase 12c after the squash-merge to `main`.** No campaign, session, or agent may open a `release-freeze` marker at any other time — a freeze is **never** a mid-development coordination tool. If a session ever believes a freeze is genuinely, unavoidably necessary outside the `/generate-release` flow, it **MUST first ask the operator (`diegosouzapw`) in chat, explicitly alert "estou criando um freeze" and get an explicit yes** — never open, extend, or re-open a `release-freeze` autonomously. Conversely, do **not** close/lift an active `/generate-release` freeze to unblock campaign merges: it protects the captain's single clean CI run and auto-lifts at Phase 12c — closing it early re-triggers the exact commit race it prevents. Verify a freeze is legitimate before acting on it: an open `release-freeze` whose title/body references an **OPEN** release PR (`gh pr view --json state`) is the authorized captain freeze — hold, don't touch. +22. **Cross-session safety — this repo is worked by MANY parallel sessions/agents at once; never step on another's in-flight work.** Two absolute bans, both recurring incidents (this rule exists because they keep happening): + - **(a) Never `git stash` / `git stash pop` — ANYWHERE in this repo, including inside an isolated worktree, and including inside any subagent you dispatch.** `git stash` operates on the **shared repository object store**, not the per-worktree working tree — so a stash pushed or popped in one session can silently clobber or resurrect another parallel session's uncommitted changes. This is not hypothetical: 2026-07-02 a `#5923` quotaCache change leaked into the unrelated `#2296` worktree via a global `stash pop`, and the same class reincided through a **subagent**. To compare working changes against a base ref **without** stashing, use `git show :` or `git diff -- `; to confirm a typecheck/lint error is pre-existing on the base, inspect the base ref directly (`git show origin/release/vX.Y.Z:`) — never stash your tree away to "get it clean". **Put this ban verbatim in the prompt of every subagent that touches git** (agents don't inherit this file's context — the recurrence was a subagent). + - **(b) Never merge, push, rebase, or force-push a PR / branch / worktree that another session is actively working.** An open PR whose head is a live fix worktree in `.claude/worktrees/` you did **not** create (e.g. `fix-5852`/`fix-5923` carrying fresh commits, even when they share your `diegosouzapw` identity), or any branch another session owns, is **off-limits — HOLD**, and let the owning session merge it. **Before** merging or pushing to any PR you did not create _this_ session, run `git worktree list` to check for a matching in-flight worktree and re-check `gh pr view --json state,headRefOid`. Only the owning session merges its own in-flight PR; mid-flight merges race the owner and re-trigger the exact commit/CHANGELOG races Rule #19 and Rule #21 guard against. (Reinforces Rule #19.) + +--- + +## PII & Stream Sanitization Learnings + +### 1. Regex Security (ReDoS) + +All regex patterns matching variable-length strings (e.g. IPv6 address, credit cards) must use strictly bounded, non-overlapping sequences (e.g., limit occurrences with bounded ranges `{1,7}`) to prevent catastrophic backtracking when processing untrusted inputs. + +### 2. SSE Snapshot Handling + +When parsing streaming LLM responses (e.g. Responses API), check if a chunk represents a final snapshot (`done` or `completed` events). Snapshot text must be sanitized directly as a standalone string (bypassing rolling delta buffers) to prevent text duplication at the end of the stream. + +### 3. Database Handles in Tests + +Ensure that any unit tests that trigger database migrations or establish SQLite connections call `resetDbInstance()` and properly clean up/close all DB handles in a `test.after(...)` hook. Failure to release database connection handles will cause Node's native test runner to hang indefinitely. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index da1ecf8f5c..6fc661daa3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -293,7 +293,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, 19 routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, 19 routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/README.md b/README.md index 9aa175ff43..5af46a8145 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ # 🚀 OmniRoute — The Free AI Gateway -OmniRoute — Never stop coding. Every AI tool → 291 providers — 90+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 291 AI providers · 90+ free tiers · ~1.53B free tokens/mo · 19 routing strategies · $0 to start. +OmniRoute — Keep coding through provider limits. Every AI tool → 329 providers — 155 free/no-auth catalog entries — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity can route to free-access Claude / GPT / Gemini options with automatic fallback, subject to provider availability and limits. RTK + Caveman stacked compression saves 15–95% of eligible tokens (~89% average on tool-heavy sessions). 329 AI provider catalog entries · 155 free/no-auth entries · ~1.53B documented recurring tokens/mo · 19 routing strategies · $0 to start. @@ -17,9 +17,9 @@ -> Stacking free tiers by hand is painful — dozens of SDKs, dozens of rate limits, and no idea how much you actually have. OmniRoute aggregates the **documented** free tiers of **43 provider pools / 516 models** into one honest number and shows it live on the dashboard (`/dashboard/free-tiers`). +> Stacking free tiers by hand is painful — dozens of SDKs, dozens of rate limits, and no idea how much you actually have. OmniRoute currently exposes **155 catalog entries marked free/no-auth**. The stricter, quota-quantified budget covers **43 provider pools / 522 model budget entries** and is shown live on the dashboard (`/dashboard/free-tiers`). -OmniRoute free-tier budget card: ~1.53B free tokens per month steady, up to ~2.15B in the first month with signup credits, from the documented free tiers of 43 provider pools / 516 models behind one endpoint. Honest pool-deduped math — each shared pool counted once (counting every rate limit 24/7 would read ~10B; not published), 15 providers ToS-flagged so you decide. Budget bar of the countable free pools with per-model grid (Mistral Large 3 1B, GPT-4o mini 150M, Gemini 2.5 Flash 60M … Claude Sonnet 4.5 25K), one-time first-month signup credits (vertex 300M, agentrouter 200M, predibase 25M, together 25M, glm-cn 20M, doubao 15M, ai21 10M, longcat 10M, deepseek 5M, hyperbolic 5M, nscale 5M), plus permanently-free no-token-cap providers (SiliconFlow, Z.AI GLM-Flash, Kilo, OpenCode Zen, baidu …) and a $10 OpenRouter top-up unlocking +24M/mo — surfaced separately so they never inflate the headline. Live used/remaining on /dashboard/free-tiers. +OmniRoute free-tier budget card: ~1.53B free tokens per month steady, up to ~2.15B in the first month with signup credits, from the documented free tiers of 43 provider pools / 522 model budget entries behind one endpoint. Honest pool-deduped math — each shared pool counted once (counting every rate limit 24/7 would read ~10B; not published), 15 providers ToS-flagged so you decide. Budget bar of the countable free pools with per-model grid (Mistral Large 3 1B, GPT-4o mini 150M, Gemini 2.5 Flash 60M … Claude Sonnet 4.5 25K), one-time first-month signup credits (vertex 300M, agentrouter 200M, predibase 25M, together 25M, glm-cn 20M, doubao 15M, ai21 10M, longcat 10M, deepseek 5M, hyperbolic 5M, nscale 5M), plus recurring providers with no published token cap but rate/concurrency limits (SiliconFlow, Z.AI GLM-Flash, Kilo, OpenCode Zen, baidu …) and a $10 OpenRouter top-up unlocking +24M/mo — surfaced separately so they never inflate the headline. Live used/remaining on /dashboard/free-tiers. > Animated summary of the live `/dashboard/free-tiers` page. Full methodology (pool dedupe, credit tiers, provider terms): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**. > @@ -81,7 +81,7 @@ ⚙️ Features 🎯 Combos - 🌐 Providers + 🌐 Providers 🔌 CLI & MCP @@ -180,8 +180,6 @@ curl http://localhost:20128/v1/chat/completions \ Prefer a specific free backend? Call it directly, e.g. `oc/…` (OpenCode Free) or `felo/…` (Felo). Then graduate to `auto` and let OmniRoute pick. -📦 Copy-paste quickstart scripts for **Python, Node.js, PHP, and cURL** → [`examples/quickstart/`](examples/quickstart/) -
@@ -190,7 +188,7 @@ curl http://localhost:20128/v1/chat/completions \
-The Promise — One endpoint. 291 providers. Never stop building — OmniRoute picks the cheapest one that works. Six pillars: Never hit limits (auto-fallback across 291 providers in milliseconds, zero downtime) · Save up to 95% tokens (RTK + Caveman stacked compression cuts 15–95%, ~89% avg on tool-heavy sessions) · $0 to start (90+ free tiers, 40+ free forever — no card needed) · Every tool works (33 coding agents through one config) · One endpoint (OpenAI ↔ Claude ↔ Gemini ↔ Responses API at /v1) · Production-grade (circuit breakers, TLS stealth, MCP 105 tools, A2A, memory, guardrails, evals — 25,000+ tests). +The Promise — One endpoint. 329 providers. Keep building while OmniRoute picks the cheapest eligible route that works. Six pillars: resilient fallback (automatic fallback across 329 providers when an upstream or quota fails, subject to route availability) · Save up to 95% tokens (RTK + Caveman stacked compression cuts 15–95%, ~89% avg on tool-heavy sessions) · $0 to start (155 catalog entries marked free/no-auth, with 58 providers represented by recurring quantified or uncapped catalog access) · Every tool works (33 coding agents through one config) · One endpoint (OpenAI ↔ Claude ↔ Gemini ↔ Responses API at /v1) · Production-grade (circuit breakers, TLS stealth, MCP 107 tools, A2A, memory, guardrails, evals — 25,000+ tests).

@@ -205,7 +203,7 @@ curl http://localhost:20128/v1/chat/completions \
-OmniRoute request flow: your IDE or CLI (Claude Code, Cursor, Cline…) calls one local endpoint (http://localhost:20128/v1); the OmniRoute Smart Router (RTK + Caveman compression, 19 routing strategies, circuit breakers, TLS stealth, MCP, A2A, guardrails) auto-falls back across 4 provider tiers — Tier 1 Subscription (Claude Code, Codex, Copilot), quota out? Tier 2 API Key (DeepSeek, Groq, xAI), budget hit? Tier 3 Cheap (GLM $0.5, MiniMax $0.2), budget hit? Tier 4 Free (Kiro, Qoder, Pollinations) — always on. +OmniRoute request flow: your IDE or CLI (Claude Code, Cursor, Cline…) calls one local endpoint (http://localhost:20128/v1); the OmniRoute Smart Router (RTK + Caveman compression, 19 routing strategies, circuit breakers, TLS stealth, MCP, A2A, guardrails) tries fallback across 4 provider tiers — Tier 1 Subscription, Tier 2 API Key, Tier 3 Cheap, Tier 4 Free — subject to upstream availability and limits.
@@ -245,7 +243,7 @@ curl http://localhost:20128/v1/chat/completions \ - + Cheaper Inference
Cheaper Inference
cheaperinference.com

@@ -254,7 +252,7 @@ curl http://localhost:20128/v1/chat/completions \ Thanks to Cheaper Inference, an OmniRoute Open Source Friend, for backing this project! Cheaper Inference is a cost-ranked gateway that resells 42 frontier models — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok and MiniMax — behind one OpenAI-compatible endpoint, routing each request to the cheapest eligible provider without ever charging above the model maker's list price.

- First-class support in OmniRoute: Chat Completions, the native /v1/responses endpoint, vision, tool calling and 3 image models (grok-imagine, nano-banana-pro, nano-banana-2, reachable as cheaperinference/<model>). Get an API key → + First-class support in OmniRoute: Chat Completions, the native /v1/responses endpoint, vision, tool calling and 3 image models (grok-imagine, nano-banana-pro, nano-banana-2, reachable as cheaperinference/<model>). Get an API key → @@ -296,9 +294,9 @@ curl http://localhost:20128/v1/chat/completions \ -All 19 combo routing strategies animated — one tile per strategy: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, cache-optimized, lkgp, auto, fusion, pipeline. See the table above for what each one does. +Animated examples for 18 of the 19 combo routing strategies. The table above documents the full catalog, including cache-optimized. -> A **combo** is a chain of models OmniRoute routes across **automatically**. Quota runs out, a provider fails, or costs spike — the combo silently slides to the next model. **This is what makes OmniRoute unbreakable.** 🛡️ +> A **combo** is a chain of models OmniRoute routes across **automatically**. Quota runs out, a provider fails, or costs spike — the combo tries the next eligible model. This broadens fallback coverage, but upstream availability is never guaranteed. 🛡️ ### ⚡ Zero-config — just use `auto` @@ -409,7 +407,7 @@ All **19** strategies — mix & match per combo step: 17 auto - 12-factor live scoring across every connection 🤖 + 13-factor live scoring across every connection 🤖 18 @@ -423,7 +421,7 @@ All **19** strategies — mix & match per combo step: -The Auto-Combo engine scores every candidate on **12 factors** (health, quota, cost, latency, success rate, freshness…) — see [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md). +The Auto-Combo engine scores every candidate on **13 factors** (health, quota, cost, latency, success rate, freshness, cache affinity…) — see [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md). ## @@ -441,7 +439,7 @@ All **19** strategies — mix & match per combo step: -What sets OmniRoute apart — comparison table vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 291 providers, 90+ free providers built-in, 19 routing strategies, 12-engine token compression, built-in MCP server with 105 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA, 43 i18n UI locales, 100% MIT self-hosted. OmniRoute is the only one with the full set; competitors show a mix of checks, partials and crosses. Verified from each project's docs. +What sets OmniRoute apart — comparison table vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 329 providers, 155 catalog entries marked free/no-auth, 19 routing strategies, 12-engine token compression, built-in MCP server with 107 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA, 43 i18n UI locales, 100% MIT self-hosted. OmniRoute is the only one with the full set; competitors show a mix of checks, partials and crosses. Verified from each project's docs. 📊 Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md) @@ -454,6 +452,7 @@ OmniRoute is MIT-licensed and maintained in the open. If it saves you time or mo + @@ -515,7 +514,7 @@ Pix copia-e-cola: - **🖼️ New endpoints** — `/v1/ocr` (Mistral OCR) and `/v1/audio/translations` (Whisper-style) round out the media surface. → [API Reference](docs/reference/API_REFERENCE.md) - **🎨 Image / video / audio generation** — one API for media: xAI Grok Imagine & Novita AI video, ComfyUI, Freepik, Adobe Firefly, Microsoft Designer, Google Imagen, Segmind, EdgeTTS. → [API Reference](docs/reference/API_REFERENCE.md) - **🌍 Deployment & ops** — reverse-proxy `basePath`, browser-language auto-detect, per-key device tracking, root-less MITM trust, zh-TW localization. → [Environment](docs/reference/ENVIRONMENT.md) -- **🤝 More providers & agents** — Cursor Cloud Agent, Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **291-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md) +- **🤝 More providers & agents** — Cursor Cloud Agent, Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **329-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md) - **📡 Routing transparency** — every response carries an `X-OmniRoute-Decision` header naming the strategy/provider/latency that served it, a new `cache-optimized` combo strategy + Auto-Combo `cacheAffinity` factor route repeat requests back to the connection holding the cached prefix, and a read-only `/v1/auto-combo/{channel}/candidates` endpoint exposes an `auto/*` channel's live candidate pool. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **⚡ Local performance & infra** — one-click local Redis, Cloudflare Workers / Deno Deploy relay deployers, Bifrost & Mux as supervised embedded services. → [Embedded Services](docs/frameworks/EMBEDDED-SERVICES.md) @@ -534,7 +533,7 @@ Pix copia-e-cola: - + @@ -576,11 +575,11 @@ Pix copia-e-cola:
-## 🌐 291 AI Providers — 90+ Free +## 🌐 329 AI Providers — 155 Free/No-Auth
-> The most complete catalog of any open-source router: **291 providers**, **90+ with a free tier**, **40+ free forever**. +> The most complete catalog of any open-source router: **329 providers**, including **155 catalog entries marked free/no-auth**. The audited token-budget catalog separately tracks **43 recurring pools across 522 model budget entries**; “free” may mean no-auth, a recurring quota, an uncapped rate-limited tier, a signup grant, or a provider-specific promotional plan.
@@ -613,24 +612,24 @@ Pix copia-e-cola:
Star the repoFree — genuinely helps visibilityStar OmniRoute
🐙 GitHub SponsorsOne-off or monthly · zero platform feegithub.com/sponsors/diegosouzapw
🏢 Open CollectiveCompanies — issues an invoice/receipt · transparent booksopencollective.com/omniroute
Ko-fiQuick one-off tip, no signup for the donorko-fi.com/diegosouzapw
🧋 Buy Me a CoffeeSmall, informal gesturebuymeacoffee.com/diegosouzapw
🖐 LiberapayRecurring · non-profit · open sourceliberapay.com/diegosouzapw
Codex CLI
Codex CLI
                           
Cline
Cline
                           
Kilo Code
Kilo Code
                           
Zoo Code
Zoo Code
                           
Roo CodeRoo Code
Roo Code
                           
Continue
Continue
                           
-…and 220+ more — every icon resolves live from the dashboard's provider catalog. 📖 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) +…and 300+ more — every icon resolves live from the dashboard's provider catalog. 📖 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md)
-### 🆓 Free Forever — $0, no card +### 🆓 Current free/no-auth access — terms and limits vary - - - - - - + + + + + + - - + + @@ -638,6 +637,8 @@ Pix copia-e-cola:
OpenCode Zen
OpenCode Zen
DeepSeek V4, Nemotron 3
No token cap
Kilo Code
Kilo Code
Auto-router, Tencent Hy3
Free forever
Requesty
Requesty
GPT-OSS 120B, Nemotron
Free forever
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
Free tier
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
Free forever
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
Free forever
OpenCode Zen
OpenCode Zen
Selected $0 models
No published token cap*
Kilo Code
Kilo Code
Free-model router
Limits and terms apply*
Requesty
Requesty
Selected free models
~200 requests/day*
SiliconFlow
SiliconFlow
Selected $0 models
Identity check required*
Z.AI GLM
Z.AI GLM
GLM Flash models
No published token cap*
Baidu ERNIE
Baidu ERNIE
Selected ERNIE models
No published token cap*
Qoder AI
Qoder AI
Qwen3-Max, Kimi-K2
Unlimited FREE
Pollinations
Pollinations
GPT, Llama, Claude
No key needed
Qoder AI
Qoder AI
Current catalog grant
One-time shared credit*
Pollinations
Pollinations
Keyless access
Rate limits apply*
Cloudflare AI
Cloudflare AI
50+ models
10K neurons/day
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
~40 RPM free
Cerebras
Cerebras
GLM 4.7, GPT-OSS
1M tokens/day
+*Catalog snapshot, not a guarantee: model availability, quotas, account/KYC requirements, regions, privacy terms and provider policies can change. “No published token cap” still allows rate and concurrency limits. + 📖 Full machine-readable catalog → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
@@ -725,7 +726,7 @@ Expose OmniRoute over **MCP**, **A2A**, a **REST API**, **webhooks** or a **remo - + @@ -892,12 +893,6 @@ docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \ -p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest ``` -> **Pre-release Docker channel:** `diegosouzapw/omniroute:next` and -> `diegosouzapw/omniroute:next-web` follow the current default `release/v*` -> branch. These mutable tags are intended only for testing unreleased fixes and -> are **not supported for production**. See -> [Docker Release Channels](docs/guides/DOCKER_RELEASE_CHANNELS.md). - **🛠️ From source** ```bash @@ -1038,7 +1033,7 @@ same process on one port, so there is no separate CLI-only package today. - + @@ -1099,9 +1094,9 @@ same process on one port, so there is no separate CLI-only package today. - + - +
InterfaceEndpoint / commandUse it for
🧰 MCP (stdio)omniroute --mcpPlug into Claude Desktop, Cursor, any MCP client
🌊 MCP (HTTP)/api/mcp/streamRemote MCP — 105 tools, 31 scopes, full audit trail
🌊 MCP (HTTP)/api/mcp/streamRemote MCP — 107 tools, 32 scopes, full audit trail
📡 MCP (SSE)/api/mcp/sseStreaming MCP transport
🤝 A2A/.well-known/agent.jsonAgent-to-agent, JSON-RPC 2.0 + SSE, 6 skills
🌐 REST API/v1/*OpenAI-compatible — chat, embeddings, images, audio, OCR
RuntimeNode.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
LanguageTypeScript 6.0 — 100% TypeScript across src/ and open-sse/ (zero any in core since v2.0)
FrameworkNext.js 16 + React 19 + Tailwind CSS 4
Databasebetter-sqlite3 (SQLite, WAL journaling) + LowDB (JSON legacy) — 95 domain modules, 110 migrations
Databasebetter-sqlite3 (SQLite, WAL journaling) + LowDB (JSON legacy) — 110 domain modules, 130 migrations
MemorySQLite FTS5 full-text + int8-quantized vector embeddings, typed decay
SchemasZod 4 — MCP tool I/O validation + API contracts
ProtocolsMCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)
Compression Rules FormatJSON rule-pack schemas for Caveman and RTK filters
Compression Language PacksLanguage detection and Caveman rule-pack authoring
Resilience GuideCircuit breakers, cooldowns, queue, anti-thundering herd, TLS spoofing
Auto-Combo Engine12-factor scoring, mode packs, self-healing
Auto-Combo Engine13-factor scoring, mode packs, self-healing
Proxy Guide3-level proxy system, 1proxy marketplace, registry CRUD
Free Tiers25+ free API providers consolidated directory
Free TiersAudited free/no-auth catalog plus quantified pool and signup-credit methodology
Features GalleryVisual dashboard tour with screenshots
Codebase DocumentationBeginner-friendly codebase walkthrough
@@ -1112,7 +1107,7 @@ same process on one port, so there is no separate CLI-only package today. DocumentDescription API ReferenceAll endpoints with examples OpenAPI SpecOpenAPI 3.0 specification - MCP Server104 MCP tools, IDE configs, Python/TS/Go clients + MCP Server107 MCP tools, IDE configs, Python/TS/Go clients MCP Server GuideMCP installation, transports, and tool reference A2A ServerJSON-RPC 2.0 protocol, skills, streaming, task mgmt A2A Server GuideA2A agent card, tasks, skills, and streaming diff --git a/docs/architecture/ARCHITECTURE.md b/docs/architecture/ARCHITECTURE.md index 1eeff78ce2..7352bc6b9d 100644 --- a/docs/architecture/ARCHITECTURE.md +++ b/docs/architecture/ARCHITECTURE.md @@ -17,7 +17,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` @@ -940,7 +940,7 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor ## Provider Compatibility Matrix -> **Note:** The matrix below is a representative sample of the 327 provider catalog entries in +> **Note:** The matrix below is a representative sample of the 329 provider catalog entries in > OmniRoute. For the canonical and continuously-updated list, refer to > [`docs/reference/PROVIDER_REFERENCE.md`](../reference/PROVIDER_REFERENCE.md) (auto-generated) or the source of > truth at `src/shared/constants/providers.ts` (Zod-validated at load). diff --git a/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/architecture/CODEBASE_DOCUMENTATION.md index 36c0e9697d..9e69acd8e8 100644 --- a/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -493,7 +493,7 @@ as `base.ts`, `index.ts`, `types.ts`, and `constants.ts`. Provider-facing execut (shared identity helper) and `index.ts` (registry). > Note: providers not listed here are served by `default.ts` using the generic -> OpenAI-compatible executor. The full provider catalog (327 entries) lives in +> OpenAI-compatible executor. The full provider catalog (329 entries) lives in > `src/shared/constants/providers.ts`. ### 4.3 `open-sse/translator/` diff --git a/docs/architecture/REPOSITORY_MAP.md b/docs/architecture/REPOSITORY_MAP.md index 20c31c4829..bd18724602 100644 --- a/docs/architecture/REPOSITORY_MAP.md +++ b/docs/architecture/REPOSITORY_MAP.md @@ -1,13 +1,13 @@ --- title: "Repository Map" -version: 3.8.40 -lastUpdated: 2026-06-28 +version: 3.8.50 +lastUpdated: 2026-08-02 --- # Repository Map > **One-line description for every directory and root file.** -> Last updated: 2026-06-28 — OmniRoute v3.8.40 +> Last updated: 2026-08-02 — OmniRoute v3.8.50 > > Use this map to navigate the codebase quickly. For deep dives, follow links to dedicated docs. @@ -182,9 +182,8 @@ src/ | `compliance/` | Audit log + provider audit — see `docs/security/COMPLIANCE.md` | | `compression/` | Compression engine glue (engines live in `open-sse/services/compression/`) | | `config/` | Runtime config helpers | -| `db/` | 95+ domain DB modules + 110+ migrations (always go through here for SQLite) | +| `db/` | 110 top-level DB modules + 130 migrations (always go through here for SQLite) | | `quota/` | Quota Sharing Engine: `dimensions.ts` (types/Zod), `types.ts` (QuotaStore interface), `sqliteQuotaStore.ts`, `redisQuotaStore.ts`, `storeFactory.ts`, `fairShare.ts`, `burnRate.ts`, `planResolver.ts`, `planRegistry.ts`, `saturationSignals.ts`, `enforce.ts`, `spendRecorder.ts` — see `docs/routing/QUOTA_SHARE.md` | -| `radar/` | Radar free-model catalog client: `feedSchema.ts`, `pinnedKeys.ts`, `verify.ts`, `sync.ts`, `applyFeed.ts`, `index.ts` (`getRadarCatalog()`) — see `docs/frameworks/RADAR.md` | | `display/` | UI formatting helpers (cost, latency, etc.) | | `embeddings/` | Embeddings service helpers | | `env/` | Env variable parsing + validation | @@ -209,7 +208,7 @@ src/ | `cacheLayer.ts`, `idempotencyLayer.ts` | Request caching + idempotency | | (~30 more top-level files) | Specialized helpers (logEnv, modelsDevSync, piiSanitizer, etc.) | -### `src/db/` — Database (94 modules + 106 migrations) +### `src/lib/db/` — Database (110 top-level modules + 130 migrations) | Subdir | Purpose | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -244,9 +243,9 @@ src/ | Module | Purpose | | -------------------------------- | ---------------------------------------------------------------------- | -| `constants/providers.ts` | **236 providers** with Zod validation (source of truth) | +| `constants/providers.ts` | **329 provider catalog entries** with Zod validation (source of truth) | | `constants/cliTools.ts` | External CLI tool registry | -| `constants/routingStrategies.ts` | **17 routing strategies** with priorities | +| `constants/routingStrategies.ts` | **19 public routing strategies** with priorities | | `constants/publicApiRoutes.ts` | Routes that require Bearer (vs management) auth | | `constants/upstreamHeaders.ts` | Header denylist for upstream requests | | `validation/schemas.ts` | ~80 Zod schemas (single source of truth for API contracts) | @@ -266,11 +265,11 @@ Separate npm workspace (`@omniroute/open-sse`). Handles request processing + pro ``` open-sse/ ├── handlers/ # 16 files (12 handlers + 4 helpers): chatCore, responsesHandler, embeddings, audio, image, video, music, rerank, moderations, search, etc. -├── executors/ # 67 provider-specific executors (extend BaseExecutor) +├── executors/ # 89 executor implementation modules ├── translator/ # Format converters (9 request, 9 response, 9 helpers) ├── transformer/ # Responses API ↔ Chat Completions (TransformStream) ├── services/ # ~80+ service modules (combo, accountFallback, autoCombo, reasoningCache, claude code/chatgpt stealth, modelDeprecation, taskAwareRouter, workflowFSM, etc.) -├── mcp-server/ # MCP server (99 tools, 3 transports, 32 scopes) +├── mcp-server/ # MCP server (107 unique tools, 3 transports, 32 scopes) ├── config/ # Provider/model registries, header config, model aliases ├── utils/ # TLS client, proxy fetch/dispatcher, network helpers ├── index.ts # Workspace entry @@ -396,32 +395,31 @@ open-sse/ | `TROUBLESHOOTING.md` | Common errors + v3.8.0 known issues | | `RELEASE_CHECKLIST.md` | Full release flow (skills, husky, conventional commits, deploy) | | `COVERAGE_PLAN.md` | Coverage goals and current state | -| `FREE_TIERS.md` | Curated free-tier providers (48+ free + 11 OAuth) | +| `FREE_TIERS.md` | Curated free-tier providers (329-provider catalog; 155 free/no-auth metadata entries) | | `CLI-TOOLS.md` | External CLI integrations + Internal OmniRoute CLI | -| `I18N.md` | i18n architecture, adding a language, 30 locales | +| `I18N.md` | i18n architecture, adding a language, 43 locales | | `UNINSTALL.md` | Clean uninstall steps | -| `PROVIDER_REFERENCE.md` | **Auto-generated** catalog of 236 providers (regen: `npm run gen:provider-reference`) | +| `PROVIDER_REFERENCE.md` | **Auto-generated** catalog of 329 providers (regen: `npm run gen:provider-reference`) | ### Subsystem deep-dives -| Doc | Purpose | -| -------------------------- | ------------------------------------------------------------------- | -| `MCP-SERVER.md` | MCP server: 99 tools, 3 transports, 32 scopes, REST endpoints | -| `A2A-SERVER.md` | A2A v0.3: JSON-RPC, 5 skills, REST helpers, agent card | -| `AGENT_PROTOCOLS_GUIDE.md` | Unified guide: A2A vs ACP vs Cloud Agents | -| `CLOUD_AGENT.md` | Codex Cloud / Devin / Jules orchestration | -| `SKILLS.md` | Skills framework (built-in + marketplace + SkillsSH + sandbox) | -| `RADAR.md` | Radar free-model catalog overlay (`RADAR_ENABLED`, off by default) | -| `MEMORY.md` | Memory system (SQLite FTS5 + Qdrant) | -| `EVALS.md` | Eval framework (suites, runs, rubrics) | -| `GUARDRAILS.md` | PII masker, prompt injection, vision bridge | -| `COMPLIANCE.md` | Audit log, retention, noLog opt-out | -| `WEBHOOKS.md` | HMAC-signed webhook delivery | -| `REASONING_REPLAY.md` | Hybrid memory/SQLite cache for `reasoning_content` | -| `AUTHZ_GUIDE.md` | Authorization pipeline (`classify` → `policies` → `enforce`) | -| `RESILIENCE_GUIDE.md` | Circuit breaker + cooldown + model lockout | -| `STEALTH_GUIDE.md` | TLS fingerprinting (JA3/JA4), Claude Code CCH, MITM cert | -| `AUTO-COMBO.md` | Auto Combo engine (9-factor scoring, 4 mode packs, virtual factory) | +| Doc | Purpose | +| -------------------------- | --------------------------------------------------------------------- | +| `MCP-SERVER.md` | MCP server: 107 unique tools, 3 transports, 32 scopes, REST endpoints | +| `A2A-SERVER.md` | A2A v0.3: JSON-RPC, 6 skills, REST helpers, agent card | +| `AGENT_PROTOCOLS_GUIDE.md` | Unified guide: A2A vs ACP vs Cloud Agents | +| `CLOUD_AGENT.md` | Codex Cloud / Cursor Cloud / Devin / Jules orchestration | +| `SKILLS.md` | Skills framework (built-in + marketplace + SkillsSH + sandbox) | +| `MEMORY.md` | Memory system (SQLite FTS5 + Qdrant) | +| `EVALS.md` | Eval framework (suites, runs, rubrics) | +| `GUARDRAILS.md` | PII masker, prompt injection, vision bridge | +| `COMPLIANCE.md` | Audit log, retention, noLog opt-out | +| `WEBHOOKS.md` | HMAC-signed webhook delivery | +| `REASONING_REPLAY.md` | Hybrid memory/SQLite cache for `reasoning_content` | +| `AUTHZ_GUIDE.md` | Authorization pipeline (`classify` → `policies` → `enforce`) | +| `RESILIENCE_GUIDE.md` | Circuit breaker + cooldown + model lockout | +| `STEALTH_GUIDE.md` | TLS fingerprinting (JA3/JA4), Claude Code CCH, MITM cert | +| `AUTO-COMBO.md` | Auto Combo engine (13-factor scoring, 4 mode packs, virtual factory) | ### Compression @@ -451,7 +449,7 @@ open-sse/ | Subdir | Purpose | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `docs/archive/` | Archived/historical docs (e.g., `RFC-AUTO-ASSESSMENT-DRAFT.md` — superseded by EVALS) | -| `docs/i18n/` | Localized doc translations (~42 locales) | +| `docs/i18n/` | Localized doc translations (43 locales) | | `docs/screenshots/` | Image assets for guides | | `_tasks/superpowers/` | Plans/specs from superpowers (`writing-plans`/`brainstorming`) + research — isolated, separately-versioned repo, gitignored by the main tree. See CLAUDE.md → "Planning & Research Artifacts". | diff --git a/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md b/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md index c40e02522d..3a25f85f0a 100644 --- a/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md +++ b/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md @@ -13,8 +13,8 @@ Objective feature comparison vs popular open-source AI routers. | Feature | OmniRoute 3.8 | LiteLLM 1.x | OpenRouter (SaaS) | Portkey | | -------------------------------------------------- | :----------------------------------------------: | :------------: | :---------------: | :---------: | -| **Providers** | **327** | ~100 | ~50 | ~30 | -| **Free/no-auth catalog entries** | **154** | n/a | passthrough | n/a | +| **Providers** | **329** | ~100 | ~50 | ~30 | +| **Free/no-auth catalog entries** | **155** | n/a | passthrough | n/a | | **Self-hostable** | ✅ | ✅ | ❌ | ⚠ paid | | **OAuth catalog entries** | **23** | partial | ❌ | ❌ | | **Auto-fallback combos** | **19 strategies** | priority-based | tier-based | weighted | @@ -41,7 +41,7 @@ Objective feature comparison vs popular open-source AI routers. ## When to choose OmniRoute -- You self-host and want **maximum provider coverage** (327 providers, 154 free/no-auth catalog entries) +- You self-host and want **maximum provider coverage** (329 providers, 155 free/no-auth catalog entries) - You need a **built-in MCP server** (LLM tools, memory, skills exposed as tools) - You need **A2A protocol** for agent-to-agent workflows - You want **fingerprint stealth** (JA3/JA4) to avoid detection by upstream CAPTCHAs diff --git a/docs/diagrams/cli-terminal.svg b/docs/diagrams/cli-terminal.svg index f69337a352..2c8724cb7f 100644 --- a/docs/diagrams/cli-terminal.svg +++ b/docs/diagrams/cli-terminal.svg @@ -1,4 +1,4 @@ - + Compact animated terminal cycling three real OmniRoute CLI commands with a typewriter effect and a scrolling subcommand ticker; the first frame shows the completed providers-list screen. @@ -6,7 +6,7 @@ omniroute — 80+ commands -omniroute providers listOmniRoute Providers1f3a9c2e  anthropic   Claude Max 20x    active8c2d5b1a  codex       Codex Pro (team)  activef4e0a97b  glm         GLM Coding Plan   active03bd6e5f  kimi        Kimi K2 free      active… 323 more providers +omniroute providers listOmniRoute Providers1f3a9c2e  anthropic   Claude Max 20x    active8c2d5b1a  codex       Codex Pro (team)  activef4e0a97b  glm         GLM Coding Plan   active03bd6e5f  kimi        Kimi K2 free      active… 325 more providers $ omniroute providers list @@ -14,7 +14,7 @@ -OmniRoute Providers1f3a9c2e  anthropic   Claude Max 20x    active8c2d5b1a  codex       Codex Pro (team)  activef4e0a97b  glm         GLM Coding Plan   active03bd6e5f  kimi        Kimi K2 free      active… 323 more providers +OmniRoute Providers1f3a9c2e  anthropic   Claude Max 20x    active8c2d5b1a  codex       Codex Pro (team)  activef4e0a97b  glm         GLM Coding Plan   active03bd6e5f  kimi        Kimi K2 free      active… 325 more providers $ @@ -32,7 +32,7 @@ -OmniRoute Health  Status: healthy   Uptime: 4d 12h 33m  Requests (24h): 18,412   p95: 412ms  Breakers: ● 24 closed  ◒ 1 half-open  ○ 0 open  Providers: 327 registered   154 free/no-auth… live: /dashboard · omniroute status +OmniRoute Health  Status: healthy   Uptime: 4d 12h 33m  Requests (24h): 18,412   p95: 412ms  Breakers: ● 24 closed  ◒ 1 half-open  ○ 0 open  Providers: 329 registered   155 free/no-auth… live: /dashboard · omniroute status diff --git a/docs/diagrams/comparison-table.svg b/docs/diagrams/comparison-table.svg index 54b53e74a9..b39897746e 100644 --- a/docs/diagrams/comparison-table.svg +++ b/docs/diagrams/comparison-table.svg @@ -1,4 +1,4 @@ - + Static-header comparison table where each capability row fades in top to bottom; the OmniRoute column is highlighted and shows a check or a leading value in every row, while competitors show a mix of checks, partials and crosses. @@ -23,7 +23,7 @@ Providers - 327 + 329 40+ 400+* ~5 @@ -32,7 +32,7 @@ Free/no-auth catalog entries - 154 + 155 diff --git a/docs/diagrams/exported/request-pipeline.svg b/docs/diagrams/exported/request-pipeline.svg index 6c94db99ee..d025124a9f 100644 --- a/docs/diagrams/exported/request-pipeline.svg +++ b/docs/diagrams/exported/request-pipeline.svg @@ -1 +1 @@ -

yes

no

combo

single

Client
(IDE/CLI/SDK)

Next.js Route
/v1/chat/completions

CORS preflight

Zod validation
(request body)

AuthZ pipeline
(extractApiKey +
isValidApiKey)

API key policy
(allowlist + scopes)

Prompt-injection
guardrail

handleChatCore

Cache hit?

Return cached

Rate limit
(per-key, per-IP)

Combo
target?

resolveComboTargets
(19 strategies)

handleSingleModel
(per target)

translateRequest
(OpenAI↔Claude↔Gemini)

getExecutor
(89 executor modules)

Upstream Provider
(327 catalog entries)

SSE / JSON

responsesTransformer
(Responses↔Chat)

\ No newline at end of file +

yes

no

combo

single

Client
(IDE/CLI/SDK)

Next.js Route
/v1/chat/completions

CORS preflight

Zod validation
(request body)

AuthZ pipeline
(extractApiKey +
isValidApiKey)

API key policy
(allowlist + scopes)

Prompt-injection
guardrail

handleChatCore

Cache hit?

Return cached

Rate limit
(per-key, per-IP)

Combo
target?

resolveComboTargets
(19 strategies)

handleSingleModel
(per target)

translateRequest
(OpenAI↔Claude↔Gemini)

getExecutor
(89 executor modules)

Upstream Provider
(329 catalog entries)

SSE / JSON

responsesTransformer
(Responses↔Chat)

\ No newline at end of file diff --git a/docs/diagrams/promise-pillars.svg b/docs/diagrams/promise-pillars.svg index 9addf14c28..672a0e90f8 100644 --- a/docs/diagrams/promise-pillars.svg +++ b/docs/diagrams/promise-pillars.svg @@ -1,4 +1,4 @@ - + Animated promise card: six pillar tiles fade in in reading order, then a soft colored border highlight sweeps from tile to tile in a continuous cycle. @@ -21,7 +21,7 @@
- One endpoint. 327 providers. Keep building — OmniRoute picks the cheapest eligible route that works. + One endpoint. 329 providers. Keep building — OmniRoute picks the cheapest eligible route that works. @@ -38,7 +38,7 @@ Resilient fallback - Auto-fallback across 327 providers when + Auto-fallback across 329 providers when an upstream or quota fails. The next eligible provider is tried, subject to availability.
@@ -73,7 +73,7 @@
$0 to start - 154 catalog entries marked free/no-auth; + 155 catalog entries marked free/no-auth; 58 providers have recurring quantified or uncapped access in the audited catalog.
diff --git a/docs/diagrams/readme-hero.svg b/docs/diagrams/readme-hero.svg index 38f87af836..bfccb898e2 100644 --- a/docs/diagrams/readme-hero.svg +++ b/docs/diagrams/readme-hero.svg @@ -1,4 +1,4 @@ - + Animated hero card: a pulse travels the divider line and a compression bar demo repeatedly shrinks a prompt by up to 95 percent; all headline content is static and readable on the first frame. @@ -28,7 +28,7 @@ Keep coding through limits. - Every AI tool → 327 providers154 free/no-auth — one endpoint. + Every AI tool → 329 providers155 free/no-auth — one endpoint. Claude Code · Codex · Cursor · Cline · Copilot · Antigravity  →  FREE-ACCESS Claude / GPT / Gemini · limits apply @@ -66,10 +66,10 @@ - 327 + 329 AI PROVIDERS - 154 + 155 FREE / NO-AUTH ~1.53B diff --git a/docs/diagrams/request-pipeline.mmd b/docs/diagrams/request-pipeline.mmd index 61c7684726..9c776e17a8 100644 --- a/docs/diagrams/request-pipeline.mmd +++ b/docs/diagrams/request-pipeline.mmd @@ -18,7 +18,7 @@ flowchart LR Combo -->|single| Single Single --> Translate["translateRequest

(OpenAI↔Claude↔Gemini)"] Translate --> Exec["getExecutor
(89 executor modules)"] - Exec --> Upstream["Upstream Provider
(327 catalog entries)"] + Exec --> Upstream["Upstream Provider
(329 catalog entries)"] Upstream --> Stream["SSE / JSON"] Stream --> Transformer["responsesTransformer
(Responses↔Chat)"] Transformer --> Client diff --git a/docs/frameworks/A2A-SERVER.md b/docs/frameworks/A2A-SERVER.md index b8d13ee7db..972a03736b 100644 --- a/docs/frameworks/A2A-SERVER.md +++ b/docs/frameworks/A2A-SERVER.md @@ -150,7 +150,7 @@ OmniRoute exposes 6 A2A skills wired in `src/lib/a2a/taskExecution.ts::A2A_SKILL | Health Report | `health-report` | Aggregates circuit breaker, cooldown, lockout state per provider | health, resilience | "Show health status of all providers" | | List Capabilities | `list-capabilities` | Returns the full 45-entry Agent Skills catalog (23 API + 21 CLI + 1 config) as a markdown table with raw SKILL.md URLs for context injection | catalog, discovery, skills | "List all OmniRoute capabilities" | -> The Agent Card should be kept aligned with the live 327-provider catalog; provider counts and free/no-auth metadata are sourced from the runtime registry. +> The Agent Card should be kept aligned with the live 329-provider catalog; provider counts and free/no-auth metadata are sourced from the runtime registry. ### `list-capabilities` Skill Detail diff --git a/docs/frameworks/ACP.md b/docs/frameworks/ACP.md index 4dc1e19ca2..eb24ee08f8 100644 --- a/docs/frameworks/ACP.md +++ b/docs/frameworks/ACP.md @@ -543,7 +543,7 @@ const agents = detectInstalledAgents(); ## What's Next? - **[API Reference](../reference/API_REFERENCE.md)** — REST API endpoints -- **[Provider Reference](../reference/PROVIDER_REFERENCE.md)** — All 327 providers +- **[Provider Reference](../reference/PROVIDER_REFERENCE.md)** — All 329 providers - **[MCP Server](./MCP-SERVER.md)** — Model Context Protocol integration - **[A2A Server](./A2A-SERVER.md)** — Agent-to-Agent protocol - **[Cloud Agent](./CLOUD_AGENT.md)** — Cloud-based agents diff --git a/docs/frameworks/AGENTBRIDGE.md b/docs/frameworks/AGENTBRIDGE.md index c6de5f1856..9459547956 100644 --- a/docs/frameworks/AGENTBRIDGE.md +++ b/docs/frameworks/AGENTBRIDGE.md @@ -22,7 +22,7 @@ When an IDE agent (e.g., GitHub Copilot, Cursor, Claude Code) makes an API call, This means you can: -- **Reroute any agent to any provider**: Copilot talking to OpenAI? Redirect it to Anthropic Claude, Gemini, or any of OmniRoute's 327 providers. +- **Reroute any agent to any provider**: Copilot talking to OpenAI? Redirect it to Anthropic Claude, Gemini, or any of OmniRoute's 329 providers. - **Apply model mappings**: `gemini-3-flash` → `claude-sonnet-4.7` transparently at the handler level. - **Observe all agent traffic**: every intercepted request is published to the [Traffic Inspector](./TRAFFIC_INSPECTOR.md). - **Apply OmniRoute resilience**: combo routing, circuit breakers, fallbacks, and cost tracking work for IDE agent traffic too. diff --git a/docs/frameworks/OPEN_SSE_ARCHITECTURE.md b/docs/frameworks/OPEN_SSE_ARCHITECTURE.md index 6efa205c43..cd02f07351 100644 --- a/docs/frameworks/OPEN_SSE_ARCHITECTURE.md +++ b/docs/frameworks/OPEN_SSE_ARCHITECTURE.md @@ -368,7 +368,7 @@ const result = await executor.execute({ }); ```` -The factory covers all **327 provider catalog entries** through shared defaults and **89 executor implementation modules**. Most OpenAI-compatible providers use `DefaultExecutor`; specialized modules override only the behavior that differs. +The factory covers all **329 provider catalog entries** through shared defaults and **89 executor implementation modules**. Most OpenAI-compatible providers use `DefaultExecutor`; specialized modules override only the behavior that differs. --- @@ -487,7 +487,7 @@ This handles: | File | Purpose | | ----------------------------- | --------------------------------- | -| `providerRegistry.ts` | 327 provider catalog entries | +| `providerRegistry.ts` | 329 provider catalog entries | | `providerModels.ts` | Model aliases, format mapping | | `constants.ts` | Timeouts, limits, status codes | | `defaultThinkingSignature.ts` | Default Claude thinking signature | diff --git a/docs/getting-started/FREE-TIERS-GUIDE.md b/docs/getting-started/FREE-TIERS-GUIDE.md index da8ddd3589..d68b737e87 100644 --- a/docs/getting-started/FREE-TIERS-GUIDE.md +++ b/docs/getting-started/FREE-TIERS-GUIDE.md @@ -1,63 +1,57 @@ ---- -title: "Free Tiers Guide: Get Free AI Without a Credit Card" -version: 3.8.50 -lastUpdated: 2026-08-06 ---- +# Free Tiers Guide: Understand and Combine Free AI Access -# Free Tiers Guide: Get Free AI Without a Credit Card - -> **TL;DR**: OmniRoute aggregates free tiers from 50+ providers. Connect multiple free providers for unlimited free AI with automatic fallback. +> **TL;DR**: OmniRoute registers 329 providers, with **155 catalog entries marked free/no-auth**. The stricter audited budget currently covers **43 recurring pools / 522 model budget entries**. Connect several suitable providers for broader fallback capacity; every quota, approval rule, privacy policy, and paid-overage condition still applies. --- ## What Are Free Tiers? -Many AI providers offer **free usage** — no credit card required. Think of it like free samples at a grocery store. You can try the product without paying. +Many AI providers offer some form of **free access**. Depending on the provider, that may +mean a no-auth endpoint, recurring quota, rate-limited uncapped access, a signup grant, +manual approval, or a temporary promotion. Some options require an account, API key, +credit card, KYC, or acceptance of provider-specific terms. OmniRoute **aggregates** these free tiers into one endpoint. Instead of signing up for 10 different services, you connect them all to OmniRoute and use `model: "auto"` to automatically pick the best free option for each request. --- -## Best Free Providers (No Credit Card) +## Representative Free-Access Providers -### Tier 1: Free Forever (Unlimited) +### Recurring, Keyless, or Uncapped Access -These providers are **always free** with no limits: +These providers have a recurring, keyless, or uncapped free-access path in the audited catalog. “Uncapped” means no published token cap; rate, concurrency, account, regional, and policy limits can still apply: | Provider | Models | Quota | How to Connect | |----------|--------|-------|----------------| -| **Kiro AI** | Claude Sonnet 4.5, Haiku 4.5, Opus 4.6 | 50 credits/month | No auth needed | -| **OpenCode Free** | GPT-4o, Claude, Gemini | Unlimited | No auth needed | -| **Pollinations** | GPT-5, Claude, Gemini, DeepSeek, Llama 4 | No key needed | No auth needed | -| **LongCat** | LongCat-2.0 | 10M tokens (one-time) | API key + KYC | -| **Cloudflare AI** | 50+ models | 10K neurons/day | No auth needed | -| **Qwen** | Qwen3-coder-plus/flash/next | Unlimited | No auth needed | -| **Qoder** | Kimi-K2, DeepSeek-R1, Qwen3-coder | Unlimited | No auth needed | +| **Kiro AI** | Claude Sonnet 4.5, Haiku 4.5, DeepSeek V3.2, and others | Audited catalog estimates a 25K-token shared monthly pool | OAuth/account flow; ToS flagged `avoid` in the catalog | +| **OpenCode Free** | Current `*-free` model set in the provider registry | Keyless; no published token cap | No provider credential; ToS flagged `avoid` | +| **Pollinations** | Current keyless model set; some former models are discontinued or key-required | Keyless; no published token cap | No provider credential for the keyless models | +| **Cloudflare AI** | Workers AI catalog | Audited pool estimates ~30M tokens/month from published usage units | Cloudflare account and API credentials | +| **Gemini** | Gemini Flash family | Audited pool estimates ~60M tokens/month | Google AI Studio API key; rate limits apply | +| **Groq** | Llama, GPT-OSS, and Qwen models | Audited pool estimates ~15M tokens/month | Groq API key; rate limits apply | +| **Cerebras** | GLM 4.7 and GPT-OSS 120B | Audited pool estimates ~30M tokens/month | Cerebras API key; rate limits apply | -### Tier 2: Free with Signup (Generous) +### Signup Grants and Provider-Specific Credits These providers give you **free credits** when you sign up: | Provider | Free Credits | Models | How to Get | |----------|-------------|--------|------------| -| **NVIDIA NIM** | ~40 RPM | 129 models | Sign up at build.nvidia.com | -| **Cerebras** | 1M tokens/day | Qwen3 235B, GPT-OSS 120B | Sign up at cerebras.ai | | **DeepSeek** | 5M free tokens | DeepSeek V4 | Sign up at platform.deepseek.com | -| **Groq** | 30 RPM free | Llama 4, Mixtral | Sign up at console.groq.com | -| **OpenAI** | $5 free credits | GPT-5, GPT-4o | Sign up at platform.openai.com | -| **Anthropic** | $5 free credits | Claude Opus 4.6, Sonnet 4.6 | Sign up at console.anthropic.com | -| **Google** | 1,500 req/day | Gemini 2.5 Pro, Flash | Sign up at aistudio.google.com | +| **LongCat** | 10M-token one-time grant | LongCat 2.0 | API key + KYC; pay-as-you-go after the grant | +| **Together** | $25 signup credit represented as ~25M tokens in the budget model | Provider catalog | Sign up and verify current terms | +| **Vertex AI** | $300 signup credit represented as ~300M tokens in the budget model | Gemini and partner models | Google Cloud account; billing and eligibility rules apply | -### Tier 3: Free with Limits (Specific Use Cases) +### Other Limited Access These providers have **free tiers** with specific limits: | Provider | Free Limit | Models | Best For | |----------|-----------|--------|----------| -| **Cerebras** | 1M tokens/day | Qwen3 235B | Fast inference | -| **NVIDIA NIM** | ~40 RPM | 129 models | Variety | -| **Groq** | 30 RPM | Llama 4, Mixtral | Speed | -| **Cloudflare AI** | 10K neurons/day | 50+ models | Variety | +| **GitHub Models** | Audited shared pool estimates ~18M tokens/month | Broad model evaluation | +| **Hugging Face** | Small recurring monthly pool | Experiments and model variety | +| **OpenRouter free models** | Shared request-limited pool; optional one-time top-up increases the recurring allowance | Broad fallback catalog | +| **AI Horde** | Keyless community capacity; availability varies | Opportunistic distributed inference | --- @@ -65,22 +59,22 @@ These providers have **free tiers** with specific limits: The magic of OmniRoute is **stacking free tiers**. Instead of relying on one provider, you connect multiple free providers and let OmniRoute automatically pick the best one for each request. -### Example: Unlimited Free AI +### Example: Broader Free-Tier Coverage -Connect these 4 providers for **unlimited free AI**: +Connect several providers to reduce dependence on any single quota: -1. **Kiro AI** — 50 credits/month (Claude models) -2. **OpenCode Free** — Unlimited (GPT models) -3. **Pollinations** — No key needed (multiple models) -4. **LongCat** — 10M tokens one-time (backup, requires KYC) +1. **Gemini** — recurring API-key quota +2. **Groq** — recurring API-key quota +3. **Pollinations** — keyless, rate-limited access +4. **LongCat** — one-time signup grant (requires KYC) Then use `model: "auto"` and OmniRoute will: -- Try Kiro first (best quality) -- If Kiro is busy → try OpenCode Free -- If OpenCode Free is slow → try Pollinations +- Try the highest-ranked eligible connection first +- If its quota or health check fails → try the next configured provider +- If the keyless provider is unavailable → continue through the remaining targets - If all fail → use LongCat as backup -**Result**: Unlimited free AI with automatic fallback! +**Result**: broader free-tier coverage with automatic fallback — not a guarantee of unlimited capacity. --- @@ -100,87 +94,34 @@ Click the **+ Add Provider** button. ### Step 4: Select a Free Provider -Browse the list and select one of these free providers: -- **Kiro AI** — Free Claude models -- **OpenCode Free** — Free GPT models -- **Pollinations** — Free GPT-5, Claude, Gemini -- **LongCat** — 10M tokens free (one-time, requires KYC) -- **Cloudflare AI** — 50+ models, 10K neurons/day +Browse the catalog and inspect each provider's current `hasFree`, auth, quota, privacy, +and ToS metadata. The provider card and the +[Free Tiers Reference](../reference/FREE_TIERS.md) distinguish recurring pools, +uncapped/keyless access, signup credits, discontinued entries, and higher-risk sources. ### Step 5: Click Connect -No API key needed — just click **Connect**. +For a `NOAUTH` provider, no credential is required. OAuth and API-key providers must be +connected through their documented account flow. ### Step 6: Repeat -Connect 3-4 free providers for the best experience. +Connect several providers whose terms and privacy model fit your use case. --- -## Free Provider Details +## Reading the Catalog Correctly -### Kiro AI - -- **Models**: Claude Sonnet 4.5, Haiku 4.5, Opus 4.6 -- **Quota**: 50 credits/month -- **Auth**: No auth needed -- **Best for**: High-quality Claude models - -### OpenCode Free - -- **Models**: GPT-4o, Claude, Gemini -- **Quota**: Unlimited -- **Auth**: No auth needed -- **Best for**: General-purpose AI - -### Pollinations - -- **Models**: GPT-5, Claude, Gemini, DeepSeek, Llama 4 -- **Quota**: No key needed -- **Auth**: No auth needed -- **Best for**: Variety of models - -### LongCat - -- **Models**: LongCat-2.0 -- **Quota**: 10M tokens, one-time grant on signup (not recurring daily/monthly) -- **Auth**: API key + KYC verification required to unlock the free grant -- **Best for**: A one-off free allowance; pay-as-you-go beyond it - -### Cloudflare AI - -- **Models**: 50+ models -- **Quota**: 10K neurons/day -- **Auth**: No auth needed -- **Best for**: Variety and reliability - -### NVIDIA NIM - -- **Models**: 129 models -- **Quota**: ~40 RPM -- **Auth**: Sign up at build.nvidia.com -- **Best for**: Variety and speed - -### Cerebras - -- **Models**: Qwen3 235B, GPT-OSS 120B -- **Quota**: 1M tokens/day -- **Auth**: Sign up at cerebras.ai -- **Best for**: Fast inference - -### Qwen - -- **Models**: Qwen3-coder-plus/flash/next -- **Quota**: Unlimited -- **Auth**: No auth needed -- **Best for**: Coding tasks - -### Qoder - -- **Models**: Kimi-K2, DeepSeek-R1, Qwen3-coder -- **Quota**: Unlimited -- **Auth**: No auth needed -- **Best for**: Coding tasks +- `NOAUTH` means OmniRoute does not ask you for a provider credential; it does not + guarantee uptime, privacy, or unlimited capacity. +- `hasFree` is discovery metadata. It can represent a recurring quota, keyless access, + signup credit, approval program, or promotion. +- `recurring-uncapped` means no published token ceiling was available; rate and + concurrency limits still apply. +- `one-time-initial` does not recur after the signup grant is consumed. +- `tos: avoid` is a warning to review provider terms and account risk before use. +- Entries marked `discontinued` remain historical evidence and must not be presented as + currently free. --- @@ -199,41 +140,33 @@ OmniRoute picks the **best free provider** for each request based on: ### 3. Token Savings -OmniRoute's **compression** feature saves 15-95% of tokens. This means your free quota lasts **5-20x longer**. +OmniRoute's compression pipeline can reduce eligible prompt and tool-output tokens. The +actual savings depend on content, selected engines, provider accounting, and fidelity +settings; compression does not multiply every provider quota by a fixed amount. ### 4. Multi-Account Support -If you have multiple accounts for the same provider, OmniRoute treats each as a separate candidate. This doubles or triples your free quota. +If provider terms permit multiple accounts or credentials, OmniRoute can treat each +connection as a separate routing candidate. Do not create extra accounts to evade a +provider's quota or access policy. --- ## Free Tier Math -Let's calculate how much free AI you can get: +The live, pool-deduplicated catalog currently reports: -### Conservative Estimate (3 providers) +| Metric | Current audited value | Interpretation | +| --- | ---: | --- | +| Recurring quantified grant | **~1.53B tokens/month** | Shared pools counted once; excludes uncapped providers from the sum | +| First month with signup grants | **~2.15B tokens** | Recurring total plus one-time and recurring credits | +| Quantified inventory | **43 pools / 522 model budget entries** | Budget-model coverage, not the full 329-provider catalog | +| Recurring/keyless/uncapped providers represented | **58** | Provider presence in recurring forms of the audited budget catalog | +| Free/no-auth discovery entries | **155** | Broader provider metadata; not all have a quantifiable recurring quota | -| Provider | Daily Quota | Monthly Quota | -|----------|-------------|---------------| -| Kiro AI | ~1.7 credits | 50 credits | -| OpenCode Free | Unlimited | Unlimited | -| Pollinations | Unlimited | Unlimited | - -**Total**: Unlimited free AI - -### Aggressive Estimate (7 providers) - -| Provider | Daily Quota | Monthly Quota | -|----------|-------------|---------------| -| Kiro AI | ~1.7 credits | 50 credits | -| OpenCode Free | Unlimited | Unlimited | -| Pollinations | Unlimited | Unlimited | -| LongCat | — (one-time) | 10M tokens (one-time, KYC) | -| Cloudflare AI | 10K neurons | 300K neurons | -| NVIDIA NIM | ~40 RPM | ~1.7M requests | -| Cerebras | 1M tokens | 30M tokens | - -**Total**: ~1.6B documented free tokens/month — up to ~2.1B in your first month with signup credits (with compression: ~7.5B+ effective tokens) +These values are computed from `open-sse/config/freeModelCatalog.ts`; see the +[Free Tiers Reference](../reference/FREE_TIERS.md) for pool deduplication, ToS flags, +discontinued entries, and signup-credit methodology. --- @@ -241,30 +174,37 @@ Let's calculate how much free AI you can get: ### "Is this really free?" -**Yes!** These are official free tiers from the providers. OmniRoute just makes it easier to use them all at once. +The catalog records provider-published terms and project research, but offers can change. +Verify the provider's current pricing, quota, privacy policy, and eligibility before use. ### "Will the free tier run out?" -Some providers have limits (like Kiro's 50 credits/month), but others are unlimited (like OpenCode Free and Pollinations). By connecting multiple providers, you always have a backup. +Every provider can rate-limit, change models, suspend access, or go offline. Multiple +connections improve fallback coverage but do not guarantee an available free route. ### "Can I use free providers for production?" -**Yes!** Many free providers are production-ready. However, for critical applications, consider adding a paid provider as a backup. +Only if the provider's SLA, data handling, limits, and terms meet your production +requirements. Critical workloads should have monitored, contractually suitable fallback. ### "What's the catch?" -No catch! Providers offer free tiers to attract users. OmniRoute just makes it easier to use them all at once. +Tradeoffs may include strict limits, waitlists, KYC, credit-card verification, training on +prompts, weaker privacy, no SLA, model churn, geographic restrictions, paid overage, or +account-policy risk. OmniRoute surfaces the available metadata; you choose what to enable. ### "How do I get more free quota?" 1. Connect more free providers -2. Use compression to save tokens (15-95% savings) +2. Enable appropriate compression engines and measure savings for your workload 3. Use `auto/cheap` to prioritize free/cheap providers -4. Create multiple accounts for the same provider +4. Add additional permitted providers or credentials without violating provider terms ### "Do free providers have worse quality?" -**Not necessarily!** Many free providers offer the same models as paid providers. For example, Kiro gives you access to Claude Sonnet 4.5 — the same model you'd get with a paid Anthropic subscription. +Not necessarily. Some providers expose the same model families available through paid +routes, but limits, latency, privacy, reliability, and model versions can differ. Use the +Free Provider Rankings page as a quality signal and verify the actual model served. --- diff --git a/docs/getting-started/PROVIDERS-GUIDE.md b/docs/getting-started/PROVIDERS-GUIDE.md index b8eb7c32d3..3a7ec69e88 100644 --- a/docs/getting-started/PROVIDERS-GUIDE.md +++ b/docs/getting-started/PROVIDERS-GUIDE.md @@ -238,4 +238,4 @@ Go to Providers → click on the provider → click **Disconnect**. - **[Auto-Combo Guide](./AUTO-COMBO-GUIDE.md)** — Let OmniRoute pick the best AI for you - **[Free Tiers Guide](./FREE-TIERS-GUIDE.md)** — Get free AI with no credit card - **[Troubleshooting](./TROUBLESHOOTING.md)** — Fix common issues -- **[Provider Reference](../reference/PROVIDER_REFERENCE.md)** — Full list of 327 providers +- **[Provider Reference](../reference/PROVIDER_REFERENCE.md)** — Full list of 329 providers diff --git a/docs/guides/FREE_PROVIDER_RANKINGS.md b/docs/guides/FREE_PROVIDER_RANKINGS.md index 9af8241d81..7eb49f4660 100644 --- a/docs/guides/FREE_PROVIDER_RANKINGS.md +++ b/docs/guides/FREE_PROVIDER_RANKINGS.md @@ -15,7 +15,7 @@ lastUpdated: 2026-08-02 ## What It Is -OmniRoute registers 327 providers, including 154 catalog entries marked **free/no-auth** +OmniRoute registers 329 providers, including 155 catalog entries marked **free/no-auth** (no-auth, free-tier OAuth, or free-tier API key — see the [Free Tiers Guide](../getting-started/FREE-TIERS-GUIDE.md) and the full diff --git a/docs/i18n/ar/CLAUDE.md b/docs/i18n/ar/CLAUDE.md index 501da6825c..e25eeb1874 100644 --- a/docs/i18n/ar/CLAUDE.md +++ b/docs/i18n/ar/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## نظرة عامة على المشروع -**OmniRoute** — وكيل/موجه AI موحد. نقطة نهاية واحدة، 327 مزود LLM، تراجع تلقائي. +**OmniRoute** — وكيل/موجه AI موحد. نقطة نهاية واحدة، 329 مزود LLM، تراجع تلقائي. | الطبقة | الموقع | الغرض | | -------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ar/CONTRIBUTING.md b/docs/i18n/ar/CONTRIBUTING.md index d73e6a4e1d..42308c33f9 100644 --- a/docs/i18n/ar/CONTRIBUTING.md +++ b/docs/i18n/ar/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ar/README.md b/docs/i18n/ar/README.md index f3e99e5155..f68f8f7aa4 100644 --- a/docs/i18n/ar/README.md +++ b/docs/i18n/ar/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ar/docs/architecture/ARCHITECTURE.md b/docs/i18n/ar/docs/architecture/ARCHITECTURE.md index ba66cf2d0c..2c2bd8d7c7 100644 --- a/docs/i18n/ar/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ar/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ar/llm.txt b/docs/i18n/ar/llm.txt index a72bef0fd2..e2b591adc0 100644 --- a/docs/i18n/ar/llm.txt +++ b/docs/i18n/ar/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/az/CLAUDE.md b/docs/i18n/az/CLAUDE.md index 7ae194c468..88604ab614 100644 --- a/docs/i18n/az/CLAUDE.md +++ b/docs/i18n/az/CLAUDE.md @@ -39,7 +39,7 @@ Tam test matrisası üçün `CONTRIBUTING.md` → "Testləri İcra Etmək" bölm ## Layihəyə Qısa Baxış -**OmniRoute** — birləşdirilmiş AI proxy/router. Bir uç nöqtə, 327 LLM təminatçısı, avtomatik geri dönmə. +**OmniRoute** — birləşdirilmiş AI proxy/router. Bir uç nöqtə, 329 LLM təminatçısı, avtomatik geri dönmə. | Təbəqə | Yer | Məqsəd | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/az/CONTRIBUTING.md b/docs/i18n/az/CONTRIBUTING.md index c412c36a0a..7ceea3be03 100644 --- a/docs/i18n/az/CONTRIBUTING.md +++ b/docs/i18n/az/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/az/README.md b/docs/i18n/az/README.md index fb3f0e4f98..13a6a3ecce 100644 --- a/docs/i18n/az/README.md +++ b/docs/i18n/az/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -253,7 +253,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -337,7 +337,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/az/docs/architecture/ARCHITECTURE.md b/docs/i18n/az/docs/architecture/ARCHITECTURE.md index 69e9b181f0..542437a5d0 100644 --- a/docs/i18n/az/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/az/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/az/llm.txt b/docs/i18n/az/llm.txt index 459abc3261..615a221d60 100644 --- a/docs/i18n/az/llm.txt +++ b/docs/i18n/az/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/bg/CLAUDE.md b/docs/i18n/bg/CLAUDE.md index 76208edefd..468e4478a4 100644 --- a/docs/i18n/bg/CLAUDE.md +++ b/docs/i18n/bg/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## Проект в обобщение -**OmniRoute** — обединен AI прокси/рутер. Една крайна точка, 327 LLM доставчици, автоматично резервиране. +**OmniRoute** — обединен AI прокси/рутер. Една крайна точка, 329 LLM доставчици, автоматично резервиране. | Слой | Местоположение | Цел | | --------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/bg/CONTRIBUTING.md b/docs/i18n/bg/CONTRIBUTING.md index c412c36a0a..7ceea3be03 100644 --- a/docs/i18n/bg/CONTRIBUTING.md +++ b/docs/i18n/bg/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/bg/README.md b/docs/i18n/bg/README.md index e56b7b7411..e044c57400 100644 --- a/docs/i18n/bg/README.md +++ b/docs/i18n/bg/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/bg/docs/architecture/ARCHITECTURE.md b/docs/i18n/bg/docs/architecture/ARCHITECTURE.md index 69e9b181f0..542437a5d0 100644 --- a/docs/i18n/bg/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/bg/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/bg/llm.txt b/docs/i18n/bg/llm.txt index 459abc3261..615a221d60 100644 --- a/docs/i18n/bg/llm.txt +++ b/docs/i18n/bg/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/bn/CLAUDE.md b/docs/i18n/bn/CLAUDE.md index d1af9933a5..df63bd5ca8 100644 --- a/docs/i18n/bn/CLAUDE.md +++ b/docs/i18n/bn/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## প্রকল্পের সংক্ষিপ্ত বিবরণ -**OmniRoute** — একক AI প্রক্সি/রাউটার। একটি এন্ডপয়েন্ট, 327 LLM প্রদানকারী, স্বয়ংক্রিয় ফ fallback। +**OmniRoute** — একক AI প্রক্সি/রাউটার। একটি এন্ডপয়েন্ট, 329 LLM প্রদানকারী, স্বয়ংক্রিয় ফ fallback। | স্তর | অবস্থান | উদ্দেশ্য | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/bn/CONTRIBUTING.md b/docs/i18n/bn/CONTRIBUTING.md index 86b8f0fc77..44c416459d 100644 --- a/docs/i18n/bn/CONTRIBUTING.md +++ b/docs/i18n/bn/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/bn/README.md b/docs/i18n/bn/README.md index ab4eeddc4f..3ed838a731 100644 --- a/docs/i18n/bn/README.md +++ b/docs/i18n/bn/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/bn/docs/architecture/ARCHITECTURE.md b/docs/i18n/bn/docs/architecture/ARCHITECTURE.md index edea3f9dd9..3cc31a1182 100644 --- a/docs/i18n/bn/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/bn/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/bn/llm.txt b/docs/i18n/bn/llm.txt index 108bae8aed..5d17098bf2 100644 --- a/docs/i18n/bn/llm.txt +++ b/docs/i18n/bn/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/cs/CLAUDE.md b/docs/i18n/cs/CLAUDE.md index b4ae095224..847f9521e5 100644 --- a/docs/i18n/cs/CLAUDE.md +++ b/docs/i18n/cs/CLAUDE.md @@ -39,7 +39,7 @@ Pro plnou testovací matici viz `CONTRIBUTING.md` → "Spouštění testů". Pro ## Projekt na první pohled -**OmniRoute** — jednotný AI proxy/router. Jeden koncový bod, 327 poskytovatelů LLM, automatické zálohování. +**OmniRoute** — jednotný AI proxy/router. Jeden koncový bod, 329 poskytovatelů LLM, automatické zálohování. | Vrstva | Umístění | Účel | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/cs/CONTRIBUTING.md b/docs/i18n/cs/CONTRIBUTING.md index cc7b963d76..82ca9b61b0 100644 --- a/docs/i18n/cs/CONTRIBUTING.md +++ b/docs/i18n/cs/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/cs/README.md b/docs/i18n/cs/README.md index c10146f598..faba8bc323 100644 --- a/docs/i18n/cs/README.md +++ b/docs/i18n/cs/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/cs/docs/architecture/ARCHITECTURE.md b/docs/i18n/cs/docs/architecture/ARCHITECTURE.md index 49b0589db1..aa8454c8f5 100644 --- a/docs/i18n/cs/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/cs/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/cs/llm.txt b/docs/i18n/cs/llm.txt index 349f777c6b..35fdef589e 100644 --- a/docs/i18n/cs/llm.txt +++ b/docs/i18n/cs/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/da/CLAUDE.md b/docs/i18n/da/CLAUDE.md index 2673cb3a80..d9c5dd06c0 100644 --- a/docs/i18n/da/CLAUDE.md +++ b/docs/i18n/da/CLAUDE.md @@ -39,7 +39,7 @@ For fuld testmatrix, se `CONTRIBUTING.md` → "Kørsel af Tests". For dyb arkite ## Projektet i Et Overblik -**OmniRoute** — samlet AI proxy/router. Én endpoint, 327 LLM udbydere, auto-fallback. +**OmniRoute** — samlet AI proxy/router. Én endpoint, 329 LLM udbydere, auto-fallback. | Lag | Placering | Formål | | -------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/da/CONTRIBUTING.md b/docs/i18n/da/CONTRIBUTING.md index ae0d385338..5d6dd9e221 100644 --- a/docs/i18n/da/CONTRIBUTING.md +++ b/docs/i18n/da/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/da/README.md b/docs/i18n/da/README.md index f1ae37e310..80783f4fd0 100644 --- a/docs/i18n/da/README.md +++ b/docs/i18n/da/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/da/docs/architecture/ARCHITECTURE.md b/docs/i18n/da/docs/architecture/ARCHITECTURE.md index 45d8384db5..837083841e 100644 --- a/docs/i18n/da/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/da/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/da/llm.txt b/docs/i18n/da/llm.txt index 234e8de8e3..e397069a98 100644 --- a/docs/i18n/da/llm.txt +++ b/docs/i18n/da/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/de/CLAUDE.md b/docs/i18n/de/CLAUDE.md index ee12d5883a..7cf1e14e19 100644 --- a/docs/i18n/de/CLAUDE.md +++ b/docs/i18n/de/CLAUDE.md @@ -39,7 +39,7 @@ Für die vollständige Testmatrix siehe `CONTRIBUTING.md` → "Tests Ausführen" ## Projekt auf einen Blick -**OmniRoute** — einheitlicher KI-Proxy/Router. Ein Endpunkt, 327 LLM-Anbieter, automatischer Fallback. +**OmniRoute** — einheitlicher KI-Proxy/Router. Ein Endpunkt, 329 LLM-Anbieter, automatischer Fallback. | Schicht | Standort | Zweck | | -------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/de/CONTRIBUTING.md b/docs/i18n/de/CONTRIBUTING.md index ce081fdbc6..1da422f2b3 100644 --- a/docs/i18n/de/CONTRIBUTING.md +++ b/docs/i18n/de/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/de/README.md b/docs/i18n/de/README.md index b5412cebe7..77540f9c9e 100644 --- a/docs/i18n/de/README.md +++ b/docs/i18n/de/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/de/docs/architecture/ARCHITECTURE.md b/docs/i18n/de/docs/architecture/ARCHITECTURE.md index ca8fdc86a0..24047f6d81 100644 --- a/docs/i18n/de/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/de/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/de/llm.txt b/docs/i18n/de/llm.txt index 2865c872fb..e961a4f89d 100644 --- a/docs/i18n/de/llm.txt +++ b/docs/i18n/de/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/es/CLAUDE.md b/docs/i18n/es/CLAUDE.md index 740735867c..a974ec521a 100644 --- a/docs/i18n/es/CLAUDE.md +++ b/docs/i18n/es/CLAUDE.md @@ -39,7 +39,7 @@ Para la matriz completa de pruebas, consulta `CONTRIBUTING.md` → "Ejecución d ## Proyecto a Simple Vista -**OmniRoute** — proxy/router de IA unificado. Un punto final, 327 proveedores de LLM, retroceso automático. +**OmniRoute** — proxy/router de IA unificado. Un punto final, 329 proveedores de LLM, retroceso automático. | Capa | Ubicación | Propósito | | ---------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/es/CONTRIBUTING.md b/docs/i18n/es/CONTRIBUTING.md index 835c6390ad..0741c670e3 100644 --- a/docs/i18n/es/CONTRIBUTING.md +++ b/docs/i18n/es/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/es/README.md b/docs/i18n/es/README.md index 405a1f9294..9c0475e549 100644 --- a/docs/i18n/es/README.md +++ b/docs/i18n/es/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/es/docs/architecture/ARCHITECTURE.md b/docs/i18n/es/docs/architecture/ARCHITECTURE.md index c65cc9a632..4b56079777 100644 --- a/docs/i18n/es/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/es/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/es/llm.txt b/docs/i18n/es/llm.txt index 254dd538d5..b90493b2ee 100644 --- a/docs/i18n/es/llm.txt +++ b/docs/i18n/es/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/fa/CLAUDE.md b/docs/i18n/fa/CLAUDE.md index 95d12fc165..2c39575709 100644 --- a/docs/i18n/fa/CLAUDE.md +++ b/docs/i18n/fa/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## پروژه در یک نگاه -**OmniRoute** — پروکسی/روتر AI یکپارچه. یک نقطه انتهایی، 327 ارائه‌دهنده LLM، بازگشت خودکار. +**OmniRoute** — پروکسی/روتر AI یکپارچه. یک نقطه انتهایی، 329 ارائه‌دهنده LLM، بازگشت خودکار. | لایه | مکان | هدف | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/fa/CONTRIBUTING.md b/docs/i18n/fa/CONTRIBUTING.md index e1d37090f1..87d07a70ab 100644 --- a/docs/i18n/fa/CONTRIBUTING.md +++ b/docs/i18n/fa/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/fa/README.md b/docs/i18n/fa/README.md index 548e0106f0..beab2b5e95 100644 --- a/docs/i18n/fa/README.md +++ b/docs/i18n/fa/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/fa/docs/architecture/ARCHITECTURE.md b/docs/i18n/fa/docs/architecture/ARCHITECTURE.md index 6dc22a23a0..ebb59b969c 100644 --- a/docs/i18n/fa/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fa/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/fa/llm.txt b/docs/i18n/fa/llm.txt index b741ffc891..73ed4e76af 100644 --- a/docs/i18n/fa/llm.txt +++ b/docs/i18n/fa/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/fi/CLAUDE.md b/docs/i18n/fi/CLAUDE.md index e4870d510c..7a85fed86b 100644 --- a/docs/i18n/fi/CLAUDE.md +++ b/docs/i18n/fi/CLAUDE.md @@ -39,7 +39,7 @@ Koko testimatriisin näkemiseksi katso `CONTRIBUTING.md` → "Testien suorittami ## Projekti lyhyesti -**OmniRoute** — yhtenäinen AI-proxy/reititin. Yksi päätepiste, 327 LLM-toimittajaa, automaattinen varajärjestelmä. +**OmniRoute** — yhtenäinen AI-proxy/reititin. Yksi päätepiste, 329 LLM-toimittajaa, automaattinen varajärjestelmä. | Kerros | Sijainti | Tarkoitus | | --------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/fi/CONTRIBUTING.md b/docs/i18n/fi/CONTRIBUTING.md index b7720d9a69..47c2a4673a 100644 --- a/docs/i18n/fi/CONTRIBUTING.md +++ b/docs/i18n/fi/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/fi/README.md b/docs/i18n/fi/README.md index c932d56258..c3972a54c6 100644 --- a/docs/i18n/fi/README.md +++ b/docs/i18n/fi/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/fi/docs/architecture/ARCHITECTURE.md b/docs/i18n/fi/docs/architecture/ARCHITECTURE.md index 886d11a4ca..a0d7bdf924 100644 --- a/docs/i18n/fi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fi/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/fi/llm.txt b/docs/i18n/fi/llm.txt index b5562d30c6..ec325c24ef 100644 --- a/docs/i18n/fi/llm.txt +++ b/docs/i18n/fi/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/fr/CLAUDE.md b/docs/i18n/fr/CLAUDE.md index a48cc49d01..cb2ebb3e1b 100644 --- a/docs/i18n/fr/CLAUDE.md +++ b/docs/i18n/fr/CLAUDE.md @@ -39,7 +39,7 @@ Pour la matrice de tests complète, voir `CONTRIBUTING.md` → "Exécution des t ## Projet en un coup d'œil -**OmniRoute** — proxy/router AI unifié. Un point de terminaison, 327 fournisseurs LLM, retour automatique. +**OmniRoute** — proxy/router AI unifié. Un point de terminaison, 329 fournisseurs LLM, retour automatique. | Couche | Emplacement | Objectif | | ----------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/fr/CONTRIBUTING.md b/docs/i18n/fr/CONTRIBUTING.md index 0ec5fd0aec..09193f4153 100644 --- a/docs/i18n/fr/CONTRIBUTING.md +++ b/docs/i18n/fr/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/fr/README.md b/docs/i18n/fr/README.md index 0fb134b563..ba05db6f54 100644 --- a/docs/i18n/fr/README.md +++ b/docs/i18n/fr/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/fr/docs/architecture/ARCHITECTURE.md b/docs/i18n/fr/docs/architecture/ARCHITECTURE.md index 7bd573900f..50e9cfd0e5 100644 --- a/docs/i18n/fr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fr/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/fr/llm.txt b/docs/i18n/fr/llm.txt index 5fcc0f1580..10b076169d 100644 --- a/docs/i18n/fr/llm.txt +++ b/docs/i18n/fr/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/gu/CLAUDE.md b/docs/i18n/gu/CLAUDE.md index c770fdeea4..606d9fdf14 100644 --- a/docs/i18n/gu/CLAUDE.md +++ b/docs/i18n/gu/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## પ્રોજેક્ટ એક નજરમાં -**OmniRoute** — એકીકૃત AI પ્રોક્સી/રાઉટર. એક એન્ડપોઈન્ટ, 327 LLM પ્રદાતાઓ, ઓટો-ફોલબેક. +**OmniRoute** — એકીકૃત AI પ્રોક્સી/રાઉટર. એક એન્ડપોઈન્ટ, 329 LLM પ્રદાતાઓ, ઓટો-ફોલબેક. | સ્તર | સ્થાન | ઉદ્દેશ્ય | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/gu/CONTRIBUTING.md b/docs/i18n/gu/CONTRIBUTING.md index 250176e71f..b92883401a 100644 --- a/docs/i18n/gu/CONTRIBUTING.md +++ b/docs/i18n/gu/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/gu/README.md b/docs/i18n/gu/README.md index 2e1f29c532..39f23ee12e 100644 --- a/docs/i18n/gu/README.md +++ b/docs/i18n/gu/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/gu/docs/architecture/ARCHITECTURE.md b/docs/i18n/gu/docs/architecture/ARCHITECTURE.md index 0801460d38..f983736bd3 100644 --- a/docs/i18n/gu/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/gu/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/gu/llm.txt b/docs/i18n/gu/llm.txt index b805940296..9e2d725bda 100644 --- a/docs/i18n/gu/llm.txt +++ b/docs/i18n/gu/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/he/CLAUDE.md b/docs/i18n/he/CLAUDE.md index 6b5bb77dce..8be05bddde 100644 --- a/docs/i18n/he/CLAUDE.md +++ b/docs/i18n/he/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## פרויקט במבט חטוף -**OmniRoute** — פרוקסי/נתב AI מאוחד. נקודת קצה אחת, 327 ספקי LLM, חזרה אוטומטית. +**OmniRoute** — פרוקסי/נתב AI מאוחד. נקודת קצה אחת, 329 ספקי LLM, חזרה אוטומטית. | שכבה | מיקום | מטרה | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/he/CONTRIBUTING.md b/docs/i18n/he/CONTRIBUTING.md index b744acd1e9..5f3290cb3f 100644 --- a/docs/i18n/he/CONTRIBUTING.md +++ b/docs/i18n/he/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/he/README.md b/docs/i18n/he/README.md index fe506d0893..51dbf34e45 100644 --- a/docs/i18n/he/README.md +++ b/docs/i18n/he/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/he/docs/architecture/ARCHITECTURE.md b/docs/i18n/he/docs/architecture/ARCHITECTURE.md index a2efba6e80..505ebbce4c 100644 --- a/docs/i18n/he/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/he/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/he/llm.txt b/docs/i18n/he/llm.txt index c0e9c27efb..862467034f 100644 --- a/docs/i18n/he/llm.txt +++ b/docs/i18n/he/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/hi/CLAUDE.md b/docs/i18n/hi/CLAUDE.md index 894f709215..e4e50e3ee0 100644 --- a/docs/i18n/hi/CLAUDE.md +++ b/docs/i18n/hi/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## परियोजना एक नज़र में -**OmniRoute** — एकीकृत AI प्रॉक्सी/राउटर। एक एंडपॉइंट, 327 LLM प्रदाता, स्वचालित फॉलबैक। +**OmniRoute** — एकीकृत AI प्रॉक्सी/राउटर। एक एंडपॉइंट, 329 LLM प्रदाता, स्वचालित फॉलबैक। | परत | स्थान | उद्देश्य | | ------------ | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/hi/CONTRIBUTING.md b/docs/i18n/hi/CONTRIBUTING.md index efe58474ff..3f41e703c3 100644 --- a/docs/i18n/hi/CONTRIBUTING.md +++ b/docs/i18n/hi/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/hi/README.md b/docs/i18n/hi/README.md index 82efc06fbe..725d0cb9a2 100644 --- a/docs/i18n/hi/README.md +++ b/docs/i18n/hi/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/hi/docs/architecture/ARCHITECTURE.md b/docs/i18n/hi/docs/architecture/ARCHITECTURE.md index 9da318e558..d8b04ef680 100644 --- a/docs/i18n/hi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/hi/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/hi/llm.txt b/docs/i18n/hi/llm.txt index b50e504859..27596b0b59 100644 --- a/docs/i18n/hi/llm.txt +++ b/docs/i18n/hi/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/hu/CLAUDE.md b/docs/i18n/hu/CLAUDE.md index 9667848cfc..aaf72b1bf8 100644 --- a/docs/i18n/hu/CLAUDE.md +++ b/docs/i18n/hu/CLAUDE.md @@ -39,7 +39,7 @@ A teljes tesztmátrixért lásd a `CONTRIBUTING.md` → "Tesztek futtatása" ré ## Projekt áttekintése -**OmniRoute** — egységes AI proxy/router. Egy végpont, 327 LLM szolgáltató, automatikus visszaesés. +**OmniRoute** — egységes AI proxy/router. Egy végpont, 329 LLM szolgáltató, automatikus visszaesés. | Réteg | Helyszín | Cél | | -------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/hu/CONTRIBUTING.md b/docs/i18n/hu/CONTRIBUTING.md index 1d1cde4fd6..469af3b4b5 100644 --- a/docs/i18n/hu/CONTRIBUTING.md +++ b/docs/i18n/hu/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/hu/README.md b/docs/i18n/hu/README.md index 7fb981287f..471f9578f6 100644 --- a/docs/i18n/hu/README.md +++ b/docs/i18n/hu/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/hu/docs/architecture/ARCHITECTURE.md b/docs/i18n/hu/docs/architecture/ARCHITECTURE.md index a9d3e4e7a8..e6d37d2487 100644 --- a/docs/i18n/hu/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/hu/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/hu/llm.txt b/docs/i18n/hu/llm.txt index 7138fbc063..d5e913a0e3 100644 --- a/docs/i18n/hu/llm.txt +++ b/docs/i18n/hu/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/id/CLAUDE.md b/docs/i18n/id/CLAUDE.md index c3cea46fcf..1eb3061877 100644 --- a/docs/i18n/id/CLAUDE.md +++ b/docs/i18n/id/CLAUDE.md @@ -39,7 +39,7 @@ Untuk matriks tes lengkap, lihat `CONTRIBUTING.md` → "Menjalankan Tes". Untuk ## Proyek Sekilas -**OmniRoute** — proxy/router AI terpadu. Satu endpoint, 327 penyedia LLM, auto-fallback. +**OmniRoute** — proxy/router AI terpadu. Satu endpoint, 329 penyedia LLM, auto-fallback. | Lapisan | Lokasi | Tujuan | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/id/CONTRIBUTING.md b/docs/i18n/id/CONTRIBUTING.md index a73ed04150..f868b9bc46 100644 --- a/docs/i18n/id/CONTRIBUTING.md +++ b/docs/i18n/id/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # Proxy MITM (sertifikat, DNS, perutean target) ├── shared/ │ ├── components/ # Komponen React (.tsx) -│ ├── constants/ # Definisi penyedia (327), cakupan MCP, 19 strategi perutean +│ ├── constants/ # Definisi penyedia (329), cakupan MCP, 19 strategi perutean │ ├── utils/ # Pemutus sirkuit, sanitizer, pembantu autentikasi │ └── validation/ # Skema Zod v4 └── sse/ # Pipeline proxy SSE diff --git a/docs/i18n/id/README.md b/docs/i18n/id/README.md index 31f4a51761..8801efff6b 100644 --- a/docs/i18n/id/README.md +++ b/docs/i18n/id/README.md @@ -6,7 +6,7 @@ ### Jangan pernah berhenti ngoding. Routing cerdas ke **model AI GRATIS & berbiaya rendah** dengan fallback otomatis. -_Proxy API universal Anda — satu endpoint untuk 327 entri katalog penyedia, dengan fallback otomatis saat rute upstream tersedia. Kini dengan **MCP Server (107 alat, 32 cakupan)**, **Protokol A2A**, **Sistem Memori/Skill** & **Aplikasi Desktop Electron**._ +_Proxy API universal Anda — satu endpoint untuk 329 entri katalog penyedia, dengan fallback otomatis saat rute upstream tersedia. Kini dengan **MCP Server (107 alat, 32 cakupan)**, **Protokol A2A**, **Sistem Memori/Skill** & **Aplikasi Desktop Electron**._ **Chat Completions • Embeddings • Pembuatan Gambar • Video • Musik • Audio • Reranking • **Pencarian Web** • MCP Server • Protokol A2A • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI menggunakan satu format, Claude (Anthropic) menggunakan format lain, Gemi **Cara OmniRoute menyelesaikannya:** -- **Endpoint Terpadu** — Satu `http://localhost:20128/v1` berfungsi sebagai proxy untuk seluruh 327 entri katalog penyedia +- **Endpoint Terpadu** — Satu `http://localhost:20128/v1` berfungsi sebagai proxy untuk seluruh 329 entri katalog penyedia - **Translasi Format** — Otomatis dan transparan: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Sanitasi Respons** — Menghapus field non-standar (`x_groq`, `usage_breakdown`, `service_tier`) yang merusak OpenAI SDK v1.83+ - **Normalisasi Peran** — Mengonversi `developer` → `system` untuk penyedia non-OpenAI; `system` → `user` untuk GLM/ERNIE @@ -336,7 +336,7 @@ Penyedia AI bisa menjadi tidak stabil, mengembalikan kesalahan 5xx, atau mencapa - **Dashboard Alat CLI** — Halaman khusus dengan pengaturan satu klik untuk Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **Generator Konfigurasi GitHub Copilot** — Menghasilkan `chatLanguageModels.json` untuk VS Code dengan pemilihan model massal - **Wizard Orientasi** — Pengaturan terpandu 4 langkah untuk pengguna pertama kali -- **Satu endpoint, semua model** — Konfigurasi `http://localhost:20128/v1` sekali, akses 327 entri katalog penyedia +- **Satu endpoint, semua model** — Konfigurasi `http://localhost:20128/v1` sekali, akses 329 entri katalog penyedia diff --git a/docs/i18n/id/docs/architecture/ARCHITECTURE.md b/docs/i18n/id/docs/architecture/ARCHITECTURE.md index 01ce6d29bf..ba2756d872 100644 --- a/docs/i18n/id/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/id/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ Sistem ini menyediakan satu endpoint yang kompatibel dengan OpenAI (`/v1/*`) dan Kemampuan inti: -- Antarmuka API yang kompatibel dengan OpenAI untuk CLI/tools (327 entri katalog penyedia, 89 modul implementasi executor) +- Antarmuka API yang kompatibel dengan OpenAI untuk CLI/tools (329 entri katalog penyedia, 89 modul implementasi executor) - Translasi permintaan/respons antar format penyedia - Fallback combo model (urutan multi-model) - Langkah combo terstruktur (`provider + model + connection`) dengan pengurutan runtime melalui `compositeTiers` diff --git a/docs/i18n/id/llm.txt b/docs/i18n/id/llm.txt index d62e6bcaf7..86d96deffb 100644 --- a/docs/i18n/id/llm.txt +++ b/docs/i18n/id/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/in/CLAUDE.md b/docs/i18n/in/CLAUDE.md index cba8f9d2a7..3d01829ac0 100644 --- a/docs/i18n/in/CLAUDE.md +++ b/docs/i18n/in/CLAUDE.md @@ -39,7 +39,7 @@ Untuk matriks tes lengkap, lihat `CONTRIBUTING.md` → "Menjalankan Tes". Untuk ## Proyek Sekilas -**OmniRoute** — proxy/router AI terpadu. Satu endpoint, 327 penyedia LLM, auto-fallback. +**OmniRoute** — proxy/router AI terpadu. Satu endpoint, 329 penyedia LLM, auto-fallback. | Lapisan | Lokasi | Tujuan | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/in/CONTRIBUTING.md b/docs/i18n/in/CONTRIBUTING.md index 3ba725310d..2332c6bec2 100644 --- a/docs/i18n/in/CONTRIBUTING.md +++ b/docs/i18n/in/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/in/README.md b/docs/i18n/in/README.md index 2b180955f6..fad0675f27 100644 --- a/docs/i18n/in/README.md +++ b/docs/i18n/in/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -335,7 +335,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/in/docs/architecture/ARCHITECTURE.md b/docs/i18n/in/docs/architecture/ARCHITECTURE.md index bf1b445ec6..1de307edb3 100644 --- a/docs/i18n/in/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/in/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/in/llm.txt b/docs/i18n/in/llm.txt index c6590b832c..8748cd423d 100644 --- a/docs/i18n/in/llm.txt +++ b/docs/i18n/in/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/it/CLAUDE.md b/docs/i18n/it/CLAUDE.md index 05a4d92350..9f2ec7191a 100644 --- a/docs/i18n/it/CLAUDE.md +++ b/docs/i18n/it/CLAUDE.md @@ -39,7 +39,7 @@ Per la matrice completa dei test, vedere `CONTRIBUTING.md` → "Esecuzione dei T ## Progetto a Colpo d'Occhio -**OmniRoute** — proxy/router AI unificato. Un endpoint, 327 fornitori di LLM, fallback automatico. +**OmniRoute** — proxy/router AI unificato. Un endpoint, 329 fornitori di LLM, fallback automatico. | Livello | Posizione | Scopo | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/it/CONTRIBUTING.md b/docs/i18n/it/CONTRIBUTING.md index c6b8f689e8..eda34190b7 100644 --- a/docs/i18n/it/CONTRIBUTING.md +++ b/docs/i18n/it/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/it/README.md b/docs/i18n/it/README.md index d48a982a6a..dae91d3f96 100644 --- a/docs/i18n/it/README.md +++ b/docs/i18n/it/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/it/docs/architecture/ARCHITECTURE.md b/docs/i18n/it/docs/architecture/ARCHITECTURE.md index 94ae7f14cb..437747094e 100644 --- a/docs/i18n/it/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/it/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/it/llm.txt b/docs/i18n/it/llm.txt index 67cb631adc..fb2ccf866f 100644 --- a/docs/i18n/it/llm.txt +++ b/docs/i18n/it/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ja/CLAUDE.md b/docs/i18n/ja/CLAUDE.md index 1a377e1969..eab6c73942 100644 --- a/docs/i18n/ja/CLAUDE.md +++ b/docs/i18n/ja/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## プロジェクトの概要 -**OmniRoute** — 統一されたAIプロキシ/ルーター。1つのエンドポイント、327LLMプロバイダー、自動フォールバック。 +**OmniRoute** — 統一されたAIプロキシ/ルーター。1つのエンドポイント、329LLMプロバイダー、自動フォールバック。 | レイヤー | 場所 | 目的 | | ------------------ | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ja/CONTRIBUTING.md b/docs/i18n/ja/CONTRIBUTING.md index 9a60e42ea8..092ab8809a 100644 --- a/docs/i18n/ja/CONTRIBUTING.md +++ b/docs/i18n/ja/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ja/README.md b/docs/i18n/ja/README.md index 522162ee7c..8c0347dcd0 100644 --- a/docs/i18n/ja/README.md +++ b/docs/i18n/ja/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ja/docs/architecture/ARCHITECTURE.md b/docs/i18n/ja/docs/architecture/ARCHITECTURE.md index 525c8263e5..5e48e11ff3 100644 --- a/docs/i18n/ja/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ja/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ja/llm.txt b/docs/i18n/ja/llm.txt index ac7b0ae686..5b4635eccd 100644 --- a/docs/i18n/ja/llm.txt +++ b/docs/i18n/ja/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ko/CLAUDE.md b/docs/i18n/ko/CLAUDE.md index 946419b058..0862037cd4 100644 --- a/docs/i18n/ko/CLAUDE.md +++ b/docs/i18n/ko/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## 프로젝트 개요 -**OmniRoute** — 통합 AI 프록시/라우터. 하나의 엔드포인트, 327 LLM 제공자, 자동 대체. +**OmniRoute** — 통합 AI 프록시/라우터. 하나의 엔드포인트, 329 LLM 제공자, 자동 대체. | 레이어 | 위치 | 목적 | | ------------ | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ko/CONTRIBUTING.md b/docs/i18n/ko/CONTRIBUTING.md index fa7b0ef1ca..255226d285 100644 --- a/docs/i18n/ko/CONTRIBUTING.md +++ b/docs/i18n/ko/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ko/README.md b/docs/i18n/ko/README.md index e9e0979ef0..fd3d3a6677 100644 --- a/docs/i18n/ko/README.md +++ b/docs/i18n/ko/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ko/docs/architecture/ARCHITECTURE.md b/docs/i18n/ko/docs/architecture/ARCHITECTURE.md index 8a49606a2f..7ec310c658 100644 --- a/docs/i18n/ko/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ko/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ko/llm.txt b/docs/i18n/ko/llm.txt index 69e222d8fd..6d3788da77 100644 --- a/docs/i18n/ko/llm.txt +++ b/docs/i18n/ko/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/mr/CLAUDE.md b/docs/i18n/mr/CLAUDE.md index 35d60f15ea..bf0a80fb36 100644 --- a/docs/i18n/mr/CLAUDE.md +++ b/docs/i18n/mr/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## प्रकल्पाचा आढावा -**OmniRoute** — एकत्रित AI प्रॉक्सी/राउटर. एक एंडपॉइंट, 327 LLM प्रदाते, स्वयंचलित फॉलबॅक. +**OmniRoute** — एकत्रित AI प्रॉक्सी/राउटर. एक एंडपॉइंट, 329 LLM प्रदाते, स्वयंचलित फॉलबॅक. | स्तर | स्थान | उद्देश | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/mr/CONTRIBUTING.md b/docs/i18n/mr/CONTRIBUTING.md index 102fb4eb87..afc4c860a9 100644 --- a/docs/i18n/mr/CONTRIBUTING.md +++ b/docs/i18n/mr/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/mr/README.md b/docs/i18n/mr/README.md index 240e04006d..9447aa1249 100644 --- a/docs/i18n/mr/README.md +++ b/docs/i18n/mr/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/mr/docs/architecture/ARCHITECTURE.md b/docs/i18n/mr/docs/architecture/ARCHITECTURE.md index d9d24f8392..f0061921be 100644 --- a/docs/i18n/mr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/mr/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/mr/llm.txt b/docs/i18n/mr/llm.txt index 08b13c275a..ff4e710d8b 100644 --- a/docs/i18n/mr/llm.txt +++ b/docs/i18n/mr/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ms/CLAUDE.md b/docs/i18n/ms/CLAUDE.md index 599b22c2ec..464176bba2 100644 --- a/docs/i18n/ms/CLAUDE.md +++ b/docs/i18n/ms/CLAUDE.md @@ -39,7 +39,7 @@ Untuk matriks ujian penuh, lihat `CONTRIBUTING.md` → "Menjalankan Ujian". Untu ## Projek Secara Ringkas -**OmniRoute** — proksi/router AI yang bersatu. Satu titik akhir, 327 penyedia LLM, auto-fallback. +**OmniRoute** — proksi/router AI yang bersatu. Satu titik akhir, 329 penyedia LLM, auto-fallback. | Lapisan | Lokasi | Tujuan | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ms/CONTRIBUTING.md b/docs/i18n/ms/CONTRIBUTING.md index 2063e34e01..75b6e60fd0 100644 --- a/docs/i18n/ms/CONTRIBUTING.md +++ b/docs/i18n/ms/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ms/README.md b/docs/i18n/ms/README.md index e0cdd26777..17f9e721e0 100644 --- a/docs/i18n/ms/README.md +++ b/docs/i18n/ms/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ms/docs/architecture/ARCHITECTURE.md b/docs/i18n/ms/docs/architecture/ARCHITECTURE.md index 4e4dde61c5..9ccce50b2e 100644 --- a/docs/i18n/ms/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ms/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ms/llm.txt b/docs/i18n/ms/llm.txt index dedc04019c..ee9eb43834 100644 --- a/docs/i18n/ms/llm.txt +++ b/docs/i18n/ms/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/nl/CLAUDE.md b/docs/i18n/nl/CLAUDE.md index db0e5c220d..f9f1b5226e 100644 --- a/docs/i18n/nl/CLAUDE.md +++ b/docs/i18n/nl/CLAUDE.md @@ -39,7 +39,7 @@ Voor de volledige testmatrix, zie `CONTRIBUTING.md` → "Tests Uitvoeren". Voor ## Project in een Oogopslag -**OmniRoute** — verenigde AI proxy/router. Eén eindpunt, 327 LLM-providers, automatische fallback. +**OmniRoute** — verenigde AI proxy/router. Eén eindpunt, 329 LLM-providers, automatische fallback. | Laag | Locatie | Doel | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/nl/CONTRIBUTING.md b/docs/i18n/nl/CONTRIBUTING.md index f5226eb216..35cb104e33 100644 --- a/docs/i18n/nl/CONTRIBUTING.md +++ b/docs/i18n/nl/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/nl/README.md b/docs/i18n/nl/README.md index c4f0add95c..ad64756648 100644 --- a/docs/i18n/nl/README.md +++ b/docs/i18n/nl/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/nl/docs/architecture/ARCHITECTURE.md b/docs/i18n/nl/docs/architecture/ARCHITECTURE.md index 9577193872..5fc2c6b8f2 100644 --- a/docs/i18n/nl/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/nl/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/nl/llm.txt b/docs/i18n/nl/llm.txt index 184071f689..302f6b3abb 100644 --- a/docs/i18n/nl/llm.txt +++ b/docs/i18n/nl/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/no/CLAUDE.md b/docs/i18n/no/CLAUDE.md index 28ba98b365..a3f2a3bde3 100644 --- a/docs/i18n/no/CLAUDE.md +++ b/docs/i18n/no/CLAUDE.md @@ -39,7 +39,7 @@ For full testmatrise, se `CONTRIBUTING.md` → "Kjøring av tester". For dyp ark ## Prosjektet i et nøtteskall -**OmniRoute** — enhetlig AI proxy/ruter. Ett endepunkt, 327 LLM-leverandører, automatisk fallback. +**OmniRoute** — enhetlig AI proxy/ruter. Ett endepunkt, 329 LLM-leverandører, automatisk fallback. | Lag | Sted | Formål | | --------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/no/CONTRIBUTING.md b/docs/i18n/no/CONTRIBUTING.md index 295a3ee7f8..64c8c512bd 100644 --- a/docs/i18n/no/CONTRIBUTING.md +++ b/docs/i18n/no/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/no/README.md b/docs/i18n/no/README.md index 22ddaa51ed..2f5304de0f 100644 --- a/docs/i18n/no/README.md +++ b/docs/i18n/no/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/no/docs/architecture/ARCHITECTURE.md b/docs/i18n/no/docs/architecture/ARCHITECTURE.md index c28e916bab..1b803343a7 100644 --- a/docs/i18n/no/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/no/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/no/llm.txt b/docs/i18n/no/llm.txt index f15acf1804..2357647d8c 100644 --- a/docs/i18n/no/llm.txt +++ b/docs/i18n/no/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/phi/CLAUDE.md b/docs/i18n/phi/CLAUDE.md index d6e15ada39..ea3e957379 100644 --- a/docs/i18n/phi/CLAUDE.md +++ b/docs/i18n/phi/CLAUDE.md @@ -39,7 +39,7 @@ Para sa buong test matrix, tingnan ang `CONTRIBUTING.md` → "Pagsasagawa ng Mga ## Proyekto sa Isang Sulyap -**OmniRoute** — pinagsamang AI proxy/router. Isang endpoint, 327 LLM providers, auto-fallback. +**OmniRoute** — pinagsamang AI proxy/router. Isang endpoint, 329 LLM providers, auto-fallback. | Layer | Lokasyon | Layunin | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/phi/CONTRIBUTING.md b/docs/i18n/phi/CONTRIBUTING.md index 2b01c5de96..316c31183f 100644 --- a/docs/i18n/phi/CONTRIBUTING.md +++ b/docs/i18n/phi/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/phi/README.md b/docs/i18n/phi/README.md index bdf6c3ac09..cb42b03fee 100644 --- a/docs/i18n/phi/README.md +++ b/docs/i18n/phi/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/phi/docs/architecture/ARCHITECTURE.md b/docs/i18n/phi/docs/architecture/ARCHITECTURE.md index 68561b22d4..a5e5eca869 100644 --- a/docs/i18n/phi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/phi/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/phi/llm.txt b/docs/i18n/phi/llm.txt index ad2af6bd42..ef80f4ad54 100644 --- a/docs/i18n/phi/llm.txt +++ b/docs/i18n/phi/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/pl/CLAUDE.md b/docs/i18n/pl/CLAUDE.md index 851b123af4..b97cb76c10 100644 --- a/docs/i18n/pl/CLAUDE.md +++ b/docs/i18n/pl/CLAUDE.md @@ -35,7 +35,7 @@ For full test matrix, see `CONTRIBUTING.md` → "Running Tests". For deep archit ## Project at a Glance -**OmniRoute** — unified AI proxy/router. One endpoint, 327 provider catalog entries, auto-fallback when an upstream route is available. +**OmniRoute** — unified AI proxy/router. One endpoint, 329 provider catalog entries, auto-fallback when an upstream route is available. | Layer | Location | Purpose | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/pl/CONTRIBUTING.md b/docs/i18n/pl/CONTRIBUTING.md index 218cd3d0bf..f8f2f990b8 100644 --- a/docs/i18n/pl/CONTRIBUTING.md +++ b/docs/i18n/pl/CONTRIBUTING.md @@ -281,7 +281,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, 19 routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, 19 routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/pl/README.md b/docs/i18n/pl/README.md index e5f181c513..fe5e5ade37 100644 --- a/docs/i18n/pl/README.md +++ b/docs/i18n/pl/README.md @@ -6,7 +6,7 @@ # 🚀 OmniRoute — Darmowa bramka AI -OmniRoute — Koduj dalej mimo limitów dostawców. Każde narzędzie AI → 327 wpisów katalogu dostawców — 154 oznaczone free/no-auth — przez jeden punkt końcowy. Claude Code, Codex, Cursor, Cline, Copilot i Antigravity mogą korzystać z bezpłatnego dostępu do Claude / GPT / Gemini z automatycznym fallbackiem, zależnie od dostępności i limitów dostawcy. Kaskadowa kompresja RTK + Caveman oszczędza 15–95% kwalifikowanych tokenów (średnio ~89% w sesjach z intensywnym użyciem narzędzi). 327 wpisów katalogu · 154 free/no-auth · ~1,53 mld udokumentowanych tokenów cyklicznych/mies. · 19 strategii routingu · 0 USD na start. +OmniRoute — Koduj dalej mimo limitów dostawców. Każde narzędzie AI → 329 wpisów katalogu dostawców — 155 oznaczone free/no-auth — przez jeden punkt końcowy. Claude Code, Codex, Cursor, Cline, Copilot i Antigravity mogą korzystać z bezpłatnego dostępu do Claude / GPT / Gemini z automatycznym fallbackiem, zależnie od dostępności i limitów dostawcy. Kaskadowa kompresja RTK + Caveman oszczędza 15–95% kwalifikowanych tokenów (średnio ~89% w sesjach z intensywnym użyciem narzędzi). 329 wpisów katalogu · 155 free/no-auth · ~1,53 mld udokumentowanych tokenów cyklicznych/mies. · 19 strategii routingu · 0 USD na start. @@ -16,7 +16,7 @@ -> Ręczne łączenie darmowych pakietów jest uciążliwe — dziesiątki SDK, dziesiątki limitów zapytań (rate limits) i brak wiedzy, ile tak naprawdę Ci pozostało. OmniRoute pokazuje **154 wpisy katalogu oznaczone free/no-auth**. Ściśle kwantyfikowany budżet obejmuje **43 pule dostawców / 522 wpisy budżetowe modeli** i jest wyświetlany na żywo w panelu (`/dashboard/free-tiers`). +> Ręczne łączenie darmowych pakietów jest uciążliwe — dziesiątki SDK, dziesiątki limitów zapytań (rate limits) i brak wiedzy, ile tak naprawdę Ci pozostało. OmniRoute pokazuje **155 wpisy katalogu oznaczone free/no-auth**. Ściśle kwantyfikowany budżet obejmuje **43 pule dostawców / 522 wpisy budżetowe modeli** i jest wyświetlany na żywo w panelu (`/dashboard/free-tiers`). Karta budżetu darmowych pakietów OmniRoute: stabilne ~1,53 mld darmowych tokenów miesięcznie, do ~2,15 mld w pierwszym miesiącu dzięki kredytom na start, z udokumentowanych darmowych poziomów 43 pul dostawców / 522 wpisów budżetowych modeli za jednym punktem końcowym. Rzetelne wyliczenia z deduplikacją puli — każda współdzielona pula liczona raz, 15 dostawców oflagowanych ze względu na ToS. Pasek budżetu obejmuje 19 kwantyfikowanych pul, ~626M jednorazowych kredytów startowych oraz dostawców cyklicznych bez opublikowanego limitu tokenów, lecz z limitami szybkości i współbieżności. Zużycie/pozostało na żywo na /dashboard/free-tiers. @@ -59,7 +59,7 @@ ![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Electron Downloads](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F) -[**🚀 Szybki start**](#-szybki-start) • [**🎯 Komba**](#-komba-combos--flagowa-funkcja) • [**🌐 Dostawcy**](#-327-wpisów-katalogu-ai--154-free-no-auth) • [**🔌 CLI & MCP**](#-pe%C5%82ne-cli--a2a-i-mcp) • [**🗜️ Kompresja**](#%EF%B8%8F-oszcz%C4%99dzaj-1595-token%C3%B3w--automatycznie) • [**🌍 Strona WWW**](https://omniroute.online) +[**🚀 Szybki start**](#-szybki-start) • [**🎯 Komba**](#-komba-combos--flagowa-funkcja) • [**🌐 Dostawcy**](#-329-wpisów-katalogu-ai--155-free-no-auth) • [**🔌 CLI & MCP**](#-pe%C5%82ne-cli--a2a-i-mcp) • [**🗜️ Kompresja**](#%EF%B8%8F-oszcz%C4%99dzaj-1595-token%C3%B3w--automatycznie) • [**🌍 Strona WWW**](https://omniroute.online) [💥 Obietnica](#-obietnica) • [🤔 Dlaczego](#-dlaczego-omniroute) • [🏆 Co wyróżnia OmniRoute](#-co-wyr%C3%B3%C5%BCnia-omniroute) • [🤖 Zgodne CLI](#-zgodne-cli-i-agenci-koduj%C4%85cy) • [🖥️ Gdzie to działa](#%EF%B8%8F-gdzie-dzia%C5%82a-omniroute--wsz%C4%99dzie) • [🔒 Prywatność](#-prywatno%C5%9B%C4%87-i-lokalne-dzia%C5%82anie-local-first) • [🎬 W akcji](#-omniroute-w-akcji) • [📸 Zrzuty ekranu](#-zrzuty-ekranu-z-panelu) • [📧 Wsparcie](#-wsparcie-i-spo%C5%82eczno%C5%9B%C4%87) @@ -126,7 +126,7 @@ -Obietnica — Jeden punkt końcowy. 327 wpisów katalogu. OmniRoute wybiera najtańsze kwalifikujące się rozwiązanie i próbuje fallbacku, gdy upstream lub quota zawiedzie, zależnie od dostępności trasy. Sześć filarów: odporność · oszczędność do 95% tokenów · 0 USD na start (154 wpisy free/no-auth, warunki i limity zależą od dostawcy) · 33 narzędzia i agenci kodujący przez jedną konfigurację · jeden punkt końcowy · klasa produkcyjna. +Obietnica — Jeden punkt końcowy. 329 wpisów katalogu. OmniRoute wybiera najtańsze kwalifikujące się rozwiązanie i próbuje fallbacku, gdy upstream lub quota zawiedzie, zależnie od dostępności trasy. Sześć filarów: odporność · oszczędność do 95% tokenów · 0 USD na start (155 wpisy free/no-auth, warunki i limity zależą od dostawcy) · 33 narzędzia i agenci kodujący przez jedną konfigurację · jeden punkt końcowy · klasa produkcyjna.

@@ -229,8 +229,8 @@ Wszystkie **19** strategii — łącz i dopasowuj na każdym kroku komba: | Funkcja | OmniRoute | Inne routery | | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------- | -| 🌐 Dostawcy | **327 wpisów katalogu** | 20–100 | -| 🆓 Free/no-auth | **154 wpisy katalogu** | 1–5 | +| 🌐 Dostawcy | **329 wpisów katalogu** | 20–100 | +| 🆓 Free/no-auth | **155 wpisy katalogu** | 1–5 | | 🔀 Strategie routingu | **19** (priorytetowa, ważona, zoptymalizowana pod kątem kosztów, przekazywanie kontekstu, fusion…) | 1–3 | | 🗜️ Kompresja tokenów | **Kaskadowa RTK + Caveman (15–95%)** | Brak / 20–40% | | 🧰 Wbudowany serwer MCP | **107 narzędzia, 3 protokoły transportowe, 32 zakresów** | Rzadkość | @@ -267,7 +267,7 @@ Wszystkie **19** strategii — łącz i dopasowuj na każdym kroku komba: - **🛡️ Bezpieczeństwo** — ochrona przed wstrzykiwaniem promptów (prompt-injection guard) na każdej trasie LLM (zestaw testów red-team) + darmowe wyszukiwanie w sieci DuckDuckGo jako ostatnia deska ratunku. → [Barierki ochronne](../../../docs/security/GUARDRAILS.md) - **🖼️ Nowe punkty końcowe** — `/v1/ocr` (Mistral OCR) i `/v1/audio/translations` (w stylu Whisper) uzupełniają obsługę multimediów. → [Referencja API](docs/reference/API_REFERENCE.md) - **🌍 Wdrożenie i administracja** — `basePath` dla reverse-proxy, automatyczne wykrywanie języka przeglądarki, śledzenie urządzeń na klucz, zaufanie MITM bez uprawnień roota, lokalizacja zh-TW. → [Środowisko](docs/reference/ENVIRONMENT.md) -- **🤝 Więcej dostawców i agentów** — Cursor Cloud Agent, Grok Build (xAI), pełnoprawna karta Ollama, Claude Sonnet 5, Zed, Requesty, SenseNova, Yuanbao… oraz odświeżony katalog 327 wpisów. → [Dostawcy](../../../docs/reference/PROVIDER_REFERENCE.md) +- **🤝 Więcej dostawców i agentów** — Cursor Cloud Agent, Grok Build (xAI), pełnoprawna karta Ollama, Claude Sonnet 5, Zed, Requesty, SenseNova, Yuanbao… oraz odświeżony katalog 329 wpisów. → [Dostawcy](../../../docs/reference/PROVIDER_REFERENCE.md) - **⚡ Lokalna wydajność i infrastruktura** — uruchamianie lokalnego Redis jednym kliknięciem, instalatory przekaźników dla Cloudflare Workers / Deno Deploy, Bifrost i Mux jako nadzorowane usługi wbudowane. → [Usługi wbudowane](../../../docs/frameworks/EMBEDDED-SERVICES.md)
@@ -326,11 +326,11 @@ Wszystkie **19** strategii — łącz i dopasowuj na każdym kroku komba:
-# 🌐 327 wpisów katalogu AI — 154 free/no-auth +# 🌐 329 wpisów katalogu AI — 155 free/no-auth
-> Najbardziej kompletny katalog spośród wszystkich routerów open-source: **327 wpisów dostawców**, w tym **154 oznaczone free/no-auth**. Oznaczenie katalogowe nie oznacza bezterminowego ani nieograniczonego dostępu — warunki, limity, regiony, KYC i ToS zależą od dostawcy. +> Najbardziej kompletny katalog spośród wszystkich routerów open-source: **329 wpisów dostawców**, w tym **155 oznaczone free/no-auth**. Oznaczenie katalogowe nie oznacza bezterminowego ani nieograniczonego dostępu — warunki, limity, regiony, KYC i ToS zależą od dostawcy.
diff --git a/docs/i18n/pl/docs/architecture/ARCHITECTURE.md b/docs/i18n/pl/docs/architecture/ARCHITECTURE.md index 9c282aebb5..44e4865d60 100644 --- a/docs/i18n/pl/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pl/docs/architecture/ARCHITECTURE.md @@ -17,7 +17,7 @@ Udostępnia pojedynczy endpoint zgodny z OpenAI (`/v1/*`) i kieruje ruch przez w Główne możliwości: -- Powierzchnia API zgodna z OpenAI dla CLI/narzędzi (327 provider catalog entries, 89 executor implementation modules) +- Powierzchnia API zgodna z OpenAI dla CLI/narzędzi (329 provider catalog entries, 89 executor implementation modules) - Tłumaczenie żądań/odpowiedzi między formatami dostawców - Fallback combo modeli (sekwencja wielu modeli) - Strukturalne kroki combo (`provider + model + connection`) z kolejnością runtime według `compositeTiers` @@ -934,7 +934,7 @@ Wszystkie pozostałe dostawcy (w tym niestandardowe węzły kompatybilne) używa ## Macierz kompatybilności dostawców -> **Uwaga:** Poniższa macierz to reprezentatywna próbka spośród 327 wpisów katalogu dostawców w +> **Uwaga:** Poniższa macierz to reprezentatywna próbka spośród 329 wpisów katalogu dostawców w > OmniRoute v3.8.0. Kanoniczna i stale aktualizowana lista: zob. > [`docs/reference/PROVIDER_REFERENCE.md`](../reference/PROVIDER_REFERENCE.md) (auto-generowana) lub źródło > prawdy w `src/shared/constants/providers.ts` (walidowane Zod przy ładowaniu). diff --git a/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md index 4a36f8a75d..7aa6dbf343 100644 --- a/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -491,7 +491,7 @@ open-sse/ (współdzielony helper identity) i `index.ts` (rejestr). > Uwaga: providery niewymienione tutaj są obsługiwane przez `default.ts` z generycznym -> executorem zgodnym z OpenAI. Pełny katalog providerów (327 wpisów) jest w +> executorem zgodnym z OpenAI. Pełny katalog providerów (329 wpisów) jest w > `src/shared/constants/providers.ts`. ### 4.3 `open-sse/translator/` diff --git a/docs/i18n/pl/docs/architecture/REPOSITORY_MAP.md b/docs/i18n/pl/docs/architecture/REPOSITORY_MAP.md index 6f51978ba2..f16f679f18 100644 --- a/docs/i18n/pl/docs/architecture/REPOSITORY_MAP.md +++ b/docs/i18n/pl/docs/architecture/REPOSITORY_MAP.md @@ -243,7 +243,7 @@ src/ | Moduł | Cel | | -------------------------------- | ------------------------------------------------------------------------- | -| `constants/providers.ts` | **327 wpisów providerów** z walidacją Zod (źródło prawdy) | +| `constants/providers.ts` | **329 wpisów providerów** z walidacją Zod (źródło prawdy) | | `constants/cliTools.ts` | Rejestr zewnętrznych narzędzi CLI | | `constants/routingStrategies.ts` | **19 publicznych strategii routingu** z priorytetami | | `constants/publicApiRoutes.ts` | Trasy wymagające auth Bearer (vs management) | @@ -399,7 +399,7 @@ open-sse/ | `CLI-TOOLS.md` | Integracje zewnętrznych CLI + wewnętrzne CLI OmniRoute | | `I18N.md` | Architektura i18n, dodawanie języka, 30 locale | | `UNINSTALL.md` | Kroki czystej deinstalacji | -| `PROVIDER_REFERENCE.md` | **Auto-generowany** katalog 327 providerów (regen: `npm run gen:provider-reference`) | +| `PROVIDER_REFERENCE.md` | **Auto-generowany** katalog 329 providerów (regen: `npm run gen:provider-reference`) | ### Głębokie analizy podsystemów diff --git a/docs/i18n/pl/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md b/docs/i18n/pl/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md index 5d5e7a995e..d6fba6b81d 100644 --- a/docs/i18n/pl/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md +++ b/docs/i18n/pl/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md @@ -13,8 +13,8 @@ Obiektywne porównanie funkcji z popularnymi open-source'owymi routerami AI. | Funkcja | OmniRoute 3.8 | LiteLLM 1.x | OpenRouter (SaaS) | Portkey | | --------------------------------------------------- | :------------------------------------------------: | :------------: | :---------------: | :---------: | -| **Dostawcy** | **327** | ~100 | ~50 | ~30 | -| **Dostawcy free-tier** | **154 wpisy katalogu** | n/a | passthrough | n/a | +| **Dostawcy** | **329** | ~100 | ~50 | ~30 | +| **Dostawcy free-tier** | **155 wpisy katalogu** | n/a | passthrough | n/a | | **Self-hosting** | ✅ | ✅ | ❌ | ⚠ paid | | **Dostawcy OAuth (Claude, Codex, Copilot itd.)** | **23 wpisy katalogu** | partial | ❌ | ❌ | | **Combo z auto-fallbackiem** | **19 strategii** | priority-based | tier-based | weighted | @@ -41,7 +41,7 @@ Obiektywne porównanie funkcji z popularnymi open-source'owymi routerami AI. ## Kiedy wybrać OmniRoute -- Self-hostujesz i chcesz **maksymalnego pokrycia dostawców** (327 wpisów katalogu, 154 oznaczone free/no-auth) +- Self-hostujesz i chcesz **maksymalnego pokrycia dostawców** (329 wpisów katalogu, 155 oznaczone free/no-auth) - Potrzebujesz **wbudowanego serwera MCP** (narzędzia LLM, pamięć, skills wystawione jako tools) - Potrzebujesz **protokołu A2A** do workflow agent-to-agent - Chcesz **fingerprint stealth** (JA3/JA4), by unikać wykrycia przez upstream CAPTCHA diff --git a/docs/i18n/pl/docs/frameworks/ACP.md b/docs/i18n/pl/docs/frameworks/ACP.md index 154716bd80..6988b8c2e0 100644 --- a/docs/i18n/pl/docs/frameworks/ACP.md +++ b/docs/i18n/pl/docs/frameworks/ACP.md @@ -543,7 +543,7 @@ const agents = detectInstalledAgents(); ## Co dalej? - **[Referencja API](../reference/API_REFERENCE.md)** — endpointy REST API -- **[Referencja providerów](../reference/PROVIDER_REFERENCE.md)** — wszystkie 327 wpisów providerów +- **[Referencja providerów](../reference/PROVIDER_REFERENCE.md)** — wszystkie 329 wpisów providerów - **[Serwer MCP](./MCP-SERVER.md)** — integracja Model Context Protocol - **[Serwer A2A](./A2A-SERVER.md)** — protokół Agent-to-Agent - **[Cloud Agent](./CLOUD_AGENT.md)** — agenty chmurowe diff --git a/docs/i18n/pl/docs/frameworks/AGENTBRIDGE.md b/docs/i18n/pl/docs/frameworks/AGENTBRIDGE.md index 74ac5b3217..e080f1a5a0 100644 --- a/docs/i18n/pl/docs/frameworks/AGENTBRIDGE.md +++ b/docs/i18n/pl/docs/frameworks/AGENTBRIDGE.md @@ -22,7 +22,7 @@ Gdy agent IDE (np. GitHub Copilot, Cursor, Claude Code) wykonuje wywołanie API, Dzięki temu możesz: -- **Przekierować dowolnego agenta do dowolnego providera**: Copilot rozmawia z OpenAI? Przekieruj go na Anthropic Claude, Gemini lub dowolny z 327 wpisów katalogu OmniRoute. +- **Przekierować dowolnego agenta do dowolnego providera**: Copilot rozmawia z OpenAI? Przekieruj go na Anthropic Claude, Gemini lub dowolny z 329 wpisów katalogu OmniRoute. - **Stosować mapowania modeli**: `gemini-3-flash` → `claude-sonnet-4.7` w sposób przezroczysty na poziomie handlera. - **Obserwować cały ruch agentów**: każde przechwycone żądanie jest publikowane w [Traffic Inspector](./TRAFFIC_INSPECTOR.md). - **Stosować odporność OmniRoute**: combo routing, circuit breakery, fallbacki i śledzenie kosztów działają także dla ruchu agentów IDE. diff --git a/docs/i18n/pl/docs/frameworks/OPEN_SSE_ARCHITECTURE.md b/docs/i18n/pl/docs/frameworks/OPEN_SSE_ARCHITECTURE.md index 35c0895401..bc365b1890 100644 --- a/docs/i18n/pl/docs/frameworks/OPEN_SSE_ARCHITECTURE.md +++ b/docs/i18n/pl/docs/frameworks/OPEN_SSE_ARCHITECTURE.md @@ -371,7 +371,7 @@ const result = await executor.execute({ }); ```` -Fabryka korzysta z katalogu 327 wpisów providerów oraz wspólnych wartości domyślnych i 89 modułów implementacji executorów. +Fabryka korzysta z katalogu 329 wpisów providerów oraz wspólnych wartości domyślnych i 89 modułów implementacji executorów. --- diff --git a/docs/i18n/pl/docs/getting-started/FREE-TIERS-GUIDE.md b/docs/i18n/pl/docs/getting-started/FREE-TIERS-GUIDE.md index bae2e01067..d448f4cd6f 100644 --- a/docs/i18n/pl/docs/getting-started/FREE-TIERS-GUIDE.md +++ b/docs/i18n/pl/docs/getting-started/FREE-TIERS-GUIDE.md @@ -1,6 +1,6 @@ # Przewodnik po darmowych planach: darmowe AI bez karty kredytowej -> **TL;DR**: OmniRoute ma 154 wpisy katalogu oznaczone free/no-auth. Ściśle kwantyfikowany budżet obejmuje 43 pule / 522 wpisy modeli. Podłącz wielu providerów, aby rozszerzyć pokrycie fallbacku; dostępność, limity i warunki zależą od upstreamu. +> **TL;DR**: OmniRoute ma 155 wpisy katalogu oznaczone free/no-auth. Ściśle kwantyfikowany budżet obejmuje 43 pule / 522 wpisy modeli. Podłącz wielu providerów, aby rozszerzyć pokrycie fallbacku; dostępność, limity i warunki zależą od upstreamu. --- diff --git a/docs/i18n/pl/docs/getting-started/PROVIDERS-GUIDE.md b/docs/i18n/pl/docs/getting-started/PROVIDERS-GUIDE.md index 056a9588f2..81624da58e 100644 --- a/docs/i18n/pl/docs/getting-started/PROVIDERS-GUIDE.md +++ b/docs/i18n/pl/docs/getting-started/PROVIDERS-GUIDE.md @@ -221,4 +221,4 @@ Przejdź do Providers → kliknij providera → kliknij **Disconnect**. - **[Auto-Combo Guide](./AUTO-COMBO-GUIDE.md)** — pozwól OmniRoute wybrać najlepsze AI za Ciebie - **[Free Tiers Guide](./FREE-TIERS-GUIDE.md)** — darmowe AI bez karty kredytowej - **[Troubleshooting](./TROUBLESHOOTING.md)** — rozwiązywanie typowych problemów -- **[Provider Reference](../reference/PROVIDER_REFERENCE.md)** — pełna lista 327 wpisów providerów +- **[Provider Reference](../reference/PROVIDER_REFERENCE.md)** — pełna lista 329 wpisów providerów diff --git a/docs/i18n/pl/docs/guides/FREE_PROVIDER_RANKINGS.md b/docs/i18n/pl/docs/guides/FREE_PROVIDER_RANKINGS.md index 79de312d7e..7b84689cd8 100644 --- a/docs/i18n/pl/docs/guides/FREE_PROVIDER_RANKINGS.md +++ b/docs/i18n/pl/docs/guides/FREE_PROVIDER_RANKINGS.md @@ -15,7 +15,7 @@ lastUpdated: 2026-06-28 ## Czym to jest -OmniRoute agreguje 327 wpisów katalogu providerów, z których wiele udostępnia **darmowy tier** (no-auth, +OmniRoute agreguje 329 wpisów katalogu providerów, z których wiele udostępnia **darmowy tier** (no-auth, darmowy OAuth albo darmowy klucz API — zobacz [Przewodnik Free Tiers](../getting-started/FREE-TIERS-GUIDE.md) oraz pełny [katalog Free Tiers](../reference/FREE_TIERS.md)). Haczyk: darmowi providerzy różnią się diff --git a/docs/i18n/pl/llm.txt b/docs/i18n/pl/llm.txt index 74b0d57777..4392aff90a 100644 --- a/docs/i18n/pl/llm.txt +++ b/docs/i18n/pl/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/pt-BR/CLAUDE.md b/docs/i18n/pt-BR/CLAUDE.md index ff2cd4eb75..6ed2a4ba61 100644 --- a/docs/i18n/pt-BR/CLAUDE.md +++ b/docs/i18n/pt-BR/CLAUDE.md @@ -39,7 +39,7 @@ Para a matriz completa de testes, veja `CONTRIBUTING.md` → "Executando Testes" ## Projeto em Resumo -**OmniRoute** — proxy/router de IA unificado. Um endpoint, 327 provedores de LLM, fallback automático. +**OmniRoute** — proxy/router de IA unificado. Um endpoint, 329 provedores de LLM, fallback automático. | Camada | Localização | Propósito | | ---------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/pt-BR/CONTRIBUTING.md b/docs/i18n/pt-BR/CONTRIBUTING.md index 6f9f69abba..25343079ab 100644 --- a/docs/i18n/pt-BR/CONTRIBUTING.md +++ b/docs/i18n/pt-BR/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/pt-BR/README.md b/docs/i18n/pt-BR/README.md index 98bcc1abf8..fbba7dc0fd 100644 --- a/docs/i18n/pt-BR/README.md +++ b/docs/i18n/pt-BR/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md b/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md index c30997d5a3..eae4bcd5a2 100644 --- a/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md @@ -25,7 +25,7 @@ Ele fornece um único endpoint compatível com OpenAI (`/v1/*`) e roteia o tráf Capacidades principais: -- Superfície de API compatível com OpenAI para CLI/ferramentas (327 entradas de provedores, 89 módulos de implementação de executores) +- Superfície de API compatível com OpenAI para CLI/ferramentas (329 entradas de provedores, 89 módulos de implementação de executores) - Tradução de solicitação/resposta entre formatos de provedores - Fallback de combinação de modelos (sequência de múltiplos modelos) - Passos de combinação estruturados (`provedor + modelo + conexão`) com ordenação em tempo de execução por `compositeTiers` @@ -914,7 +914,7 @@ Todos os outros provedores (incluindo nós compatíveis personalizados) usam o ` ## Matriz de Compatibilidade de Provedores -> **Nota:** A matriz abaixo é uma amostra representativa das 327 entradas de provedores registradas no +> **Nota:** A matriz abaixo é uma amostra representativa das 329 entradas de provedores registradas no > OmniRoute v3.8.0. Para a lista canônica e continuamente atualizada, consulte > [`docs/reference/PROVIDER_REFERENCE.md`](../reference/PROVIDER_REFERENCE.md) (gerada automaticamente) ou a fonte > de verdade em `src/shared/constants/providers.ts` (validada pelo Zod na carga). diff --git a/docs/i18n/pt-BR/llm.txt b/docs/i18n/pt-BR/llm.txt index 77d923f97d..c9063a4283 100644 --- a/docs/i18n/pt-BR/llm.txt +++ b/docs/i18n/pt-BR/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/pt/CLAUDE.md b/docs/i18n/pt/CLAUDE.md index ac447e0701..9d15e62707 100644 --- a/docs/i18n/pt/CLAUDE.md +++ b/docs/i18n/pt/CLAUDE.md @@ -39,7 +39,7 @@ Para a matriz de testes completa, consulte `CONTRIBUTING.md` → "Execução de ## Projeto em Resumo -**OmniRoute** — proxy/router de IA unificado. Um endpoint, 327 fornecedores de LLM, fallback automático. +**OmniRoute** — proxy/router de IA unificado. Um endpoint, 329 fornecedores de LLM, fallback automático. | Camada | Localização | Propósito | | ---------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/pt/CONTRIBUTING.md b/docs/i18n/pt/CONTRIBUTING.md index 082f56ef4b..f5f688d4f1 100644 --- a/docs/i18n/pt/CONTRIBUTING.md +++ b/docs/i18n/pt/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/pt/README.md b/docs/i18n/pt/README.md index 396ac585b1..04772c66cf 100644 --- a/docs/i18n/pt/README.md +++ b/docs/i18n/pt/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/pt/docs/architecture/ARCHITECTURE.md b/docs/i18n/pt/docs/architecture/ARCHITECTURE.md index 26e7ecf9e5..e2f1fbc2c4 100644 --- a/docs/i18n/pt/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pt/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/pt/llm.txt b/docs/i18n/pt/llm.txt index 5475eb378d..3de364e82a 100644 --- a/docs/i18n/pt/llm.txt +++ b/docs/i18n/pt/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ro/CLAUDE.md b/docs/i18n/ro/CLAUDE.md index 4480e7f006..ffab85181b 100644 --- a/docs/i18n/ro/CLAUDE.md +++ b/docs/i18n/ro/CLAUDE.md @@ -39,7 +39,7 @@ Pentru matricea completă a testelor, consultați `CONTRIBUTING.md` → "Rularea ## Proiect pe scurt -**OmniRoute** — proxy/router AI unificat. Un endpoint, 327 furnizori LLM, fallback automat. +**OmniRoute** — proxy/router AI unificat. Un endpoint, 329 furnizori LLM, fallback automat. | Strat | Locație | Scop | | ---------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ro/CONTRIBUTING.md b/docs/i18n/ro/CONTRIBUTING.md index 5380c003cb..33d17bf2b0 100644 --- a/docs/i18n/ro/CONTRIBUTING.md +++ b/docs/i18n/ro/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ro/README.md b/docs/i18n/ro/README.md index ca59a639d1..d64980ec47 100644 --- a/docs/i18n/ro/README.md +++ b/docs/i18n/ro/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ro/docs/architecture/ARCHITECTURE.md b/docs/i18n/ro/docs/architecture/ARCHITECTURE.md index 9129768168..0a1524bd74 100644 --- a/docs/i18n/ro/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ro/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ro/llm.txt b/docs/i18n/ro/llm.txt index 275dd40af2..7c26b47287 100644 --- a/docs/i18n/ro/llm.txt +++ b/docs/i18n/ro/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ru/CLAUDE.md b/docs/i18n/ru/CLAUDE.md index e1e2cbdd75..e29cdf672a 100644 --- a/docs/i18n/ru/CLAUDE.md +++ b/docs/i18n/ru/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## Проект в общем -**OmniRoute** — унифицированный AI прокси/маршрутизатор. Один конечный пункт, 327 поставщиков LLM, автоматическое резервирование. +**OmniRoute** — унифицированный AI прокси/маршрутизатор. Один конечный пункт, 329 поставщиков LLM, автоматическое резервирование. | Уровень | Местоположение | Цель | | -------------- | ----------------------- | -------------------------------------------------------------------------- | diff --git a/docs/i18n/ru/CONTRIBUTING.md b/docs/i18n/ru/CONTRIBUTING.md index 55c1a03e54..a8f1ea180f 100644 --- a/docs/i18n/ru/CONTRIBUTING.md +++ b/docs/i18n/ru/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ru/README.md b/docs/i18n/ru/README.md index acadb5494a..d21aaf4f56 100644 --- a/docs/i18n/ru/README.md +++ b/docs/i18n/ru/README.md @@ -12,7 +12,7 @@ # 🚀 OmniRoute — Бесплатный AI-шлюз -### Код без остановок. Один endpoint — **327 провайдеров**, **154 free/no-auth**. +### Код без остановок. Один endpoint — **329 провайдеров**, **155 free/no-auth**. **Claude Code, Codex, Cursor, Cline, Copilot и Antigravity → бесплатные Claude / GPT / Gemini с автопереключением.** @@ -26,8 +26,8 @@
-[![327 AI Providers](https://img.shields.io/badge/327-AI_Providers-6C5CE7?style=for-the-badge)](#-327-ai-провайдеров--154-free-no-auth) -[![154 Free/No-Auth](https://img.shields.io/badge/154-Free%2FNo--Auth-00B894?style=for-the-badge)](#-327-ai-провайдеров--154-free-no-auth) +[![329 AI Providers](https://img.shields.io/badge/329-AI_Providers-6C5CE7?style=for-the-badge)](#-329-ai-провайдеров--155-free-no-auth) +[![155 Free/No-Auth](https://img.shields.io/badge/155-Free%2FNo--Auth-00B894?style=for-the-badge)](#-329-ai-провайдеров--155-free-no-auth) [![1.53B Free Tokens/mo](https://img.shields.io/badge/1.53B-Free_Tokens%2Fmo-00B894?style=for-the-badge)](../../reference/FREE_TIERS.md) [![Token Savings](https://img.shields.io/badge/up_to_95%25-Token_Savings-E17055?style=for-the-badge)](#️-экономьте-1595-токенов--автоматически) [![19 Strategies](https://img.shields.io/badge/19-Routing_Strategies-0984E3?style=for-the-badge)](#-комбо--главная-фича) @@ -61,7 +61,7 @@
-[**🚀 Быстрый старт**](#-быстрый-старт) • [**🎯 Комбо**](#-комбо--главная-фича) • [**🌐 Провайдеры**](#-327-ai-провайдеров--154-free-no-auth) • [**🔌 CLI и MCP**](#-полный-cli--a2a-и-mcp) • [**🗜️ Сжатие**](#️-экономьте-1595-токенов--автоматически) • [**🌍 Сайт**](https://omniroute.online) +[**🚀 Быстрый старт**](#-быстрый-старт) • [**🎯 Комбо**](#-комбо--главная-фича) • [**🌐 Провайдеры**](#-329-ai-провайдеров--155-free-no-auth) • [**🔌 CLI и MCP**](#-полный-cli--a2a-и-mcp) • [**🗜️ Сжатие**](#️-экономьте-1595-токенов--автоматически) • [**🌍 Сайт**](https://omniroute.online) [💥 Обещание](#-обещание) • [🤔 Зачем](#-зачем-omniroute) • [🏆 Чем отличается](#-чем-omniroute-отличается) • [🤖 Совместимые CLI](#-совместимые-cli-и-агенты) • [🖥️ Где запускать](#️-где-запускается-omniroute--везде) • [🔒 Приватность](#-приватно-и-local-first) • [🎬 В деле](#-omniroute-в-деле) • [📚 Дальше](#-узнать-больше) • [📧 Поддержка](#-поддержка-и-сообщество) @@ -75,7 +75,7 @@
-> Собирать free-tier вручную — боль: десятки SDK, лимиты и непонятный остаток. OmniRoute показывает **154 записи каталога с меткой free/no-auth**; строго рассчитанный бюджет охватывает **43 пула / 522 бюджетные записи моделей** и отображается live на `/dashboard/free-tiers`. +> Собирать free-tier вручную — боль: десятки SDK, лимиты и непонятный остаток. OmniRoute показывает **155 записи каталога с меткой free/no-auth**; строго рассчитанный бюджет охватывает **43 пула / 522 бюджетные записи моделей** и отображается live на `/dashboard/free-tiers`. > > - **~1.53B free tokens / мес** (steady) — в первый месяц до **~2.15B** с signup-кредитами. > - **Честная математика** — каждый shared pool считается **один раз**. «Если крутить rate limit 24/7» выйдет ~10B — такие цифры мы **не** публикуем. @@ -92,13 +92,13 @@ -> Один endpoint. **327 провайдеров.** Код не останавливается — OmniRoute сам выбирает самый дешёвый рабочий вариант. +> Один endpoint. **329 провайдеров.** Код не останавливается — OmniRoute сам выбирает самый дешёвый рабочий вариант. - + @@ -240,8 +240,8 @@ Combo: "always-on" strategy: priority | Фича | OmniRoute | Другие роутеры | | ------------------------- | -------------------------------------- | -------------- | -| 🌐 Провайдеры | **327** | 20–100 | -| 🆓 Free/no-auth | **154 записей каталога** | 1–5 | +| 🌐 Провайдеры | **329** | 20–100 | +| 🆓 Free/no-auth | **155 записей каталога** | 1–5 | | 🔀 Стратегии | **19** | 1–3 | | 🗜️ Сжатие токенов | **RTK + Caveman (15–95%)** | Нет / 20–40% | | 🧰 MCP server | **107 tools, 3 transports, 32 scopes** | Редко | @@ -304,11 +304,11 @@ Combo: "always-on" strategy: priority
-# 🌐 327 AI-провайдеров — 154 free/no-auth +# 🌐 329 AI-провайдеров — 155 free/no-auth
-> Самый полный каталог среди open-source роутеров: **327 провайдеров**, включая **154 записи free/no-auth**. +> Самый полный каталог среди open-source роутеров: **329 провайдеров**, включая **155 записи free/no-auth**. ### 🆓 Documented free access — $0 where listed, без карты diff --git a/docs/i18n/ru/docs/architecture/ARCHITECTURE.md b/docs/i18n/ru/docs/architecture/ARCHITECTURE.md index abe2f0035e..0592f032f0 100644 --- a/docs/i18n/ru/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ru/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ru/llm.txt b/docs/i18n/ru/llm.txt index 9792217667..3d541c6369 100644 --- a/docs/i18n/ru/llm.txt +++ b/docs/i18n/ru/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/sk/CLAUDE.md b/docs/i18n/sk/CLAUDE.md index 862066bc09..1bf1fd42ce 100644 --- a/docs/i18n/sk/CLAUDE.md +++ b/docs/i18n/sk/CLAUDE.md @@ -39,7 +39,7 @@ Pre úplnú testovaciu maticu pozrite `CONTRIBUTING.md` → "Spúšťanie testov ## Projekt na prvý pohľad -**OmniRoute** — unified AI proxy/router. Jeden koncový bod, 327 poskytovateľov LLM, automatické zálohovanie. +**OmniRoute** — unified AI proxy/router. Jeden koncový bod, 329 poskytovateľov LLM, automatické zálohovanie. | Vrstva | Umiestnenie | Účel | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/sk/CONTRIBUTING.md b/docs/i18n/sk/CONTRIBUTING.md index 3720ea92e6..f4d3ee7fb5 100644 --- a/docs/i18n/sk/CONTRIBUTING.md +++ b/docs/i18n/sk/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/sk/README.md b/docs/i18n/sk/README.md index 76cddb725f..4c1304afe1 100644 --- a/docs/i18n/sk/README.md +++ b/docs/i18n/sk/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/sk/docs/architecture/ARCHITECTURE.md b/docs/i18n/sk/docs/architecture/ARCHITECTURE.md index 6d685a061a..9d57b1f763 100644 --- a/docs/i18n/sk/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sk/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/sk/llm.txt b/docs/i18n/sk/llm.txt index 9b9f2af2a9..5350ebda34 100644 --- a/docs/i18n/sk/llm.txt +++ b/docs/i18n/sk/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/sv/CLAUDE.md b/docs/i18n/sv/CLAUDE.md index b4d3c49585..d514ba778a 100644 --- a/docs/i18n/sv/CLAUDE.md +++ b/docs/i18n/sv/CLAUDE.md @@ -39,7 +39,7 @@ För full testmatris, se `CONTRIBUTING.md` → "Köra Tester". För djup arkitek ## Projekt i Korthet -**OmniRoute** — enad AI-proxy/router. En slutpunkt, 327 LLM-leverantörer, automatisk återkoppling. +**OmniRoute** — enad AI-proxy/router. En slutpunkt, 329 LLM-leverantörer, automatisk återkoppling. | Lager | Plats | Syfte | | ------------ | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/sv/CONTRIBUTING.md b/docs/i18n/sv/CONTRIBUTING.md index b4603ad64b..d27479ccee 100644 --- a/docs/i18n/sv/CONTRIBUTING.md +++ b/docs/i18n/sv/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/sv/README.md b/docs/i18n/sv/README.md index 4fcf508918..d5282ba80f 100644 --- a/docs/i18n/sv/README.md +++ b/docs/i18n/sv/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/sv/docs/architecture/ARCHITECTURE.md b/docs/i18n/sv/docs/architecture/ARCHITECTURE.md index e6dccadc71..e64ee63af9 100644 --- a/docs/i18n/sv/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sv/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/sv/llm.txt b/docs/i18n/sv/llm.txt index 9ef82b3348..a3a0bab3b4 100644 --- a/docs/i18n/sv/llm.txt +++ b/docs/i18n/sv/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/sw/CLAUDE.md b/docs/i18n/sw/CLAUDE.md index d5bdb8a2d1..705b457a72 100644 --- a/docs/i18n/sw/CLAUDE.md +++ b/docs/i18n/sw/CLAUDE.md @@ -39,7 +39,7 @@ Kwa matrix kamili ya majaribio, angalia `CONTRIBUTING.md` → "Kuendesha Majarib ## Mradi kwa Muonekano -**OmniRoute** — proxy/router ya AI iliyounganishwa. Kipengele kimoja, watoa huduma 327, auto-fallback. +**OmniRoute** — proxy/router ya AI iliyounganishwa. Kipengele kimoja, watoa huduma 329, auto-fallback. | Tabaka | Mahali | Kusudi | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/sw/CONTRIBUTING.md b/docs/i18n/sw/CONTRIBUTING.md index b0c8f12aa0..f036c1ac6a 100644 --- a/docs/i18n/sw/CONTRIBUTING.md +++ b/docs/i18n/sw/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/sw/README.md b/docs/i18n/sw/README.md index 042bc088a0..7c43a8e7ca 100644 --- a/docs/i18n/sw/README.md +++ b/docs/i18n/sw/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/sw/docs/architecture/ARCHITECTURE.md b/docs/i18n/sw/docs/architecture/ARCHITECTURE.md index dbb29fb92c..e105a47f12 100644 --- a/docs/i18n/sw/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sw/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/sw/llm.txt b/docs/i18n/sw/llm.txt index a8cc834dcc..7dd7a930b9 100644 --- a/docs/i18n/sw/llm.txt +++ b/docs/i18n/sw/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ta/CLAUDE.md b/docs/i18n/ta/CLAUDE.md index 5803b67958..498b6d0e61 100644 --- a/docs/i18n/ta/CLAUDE.md +++ b/docs/i18n/ta/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## திட்டம் ஒரு பார்வையில் -**OmniRoute** — ஒருங்கிணைந்த AI பிராக்சி/ரூட்டர். ஒரு முடிவிடம், 327 LLM வழங்குநர்கள், தானாகவே fallback. +**OmniRoute** — ஒருங்கிணைந்த AI பிராக்சி/ரூட்டர். ஒரு முடிவிடம், 329 LLM வழங்குநர்கள், தானாகவே fallback. | அடுக்கு | இடம் | நோக்கம் | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ta/CONTRIBUTING.md b/docs/i18n/ta/CONTRIBUTING.md index 20b46b9cec..4360a8bc6a 100644 --- a/docs/i18n/ta/CONTRIBUTING.md +++ b/docs/i18n/ta/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ta/README.md b/docs/i18n/ta/README.md index 43fe77f2e0..0781907165 100644 --- a/docs/i18n/ta/README.md +++ b/docs/i18n/ta/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ta/docs/architecture/ARCHITECTURE.md b/docs/i18n/ta/docs/architecture/ARCHITECTURE.md index 2f34bf837f..f9f7e2dccc 100644 --- a/docs/i18n/ta/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ta/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ta/llm.txt b/docs/i18n/ta/llm.txt index c38dbf28d2..0769f40cd9 100644 --- a/docs/i18n/ta/llm.txt +++ b/docs/i18n/ta/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/te/CLAUDE.md b/docs/i18n/te/CLAUDE.md index cb146741f5..0683cfd03f 100644 --- a/docs/i18n/te/CLAUDE.md +++ b/docs/i18n/te/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## ప్రాజెక్ట్ ఒక చూపులో -**OmniRoute** — ఏకీకృత AI ప్రాక్సీ/రౌటర్. ఒక ఎండ్‌పాయింట్, 327 LLM ప్రొవైడర్లు, ఆటో-ఫాల్బ్యాక్. +**OmniRoute** — ఏకీకృత AI ప్రాక్సీ/రౌటర్. ఒక ఎండ్‌పాయింట్, 329 LLM ప్రొవైడర్లు, ఆటో-ఫాల్బ్యాక్. | పొర | స్థానం | ఉద్దేశ్యం | | ---------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/te/CONTRIBUTING.md b/docs/i18n/te/CONTRIBUTING.md index 1adc54f2d9..78df0d32e5 100644 --- a/docs/i18n/te/CONTRIBUTING.md +++ b/docs/i18n/te/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/te/README.md b/docs/i18n/te/README.md index 3f3940ba49..a33dfe058d 100644 --- a/docs/i18n/te/README.md +++ b/docs/i18n/te/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/te/docs/architecture/ARCHITECTURE.md b/docs/i18n/te/docs/architecture/ARCHITECTURE.md index 664187d5b7..c1eddd3139 100644 --- a/docs/i18n/te/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/te/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/te/llm.txt b/docs/i18n/te/llm.txt index 1a33f98a3d..0255f4de35 100644 --- a/docs/i18n/te/llm.txt +++ b/docs/i18n/te/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/th/CLAUDE.md b/docs/i18n/th/CLAUDE.md index 8ee4b22dae..f1c50b001f 100644 --- a/docs/i18n/th/CLAUDE.md +++ b/docs/i18n/th/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## โครงการโดยรวม -**OmniRoute** — โปรเซสเซอร์/เราเตอร์ AI ที่รวมเป็นหนึ่ง จุดสิ้นสุดเดียว, ผู้ให้บริการ LLM 327 ราย, การสำรองข้อมูลอัตโนมัติ +**OmniRoute** — โปรเซสเซอร์/เราเตอร์ AI ที่รวมเป็นหนึ่ง จุดสิ้นสุดเดียว, ผู้ให้บริการ LLM 329 ราย, การสำรองข้อมูลอัตโนมัติ | เลเยอร์ | ตำแหน่ง | วัตถุประสงค์ | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/th/CONTRIBUTING.md b/docs/i18n/th/CONTRIBUTING.md index b7fe646dbb..9c54627d1a 100644 --- a/docs/i18n/th/CONTRIBUTING.md +++ b/docs/i18n/th/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/th/README.md b/docs/i18n/th/README.md index 524a02224b..2fa9cff042 100644 --- a/docs/i18n/th/README.md +++ b/docs/i18n/th/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/th/docs/architecture/ARCHITECTURE.md b/docs/i18n/th/docs/architecture/ARCHITECTURE.md index 6e2d3e5531..e01fda33fb 100644 --- a/docs/i18n/th/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/th/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/th/llm.txt b/docs/i18n/th/llm.txt index e7902e4b96..19b139c772 100644 --- a/docs/i18n/th/llm.txt +++ b/docs/i18n/th/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/tr/CLAUDE.md b/docs/i18n/tr/CLAUDE.md index 6df381d80b..a962ff3ec9 100644 --- a/docs/i18n/tr/CLAUDE.md +++ b/docs/i18n/tr/CLAUDE.md @@ -39,7 +39,7 @@ Tam test matrisini görmek için `CONTRIBUTING.md` → "Testleri Çalıştırma" ## Projeye Genel Bakış -**OmniRoute** — birleşik AI proxy/yönlendirici. Tek uç nokta, 327 LLM sağlayıcısı, otomatik geri dönüş. +**OmniRoute** — birleşik AI proxy/yönlendirici. Tek uç nokta, 329 LLM sağlayıcısı, otomatik geri dönüş. | Katman | Konum | Amaç | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/tr/CONTRIBUTING.md b/docs/i18n/tr/CONTRIBUTING.md index 5ee65158ad..a260090457 100644 --- a/docs/i18n/tr/CONTRIBUTING.md +++ b/docs/i18n/tr/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/tr/README.md b/docs/i18n/tr/README.md index 557d961c5c..32611a22bf 100644 --- a/docs/i18n/tr/README.md +++ b/docs/i18n/tr/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/tr/docs/architecture/ARCHITECTURE.md b/docs/i18n/tr/docs/architecture/ARCHITECTURE.md index 05c9403def..e78326919f 100644 --- a/docs/i18n/tr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/tr/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/tr/llm.txt b/docs/i18n/tr/llm.txt index d74fbd3539..1a7162063e 100644 --- a/docs/i18n/tr/llm.txt +++ b/docs/i18n/tr/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/uk-UA/CLAUDE.md b/docs/i18n/uk-UA/CLAUDE.md index c3db898d17..beb221b53f 100644 --- a/docs/i18n/uk-UA/CLAUDE.md +++ b/docs/i18n/uk-UA/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## Проект на один погляд -**OmniRoute** — єдиний AI проксі/маршрутизатор. Один кінцевий пункт, 327 постачальників LLM, автоматичне резервування. +**OmniRoute** — єдиний AI проксі/маршрутизатор. Один кінцевий пункт, 329 постачальників LLM, автоматичне резервування. | Шар | Розташування | Призначення | | -------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/uk-UA/CONTRIBUTING.md b/docs/i18n/uk-UA/CONTRIBUTING.md index 2f6ea10133..eb01d07d20 100644 --- a/docs/i18n/uk-UA/CONTRIBUTING.md +++ b/docs/i18n/uk-UA/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/uk-UA/README.md b/docs/i18n/uk-UA/README.md index e948cb157d..578068686c 100644 --- a/docs/i18n/uk-UA/README.md +++ b/docs/i18n/uk-UA/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md b/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md index adcfe59722..a17560e9a4 100644 --- a/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/uk-UA/llm.txt b/docs/i18n/uk-UA/llm.txt index 56cbb5eb0d..30196bea40 100644 --- a/docs/i18n/uk-UA/llm.txt +++ b/docs/i18n/uk-UA/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/ur/CLAUDE.md b/docs/i18n/ur/CLAUDE.md index 525b902bc1..fcea77e513 100644 --- a/docs/i18n/ur/CLAUDE.md +++ b/docs/i18n/ur/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## پروجیکٹ کا ایک نظر میں جائزہ -**OmniRoute** — متحد AI پروکسی/روٹر۔ ایک اینڈپوائنٹ، 327 LLM فراہم کنندگان، خودکار فیل بیک۔ +**OmniRoute** — متحد AI پروکسی/روٹر۔ ایک اینڈپوائنٹ، 329 LLM فراہم کنندگان، خودکار فیل بیک۔ | پرت | مقام | مقصد | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/ur/CONTRIBUTING.md b/docs/i18n/ur/CONTRIBUTING.md index 275d0a3896..b11124c964 100644 --- a/docs/i18n/ur/CONTRIBUTING.md +++ b/docs/i18n/ur/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/ur/README.md b/docs/i18n/ur/README.md index 18760b346e..7948ce185e 100644 --- a/docs/i18n/ur/README.md +++ b/docs/i18n/ur/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/ur/docs/architecture/ARCHITECTURE.md b/docs/i18n/ur/docs/architecture/ARCHITECTURE.md index c19b879b25..5cf47b7acf 100644 --- a/docs/i18n/ur/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ur/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/ur/llm.txt b/docs/i18n/ur/llm.txt index ce34df0b8f..76573fbca8 100644 --- a/docs/i18n/ur/llm.txt +++ b/docs/i18n/ur/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/vi/CLAUDE.md b/docs/i18n/vi/CLAUDE.md index f32473f86b..cbf8f25187 100644 --- a/docs/i18n/vi/CLAUDE.md +++ b/docs/i18n/vi/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## Dự án tổng quan -**OmniRoute** — proxy/router AI thống nhất. Một điểm cuối, 327 nhà cung cấp LLM, tự động chuyển tiếp. +**OmniRoute** — proxy/router AI thống nhất. Một điểm cuối, 329 nhà cung cấp LLM, tự động chuyển tiếp. | Lớp | Vị trí | Mục đích | | ------------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/vi/CONTRIBUTING.md b/docs/i18n/vi/CONTRIBUTING.md index f66e321756..0380c05445 100644 --- a/docs/i18n/vi/CONTRIBUTING.md +++ b/docs/i18n/vi/CONTRIBUTING.md @@ -212,7 +212,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM proxy (cert, DNS, target routing) ├── shared/ │ ├── components/ # React components (.tsx) -│ ├── constants/ # Provider definitions (327), MCP scopes, routing strategies +│ ├── constants/ # Provider definitions (329), MCP scopes, routing strategies │ ├── utils/ # Circuit breaker, sanitizer, auth helpers │ └── validation/ # Zod v4 schemas └── sse/ # SSE proxy pipeline diff --git a/docs/i18n/vi/README.md b/docs/i18n/vi/README.md index de521ec211..85d8d04de2 100644 --- a/docs/i18n/vi/README.md +++ b/docs/i18n/vi/README.md @@ -6,7 +6,7 @@ ### Keep coding through provider limits. Smart routing to free-access and low-cost AI models with automatic fallback. -_Your universal API proxy — one endpoint, 327 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ +_Your universal API proxy — one endpoint, 329 provider catalog entries, resilient fallback subject to upstream availability. Includes **MCP Server (107 tools, 32 scopes)**, **A2A Protocol**, **Memory/Skills Systems** & **Electron Desktop App**._ **Chat Completions • Embeddings • Image Generation • Video • Music • Audio • Reranking • **Web Search** • MCP Server • A2A Protocol • 100% TypeScript** @@ -252,7 +252,7 @@ OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If **How OmniRoute solves it:** -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 327 provider catalog entries +- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 329 provider catalog entries - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE @@ -336,7 +336,7 @@ AI providers can become unstable, return 5xx errors, or hit temporary rate limit - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 327 provider catalog entries +- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 329 provider catalog entries diff --git a/docs/i18n/vi/docs/architecture/ARCHITECTURE.md b/docs/i18n/vi/docs/architecture/ARCHITECTURE.md index cc2c94f0fe..314b934a56 100644 --- a/docs/i18n/vi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/vi/docs/architecture/ARCHITECTURE.md @@ -13,7 +13,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (327 provider catalog entries, 89 executor implementation modules) +- OpenAI-compatible API surface for CLI/tools (329 provider catalog entries, 89 executor implementation modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` diff --git a/docs/i18n/vi/llm.txt b/docs/i18n/vi/llm.txt index 3febaa167d..b121fddb50 100644 --- a/docs/i18n/vi/llm.txt +++ b/docs/i18n/vi/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/zh-CN/CLAUDE.md b/docs/i18n/zh-CN/CLAUDE.md index fe8d6a3854..f1f6ee41e9 100644 --- a/docs/i18n/zh-CN/CLAUDE.md +++ b/docs/i18n/zh-CN/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## 项目概览 -**OmniRoute** — 统一的 AI 代理/路由。一个端点接入 327 个服务商目录项,并在上游可用时自动回退。 +**OmniRoute** — 统一的 AI 代理/路由。一个端点接入 329 个服务商目录项,并在上游可用时自动回退。 | 层级 | 位置 | 用途 | | ---------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/zh-CN/CONTRIBUTING.md b/docs/i18n/zh-CN/CONTRIBUTING.md index c60d0e8827..cc9239f410 100644 --- a/docs/i18n/zh-CN/CONTRIBUTING.md +++ b/docs/i18n/zh-CN/CONTRIBUTING.md @@ -251,7 +251,7 @@ src/ # TypeScript(.ts / .tsx) ├── mitm/ # MITM 代理(证书、DNS、目标路由) ├── shared/ │ ├── components/ # React 组件(.tsx) -│ ├── constants/ # 服务商定义(327 个)、MCP 权限域、19 种路由策略 +│ ├── constants/ # 服务商定义(329 个)、MCP 权限域、19 种路由策略 │ ├── utils/ # 熔断器、清洗器、认证辅助函数 │ └── validation/ # Zod v4 Schema └── sse/ # SSE 代理流水线 diff --git a/docs/i18n/zh-CN/README.md b/docs/i18n/zh-CN/README.md index cf9d2edcec..5d2ffef4fc 100644 --- a/docs/i18n/zh-CN/README.md +++ b/docs/i18n/zh-CN/README.md @@ -12,7 +12,7 @@ # 🚀 OmniRoute — 免费 AI 网关 -### 面对服务商限额仍可继续编码。一个端点连接 **327 个服务商目录项**,其中 **154 个标记为免费/免验证**。 +### 面对服务商限额仍可继续编码。一个端点连接 **329 个服务商目录项**,其中 **155 个标记为免费/免验证**。 **将 Claude Code、Codex、Cursor、Cline、Copilot 和 Antigravity 接入免费的 Claude / GPT / Gemini。自动容灾,无感切换。** @@ -26,8 +26,8 @@
-[![327 AI Providers](https://img.shields.io/badge/327-AI_Providers-6C5CE7?style=for-the-badge)](#-327-ai-providers--154-freeno-auth) -[![154 Free/No-Auth](https://img.shields.io/badge/154-Free%2FNo--Auth-00B894?style=for-the-badge)](#-327-ai-providers--154-freeno-auth) +[![329 AI Providers](https://img.shields.io/badge/329-AI_Providers-6C5CE7?style=for-the-badge)](#-329-ai-providers--155-freeno-auth) +[![155 Free/No-Auth](https://img.shields.io/badge/155-Free%2FNo--Auth-00B894?style=for-the-badge)](#-329-ai-providers--155-freeno-auth) [![1.53B Free Tokens/mo](https://img.shields.io/badge/1.53B-Free_Tokens%2Fmo-00B894?style=for-the-badge)](../../reference/FREE_TIERS.md) [![Token Savings](https://img.shields.io/badge/up_to_95%25-Token_Savings-E17055?style=for-the-badge)](#%EF%B8%8F-save-1595-tokens--automatically) [![19 Strategies](https://img.shields.io/badge/19-Routing_Strategies-0984E3?style=for-the-badge)](#-combos--the-flagship) @@ -66,7 +66,7 @@
-[**🚀 快速开始**](#-quick-start) • [**🎯 Combo**](#-combos--the-flagship) • [**🌐 服务商**](#-327-ai-providers--154-freeno-auth) • [**🔌 CLI 与 MCP**](#-full-cli--a2a--mcp) • [**🗜️ 压缩**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 官网**](https://omniroute.online) +[**🚀 快速开始**](#-quick-start) • [**🎯 Combo**](#-combos--the-flagship) • [**🌐 服务商**](#-329-ai-providers--155-freeno-auth) • [**🔌 CLI 与 MCP**](#-full-cli--a2a--mcp) • [**🗜️ 压缩**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 官网**](https://omniroute.online) [💥 我们的承诺](#-the-promise) • [🤔 为什么选择 OmniRoute](#-why-omniroute) • [🏆 核心优势](#-what-sets-omniroute-apart) • [🤖 兼容的编程工具](#-compatible-clis--coding-agents) • [🖥️ 运行平台](#%EF%B8%8F-where-omniroute-runs--anywhere) • [🔒 隐私优先](#-private--local-first) • [🎬 实机演示](#-omniroute-in-action) • [📚 探索更多](#-explore-more) • [📧 支持](#-support--community) @@ -125,7 +125,7 @@ -> 手动凑各家免费额度有多痛苦 — 数十套 SDK、数十个速率限制,根本搞不清到底还剩多少。OmniRoute 当前公开 **154 个标记为免费/免验证的目录项**;其中严格量化的预算覆盖 **43 个服务商池 / 522 个模型预算项**,并在控制台实时展示 (`/dashboard/free-tiers`)。 +> 手动凑各家免费额度有多痛苦 — 数十套 SDK、数十个速率限制,根本搞不清到底还剩多少。OmniRoute 当前公开 **155 个标记为免费/免验证的目录项**;其中严格量化的预算覆盖 **43 个服务商池 / 522 个模型预算项**,并在控制台实时展示 (`/dashboard/free-tiers`)。 > > - **约 1.53B 免费 Token / 月**(循环值) — 计入一次性注册奖励后,首月约 **2.15B**。 > - **去重统计,诚实透明** — 每个共享免费池只计**一次**,标题数字不被速率上限注水。若以全天候速率上限累算会得出 ~10B 的虚假数据,我们从不发布此类数字。 @@ -144,13 +144,13 @@ -> 一个端点。**327 个服务商目录项。** OmniRoute 尝试选择最便宜且符合条件的可用路由。 +> 一个端点。**329 个服务商目录项。** OmniRoute 尝试选择最便宜且符合条件的可用路由。
🛡️ Устойчивый fallback
При сбое upstream или исчерпании квоты OmniRoute пробует следующий допустимый маршрут; доступность зависит от провайдеров.
💸 До 95% токенов
RTK + Caveman stacked: 15–95% на сжимаемом (в tool-heavy сессиях в среднем ~89%).
🆓 Старт с $0
154 записей каталога помечены free/no-auth; условия и лимиты зависят от провайдера.
🆓 Старт с $0
155 записей каталога помечены free/no-auth; условия и лимиты зависят от провайдера.
🔌 Все инструменты
26+ coding agents — Claude Code, Codex, Cursor, Cline, Copilot, Antigravity — один конфиг.
- + @@ -274,8 +274,8 @@ Combo: "always-on" 策略: priority | 功能 | OmniRoute | 其他路由方案 | | ------------------------------ | ---------------------------------------------------------------- | ------------ | -| 🌐 服务商数量 | **327 个目录项** | 20–100 | -| 🆓 免费/免验证 | **154 个目录项** | 1–5 | +| 🌐 服务商数量 | **329 个目录项** | 20–100 | +| 🆓 免费/免验证 | **155 个目录项** | 1–5 | | 🔀 路由策略 | **19 种**(优先级、加权、成本优先、缓存优化、上下文中继、融合…) | 1–3 | | 🗜️ Token 压缩 | **RTK + Caveman 级联(15–95%)** | 无 / 20–40% | | 🧰 内置 MCP 服务器 | **107 个工具、3 种传输、32 个权限域** | 少见 | @@ -308,7 +308,7 @@ Combo: "always-on" 策略: priority - **💸 全方位成本遥测** — 每个端点上的 `X-OmniRoute-*` 成本/用量响应头(含媒体端点)、非 Token 成本引擎、缓存命中 `X-OmniRoute-Cost-Saved` 响应头,以及每密钥美元消费配额。→ [API 参考](../../reference/API_REFERENCE.md) - **🧠 完全可控的记忆系统** — 可选 int8 向量量化(Qdrant + sqlite-vec)、默认关闭记忆、每请求 `x-omniroute-no-memory` 响应头。→ [记忆系统](../../frameworks/MEMORY.md) - **🛡️ 安全** — 所有 LLM 路由的提示注入防护(后台有红队测试套件),外加免费的 DuckDuckGo 兜底网页搜索。→ [安全护栏](../../security/GUARDRAILS.md) -- **🤝 更多服务商与代理** — Cursor Cloud Agent(第四云代理)、CodeBuddy CN(`copilot.tencent.com`)、Google Flow 视频生成服务商、新网关 **DGrid** 和 **Pioneer AI**(Fastino Labs)、入站 **xAI Grok** 翻译器加 **Grok Build (xAI)**(含 OAuth 导入 Token 流程)、GitHub Copilot 服务商的 GPT-4 / GPT-4o-mini、多模型 **Factory Droid**、**ZenMux Free**(会话 Cookie 免费层)、**阿里云 DashScope** 文生视频(`wan2.7-t2v`)、刷新至 327 个服务商目录项、Vertex AI 媒体生成(语音/转录/音乐/视频),以及一键从 CLIProxyAPI 导入账号(`~/.cli-proxy-api/`)。→ [服务商](../../reference/PROVIDER_REFERENCE.md) +- **🤝 更多服务商与代理** — Cursor Cloud Agent(第四云代理)、CodeBuddy CN(`copilot.tencent.com`)、Google Flow 视频生成服务商、新网关 **DGrid** 和 **Pioneer AI**(Fastino Labs)、入站 **xAI Grok** 翻译器加 **Grok Build (xAI)**(含 OAuth 导入 Token 流程)、GitHub Copilot 服务商的 GPT-4 / GPT-4o-mini、多模型 **Factory Droid**、**ZenMux Free**(会话 Cookie 免费层)、**阿里云 DashScope** 文生视频(`wan2.7-t2v`)、刷新至 329 个服务商目录项、Vertex AI 媒体生成(语音/转录/音乐/视频),以及一键从 CLIProxyAPI 导入账号(`~/.cli-proxy-api/`)。→ [服务商](../../reference/PROVIDER_REFERENCE.md) - **⚡ 本地性能与基础设施** — 一键本地 Redis 启动器(`omniroute redis up`,含控制台 Redis 面板)、一键 **Cloudflare Workers** 和 **Deno Deploy** 中继部署器(接入代理池),以及可选 Bifrost Go 边车将最热中继路径卸载至 Go 侧(`BIFROST_BASE_URL`,超时自动回退 TypeScript 路径)— 现支持中继后端选择器(`OMNIROUTE_RELAY_BACKEND=ts|bifrost|auto`),`/v1/relay` 端点保持对外稳定接口的同时内部自动择取最快后端。→ [环境配置](../../reference/ENVIRONMENT.md)
@@ -351,11 +351,11 @@ Combo: "always-on" 策略: priority
-# 🌐 327 个 AI 服务商目录项 — 154 个免费/免验证 +# 🌐 329 个 AI 服务商目录项 — 155 个免费/免验证
-> 开源路由方案中最完整的服务商目录:**327 个服务商目录项**,其中 **154 个标记为免费/免验证**。该标记不代表永久或无限使用;模型、配额、账户、地区、KYC、隐私条款与服务商政策均可能变化。 +> 开源路由方案中最完整的服务商目录:**329 个服务商目录项**,其中 **155 个标记为免费/免验证**。该标记不代表永久或无限使用;模型、配额、账户、地区、KYC、隐私条款与服务商政策均可能变化。
@@ -814,7 +814,7 @@ podman compose --profile base up -d --build **OmniRoute 会向我收费吗?** 不会 — 它是运行在你本机的免费开源软件。你只直接向付费服务商付款。OmniRoute 不含任何计费系统。 **免费服务商真的无限使用吗?** 不能这样保证。部分服务商没有公布 Token 上限,但仍可能有速率、并发、账户、模型、地区、KYC、隐私或服务条款限制;LongCat 当前记录的是一次性 10M 注册额度,而非循环无限额度。请以 [`FREE_TIERS.md`](../../reference/FREE_TIERS.md) 和上游条款为准。 **压缩会影响输出质量吗?** 不会 — 它仅压缩**输入**端;代码、URL、JSON 永远保留不损。 -**AI 服务被封锁的地区能用吗?** 三级代理与 1proxy 可帮助连接受支持的上游,但并不保证每个地区、账户或全部 327 个目录项都可用。 +**AI 服务被封锁的地区能用吗?** 三级代理与 1proxy 可帮助连接受支持的上游,但并不保证每个地区、账户或全部 329 个目录项都可用。 📖 [用户指南](../../guides/USER_GUIDE.md) · [API 参考](../../reference/API_REFERENCE.md) · [环境配置](../../reference/ENVIRONMENT.md) diff --git a/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md b/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md index 85b6f937ad..ec71b6f145 100644 --- a/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md @@ -19,7 +19,7 @@ OmniRoute 是基于 Next.js 构建的本地 AI 路由网关和控制台。 核心能力: -- OpenAI 兼容的 API 接口,供 CLI/工具使用(327 个服务商目录项、89 个执行器实现模块) +- OpenAI 兼容的 API 接口,供 CLI/工具使用(329 个服务商目录项、89 个执行器实现模块) - 跨服务商格式的请求/响应转换 - 模型 Combo 容灾(多模型序列) - 结构化 Combo 步骤(`服务商 + 模型 + 连接`),通过 `compositeTiers` 在运行时排序 @@ -931,7 +931,7 @@ flowchart LR ## 服务商兼容性矩阵 -> **注意:** 下表是当前 327 个服务商目录项中的代表性样本。 +> **注意:** 下表是当前 329 个服务商目录项中的代表性样本。 > 完整且持续更新的列表请参阅 > [`docs/reference/PROVIDER_REFERENCE.md`](../reference/PROVIDER_REFERENCE.md)(自动生成)或数据源头 > `src/shared/constants/providers.ts`(加载时通过 Zod 校验)。 diff --git a/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md index a3e09bdee9..82a4d3d0fc 100644 --- a/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -470,7 +470,7 @@ open-sse/ `pollinations`、`puter`、`qoder`、`vertex`、`windsurf`,以及 `claudeIdentity.ts` (共享身份标识辅助)和 `index.ts`(注册表)。 -> 注意:未在此列出的服务商由 `default.ts` 通过通用 OpenAI 兼容执行器提供服务。完整的 327 项服务商目录位于 `src/shared/constants/providers.ts`。 +> 注意:未在此列出的服务商由 `default.ts` 通过通用 OpenAI 兼容执行器提供服务。完整的 329 项服务商目录位于 `src/shared/constants/providers.ts`。 ### 4.3 `open-sse/translator/` diff --git a/docs/i18n/zh-CN/llm.txt b/docs/i18n/zh-CN/llm.txt index 900dfec8d1..419621ca31 100644 --- a/docs/i18n/zh-CN/llm.txt +++ b/docs/i18n/zh-CN/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/i18n/zh-TW/CLAUDE.md b/docs/i18n/zh-TW/CLAUDE.md index 7353a0c3d5..5be6c69eec 100644 --- a/docs/i18n/zh-TW/CLAUDE.md +++ b/docs/i18n/zh-TW/CLAUDE.md @@ -39,7 +39,7 @@ npm run test:all ## 專案概覽 -**OmniRoute** — 統一的 AI 代理/路由器。一個端點,327 LLM 提供者,自動回退。 +**OmniRoute** — 統一的 AI 代理/路由器。一個端點,329 LLM 提供者,自動回退。 | 層級 | 位置 | 目的 | | ---------- | ----------------------- | ------------------------------------------------------------------------- | diff --git a/docs/i18n/zh-TW/CONTRIBUTING.md b/docs/i18n/zh-TW/CONTRIBUTING.md index 238c6bd397..c1df6f08fe 100644 --- a/docs/i18n/zh-TW/CONTRIBUTING.md +++ b/docs/i18n/zh-TW/CONTRIBUTING.md @@ -246,7 +246,7 @@ src/ # TypeScript (.ts / .tsx) ├── mitm/ # MITM 代理(憑證、DNS、目標路由) ├── shared/ │ ├── components/ # React 元件 (.tsx) -│ ├── constants/ # 提供者定義(327)、MCP 範圍、19 種路由策略 +│ ├── constants/ # 提供者定義(329)、MCP 範圍、19 種路由策略 │ ├── utils/ # 斷路器、清理工具、認證輔助 │ └── validation/ # Zod v4 結構 └── sse/ # SSE 代理管線 diff --git a/docs/i18n/zh-TW/README.md b/docs/i18n/zh-TW/README.md index cd0cb28939..b4ecee2a41 100644 --- a/docs/i18n/zh-TW/README.md +++ b/docs/i18n/zh-TW/README.md @@ -12,7 +12,7 @@ # 🚀 OmniRoute — 免費 AI 閘道器 -### 開發不停歇。只需單一端點,即可將所有 AI 工具串接至 **327 家模型提供者** — **154 個免費/免驗證目錄項目**。 +### 開發不停歇。只需單一端點,即可將所有 AI 工具串接至 **329 家模型提供者** — **155 個免費/免驗證目錄項目**。 **將 Claude Code、Codex、Cursor、Cline、Copilot 與 Antigravity 無縫對接至免費的 Claude / GPT / Gemini,支援自動切換備援。** @@ -26,8 +26,8 @@
-[![327 AI Providers](https://img.shields.io/badge/327-AI_Providers-6C5CE7?style=for-the-badge)](#-327-ai-providers--154-freeno-auth) -[![154 Free/No-Auth](https://img.shields.io/badge/154-Free%2FNo--Auth-00B894?style=for-the-badge)](#-327-ai-providers--154-freeno-auth) +[![329 AI Providers](https://img.shields.io/badge/329-AI_Providers-6C5CE7?style=for-the-badge)](#-329-ai-providers--155-freeno-auth) +[![155 Free/No-Auth](https://img.shields.io/badge/155-Free%2FNo--Auth-00B894?style=for-the-badge)](#-329-ai-providers--155-freeno-auth) [![1.53B Free Tokens/mo](https://img.shields.io/badge/1.53B-Free_Tokens%2Fmo-00B894?style=for-the-badge)](../../reference/FREE_TIERS.md) [![Token Savings](https://img.shields.io/badge/up_to_95%25-Token_Savings-E17055?style=for-the-badge)](#%EF%B8%8F-save-1595-tokens--automatically) [![19 Strategies](https://img.shields.io/badge/19-Routing_Strategies-0984E3?style=for-the-badge)](#-combos--the-flagship) @@ -66,7 +66,7 @@
-[**🚀 快速開始**](#-quick-start) • [**🎯 Combo**](#-combos--the-flagship) • [**🌐 提供者**](#-327-ai-providers--154-freeno-auth) • [**🔌 CLI 與 MCP**](#-full-cli--a2a--mcp) • [**🗜️ 壓縮**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 網站**](https://omniroute.online) +[**🚀 快速開始**](#-quick-start) • [**🎯 Combo**](#-combos--the-flagship) • [**🌐 提供者**](#-329-ai-providers--155-freeno-auth) • [**🔌 CLI 與 MCP**](#-full-cli--a2a--mcp) • [**🗜️ 壓縮**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 網站**](https://omniroute.online) [💥 承諾](#-the-promise) • [🤔 為什麼](#-why-omniroute) • [🏆 優勢](#-what-sets-omniroute-apart) • [🤖 相容 CLI](#-compatible-clis--coding-agents) • [🖥️ 執行平台](#%EF%B8%8F-where-omniroute-runs--anywhere) • [🔒 隱私](#-private--local-first) • [🎬 實際展示](#-omniroute-in-action) • [📚 探索更多](#-explore-more) • [📧 支援](#-support--community) @@ -144,13 +144,13 @@
-> 單一端點。**327 家提供者。** 讓開發流程暢行無阻 — 由 OmniRoute 自動挑選最划算且可行的最佳方案。 +> 單一端點。**329 家提供者。** 讓開發流程暢行無阻 — 由 OmniRoute 自動挑選最划算且可行的最佳方案。
🛡️ 弹性回退
上游或配额失败时尝试下一条合格路由;实际可用性取决于服务商与候选路由。
💸 Token 节省高达 95%
RTK + Caveman 级联压缩可削减 15–95% 的可压缩 Token(工具密集型会话平均约 89%)。
🆓 零元起步
154 个目录项标记为免费/免验证;配额、账户、地区、KYC 与条款因服务商而异。
🆓 零元起步
155 个目录项标记为免费/免验证;配额、账户、地区、KYC 与条款因服务商而异。
🔌 所有工具一网打尽
16+ 款编程助手 — Claude Code、Codex、Cursor、Cline、Copilot、Antigravity — 一套配置全搞定。
- + @@ -269,8 +269,8 @@ Result: 4 fallback layers reduce downtime; upstream availability is not guarante | 功能 | OmniRoute | 其他路由器 | | -------------------------- | ------------------------------------------------------ | ----------- | -| 🌐 提供者數量 | **327** | 20–100 | -| 🆓 免費/免驗證目錄項目 | **154** | 1–5 | +| 🌐 提供者數量 | **329** | 20–100 | +| 🆓 免費/免驗證目錄項目 | **155** | 1–5 | | 🔀 路由策略 | **19 種**(優先級、加權、成本優化、上下文中繼、融合…) | 1–3 | | 🗜️ Token 壓縮 | **RTK + Caveman 堆疊(15–95%)** | 無 / 20–40% | | 🧰 內建 MCP 伺服器 | **107 工具、3 種傳輸、32 個範圍** | 少有 | @@ -302,7 +302,7 @@ Result: 4 fallback layers reduce downtime; upstream availability is not guarante - **💸 全方位成本遙測** — 每個端點(包括媒體)上的 `X-OmniRoute-*` 成本/使用量標頭、非 Token 成本引擎、快取命中 `X-OmniRoute-Cost-Saved` 標頭,以及每金鑰 USD 支出配額。→ [API Reference](../../reference/API_REFERENCE.md) - **🧠 可控記憶** — 可選的 int8 向量量化(Qdrant + sqlite-vec),記憶預設關閉,以及每請求 `x-omniroute-no-memory` 標頭。→ [Memory](../../frameworks/MEMORY.md) - **🛡️ 安全** — 所有 LLM 路由的提示注入防護(由紅隊測試套件支援),加上免費的 DuckDuckGo 最後手段網路搜尋。→ [Guardrails](../../security/GUARDRAILS.md) -- **🤝 更多提供者和代理** — Cursor Cloud Agent(第 4 個雲端代理)、CodeBuddy CN(`copilot.tencent.com`)、Google Flow 影片生成提供者、新閘道 **DGrid** 和 **Pioneer AI**(Fastino Labs)、入站 **xAI Grok** 轉換器加上 **Grok Build (xAI)** 附 OAuth 匯入令牌流程、GitHub Copilot 提供者上的 GPT-4 / GPT-4o-mini、多模型 **Factory Droid**、**ZenMux Free**(session-cookie 免費層)、**Alibaba DashScope** 文字轉影片(`wan2.7-t2v`)、更新後的 327 提供者目錄、Vertex AI 媒體生成(語音 / 轉錄 / 音樂 / 影片),以及從 CLIProxyAPI 一鍵匯入帳戶。→ [Providers](../../reference/PROVIDER_REFERENCE.md) +- **🤝 更多提供者和代理** — Cursor Cloud Agent(第 4 個雲端代理)、CodeBuddy CN(`copilot.tencent.com`)、Google Flow 影片生成提供者、新閘道 **DGrid** 和 **Pioneer AI**(Fastino Labs)、入站 **xAI Grok** 轉換器加上 **Grok Build (xAI)** 附 OAuth 匯入令牌流程、GitHub Copilot 提供者上的 GPT-4 / GPT-4o-mini、多模型 **Factory Droid**、**ZenMux Free**(session-cookie 免費層)、**Alibaba DashScope** 文字轉影片(`wan2.7-t2v`)、更新後的 329 提供者目錄、Vertex AI 媒體生成(語音 / 轉錄 / 音樂 / 影片),以及從 CLIProxyAPI 一鍵匯入帳戶。→ [Providers](../../reference/PROVIDER_REFERENCE.md) - **⚡ 本地效能與基礎設施** — 一鍵本地 Redis 啟動器(`omniroute redis up`,加上儀表板 Redis 面板)、一鍵 **Cloudflare Workers** 和 **Deno Deploy** 中繼部署器接入代理池,以及可選的 Bifrost Go sidecar,用於卸載最熱門的中繼路徑(`BIFROST_BASE_URL`,逾時時自動備援到 TypeScript 路徑)。→ [Environment](../../reference/ENVIRONMENT.md)
@@ -345,11 +345,11 @@ Result: 4 fallback layers reduce downtime; upstream availability is not guarante
-# 🌐 327 個 AI 提供者 — 154 個免費/免驗證 +# 🌐 329 個 AI 提供者 — 155 個免費/免驗證
-> 最完整的開源路由器目錄:**327 個提供者**,其中 **154 個目錄項目標記為免費/免驗證**。 +> 最完整的開源路由器目錄:**329 個提供者**,其中 **155 個目錄項目標記為免費/免驗證**。
@@ -807,7 +807,7 @@ podman compose --profile base up -d --build **OmniRoute 會向我收費嗎?** 不會 — 它是免費的開源軟體,在您的機器上執行。您只直接向付費提供者付費。OmniRoute 沒有帳單系統。 **免費提供者真的無限嗎?** 不能保證 — 有些目錄項目沒有公開 Token 上限,但仍可能受到速率、並發、帳戶、地區或服務條款限制。請在使用前查看提供者條款;在 Combo 中堆疊多個免費/免驗證項目可增加備援,但不代表無限或保證可用。 **壓縮會損害品質嗎?** 不會 — 它只壓縮**輸入**;程式碼、URL、JSON 始終受保護。 -**在被封鎖 AI 的地區能用嗎?** 可以嘗試 — 3 層代理 + 1proxy 市場可連接目錄中的 327 個提供者,但實際可用性取決於網路、地區與提供者政策。 +**在被封鎖 AI 的地區能用嗎?** 可以嘗試 — 3 層代理 + 1proxy 市場可連接目錄中的 329 個提供者,但實際可用性取決於網路、地區與提供者政策。 📖 [User Guide](../../guides/USER_GUIDE.md) · [API Reference](../../reference/API_REFERENCE.md) · [Environment Config](../../reference/ENVIRONMENT.md) @@ -928,7 +928,7 @@ podman compose --profile base up -d --build | [Resilience Guide](../../architecture/RESILIENCE_GUIDE.md) | 斷路器、冷卻、佇列、反奔湧群、TLS 偽造 | | [Auto-Combo Engine](../../routing/AUTO-COMBO.md) | 13 因素評分、模式包、自我修復 | | [Proxy Guide](../../ops/PROXY_GUIDE.md) | 3 層代理系統、1proxy 市場、註冊表 CRUD | -| [Free Tiers](../../reference/FREE_TIERS.md) | 154 個免費/免驗證目錄項目,以及 43 個量化提供者池 | +| [Free Tiers](../../reference/FREE_TIERS.md) | 155 個免費/免驗證目錄項目,以及 43 個量化提供者池 | | [Features Gallery](../../guides/FEATURES.md) | 附截圖的視覺儀表板導覽 | | [Codebase Documentation](../../architecture/CODEBASE_DOCUMENTATION.md) | 初學者友善的程式碼庫導覽 | diff --git a/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md b/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md index 1c632cf5cd..9ff0d7d56e 100644 --- a/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md @@ -17,7 +17,7 @@ OmniRoute 是一個建構於 Next.js 上的本地 AI 路由閘道與儀表板。 核心能力: -- OpenAI 相容的 API 表面,適用於 CLI/工具(327 個提供者目錄項目、89 個執行器實作模組) +- OpenAI 相容的 API 表面,適用於 CLI/工具(329 個提供者目錄項目、89 個執行器實作模組) - 跨提供者格式的請求/回應轉換 - 模型組合備援(多模型序列) - 結構化組合步驟(`提供者 + 模型 + 連線`),支援執行期依 `compositeTiers` 排序 @@ -908,7 +908,7 @@ flowchart LR ## 提供者相容性矩陣 -> **注意:** 以下矩陣為目前 327 個提供者目錄項目的代表性樣本。 +> **注意:** 以下矩陣為目前 329 個提供者目錄項目的代表性樣本。 > 完整且持續更新的清單,請參閱 > [`docs/reference/PROVIDER_REFERENCE.md`](../reference/PROVIDER_REFERENCE.md)(自動產生)或 > `src/shared/constants/providers.ts`(載入時經 Zod 驗證)中的權威來源。 diff --git a/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md index a7464227a1..45d1b98c8e 100644 --- a/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -485,7 +485,7 @@ open-sse/ (共用身分識別輔助程式)和 `index.ts`(註冊表)。 > 注意:未列在此處的提供者由 `default.ts` 使用通用的 -> 與 OpenAI 相容的執行器處理。完整的 327 項提供者目錄位於 +> 與 OpenAI 相容的執行器處理。完整的 329 項提供者目錄位於 > `src/shared/constants/providers.ts`。 ### 4.3 `open-sse/translator/` diff --git a/docs/i18n/zh-TW/llm.txt b/docs/i18n/zh-TW/llm.txt index 51eeaf3777..e249a7c0d3 100644 --- a/docs/i18n/zh-TW/llm.txt +++ b/docs/i18n/zh-TW/llm.txt @@ -4,13 +4,13 @@ --- -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -169,7 +169,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -283,7 +283,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -372,7 +372,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -489,7 +489,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/docs/reference/FREE_TIERS.md b/docs/reference/FREE_TIERS.md index 422918fdd5..c2d42f45b9 100644 --- a/docs/reference/FREE_TIERS.md +++ b/docs/reference/FREE_TIERS.md @@ -10,7 +10,7 @@ lastUpdated: 2026-08-02 > **Last researched:** 2026-06-17 — per-provider web research (official docs + last-7-days news, 50-agent pass with adversarial verification) refreshing every free-tier quota + ToS. > **Source of truth (catalog):** `open-sse/config/freeModelCatalog.ts` (per-MODEL budgets, pool-deduped). The token-budget numbers below come from live web research and are an **approximation** — see [Methodology & caveats](#methodology--caveats). -> **Catalog scope (2026-08-02):** OmniRoute has **327 registered providers** and **154 catalog entries marked free/no-auth**. The budget below is deliberately narrower: **43 provider pools / 522 model budget entries** with quota, credit, uncapped, keyless, or discontinued-status evidence in the free-model catalog. +> **Catalog scope (2026-08-02):** OmniRoute has **329 registered providers** and **155 catalog entries marked free/no-auth**. The budget below is deliberately narrower: **43 provider pools / 522 model budget entries** with quota, credit, uncapped, keyless, or discontinued-status evidence in the free-model catalog. ## TL;DR — how much free inference does OmniRoute actually aggregate? diff --git a/docs/reference/PROVIDER_REFERENCE.md b/docs/reference/PROVIDER_REFERENCE.md index 257f55690a..a039c829da 100644 --- a/docs/reference/PROVIDER_REFERENCE.md +++ b/docs/reference/PROVIDER_REFERENCE.md @@ -1,20 +1,20 @@ --- title: "Provider Reference" version: 3.8.50 -lastUpdated: 2026-08-05 +lastUpdated: 2026-08-02 --- # Provider Reference > **Auto-generated** from `src/shared/constants/providers.ts` — do not edit by hand. > Regenerate with: `npm run gen:provider-reference` -> **Last generated:** 2026-08-05 +> **Last generated:** 2026-08-02 -Total providers: **291**. See category breakdown below. +Total providers: **329**. See category breakdown below. ## Categories -- **Free** — free tier with API key (configured via dashboard) +- **No-auth** — provider endpoint that does not require a credential in OmniRoute - **OAuth** — sign-in flow handled by OmniRoute, no API key needed - **Web cookie** — wraps the provider's web app via cookie auth - **API key** — paid provider configured via API key (free credits may apply) @@ -32,6 +32,19 @@ Additional tags: `image`, `video`, `aggregator`, `enterprise`, `embed/rerank`, ` Use the dashboard at `/dashboard/providers` to enable, configure, and test each provider. --- +## No-Auth Providers (9) + +| ID | Alias | Name | Tags | Website | Notes | Tool calling | +|----|-------|------|------|---------|-------|--------------| +| `aihorde` | `horde` | AI Horde | No-auth | [link](https://aihorde.net) | No API key required — uses AI Horde's documented anonymous key. Adding a free aihorde.net key is optional and only buys higher queue priority (kudos). | — | +| `auggie` | `aug` | Augment (Auggie CLI) | No-auth | [link](https://augmentcode.com) | No API key stored by OmniRoute. Install the Auggie CLI and run `auggie login` on this machine, then OmniRoute spawns it locally for each request. | — | +| `chipotle` | `pepper` | Chipotle Pepper AI (Free) | No-auth | [link](https://amelia.chipotle.com) | No credentials required. Uses Chipotle's public support chatbot via reverse-engineered SockJS/STOMP protocol. | — | +| `duckduckgo-web` | `ddgw` | DuckDuckGo AI Chat | No-auth | [link](https://duckduckgo.com/duckchat) | No credentials required — DuckDuckGo AI Chat is anonymous and free. | emulated | +| `felo-web` | `felo` | Felo | No-auth | [link](https://felo.ai) | No credentials required — Felo is a free, no-signup chat/search aggregator. | — | +| `mimocode` | `mcode` | MiMoCode (Free) | No-auth | [link](https://mimo.mi.com) | No API key required. The executor auto-generates JWT tokens via device fingerprint bootstrap. | — | +| `opencode` | `oc` | OpenCode Free | No-auth | [link](https://opencode.ai) | No API key required — uses OpenCode's public free endpoint. | — | +| `theoldllm` | `tllm` | The Old LLM (Free) | No-auth | [link](https://theoldllm.vercel.app) | No credentials required. The executor auto-generates access tokens via an embedded Playwright browser instance. | — | +| `veoaifree-web` | `veo-free` | Veo AI Free | No-auth, video | [link](https://veoaifree.com) | No auth required. Rate limited to 6 requests/hour per IP. | — | ## OAuth Providers (23) @@ -84,7 +97,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `kimi-web` | `kimi-web` | Kimi Web | Web cookie | [link](https://www.kimi.com/code?aff=omniroute) | Paste access_token from www.kimi.com DevTools → Application → Local Storage. A legacy kimi-auth cookie is also accepted. | — | | `lmarena` | `lma` | Arena (Free) | Web cookie | [link](https://arena.ai) | Paste the full Cookie header from arena.ai (DevTools → Network → request → Cookie). Include arena-auth-prod-v1.0/.1… and cf_clearance/__cf_bm when present. OmniRoute uses Chrome TLS impersonation; if Arena still 403s, set providerSpecificData.recaptchaV3Token from a live browser session. | — | | `microsoft-designer-web` | `msdesigner` | Microsoft Designer (Image Generation) | Web cookie | [link](https://designer.microsoft.com) | Sign in at designer.microsoft.com, then open DevTools → Network, generate an image, and find the request to DallE.ashx?action=GetDallEImagesCogSci. Copy the value of its Authorization: Bearer header (the access_token — no 'Bearer ' prefix). The token is short-lived; this is an unofficial, reverse-engineered integration. | — | -| `muse-spark-web` | `ms-web` | Muse Spark Web (Meta AI) | Web cookie | [link](https://www.meta.ai) | Paste your ecto_1_sess cookie AND the ecto1:... WS auth token from meta.ai. Capture the ecto1: token in DevTools → Network → WS → the clippy request's Authorization query param. Example: ecto_1_sess=4240a308...NVDg0; ecto1:ABCD... | emulated | +| `muse-spark-web` | `ms-web` | Muse Spark Web (Meta AI) | Web cookie | [link](https://www.meta.ai) | Paste your ecto_1_sess value or full cookie header from meta.ai | emulated | | `notion-web` | `nw` | Notion AI Web (Unofficial/Experimental) | Web cookie | [link](https://www.notion.so) | Paste only the token_v2 cookie VALUE from app.notion.com (DevTools → Application → Cookies → token_v2). Do not paste token_v2= or the full Cookie header. Workspace is auto-detected; space_id / notion_user_id are optional. | — | | `perplexity-web` | `pplx-web` | Perplexity Web (Pro/Max) | Web cookie | [link](https://www.perplexity.ai) | Paste your __Secure-next-auth.session-token cookie value from perplexity.ai | emulated | | `poe-web` | `poe` | Poe Web (Subscription) | Web cookie | [link](https://poe.com) | Paste your p-b cookie value from poe.com (DevTools → Application → Cookies → p-b) | — | @@ -97,7 +110,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `zai-web` | `zw` | Z.ai Web (Free) | Web cookie | [link](https://chat.z.ai) | Paste the full Cookie header from chat.z.ai (must include the token= cookie) | — | | `zenmux-free` | `zmf` | ZenMux Free (Web) | Web cookie | [link](https://zenmux.ai) | Login at zenmux.ai, then export all cookies using EditThisCookie or Cookie-Editor and paste the full Cookie header string here. Refresh every ~30 days. | — | -## API Key Providers (paid / paid-with-free-credits) (196) +## API Key Providers (paid / paid-with-free-credits) (225) | ID | Alias | Name | Tags | Website | Notes | |----|-------|------|------|---------|-------| @@ -112,28 +125,33 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `alibaba-cn` | `ali-cn` | Alibaba (China) | API key | [link](https://dashscope.console.aliyun.com/) | — | | `ant-ling` | `ling` | Ant Ling / Ring (inclusionAI) | API key | [link](https://developer.ant-ling.com/en/docs/) | Register and create an API key at the Ant Ling API console (https://chat.ant-ling.com/open), then paste it here. OmniRoute routes chat traffic to https://api.ant-ling.com/v1/chat/completions; the provider is OpenAI-compatible and also exposes an Anthropic-compatible surface. | | `anthropic` | `anthropic` | Anthropic | API key | [link](https://platform.claude.com) | — | +| `anyapi` | `anyapi` | AnyAPI AI | API key, aggregator | [link](https://anyapi.ai) | Free plan: 100,000 ANY Tokens/day and 100 RPM for eligible Free/Basic models; no credit card required. | | `api-airforce` | `af` | Api.airforce | API key | [link](https://api.airforce) | 55 free tier models including Grok-3, Claude 3.7, Qwen3, Kimi-K2, Gemini 2.5 Flash, DeepSeek-V3 | | `arcee-ai` | `arcee` | Arcee AI | API key | [link](https://arcee.ai) | Get API key at arcee.ai | +| `auriko` | `auriko` | Auriko | API key, aggregator | [link](https://www.auriko.ai) | Free plan publishes 1,000 Platform RPM and 10,000 BYOK RPM. Platform inference still passes through provider cost; this is not a free-token pool or unlimited free inference. | | `azure-ai` | `azure-ai` | Azure AI Foundry | API key, enterprise | [link](https://learn.microsoft.com/azure/ai-foundry) | Use your Azure AI Foundry key. Base URL can be https://.services.ai.azure.com/openai/v1/ or https://.openai.azure.com/openai/v1/. | | `azure-openai` | `azure` | Azure OpenAI | API key, enterprise | [link](https://azure.microsoft.com/products/ai-services/openai-service) | Use your Azure OpenAI API key. Base URL should be your resource endpoint, for example https://my-resource.openai.azure.com. | | `bai` | `bai` | b.ai | API key | [link](https://b.ai) | Bearer API key for the b.ai OpenAI-compatible LLM gateway (distinct from TheB.AI). Create a key at https://docs.b.ai, then use https://api.b.ai/v1 as the OpenAI-compatible base URL. | -| `baichuan` | `baichuan` | Baichuan | API key | [link](https://www.baichuan-ai.com/) | Get API key at platform.baichuan-ai.com | +| `baichuan` | `baichuan` | Baichuan | API key | [link](https://baichuan.com) | Get API key at platform.baichuan-ai.com | | `baidu` | `baidu` | Baidu (ERNIE) | API key | [link](https://ernie.baidu.com/) | Get API key at console.bce.baidu.com | | `bailian-coding-plan` | `bcp` | Alibaba Token Plan | API key | [link](https://www.alibabacloud.com/help/en/model-studio/token-plan-overview) | — | | `baseten` | `baseten` | Baseten | API key | [link](https://baseten.co) | $30 free trial credits for GPU inference | | `bazaarlink` | `bzl` | BazaarLink | API key | [link](https://bazaarlink.ai) | Use your BazaarLink API key (starts with sk-bl-) in Authorization: Bearer . OpenAI SDK works with base URL https://bazaarlink.ai/api/v1. Models use provider/model-name format. | | `bedrock` | `bedrock` | Amazon Bedrock | API key, enterprise | [link](https://aws.amazon.com/bedrock) | Use your Amazon Bedrock API key and configure the AWS region where your models are enabled (for example eu-west-2). OmniRoute calls Bedrock's native Converse API directly. | | `black-forest-labs` | `bfl` | Black Forest Labs | API key, image | [link](https://blackforestlabs.ai) | — | -| `blackbox` | `bb` | Blackbox AI | API key | [link](https://blackbox.ai) | Free tier: unlimited basic chat plus Minimax-M2.5, no credit card required | +| `blackbox` | `bb` | Blackbox AI | API key | [link](https://blackbox.ai) | Limited free access is available through Blackbox; model availability and account limits apply | | `bluesminds` | `bm` | BluesMinds | API key | [link](https://www.bluesminds.com) | Free daily pi credits — supports 200+ models including GPT-4o, GPT-4.1, Claude Sonnet 4.5, Gemini 2.0 Flash, DeepSeek V4, Qwen, Kimi K2 | | `byteplus` | `bpm` | BytePlus ModelArk | API key | [link](https://console.byteplus.com/ark) | — | | `bytez` | `bytez` | Bytez | API key | [link](https://bytez.com) | $1 free credits, refreshes every 4 weeks | | `cerebras` | `cerebras` | Cerebras | API key | [link](https://inference.cerebras.ai) | Free Trial: 1M tokens/day, 30K TPM, 5 RPM — no credit card. | | `charm-hyper` | `charm-hyper` | Charm Hyper | API key | [link](https://hyper.charm.land) | 100 free monthly Hypercredits on signup | -| `cheaperinference` | `cinf` | Cheaper Inference | API key | [link](https://cheaperinference.com/?utm_source=omniroute) | — | +| `chat-oripe` | `chat-oripe` | Chat Oripe | API key, aggregator | [link](https://api.oriper.com) | Official metadata advertises 2M tokens/month, but the public site and documentation were blocked during audit; treat the quota and brand mapping as unconfirmed. | +| `chatanywhere` | `chatanywhere` | ChatAnywhere | API key, aggregator | [link](https://chatanywhere.tech) | Personal, educational or research use only: public documentation cites 10,000 points/day and 200 requests/day per IP/key; do not use for commercial traffic. | +| `cheaperinference` | `cinf` | Cheaper Inference | API key | [link](https://cheaperinference.com) | — | | `chenzk` | `chenzk` | Chenzk API | API key | [link](https://chenzk.top) | — | | `chutes` | `chutes` | Chutes.ai | API key, aggregator | [link](https://chutes.ai) | Bearer API key for the Chutes OpenAI-compatible gateway. | | `clarifai` | `clarifai` | Clarifai | API key, enterprise | [link](https://docs.clarifai.com) | Use your Clarifai PAT or app-specific API key. OmniRoute targets the OpenAI-compatible endpoint at https://api.clarifai.com/v2/ext/openai/v1 and authenticates with Authorization: Key . | +| `cloudcode-one` | `cloudcode-one` | CloudCode.ONE | API key, aggregator | [link](https://cloudcode.one) | Published free models include glm-4.7-flash and glm-4.6v-flash; no numeric quota is published, and key creation may require credit or a coupon. | | `cloudflare-ai` | `cf` | Cloudflare Workers AI | API key | [link](https://developers.cloudflare.com/workers-ai) | Requires API Token AND Account ID (found at dash.cloudflare.com) | | `clova-studio` | `clova` | Naver CLOVA Studio | API key | [link](https://api.ncloud-docs.com/docs/en/ai-naver-clovastudio-summary) | — | | `codestral` | `codestral` | Codestral | API key | [link](https://mistral.ai) | — | @@ -151,13 +169,18 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `digitalocean` | `digitalocean` | DigitalOcean | API key | [link](https://docs.digitalocean.com/products/ai-platform/) | — | | `dit` | `dai` | DIT.ai | API key | [link](https://dit.ai) | Use your dit.ai API key in Authorization: Bearer . Fully OpenAI-compatible — a drop-in replacement, just change the base URL to https://api.dit.ai/v1. | | `doubao` | `doubao` | Doubao | API key | [link](https://doubao.com) | Get API key at console.volcengine.com | +| `dxnt` | `dxnt` | DXNT / DX Token | API key, aggregator | [link](https://www.dxnt.com) | Free accounts are documented at 100 calls/day; the quota may increase through invitations and can vary by account. | +| `electronhub` | `electronhub` | Electron Hub | API key, aggregator | [link](https://www.electronhub.ai) | Free plan: 5 RPM, $0.25 weekly credits and 10 Neutrinos/day for :free models; family budgets also apply. | | `empower` | `empower` | Empower | API key, aggregator | [link](https://docs.empower.dev) | Bearer API key for the Empower OpenAI-compatible endpoint. | | `factory` | `factory` | Factory | API key | [link](https://factory.ai) | Bearer API key for the Factory OpenAI-compatible gateway. | | `fal-ai` | `fal` | Fal.ai | API key, image | [link](https://fal.ai) | — | +| `fastrouter` | `fastrouter` | FastRouter | API key, aggregator | [link](https://fastrouter.ai) | Models with the :free suffix allow 10 requests/day per organization and model; availability may change. | | `featherless-ai` | `featherless` | Featherless AI | API key | [link](https://featherless.ai) | Free tier available — no credit card required | | `fenayai` | `fenayai` | FenayAI | API key, aggregator | [link](https://fenayai.com) | Bearer API key for the FenayAI OpenAI-compatible gateway. | | `fireworks` | `fireworks` | Fireworks AI | API key | [link](https://fireworks.ai) | $1 free starter credits on signup for API testing | +| `free-ai` | `free-ai` | Free.ai | API key, aggregator | [link](https://free.ai) | 30,000 tokens/day cover self-hosted models after email verification. Usage beyond the pool can bill at raw cost, and premium external models are paid. | | `freeaiapikey` | `faik` | FreeAIAPIKey | API key | [link](https://freeaiapikey.com) | — | +| `freeinference` | `freeinference` | FreeInference | API key, aggregator | [link](https://freeinference.org) | Free research access without a card; non-Harvard applicants require manual approval and no numeric quota is publicly guaranteed. | | `freemodel-dev` | `fmd` | FreeModel.dev | API key | [link](https://freemodel.dev) | $300 free credits on signup — no credit card required. Access GPT-5.4 and GPT-5.5 (OpenAI's latest flagship models) through an OpenAI-compatible API. | | `freepik` | `fpk` | Freepik (Mystic) | API key, image | [link](https://freepik.com) | Get API key at freepik.com/developers (Mystic image endpoint) | | `freetheai` | `fta` | FreeTheAi | API key, aggregator | [link](https://freetheai.xyz) | Join the FreeTheAi Discord to get your free API key. | @@ -168,7 +191,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `g4f-ollama` | `g4foll` | g4f.space — Ollama | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. | | `g4f-pollinations` | `g4fpol` | g4f.space — Pollinations | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. | | `galadriel` | `galadriel` | Galadriel | API key | [link](https://galadriel.com) | ⚠️ **DEPRECATED.** api.galadriel.ai no longer resolves (sweep 2026-06-19); the inference API appears discontinued. | -| `gemini` | `gemini` | Gemini (Google AI Studio) | API key | [link](https://aistudio.google.com) | Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com | +| `gemini` | `gemini` | Gemini (Google AI Studio) | API key | [link](https://aistudio.google.com) | Free tier available through Google AI Studio; current per-model quotas and regional limits apply | | `getgoapi` | `ggo` | GoAPI | API key, aggregator | [link](https://api.getgoapi.com) | — | | `gigachat` | `gigachat` | GigaChat (Sber) | API key | [link](https://developers.sber.ru) | — | | `github-models` | `ghm` | GitHub Models | API key | [link](https://github.com/marketplace/models) | Create a GitHub PAT with 'models: read' scope at github.com/settings/tokens | @@ -182,6 +205,8 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `hackclub` | `hc` | Hackclub AI | API key, aggregator | [link](https://ai.hackclub.com) | Sign in with your Hack Club account at ai.hackclub.com. | | `haiper` | `hp` | Haiper | API key, video | [link](https://haiper.ai) | Get API key at haiper.ai/haiper-api | | `hcnsec` | `hcnsec` | Huancheng Public API | API key | [link](https://api.hcnsec.cn) | Get API key at api.hcnsec.cn | +| `helixmind` | `helixmind` | HelixMind | API key, aggregator | [link](https://helixmind.online) | Previously circulated 3 RPM/50 RPD and no-card claims were not confirmed during the 2026-08-02 audit; current quota and billing require account verification. | +| `helyxai` | `helyxai` | Helyx AI | API key, aggregator | [link](https://helyxai.space) | Operational Free plan documents 100,000 tokens/day; the site's separate 2M+ marketing claim conflicts and is not treated as a quota guarantee. | | `heroku` | `heroku` | Heroku AI | API key, enterprise | [link](https://www.heroku.com) | — | | `huggingface` | `hf` | HuggingFace | API key | [link](https://huggingface.co) | Free Inference API for thousands of models (Whisper, VITS, SDXL…) | | `hyperbolic` | `hyp` | Hyperbolic | API key | [link](https://hyperbolic.xyz) | $1-5 trial credits on signup for serverless inference | @@ -201,20 +226,27 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `laozhang` | `lz` | LaoZhang AI | API key, aggregator | [link](https://api.laozhang.ai) | — | | `leonardo` | `leo` | Leonardo AI | API key, video | [link](https://leonardo.ai) | Get API key at leonardo.ai/developer | | `liquid` | `liquid` | Liquid AI | API key | [link](https://liquid.ai) | Get API key at liquid.ai | +| `literouter` | `literouter` | LiteRouter | API key, aggregator | [link](https://literouter.com) | Free model variants use the :free suffix; daily credit limits vary by model and free input is capped at 5,000 tokens. | | `llamagate` | `llamagate` | LlamaGate | API key | [link](https://llamagate.ai) | — | +| `llm-kiwi` | `llmkiwi` | LLM.Kiwi | API key, aggregator | [link](https://llm.kiwi) | Free plan exposes auto and hrLLM; the published 40 requests/hour limit applies to hrLLM. | | `llm7` | `llm7` | LLM7.io | API key | [link](https://llm7.io) | No signup required - 2 req/s, 20 RPM, 100 req/hr free tier | +| `llmgateway` | `llmgateway` | LLM Gateway | API key, aggregator | [link](https://llmgateway.io) | Hosted Free plan: free-priced models are limited to 5 requests per 10 minutes when the account has no credits. | | `longcat` | `lc` | LongCat AI | API key | [link](https://longcat.chat/platform/docs) | Free: one-time 10M-token grant after account signup + KYC verification (LongCat-2.0). One-time only — not a recurring daily/monthly allowance. | | `maritalk` | `maritalk` | Maritalk | API key | [link](https://www.maritaca.ai) | — | +| `meganova-ai` | `meganova-ai` | MegaNova AI | API key, aggregator | [link](https://meganova.ai) | Free signup without a card. Published Tier 1 per-model quotas total 550 requests/day; they are not a shared global pool, and paid overage can apply if enabled. | | `meta-llama` | `meta` | Meta Llama API | API key | [link](https://llama.developer.meta.com) | — | | `minimax` | `minimax` | Minimax Coding | API key, video | [link](https://www.minimax.io) | — | | `minimax-cn` | `minimax-cn` | Minimax (China) | API key | [link](https://www.minimaxi.com) | — | | `mistral` | `mistral` | Mistral | API key | [link](https://mistral.ai) | Free Experiment tier: rate-limited access to all models, no credit card required | | `mixedbread` | `mxbai` | Mixedbread AI | API key | [link](https://www.mixedbread.com) | Bearer API key for the Mixedbread embeddings API. | +| `mixlayer` | `mixlayer` | Mixlayer | API key, aggregator | [link](https://www.mixlayer.com) | The qwen/qwen3.5-4b-free model is free for prototyping and rate-limited; no fixed public RPM or daily quota is confirmed. | +| `mnn-ai` | `mnn-ai` | MNN AI | API key, aggregator | [link](https://mnnai.ru) | Free plan: $1 monthly credits, 10 RPM and access only to models marked Free. | | `modal` | `mdl` | Modal | API key, enterprise | [link](https://modal.com/docs) | Use the bearer token that protects your Modal deployment, if enabled. Base URL should point to your OpenAI-compatible Modal app, for example https://--.modal.run/v1. | | `modelscope` | `ms` | ModelScope | API key | [link](https://modelscope.cn) | Free tier via ModelScope API-Inference — Alibaba account required. | | `monsterapi` | `monster` | MonsterAPI | API key | [link](https://monsterapi.ai) | Get API key at monsterapi.ai | | `moonshot` | `moonshot` | Kimi | API key | [link](https://platform.kimi.ai?aff=omniroute) | — | | `morph` | `morph` | Morph | API key | [link](https://morphllm.com) | Free tier: 250K credits/month, $0 | +| `naga-ai` | `naga-ai` | Naga AI | API key, aggregator | [link](https://naga.ac) | Models marked :free are publicly listed, but no numeric quota is confirmed. Naga's policy warns that free-tier prompts and outputs may be collected or used for training. | | `nanogpt` | `nanogpt` | NanoGPT | API key | [link](https://nano-gpt.com) | — | | `nara` | `nara` | NaraRouter | API key | [link](https://bynara.id) | Get a free API key via NaraRouter's Telegram channel, then paste it here as a Bearer token. | | `navy` | `navy` | NavyAI | API key | [link](https://api.navy) | Create a free API key from the NavyAI dashboard, then paste it here as a Bearer token. | @@ -227,6 +259,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `nube` | `nube` | Nube.sh | API key | [link](https://nube.sh) | — | | `nvidia` | `nvidia` | NVIDIA NIM | API key | [link](https://build.nvidia.com) | Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...) | | `oci` | `oci` | OCI Generative AI | API key, enterprise | [link](https://www.oracle.com/artificial-intelligence/generative-ai) | Use your OCI Generative AI API key or IAM bearer token. Base URL can be https://inference.generativeai..oci.oraclecloud.com/openai/v1/. | +| `ofoxai` | `ofoxai` | OfoxAI | API key, aggregator | [link](https://ofox.ai) | The current catalog advertises 10+ free models without a public numeric quota; review upstream provenance, retention and training terms before production use. | | `ollama-cloud` | `ollamacloud` | Ollama Cloud | API key | [link](https://ollama.com/settings/keys) | — | | `openadapter` | `oad` | OpenAdapter | API key | [link](https://openadapter.dev) | Use your OpenAdapter API key in Authorization: Bearer sk-cv-. Fully OpenAI-compatible. API base URL: https://api.openadapter.in/v1. | | `openai` | `openai` | OpenAI | API key | [link](https://platform.openai.com) | — | @@ -241,7 +274,9 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `pioneer` | `pn` | Pioneer AI | API key | [link](https://pioneer.ai) | $75 free usage credits — no credit card required | | `plamo` | `plamo` | PLaMo | API key | [link](https://plamo.preferredai.jp/api) | — | | `poe` | `poe` | Poe | API key, aggregator | [link](https://creator.poe.com/api-reference) | Bearer API key for the Poe OpenAI-compatible API. | +| `poixe-ai` | `poixe-ai` | Poixe AI | API key, aggregator | [link](https://poixe.com) | Current public free limits are small and model-group specific: 2 RPM/5 RPD for large-cup models and 20 RPM/50 RPD for small-cup models. | | `pollinations` | `pol` | Pollinations AI | API key, video | [link](https://pollinations.ai) | Free keyless tier: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium models (claude, gemini, midijourney) require a Pollinations API key from enter.pollinations.ai. | +| `poolside` | `poolside` | Poolside | API key | [link](https://poolside.ai) | Laguna S 2.1 and XS 2.1 are free during Preview; no public numeric quota is published. | | `predibase` | `predibase` | Predibase | API key | [link](https://predibase.com) | ⚠️ **DEPRECATED.** serving.app.predibase.com no longer resolves (sweep 2026-06-19); the managed serving API appears discontinued. | | `publicai` | `publicai` | PublicAI | API key | [link](https://publicai.co) | Requires an API key — one-time signup credit, then paid | | `puter` | `pu` | Puter AI | API key | [link](https://puter.com) | Get token at puter.com/dashboard → Copy Auth Token | @@ -261,9 +296,10 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `sealion` | `sealion` | SEA-LION | API key | [link](https://sea-lion.ai) | Sign in at sea-lion.ai with Google (no card, no region wall), create an API key, then paste it here. | | `segmind` | `segmind` | Segmind | API key, image, video | [link](https://segmind.com) | Use your Segmind API key in the x-api-key header. OmniRoute targets https://api.segmind.com/v1/ and returns the generated image/video bytes directly. | | `sensenova` | `sensenova` | SenseNova | API key | [link](https://platform.sensenova.cn) | Get API key at platform.sensenova.cn | -| `siliconflow` | `siliconflow` | SiliconFlow | API key | [link](https://cloud.siliconflow.com) | $1 free credits plus permanently free models after identity verification | +| `siliconflow` | `siliconflow` | SiliconFlow | API key | [link](https://cloud.siliconflow.com) | $1 free credits plus currently listed $0 models after identity verification; availability and limits may change | | `snowflake` | `snowflake` | Snowflake Cortex | API key, enterprise | [link](https://www.snowflake.com) | — | | `sparkdesk` | `sparkdesk` | SparkDesk | API key | [link](https://xinghuo.xfyun.cn) | Get API key at console.xfyun.cn | +| `speka` | `speka` | Speka AI | API key, aggregator | [link](https://speka.me) | Free plan: $1 monthly usage, 10 RPM, one API key and access to open models and the playground; no card required. | | `stability-ai` | `stability` | Stability AI | API key, image | [link](https://stability.ai) | — | | `stepfun` | `stepfun` | StepFun | API key | [link](https://stepfun.com) | Get API key at platform.stepfun.com | | `sumopod` | `sumopod` | SumoPod | API key | [link](https://ai.sumopod.com) | Use your SumoPod API key (sk-...) in Authorization: Bearer . Fully OpenAI-compatible. API base URL: https://ai.sumopod.com/v1. | @@ -273,17 +309,20 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `thebai` | `thebai` | TheB.AI | API key, aggregator | [link](https://theb.ai) | Bearer API key for the TheB.AI OpenAI-compatible gateway. | | `tinyfish` | `tf` | TinyFish Fetch | API key | [link](https://docs.tinyfish.ai/fetch-api) | X-API-Key from agent.tinyfish.ai/api-keys | | `together` | `together` | Together AI | API key, video | [link](https://www.together.ai) | — | +| `tokenreply` | `tokenreply` | TokenReply | API key, aggregator | [link](https://www.tokenreply.com) | Free-tagged models have model- and campaign-specific daily limits; no fixed global free quota is published. | | `tokenrouter` | `trk` | TokenRouter | API key | [link](https://tokenrouter.com) | Use your TokenRouter API key in Authorization: Bearer . Fully OpenAI-compatible. API base URL: https://api.tokenrouter.com/v1. | | `topaz` | `topaz` | Topaz | API key, image | [link](https://topazlabs.com) | — | | `typhoon` | `typhoon` | Typhoon | API key | [link](https://docs.opentyphoon.ai) | Free API key with a 5 req/s and 200 req/m rate limit. | | `udio` | `udio` | Udio | API key | [link](https://udio.com) | Paste session cookie from udio.com (Supabase auth) | | `uncloseai` | `unc` | UncloseAI | API key | [link](https://uncloseai.com) | No auth required. API accepts any non-empty string as key for identification. | +| `unorouter` | `unorouter` | UnoRouter | API key, aggregator | [link](https://unorouter.com) | Models with the :free suffix do not debit balance; limit is 1 request/minute per free model per user. | | `upstage` | `upstage` | Upstage | API key | [link](https://www.upstage.ai) | — | | `v0-vercel` | `v0` | v0 (Vercel) | API key | [link](https://v0.dev) | — | | `venice` | `venice` | Venice.ai | API key | [link](https://venice.ai) | — | | `vercel-ai-gateway` | `vag` | Vercel AI Gateway | API key, aggregator | [link](https://vercel.com/docs/ai-gateway) | — | | `vertex` | `vertex` | Vertex AI | API key, enterprise | [link](https://cloud.google.com/vertex-ai) | Provide Service Account JSON or OAuth access_token | | `vertex-partner` | `vp` | Vertex AI Partners | API key, enterprise | [link](https://cloud.google.com/vertex-ai) | Provide the same Service Account JSON used for Vertex AI partner models. | +| `void-ai` | `void-ai` | Void AI | API key, aggregator | [link](https://voidai.app) | The public model catalog marks some models with a free plan requirement, but access is conditional and no numeric quota is confirmed. | | `volcengine` | `volcengine` | Volcengine | API key | [link](https://www.volcengine.com) | — | | `voyage-ai` | `voyage` | Voyage AI | API key, embed/rerank | [link](https://www.voyageai.com) | Bearer API key for Voyage AI embeddings and rerank APIs. | | `wafer` | `wafer` | Wafer AI | API key | [link](https://wafer.ai) | — | @@ -295,8 +334,11 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `xiaomi-mimo` | `mimo` | Xiaomi MiMo | API key | [link](https://mimo.mi.com) | — | | `xiaomi-mimo-token-plan` | `mimotp` | Xiaomi MiMo Token Plan | API key | [link](https://mimo.mi.com) | — | | `yi` | `yi` | Yi (01.AI) | API key | [link](https://01.ai) | Get API key at platform.lingyiwanwu.com | +| `yolo-auto` | `yolo-auto` | Yolo-Auto | API key, aggregator | [link](https://yolo-auto.com) | Free API access is request-limited and intended for testing; no numeric daily quota is published and free access is not promised indefinitely. | | `zai` | `zai` | Z.AI | API key | [link](https://open.bigmodel.cn) | — | | `zenmux` | `zm` | ZenMux | API key | [link](https://zenmux.ai) | Use your ZenMux API key in Authorization: Bearer . ZenMux is fully OpenAI-compatible. Base URL: https://zenmux.ai/api/v1. | +| `zerolimitai` | `zerolimitai` | ZeroLimitAI | API key, aggregator | [link](https://www.zerolimitai.com) | Temporary free trial is advertised, but official pages conflict between 3 and 7 days; a 100-calls/day claim is not treated as permanent. | +| `zylo-api` | `zylo` | Zylo API | API key, aggregator | [link](https://zyloai.net) | Basic plan: 10 RPM, 7,200 requests/day and 200,000 tokens/day; limited to Basic text models. | ## Local Providers (12) @@ -373,7 +415,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each - Catalog: [`src/shared/constants/providers.ts`](../../src/shared/constants/providers.ts) - Registry (per-model details): [`open-sse/config/providerRegistry.ts`](../../open-sse/config/providerRegistry.ts) -- Executors: [`open-sse/executors/`](../../open-sse/executors/) (31 files) +- Executors: [`open-sse/executors/`](../../open-sse/executors/) - Translators: [`open-sse/translator/`](../../open-sse/translator/) ## See Also diff --git a/llm.txt b/llm.txt index e2ff790df6..c6f4aa6a21 100644 --- a/llm.txt +++ b/llm.txt @@ -1,12 +1,12 @@ # OmniRoute -> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 327 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. +> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 329 AI provider catalog entries — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (107 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex-cloud, cursor-cloud, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview OmniRoute solves the problem of managing multiple AI provider subscriptions, quotas, and rate limits. It sits between your AI-powered tools (IDE agents, CLI tools) and AI providers, routing requests intelligently through a 4-tier fallback system: Subscription → API Key → Cheap → Free. -**Key value:** One endpoint (`http://localhost:20128/v1`), a 327-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. +**Key value:** One endpoint (`http://localhost:20128/v1`), a 329-entry provider catalog, resilient fallback subject to upstream availability, and cost-aware routing. **Current version:** 3.8.50 @@ -165,7 +165,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ └── manager.ts # MITM proxy manager │ ├── shared/ # Shared utilities, components, and constants │ │ ├── components/ # Reusable UI components (Card, Badge, Button, Modal, Sidebar, ProviderIcon, etc.) -│ │ ├── constants/ # Provider definitions (327), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (329), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -279,7 +279,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ### Core Proxy -- **327 AI provider catalog entries** with automatic format translation +- **329 AI provider catalog entries** with automatic format translation - **Provider categories**: No-auth, OAuth, API Key, Web Cookie, Local/Self-Hosted, Search, Audio, Upstream Proxy, Cloud Agent, System, and Custom (OpenAI/Anthropic-compatible) - **19 routing strategies**: priority, weighted, round-robin, context-relay, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, cache-optimized, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -368,7 +368,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo **OAuth catalog entries (23):** sign-in providers in `OAUTH_PROVIDERS`, backed by 21 provider implementation modules -**API-key catalog entries (223):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more +**API-key catalog entries (225):** OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA, OpenRouter, Cloudflare AI, and many more **Other catalog categories:** Web cookie (31), local/self-hosted (12), search (12), audio-only (11), upstream proxy (2), cloud-agent provider entries (3), and system (1) @@ -485,7 +485,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## v3.8.x Highlights -- **327-provider catalog** with 154 free/no-auth catalog entries, one-click account imports, and bulk key add +- **329-provider catalog** with 155 free/no-auth catalog entries, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `cache-optimized`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **13-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 107 tools / 32 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin/compression modules) diff --git a/tests/snapshots/provider/translate-path.json b/tests/snapshots/provider/translate-path.json index d0fa14e1fe..26a8f368ec 100644 --- a/tests/snapshots/provider/translate-path.json +++ b/tests/snapshots/provider/translate-path.json @@ -326,20 +326,20 @@ "headers": { "apiKey": { "Accept": "text/event-stream", - "Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07,code-execution-2025-08-25,skills-2025-10-02", + "Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07", "Anthropic-Version": "2023-06-01", "Content-Type": "application/json", "x-api-key": "" }, "nonStream": { - "Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07,code-execution-2025-08-25,skills-2025-10-02", + "Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07", "Anthropic-Version": "2023-06-01", "Content-Type": "application/json", "x-api-key": "" }, "oauth": { "Accept": "text/event-stream", - "Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07,code-execution-2025-08-25,skills-2025-10-02", + "Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07", "Anthropic-Version": "2023-06-01", "Content-Type": "application/json", "x-api-key": "" @@ -376,6 +376,29 @@ "stream": "https://daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent?alt=sse" } }, + "anyapi": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.anyapi.ai/v1/chat/completions", + "stream": "https://api.anyapi.ai/v1/chat/completions" + } + }, "api-airforce": { "format": "openai", "headers": { @@ -428,6 +451,29 @@ "stream": "auggie://cli/stdio" } }, + "auriko": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.auriko.ai/v1/chat/completions", + "stream": "https://api.auriko.ai/v1/chat/completions" + } + }, "bai": { "format": "openai", "headers": { @@ -750,6 +796,52 @@ "stream": "https://hyper.charm.land/v1/chat/completions" } }, + "chat-oripe": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.oriper.com/v1/chat/completions", + "stream": "https://api.oriper.com/v1/chat/completions" + } + }, + "chatanywhere": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.chatanywhere.org/v1/chat/completions", + "stream": "https://api.chatanywhere.org/v1/chat/completions" + } + }, "chatgpt-web": { "format": "openai", "headers": { @@ -870,7 +962,7 @@ "headers": { "apiKey": { "Accept": "text/event-stream", - "Anthropic-Beta": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07,code-execution-2025-08-25,skills-2025-10-02", + "Anthropic-Beta": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07", "Anthropic-Dangerous-Direct-Browser-Access": "true", "Anthropic-Version": "2023-06-01", "Content-Type": "application/json", @@ -888,7 +980,7 @@ "x-api-key": "" }, "nonStream": { - "Anthropic-Beta": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07,code-execution-2025-08-25,skills-2025-10-02", + "Anthropic-Beta": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07", "Anthropic-Dangerous-Direct-Browser-Access": "true", "Anthropic-Version": "2023-06-01", "Content-Type": "application/json", @@ -907,7 +999,7 @@ }, "oauth": { "Accept": "text/event-stream", - "Anthropic-Beta": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07,code-execution-2025-08-25,skills-2025-10-02", + "Anthropic-Beta": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28,advisor-tool-2026-03-01,extended-cache-ttl-2025-04-11,cache-diagnosis-2026-04-07", "Anthropic-Dangerous-Direct-Browser-Access": "true", "Anthropic-Version": "2023-06-01", "Content-Type": "application/json", @@ -1035,6 +1127,29 @@ "stream": "https://api.cline.bot/api/v1/chat/completions" } }, + "cloudcode-one": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.cloudcode.one/v1/chat/completions", + "stream": "https://api.cloudcode.one/v1/chat/completions" + } + }, "cloudflare-ai": { "format": "openai", "headers": { @@ -1488,29 +1603,6 @@ "stream": "devin://acp/stdio" } }, - "devin-cli-agentic": { - "format": "claude", - "headers": { - "apiKey": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "nonStream": { - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "oauth": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - } - }, - "url": { - "nonStream": "devin://acp/stdio", - "stream": "devin://acp/stdio" - } - }, "dgrid": { "format": "openai", "headers": { @@ -1672,6 +1764,52 @@ "stream": "https://duckduckgo.com/duckchat/v1/chat" } }, + "dxnt": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://www.dxnt.com/v1/chat/completions", + "stream": "https://www.dxnt.com/v1/chat/completions" + } + }, + "electronhub": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.electronhub.ai/v1/chat/completions", + "stream": "https://api.electronhub.ai/v1/chat/completions" + } + }, "factory": { "format": "openai", "headers": { @@ -1695,6 +1833,29 @@ "stream": "https://api.factory.ai/v1/chat/completions" } }, + "fastrouter": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.fastrouter.ai/api/v1/chat/completions", + "stream": "https://api.fastrouter.ai/api/v1/chat/completions" + } + }, "featherless-ai": { "format": "openai", "headers": { @@ -1764,6 +1925,29 @@ "stream": "https://api.fireworks.ai/inference/v1/chat/completions" } }, + "free-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.free.ai/v1/chat/", + "stream": "https://api.free.ai/v1/chat/" + } + }, "freeaiapikey": { "format": "openai", "headers": { @@ -1787,6 +1971,29 @@ "stream": "https://freeaiapikey.com/v1/chat/completions" } }, + "freeinference": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://freeinference.org/v1/chat/completions", + "stream": "https://freeinference.org/v1/chat/completions" + } + }, "freemodel-dev": { "format": "openai", "headers": { @@ -2506,6 +2713,52 @@ "stream": "https://api.hcnsec.cn/v1/chat/completions" } }, + "helixmind": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://helixmind.online/v1/chat/completions", + "stream": "https://helixmind.online/v1/chat/completions" + } + }, + "helyxai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://helyxai.space/v1/chat/completions", + "stream": "https://helyxai.space/v1/chat/completions" + } + }, "heroku": { "format": "openai", "headers": { @@ -3054,6 +3307,29 @@ "stream": "https://inference.liquid.ai/v1/chat/completions" } }, + "literouter": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.literouter.com/v1/chat/completions", + "stream": "https://api.literouter.com/v1/chat/completions" + } + }, "llamagate": { "format": "openai", "headers": { @@ -3077,6 +3353,29 @@ "stream": "https://llamagate.ai/v1/chat/completions" } }, + "llm-kiwi": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.llm.kiwi/v1/chat/completions", + "stream": "https://api.llm.kiwi/v1/chat/completions" + } + }, "llm7": { "format": "openai", "headers": { @@ -3100,6 +3399,29 @@ "stream": "https://api.llm7.io/v1/chat/completions" } }, + "llmgateway": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.llmgateway.io/v1/chat/completions", + "stream": "https://api.llmgateway.io/v1/chat/completions" + } + }, "lmarena": { "format": "openai", "headers": { @@ -3169,6 +3491,29 @@ "stream": "https://chat.maritaca.ai/api" } }, + "meganova-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.meganova.ai/v1/chat/completions", + "stream": "https://api.meganova.ai/v1/chat/completions" + } + }, "meta-llama": { "format": "openai", "headers": { @@ -3290,6 +3635,52 @@ "stream": "https://api.mistral.ai/v1/chat/completions" } }, + "mixlayer": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://models.mixlayer.ai/v1/chat/completions", + "stream": "https://models.mixlayer.ai/v1/chat/completions" + } + }, + "mnn-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.mnnai.ru/v1/chat/completions", + "stream": "https://api.mnnai.ru/v1/chat/completions" + } + }, "modal": { "format": "openai", "headers": { @@ -3405,26 +3796,6 @@ "stream": "https://api.morphllm.com/v1/chat/completions" } }, - "muse-code": { - "format": "openai", - "headers": { - "apiKey": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "nonStream": { - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "oauth": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - } - }, - "url": {} - }, "muse-spark-web": { "format": "openai", "headers": { @@ -3448,6 +3819,29 @@ "stream": "https://www.meta.ai/api/graphql" } }, + "naga-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.naga.ac/v1/chat/completions", + "stream": "https://api.naga.ac/v1/chat/completions" + } + }, "nanogpt": { "format": "openai", "headers": { @@ -3704,6 +4098,29 @@ "stream": "https://integrate.api.nvidia.com/v1/chat/completions" } }, + "ofoxai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.ofox.ai/v1/chat/completions", + "stream": "https://api.ofox.ai/v1/chat/completions" + } + }, "ollama-cloud": { "format": "openai", "headers": { @@ -3842,52 +4259,6 @@ "stream": "https://opencode.ai/zen/v1" } }, - "openference": { - "format": "openai", - "headers": { - "apiKey": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "nonStream": { - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "oauth": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - } - }, - "url": { - "nonStream": "https://api.openference.com/v1/chat/completions", - "stream": "https://api.openference.com/v1/chat/completions" - } - }, - "openference-api": { - "format": "openai", - "headers": { - "apiKey": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "nonStream": { - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "oauth": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - } - }, - "url": { - "nonStream": "https://api.openference.com/v1/chat/completions", - "stream": "https://api.openference.com/v1/chat/completions" - } - }, "openrouter": { "format": "openai", "headers": { @@ -4107,6 +4478,29 @@ "stream": "https://api.poe.com/v1/chat/completions" } }, + "poixe-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.poixe.com/v1/chat/completions", + "stream": "https://api.poixe.com/v1/chat/completions" + } + }, "pollinations": { "format": "openai", "headers": { @@ -4130,6 +4524,29 @@ "stream": "https://gen.pollinations.ai/v1/chat/completions" } }, + "poolside": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://inference.poolside.ai/v1/chat/completions", + "stream": "https://inference.poolside.ai/v1/chat/completions" + } + }, "predibase": { "format": "openai", "headers": { @@ -4363,52 +4780,6 @@ "stream": "https://chat.qwen.ai/api/v2/chat/completions" } }, - "raycast": { - "format": "openai", - "headers": { - "apiKey": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "nonStream": { - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "oauth": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - } - }, - "url": { - "nonStream": "https://backend.raycast.com/api/v1/ai", - "stream": "https://backend.raycast.com/api/v1/ai" - } - }, - "regolo": { - "format": "openai", - "headers": { - "apiKey": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "nonStream": { - "Authorization": "Bearer ", - "Content-Type": "application/json" - }, - "oauth": { - "Accept": "text/event-stream", - "Authorization": "Bearer ", - "Content-Type": "application/json" - } - }, - "url": { - "nonStream": "https://api.regolo.ai", - "stream": "https://api.regolo.ai" - } - }, "reka": { "format": "openai", "headers": { @@ -4665,6 +5036,29 @@ "stream": "https://spark-api-open.xf-yun.com/v1/chat/completions" } }, + "speka": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://speka.me/v1/chat/completions", + "stream": "https://speka.me/v1/chat/completions" + } + }, "stepfun": { "format": "openai", "headers": { @@ -4849,6 +5243,29 @@ "stream": "https://api.together.xyz/v1/chat/completions" } }, + "tokenreply": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.tokenreply.com/v1/chat/completions", + "stream": "https://api.tokenreply.com/v1/chat/completions" + } + }, "tokenrouter": { "format": "openai", "headers": { @@ -4983,8 +5400,8 @@ } }, "url": { - "nonStream": "https://api.unorouter.ai/v1/chat/completions", - "stream": "https://api.unorouter.ai/v1/chat/completions" + "nonStream": "https://api.unorouter.com/v1/chat/completions", + "stream": "https://api.unorouter.com/v1/chat/completions" } }, "upstage": { @@ -5148,6 +5565,29 @@ "stream": "https://us-central1-aiplatform.googleapis.com/v1/projects" } }, + "void-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.voidai.app/v1/chat/completions", + "stream": "https://api.voidai.app/v1/chat/completions" + } + }, "volcengine": { "format": "openai", "headers": { @@ -5404,6 +5844,29 @@ "stream": "https://api.lingyiwanwu.com/v1/chat/completions" } }, + "yolo-auto": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://yolo-auto.com/v1/chat/completions", + "stream": "https://yolo-auto.com/v1/chat/completions" + } + }, "yuanbao-web": { "format": "openai", "headers": { @@ -5544,5 +6007,51 @@ "nonStream": "https://zenmux.ai/api/anthropic/v1/messages", "stream": "https://zenmux.ai/api/anthropic/v1/messages" } + }, + "zerolimitai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://www.zerolimitai.com/api/v1/chat/completions", + "stream": "https://www.zerolimitai.com/api/v1/chat/completions" + } + }, + "zylo-api": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.zyloai.net/v1/chat/completions", + "stream": "https://api.zyloai.net/v1/chat/completions" + } } } diff --git a/tests/unit/8336-audit-loopback-login.test.ts b/tests/unit/8336-audit-loopback-login.test.ts index 7bceb53832..2159bac0ba 100644 --- a/tests/unit/8336-audit-loopback-login.test.ts +++ b/tests/unit/8336-audit-loopback-login.test.ts @@ -67,7 +67,7 @@ test("classifyIpScope distinguishes loopback / private / public / unknown", () = assert.equal(ipUtils.classifyIpScope("10.1.2.3"), "private"); assert.equal(ipUtils.classifyIpScope("192.168.0.5"), "private"); assert.equal(ipUtils.classifyIpScope("172.16.4.4"), "private"); - assert.equal(ipUtils.classifyIpScope("172.32.255.1"), "private"); + assert.equal(ipUtils.classifyIpScope("172.31.255.1"), "private"); assert.equal(ipUtils.classifyIpScope("fd00::1"), "private"); assert.equal(ipUtils.classifyIpScope("203.0.113.50"), "public"); assert.equal(ipUtils.classifyIpScope("8.8.8.8"), "public"); diff --git a/tests/unit/providers-constants-split.test.ts b/tests/unit/providers-constants-split.test.ts index 1323d3827a..dbfcaea7f3 100644 --- a/tests/unit/providers-constants-split.test.ts +++ b/tests/unit/providers-constants-split.test.ts @@ -1,7 +1,7 @@ // Characterization of the providers.ts catalog split (god-file decomposition): the host became a // barrel that re-exports 10 data catalogs now living under constants/providers/*, and APIKEY is // merged from 6 semantic family files (apikey/.ts). Locks: the public surface (every catalog -// + helpers still exported), the spread-merge integrity (223 APIKEY entries, no loss/dup), and that +// + helpers still exported), the spread-merge integrity (225 APIKEY entries, no loss/dup), and that // load-time Zod validation still runs. Pure-data move → behavior must be identical. // Count was 171 before obsolete provider removals (PR #6675: glhf/kluster/cablyai/inclusionai etc., // 171->167) plus #6126 (ClinePass dual-auth): the API-key-only APIKEY_PROVIDERS_GATEWAYS entry was @@ -18,7 +18,8 @@ // typhoon in regional) to 195, then Firecrawl dual search+fetch under SEARCH_PROVIDERS.firecrawl // (removed specialty-media duplicate) to 194, #8861 (Xiaomi MiMo Token Plan, regional) to 195, and // the Cheaper Inference gateway (OSS-sponsor reseller, gateways family) to 196, and the audited -// free-tier gateway expansion added 27 entries, bringing the current total to 223. +// free-tier gateway expansion added 27 entries, bringing the total to 223, then Void AI and +// HelixMind brought the current total to 225. import { test } from "node:test"; import assert from "node:assert/strict"; @@ -47,12 +48,12 @@ test("barrel still exports every catalog + key helpers", () => { } }); -test("APIKEY_PROVIDERS merges the 6 family files into 223 entries (no loss / no dup)", async () => { +test("APIKEY_PROVIDERS merges the 6 family files into 225 entries (no loss / no dup)", async () => { const keys = Object.keys((P as Record).APIKEY_PROVIDERS); - assert.equal(keys.length, 223); - assert.equal(new Set(keys).size, 223, "duplicate keys after spread-merge"); + assert.equal(keys.length, 225); + assert.equal(new Set(keys).size, 225, "duplicate keys after spread-merge"); // the merged object's entry-count equals the sum of the 6 semantic family files; families are a - // strict partition (every provider in exactly one), so the sum must be exactly 223. + // strict partition (every provider in exactly one), so the sum must be exactly 225. const families: [string, string][] = [ ["gateways", "APIKEY_PROVIDERS_GATEWAYS"], ["frontier-labs", "APIKEY_PROVIDERS_FRONTIER"], @@ -72,7 +73,7 @@ test("APIKEY_PROVIDERS merges the 6 family files into 223 entries (no loss / no seen.add(k); } } - assert.equal(famTotal, 223, "families must partition all 223 providers"); + assert.equal(famTotal, 225, "families must partition all 225 providers"); }); test("AI_PROVIDERS Proxy aggregates all sections; lookups resolve", () => {
🛡️ 彈性備援
上游或配額失敗時嘗試下一條合格路由;實際可用性取決於提供者與候選路由。
💸 節省高達 95% 的 Token
RTK + Caveman 堆疊壓縮可削減 15–95% 的合格 Token(工具密集型會話平均約 89%)。
🆓 零成本輕鬆上手
154 個目錄項目標記為免費/免驗證;條件與限額依提供者而異。
🆓 零成本輕鬆上手
155 個目錄項目標記為免費/免驗證;條件與限額依提供者而異。
🔌 廣泛相容各式工具
33 個編碼工具與代理 — Claude Code、Codex、Cursor、Cline、Copilot、Antigravity — 單一設定隨插即用。