From 8c4a219746583842c82e8a5de55276fcf81ff4db Mon Sep 17 00:00:00 2001 From: Markus Hartung Date: Thu, 20 Aug 2026 11:55:04 -0300 Subject: [PATCH] Revert "chore(ci): ignore ad-hoc BOT_TOKEN/BOT_URL in env-doc-sync (#10828)" This reverts commit 7288fa0dd7846b1f01ee85c7f120a1d217039fc0. --- AGENTS.md | 2 +- README.md | 8 +- .../maintenance/env-doc-sync-adhoc-bot.md | 1 - .../release-v3850-basereds-drain-20260820.md | 1 - config/quality/quality-baseline.json | 3 +- docs/diagrams/promise-pillars.svg | 2 +- docs/i18n/ar/llm.txt | 12 +- docs/i18n/az/llm.txt | 12 +- docs/i18n/bg/llm.txt | 12 +- docs/i18n/bn/llm.txt | 12 +- docs/i18n/cs/llm.txt | 12 +- docs/i18n/da/llm.txt | 12 +- docs/i18n/de/llm.txt | 12 +- docs/i18n/es/llm.txt | 12 +- docs/i18n/fa/llm.txt | 12 +- docs/i18n/fi/llm.txt | 12 +- docs/i18n/fr/llm.txt | 12 +- docs/i18n/gu/llm.txt | 12 +- docs/i18n/he/llm.txt | 12 +- docs/i18n/hi/llm.txt | 12 +- docs/i18n/hu/llm.txt | 12 +- docs/i18n/id/llm.txt | 12 +- docs/i18n/in/llm.txt | 12 +- docs/i18n/it/llm.txt | 12 +- docs/i18n/ja/llm.txt | 12 +- docs/i18n/ko/llm.txt | 12 +- docs/i18n/mr/llm.txt | 12 +- docs/i18n/ms/llm.txt | 12 +- docs/i18n/nl/llm.txt | 12 +- docs/i18n/no/llm.txt | 12 +- docs/i18n/phi/llm.txt | 12 +- docs/i18n/pl/llm.txt | 12 +- docs/i18n/pt-BR/llm.txt | 12 +- docs/i18n/pt/llm.txt | 12 +- docs/i18n/ro/llm.txt | 12 +- docs/i18n/ru/llm.txt | 12 +- docs/i18n/sk/llm.txt | 12 +- docs/i18n/sv/llm.txt | 12 +- docs/i18n/sw/llm.txt | 12 +- docs/i18n/ta/llm.txt | 12 +- docs/i18n/te/llm.txt | 12 +- docs/i18n/th/llm.txt | 12 +- docs/i18n/tr/llm.txt | 12 +- docs/i18n/uk-UA/llm.txt | 12 +- docs/i18n/ur/llm.txt | 12 +- docs/i18n/vi/llm.txt | 12 +- docs/i18n/zh-CN/llm.txt | 12 +- docs/i18n/zh-TW/llm.txt | 12 +- llm.txt | 4 +- open-sse/executors/copilot-m365-connection.ts | 7 -- open-sse/executors/copilot-m365-web.ts | 8 +- open-sse/executors/index.ts | 3 +- .../handlers/chatCore/clientUsageBuffer.ts | 7 +- open-sse/utils/usageTracking.ts | 7 +- scripts/check/check-env-doc-sync.mjs | 4 - src/app/api/providers/[id]/models/route.ts | 12 +- src/app/api/v1/models/catalog.ts | 14 ++- src/app/api/v1/models/catalogResponse.ts | 2 +- src/i18n/messages/ar.json | 54 +-------- src/i18n/messages/az.json | 54 +-------- src/i18n/messages/bg.json | 54 +-------- src/i18n/messages/bn.json | 54 +-------- src/i18n/messages/cs.json | 54 +-------- src/i18n/messages/da.json | 54 +-------- src/i18n/messages/de.json | 54 +-------- src/i18n/messages/es.json | 54 +-------- src/i18n/messages/fa.json | 54 +-------- src/i18n/messages/fi.json | 54 +-------- src/i18n/messages/fr.json | 54 +-------- src/i18n/messages/gu.json | 54 +-------- src/i18n/messages/he.json | 54 +-------- src/i18n/messages/hi.json | 54 +-------- src/i18n/messages/hu.json | 54 +-------- src/i18n/messages/id.json | 54 +-------- src/i18n/messages/in.json | 54 +-------- src/i18n/messages/it.json | 54 +-------- src/i18n/messages/ja.json | 54 +-------- src/i18n/messages/ko.json | 54 +-------- src/i18n/messages/mr.json | 54 +-------- src/i18n/messages/ms.json | 54 +-------- src/i18n/messages/nl.json | 54 +-------- src/i18n/messages/no.json | 54 +-------- src/i18n/messages/phi.json | 54 +-------- src/i18n/messages/pl.json | 54 +-------- src/i18n/messages/pt-BR.json | 20 +--- src/i18n/messages/pt.json | 54 +-------- src/i18n/messages/ro.json | 54 +-------- src/i18n/messages/ru.json | 54 +-------- src/i18n/messages/sk.json | 54 +-------- src/i18n/messages/sv.json | 54 +-------- src/i18n/messages/sw.json | 54 +-------- src/i18n/messages/ta.json | 54 +-------- src/i18n/messages/te.json | 54 +-------- src/i18n/messages/th.json | 54 +-------- src/i18n/messages/tr.json | 54 +-------- src/i18n/messages/uk-UA.json | 54 +-------- src/i18n/messages/ur.json | 54 +-------- src/i18n/messages/vi.json | 9 +- src/i18n/messages/zh-CN.json | 32 +----- src/i18n/messages/zh-TW.json | 32 +----- src/lib/modelMetadataRegistry.ts | 1 + stryker.conf.json | 8 -- tests/unit/check-env-doc-sync.test.ts | 26 ----- ...context-overflow-compression-probe.test.ts | 106 ++++++++++++++++-- .../unit/db-driver-bundling-externals.test.ts | 5 +- ...ard-session-lease-bypass-inventory.test.ts | 11 +- tests/unit/sse-heartbeat.test.ts | 5 - 107 files changed, 583 insertions(+), 2313 deletions(-) delete mode 100644 changelog.d/maintenance/env-doc-sync-adhoc-bot.md delete mode 100644 changelog.d/maintenance/release-v3850-basereds-drain-20260820.md diff --git a/AGENTS.md b/AGENTS.md index f5e45cfba9..2168ae70b9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,7 +56,7 @@ Repository map and Reference Documentation sections below. | 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 (155 migrations) | +| Database | `src/lib/db/` | SQLite domain modules (154 migrations) | | Domain/Policy | `src/domain/` | Policy engine, cost rules, fallback logic | | MCP Server | `open-sse/mcp-server/` | 109 tools (44 canonical + memory/skill/GitHub/pool/gamification/plugin/Notion/Obsidian/local-corpus/RTK modules), 3 transports (stdio / SSE / Streamable HTTP), 33 scopes | | A2A Server | `src/lib/a2a/` | JSON-RPC 2.0 agent protocol | diff --git a/README.md b/README.md index 6809b92e9f..fc66a61a71 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ | | v3.8.49 | **v3.8.50** | `v3.8.51+` | | ------------------------- | :-----: | :---------: | :---------: | -| 🌐 Providers | 290 | **343** | more queued | +| 🌐 Providers | 290 | **342** | more queued | | 🧠 Documented models | 1185 | **1202** | — | | 🖼️ Modality Bridge | — | 🆕 vision | video | | 📡 Radar free catalog | — | 🆕 opt-in | — | @@ -210,7 +210,7 @@ curl http://localhost:20128/v1/chat/completions \ -The Promise — One endpoint. 343 providers. Never stop building — OmniRoute picks the cheapest one that works. Six pillars: Never hit limits (auto-fallback across 343 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, 57 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 109 tools, A2A, memory, guardrails, evals — 25,000+ tests). +The Promise — One endpoint. 343 providers. Never stop building — OmniRoute picks the cheapest one that works. Six pillars: Never hit limits (auto-fallback across 343 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, 56 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 109 tools, A2A, memory, guardrails, evals — 25,000+ tests).

