diff --git a/.env.example b/.env.example index 3c0817e2ccfb..f0dc71a03a53 100644 --- a/.env.example +++ b/.env.example @@ -4073,5 +4073,19 @@ QUOTA_STORE_DRIVER=sqlite # Used by: scripts/check/check-ui-kit-snapshot.mjs. # UI_KIT_CLONE=_references/cheaper-inference-ui-kit +# Rosebud official CLI asset provider (credentials live in private account profiles) +ROSEBUD_CLI_BIN=rosebud +# Optional absolute path to @rosebudai/cli/dist/cli.js +ROSEBUD_CLI_SCRIPT= +# Empty uses DATA_DIR/rosebud +ROSEBUD_DATA_DIR= +# Process concurrency, not a credit cap +ROSEBUD_CONCURRENCY=2 +# OS-provided paths passed through to the Rosebud child process. Normally leave +# these unset here so the service inherits its existing operating-system values. +# SYSTEMROOT= +# TMPDIR= +# TEMP= + # Opt-in model-sync phase timings; disabled unless exactly 1. OMNIROUTE_MODEL_SYNC_TIMINGS=0 diff --git a/AGENTS.md b/AGENTS.md index d8d517390e6a..c1f6cffc6d18 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -29,7 +29,7 @@ Running tests: see [Testing](#testing) below (run the most focused test for chan ## Project at a Glance -**OmniRoute** — unified AI proxy/router. One endpoint, 380 LLM providers, auto-fallback. +**OmniRoute** — unified AI proxy/router. One endpoint, 381 LLM providers, auto-fallback. - API Routes — `src/app/api/v1/` (Next.js App Router entry points) - Handlers — `open-sse/handlers/` (request processing: chat, embeddings, etc) @@ -39,7 +39,7 @@ Running tests: see [Testing](#testing) below (run the most focused test for chan - Services — `open-sse/services/` (combo routing, rate limits, caching, etc) - Database — `src/lib/db/` (SQLite domain modules, 219 migrations) - Domain/Policy — `src/domain/` (policy engine, cost rules, fallback logic) -- MCP Server — `open-sse/mcp-server/` (110 tools: 45 canonical + memory/skill/GitHub/pool/gamification/plugin/Notion/Obsidian/local-corpus/RTK modules; 3 transports: stdio / SSE / Streamable HTTP; 33 scopes) +- MCP Server — `open-sse/mcp-server/` (129 tools: 45 canonical + memory/skill/GitHub/pool/gamification/plugin/Notion/Obsidian/local-corpus/RTK modules; 3 transports: stdio / SSE / Streamable HTTP; 34 scopes) - A2A Server — `src/lib/a2a/` (JSON-RPC 2.0 agent protocol) - Skills — `src/lib/skills/` (extensible skill framework); Memory — `src/lib/memory/` (persistent conversational memory) diff --git a/README.md b/README.md index c9200edb0538..80da5f065e06 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ # 🚀 OmniRoute — The Free AI Gateway -OmniRoute — Never stop coding. Every AI tool → 380 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 380 AI providers · 150+ free tiers · ~1.62B free tokens/mo · 20 routing strategies · $0 to start. +OmniRoute — Never stop coding. Every AI tool → 381 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 381 AI providers · 150+ free tiers · ~1.62B free tokens/mo · 20 routing strategies · $0 to start. @@ -242,7 +242,7 @@ curl http://localhost:20128/v1/chat/completions \ -The Promise — One endpoint and 380 providers. Automatic fallback keeps routing while another healthy target is available. Six pillars: resilient fallback across 380 providers · up to 95% token savings on eligible workloads · $0 to start with 150+ free tiers and 53 recurring/keyless free-forever providers · 39 CLI/agent integrations through one config · OpenAI, Claude, Gemini and Responses API compatibility at /v1 · production controls including circuit breakers, TLS stealth, MCP 110 tools, A2A, memory, guardrails, evals and 56,000+ static test declarations across 7,800+ tracked test files. +The Promise — One endpoint and 381 providers. Automatic fallback keeps routing while another healthy target is available. Six pillars: resilient fallback across 381 providers · up to 95% token savings on eligible workloads · $0 to start with 150+ free tiers and 53 recurring/keyless free-forever providers · 39 CLI/agent integrations through one config · OpenAI, Claude, Gemini and Responses API compatibility at /v1 · production controls including circuit breakers, TLS stealth, MCP 129 tools, A2A, memory, guardrails, evals and 56,000+ static test declarations across 7,800+ tracked test files.