@@ -646,7 +646,7 @@ of your shell history. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md) -> The most complete catalog of any open-source router: **343 providers**, **90+ with a free tier**, **57 free forever**. +> The most complete catalog of any open-source router: **343 providers**, **90+ with a free tier**, **56 free forever**.
@@ -1174,7 +1174,7 @@ Métricas de validação: 1002 vídeos rastreados · 7,069,190 visualizações c 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) — 120 domain modules, 155 migrations + Databasebetter-sqlite3 (SQLite, WAL journaling) + LowDB (JSON legacy) — 120 domain modules, 154 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) diff --git a/changelog.d/maintenance/env-doc-sync-adhoc-bot.md b/changelog.d/maintenance/env-doc-sync-adhoc-bot.md deleted file mode 100644 index dbd759be29..0000000000 --- a/changelog.d/maintenance/env-doc-sync-adhoc-bot.md +++ /dev/null @@ -1 +0,0 @@ -- **chore(ci):** ignore ad-hoc `BOT_TOKEN`/`BOT_URL` in env-doc-sync (scripts/ad-hoc mesh helpers, not runtime config) diff --git a/changelog.d/maintenance/release-v3850-basereds-drain-20260820.md b/changelog.d/maintenance/release-v3850-basereds-drain-20260820.md deleted file mode 100644 index 5964e9f9a7..0000000000 --- a/changelog.d/maintenance/release-v3850-basereds-drain-20260820.md +++ /dev/null @@ -1 +0,0 @@ -- **fix(ci):** drain shared release/v3.8.50 base-reds that were failing every PR merge-ref (public-creds M365 pasted apiKey, Stryker covering tests, dead-code 419, i18n key parity, CC models listing 400 before cache, SSE comment heartbeat tests, all-zero usage estimate path, catalog builder yield every entry, leftover #10225/#10503 hard-overflow tests after #10162 advisory estimates). diff --git a/config/quality/quality-baseline.json b/config/quality/quality-baseline.json index ac3a3e598a..eae9067b4b 100644 --- a/config/quality/quality-baseline.json +++ b/config/quality/quality-baseline.json @@ -102,9 +102,8 @@ "_rebaseline_2026_07_28_v3849_release": "75.5 -> 99 (+23.5). Aperto EXIGIDO pelo modo --require-tighten do ratchet: a métrica melhorou de verdade no ciclo v3.8.49. A causa é o workflow assíncrono de tradução, que finalmente alcançou o denominador em EN — as rebaselines anteriores (v3.8.39/.44/.47) foram todas afrouxamentos registrando o atraso das traduções, e agora ele foi pago. O coletor SUBTRAI os placeholders (present - placeholder em scripts/quality/collect-metrics.mjs), então os 317 marcadores __MISSING__ que esta release introduziu para o drift de valor já estão descontados dos 99 — o número é honesto, não inflado por placeholder. Medido pelo collect-metrics do CI no run 30404226939." }, "deadExports": { - "value": 419, + "value": 415, "direction": "down", - "_rebaseline_2026_08_20_v3850_knip_cycle": "415 -> 419. Measured by CI check:dead-code on release/v3.8.50 merge refs (DEAD_TOTAL=419). Inherited cycle knip drift; structural cleanup remains separate debt.", "_rebaseline_2026_08_09_v3850_post_sweep": "227 -> 230. Measured by npm run check:dead-code on the unmodified release/v3.8.50 tip 382449d593 during the mandatory --full-ci pre-flight. The +3 is inherited cycle drift from the authorized merge sweep; this repair adds no production exports. Rebaseline records the actual tip so ci.yml quality-gate can run, while structural cleanup remains separate debt.", "_rebaseline_2026_07_01_v3843_release": "225->227 (+2). v3.8.43 cycle drift, surfaced in the Quality Ratchet job after eslintWarnings was rebaselined (check:dead-code runs there). 227 = measured by check:dead-code (knip) on the release tip 4635076eb. The 5 CI fixes add 0 dead exports: safeHttpHref in linkify.ts is module-local AND used (called by linkifyText); no new exports; test files are not scanned. Tighten via --update next cycle.", "dedicatedGate": true, diff --git a/docs/diagrams/promise-pillars.svg b/docs/diagrams/promise-pillars.svg index 445d06e651..c73ef5e0d7 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. diff --git a/docs/i18n/ar/llm.txt b/docs/i18n/ar/llm.txt index e08675b921..732d79189c 100644 --- a/docs/i18n/ar/llm.txt +++ b/docs/i18n/ar/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/az/llm.txt b/docs/i18n/az/llm.txt index 444523257e..e930a1f05a 100644 --- a/docs/i18n/az/llm.txt +++ b/docs/i18n/az/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/bg/llm.txt b/docs/i18n/bg/llm.txt index 444523257e..e930a1f05a 100644 --- a/docs/i18n/bg/llm.txt +++ b/docs/i18n/bg/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/bn/llm.txt b/docs/i18n/bn/llm.txt index 821826af9d..baa6656839 100644 --- a/docs/i18n/bn/llm.txt +++ b/docs/i18n/bn/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/cs/llm.txt b/docs/i18n/cs/llm.txt index df907c345b..dfb5f9b2b8 100644 --- a/docs/i18n/cs/llm.txt +++ b/docs/i18n/cs/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/da/llm.txt b/docs/i18n/da/llm.txt index 5dc69bbfa2..10ce4811ac 100644 --- a/docs/i18n/da/llm.txt +++ b/docs/i18n/da/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/de/llm.txt b/docs/i18n/de/llm.txt index dc22417c1a..b5ebeb9c86 100644 --- a/docs/i18n/de/llm.txt +++ b/docs/i18n/de/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/es/llm.txt b/docs/i18n/es/llm.txt index 40ec1505b8..72d4fa4a05 100644 --- a/docs/i18n/es/llm.txt +++ b/docs/i18n/es/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/fa/llm.txt b/docs/i18n/fa/llm.txt index 868685a3fc..4b324a992d 100644 --- a/docs/i18n/fa/llm.txt +++ b/docs/i18n/fa/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/fi/llm.txt b/docs/i18n/fi/llm.txt index 80f3d1041d..92d30e036c 100644 --- a/docs/i18n/fi/llm.txt +++ b/docs/i18n/fi/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/fr/llm.txt b/docs/i18n/fr/llm.txt index cfaf0a2743..2b5cdefa71 100644 --- a/docs/i18n/fr/llm.txt +++ b/docs/i18n/fr/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/gu/llm.txt b/docs/i18n/gu/llm.txt index 44592006cb..d0f0f42f59 100644 --- a/docs/i18n/gu/llm.txt +++ b/docs/i18n/gu/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/he/llm.txt b/docs/i18n/he/llm.txt index 30a05553b6..f8f0b3f644 100644 --- a/docs/i18n/he/llm.txt +++ b/docs/i18n/he/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/hi/llm.txt b/docs/i18n/hi/llm.txt index 60f431d7bd..d79717b61e 100644 --- a/docs/i18n/hi/llm.txt +++ b/docs/i18n/hi/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/hu/llm.txt b/docs/i18n/hu/llm.txt index 8e2250cad7..1b941f1e5a 100644 --- a/docs/i18n/hu/llm.txt +++ b/docs/i18n/hu/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/id/llm.txt b/docs/i18n/id/llm.txt index 8bfe331767..e1b23c5e3d 100644 --- a/docs/i18n/id/llm.txt +++ b/docs/i18n/id/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/in/llm.txt b/docs/i18n/in/llm.txt index 71d5aabf10..7713dacb68 100644 --- a/docs/i18n/in/llm.txt +++ b/docs/i18n/in/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/it/llm.txt b/docs/i18n/it/llm.txt index 48543ecaed..e0823ba499 100644 --- a/docs/i18n/it/llm.txt +++ b/docs/i18n/it/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ja/llm.txt b/docs/i18n/ja/llm.txt index 8aa97b8d4d..5c1963195f 100644 --- a/docs/i18n/ja/llm.txt +++ b/docs/i18n/ja/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ko/llm.txt b/docs/i18n/ko/llm.txt index 83d636964a..2ae8fe4ec4 100644 --- a/docs/i18n/ko/llm.txt +++ b/docs/i18n/ko/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/mr/llm.txt b/docs/i18n/mr/llm.txt index 60c5ab5b0d..157eec643a 100644 --- a/docs/i18n/mr/llm.txt +++ b/docs/i18n/mr/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ms/llm.txt b/docs/i18n/ms/llm.txt index 64321ca32b..e26b195208 100644 --- a/docs/i18n/ms/llm.txt +++ b/docs/i18n/ms/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/nl/llm.txt b/docs/i18n/nl/llm.txt index 0ebbac8674..67f935d590 100644 --- a/docs/i18n/nl/llm.txt +++ b/docs/i18n/nl/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/no/llm.txt b/docs/i18n/no/llm.txt index e93c917dba..e28dda1508 100644 --- a/docs/i18n/no/llm.txt +++ b/docs/i18n/no/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/phi/llm.txt b/docs/i18n/phi/llm.txt index d27115a657..ed539c84be 100644 --- a/docs/i18n/phi/llm.txt +++ b/docs/i18n/phi/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/pl/llm.txt b/docs/i18n/pl/llm.txt index 6c2c3c80cf..f8665fa410 100644 --- a/docs/i18n/pl/llm.txt +++ b/docs/i18n/pl/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/pt-BR/llm.txt b/docs/i18n/pt-BR/llm.txt index 572bdc306c..c56d966794 100644 --- a/docs/i18n/pt-BR/llm.txt +++ b/docs/i18n/pt-BR/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/pt/llm.txt b/docs/i18n/pt/llm.txt index aa0d7cb727..6e2aa2bb20 100644 --- a/docs/i18n/pt/llm.txt +++ b/docs/i18n/pt/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ro/llm.txt b/docs/i18n/ro/llm.txt index 475022ba34..4fac614baf 100644 --- a/docs/i18n/ro/llm.txt +++ b/docs/i18n/ro/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ru/llm.txt b/docs/i18n/ru/llm.txt index 338cdf40c6..9d522135b2 100644 --- a/docs/i18n/ru/llm.txt +++ b/docs/i18n/ru/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/sk/llm.txt b/docs/i18n/sk/llm.txt index fd92eef237..df0dbd95a7 100644 --- a/docs/i18n/sk/llm.txt +++ b/docs/i18n/sk/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/sv/llm.txt b/docs/i18n/sv/llm.txt index 3b990bf66f..59246e38bf 100644 --- a/docs/i18n/sv/llm.txt +++ b/docs/i18n/sv/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/sw/llm.txt b/docs/i18n/sw/llm.txt index f93f896f0d..dbbf236c5d 100644 --- a/docs/i18n/sw/llm.txt +++ b/docs/i18n/sw/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ta/llm.txt b/docs/i18n/ta/llm.txt index 4a198c6e93..842ca8c7ee 100644 --- a/docs/i18n/ta/llm.txt +++ b/docs/i18n/ta/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/te/llm.txt b/docs/i18n/te/llm.txt index de9669853d..5098dbc0ae 100644 --- a/docs/i18n/te/llm.txt +++ b/docs/i18n/te/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/th/llm.txt b/docs/i18n/th/llm.txt index 73e23cbcf8..f1251db7be 100644 --- a/docs/i18n/th/llm.txt +++ b/docs/i18n/th/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/tr/llm.txt b/docs/i18n/tr/llm.txt index 6745e5ba3b..ba729555c2 100644 --- a/docs/i18n/tr/llm.txt +++ b/docs/i18n/tr/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/uk-UA/llm.txt b/docs/i18n/uk-UA/llm.txt index 29c2e9a6ee..33b12b870b 100644 --- a/docs/i18n/uk-UA/llm.txt +++ b/docs/i18n/uk-UA/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/ur/llm.txt b/docs/i18n/ur/llm.txt index b7cafd24a9..bd5d5fdc83 100644 --- a/docs/i18n/ur/llm.txt +++ b/docs/i18n/ur/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/vi/llm.txt b/docs/i18n/vi/llm.txt index e8b3a80a5b..4b59fd5d3d 100644 --- a/docs/i18n/vi/llm.txt +++ b/docs/i18n/vi/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/zh-CN/llm.txt b/docs/i18n/zh-CN/llm.txt index 786a99948f..122734bec7 100644 --- a/docs/i18n/zh-CN/llm.txt +++ b/docs/i18n/zh-CN/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/docs/i18n/zh-TW/llm.txt b/docs/i18n/zh-TW/llm.txt index 5610d851dc..b1f841f8e9 100644 --- a/docs/i18n/zh-TW/llm.txt +++ b/docs/i18n/zh-TW/llm.txt @@ -4,7 +4,7 @@ --- -> 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 343 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, 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 342 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (109 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -18,7 +18,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -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 (343), model lists, pricing, routing strategies, MCP scopes +│ │ ├── constants/ # Provider definitions (342), model lists, pricing, routing strategies, MCP scopes │ │ ├── contracts/ # Shared API contracts │ │ ├── hooks/ # React hooks │ │ ├── middleware/ # Shared middleware utilities @@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo ## Key Features (v3.8.50) ### Core Proxy -- **343 AI providers** with automatic format translation +- **342 AI providers** with automatic format translation - **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible) - **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline - **4-tier fallback**: Subscription → API Key → Cheap → Free @@ -438,7 +438,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. @@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool ## v3.8.x Highlights -- **343-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add +- **342-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add - **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay` - **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown - **MCP server expanded to 109 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules) diff --git a/llm.txt b/llm.txt index ae739af5a7..c80df65ca7 100644 --- a/llm.txt +++ b/llm.txt @@ -14,7 +14,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo - **Runtime:** Node.js `>=22.0.0 <23 || >=24.0.0 <27`, ES Modules (`"type": "module"`) - **Framework:** Next.js 16 (App Router) with TypeScript 6 -- **Database:** SQLite via better-sqlite3 (local, zero-config, 155 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 154 migrations) - **State management:** Zustand (client), SQLite (server persistence) - **UI:** React 19, Tailwind CSS 4, Recharts for analytics, @lobehub/icons for 130+ provider SVG icons - **Auth:** OAuth 2.0 (PKCE) for providers, bcrypt for local user auth @@ -434,7 +434,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool 4. **Environment variables:** All configuration is in `.env` (from `.env.example`). Key vars: `PORT`, `NEXT_PUBLIC_BASE_URL`, `API_KEY`, `ADMIN_PASSWORD`. -5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 155 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. +5. **Database layer:** Operations go through `src/lib/db/` modules (120 domain-specific files, 154 migrations). `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module. 6. **Tests** use Node.js built-in test runner + Vitest. Run `npm test`. Vitest for MCP/autoCombo (`npm run test:vitest`). Playwright for E2E (`npm run test:e2e`). Coverage gate: ratchet vs `quality-baseline.json`, absolute floor 60% statements/lines/functions/branches. diff --git a/open-sse/executors/copilot-m365-connection.ts b/open-sse/executors/copilot-m365-connection.ts index 1f9563ef46..d5f6d80c6c 100644 --- a/open-sse/executors/copilot-m365-connection.ts +++ b/open-sse/executors/copilot-m365-connection.ts @@ -117,13 +117,6 @@ export function newChatSessionId(): string { return randomBytes(16).toString("hex"); } -/** Inverse of parsePastedCredential for persisting a refreshed token. */ -export function formatPastedM365ApiKey(accessToken: string, chathubPath: string): string { - const tokenField = ["access", "token"].join("_"); - const pathField = "chathubPath"; - return `${tokenField}=${accessToken}; ${pathField}=${chathubPath}`; -} - function parsePastedCredential( raw: string ): Partial> { diff --git a/open-sse/executors/copilot-m365-web.ts b/open-sse/executors/copilot-m365-web.ts index 97cdd011c8..57f854ef86 100644 --- a/open-sse/executors/copilot-m365-web.ts +++ b/open-sse/executors/copilot-m365-web.ts @@ -8,7 +8,6 @@ import { currentM365AccessToken, currentM365ChathubPath, decodeJwtClaims, - formatPastedM365ApiKey, redactWsUrl, refreshM365AccessToken, resolveConnectionParams, @@ -321,16 +320,15 @@ export class CopilotM365WebExecutor extends BaseExecutor { const rotated = result.refreshToken || refreshToken; const chathubPath = currentM365ChathubPath(credentials); - const pastedApiKey = chathubPath - ? formatPastedM365ApiKey(result.accessToken, chathubPath) - : undefined; const next = { ...credentials, accessToken: result.accessToken, refreshToken: rotated, // Keep the pasted-format apiKey self-consistent so every resolution path // (fresh column, stale column, dashboard re-read) sees the same token. - ...(pastedApiKey ? { apiKey: pastedApiKey } : {}), + ...(chathubPath + ? { apiKey: `access_token=${result.accessToken}; chathubPath=${chathubPath}` } + : {}), ...(result.expiresIn ? { expiresAt: new Date(Date.now() + result.expiresIn * 1000).toISOString() } : {}), diff --git a/open-sse/executors/index.ts b/open-sse/executors/index.ts index 98aa665ca0..d82452bb7e 100644 --- a/open-sse/executors/index.ts +++ b/open-sse/executors/index.ts @@ -1,5 +1,4 @@ import { SEARCH_PROVIDERS } from "../config/searchRegistry.ts"; -import type { BaseExecutor } from "./base.ts"; import { registerExecutor, getRegisteredExecutor, hasRegisteredExecutor } from "./registry.ts"; import { AntigravityExecutor } from "./antigravity.ts"; import { GithubExecutor } from "./github.ts"; @@ -234,7 +233,7 @@ const executors = { // Bootstrap: register every built-in in the ExecutorRegistry. registerExecutor // throws on duplicates, so an alias collision fails at module load, exactly as // loudly as a duplicate object key would have failed at lint time. -for (const [alias, executor] of Object.entries(executors) as Array<[string, BaseExecutor]>) { +for (const [alias, executor] of Object.entries(executors)) { registerExecutor(alias, executor); } diff --git a/open-sse/handlers/chatCore/clientUsageBuffer.ts b/open-sse/handlers/chatCore/clientUsageBuffer.ts index 6c160ef36d..4c7b1e48dc 100644 --- a/open-sse/handlers/chatCore/clientUsageBuffer.ts +++ b/open-sse/handlers/chatCore/clientUsageBuffer.ts @@ -104,12 +104,7 @@ export function applyClientUsageBuffer( deps: ClientUsageBufferDeps = DEFAULT_DEPS ): void { const { preserveContextBudgetInVisibleUsage = false } = options; - // All-zero usage stubs must take the estimate path. sanitizeProviderUsageForRequest - // (#10705) rewrites a 0 input count on a non-trivial body into a local estimate, - // which would make isEmptyUsage false and then addBufferToUsage turn zeros into - // USAGE_TOKEN_BUFFER. - const usageIsEmpty = isEmptyUsage(translatedResponse?.usage); - if (translatedResponse?.usage && !usageIsEmpty) { + if (translatedResponse?.usage) { translatedResponse.usage = sanitizeProviderUsageForRequest( translatedResponse.usage, body, diff --git a/open-sse/utils/usageTracking.ts b/open-sse/utils/usageTracking.ts index 151a5f6d8d..c89527518e 100644 --- a/open-sse/utils/usageTracking.ts +++ b/open-sse/utils/usageTracking.ts @@ -449,12 +449,11 @@ function resolveUsageFormat(usage: UsageLike | null | undefined, targetFormat: s function getReportedInputTokens(usage: UsageLike, format: string): number { if (format === FORMATS.CLAUDE) { - const claudeInput = + return ( tokenNumber(usage.input_tokens) + tokenNumber(usage.cache_read_input_tokens) + - tokenNumber(usage.cache_creation_input_tokens); - if (claudeInput > 0) return claudeInput; - return tokenNumber(usage.prompt_tokens); + tokenNumber(usage.cache_creation_input_tokens) + ); } if (format === FORMATS.GEMINI) { return tokenNumber(usage.promptTokenCount); diff --git a/scripts/check/check-env-doc-sync.mjs b/scripts/check/check-env-doc-sync.mjs index 097b24c60e..1fba62bfd5 100644 --- a/scripts/check/check-env-doc-sync.mjs +++ b/scripts/check/check-env-doc-sync.mjs @@ -126,10 +126,6 @@ const IGNORE_FROM_CODE = new Set([ // ("http://192.168.0.15:20128" / null), never OmniRoute runtime config (#5151). "COMBO_LIVE_BASE_URL", "COMBO_LIVE_API_KEY", - // Ad-hoc mesh/coverage scripts under scripts/ad-hoc/*.mjs (mesh-send, mesh-run, - // verify-coverage). Operator-supplied script secrets, not OmniRoute runtime config. - "BOT_TOKEN", - "BOT_URL", // Homologation E2E suite (npm run homolog) vars — configured via the dedicated // .env.homolog file (template: .env.homolog.example), never in the runtime .env. // Test/ops-only signals against the homologation VPS, same class as COMBO_LIVE_*. diff --git a/src/app/api/providers/[id]/models/route.ts b/src/app/api/providers/[id]/models/route.ts index 217ee18dc9..818156aaec 100755 --- a/src/app/api/providers/[id]/models/route.ts +++ b/src/app/api/providers/[id]/models/route.ts @@ -1882,6 +1882,12 @@ export async function GET( } if (isAnthropicCompatibleProvider(provider)) { + const cachedResponse = maybeReturnCachedDiscovery(); + if (cachedResponse) return cachedResponse; + + const autoFetchDisabledResponse = maybeReturnAutoFetchDisabled(); + if (autoFetchDisabledResponse) return autoFetchDisabledResponse; + if (isClaudeCodeCompatibleProvider(provider)) { return NextResponse.json( { error: `Provider ${provider} does not support models listing` }, @@ -1889,12 +1895,6 @@ export async function GET( ); } - const cachedResponse = maybeReturnCachedDiscovery(); - if (cachedResponse) return cachedResponse; - - const autoFetchDisabledResponse = maybeReturnAutoFetchDisabled(); - if (autoFetchDisabledResponse) return autoFetchDisabledResponse; - let baseUrl = getProviderBaseUrl(connection.providerSpecificData); if (!baseUrl) { const fallback = buildDiscoveryFallbackResponse({ diff --git a/src/app/api/v1/models/catalog.ts b/src/app/api/v1/models/catalog.ts index ff3437c974..d4797775db 100644 --- a/src/app/api/v1/models/catalog.ts +++ b/src/app/api/v1/models/catalog.ts @@ -241,7 +241,7 @@ async function buildUnifiedModelsResponseCore( // event-loop yield, so a large deployment pins the single Node.js thread for the // whole build (reporter: 183 connections / 2000+ models → 10.1s stall that blocks the // dashboard WS heartbeat). Yield every `catYIELD_EVERY` items across the hot loops. - const catYIELD_EVERY = 1; + const catYIELD_EVERY = 20; let catYieldCount = 0; const maybeYieldCatalogBuild = async (): Promise => { catYieldCount++; @@ -511,11 +511,13 @@ async function buildUnifiedModelsResponseCore( const targetModel = getComboTargetModelId(target); if (!targetModel) return null; - const canonical = getCanonicalModelMetadata({ - provider: targetModel.providerId, - model: targetModel.modelId, - snapshot: capabilityResolutionSnapshot, - }); + const canonical = getCanonicalModelMetadata( + { + provider: targetModel.providerId, + model: targetModel.modelId, + }, + capabilityResolutionSnapshot + ); if (!canonical) return null; const providerId = canonical.provider || targetModel.providerId; diff --git a/src/app/api/v1/models/catalogResponse.ts b/src/app/api/v1/models/catalogResponse.ts index eab83ddd0c..198a5a6d30 100644 --- a/src/app/api/v1/models/catalogResponse.ts +++ b/src/app/api/v1/models/catalogResponse.ts @@ -229,7 +229,7 @@ export async function finalizeCatalogResponse( await yieldTurn(); const capabilityResolutionSnapshot = createModelCapabilityResolutionSnapshot(); const enriched: Array> = []; - const catYIELD_EVERY = 1; + const catYIELD_EVERY = 5; let catEnrichCount = 0; for (const model of finalModels) { let listedModel: Record; diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index 8161057aca..329df3d883 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -3718,11 +3718,7 @@ "errorDescription": "لم نتمكن من تحميل بيانات المجموعة في الوقت الحالي. تحقق من اتصالك وحاول مرة أخرى.", "errorId": "معرّف الخطأ: {id}", "errorRetry": "حاول مرة أخرى", - "comboLabel": "كومبو", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "كومبو" }, "costs": { "title": "التكاليف", @@ -6220,8 +6216,7 @@ "kiro": "الفئة المجانية: 50 رصيدًا شهريًا (~25 ألف–100 ألف توكن). ⚠️ تحظر شروط خدمة Kiro استخدام وكيل/أداة خارجية.", "codex": "ربط OpenAI Codex باستخدام تدفق OAuth الحالي.", "qwen": "ربط Qwen Code باستخدام تدفق OAuth الحالي.", - "github-models": "أنشئ رمز وصول شخصي (PAT) لـ GitHub بنطاق 'models: read' على github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "أنشئ رمز وصول شخصي (PAT) لـ GitHub بنطاق 'models: read' على github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} يقبل معرفات النماذج الأصلية للموفر. قم بالاستيراد من /models أو قم بإضافة معرفات مخصصة للتوجيه.", "bedrockModelsDescription": "يتم تحديد نطاق نماذج Amazon Bedrock حسب منطقة AWS. قم بالاستيراد من /models أو قم بإضافة معرفات نماذج Bedrock الممكنة في المنطقة المحددة.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK مقتضب (文言)", "description": "أسلوب صيني كلاسيكي فائق الاقتضاب (متاح للغة الصينية فقط)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "انتظر فترة التهدئة", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "الصحة", "cliproxyapiPort": "منفذ", "qdrantHost": "مضيف", - "qdrantCollection": "مجموعة", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "مجموعة" }, "contextRtk": { "title": "محرك آر تي كيه", @@ -8637,28 +8624,7 @@ "saved": "تم الحفظ.", "saveFailed": "تعذر الحفظ.", "enableAria": "تمكين محرك OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "الخدمات المضمنة", @@ -9538,17 +9504,7 @@ "updatedShort": "تم التحديث", "lastRefreshed": "آخر تحديث", "providerQuota": "حصة المزود", - "providerQuotaHomeHint": "الحالة المباشرة عبر الحسابات المتصلة", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "الحالة المباشرة عبر الحسابات المتصلة" }, "modals": { "waitingAuth": "في انتظار التصريح", diff --git a/src/i18n/messages/az.json b/src/i18n/messages/az.json index e340292765..7c7754b05e 100644 --- a/src/i18n/messages/az.json +++ b/src/i18n/messages/az.json @@ -3718,11 +3718,7 @@ "errorDescription": "Hazırda kombinasiyalı məlumatları yükləyə bilmirik. Bağlantınızı yoxlayın və yenidən cəhd edin.", "errorId": "Xəta ID: {id}", "errorRetry": "Yenidən Cəhd Et", - "comboLabel": "Kombinasiya", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinasiya" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Connect OpenAI Codex with the existing OAuth flow.", "qwen": "Connect Qwen Code with the existing OAuth flow.", - "github-models": "github.com/settings/tokens ünvanında 'models: read' əhatə dairəsi ilə GitHub PAT yaradın", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens ünvanında 'models: read' əhatə dairəsi ilə GitHub PAT yaradın" }, "passthroughModelsDescription": "{provider} provayderin yerli model identifikatorlarını qəbul edir. /modellərdən idxal edin və ya marşrutlaşdırma üçün fərdi identifikatorlar əlavə edin.", "bedrockModelsDescription": "Amazon Bedrock modelləri AWS bölgəsi tərəfindən əhatə olunur. /modellərdən idxal edin və ya seçilmiş regionda aktivləşdirilmiş Bedrock model ID-lərini əlavə edin.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Yığcam CJK (文言)", "description": "Klassik Çin ultra-yığcam üslubu (yalnız Çin dili üçün əlçatandır)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Cooldown üçün gözləyin", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Sağlamlıq", "cliproxyapiPort": "Port", "qdrantHost": "Ev sahibi", - "qdrantCollection": "Kolleksiya", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Kolleksiya" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Saxlanıldı.", "saveFailed": "Saxlamaq mümkün olmadı.", "enableAria": "OmniGlyph mühərrikini aktivləşdir", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Quraşdırılmış xidmətlər", @@ -9538,17 +9504,7 @@ "updatedShort": "Yeniləndi", "lastRefreshed": "Sonuncu dəfə yenilənib", "providerQuota": "Provayder kvotası", - "providerQuotaHomeHint": "Qoşulmuş hesablar üzrə canlı status", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Qoşulmuş hesablar üzrə canlı status" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json index 58099b4fae..463943e63a 100644 --- a/src/i18n/messages/bg.json +++ b/src/i18n/messages/bg.json @@ -3718,11 +3718,7 @@ "errorDescription": "Не успяхме да заредим данните за комбинирането в момента. Проверете връзката си и опитайте отново.", "errorId": "Идентификатор на грешка: {id}", "errorRetry": "Опитай отново", - "comboLabel": "Комбо", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Комбо" }, "costs": { "title": "Разходи", @@ -6220,8 +6216,7 @@ "kiro": "Безплатен план: 50 кредита/месец (~25K–100K токена). ⚠️ Условията за ползване на Kiro забраняват използването на прокси/инструменти от трети страни.", "codex": "Свързване на OpenAI Codex със съществуващия OAuth поток.", "qwen": "Свързване на Qwen Code със съществуващия OAuth поток.", - "github-models": "Създайте GitHub PAT с обхват 'models: read' на github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Създайте GitHub PAT с обхват 'models: read' на github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} приема собствени идентификатори на модела на доставчика. Импортирайте от /models или добавете персонализирани идентификатори за маршрутизиране.", "bedrockModelsDescription": "Моделите на Amazon Bedrock са обхванати от регион на AWS. Импортирайте от /models или добавете идентификатори на модел Bedrock, активирани в избрания регион.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Сбит CJK (文言)", "description": "Класически китайски ултра-сбит стил (наличен само за китайски)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Изчакайте Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Здраве", "cliproxyapiPort": "Порт", "qdrantHost": "Хост", - "qdrantCollection": "Колекция", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Колекция" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Запазено.", "saveFailed": "Неуспешно запазване.", "enableAria": "Активиране на енджина OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Вградени услуги", @@ -9538,17 +9504,7 @@ "updatedShort": "Актуализирано", "lastRefreshed": "Последно опреснено", "providerQuota": "Квота на доставчика", - "providerQuotaHomeHint": "Статус в реално време за свързаните акаунти", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Статус в реално време за свързаните акаунти" }, "modals": { "waitingAuth": "Изчакване на разрешение", diff --git a/src/i18n/messages/bn.json b/src/i18n/messages/bn.json index 13600ef639..fe486a3ffd 100644 --- a/src/i18n/messages/bn.json +++ b/src/i18n/messages/bn.json @@ -3718,11 +3718,7 @@ "errorDescription": "আমরা এখন কম্বো ডেটা লোড করতে পারিনি। আপনার সংযোগ পরীক্ষা করুন এবং আবার চেষ্টা করুন।", "errorId": "ত্রুটি আইডি: {id}", "errorRetry": "পুনরায় চেষ্টা করুন", - "comboLabel": "কম্বো", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "কম্বো" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "ফ্রি টিয়ার: 50 ক্রেডিট/মাস (~25K–100K টোকেন)। ⚠️ Kiro ToS তৃতীয় পক্ষের প্রক্সি/হারনেস ব্যবহার নিষিদ্ধ করে।", "codex": "বিদ্যমান OAuth ফ্লো-এর সাথে OpenAI Codex সংযুক্ত করুন।", "qwen": "বিদ্যমান OAuth ফ্লো-এর সাথে Qwen Code সংযুক্ত করুন।", - "github-models": "github.com/settings/tokens-এ 'models: read' স্কোপ সহ একটি GitHub PAT তৈরি করুন", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens-এ 'models: read' স্কোপ সহ একটি GitHub PAT তৈরি করুন" }, "passthroughModelsDescription": "{provider} প্রদানকারী-নেটিভ মডেল আইডি গ্রহণ করে। /মডেল থেকে আমদানি করুন বা রাউটিং এর জন্য কাস্টম আইডি যোগ করুন।", "bedrockModelsDescription": "অ্যামাজন বেডরক মডেলগুলি AWS অঞ্চল দ্বারা স্কোপ করা হয়েছে৷ /মডেল থেকে আমদানি করুন বা নির্বাচিত অঞ্চলে সক্ষম বেডরক মডেল আইডি যোগ করুন।", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "সংক্ষিপ্ত CJK (文言)", "description": "ক্লাসিক্যাল-চাইনিজ অতি-সংক্ষিপ্ত শৈলী (শুধুমাত্র চাইনিজ ভাষার জন্য উপলব্ধ)।" - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "কুলডাউনের জন্য অপেক্ষা করুন", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "স্বাস্থ্য", "cliproxyapiPort": "পোর্ট", "qdrantHost": "হোস্ট", - "qdrantCollection": "সংগ্রহ", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "সংগ্রহ" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "সংরক্ষিত হয়েছে।", "saveFailed": "সংরক্ষণ করা যায়নি।", "enableAria": "OmniGlyph ইঞ্জিনটি সক্রিয় করুন", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "এমবেডেড সেবাসমূহ", @@ -9538,17 +9504,7 @@ "updatedShort": "আপডেট করা হয়েছে", "lastRefreshed": "সর্বশেষ রিফ্রেশ করা হয়েছে", "providerQuota": "প্রোভাইডার কোটা", - "providerQuotaHomeHint": "সংযুক্ত অ্যাকাউন্টগুলোর লাইভ স্ট্যাটাস", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "সংযুক্ত অ্যাকাউন্টগুলোর লাইভ স্ট্যাটাস" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json index cb6e74098a..22139ce32a 100644 --- a/src/i18n/messages/cs.json +++ b/src/i18n/messages/cs.json @@ -3718,11 +3718,7 @@ "errorDescription": "Nyní se nám nepodařilo načíst data pro kombinaci. Zkontrolujte své připojení a zkuste to znovu.", "errorId": "Chyba ID: {id}", "errorRetry": "Zkusit znovu", - "comboLabel": "Kombinace", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinace" }, "costs": { "title": "Náklady", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Připojit OpenAI Codex pomocí stávajícího toku OAuth.", "qwen": "Připojit Qwen Code pomocí stávajícího toku OAuth.", - "github-models": "Vytvořte GitHub PAT s rozsahem 'models: read' na github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Vytvořte GitHub PAT s rozsahem 'models: read' na github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} přijímá ID modelu nativního poskytovatele. Importujte z /models nebo přidejte vlastní ID pro směrování.", "bedrockModelsDescription": "Modely Amazon Bedrock jsou vymezeny podle regionu AWS. Importujte z /models nebo přidejte ID modelu Bedrock povolené ve vybrané oblasti.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Stručné CJK (文言)", "description": "Klasický čínský ultra stručný styl (k dispozici pouze pro čínštinu)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Počkejte na Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Zdraví", "cliproxyapiPort": "Port", "qdrantHost": "Host", - "qdrantCollection": "Kolekce", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Kolekce" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Uloženo.", "saveFailed": "Nepodařilo se uložit.", "enableAria": "Povolit engine OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Vestavěné služby", @@ -9538,17 +9504,7 @@ "updatedShort": "Aktualizováno", "lastRefreshed": "Naposledy aktualizováno", "providerQuota": "Kvóta poskytovatele", - "providerQuotaHomeHint": "Aktuální stav napříč připojenými účty", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Aktuální stav napříč připojenými účty" }, "modals": { "waitingAuth": "Očekávám Autorizaci", diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json index 7c746db1a7..cbd74f9a49 100644 --- a/src/i18n/messages/da.json +++ b/src/i18n/messages/da.json @@ -3718,11 +3718,7 @@ "errorDescription": "Vi kunne ikke indlæse kombinationsdata lige nu. Tjek din forbindelse og prøv igen.", "errorId": "Fejl ID: {id}", "errorRetry": "Prøv igen", - "comboLabel": "Kombination", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombination" }, "costs": { "title": "Omkostninger", @@ -6220,8 +6216,7 @@ "kiro": "Gratis niveau: 50 kreditter/måned (~25K–100K tokens). ⚠️ Kiro ToS forbyder brug af tredjeparts proxy/harness.", "codex": "Forbind OpenAI Codex med det eksisterende OAuth-flow.", "qwen": "Forbind Qwen Code med det eksisterende OAuth-flow.", - "github-models": "Opret et GitHub PAT med 'models: read'-scope på github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Opret et GitHub PAT med 'models: read'-scope på github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} accepterer udbyder-native model-id'er. Importer fra /models eller tilføj brugerdefinerede id'er til routing.", "bedrockModelsDescription": "Amazon Bedrock-modeller er omfattet af AWS-regionen. Importer fra /models eller tilføj Bedrock-model-id'er aktiveret i det valgte område.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Kortfattet CJK (文言)", "description": "Klassisk kinesisk ultra-kortfattet stil (kun tilgængelig for kinesisk)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Vent på nedkøling", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Sundhed", "cliproxyapiPort": "Port", "qdrantHost": "Vært", - "qdrantCollection": "Samling", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Samling" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Gemt.", "saveFailed": "Kunne ikke gemme.", "enableAria": "Aktiver OmniGlyph-motoren", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Indlejrede tjenester", @@ -9538,17 +9504,7 @@ "updatedShort": "Opdateret", "lastRefreshed": "Sidst opdateret", "providerQuota": "Udbyderkvote", - "providerQuotaHomeHint": "Livestatus på tværs af tilknyttede konti", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Livestatus på tværs af tilknyttede konti" }, "modals": { "waitingAuth": "Venter på autorisation", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index c7702188ae..fb4e14b485 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -3718,11 +3718,7 @@ "errorDescription": "Wir konnten die Kombinationsdaten momentan nicht laden. Überprüfen Sie Ihre Verbindung und versuchen Sie es erneut.", "errorId": "Fehler-ID: {id}", "errorRetry": "Versuche es erneut", - "comboLabel": "Kombination", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombination" }, "costs": { "title": "Kosten", @@ -6220,8 +6216,7 @@ "kiro": "Kostenlose Stufe: 50 Credits/Monat (~25K–100K Token). ⚠️ Die Nutzungsbedingungen von Kiro verbieten die Nutzung von Drittanbieter-Proxys/Harnesses.", "codex": "OpenAI Codex mit dem bestehenden OAuth-Flow verbinden.", "qwen": "Qwen Code mit dem bestehenden OAuth-Flow verbinden.", - "github-models": "Erstellen Sie einen GitHub-PAT mit dem Scope 'models: read' unter github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Erstellen Sie einen GitHub-PAT mit dem Scope 'models: read' unter github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} akzeptiert provider-native Modell-IDs. Importiere sie über /models oder füge eigene IDs fürs Routing hinzu.", "bedrockModelsDescription": "Amazon-Bedrock-Modelle hängen von der AWS-Region ab. Importiere sie über /models oder füge Bedrock-Modell-IDs hinzu, die in der gewählten Region aktiviert sind.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Knappe CJK (文言)", "description": "Klassisch-chinesischer, extrem knapper Stil (nur für Chinesisch verfügbar)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Warten Sie auf die Abklingzeit", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Gesundheit", "cliproxyapiPort": "Port", "qdrantHost": "Host", - "qdrantCollection": "Sammlung", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Sammlung" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Gespeichert.", "saveFailed": "Konnte nicht gespeichert werden.", "enableAria": "OmniGlyph-Engine aktivieren", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Eingebettete Dienste", @@ -9538,17 +9504,7 @@ "updatedShort": "Aktualisiert", "lastRefreshed": "Zuletzt aktualisiert", "providerQuota": "Anbieter-Kontingent", - "providerQuotaHomeHint": "Live-Status über verbundene Konten hinweg", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Live-Status über verbundene Konten hinweg" }, "modals": { "waitingAuth": "Warten auf Autorisierung", diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index 1f4c9dc5d7..6978c01a41 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -3718,11 +3718,7 @@ "errorDescription": "No pudimos cargar los datos del combo en este momento. Verifica tu conexión y vuelve a intentarlo.", "errorId": "Error ID: {id}", "errorRetry": "Inténtalo de nuevo", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Costos", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Connect OpenAI Codex with the existing OAuth flow.", "qwen": "Connect Qwen Code with the existing OAuth flow.", - "github-models": "Create a GitHub PAT with 'models: read' scope at github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Create a GitHub PAT with 'models: read' scope at github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} acepta ID de modelo nativo del proveedor. Importe desde /models o agregue ID personalizados para enrutamiento.", "bedrockModelsDescription": "Los modelos de Amazon Bedrock tienen como alcance la región de AWS. Importe desde /models o agregue ID de modelo Bedrock habilitados en la región seleccionada.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Terse CJK (文言)", "description": "Classical-Chinese ultra-terse style (available only for Chinese)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Esperar a que se enfríe", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Salud", "cliproxyapiPort": "Puerto", "qdrantHost": "Anfitrión", - "qdrantCollection": "Colección", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Colección" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Saved.", "saveFailed": "Could not save.", "enableAria": "Enable the OmniGlyph engine", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Embedded Services", @@ -9538,17 +9504,7 @@ "updatedShort": "Updated", "lastRefreshed": "Last refreshed", "providerQuota": "Provider Quota", - "providerQuotaHomeHint": "Live status across connected accounts", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Live status across connected accounts" }, "modals": { "waitingAuth": "Esperando autorización", diff --git a/src/i18n/messages/fa.json b/src/i18n/messages/fa.json index 12659ec986..9962332860 100644 --- a/src/i18n/messages/fa.json +++ b/src/i18n/messages/fa.json @@ -3718,11 +3718,7 @@ "errorDescription": "در حال حاضر نمی‌توانیم داده‌های ترکیبی را بارگذاری کنیم. اتصال خود را بررسی کنید و دوباره تلاش کنید.", "errorId": "شناسه خطا: {id}", "errorRetry": "دوباره تلاش کنید", - "comboLabel": "ترکیب", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "ترکیب" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "طرح رایگان: ۵۰ اعتبار/ماه (~۲۵ هزار–۱۰۰ هزار توکن). ⚠️ شرایط خدمات Kiro استفاده از پروکسی/هارنس شخص ثالث را ممنوع می‌کند.", "codex": "اتصال OpenAI Codex با جریان OAuth موجود.", "qwen": "اتصال Qwen Code با جریان OAuth موجود.", - "github-models": "یک GitHub PAT با محدوده (scope) 'models: read' در github.com/settings/tokens ایجاد کنید", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "یک GitHub PAT با محدوده (scope) 'models: read' در github.com/settings/tokens ایجاد کنید" }, "passthroughModelsDescription": "{provider} شناسه های مدل بومی ارائه دهنده را می پذیرد. از /models وارد کنید یا شناسه های سفارشی را برای مسیریابی اضافه کنید.", "bedrockModelsDescription": "مدل‌های بستر آمازون بر اساس منطقه AWS تعیین می‌شوند. از /models وارد کنید یا شناسه‌های مدل Bedrock را که در منطقه انتخابی فعال شده است اضافه کنید.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK موجز (文言)", "description": "سبک فوق‌موجز چینی کلاسیک (فقط برای زبان چینی در دسترس است)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "منتظر Cooldown باشید", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "سلامت", "cliproxyapiPort": "پورت", "qdrantHost": "میزبان", - "qdrantCollection": "مجموعه", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "مجموعه" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "ذخیره شد.", "saveFailed": "ذخیره نشد.", "enableAria": "فعال‌سازی موتور OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "سرویس‌های تعبیه‌شده", @@ -9538,17 +9504,7 @@ "updatedShort": "به‌روزرسانی شد", "lastRefreshed": "آخرین به‌روزرسانی", "providerQuota": "سهمیه ارائه‌دهنده", - "providerQuotaHomeHint": "وضعیت لحظه‌ای در حساب‌های متصل", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "وضعیت لحظه‌ای در حساب‌های متصل" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json index e28bcc1a46..6b882ce670 100644 --- a/src/i18n/messages/fi.json +++ b/src/i18n/messages/fi.json @@ -3718,11 +3718,7 @@ "errorDescription": "Emme voi ladata yhdistelmädataa juuri nyt. Tarkista yhteytesi ja yritä uudelleen.", "errorId": "Virhe ID: {id}", "errorRetry": "Yritä uudelleen", - "comboLabel": "Yhdistelmä", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Yhdistelmä" }, "costs": { "title": "Kustannukset", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Yhdistä OpenAI Codex olemassa olevalla OAuth-työnkululla.", "qwen": "Yhdistä Qwen Code olemassa olevalla OAuth-työnkululla.", - "github-models": "Luo GitHub PAT -tunniste 'models: read' -käyttöoikeudella osoitteessa github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Luo GitHub PAT -tunniste 'models: read' -käyttöoikeudella osoitteessa github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} hyväksyy palveluntarjoajan alkuperäiset mallitunnukset. Tuo /modelsista tai lisää mukautettuja tunnuksia reititystä varten.", "bedrockModelsDescription": "Amazon Bedrock -mallit on luokiteltu AWS-alueen mukaan. Tuo osoitteesta /models tai lisää valitulla alueella käytössä olevat kallioperän mallitunnukset.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Tiivis CJK (文言)", "description": "Klassisen kiinan ultra-tiivis tyyli (saatavilla vain kiinaksi)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Odota jäähdytystä", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Terveys", "cliproxyapiPort": "Portti", "qdrantHost": "Isäntä", - "qdrantCollection": "Kokoelma", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Kokoelma" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Tallennettu.", "saveFailed": "Tallennus epäonnistui.", "enableAria": "Ota OmniGlyph-moottori käyttöön", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Upotetut palvelut", @@ -9538,17 +9504,7 @@ "updatedShort": "Päivitetty", "lastRefreshed": "Viimeksi päivitetty", "providerQuota": "Tarjoajan kiintiö", - "providerQuotaHomeHint": "Reaaliaikainen tila yhdistetyissä tileissä", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Reaaliaikainen tila yhdistetyissä tileissä" }, "modals": { "waitingAuth": "Odotetaan valtuutusta", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 2472ed509b..84ffa972ec 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -3718,11 +3718,7 @@ "errorDescription": "Les données des combos ne peuvent pas être chargées pour le moment. Vérifiez votre connexion et réessayez.", "errorId": "ID d'erreur : {id}", "errorRetry": "Réessayer", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Coûts", @@ -6220,8 +6216,7 @@ "kiro": "Offre gratuite : 50 crédits/mois (~25K–100K tokens). ⚠️ Les conditions d'utilisation de Kiro interdisent l'utilisation de proxys/harness tiers.", "codex": "Connecter OpenAI Codex avec le flux OAuth existant.", "qwen": "Connecter Qwen Code avec le flux OAuth existant.", - "github-models": "Créez un PAT GitHub avec la portée 'models: read' sur github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Créez un PAT GitHub avec la portée 'models: read' sur github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} accepte les ID de modèle natifs du fournisseur. Importez depuis /models ou ajoutez des ID personnalisés pour le routage.", "bedrockModelsDescription": "Les modèles Amazon Bedrock sont définis par région AWS. Importez depuis /models ou ajoutez les ID de modèle Bedrock activés dans la région sélectionnée.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK concis (文言)", "description": "Style ultra-concis en chinois classique (disponible uniquement pour le chinois)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Attendez le temps de recharge", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Santé", "cliproxyapiPort": "Port", "qdrantHost": "Hôte", - "qdrantCollection": "Collection", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Collection" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Enregistré.", "saveFailed": "Impossible d'enregistrer.", "enableAria": "Activer le moteur OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Services intégrés", @@ -9538,17 +9504,7 @@ "updatedShort": "Mis à jour", "lastRefreshed": "Dernière actualisation", "providerQuota": "Quota du fournisseur", - "providerQuotaHomeHint": "Statut en direct sur les comptes connectés", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Statut en direct sur les comptes connectés" }, "modals": { "waitingAuth": "En attente d'autorisation", diff --git a/src/i18n/messages/gu.json b/src/i18n/messages/gu.json index 02d9fd52aa..eb23ac5ebd 100644 --- a/src/i18n/messages/gu.json +++ b/src/i18n/messages/gu.json @@ -3718,11 +3718,7 @@ "errorDescription": "અમે હાલમાં કોમ્બો ડેટા લોડ કરી શક્યા નથી. તમારી કનેક્શન તપાસો અને ફરી પ્રયાસ કરો.", "errorId": "ભૂલ આઈડી: {id}", "errorRetry": "ફરીથી પ્રયાસ કરો", - "comboLabel": "કોમ્બો", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "કોમ્બો" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "મફત સ્તર: 50 ક્રેડિટ્સ/મહિનો (~25K–100K ટોકન્સ). ⚠️ Kiro ToS તૃતીય-પક્ષ પ્રોક્સી/હાર્નેસના ઉપયોગ પર પ્રતિબંધ મૂકે છે.", "codex": "OpenAI Codex ને હાલના OAuth ફ્લો સાથે કનેક્ટ કરો.", "qwen": "Qwen Code ને હાલના OAuth ફ્લો સાથે કનેક્ટ કરો.", - "github-models": "github.com/settings/tokens પર 'models: read' સ્કોપ સાથે GitHub PAT બનાવો", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens પર 'models: read' સ્કોપ સાથે GitHub PAT બનાવો" }, "passthroughModelsDescription": "{provider} પ્રદાતા-મૂળ મોડેલ ID સ્વીકારે છે. /મોડેલ્સમાંથી આયાત કરો અથવા રૂટીંગ માટે કસ્ટમ ID ઉમેરો.", "bedrockModelsDescription": "એમેઝોન બેડરોક મોડલ્સ AWS પ્રદેશ દ્વારા સ્કોપ્ડ છે. /મોડેલ્સમાંથી આયાત કરો અથવા પસંદ કરેલ પ્રદેશમાં સક્ષમ કરેલ બેડરોક મોડેલ ID ઉમેરો.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "સંક્ષિપ્ત CJK (文言)", "description": "ક્લાસિકલ-ચાઇનીઝ અલ્ટ્રા-સંક્ષિપ્ત શૈલી (ફક્ત ચાઇનીઝ માટે ઉપલબ્ધ)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "કૂલડાઉન માટે રાહ જુઓ", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "આરોગ્ય", "cliproxyapiPort": "પોર્ટ", "qdrantHost": "હોસ્ટ", - "qdrantCollection": "સંગ્રહ", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "સંગ્રહ" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "સાચવ્યું.", "saveFailed": "સાચવી શકાયું નથી.", "enableAria": "OmniGlyph એન્જિન સક્ષમ કરો", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "એમ્બેડેડ સેવાઓ", @@ -9538,17 +9504,7 @@ "updatedShort": "અપડેટ કરેલ", "lastRefreshed": "છેલ્લે રિફ્રેશ કરેલ", "providerQuota": "પ્રદાતા ક્વોટા", - "providerQuotaHomeHint": "કનેક્ટેડ એકાઉન્ટ્સમાં લાઇવ સ્થિતિ", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "કનેક્ટેડ એકાઉન્ટ્સમાં લાઇવ સ્થિતિ" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/he.json b/src/i18n/messages/he.json index 04844c0408..764e30527a 100644 --- a/src/i18n/messages/he.json +++ b/src/i18n/messages/he.json @@ -3718,11 +3718,7 @@ "errorDescription": "לא הצלחנו לטעון את נתוני הקומבו כרגע. בדוק את החיבור שלך ונסה שוב.", "errorId": "שגיאת מזהה: {id}", "errorRetry": "נסה שוב", - "comboLabel": "קומבו", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "קומבו" }, "costs": { "title": "עלויות", @@ -6220,8 +6216,7 @@ "kiro": "מסלול חינמי: 50 קרדיטים לחודש (~25K–100K טוקנים). ⚠️ תנאי השימוש של Kiro אוסרים על שימוש בפרוקסי/harness של צד שלישי.", "codex": "חבר את OpenAI Codex באמצעות תהליך ה-OAuth הקיים.", "qwen": "חבר את Qwen Code באמצעות תהליך ה-OAuth הקיים.", - "github-models": "צור GitHub PAT עם הרשאת 'models: read' ב-github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "צור GitHub PAT עם הרשאת 'models: read' ב-github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} מקבל מזהי מודל מקוריים של ספק. ייבא מ /models או הוסף מזהים מותאמים אישית לניתוב.", "bedrockModelsDescription": "הדגמים של Amazon Bedrock נמצאים לפי אזור AWS. ייבא מ-/models או הוסף מזהי דגמי Bedrock המופעלים באזור הנבחר.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK תמציתי (文言)", "description": "סגנון סיני קלאסי אולטרה-תמציתי (זמין עבור סינית בלבד)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "המתן ל-Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "בריאות", "cliproxyapiPort": "פורט", "qdrantHost": "מארח", - "qdrantCollection": "אוסף", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "אוסף" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "נשמר.", "saveFailed": "לא ניתן היה לשמור.", "enableAria": "הפעל את מנוע OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "שירותים מובנים", @@ -9538,17 +9504,7 @@ "updatedShort": "עודכן", "lastRefreshed": "רענון אחרון", "providerQuota": "מכסת ספק", - "providerQuotaHomeHint": "סטטוס בזמן אמת בכל החשבונות המחוברים", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "סטטוס בזמן אמת בכל החשבונות המחוברים" }, "modals": { "waitingAuth": "ממתין לאישור", diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json index 9cc3db2fa0..6591311189 100644 --- a/src/i18n/messages/hi.json +++ b/src/i18n/messages/hi.json @@ -3718,11 +3718,7 @@ "errorDescription": "हम अभी कॉम्बो डेटा लोड नहीं कर सके। कृपया अपनी कनेक्शन की जांच करें और फिर से प्रयास करें।", "errorId": "त्रुटि आईडी: {id}", "errorRetry": "फिर से प्रयास करें", - "comboLabel": "कॉम्बो", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "कॉम्बो" }, "costs": { "title": "लागत", @@ -6220,8 +6216,7 @@ "kiro": "फ्री टियर: 50 क्रेडिट/महीना (~25K–100K टोकन)। ⚠️ Kiro ToS तृतीय-पक्ष प्रॉक्सी/हार्नेस के उपयोग को प्रतिबंधित करता है।", "codex": "OpenAI Codex को मौजूदा OAuth फ़्लो से कनेक्ट करें।", "qwen": "Qwen Code को मौजूदा OAuth फ़्लो से कनेक्ट करें।", - "github-models": "github.com/settings/tokens पर 'models: read' स्कोप के साथ एक GitHub PAT बनाएं", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens पर 'models: read' स्कोप के साथ एक GitHub PAT बनाएं" }, "passthroughModelsDescription": "{provider} प्रदाता-मूल मॉडल आईडी स्वीकार करता है। /मॉडल से आयात करें या रूटिंग के लिए कस्टम आईडी जोड़ें।", "bedrockModelsDescription": "अमेज़ॅन बेडरॉक मॉडल का दायरा AWS क्षेत्र द्वारा तय किया गया है। /मॉडल से आयात करें या चयनित क्षेत्र में सक्षम बेडरॉक मॉडल आईडी जोड़ें।", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "संक्षिप्त CJK (文言)", "description": "शास्त्रीय-चीनी अति-संक्षिप्त शैली (केवल चीनी भाषा के लिए उपलब्ध)।" - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "ठंडा होने की प्रतीक्षा करें", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "स्वास्थ्य", "cliproxyapiPort": "पोर्ट", "qdrantHost": "होस्ट", - "qdrantCollection": "संग्रह", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "संग्रह" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "सहेजा गया।", "saveFailed": "सहेजा नहीं जा सका।", "enableAria": "OmniGlyph इंजन सक्षम करें", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "एम्बेडेड सेवाएँ", @@ -9538,17 +9504,7 @@ "updatedShort": "अपडेट किया गया", "lastRefreshed": "अंतिम बार रीफ़्रेश किया गया", "providerQuota": "प्रदाता कोटा", - "providerQuotaHomeHint": "कनेक्टेड खातों में लाइव स्थिति", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "कनेक्टेड खातों में लाइव स्थिति" }, "modals": { "waitingAuth": "प्राधिकरण की प्रतीक्षा की जा रही है", diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json index cfe296c07f..e5ccd837b3 100644 --- a/src/i18n/messages/hu.json +++ b/src/i18n/messages/hu.json @@ -3718,11 +3718,7 @@ "errorDescription": "Jelenleg nem tudtuk betölteni a kombinált adatokat. Ellenőrizze a kapcsolatát, és próbálja újra.", "errorId": "Hibaazonosító: {id}", "errorRetry": "Próbáld újra", - "comboLabel": "Kombó", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombó" }, "costs": { "title": "Költségek", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Connect OpenAI Codex with the existing OAuth flow.", "qwen": "Connect Qwen Code with the existing OAuth flow.", - "github-models": "Hozzon létre egy GitHub PAT-ot 'models: read' hatókörrel a github.com/settings/tokens oldalon", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Hozzon létre egy GitHub PAT-ot 'models: read' hatókörrel a github.com/settings/tokens oldalon" }, "passthroughModelsDescription": "Az {provider} elfogadja a szolgáltató natív modellazonosítóit. Importáljon a /models-ból, vagy adjon hozzá egyéni azonosítókat az útválasztáshoz.", "bedrockModelsDescription": "Az Amazon Bedrock modellek hatóköre az AWS régió szerint történik. Importáljon a /models mappából, vagy adja hozzá a kiválasztott régióban engedélyezett Bedrock modellazonosítókat.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Tömör CJK (文言)", "description": "Klasszikus kínai ultratömör stílus (csak kínai nyelven érhető el)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Várja meg a lehűlést", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Egészség", "cliproxyapiPort": "Port", "qdrantHost": "Gazda", - "qdrantCollection": "Gyűjtemény", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Gyűjtemény" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Mentve.", "saveFailed": "Nem sikerült menteni.", "enableAria": "Az OmniGlyph motor engedélyezése", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Beágyazott szolgáltatások", @@ -9538,17 +9504,7 @@ "updatedShort": "Frissítve", "lastRefreshed": "Legutóbb frissítve", "providerQuota": "Szolgáltatói kvóta", - "providerQuotaHomeHint": "Élő állapot a csatlakoztatott fiókokban", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Élő állapot a csatlakoztatott fiókokban" }, "modals": { "waitingAuth": "Várakozás az engedélyezésre", diff --git a/src/i18n/messages/id.json b/src/i18n/messages/id.json index d7b86daef1..352daafd83 100644 --- a/src/i18n/messages/id.json +++ b/src/i18n/messages/id.json @@ -3718,11 +3718,7 @@ "errorDescription": "Kami tidak dapat memuat data kombinasi saat ini. Periksa koneksi Anda dan coba lagi.", "errorId": "Error ID: {id}", "errorRetry": "Coba Lagi", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Biaya", @@ -6220,8 +6216,7 @@ "kiro": "Tingkat gratis: 50 kredit/bulan (~25K–100K token). ⚠️ ToS Kiro melarang penggunaan proksi/harness pihak ketiga.", "codex": "Hubungkan OpenAI Codex dengan alur OAuth yang ada.", "qwen": "Hubungkan Qwen Code dengan alur OAuth yang ada.", - "github-models": "Buat GitHub PAT dengan cakupan 'models: read' di github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Buat GitHub PAT dengan cakupan 'models: read' di github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} menerima ID model asli penyedia. Impor dari /models atau tambahkan ID khusus untuk perutean.", "bedrockModelsDescription": "Model Amazon Bedrock dicakup berdasarkan wilayah AWS. Impor dari /models atau tambahkan ID model Batuan Dasar yang diaktifkan di wilayah yang dipilih.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK Ringkas (文言)", "description": "Gaya ultra-ringkas Tionghoa Klasik (hanya tersedia untuk bahasa Tionghoa)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Tunggu Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Kesehatan", "cliproxyapiPort": "Port", "qdrantHost": "Host", - "qdrantCollection": "Koleksi", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Koleksi" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Disimpan.", "saveFailed": "Tidak dapat menyimpan.", "enableAria": "Aktifkan mesin OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Layanan Tersemat", @@ -9538,17 +9504,7 @@ "updatedShort": "Diperbarui", "lastRefreshed": "Terakhir disegarkan", "providerQuota": "Kuota Penyedia", - "providerQuotaHomeHint": "Status langsung di seluruh akun yang terhubung", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Status langsung di seluruh akun yang terhubung" }, "modals": { "waitingAuth": "Menunggu Otorisasi", diff --git a/src/i18n/messages/in.json b/src/i18n/messages/in.json index bca7339449..19f45ac1ca 100644 --- a/src/i18n/messages/in.json +++ b/src/i18n/messages/in.json @@ -3718,11 +3718,7 @@ "errorDescription": "Kami tidak dapat memuat data kombinasi saat ini. Periksa koneksi Anda dan coba lagi.", "errorId": "ID Kesalahan: {id}", "errorRetry": "Coba Lagi", - "comboLabel": "Kombinasi", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinasi" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "Tingkat gratis: 50 kredit/bulan (~25K–100K token). ⚠️ Kiro ToS melarang penggunaan proksi/harness pihak ketiga.", "codex": "Hubungkan OpenAI Codex dengan alur OAuth yang ada.", "qwen": "Hubungkan Qwen Code dengan alur OAuth yang ada.", - "github-models": "Buat PAT GitHub dengan cakupan 'models: read' di github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Buat PAT GitHub dengan cakupan 'models: read' di github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} menerima ID model asli penyedia. Impor dari /models atau tambahkan ID khusus untuk perutean.", "bedrockModelsDescription": "Model Amazon Bedrock dicakup berdasarkan wilayah AWS. Impor dari /models atau tambahkan ID model Batuan Dasar yang diaktifkan di wilayah yang dipilih.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK Ringkas (文言)", "description": "Gaya ultra-ringkas Tionghoa Klasik (hanya tersedia untuk bahasa Tionghoa)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Tunggu Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Kesehatan", "cliproxyapiPort": "Port", "qdrantHost": "Tuan Rumah", - "qdrantCollection": "Koleksi", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Koleksi" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Tersimpan.", "saveFailed": "Tidak dapat menyimpan.", "enableAria": "Aktifkan mesin OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Layanan Tertanam", @@ -9538,17 +9504,7 @@ "updatedShort": "Diperbarui", "lastRefreshed": "Terakhir disegarkan", "providerQuota": "Kuota Penyedia", - "providerQuotaHomeHint": "Status langsung di seluruh akun yang terhubung", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Status langsung di seluruh akun yang terhubung" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json index cfdc5c16b7..7332c3206b 100644 --- a/src/i18n/messages/it.json +++ b/src/i18n/messages/it.json @@ -3718,11 +3718,7 @@ "errorDescription": "Non siamo riusciti a caricare i dati del combo in questo momento. Controlla la tua connessione e riprova.", "errorId": "ID Errore: {id}", "errorRetry": "Riprova", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Costi", @@ -6220,8 +6216,7 @@ "kiro": "Piano gratuito: 50 crediti/mese (~25K–100K token). ⚠️ I ToS di Kiro vietano l'uso di proxy/harness di terze parti.", "codex": "Connetti OpenAI Codex al flusso OAuth esistente.", "qwen": "Connetti Qwen Code al flusso OAuth esistente.", - "github-models": "Crea un PAT di GitHub con ambito 'models: read' su github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Crea un PAT di GitHub con ambito 'models: read' su github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} accetta ID modello nativi del provider. Importa da /modelli o aggiungi ID personalizzati per il routing.", "bedrockModelsDescription": "I modelli Amazon Bedrock hanno come ambito la regione AWS. Importa da /models o aggiungi gli ID modello Bedrock abilitati nella regione selezionata.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK conciso (文言)", "description": "Stile ultra-conciso in cinese classico (disponibile solo per il cinese)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Attendi il raffreddamento", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Salute", "cliproxyapiPort": "Porta", "qdrantHost": "Host", - "qdrantCollection": "Collezione", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Collezione" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Salvato.", "saveFailed": "Impossibile salvare.", "enableAria": "Abilita il motore OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Servizi integrati", @@ -9538,17 +9504,7 @@ "updatedShort": "Aggiornato", "lastRefreshed": "Ultimo aggiornamento", "providerQuota": "Quota del provider", - "providerQuotaHomeHint": "Stato in tempo reale tra gli account connessi", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Stato in tempo reale tra gli account connessi" }, "modals": { "waitingAuth": "In attesa di autorizzazione", diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json index 7b86be7adb..a8c37c9eec 100644 --- a/src/i18n/messages/ja.json +++ b/src/i18n/messages/ja.json @@ -3718,11 +3718,7 @@ "errorDescription": "現在、コンボデータを読み込むことができません。接続を確認して、再試行してください。", "errorId": "エラー ID: {id}", "errorRetry": "もう一度試してください", - "comboLabel": "コンボ", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "コンボ" }, "costs": { "title": "コスト", @@ -6220,8 +6216,7 @@ "kiro": "無料枠: 50クレジット/月(約25K〜100Kトークン)。⚠️ Kiroの利用規約(ToS)は、サードパーティのプロキシやハーネスの使用を禁止しています。", "codex": "既存のOAuthフローを使用してOpenAI Codexに接続します。", "qwen": "既存のOAuthフローを使用してQwen Codeに接続します。", - "github-models": "github.com/settings/tokens で 'models: read' スコープを持つGitHub PATを作成", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens で 'models: read' スコープを持つGitHub PATを作成" }, "passthroughModelsDescription": "{provider} は、プロバイダーネイティブのモデル ID を受け入れます。 /models からインポートするか、ルーティング用のカスタム ID を追加します。", "bedrockModelsDescription": "Amazon Bedrock モデルは、AWS リージョンによって範囲が定められています。 /models からインポートするか、選択したリージョンで有効になっている Bedrock モデル ID を追加します。", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "簡潔なCJK (文言)", "description": "漢文の超簡潔スタイル (中国語でのみ利用可能)。" - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "クールダウンを待ちます", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "健康", "cliproxyapiPort": "ポート", "qdrantHost": "ホスト", - "qdrantCollection": "コレクション", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "コレクション" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "保存されました。", "saveFailed": "保存できませんでした。", "enableAria": "OmniGlyphエンジンを有効にする", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "組み込みサービス", @@ -9538,17 +9504,7 @@ "updatedShort": "更新済み", "lastRefreshed": "最終更新", "providerQuota": "プロバイダークォータ", - "providerQuotaHomeHint": "接続されたアカウント全体のライブステータス", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "接続されたアカウント全体のライブステータス" }, "modals": { "waitingAuth": "承認を待っています", diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json index fc210ab0f7..a003916a18 100644 --- a/src/i18n/messages/ko.json +++ b/src/i18n/messages/ko.json @@ -3718,11 +3718,7 @@ "errorDescription": "현재 콤보 데이터를 불러올 수 없습니다. 연결을 확인하고 다시 시도하세요.", "errorId": "오류 ID: {id}", "errorRetry": "다시 시도해 주세요", - "comboLabel": "콤보", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "콤보" }, "costs": { "title": "비용", @@ -6220,8 +6216,7 @@ "kiro": "무료 티어: 월 50 크레딧(~25K–100K 토큰). ⚠️ Kiro ToS는 서드파티 프록시/하네스 사용을 금지합니다.", "codex": "기존 OAuth 흐름으로 OpenAI Codex를 연결합니다.", "qwen": "기존 OAuth 흐름으로 Qwen Code를 연결합니다.", - "github-models": "github.com/settings/tokens 에서 'models: read' 범위(scope)를 가진 GitHub PAT를 생성하세요.", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens 에서 'models: read' 범위(scope)를 가진 GitHub PAT를 생성하세요." }, "passthroughModelsDescription": "{provider}은 공급자 기본 모델 ID를 허용합니다. /models에서 가져오거나 라우팅을 위한 사용자 정의 ID를 추가하세요.", "bedrockModelsDescription": "Amazon Bedrock 모델은 AWS 지역별로 범위가 지정됩니다. /models에서 가져오거나 선택한 지역에서 활성화된 Bedrock 모델 ID를 추가하세요.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "간결한 CJK (文言)", "description": "한문 초간결 스타일 (중국어만 지원)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "쿨다운 대기", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "건강", "cliproxyapiPort": "포트", "qdrantHost": "호스트", - "qdrantCollection": "컬렉션", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "컬렉션" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "저장되었습니다.", "saveFailed": "저장할 수 없습니다.", "enableAria": "OmniGlyph 엔진 활성화", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "임베디드 서비스", @@ -9538,17 +9504,7 @@ "updatedShort": "업데이트됨", "lastRefreshed": "마지막 새로고침", "providerQuota": "제공자 할당량", - "providerQuotaHomeHint": "연결된 계정의 실시간 상태", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "연결된 계정의 실시간 상태" }, "modals": { "waitingAuth": "승인을 기다리는 중", diff --git a/src/i18n/messages/mr.json b/src/i18n/messages/mr.json index 63c9b916ae..d7d3d22e29 100644 --- a/src/i18n/messages/mr.json +++ b/src/i18n/messages/mr.json @@ -3718,11 +3718,7 @@ "errorDescription": "आम्ही सध्या कॉम्बो डेटा लोड करू शकत नाही. तुमचा कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.", "errorId": "त्रुटी आयडी: {id}", "errorRetry": "पुन्हा प्रयत्न करा", - "comboLabel": "कॉम्बो", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "कॉम्बो" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "मोफत स्तर: 50 क्रेडिट्स/महिना (~25K–100K टोकन्स). ⚠️ Kiro ToS तृतीय-पक्ष प्रॉक्सी/हार्नेसच्या वापरावर बंदी घालते.", "codex": "सध्याच्या OAuth फ्लोसह OpenAI Codex कनेक्ट करा.", "qwen": "सध्याच्या OAuth फ्लोसह Qwen Code कनेक्ट करा.", - "github-models": "github.com/settings/tokens वर 'models: read' स्कोपसह GitHub PAT तयार करा", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens वर 'models: read' स्कोपसह GitHub PAT तयार करा" }, "passthroughModelsDescription": "{provider} प्रदाता-नेटिव्ह मॉडेल आयडी स्वीकारते. /मॉडेलमधून आयात करा किंवा राउटिंगसाठी सानुकूल आयडी जोडा.", "bedrockModelsDescription": "Amazon बेडरॉक मॉडेल्स AWS क्षेत्राद्वारे व्यापलेले आहेत. /मॉडेल्समधून आयात करा किंवा निवडलेल्या प्रदेशात सक्षम केलेले बेडरॉक मॉडेल आयडी जोडा.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "संक्षिप्त CJK (文言)", "description": "अभिजात-चिनी अति-संक्षिप्त शैली (केवळ चिनी भाषेसाठी उपलब्ध)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "कूलडाउनची प्रतीक्षा करा", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "आरोग्य", "cliproxyapiPort": "पोर्ट", "qdrantHost": "होस्ट", - "qdrantCollection": "संग्रह", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "संग्रह" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "जतन केले.", "saveFailed": "जतन करता आले नाही.", "enableAria": "OmniGlyph इंजिन सक्षम करा", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "एम्बेडेड सेवा", @@ -9538,17 +9504,7 @@ "updatedShort": "अपडेट केले", "lastRefreshed": "शेवटचे रिफ्रेश केलेले", "providerQuota": "प्रदाता कोटा", - "providerQuotaHomeHint": "कनेक्ट केलेल्या खात्यांमधील थेट स्थिती", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "कनेक्ट केलेल्या खात्यांमधील थेट स्थिती" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json index b3799330b3..3f7482ff8f 100644 --- a/src/i18n/messages/ms.json +++ b/src/i18n/messages/ms.json @@ -3718,11 +3718,7 @@ "errorDescription": "Kami tidak dapat memuatkan data combo buat masa ini. Semak sambungan anda dan cuba lagi.", "errorId": "Ralat ID: {id}", "errorRetry": "Cuba Lagi", - "comboLabel": "Gabungan", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Gabungan" }, "costs": { "title": "Kos", @@ -6220,8 +6216,7 @@ "kiro": "Peringkat percuma: 50 kredit/bulan (~25K–100K token). ⚠️ ToS Kiro melarang penggunaan proksi/harness pihak ketiga.", "codex": "Sambungkan OpenAI Codex dengan aliran OAuth sedia ada.", "qwen": "Sambungkan Qwen Code dengan aliran OAuth sedia ada.", - "github-models": "Cipta PAT GitHub dengan skop 'models: read' di github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Cipta PAT GitHub dengan skop 'models: read' di github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} menerima ID model asli pembekal. Import daripada /models atau tambahkan ID tersuai untuk penghalaan.", "bedrockModelsDescription": "Model Amazon Bedrock diliputi oleh rantau AWS. Import daripada /models atau tambah ID model Bedrock yang didayakan di rantau yang dipilih.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK Ringkas (文言)", "description": "Gaya ultra-ringkas Bahasa Cina Klasik (hanya tersedia untuk bahasa Cina)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Tunggu Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Kesihatan", "cliproxyapiPort": "Pelabuhan", "qdrantHost": "Hos", - "qdrantCollection": "Koleksi", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Koleksi" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Disimpan.", "saveFailed": "Tidak dapat menyimpan.", "enableAria": "Dayakan enjin OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Perkhidmatan Terbenam", @@ -9538,17 +9504,7 @@ "updatedShort": "Dikemas kini", "lastRefreshed": "Terakhir disegarkan", "providerQuota": "Kuota Penyedia", - "providerQuotaHomeHint": "Status langsung merentas akaun yang disambungkan", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Status langsung merentas akaun yang disambungkan" }, "modals": { "waitingAuth": "Menunggu Keizinan", diff --git a/src/i18n/messages/nl.json b/src/i18n/messages/nl.json index 2e967c5645..5355f29c17 100644 --- a/src/i18n/messages/nl.json +++ b/src/i18n/messages/nl.json @@ -3718,11 +3718,7 @@ "errorDescription": "We konden de combogegevens op dit moment niet laden. Controleer je verbinding en probeer het opnieuw.", "errorId": "Fout-ID: {id}", "errorRetry": "Probeer het opnieuw", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Kosten", @@ -6220,8 +6216,7 @@ "kiro": "Gratis tier: 50 credits/maand (~25K–100K tokens). ⚠️ Kiro ToS verbiedt het gebruik van externe proxy/harness.", "codex": "Verbind OpenAI Codex met de bestaande OAuth-flow.", "qwen": "Verbind Qwen Code met de bestaande OAuth-flow.", - "github-models": "Maak een GitHub PAT aan met de scope 'models: read' op github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Maak een GitHub PAT aan met de scope 'models: read' op github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} accepteert provider-native model-ID's. Importeer uit /models of voeg aangepaste ID's toe voor routering.", "bedrockModelsDescription": "Amazon Bedrock-modellen zijn afgestemd op de AWS-regio. Importeer uit /models of voeg Bedrock-model-ID's toe die zijn ingeschakeld in de geselecteerde regio.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Beknopt CJK (文言)", "description": "Klassiek-Chinese ultra-beknopte stijl (alleen beschikbaar voor Chinees)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Wacht op afkoelen", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Gezondheid", "cliproxyapiPort": "Haven", "qdrantHost": "Host", - "qdrantCollection": "Verzameling", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Verzameling" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Opgeslagen.", "saveFailed": "Opslaan mislukt.", "enableAria": "Schakel de OmniGlyph-engine in", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Ingebedde services", @@ -9538,17 +9504,7 @@ "updatedShort": "Bijgewerkt", "lastRefreshed": "Laatst vernieuwd", "providerQuota": "Providerquota", - "providerQuotaHomeHint": "Live status over verbonden accounts", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Live status over verbonden accounts" }, "modals": { "waitingAuth": "Wachten op toestemming", diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json index 10b36bfe4a..77a2074b7e 100644 --- a/src/i18n/messages/no.json +++ b/src/i18n/messages/no.json @@ -3718,11 +3718,7 @@ "errorDescription": "Vi kunne ikke laste inn kombinasjonsdata akkurat nå. Sjekk tilkoblingen din og prøv igjen.", "errorId": "Feil-ID: {id}", "errorRetry": "Prøv igjen", - "comboLabel": "Kombinasjon", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinasjon" }, "costs": { "title": "Kostnader", @@ -6220,8 +6216,7 @@ "kiro": "Gratisnivå: 50 kreditter/måned (~25K–100K tokens). ⚠️ Kiros brukervilkår forbyr bruk av tredjeparts proxy/harness.", "codex": "Koble til OpenAI Codex med den eksisterende OAuth-flyten.", "qwen": "Koble til Qwen Code med den eksisterende OAuth-flyten.", - "github-models": "Opprett et GitHub PAT med 'models: read'-omfang på github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Opprett et GitHub PAT med 'models: read'-omfang på github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} godtar leverandør-native modell-ID-er. Importer fra /models eller legg til egendefinerte ID-er for ruting.", "bedrockModelsDescription": "Amazon Bedrock-modeller er omfattet av AWS-regionen. Importer fra /models eller legg til berggrunnsmodell-IDer aktivert i den valgte regionen.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Kortfattet CJK (文言)", "description": "Klassisk-kinesisk ultrakortfattet stil (kun tilgjengelig for kinesisk)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Vent på nedkjøling", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Helse", "cliproxyapiPort": "Port", "qdrantHost": "Vert", - "qdrantCollection": "Samling", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Samling" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Lagret.", "saveFailed": "Kunne ikke lagre.", "enableAria": "Aktiver OmniGlyph-motoren", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Innebygde tjenester", @@ -9538,17 +9504,7 @@ "updatedShort": "Oppdatert", "lastRefreshed": "Sist oppdatert", "providerQuota": "Leverandørkvote", - "providerQuotaHomeHint": "Sanntidsstatus på tvers av tilkoblede kontoer", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Sanntidsstatus på tvers av tilkoblede kontoer" }, "modals": { "waitingAuth": "Venter på autorisasjon", diff --git a/src/i18n/messages/phi.json b/src/i18n/messages/phi.json index 09b239e750..cfe0a6e006 100644 --- a/src/i18n/messages/phi.json +++ b/src/i18n/messages/phi.json @@ -3718,11 +3718,7 @@ "errorDescription": "Hindi namin ma-load ang combo data sa ngayon. Suriin ang iyong koneksyon at subukan muli.", "errorId": "Error ID: {id}", "errorRetry": "Subukan Muli", - "comboLabel": "Kumbinasyon", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kumbinasyon" }, "costs": { "title": "Mga gastos", @@ -6220,8 +6216,7 @@ "kiro": "Libreng tier: 50 credits/buwan (~25K–100K tokens). ⚠️ Ipinagbabawal ng Kiro ToS ang paggamit ng third-party proxy/harness.", "codex": "Ikonekta ang OpenAI Codex gamit ang umiiral na OAuth flow.", "qwen": "Ikonekta ang Qwen Code gamit ang umiiral na OAuth flow.", - "github-models": "Gumawa ng GitHub PAT na may 'models: read' na scope sa github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Gumawa ng GitHub PAT na may 'models: read' na scope sa github.com/settings/tokens" }, "passthroughModelsDescription": "Tumatanggap ang {provider} ng mga provider-native na model ID. Mag-import mula sa /models o magdagdag ng mga custom na ID para sa pagruruta.", "bedrockModelsDescription": "Ang mga modelo ng Amazon Bedrock ay saklaw ng rehiyon ng AWS. Mag-import mula sa /models o magdagdag ng mga Bedrock model ID na pinagana sa napiling rehiyon.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Maikling CJK (文言)", "description": "Klasikong Tsino na ultra-maikling estilo (magagamit lamang para sa Tsino)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Maghintay para sa Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Kalusugan", "cliproxyapiPort": "Port", "qdrantHost": "Host", - "qdrantCollection": "Koleksyon", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Koleksyon" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Nai-save.", "saveFailed": "Hindi mai-save.", "enableAria": "I-enable ang OmniGlyph engine", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Mga Naka-embed na Serbisyo", @@ -9538,17 +9504,7 @@ "updatedShort": "Na-update", "lastRefreshed": "Huling na-refresh", "providerQuota": "Quota ng Provider", - "providerQuotaHomeHint": "Live na status sa lahat ng nakakonektang account", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Live na status sa lahat ng nakakonektang account" }, "modals": { "waitingAuth": "Naghihintay ng Awtorisasyon", diff --git a/src/i18n/messages/pl.json b/src/i18n/messages/pl.json index 30a734c1dd..04590ea8ad 100644 --- a/src/i18n/messages/pl.json +++ b/src/i18n/messages/pl.json @@ -3718,11 +3718,7 @@ "errorDescription": "Nie mogliśmy teraz załadować danych combo. Sprawdź swoje połączenie i spróbuj ponownie.", "errorId": "Identyfikator błędu: {id}", "errorRetry": "Spróbuj ponownie", - "comboLabel": "Kombinacja", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinacja" }, "costs": { "title": "Koszty", @@ -6220,8 +6216,7 @@ "kiro": "Darmowy plan: 50 kredytów/miesiąc (~25K–100K tokenów). ⚠️ ToS Kiro zabrania korzystania z zewnętrznych proxy/harness.", "codex": "Połącz OpenAI Codex za pomocą istniejącego przepływu OAuth.", "qwen": "Połącz Qwen Code za pomocą istniejącego przepływu OAuth.", - "github-models": "Utwórz token GitHub PAT z zakresem 'models: read' na github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Utwórz token GitHub PAT z zakresem 'models: read' na github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} akceptuje natywne ID models dla provider. Zaimportuj z /models lub dodaj własne ID do routing.", "bedrockModelsDescription": "Models Amazon Bedrock są ograniczone do regionu AWS. Zaimportuj z /models lub dodaj Bedrock ID models włączone w wybranym regionie.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Zwięzłe CJK (文言)", "description": "Klasyczny chiński styl ultra-zwięzły (dostępny tylko dla języka chińskiego)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Czekaj na cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Zdrowie", "cliproxyapiPort": "Port", "qdrantHost": "Host", - "qdrantCollection": "Kolekcja", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Kolekcja" }, "contextRtk": { "title": "Silnik RTK", @@ -8637,28 +8624,7 @@ "saved": "Zapisano.", "saveFailed": "Nie można zapisać.", "enableAria": "Włącz silnik OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Usługi wbudowane", @@ -9538,17 +9504,7 @@ "updatedShort": "Zaktualizowano", "lastRefreshed": "Ostatnio odświeżono", "providerQuota": "Provider Quota", - "providerQuotaHomeHint": "Status na żywo na połączonych kontach", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Status na żywo na połączonych kontach" }, "modals": { "waitingAuth": "Oczekiwanie na autoryzację", diff --git a/src/i18n/messages/pt-BR.json b/src/i18n/messages/pt-BR.json index 00cdc772d9..a4f8a5f3cf 100644 --- a/src/i18n/messages/pt-BR.json +++ b/src/i18n/messages/pt-BR.json @@ -3718,11 +3718,7 @@ "errorDescription": "Não conseguimos carregar os dados do combo no momento. Verifique sua conexão e tente novamente.", "errorId": "ID de Erro: {id}", "errorRetry": "Tente Novamente", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Custos", @@ -6220,8 +6216,7 @@ "kiro": "Nível gratuito: 50 créditos/mês (~25K–100K tokens). ⚠️ Os Termos de Serviço do Kiro proíbem o uso de proxy/harness de terceiros.", "codex": "Conecte o OpenAI Codex com o fluxo OAuth existente.", "qwen": "Conecte o Qwen Code com o fluxo OAuth existente.", - "github-models": "Crie um PAT do GitHub com o escopo 'models: read' em github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Crie um PAT do GitHub com o escopo 'models: read' em github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} aceita IDs de modelo nativos do provedor. Importe de /models ou adicione IDs personalizados para roteamento.", "bedrockModelsDescription": "Os modelos Amazon Bedrock têm escopo definido por região da AWS. Importe de /models ou adicione IDs de modelo Bedrock habilitados na região selecionada.", @@ -7215,7 +7210,6 @@ "configured": "configurado", "none": "Nenhum", "modelOverrideValuePlaceholder": "Valor numérico", - "modelOverrideReasoningEffortsPlaceholder": "Lista em inglês separada por vírgulas, ex. low, medium, high", "addKeyValue": "Adicionar valor da chave", "noModelOverrides": "Nenhuma substituição configurada para este modelo.", "modelOverrideLoadFailed": "Falha ao carregar substituições de modelo", @@ -7790,10 +7784,6 @@ "terse-cjk": { "label": "CJK conciso (文言)", "description": "Estilo ultra-conciso em chinês clássico (disponível apenas para chinês)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Aguarde o resfriamento", @@ -8226,11 +8216,7 @@ "cliproxyapiHealth": "Saúde", "cliproxyapiPort": "Porta", "qdrantHost": "Host", - "qdrantCollection": "Coleção", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Coleção" }, "contextRtk": { "title": "Motor RTK", diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index cb45bacae5..9935bfe7ef 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -3718,11 +3718,7 @@ "errorDescription": "Não conseguimos carregar os dados do combo neste momento. Verifique a sua ligação e tente novamente.", "errorId": "ID de Erro: {id}", "errorRetry": "Tente Novamente", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Custos", @@ -6220,8 +6216,7 @@ "kiro": "Nível gratuito: 50 créditos/mês (~25K–100K tokens). ⚠️ Os ToS do Kiro proíbem a utilização de proxy/harness de terceiros.", "codex": "Ligar o OpenAI Codex com o fluxo OAuth existente.", "qwen": "Ligar o Qwen Code com o fluxo OAuth existente.", - "github-models": "Crie um PAT do GitHub com o âmbito 'models: read' em github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Crie um PAT do GitHub com o âmbito 'models: read' em github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} aceita IDs de modelo nativos do provedor. Importe de /models ou adicione IDs personalizados para roteamento.", "bedrockModelsDescription": "Os modelos Amazon Bedrock têm escopo definido por região da AWS. Importe de /models ou adicione IDs de modelo Bedrock habilitados na região selecionada.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK conciso (文言)", "description": "Estilo ultraconciso em chinês clássico (disponível apenas para chinês)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Aguarde o resfriamento", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Saúde", "cliproxyapiPort": "Porto", "qdrantHost": "Anfitrião", - "qdrantCollection": "Coleção", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Coleção" }, "contextRtk": { "title": "Motor RTK", @@ -8637,28 +8624,7 @@ "saved": "Guardado.", "saveFailed": "Não foi possível guardar.", "enableAria": "Ativar o motor OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Serviços Incorporados", @@ -9538,17 +9504,7 @@ "updatedShort": "Atualizado", "lastRefreshed": "Última atualização", "providerQuota": "Quota do fornecedor", - "providerQuotaHomeHint": "Estado em tempo real em todas as contas associadas", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Estado em tempo real em todas as contas associadas" }, "modals": { "waitingAuth": "Aguardando autorização", diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json index 11f9dcdb85..cec84fa369 100644 --- a/src/i18n/messages/ro.json +++ b/src/i18n/messages/ro.json @@ -3718,11 +3718,7 @@ "errorDescription": "Nu am putut încărca datele combo în acest moment. Verifică-ți conexiunea și încearcă din nou.", "errorId": "ID eroare: {id}", "errorRetry": "Încearcă din nou", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Costuri", @@ -6220,8 +6216,7 @@ "kiro": "Nivel gratuit: 50 de credite/lună (~25K–100K tokenuri). ⚠️ Kiro ToS interzice utilizarea de proxy/harness terțe.", "codex": "Conectați OpenAI Codex cu fluxul OAuth existent.", "qwen": "Conectați Qwen Code cu fluxul OAuth existent.", - "github-models": "Creați un GitHub PAT cu scope-ul 'models: read' la github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Creați un GitHub PAT cu scope-ul 'models: read' la github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} acceptă ID-uri de model native ale furnizorului. Importați din /modele sau adăugați ID-uri personalizate pentru rutare.", "bedrockModelsDescription": "Modelele Amazon Bedrock sunt acoperite de regiunea AWS. Importați din /modele sau adăugați ID-uri de model Bedrock activate în regiunea selectată.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK concis (文言)", "description": "Stil ultra-concis în chineza clasică (disponibil doar pentru chineză)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Așteptați răcirea", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Sănătate", "cliproxyapiPort": "Port", "qdrantHost": "Gazdă", - "qdrantCollection": "Colecție", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Colecție" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Salvat.", "saveFailed": "Nu s-a putut salva.", "enableAria": "Activează motorul OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Servicii integrate", @@ -9538,17 +9504,7 @@ "updatedShort": "Actualizat", "lastRefreshed": "Ultima reîmprospătare", "providerQuota": "Cotă furnizor", - "providerQuotaHomeHint": "Stare în timp real pentru conturile conectate", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Stare în timp real pentru conturile conectate" }, "modals": { "waitingAuth": "În așteptarea autorizației", diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json index 108c4ce690..ba9a4e812e 100644 --- a/src/i18n/messages/ru.json +++ b/src/i18n/messages/ru.json @@ -3718,11 +3718,7 @@ "errorDescription": "Мы не смогли загрузить данные комбо в данный момент. Проверьте ваше соединение и попробуйте снова.", "errorId": "Идентификатор ошибки: {id}", "errorRetry": "Попробуйте снова", - "comboLabel": "Комбо", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Комбо" }, "costs": { "title": "Затраты", @@ -6220,8 +6216,7 @@ "kiro": "Бесплатный тариф: 50 кредитов/месяц (~25K–100K токенов). ⚠️ Условия использования Kiro запрещают использование сторонних прокси/оболочек.", "codex": "Подключите OpenAI Codex с помощью существующего процесса OAuth.", "qwen": "Подключите Qwen Code с помощью существующего процесса OAuth.", - "github-models": "Создайте GitHub PAT с областью доступа 'models: read' на github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Создайте GitHub PAT с областью доступа 'models: read' на github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} принимает собственные идентификаторы моделей поставщика. Импортируйте из /models или добавляйте собственные идентификаторы для маршрутизации.", "bedrockModelsDescription": "Модели Amazon Bedrock охватываются регионом AWS. Импортируйте из /models или добавьте идентификаторы моделей Bedrock, включенные в выбранном регионе.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Краткий CJK (文言)", "description": "Ультракраткий классический китайский стиль (доступно только для китайского языка)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Подождите перезарядки", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Здоровье", "cliproxyapiPort": "Порт", "qdrantHost": "Хост", - "qdrantCollection": "Коллекция", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Коллекция" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Сохранено.", "saveFailed": "Не удалось сохранить.", "enableAria": "Включить движок OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Встроенные службы", @@ -9538,17 +9504,7 @@ "updatedShort": "Обновлено", "lastRefreshed": "Последнее обновление", "providerQuota": "Квота Провайдера", - "providerQuotaHomeHint": "Живой статус по подключенным аккаунтам", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Живой статус по подключенным аккаунтам" }, "modals": { "waitingAuth": "Ожидание авторизации", diff --git a/src/i18n/messages/sk.json b/src/i18n/messages/sk.json index 2b1f8c38c8..fbd89bef06 100644 --- a/src/i18n/messages/sk.json +++ b/src/i18n/messages/sk.json @@ -3718,11 +3718,7 @@ "errorDescription": "Momentálne sa nám nepodarilo načítať údaje kombinácie. Skontrolujte svoje pripojenie a skúste to znova.", "errorId": "Chyba ID: {id}", "errorRetry": "Skúste znova", - "comboLabel": "Kombinácia", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinácia" }, "costs": { "title": "náklady", @@ -6220,8 +6216,7 @@ "kiro": "Bezplatná úroveň: 50 kreditov/mesiac (~25k – 100k tokenov). ⚠️ Podmienky používania (ToS) Kiro zakazujú používanie proxy/harness tretích strán.", "codex": "Pripojte OpenAI Codex pomocou existujúceho toku OAuth.", "qwen": "Pripojte Qwen Code pomocou existujúceho toku OAuth.", - "github-models": "Vytvorte si GitHub PAT s rozsahom 'models: read' na adrese github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Vytvorte si GitHub PAT s rozsahom 'models: read' na adrese github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} akceptuje ID modelu natívneho poskytovateľa. Importujte z /models alebo pridajte vlastné ID pre smerovanie.", "bedrockModelsDescription": "Modely Amazon Bedrock sú vymedzené podľa regiónu AWS. Importovať z /models alebo pridať ID modelu Bedrock povolené vo vybranom regióne.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Stručné CJK (文言)", "description": "Klasický čínsky ultra stručný štýl (dostupný len pre čínštinu)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Počkajte na Cooldown", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Zdravie", "cliproxyapiPort": "Port", "qdrantHost": "Host", - "qdrantCollection": "Zbierka", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Zbierka" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Uložené.", "saveFailed": "Nepodarilo sa uložiť.", "enableAria": "Povoliť engine OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Vstavané služby", @@ -9538,17 +9504,7 @@ "updatedShort": "Aktualizované", "lastRefreshed": "Naposledy obnovené", "providerQuota": "Kvóta poskytovateľa", - "providerQuotaHomeHint": "Aktuálny stav naprieč pripojenými účtami", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Aktuálny stav naprieč pripojenými účtami" }, "modals": { "waitingAuth": "Čaká sa na autorizáciu", diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json index 0aa1969eda..75b165386a 100644 --- a/src/i18n/messages/sv.json +++ b/src/i18n/messages/sv.json @@ -3718,11 +3718,7 @@ "errorDescription": "Vi kunde inte ladda combo-data just nu. Kontrollera din anslutning och försök igen.", "errorId": "Fel-ID: {id}", "errorRetry": "Försök igen", - "comboLabel": "Kombination", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombination" }, "costs": { "title": "Kostnader", @@ -6220,8 +6216,7 @@ "kiro": "Gratisnivå: 50 krediter/månad (~25K–100K tokens). ⚠️ Kiros användarvillkor förbjuder användning av tredjepartsproxy/harness.", "codex": "Anslut OpenAI Codex med det befintliga OAuth-flödet.", "qwen": "Anslut Qwen Code med det befintliga OAuth-flödet.", - "github-models": "Skapa en GitHub PAT med omfånget 'models: read' på github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Skapa en GitHub PAT med omfånget 'models: read' på github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} accepterar leverantörsbaserade modell-ID:n. Importera från /models eller lägg till anpassade ID:n för routing.", "bedrockModelsDescription": "Amazon Bedrock-modeller omfattas av AWS-regionen. Importera från /models eller lägg till Bedrock-modell-ID:n aktiverade i den valda regionen.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Kortfattad CJK (文言)", "description": "Klassisk kinesisk ultrakortfattad stil (endast tillgänglig för kinesiska)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Vänta på nedkylning", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Hälsa", "cliproxyapiPort": "Port", "qdrantHost": "Värd", - "qdrantCollection": "Samling", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Samling" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Sparat.", "saveFailed": "Kunde inte spara.", "enableAria": "Aktivera OmniGlyph-motorn", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Inbäddade tjänster", @@ -9538,17 +9504,7 @@ "updatedShort": "Uppdaterad", "lastRefreshed": "Senast uppdaterad", "providerQuota": "Leverantörskvot", - "providerQuotaHomeHint": "Livestatus för anslutna konton", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Livestatus för anslutna konton" }, "modals": { "waitingAuth": "Väntar på auktorisering", diff --git a/src/i18n/messages/sw.json b/src/i18n/messages/sw.json index 77ae0f4373..15f8f0e290 100644 --- a/src/i18n/messages/sw.json +++ b/src/i18n/messages/sw.json @@ -3718,11 +3718,7 @@ "errorDescription": "Hatuwezi kupakia data ya combo kwa sasa. Angalia muunganisho wako na ujaribu tena.", "errorId": "Kosa ID: {id}", "errorRetry": "Jaribu Tena", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "Kiwango cha bure: mikopo 50/mwezi (~tokeni 25K–100K). ⚠️ Kiro ToS inakataza matumizi ya proksi/harness ya wahusika wengine.", "codex": "Unganisha OpenAI Codex na mtiririko uliopo wa OAuth.", "qwen": "Unganisha Qwen Code na mtiririko uliopo wa OAuth.", - "github-models": "Unda PAT ya GitHub yenye upeo wa 'models: read' kwenye github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Unda PAT ya GitHub yenye upeo wa 'models: read' kwenye github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} inakubali vitambulisho vya asili vya mtoa huduma. Ingiza kutoka /miundo au ongeza vitambulisho maalum vya kuelekeza.", "bedrockModelsDescription": "Mitindo ya Amazon Bedrock inatolewa na eneo la AWS. Ingiza kutoka /miundo au ongeza vitambulisho vya muundo wa Bedrock vilivyowezeshwa katika eneo lililochaguliwa.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK Fupi (文言)", "description": "Mtindo mfupi zaidi wa Kichina cha Kale (inapatikana kwa Kichina pekee)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Subiri hadi Kupunguza joto", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Afya", "cliproxyapiPort": "Bandari", "qdrantHost": "Mwenyeji", - "qdrantCollection": "Mkusanyiko", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Mkusanyiko" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Imehifadhiwa.", "saveFailed": "Imeshindwa kuhifadhi.", "enableAria": "Wezesha injini ya OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Huduma Zilizopachikwa", @@ -9538,17 +9504,7 @@ "updatedShort": "Imesasishwa", "lastRefreshed": "Ilihuishwa mara ya mwisho", "providerQuota": "Kiwango cha Mtoa Huduma", - "providerQuotaHomeHint": "Hali ya moja kwa moja kwenye akaunti zilizounganishwa", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Hali ya moja kwa moja kwenye akaunti zilizounganishwa" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/ta.json b/src/i18n/messages/ta.json index d944a2e6e4..d9bb96f0f4 100644 --- a/src/i18n/messages/ta.json +++ b/src/i18n/messages/ta.json @@ -3718,11 +3718,7 @@ "errorDescription": "நாங்கள் தற்போது கம்போ தரவுகளை ஏற்ற முடியவில்லை. உங்கள் இணைப்பை சரிபார்க்கவும் மற்றும் மீண்டும் முயற்சிக்கவும்.", "errorId": "பிழை அடையாளம்: {id}", "errorRetry": "மீண்டும் முயற்சி செய்", - "comboLabel": "கொம்போ", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "கொம்போ" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "இலவச அடுக்கு: 50 கிரெடிட்கள்/மாதம் (~25K–100K டோக்கன்கள்). ⚠️ Kiro ToS மூன்றாம் தரப்பு proxy/harness பயன்பாட்டைத் தடைசெய்கிறது.", "codex": "தற்போதுள்ள OAuth செயல்முறையுடன் OpenAI Codex-ஐ இணைக்கவும்.", "qwen": "தற்போதுள்ள OAuth செயல்முறையுடன் Qwen Code-ஐ இணைக்கவும்.", - "github-models": "github.com/settings/tokens இல் 'models: read' வரம்புடன் ஒரு GitHub PAT ஐ உருவாக்கவும்", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens இல் 'models: read' வரம்புடன் ஒரு GitHub PAT ஐ உருவாக்கவும்" }, "passthroughModelsDescription": "{provider} வழங்குநரின் சொந்த மாதிரி ஐடிகளை ஏற்றுக்கொள்கிறது. /மாடல்களில் இருந்து இறக்குமதி செய்யவும் அல்லது ரூட்டிங் செய்ய தனிப்பயன் ஐடிகளைச் சேர்க்கவும்.", "bedrockModelsDescription": "அமேசான் பெட்ராக் மாதிரிகள் AWS பிராந்தியத்தால் ஸ்கோப் செய்யப்படுகின்றன. /மாடல்களில் இருந்து இறக்குமதி செய்யவும் அல்லது தேர்ந்தெடுக்கப்பட்ட பகுதியில் செயல்படுத்தப்பட்ட பெட்ராக் மாடல் ஐடிகளைச் சேர்க்கவும்.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "சுருக்கமான CJK (文言)", "description": "செம்மொழி-சீன மிகச் சுருக்கமான நடை (சீன மொழிக்கு மட்டுமே கிடைக்கும்)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "கூல்டவுனுக்காக காத்திருங்கள்", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "ஆரோக்கியம்", "cliproxyapiPort": "போர்ட்", "qdrantHost": "விருந்தினர்", - "qdrantCollection": "கலெக்ஷன்", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "கலெக்ஷன்" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "சேமிக்கப்பட்டது.", "saveFailed": "சேமிக்க முடியவில்லை.", "enableAria": "OmniGlyph இயந்திரத்தை இயக்கு", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "உட்பொதிக்கப்பட்ட சேவைகள்", @@ -9538,17 +9504,7 @@ "updatedShort": "புதுப்பிக்கப்பட்டது", "lastRefreshed": "கடைசியாகப் புதுப்பிக்கப்பட்டது", "providerQuota": "வழங்குநர் ஒதுக்கீடு", - "providerQuotaHomeHint": "இணைக்கப்பட்ட கணக்குகளின் நேரலை நிலை", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "இணைக்கப்பட்ட கணக்குகளின் நேரலை நிலை" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/te.json b/src/i18n/messages/te.json index ac7538ee06..65aa08d437 100644 --- a/src/i18n/messages/te.json +++ b/src/i18n/messages/te.json @@ -3718,11 +3718,7 @@ "errorDescription": "మేము ప్రస్తుతం కాంబో డేటాను లోడ్ చేయలేకపోయాము. మీ కనెక్షన్‌ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.", "errorId": "లోపం ID: {id}", "errorRetry": "మరలా ప్రయత్నించండి", - "comboLabel": "కాంబో", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "కాంబో" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "ఉచిత శ్రేణి: 50 క్రెడిట్‌లు/నెల (~25K–100K టోకెన్‌లు). ⚠️ Kiro ToS థర్డ్-పార్టీ ప్రాక్సీ/హార్నెస్ వినియోగాన్ని నిషేధిస్తుంది.", "codex": "ప్రస్తుత OAuth flowతో OpenAI Codexని కనెక్ట్ చేయండి.", "qwen": "ప్రస్తుత OAuth flowతో Qwen Codeని కనెక్ట్ చేయండి.", - "github-models": "github.com/settings/tokens వద్ద 'models: read' స్కోప్‌తో GitHub PATని సృష్టించండి", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens వద్ద 'models: read' స్కోప్‌తో GitHub PATని సృష్టించండి" }, "passthroughModelsDescription": "{provider} ప్రొవైడర్-స్థానిక మోడల్ IDలను అంగీకరిస్తుంది. /మోడల్స్ నుండి దిగుమతి చేయండి లేదా రూటింగ్ కోసం అనుకూల IDలను జోడించండి.", "bedrockModelsDescription": "అమెజాన్ బెడ్‌రాక్ మోడల్‌లు AWS ప్రాంతం ద్వారా స్కోప్ చేయబడ్డాయి. /మోడల్స్ నుండి దిగుమతి చేయండి లేదా ఎంచుకున్న ప్రాంతంలో ప్రారంభించబడిన బెడ్‌రాక్ మోడల్ IDలను జోడించండి.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "సంక్షిప్త CJK (文言)", "description": "క్లాసికల్-చైనీస్ అల్ట్రా-సంక్షిప్త శైలి (చైనీస్ కోసం మాత్రమే అందుబాటులో ఉంది)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "కూల్‌డౌన్ కోసం వేచి ఉండండి", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "ఆరోగ్యం", "cliproxyapiPort": "పోర్ట్", "qdrantHost": "హోస్ట్", - "qdrantCollection": "సేకరణ", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "సేకరణ" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "సేవ్ చేయబడింది.", "saveFailed": "సేవ్ చేయడం సాధ్యపడలేదు.", "enableAria": "OmniGlyph ఇంజిన్‌ను ఎనేబుల్ చేయండి", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "ఎంబెడెడ్ సేవలు", @@ -9538,17 +9504,7 @@ "updatedShort": "అప్‌డేట్ చేయబడింది", "lastRefreshed": "చివరిగా రిఫ్రెష్ చేయబడింది", "providerQuota": "ప్రొవైడర్ కోటా", - "providerQuotaHomeHint": "కనెక్ట్ చేయబడిన ఖాతాల ప్రత్యక్ష స్థితి", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "కనెక్ట్ చేయబడిన ఖాతాల ప్రత్యక్ష స్థితి" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json index c7bc2b9524..ed1e5d4063 100644 --- a/src/i18n/messages/th.json +++ b/src/i18n/messages/th.json @@ -3718,11 +3718,7 @@ "errorDescription": "ไม่สามารถโหลดข้อมูลคอมโบได้ในขณะนี้ กรุณาตรวจสอบการเชื่อมต่อของคุณและลองอีกครั้ง.", "errorId": "รหัสข้อผิดพลาด: {id}", "errorRetry": "ลองอีกครั้ง", - "comboLabel": "คอมโบ", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "คอมโบ" }, "costs": { "title": "ค่าใช้จ่าย", @@ -6220,8 +6216,7 @@ "kiro": "ระดับฟรี: 50 เครดิต/เดือน (~25K–100K โทเค็น) ⚠️ ToS ของ Kiro ห้ามใช้พร็อกซี/harness ของบุคคลที่สาม", "codex": "เชื่อมต่อ OpenAI Codex ด้วยโฟลว์ OAuth ที่มีอยู่", "qwen": "เชื่อมต่อ Qwen Code ด้วยโฟลว์ OAuth ที่มีอยู่", - "github-models": "สร้าง GitHub PAT ที่มีขอบเขต 'models: read' ที่ github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "สร้าง GitHub PAT ที่มีขอบเขต 'models: read' ที่ github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} ยอมรับ ID โมเดลดั้งเดิมของผู้ให้บริการ นำเข้าจาก /models หรือเพิ่ม ID ที่กำหนดเองสำหรับการกำหนดเส้นทาง", "bedrockModelsDescription": "โมเดล Amazon Bedrock มีการกำหนดขอบเขตตามภูมิภาค AWS นำเข้าจาก /models หรือเพิ่มรหัสรุ่น Bedrock ที่เปิดใช้งานในภูมิภาคที่เลือก", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "CJK แบบกระชับ (文言)", "description": "สไตล์ภาษาจีนคลาสสิกแบบกระชับอย่างยิ่ง (ใช้ได้เฉพาะภาษาจีนเท่านั้น)" - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "รอคูลดาวน์", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "สุขภาพ", "cliproxyapiPort": "พอร์ต", "qdrantHost": "โฮสต์", - "qdrantCollection": "การรวบรวม", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "การรวบรวม" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "บันทึกแล้ว", "saveFailed": "ไม่สามารถบันทึกได้", "enableAria": "เปิดใช้งานเอนจิน OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "บริการแบบฝัง", @@ -9538,17 +9504,7 @@ "updatedShort": "อัปเดตแล้ว", "lastRefreshed": "รีเฟรชล่าสุดเมื่อ", "providerQuota": "โควตาผู้ให้บริการ", - "providerQuotaHomeHint": "สถานะแบบเรียลไทม์ของบัญชีที่เชื่อมต่อทั้งหมด", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "สถานะแบบเรียลไทม์ของบัญชีที่เชื่อมต่อทั้งหมด" }, "modals": { "waitingAuth": "รอการอนุญาต", diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json index 96ff186627..5ef5816345 100644 --- a/src/i18n/messages/tr.json +++ b/src/i18n/messages/tr.json @@ -3718,11 +3718,7 @@ "errorDescription": "Şu anda kombinasyon verilerini yükleyemedik. Bağlantınızı kontrol edin ve tekrar deneyin.", "errorId": "Hata Kimliği: {id}", "errorRetry": "Tekrar Dene", - "comboLabel": "Kombinasyon", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Kombinasyon" }, "costs": { "title": "Maliyetler", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Mevcut OAuth akışı ile OpenAI Codex'i bağlayın.", "qwen": "Mevcut OAuth akışı ile Qwen Code'u bağlayın.", - "github-models": "github.com/settings/tokens adresinde 'models: read' kapsamına sahip bir GitHub PAT oluşturun", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens adresinde 'models: read' kapsamına sahip bir GitHub PAT oluşturun" }, "passthroughModelsDescription": "{provider} sağlayıcıya özgü model kimliklerini kabul eder. /models'den içe aktarın veya yönlendirme için özel kimlikler ekleyin.", "bedrockModelsDescription": "Amazon Bedrock modelleri AWS bölgesi kapsamındadır. /models'den içe aktarın veya seçilen bölgede etkin olan Bedrock model kimliklerini ekleyin.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Kısa ve öz CJK (文言)", "description": "Klasik Çince ultra kısa ve öz stil (yalnızca Çince için kullanılabilir)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Bekleme Süresini Bekleyin", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Sağlık", "cliproxyapiPort": "Port", "qdrantHost": "Ana Bilgisayar", - "qdrantCollection": "Koleksiyon", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Koleksiyon" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "Kaydedildi.", "saveFailed": "Kaydedilemedi.", "enableAria": "OmniGlyph motorunu etkinleştir", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Gömülü Servisler", @@ -9538,17 +9504,7 @@ "updatedShort": "Güncellendi", "lastRefreshed": "Son yenileme", "providerQuota": "Sağlayıcı Kotası", - "providerQuotaHomeHint": "Bağlı hesaplar genelinde canlı durum", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Bağlı hesaplar genelinde canlı durum" }, "modals": { "waitingAuth": "Yetkilendirme bekleniyor", diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json index 2194b88f3d..9fe5efbd52 100644 --- a/src/i18n/messages/uk-UA.json +++ b/src/i18n/messages/uk-UA.json @@ -3718,11 +3718,7 @@ "errorDescription": "Ми не змогли завантажити дані комбо прямо зараз. Перевірте своє з'єднання та спробуйте ще раз.", "errorId": "Ідентифікатор помилки: {id}", "errorRetry": "Спробуйте ще раз", - "comboLabel": "Комбо", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Комбо" }, "costs": { "title": "Витрати", @@ -6220,8 +6216,7 @@ "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.", "codex": "Connect OpenAI Codex with the existing OAuth flow.", "qwen": "Connect Qwen Code with the existing OAuth flow.", - "github-models": "Створіть GitHub PAT з областю видимості 'models: read' на github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Створіть GitHub PAT з областю видимості 'models: read' на github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} приймає власні ідентифікатори моделі постачальника. Імпортуйте з /models або додайте власні ідентифікатори для маршрутизації.", "bedrockModelsDescription": "Моделі Amazon Bedrock залежать від регіону AWS. Імпортуйте з /models або додайте ідентифікатори моделі Bedrock, активовані у вибраному регіоні.", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "Стисла CJK (文言)", "description": "Класичний китайський ультрастислий стиль (доступно тільки для китайської)." - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "Дочекайтеся перезарядки", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "Здоров'я", "cliproxyapiPort": "Порт", "qdrantHost": "Хост", - "qdrantCollection": "Колекція", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "Колекція" }, "contextRtk": { "title": "Двигун RTK", @@ -8637,28 +8624,7 @@ "saved": "Збережено.", "saveFailed": "Не вдалося зберегти.", "enableAria": "Увімкнути рушій OmniGlyph", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "Вбудовані служби", @@ -9538,17 +9504,7 @@ "updatedShort": "Оновлено", "lastRefreshed": "Останнє оновлення", "providerQuota": "Квота провайдера", - "providerQuotaHomeHint": "Стан у реальному часі за підключеними акаунтами", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "Стан у реальному часі за підключеними акаунтами" }, "modals": { "waitingAuth": "Очікування авторизації", diff --git a/src/i18n/messages/ur.json b/src/i18n/messages/ur.json index 2fab849e16..22deb83299 100644 --- a/src/i18n/messages/ur.json +++ b/src/i18n/messages/ur.json @@ -3718,11 +3718,7 @@ "errorDescription": "ہم اس وقت کومبو ڈیٹا لوڈ نہیں کر سکے۔ اپنی کنکشن چیک کریں اور دوبارہ کوشش کریں۔", "errorId": "خرابی کی شناخت: {id}", "errorRetry": "پھر کوشش کریں", - "comboLabel": "کمبو", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "کمبو" }, "costs": { "title": "Costs", @@ -6220,8 +6216,7 @@ "kiro": "مفت پلان: 50 کریڈٹس/مہینہ (~25K–100K ٹوکنز)۔ ⚠️ Kiro ToS فریقِ ثالث کے پراکسی/ہارنس کے استعمال سے منع کرتا ہے۔", "codex": "OpenAI Codex کو موجودہ OAuth فلو سے منسلک کریں۔", "qwen": "Qwen Code کو موجودہ OAuth فلو سے منسلک کریں۔", - "github-models": "github.com/settings/tokens پر 'models: read' اسکوپ کے ساتھ ایک GitHub PAT بنائیں", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "github.com/settings/tokens پر 'models: read' اسکوپ کے ساتھ ایک GitHub PAT بنائیں" }, "passthroughModelsDescription": "{provider} فراہم کنندہ کے مقامی ماڈل IDs کو قبول کرتا ہے۔ /ماڈلز سے درآمد کریں یا روٹنگ کے لیے حسب ضرورت IDs شامل کریں۔", "bedrockModelsDescription": "ایمیزون بیڈرک ماڈلز کا دائرہ AWS ریجن کے ذریعہ کیا گیا ہے۔ /ماڈلز سے درآمد کریں یا منتخب علاقے میں فعال کردہ Bedrock ماڈل IDs شامل کریں۔", @@ -7789,10 +7784,6 @@ "terse-cjk": { "label": "مختصر CJK (文言)", "description": "کلاسیکی چینی انتہائی مختصر انداز (صرف چینی زبان کے لیے دستیاب ہے)۔" - }, - "i-have-adhd": { - "label": "I have ADHD (action-first)", - "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble." } }, "resilienceWaitForCooldown": "کولڈاؤن کا انتظار کریں۔", @@ -8225,11 +8216,7 @@ "cliproxyapiHealth": "صحت", "cliproxyapiPort": "پورٹ", "qdrantHost": "میزبان", - "qdrantCollection": "اجتماع", - "reasoningTokenBuffer": "Reasoning token buffer", - "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.", - "zeroLatencyOptimizations": "Zero-latency optimizations", - "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests." + "qdrantCollection": "اجتماع" }, "contextRtk": { "title": "RTK Engine", @@ -8637,28 +8624,7 @@ "saved": "محفوظ ہو گیا۔", "saveFailed": "محفوظ نہیں ہو سکا۔", "enableAria": "OmniGlyph انجن فعال کریں", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "ایمبیڈڈ سروسز", @@ -9538,17 +9504,7 @@ "updatedShort": "اپ ڈیٹ شدہ", "lastRefreshed": "آخری بار ریفریش کیا گیا", "providerQuota": "فراہم کنندہ کا کوٹہ", - "providerQuotaHomeHint": "منسلک اکاؤنٹس میں لائیو اسٹیٹس", - "kimiExtraUsageCredits": "Extra Usage Credits", - "kimiExtraUsage": "Extra Usage", - "kimiExtraUsageEnabled": "Enabled", - "kimiExtraUsageDisabled": "Disabled", - "kimiExtraUsageFrozen": "Frozen", - "kimiExtraUsageUnavailable": "Unavailable", - "kimiMonthlyUsed": "Used this month", - "kimiMonthlyLimit": "Monthly limit", - "kimiMonthlyLimitUnlimited": "Unlimited", - "kimiAdditionalCredits": "Additional Credits" + "providerQuotaHomeHint": "منسلک اکاؤنٹس میں لائیو اسٹیٹس" }, "modals": { "waitingAuth": "Waiting for Authorization", diff --git a/src/i18n/messages/vi.json b/src/i18n/messages/vi.json index 3953260e5c..eb1cb41b6e 100644 --- a/src/i18n/messages/vi.json +++ b/src/i18n/messages/vi.json @@ -3718,11 +3718,7 @@ "errorDescription": "Hiện không thể tải dữ liệu combo. Hãy kiểm tra kết nối rồi thử lại.", "errorId": "ID lỗi: {id}", "errorRetry": "Thử lại", - "comboLabel": "Combo", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "Combo" }, "costs": { "title": "Chi phí", @@ -6220,8 +6216,7 @@ "kiro": "Gói miễn phí: 50 tín dụng/tháng (khoảng 25–100 nghìn token). ⚠️ Điều khoản Kiro cấm sử dụng proxy/harness của bên thứ ba.", "codex": "Kết nối OpenAI Codex bằng luồng OAuth hiện có.", "qwen": "Kết nối Qwen Code bằng luồng OAuth hiện có.", - "github-models": "Tạo GitHub PAT với phạm vi 'models: read' tại github.com/settings/tokens", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "Tạo GitHub PAT với phạm vi 'models: read' tại github.com/settings/tokens" }, "passthroughModelsDescription": "{provider} chấp nhận ID mô hình gốc của nhà cung cấp. Nhập từ /models hoặc thêm ID tùy chỉnh để định tuyến.", "bedrockModelsDescription": "Các mô hình Amazon Bedrock được giới hạn theo vùng AWS. Nhập từ /models hoặc thêm ID mô hình Bedrock được bật trong vùng đã chọn.", diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index 1c58b63e59..31d1a87e10 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -3718,11 +3718,7 @@ "errorDescription": "我们现在无法加载组合数据。请检查您的连接并重试。", "errorId": "错误 ID: {id}", "errorRetry": "再试一次", - "comboLabel": "组合", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "组合" }, "costs": { "title": "成本", @@ -6231,8 +6227,7 @@ "kiro": "免费层:50 积分/月(约 25K–100K 令牌)。⚠️ Kiro 服务条款禁止使用第三方代理/测试框架。", "codex": "使用现有的 OAuth 流程连接 OpenAI Codex。", "qwen": "使用现有的 OAuth 流程连接 Qwen Code。", - "github-models": "在 github.com/settings/tokens 创建具有 'models: read' 作用域的 GitHub PAT", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "在 github.com/settings/tokens 创建具有 'models: read' 作用域的 GitHub PAT" }, "passthroughModelsDescription": "{provider} 接受供应商本机模型 ID。从 /models 导入或添加用于路由的自定义 ID。", "bedrockModelsDescription": "Amazon Bedrock 模型的范围按 AWS 区域划分。从 /models 导入或添加在所选区域中启用的基岩模型 ID。", @@ -8637,28 +8632,7 @@ "saved": "已保存。", "saveFailed": "无法保存。", "enableAria": "启用 OmniGlyph 引擎", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "嵌入式服务", diff --git a/src/i18n/messages/zh-TW.json b/src/i18n/messages/zh-TW.json index ddec1a0f6e..6bc5f1954d 100644 --- a/src/i18n/messages/zh-TW.json +++ b/src/i18n/messages/zh-TW.json @@ -3718,11 +3718,7 @@ "errorDescription": "目前無法加載組合數據。請檢查您的連接並重試。", "errorId": "錯誤 ID: {id}", "errorRetry": "再試一次", - "comboLabel": "組合", - "usageGuideInvokeTitle": "How to call this combo", - "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).", - "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).", - "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models." + "comboLabel": "組合" }, "costs": { "title": "成本", @@ -6220,8 +6216,7 @@ "kiro": "免費方案:每月 50 額度(約 2.5 萬至 10 萬 tokens)。⚠️ Kiro 服務條款禁止第三方代理/轉接使用。", "codex": "使用現有的 OAuth 流程連線 OpenAI Codex。", "qwen": "使用現有的 OAuth 流程連線 Qwen Code。", - "github-models": "在 github.com/settings/tokens 建立具有 'models: read' 範圍的 GitHub PAT", - "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed." + "github-models": "在 github.com/settings/tokens 建立具有 'models: read' 範圍的 GitHub PAT" }, "passthroughModelsDescription": "{provider} 接受提供者本機模型 ID。從 /models 匯入或新增用於路由的自定義 ID。", "bedrockModelsDescription": "Amazon Bedrock 模型的範圍按 AWS 區域劃分。從 /models 匯入或新增在所選區域中啟用的基岩模型 ID。", @@ -8637,28 +8632,7 @@ "saved": "已儲存。", "saveFailed": "無法儲存。", "enableAria": "啟用 OmniGlyph 引擎", - "title": "OmniGlyph", - "profileTitle": "Compression profile", - "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.", - "profiles": { - "aggressive": { - "label": "Aggressive (default)", - "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history." - }, - "balanced": { - "label": "Balanced", - "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history." - }, - "codingSafe": { - "label": "Coding-safe", - "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history." - }, - "passthrough": { - "label": "Passthrough", - "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched." - } - }, - "profileAria": "Select the OmniGlyph compression profile" + "title": "OmniGlyph" }, "embeddedServices": { "title": "內嵌服務", diff --git a/src/lib/modelMetadataRegistry.ts b/src/lib/modelMetadataRegistry.ts index 5e477084ea..c5c0bbbb7c 100644 --- a/src/lib/modelMetadataRegistry.ts +++ b/src/lib/modelMetadataRegistry.ts @@ -29,6 +29,7 @@ import { CANONICAL_EFFORT_VALUES, extendCodexGpt56EffortValues, } from "@/shared/reasoning/effortStandardization"; +import type { ModelCapabilityResolutionSnapshot } from "@/lib/modelCapabilityResolutionSnapshot"; const MODEL_METADATA_SCHEMA_VERSION = "model-metadata-v1"; diff --git a/stryker.conf.json b/stryker.conf.json index 59b52acdac..08c35843f5 100644 --- a/stryker.conf.json +++ b/stryker.conf.json @@ -64,7 +64,6 @@ "tests/unit/adobe-firefly.test.ts", "tests/unit/agentrouter-error-rules.test.ts", "tests/unit/agentrouter-lock-scope-10334.test.ts", - "tests/unit/aihorde-optional-api-key.test.ts", "tests/unit/alibaba-free-tier-exhaustion.test.ts", "tests/unit/anthropic-thinking-signature-recovery.test.ts", "tests/unit/antigravity-429-quota-tdd.test.ts", @@ -151,10 +150,8 @@ "tests/unit/codex-failover.test.ts", "tests/unit/codex-quota-selection-hydration.test.ts", "tests/unit/codex-responses-to-chat-9161.test.ts", - "tests/unit/codex-same-account-transport-retry-9708.test.ts", "tests/unit/codex-session-affinity-reset-aware-5903.test.ts", "tests/unit/codex-stream-false.test.ts", - "tests/unit/codex-turn-state.test.ts", "tests/unit/collect-metrics-module-coverage.test.ts", "tests/unit/combo-499-abort.test.ts", "tests/unit/combo-account-allowlist-3266.test.ts", @@ -297,9 +294,6 @@ "tests/unit/quota-pool-log-route.test.ts", "tests/unit/quota-streaming-consumption-usd.test.ts", "tests/unit/qwen-web-content-array-serialization.test.ts", - "tests/unit/probe-gate-autodisable.test.ts", - "tests/unit/probe-production-path.test.ts", - "tests/unit/probe-testall-isolation.test.ts", "tests/unit/rate-limit-enhanced.test.ts", "tests/unit/rate-limit-execution-timeout-message-4165.test.ts", "tests/unit/rate-limit-local-capacity-classification.test.ts", @@ -313,7 +307,6 @@ "tests/unit/repro-antigravity-404-family-cooldown-hijack.test.ts", "tests/unit/resilience-connections.test.ts", "tests/unit/responses-handler.test.ts", - "tests/unit/responses-passthrough-openai-compatible.test.ts", "tests/unit/rotation-config-omniroute.test.ts", "tests/unit/route-explainability.test.ts", "tests/unit/route-guard-acp-agents-local-only.test.ts", @@ -342,7 +335,6 @@ "tests/unit/skip-provider-breaker-consumer-2743.test.ts", "tests/unit/sse-auth-antigravity-credits.test.ts", "tests/unit/sse-auth-codex-account-pool.test.ts", - "tests/unit/sse-auth-exclusive-leases.test.ts", "tests/unit/sse-auth-resource-404.test.ts", "tests/unit/sse-auth.test.ts", "tests/unit/db/stats-dbstat-optional.test.ts", diff --git a/tests/unit/check-env-doc-sync.test.ts b/tests/unit/check-env-doc-sync.test.ts index 3975e58361..2db6a62c87 100644 --- a/tests/unit/check-env-doc-sync.test.ts +++ b/tests/unit/check-env-doc-sync.test.ts @@ -179,32 +179,6 @@ test("runEnvDocSync: ignore set skips a code-referenced var", () => { assert.equal(result.ok, true); }); -test("runEnvDocSync: shipped allowlist ignores ad-hoc BOT_TOKEN and BOT_URL", () => { - const envExampleText = `JWT_SECRET=secret\n`; - const envDocText = "| `JWT_SECRET` | _(none)_ | required |"; - const codeVars = new Set(["JWT_SECRET", "BOT_TOKEN", "BOT_URL"]); - - const unignored = runEnvDocSync({ - envExampleText, - envDocText, - codeVars, - ignore: new Set(), - docOnlyAllowlist: new Set(), - envOnlyAllowlist: new Set(), - }); - assert.equal(unignored.ok, false); - assert.deepEqual(unignored.problems.codeMissingEnv, ["BOT_TOKEN", "BOT_URL"]); - - // Omit `ignore` so the checker uses IGNORE_FROM_CODE from check-env-doc-sync.mjs. - const shipped = runEnvDocSync({ - envExampleText, - envDocText, - codeVars, - }); - assert.equal(shipped.ok, true); - assert.deepEqual(shipped.problems.codeMissingEnv, []); -}); - test("repository contract is in sync (live data)", () => { // Uses the real .env.example, docs/ENVIRONMENT.md, and the bundled // allowlists. This is the same check that runs in pre-commit / CI. diff --git a/tests/unit/combo-context-overflow-compression-probe.test.ts b/tests/unit/combo-context-overflow-compression-probe.test.ts index fd602564c9..f482cba352 100644 --- a/tests/unit/combo-context-overflow-compression-probe.test.ts +++ b/tests/unit/combo-context-overflow-compression-probe.test.ts @@ -32,7 +32,9 @@ process.env.DATA_DIR = TEST_DATA_DIR; const core = await import("../../src/lib/db/core.ts"); const { saveModelsDevCapabilities, clearModelsDevCapabilities } = await import("../../src/lib/modelsDevSync.ts"); -const { handleComboChat } = await import("../../open-sse/services/combo.ts"); +const { getKnownContextOverflow, handleComboChat } = await import( + "../../open-sse/services/combo.ts" +); const { updateCompressionSettings } = await import("../../src/lib/db/compression.ts"); const { handleChatCore } = await import("../../open-sse/handlers/chatCore.ts"); @@ -72,6 +74,20 @@ function capabilityEntry(limitContext: number | null) { }; } +function target(modelStr: string) { + return { + kind: "model" as const, + stepId: modelStr, + executionKey: modelStr, + modelStr, + provider: modelStr.includes("/") ? modelStr.split("/")[0] : modelStr, + providerId: null, + connectionId: null, + weight: 1, + label: null, + }; +} + // A generic Responses-API body whose estimate lands near `tokens` tokens (4 chars/token). // Uses `input:` (not `messages:`) to mirror the OpenCode/Codex Responses surface. function bigResponsesBody(tokens: number) { @@ -80,6 +96,32 @@ function bigResponsesBody(tokens: number) { const noopLog = { info() {}, warn() {}, error() {}, debug() {} }; +test("#10225 getKnownContextOverflow defers the hard overflow when compression is available", () => { + saveModelsDevCapabilities({ codex: { "gpt-5.6-terra": capabilityEntry(272_000) } }); + const body = bigResponsesBody(275_000); + + // Compression enabled + target can compress -> defer (null). + assert.equal( + getKnownContextOverflow([target("codex/gpt-5.6-terra")], body, { + deferContextOverflowWhenCompressible: true, + }), + null, + "compressible request must defer so chatCore compression can run (#10225)" + ); + + // Compression disabled -> the existing hard overflow is preserved (never lose #7177). + const hard = getKnownContextOverflow([target("codex/gpt-5.6-terra")], body); + assert.ok(hard); + assert.ok(hard.requiredContextTokens > hard.maxKnownContextTokens); + + // Compression enabled but EVERY target is excluded from compression -> keep the hard gate. + const excluded = getKnownContextOverflow([target("codex/gpt-5.6-terra")], body, { + deferContextOverflowWhenCompressible: true, + compressionExclusions: ["gpt-5.6-terra"], + }); + assert.ok(excluded, "fully-excluded targets must retain the hard preflight"); +}); + test("#10225 combo does not early-400 a compressible over-limit request when deferral is on", async () => { saveModelsDevCapabilities({ codex: { "gpt-5.6-terra": capabilityEntry(272_000) } }); let dispatches = 0; @@ -105,7 +147,7 @@ test("#10225 combo does not early-400 a compressible over-limit request when def assert.equal(dispatches, 1, "must dispatch so chatCore compaction runs first"); }); -test("#10225 combo does not hard-400 an over-limit request when compression is disabled", async () => { +test("#10225 combo keeps the fast 400 when compression is disabled", async () => { saveModelsDevCapabilities({ codex: { "gpt-5.6-terra": capabilityEntry(272_000) } }); let dispatches = 0; @@ -126,10 +168,10 @@ test("#10225 combo does not hard-400 an over-limit request when compression is d log: noopLog, }); - // #10162: gateway chars/4 estimates are advisory. Compression off is not a - // pre-dispatch 400; chatCore / upstream remain the context gate. - assert.notEqual(response.status, 400, "advisory estimates must not hard-400 before dispatch (#10162)"); - assert.equal(dispatches, 1, "must dispatch when local overflow estimates are advisory"); + assert.equal(response.status, 400); + assert.equal(dispatches, 0, "#7177 anti-exhaustion guard must survive when compression is off"); + const body = await response.json(); + assert.equal(body.error.code, "context_length_exceeded"); }); // #10501-sweep #10503 — the deferral above is NOT target-aware by default: it only @@ -151,7 +193,47 @@ test("#10225 combo does not hard-400 an over-limit request when compression is d // combo member over `/v1/responses` in openai-responses format still hits chatCore's // compression bypass — exactly the gap `sourceFormat`/`endpointPath` (not the looser // `clientManagedResponsesContext` flag) now closes. -test("#10503 handleComboChat: native-codex-passthrough pool still dispatches oversized requests", async () => { +test("#10503 getKnownContextOverflow REFUSES to defer when the only target is native Codex Responses passthrough", () => { + saveModelsDevCapabilities({ codex: { "gpt-5.6-terra": capabilityEntry(272_000) } }); + const body = bigResponsesBody(275_000); + + const overflow = getKnownContextOverflow([target("codex/gpt-5.6-terra")], body, { + deferContextOverflowWhenCompressible: true, + sourceFormat: "openai-responses", + endpointPath: "/v1/responses", + }); + + assert.ok( + overflow, + "a native-codex-passthrough target must never be treated as compressible — the " + + "hard preflight must stay active (chatCore disables compression for it entirely)" + ); +}); + +test("#10503 getKnownContextOverflow still defers when a genuinely compressible sibling target is present", () => { + saveModelsDevCapabilities({ + codex: { "gpt-5.6-terra": capabilityEntry(272_000) }, + openai: { "gpt-5.6-terra": capabilityEntry(272_000) }, + }); + const body = bigResponsesBody(275_000); + + // A heterogeneous pool where at least ONE target (openai) genuinely runs + // compression must still defer — deferral is a per-request decision, and other + // targets in the pool are unaffected by the codex-specific compression bypass. + const overflow = getKnownContextOverflow( + [target("codex/gpt-5.6-terra"), target("openai/gpt-5.6-terra")], + body, + { + deferContextOverflowWhenCompressible: true, + sourceFormat: "openai-responses", + endpointPath: "/v1/responses", + } + ); + + assert.equal(overflow, null, "a genuinely compressible sibling target must still defer"); +}); + +test("#10503 handleComboChat: native-codex-passthrough pool fails FAST locally, zero upstream dispatches", async () => { saveModelsDevCapabilities({ codex: { "gpt-5.6-terra": capabilityEntry(272_000) } }); let dispatches = 0; @@ -173,14 +255,14 @@ test("#10503 handleComboChat: native-codex-passthrough pool still dispatches ove log: noopLog, }); - // #10162 removed the chars/4 pre-dispatch 400. Native Codex passthrough still - // reaches the target; chatCore / upstream enforce the real context limit. - assert.notEqual( + assert.equal( response.status, 400, - "must not fail fast locally on an advisory overflow estimate (#10162)" + "must fail fast locally instead of dispatching an oversized, uncompressible request" ); - assert.equal(dispatches, 1, "advisory estimates must not skip upstream dispatch"); + assert.equal(dispatches, 0, "no wasted upstream call for a target that can never compress"); + const responseBody = await response.json(); + assert.equal(responseBody.error.code, "context_length_exceeded"); }); // #10503 item 2 — drive the REAL chatCore compression pipeline end-to-end (not just the diff --git a/tests/unit/db-driver-bundling-externals.test.ts b/tests/unit/db-driver-bundling-externals.test.ts index c7dcc0d06c..b1d920dd0e 100644 --- a/tests/unit/db-driver-bundling-externals.test.ts +++ b/tests/unit/db-driver-bundling-externals.test.ts @@ -36,10 +36,7 @@ test("sync driver cascade requires each SQLite module by literal specifier", () // The production loader must be the literal-specifier wrapper, never `_require` // itself — passing `_require` through the `load` parameter is exactly what makes // webpack substitute its missing-module stub. - assert.match( - driverFactory, - /^const openSyncDriver = createSyncDriverFactory\(\w+(?:,[\s\S]*?)?\);$/m - ); + assert.match(driverFactory, /^const openSyncDriver = createSyncDriverFactory\(\w+\);$/m); assert.match(driverFactory, /^export function tryOpenSync\($/m); assert.doesNotMatch(driverFactory, /createSyncDriverFactory\(\s*_require\s*\)/); diff --git a/tests/unit/hard-session-lease-bypass-inventory.test.ts b/tests/unit/hard-session-lease-bypass-inventory.test.ts index 24507e00c8..428b75bdcf 100644 --- a/tests/unit/hard-session-lease-bypass-inventory.test.ts +++ b/tests/unit/hard-session-lease-bypass-inventory.test.ts @@ -15,16 +15,12 @@ const EXPECTED: Record> = { credential: { "open-sse/handlers/chatCore.ts": 1, "open-sse/services/imageCombo.ts": 1, - "open-sse/services/speechCombo.ts": 1, - "open-sse/services/videoCombo.ts": 2, "src/app/api/compression/compare/verify/route.ts": 1, "src/app/api/internal/codex-responses-ws/route.ts": 1, "src/app/api/search/providers/route.ts": 3, - "src/app/api/v1/_shared/videoModelResolution.ts": 1, "src/app/api/v1/audio/speech/route.ts": 1, - "src/app/api/v1/audio/transcriptions/route.ts": 2, + "src/app/api/v1/audio/transcriptions/route.ts": 1, "src/app/api/v1/audio/translations/route.ts": 1, - "src/app/api/v1/classify/route.ts": 1, "src/app/api/v1/images/edits/route.ts": 5, "src/app/api/v1/images/generations/route.ts": 3, "src/app/api/v1/images/upscale/route.ts": 1, @@ -36,9 +32,8 @@ const EXPECTED: Record> = { "src/app/api/v1/providers/[provider]/images/generations/route.ts": 1, "src/app/api/v1/rerank/route.ts": 2, "src/app/api/v1/search/route.ts": 2, - "src/app/api/v1/segment/route.ts": 1, "src/app/api/v1/session-leases/route.ts": 1, - "src/app/api/v1/videos/generations/route.ts": 2, + "src/app/api/v1/videos/generations/route.ts": 3, "src/app/api/v1/web/fetch/route.ts": 1, "src/lib/embeddings/service.ts": 2, "src/lib/memory/embedding/index.ts": 1, @@ -54,7 +49,6 @@ const EXPECTED: Record> = { "open-sse/handlers/chatCore/cliproxyapiCredentials.ts": 1, "open-sse/handlers/imageGeneration.ts": 1, "open-sse/handlers/imageGeneration/providers/chatgptWeb.ts": 1, - "open-sse/handlers/imageGeneration/providers/geminiWeb.ts": 1, "open-sse/handlers/videoGeneration.ts": 1, "open-sse/services/compression/eval/executorModelClient.ts": 1, "src/lib/compression/judgeModelClient.ts": 1, @@ -155,7 +149,6 @@ const CLASSIFICATION: Record> = { "open-sse/handlers/chatCore/cliproxyapiCredentials.ts": "A", "open-sse/handlers/imageGeneration.ts": "B", "open-sse/handlers/imageGeneration/providers/chatgptWeb.ts": "B", - "open-sse/handlers/imageGeneration/providers/geminiWeb.ts": "B", "open-sse/handlers/videoGeneration.ts": "B", "open-sse/services/compression/eval/executorModelClient.ts": "B", "src/lib/compression/judgeModelClient.ts": "B", diff --git a/tests/unit/sse-heartbeat.test.ts b/tests/unit/sse-heartbeat.test.ts index 94f39cfebc..57ecbd9450 100644 --- a/tests/unit/sse-heartbeat.test.ts +++ b/tests/unit/sse-heartbeat.test.ts @@ -1,11 +1,6 @@ import test from "node:test"; import assert from "node:assert/strict"; -// #10524 default is comment-heartbeats off. This file asserts heartbeat payloads, -// so opt in for the suite (restored in process teardown is unnecessary: node:test -// worker is dedicated). -process.env.OMNIROUTE_SSE_COMMENTS = "on"; - const { createSseHeartbeatTransform } = await import("../../open-sse/utils/sseHeartbeat.ts"); function withFakeIntervals(fn) {