@@ -502,7 +502,7 @@ All **20** strategies — mix & match per combo step: -What sets OmniRoute apart — a dated feature snapshot vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 380 providers, 150+ free tiers built in, 20 routing strategies, 12-engine token compression, built-in MCP server with 110 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA and 67 i18n UI locales. OmniRoute is MIT-licensed and self-hostable. Competitor capabilities and counts may change; see the linked methodology. +What sets OmniRoute apart — a dated feature snapshot vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 381 providers, 150+ free tiers built in, 20 routing strategies, 12-engine token compression, built-in MCP server with 129 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA and 67 i18n UI locales. OmniRoute is MIT-licensed and self-hostable. Competitor capabilities and counts may change; see the linked methodology. 📊 Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md) @@ -606,7 +606,7 @@ the current catalog at **[radar.omniroute.online/planos](https://radar.omniroute - **🖼️ New endpoints** — `/v1/ocr` (Mistral OCR) and `/v1/audio/translations` (Whisper-style) round out the media surface. → [API Reference](docs/reference/API_REFERENCE.md) - **🎨 Image / video / audio generation** — one API for media: xAI Grok Imagine & Novita AI video, ComfyUI, Magnific, Adobe Firefly, Segmind, and speech providers such as ElevenLabs. → [API Reference](docs/reference/API_REFERENCE.md) - **🌍 Deployment & ops** — reverse-proxy `basePath`, browser-language auto-detect, per-key device tracking, root-less MITM trust, zh-TW localization. → [Environment](docs/reference/ENVIRONMENT.md) -- **🤝 More providers & agents** — cloud agents (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **380-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md) +- **🤝 More providers & agents** — cloud agents (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **381-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md) - **📡 Routing transparency** — every response carries an `X-OmniRoute-Decision` header naming the strategy/provider/latency that served it, a new `cache-optimized` combo strategy + Auto-Combo `cacheAffinity` factor route repeat requests back to the connection holding the cached prefix, and a read-only `/v1/auto-combo/{channel}/candidates` endpoint exposes an `auto/*` channel's live candidate pool. → [Auto-Combo](docs/routing/AUTO-COMBO.md) - **⚡ Local performance & infra** — one-click local Redis, Cloudflare Workers / Deno Deploy relay deployers, Bifrost & Mux as supervised embedded services. → [Embedded Services](docs/frameworks/EMBEDDED-SERVICES.md) - **🧩 Also in the box** — plugin framework + marketplace, Omni/Agent/GitHub skills frameworks, Obsidian vault integration (22 MCP tools), OpenAI-compatible Batch & Files APIs, semantic response cache, gamification with leaderboards, ACP agent discovery (15 built-in agents), scheduled log export to BigQuery, `auto/chaos` parallel multi-model fan-out, a Telegram bot bridge, an in-app version manager and LMArena-ELO free-provider rankings. → [Docs](docs/README.md) @@ -690,11 +690,11 @@ of your shell history. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md)
-## 🌐 380 AI Providers — 153 Catalog-Marked Free +## 🌐 381 AI Providers — 153 Catalog-Marked Free
-> **380 registered providers** across the canonical chat, media, search, local, cloud-agent and system collections, including **153 carrying `hasFree: true` discovery metadata**. The chat model registry covers **239 providers / 3,059 distinct provider-model pairs / 1,475 raw model IDs**; the separate free-budget catalog has **471 per-model rows**, **34 recurring pools** and **53 recurring/keyless free-forever providers**. These are different denominators by design; definitions and pool-deduped calculations live in the [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) and [Free Tiers](docs/reference/FREE_TIERS.md). +> **381 registered providers** across the canonical chat, media, search, local, cloud-agent and system collections, including **153 carrying `hasFree: true` discovery metadata**. The chat model registry covers **239 providers / 3,059 distinct provider-model pairs / 1,475 raw model IDs**; the separate free-budget catalog has **471 per-model rows**, **34 recurring pools** and **53 recurring/keyless free-forever providers**. These are different denominators by design; definitions and pool-deduped calculations live in the [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) and [Free Tiers](docs/reference/FREE_TIERS.md).
@@ -907,7 +907,7 @@ Expose OmniRoute over **MCP**, **A2A**, a **REST API**, **webhooks** or a **remo - + @@ -1385,7 +1385,7 @@ Métricas canônicas em 2026-10-18: **1.976 vídeos únicos** · **20.220.289 vi - + diff --git a/changelog.d/features/18577-rosebud-native-provider.md b/changelog.d/features/18577-rosebud-native-provider.md new file mode 100644 index 000000000000..6ae69e961a46 --- /dev/null +++ b/changelog.d/features/18577-rosebud-native-provider.md @@ -0,0 +1 @@ +- **feat(sse):** Add a native Rosebud AI provider with dynamic asset models, image generation, specialized MCP tools, isolated CLI authorization and credit accounting. diff --git a/config/quality/eslint-suppressions.json b/config/quality/eslint-suppressions.json index df9a212b39f0..75cb5ff56aa1 100644 --- a/config/quality/eslint-suppressions.json +++ b/config/quality/eslint-suppressions.json @@ -1023,11 +1023,6 @@ "count": 1 } }, - "src/app/api/v1/images/generations/route.ts": { - "@typescript-eslint/no-unused-vars": { - "count": 1 - } - }, "src/app/api/v1/messages/count_tokens/route.ts": { "no-restricted-imports": { "count": 1 diff --git a/docs/architecture/ARCHITECTURE.md b/docs/architecture/ARCHITECTURE.md index ff11383c91b2..c5dba8e70c6a 100644 --- a/docs/architecture/ARCHITECTURE.md +++ b/docs/architecture/ARCHITECTURE.md @@ -17,7 +17,7 @@ It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic acr Core capabilities: -- OpenAI-compatible API surface for CLI/tools (380 providers, 156 executor modules) +- OpenAI-compatible API surface for CLI/tools (381 providers, 156 executor modules) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` @@ -58,7 +58,7 @@ Core capabilities: - Compliance audit logging with opt-out per API key - Eval framework for LLM quality assurance - Health dashboard with real-time provider circuit breaker status -- MCP Server (110 tools) with 3 transports (stdio/SSE/Streamable HTTP) +- MCP Server (129 tools) with 3 transports (stdio/SSE/Streamable HTTP) - A2A Server (JSON-RPC 2.0 + SSE) with skills and task lifecycle - Memory system (extraction, injection, retrieval, summarization) - Skills system (registry, executor, sandbox, built-in skills) diff --git a/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/architecture/CODEBASE_DOCUMENTATION.md index 6804bb21e55f..9e136b3a2a9a 100644 --- a/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -464,7 +464,7 @@ open-sse/ ├── transformer/ Responses API ↔ Chat Completions stream transformer ├── services/ 80+ service modules (combos, fallback, quotas, identity, …) ├── utils/ Streaming helpers, TLS client, AWS SigV4, proxy fetch, … -└── mcp-server/ MCP server (3 transports, 33 scopes, 110 tools) +└── mcp-server/ MCP server (3 transports, 34 scopes, 129 tools) ``` ### 4.1 `open-sse/handlers/` @@ -501,7 +501,7 @@ helpers (tool schemas, fetch/TTS adapters, quirk handlers). Executors include: (shared identity helper) and `index.ts` (registry). > Note: providers not listed here are served by `default.ts` using the generic -> OpenAI-compatible executor. The full provider catalog (380 providers) lives in +> OpenAI-compatible executor. The full provider catalog (381 providers) lives in > `src/shared/constants/providers.ts`. ### 4.3 `open-sse/translator/` @@ -550,11 +550,11 @@ Highlights (full list under `open-sse/services/`): ### 4.6 `open-sse/mcp-server/` -- **110 unique tools** wired in `server.ts` (45 canonical in `schemas/tools.ts` + +- **129 unique tools** wired in `server.ts` (45 canonical in `schemas/tools.ts` + memory, skills, GitHub-skills, pool, gamification, plugin, Notion, Obsidian, local-corpus and compression modules — union counted by `countUniqueMcpTools`). - **3 transports**: stdio, HTTP Streamable, SSE. -- **33 scopes** enforced at runtime — base list in `src/shared/constants/mcpScopes.ts`, full set is the union of the scopes declared by each tool module. +- **34 scopes** enforced at runtime — base list in `src/shared/constants/mcpScopes.ts`, full set is the union of the scopes declared by each tool module. - Audit table: `mcp_tool_audit` (populated by `audit.ts`). - Files: `server.ts`, `index.ts`, `httpTransport.ts`, `audit.ts`, `scopeEnforcement.ts`, `runtimeHeartbeat.ts`, `descriptionCompressor.ts`, `schemas/{tools, a2a, audit, index}.ts`, diff --git a/docs/architecture/REPOSITORY_MAP.md b/docs/architecture/REPOSITORY_MAP.md index 4d0c90cb9509..d8dc2301e067 100644 --- a/docs/architecture/REPOSITORY_MAP.md +++ b/docs/architecture/REPOSITORY_MAP.md @@ -244,7 +244,7 @@ src/ | -------------------------------- | --------------------------------------------------------------------------------------------------- | | `components/` | Dashboard component API: adapters over `packages/ui-kit` — see `docs/architecture/DESIGN_SYSTEM.md` | | `constants/iconMap.ts` | `ICON_MAP`: icon names used by the screens → Lucide components (``) | -| `constants/providers.ts` | **380 providers** with Zod validation (source of truth) | +| `constants/providers.ts` | **381 providers** with Zod validation (source of truth) | | `constants/cliTools.ts` | External CLI tool registry | | `constants/routingStrategies.ts` | **20 routing strategies** with priorities | | `constants/publicApiRoutes.ts` | Routes that require Bearer (vs management) auth | @@ -271,7 +271,7 @@ open-sse/ ├── translator/ # Format converters (9 request, 9 response, 9 helpers) ├── transformer/ # Responses API ↔ Chat Completions (TransformStream) ├── services/ # ~80+ service modules (combo, accountFallback, autoCombo, reasoningCache, claude code/chatgpt stealth, modelDeprecation, taskAwareRouter, workflowFSM, etc.) -├── mcp-server/ # MCP server (110 tools, 3 transports, 33 scopes) +├── mcp-server/ # MCP server (129 tools, 3 transports, 34 scopes) ├── config/ # Provider/model registries, header config, model aliases ├── utils/ # TLS client, proxy fetch/dispatcher, network helpers ├── index.ts # Workspace entry @@ -414,13 +414,13 @@ open-sse/ | `CLI-TOOLS.md` | External CLI integrations + Internal OmniRoute CLI | | `I18N.md` | i18n architecture, adding a language, 67 locales | | `UNINSTALL.md` | Clean uninstall steps | -| `PROVIDER_REFERENCE.md` | **Auto-generated** catalog of 380 providers (regen: `npm run gen:provider-reference`) | +| `PROVIDER_REFERENCE.md` | **Auto-generated** catalog of 381 providers (regen: `npm run gen:provider-reference`) | ### Subsystem deep-dives | Doc | Purpose | | ------------------------------------------- | -------------------------------------------------------------------- | -| `MCP-SERVER.md` | MCP server: 110 tools, 3 transports, 33 scopes, REST endpoints | +| `MCP-SERVER.md` | MCP server: 129 tools, 3 transports, 34 scopes, REST endpoints | | `A2A-SERVER.md` | A2A v0.3: JSON-RPC, 6 skills, REST helpers, agent card | | `AGENT_PROTOCOLS_GUIDE.md` | Unified guide: A2A vs ACP vs Cloud Agents | | `CLOUD_AGENT.md` | Codex Cloud / Devin / Jules orchestration | diff --git a/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md b/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md index 28da515ff19e..0237a74c6c0e 100644 --- a/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md +++ b/docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md @@ -22,7 +22,7 @@ Objective feature comparison vs popular open-source AI routers. | **Tier 1/2/3 fallback (subscription→cheap→free)** | ✅ + UI | manual | n/a | manual | | **Token compression** | 12-engine stack (RTK + Caveman + LLMLingua) | none | none | none | | **Multimodal generation (speech/music/video)** | ✅ | ❌ | passthrough | ❌ | -| **Built-in MCP server** | ✅ 110 tools, 33 scopes | ❌ | ❌ | ❌ | +| **Built-in MCP server** | ✅ 129 tools, 33 scopes | ❌ | ❌ | ❌ | | **A2A protocol** | ✅ 6 skills | ❌ | ❌ | ❌ | | **Memory (FTS5 + vector)** | ✅ | ❌ | ❌ | ❌ | | **Guardrails (PII, injection, vision)** | ✅ | partial | ❌ | ✅ paid | @@ -41,7 +41,7 @@ Objective feature comparison vs popular open-source AI routers. ## When to choose OmniRoute -- You self-host and want **maximum provider coverage** (380 providers, 155 free/no-auth catalog entries) +- You self-host and want **maximum provider coverage** (381 providers, 155 free/no-auth catalog entries) - You need a **built-in MCP server** (LLM tools, memory, skills exposed as tools) - You need **A2A protocol** for agent-to-agent workflows - You want **fingerprint stealth** (JA3/JA4) to avoid detection by upstream CAPTCHAs diff --git a/docs/diagrams/cli-terminal.svg b/docs/diagrams/cli-terminal.svg index 56b0af575b67..068f3eabb286 100644 --- a/docs/diagrams/cli-terminal.svg +++ b/docs/diagrams/cli-terminal.svg @@ -1,5 +1,5 @@ - Animated terminal demoing the OmniRoute CLI: omniroute providers list (380 providers registered, anthropic, codex, glm, kimi shown active), omniroute combo list (always-on priority, cost-saver, fusion-panel, context-relay) and omniroute health (healthy, 18412 requests in 24h, p95 412ms, circuit breakers 24 closed, 1 half-open, 0 open), cycling over 89 top-level commands: providers, oauth, keys, combo, nodes, models, cache, compression, cost, usage, quota, health, resilience, telemetry, logs, audit, mcp, a2a, cloud, memory, skills, eval, doctor, repl, tunnel, backup, sync, webhooks, policy, pricing, translator, simulate and more. + Animated terminal demoing the OmniRoute CLI: omniroute providers list (381 providers registered, anthropic, codex, glm, kimi shown active), omniroute combo list (always-on priority, cost-saver, fusion-panel, context-relay) and omniroute health (healthy, 18412 requests in 24h, p95 412ms, circuit breakers 24 closed, 1 half-open, 0 open), cycling over 89 top-level commands: providers, oauth, keys, combo, nodes, models, cache, compression, cost, usage, quota, health, resilience, telemetry, logs, audit, mcp, a2a, cloud, memory, skills, eval, doctor, repl, tunnel, backup, sync, webhooks, policy, pricing, translator, simulate and more. Compact animated terminal cycling three real OmniRoute CLI commands with a typewriter effect and a scrolling subcommand ticker; the first frame shows the completed providers-list screen.
InterfaceEndpoint / commandUse it for
🧰 MCP (stdio)omniroute --mcpPlug into Claude Desktop, Cursor, any MCP client
🌊 MCP (HTTP)/api/mcp/streamRemote MCP — 110 tools, 33 scopes (enforcement opt-in), full audit trail
🌊 MCP (HTTP)/api/mcp/streamRemote MCP — 129 tools, 34 scopes (enforcement opt-in), full audit trail
📡 MCP (SSE)/api/mcp/sseStreaming MCP transport
🤝 A2A/.well-known/agent.jsonAgent-to-agent, JSON-RPC 2.0 + SSE, 6 skills
🌐 REST API/v1/*OpenAI-compatible — chat, embeddings, images, audio, OCR
DocumentDescription
API ReferenceAll endpoints with examples
OpenAPI SpecOpenAPI 3.0 specification
MCP Server110 MCP tools, IDE configs, Python/TS/Go clients
MCP Server129 MCP tools, IDE configs, Python/TS/Go clients
MCP Server GuideMCP installation, transports, and tool reference
A2A ServerJSON-RPC 2.0 protocol, skills, streaming, task mgmt
A2A Server GuideA2A agent card, tasks, skills, and streaming