diff --git a/AGENTS.md b/AGENTS.md index 9279079fa06..a7435533e55 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 (144 migrations) | +| Database | `src/lib/db/` | SQLite domain modules (145 migrations) | | Domain/Policy | `src/domain/` | Policy engine, cost rules, fallback logic | | MCP Server | `open-sse/mcp-server/` | 105 tools (43 base + memory/skill/agentSkill/pool/notion/obsidian/gamification/plugin modules), 3 transports (stdio / SSE / Streamable HTTP), 31 scopes | | A2A Server | `src/lib/a2a/` | JSON-RPC 2.0 agent protocol | diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ff78ca19dc..dcf702012a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -552,6 +552,7 @@ _Living section — regenerated 2026-08-12 from all cycle commits (cycle open `e ### 📝 Maintenance +- **refactor(providers):** removed the Puter provider (id `puter`, alias `pu`) entirely — registry entry, `PuterExecutor`, API-key preset, 33 free-catalog models, i18n auth hints and docs — at the request of Puter's owner, Nariman Jelveh. Migration 152 cleans up any locally stored Puter connections/keys/custom models; historical usage records are preserved. - **fix(types):** preserve the client response format contract while estimating usage for non-streaming responses (#8484) - Preserve the Responses API transform options contract under TypeScript 7. - **fix(types):** preserved the known first-failure record while reading Anthropic thinking-signature recovery details so TypeScript 7 keeps the retry result union narrow ([#8484](https://github.com/diegosouzapw/OmniRoute/issues/8484)) diff --git a/README.md b/README.md index 71bace72685..af30296ab26 100644 --- a/README.md +++ b/README.md @@ -1061,7 +1061,7 @@ same process on one port, so there is no separate CLI-only package today. RuntimeNode.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27 LanguageTypeScript 6.0 — 100% TypeScript across src/ and open-sse/ (zero any in core since v2.0) FrameworkNext.js 16 + React 19 + Tailwind CSS 4 - Databasebetter-sqlite3 (SQLite, WAL journaling) + LowDB (JSON legacy) — 95 domain modules, 144 migrations + Databasebetter-sqlite3 (SQLite, WAL journaling) + LowDB (JSON legacy) — 95 domain modules, 145 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/config/quality/eslint-suppressions.json b/config/quality/eslint-suppressions.json index 92c2c341c2a..9432c5c0021 100644 --- a/config/quality/eslint-suppressions.json +++ b/config/quality/eslint-suppressions.json @@ -34,11 +34,6 @@ "count": 7 } }, - "open-sse/executors/puter.ts": { - "@typescript-eslint/no-explicit-any": { - "count": 4 - } - }, "open-sse/executors/t3-chat-web.ts": { "@typescript-eslint/no-explicit-any": { "count": 11 diff --git a/docs/architecture/ARCHITECTURE.md b/docs/architecture/ARCHITECTURE.md index b41bc812973..b78d433fee8 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 (338 providers, 101 executors) +- OpenAI-compatible API surface for CLI/tools (338 providers, 100 executors) - Request/response translation across provider formats - Model combo fallback (multi-model sequence) - Structured combo steps (`provider + model + connection`) with runtime ordering by `compositeTiers` @@ -924,7 +924,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `PerplexityWebExecutor` | Perplexity web | Web-session reverse for chat continuation | | `PetalsExecutor` | Petals distributed inference | Decentralized swarm routing | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | | `DevinDesktopExecutor` | Devin Desktop | Imported API key + Connect-protobuf chat streaming | @@ -974,7 +973,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Command Code | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ Per request | | Z.AI / GLM | openai | API Key / OAuth | ✅ | ✅ | ❌ | ❌ | | GLMT (preset) | claude | API Key | ✅ | ✅ | ❌ | ⚠️ Per request | diff --git a/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/architecture/CODEBASE_DOCUMENTATION.md index e12317863be..dacf0d6f58b 100644 --- a/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -487,7 +487,7 @@ open-sse/ `antigravity`, `azure-openai`, `blackbox-web`, `chatgpt-web`, `cliproxyapi`, `cloudflare-ai`, `codex`, `commandCode`, `cursor`, `default`, `devin-cli`, `muse-spark-web`, `nlpcloud`, `opencode`, `perplexity-web`, `petals`, -`pollinations`, `puter`, `qoder`, `vertex`, `devin-desktop`, plus `claudeIdentity.ts` +`pollinations`, `qoder`, `vertex`, `devin-desktop`, plus `claudeIdentity.ts` (shared identity helper) and `index.ts` (registry). > Note: providers not listed here are served by `default.ts` using the generic diff --git a/docs/diagrams/free-tier-budget.svg b/docs/diagrams/free-tier-budget.svg index c3ae12e2598..e4503b5534e 100644 --- a/docs/diagrams/free-tier-budget.svg +++ b/docs/diagrams/free-tier-budget.svg @@ -1,4 +1,4 @@ - + @@ -63,7 +63,7 @@ ~1.51B FREE TOKENS / MONTH · STEADY up to ~2.13B in your first month — signup credits - documented free tiers · 42 provider pools · 495 models · one endpoint + documented free tiers · 41 provider pools · 495 models · one endpoint diff --git a/docs/i18n/ar/docs/architecture/ARCHITECTURE.md b/docs/i18n/ar/docs/architecture/ARCHITECTURE.md index 2c2bd8d7c79..04ff8382f36 100644 --- a/docs/i18n/ar/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ar/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ar/llm.txt b/docs/i18n/ar/llm.txt index 454f5dcd4d9..782ed369934 100644 --- a/docs/i18n/ar/llm.txt +++ b/docs/i18n/ar/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/az/docs/architecture/ARCHITECTURE.md b/docs/i18n/az/docs/architecture/ARCHITECTURE.md index 542437a5d02..db4a3c7158b 100644 --- a/docs/i18n/az/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/az/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/az/llm.txt b/docs/i18n/az/llm.txt index d829905bcdc..326e9d53cd4 100644 --- a/docs/i18n/az/llm.txt +++ b/docs/i18n/az/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/bg/docs/architecture/ARCHITECTURE.md b/docs/i18n/bg/docs/architecture/ARCHITECTURE.md index 542437a5d02..db4a3c7158b 100644 --- a/docs/i18n/bg/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/bg/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/bg/llm.txt b/docs/i18n/bg/llm.txt index d829905bcdc..326e9d53cd4 100644 --- a/docs/i18n/bg/llm.txt +++ b/docs/i18n/bg/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/bn/docs/architecture/ARCHITECTURE.md b/docs/i18n/bn/docs/architecture/ARCHITECTURE.md index 3cc31a11821..02da3274c49 100644 --- a/docs/i18n/bn/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/bn/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/bn/llm.txt b/docs/i18n/bn/llm.txt index e0a399b6445..ed5018803be 100644 --- a/docs/i18n/bn/llm.txt +++ b/docs/i18n/bn/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/cs/docs/architecture/ARCHITECTURE.md b/docs/i18n/cs/docs/architecture/ARCHITECTURE.md index aa8454c8f53..b02eab0ce68 100644 --- a/docs/i18n/cs/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/cs/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/cs/llm.txt b/docs/i18n/cs/llm.txt index 922e1764407..9db561a4990 100644 --- a/docs/i18n/cs/llm.txt +++ b/docs/i18n/cs/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/da/docs/architecture/ARCHITECTURE.md b/docs/i18n/da/docs/architecture/ARCHITECTURE.md index 837083841e8..458349ff349 100644 --- a/docs/i18n/da/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/da/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/da/llm.txt b/docs/i18n/da/llm.txt index fc4d0b24661..d69934faa7c 100644 --- a/docs/i18n/da/llm.txt +++ b/docs/i18n/da/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/de/docs/architecture/ARCHITECTURE.md b/docs/i18n/de/docs/architecture/ARCHITECTURE.md index 24047f6d818..d4ad007923d 100644 --- a/docs/i18n/de/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/de/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/de/llm.txt b/docs/i18n/de/llm.txt index c013784a40c..ec69d3bd263 100644 --- a/docs/i18n/de/llm.txt +++ b/docs/i18n/de/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/es/docs/architecture/ARCHITECTURE.md b/docs/i18n/es/docs/architecture/ARCHITECTURE.md index 4b560797776..9158f8dacdc 100644 --- a/docs/i18n/es/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/es/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/es/llm.txt b/docs/i18n/es/llm.txt index c383e191043..41bd5e27639 100644 --- a/docs/i18n/es/llm.txt +++ b/docs/i18n/es/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/fa/docs/architecture/ARCHITECTURE.md b/docs/i18n/fa/docs/architecture/ARCHITECTURE.md index ebb59b969cb..c8331afe35f 100644 --- a/docs/i18n/fa/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fa/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/fa/llm.txt b/docs/i18n/fa/llm.txt index fe7f03f67df..eddf9a05081 100644 --- a/docs/i18n/fa/llm.txt +++ b/docs/i18n/fa/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/fi/docs/architecture/ARCHITECTURE.md b/docs/i18n/fi/docs/architecture/ARCHITECTURE.md index a0d7bdf9249..a9fe07182da 100644 --- a/docs/i18n/fi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fi/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/fi/llm.txt b/docs/i18n/fi/llm.txt index 11273b2f231..62c1602e032 100644 --- a/docs/i18n/fi/llm.txt +++ b/docs/i18n/fi/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/fr/docs/architecture/ARCHITECTURE.md b/docs/i18n/fr/docs/architecture/ARCHITECTURE.md index 50e9cfd0e5d..1e313fb2fd8 100644 --- a/docs/i18n/fr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/fr/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/fr/llm.txt b/docs/i18n/fr/llm.txt index e1c32578f82..c88c0bea08b 100644 --- a/docs/i18n/fr/llm.txt +++ b/docs/i18n/fr/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/gu/docs/architecture/ARCHITECTURE.md b/docs/i18n/gu/docs/architecture/ARCHITECTURE.md index f983736bd3c..6f08e15342d 100644 --- a/docs/i18n/gu/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/gu/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/gu/llm.txt b/docs/i18n/gu/llm.txt index 26a06408053..2d0e32c28ae 100644 --- a/docs/i18n/gu/llm.txt +++ b/docs/i18n/gu/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/he/docs/architecture/ARCHITECTURE.md b/docs/i18n/he/docs/architecture/ARCHITECTURE.md index 505ebbce4ce..fd80b4108a1 100644 --- a/docs/i18n/he/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/he/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/he/llm.txt b/docs/i18n/he/llm.txt index 39c47704a37..5ef6a38c4f5 100644 --- a/docs/i18n/he/llm.txt +++ b/docs/i18n/he/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/hi/docs/architecture/ARCHITECTURE.md b/docs/i18n/hi/docs/architecture/ARCHITECTURE.md index d8b04ef680e..d0bf9e7ec4a 100644 --- a/docs/i18n/hi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/hi/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/hi/llm.txt b/docs/i18n/hi/llm.txt index 27fddd2e192..0485b25972a 100644 --- a/docs/i18n/hi/llm.txt +++ b/docs/i18n/hi/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/hu/docs/architecture/ARCHITECTURE.md b/docs/i18n/hu/docs/architecture/ARCHITECTURE.md index e6d37d24873..bf5454b352b 100644 --- a/docs/i18n/hu/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/hu/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/hu/llm.txt b/docs/i18n/hu/llm.txt index a1d63275bb2..d41f96ae59a 100644 --- a/docs/i18n/hu/llm.txt +++ b/docs/i18n/hu/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/id/docs/architecture/ARCHITECTURE.md b/docs/i18n/id/docs/architecture/ARCHITECTURE.md index ba2756d8721..4ac4d969eaa 100644 --- a/docs/i18n/id/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/id/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Setiap penyedia memiliki pelaksana khusus yang memperluas `BaseExecutor` (dalam | `KiroExecutor` | AWS CodeWhisperer/Kiro | Format biner AWS EventStream → konversi SSE | | `OpenCodeExecutor` | OpenCode | Penyiapan penyedia yang kompatibel dengan AI SDK | | `PollinationsExecutor` | Pollinations AI | Tidak diperlukan kunci API, permintaan dengan tarif terbatas | -| `PuterExecutor` | Puter | Integrasi penyedia berbasis browser | | `QoderExecutor` | Qoder AI | Dukungan PAT dan OAuth, tingkat gratis multi-model | | `VertexExecutor` | Google Vertex AI | Otentikasi akun layanan, titik akhir berbasis wilayah | @@ -719,7 +718,6 @@ Semua penyedia lain (termasuk node khusus yang kompatibel) menggunakan `DefaultE | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Cakupan Terjemahan diff --git a/docs/i18n/id/llm.txt b/docs/i18n/id/llm.txt index 377391d9059..6f22e0d8108 100644 --- a/docs/i18n/id/llm.txt +++ b/docs/i18n/id/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/in/docs/architecture/ARCHITECTURE.md b/docs/i18n/in/docs/architecture/ARCHITECTURE.md index 1de307edb3f..78322e2ec75 100644 --- a/docs/i18n/in/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/in/docs/architecture/ARCHITECTURE.md @@ -676,7 +676,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -721,7 +720,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/in/llm.txt b/docs/i18n/in/llm.txt index bbd35be114a..101449022a7 100644 --- a/docs/i18n/in/llm.txt +++ b/docs/i18n/in/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/it/docs/architecture/ARCHITECTURE.md b/docs/i18n/it/docs/architecture/ARCHITECTURE.md index 437747094ee..d8586ad2602 100644 --- a/docs/i18n/it/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/it/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/it/llm.txt b/docs/i18n/it/llm.txt index d14785348e0..6b4955dcf22 100644 --- a/docs/i18n/it/llm.txt +++ b/docs/i18n/it/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ja/docs/architecture/ARCHITECTURE.md b/docs/i18n/ja/docs/architecture/ARCHITECTURE.md index 5e48e11ff37..82e4168fb2f 100644 --- a/docs/i18n/ja/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ja/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ja/llm.txt b/docs/i18n/ja/llm.txt index e6c52a40c67..8323995d8e5 100644 --- a/docs/i18n/ja/llm.txt +++ b/docs/i18n/ja/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ko/docs/architecture/ARCHITECTURE.md b/docs/i18n/ko/docs/architecture/ARCHITECTURE.md index 7ec310c658d..0a909c85268 100644 --- a/docs/i18n/ko/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ko/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ko/llm.txt b/docs/i18n/ko/llm.txt index e0e5de29103..2af005e4c09 100644 --- a/docs/i18n/ko/llm.txt +++ b/docs/i18n/ko/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/mr/docs/architecture/ARCHITECTURE.md b/docs/i18n/mr/docs/architecture/ARCHITECTURE.md index f0061921be8..93dbe8dc05d 100644 --- a/docs/i18n/mr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/mr/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/mr/llm.txt b/docs/i18n/mr/llm.txt index 5a9ce36db44..7ee59e5eea1 100644 --- a/docs/i18n/mr/llm.txt +++ b/docs/i18n/mr/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ms/docs/architecture/ARCHITECTURE.md b/docs/i18n/ms/docs/architecture/ARCHITECTURE.md index 9ccce50b2e9..da7979eec92 100644 --- a/docs/i18n/ms/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ms/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ms/llm.txt b/docs/i18n/ms/llm.txt index 4c7cee19445..95ed1a5b9f8 100644 --- a/docs/i18n/ms/llm.txt +++ b/docs/i18n/ms/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/nl/docs/architecture/ARCHITECTURE.md b/docs/i18n/nl/docs/architecture/ARCHITECTURE.md index 5fc2c6b8f2e..36744c36b0b 100644 --- a/docs/i18n/nl/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/nl/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/nl/llm.txt b/docs/i18n/nl/llm.txt index 77a8c8a29cf..23a11d7be9b 100644 --- a/docs/i18n/nl/llm.txt +++ b/docs/i18n/nl/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/no/docs/architecture/ARCHITECTURE.md b/docs/i18n/no/docs/architecture/ARCHITECTURE.md index 1b803343a79..0797383faca 100644 --- a/docs/i18n/no/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/no/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/no/llm.txt b/docs/i18n/no/llm.txt index 992be4b63f4..1f6343a9459 100644 --- a/docs/i18n/no/llm.txt +++ b/docs/i18n/no/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/phi/docs/architecture/ARCHITECTURE.md b/docs/i18n/phi/docs/architecture/ARCHITECTURE.md index a5e5eca869a..08eb1b2dcf7 100644 --- a/docs/i18n/phi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/phi/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/phi/llm.txt b/docs/i18n/phi/llm.txt index 9a248f4be20..f9cc575c939 100644 --- a/docs/i18n/phi/llm.txt +++ b/docs/i18n/phi/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/pl/docs/architecture/ARCHITECTURE.md b/docs/i18n/pl/docs/architecture/ARCHITECTURE.md index 40a5cf9981d..6997bd716a2 100644 --- a/docs/i18n/pl/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pl/docs/architecture/ARCHITECTURE.md @@ -924,7 +924,6 @@ Każdy dostawca ma wyspecjalizowany executor rozszerzający `BaseExecutor` (w `o | `PerplexityWebExecutor` | Perplexity web | Reverse sesji web dla kontynuacji czatu | | `PetalsExecutor` | Petals distributed inference | Zdecentralizowany routing swarm | | `PollinationsExecutor` | Pollinations AI | Klucz API niewymagany, żądania z rate limitem | -| `PuterExecutor` | Puter | Integracja dostawcy oparta na przeglądarce | | `QoderExecutor` | Qoder AI | Wsparcie PAT i OAuth, darmowy tier multi-model | | `VertexExecutor` | Google Vertex AI | Auth service account, endpointy oparte na regionie | | `DevinDesktopExecutor` | Devin Desktop | Importowany klucz API + strumieniowanie czatu Connect-protobuf | @@ -974,7 +973,6 @@ Wszystkie pozostałe dostawcy (w tym niestandardowe węzły kompatybilne) używa | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Command Code | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ Per żądanie | | Z.AI / GLM | openai | API Key / OAuth | ✅ | ✅ | ❌ | ❌ | | GLMT (preset) | claude | API Key | ✅ | ✅ | ❌ | ⚠️ Per żądanie | diff --git a/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md index 2293fa73716..8e54d2b8495 100644 --- a/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/pl/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -487,7 +487,7 @@ open-sse/ `antigravity`, `azure-openai`, `blackbox-web`, `chatgpt-web`, `cliproxyapi`, `cloudflare-ai`, `codex`, `commiCode`, `cursor`, `default`, `devin-cli`, `muse-spark-web`, `nlpcloud`, `opencode`, `perplexity-web`, `petals`, -`pollinations`, `puter`, `qoder`, `vertex`, `windsurf`, plus `claudeIdentity.ts` +`pollinations`, `qoder`, `vertex`, `windsurf`, plus `claudeIdentity.ts` (współdzielony helper identity) i `index.ts` (rejestr). > Uwaga: providery niewymienione tutaj są obsługiwane przez `default.ts` z generycznym diff --git a/docs/i18n/pl/llm.txt b/docs/i18n/pl/llm.txt index e47af251328..10916ca0ac2 100644 --- a/docs/i18n/pl/llm.txt +++ b/docs/i18n/pl/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md b/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md index dbee332a368..ae89dd97cac 100644 --- a/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pt-BR/docs/architecture/ARCHITECTURE.md @@ -905,7 +905,6 @@ Cada provedor tem um executor especializado que estende `BaseExecutor` (em `open | `PerplexityWebExecutor` | Perplexity web | Reversão de sessão web para continuidade de chat | | `PetalsExecutor` | Inferência distribuída Petals | Roteamento de enxame descentralizado | | `PollinationsExecutor` | Pollinations AI | Nenhuma chave de API necessária, requisições limitadas por taxa | -| `PuterExecutor` | Puter | Integração de provedor baseada em navegador | | `QoderExecutor` | Qoder AI | Suporte a PAT e OAuth, nível gratuito multi-modelo | | `VertexExecutor` | Google Vertex AI | Autenticação de conta de serviço, endpoints baseados em região | | `DevinDesktopExecutor` | Devin Desktop | Chave de API importada + streaming de chat Connect-protobuf | @@ -956,7 +955,6 @@ Todos os outros provedores (incluindo nós compatíveis personalizados) usam o ` | SiliconFlow | openai | Chave de API | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | Chave de API | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Conta de Serviço | ✅ | ✅ | ✅ | ⚠️ Console da Nuvem | -| Puter | openai | Chave de API | ✅ | ✅ | ❌ | ❌ | | Command Code | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ Por solicitação | | Z.AI / GLM | openai | Chave de API / OAuth | ✅ | ✅ | ❌ | ❌ | | GLMT (preset) | claude | Chave de API | ✅ | ✅ | ❌ | ⚠️ Por solicitação | diff --git a/docs/i18n/pt-BR/llm.txt b/docs/i18n/pt-BR/llm.txt index 2ea921f25e4..0700125ea90 100644 --- a/docs/i18n/pt-BR/llm.txt +++ b/docs/i18n/pt-BR/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/pt/docs/architecture/ARCHITECTURE.md b/docs/i18n/pt/docs/architecture/ARCHITECTURE.md index e2f1fbc2c4f..5964d9c4221 100644 --- a/docs/i18n/pt/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/pt/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/pt/llm.txt b/docs/i18n/pt/llm.txt index 185f5badfe9..80e252d280c 100644 --- a/docs/i18n/pt/llm.txt +++ b/docs/i18n/pt/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ro/docs/architecture/ARCHITECTURE.md b/docs/i18n/ro/docs/architecture/ARCHITECTURE.md index 0a1524bd740..a78b5b048ec 100644 --- a/docs/i18n/ro/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ro/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ro/llm.txt b/docs/i18n/ro/llm.txt index aa9f7446e3d..521a4967e8d 100644 --- a/docs/i18n/ro/llm.txt +++ b/docs/i18n/ro/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ru/docs/architecture/ARCHITECTURE.md b/docs/i18n/ru/docs/architecture/ARCHITECTURE.md index 0592f032f06..62a47874339 100644 --- a/docs/i18n/ru/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ru/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ru/llm.txt b/docs/i18n/ru/llm.txt index 3f008ce8c7e..3418675f115 100644 --- a/docs/i18n/ru/llm.txt +++ b/docs/i18n/ru/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/sk/docs/architecture/ARCHITECTURE.md b/docs/i18n/sk/docs/architecture/ARCHITECTURE.md index 9d57b1f7632..83dddac317e 100644 --- a/docs/i18n/sk/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sk/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/sk/llm.txt b/docs/i18n/sk/llm.txt index dda73b9e774..eee4ed1ebca 100644 --- a/docs/i18n/sk/llm.txt +++ b/docs/i18n/sk/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/sv/docs/architecture/ARCHITECTURE.md b/docs/i18n/sv/docs/architecture/ARCHITECTURE.md index e64ee63af9e..9ed5eda3383 100644 --- a/docs/i18n/sv/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sv/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/sv/llm.txt b/docs/i18n/sv/llm.txt index 9fcf0081fe2..5c632bbcfdb 100644 --- a/docs/i18n/sv/llm.txt +++ b/docs/i18n/sv/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/sw/docs/architecture/ARCHITECTURE.md b/docs/i18n/sw/docs/architecture/ARCHITECTURE.md index e105a47f123..e2d2bea4fd9 100644 --- a/docs/i18n/sw/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/sw/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/sw/llm.txt b/docs/i18n/sw/llm.txt index 69650fcc5c3..edee4bf3508 100644 --- a/docs/i18n/sw/llm.txt +++ b/docs/i18n/sw/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ta/docs/architecture/ARCHITECTURE.md b/docs/i18n/ta/docs/architecture/ARCHITECTURE.md index f9f7e2dccc4..d769e1594ad 100644 --- a/docs/i18n/ta/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ta/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ta/llm.txt b/docs/i18n/ta/llm.txt index f2660ef9a5f..051be3f29ed 100644 --- a/docs/i18n/ta/llm.txt +++ b/docs/i18n/ta/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/te/docs/architecture/ARCHITECTURE.md b/docs/i18n/te/docs/architecture/ARCHITECTURE.md index c1eddd31397..01e2eaf6914 100644 --- a/docs/i18n/te/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/te/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/te/llm.txt b/docs/i18n/te/llm.txt index 8e04cb2e9f5..cec468f0f55 100644 --- a/docs/i18n/te/llm.txt +++ b/docs/i18n/te/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/th/docs/architecture/ARCHITECTURE.md b/docs/i18n/th/docs/architecture/ARCHITECTURE.md index e01fda33fb8..485c70867b9 100644 --- a/docs/i18n/th/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/th/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/th/llm.txt b/docs/i18n/th/llm.txt index 2b6ae43aeb9..8a3b811fa4e 100644 --- a/docs/i18n/th/llm.txt +++ b/docs/i18n/th/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/tr/docs/architecture/ARCHITECTURE.md b/docs/i18n/tr/docs/architecture/ARCHITECTURE.md index e78326919f7..9e409d92438 100644 --- a/docs/i18n/tr/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/tr/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/tr/llm.txt b/docs/i18n/tr/llm.txt index 0c1c41eb053..ebbaacb0674 100644 --- a/docs/i18n/tr/llm.txt +++ b/docs/i18n/tr/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md b/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md index a17560e9a45..0014b6708f0 100644 --- a/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/uk-UA/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/uk-UA/llm.txt b/docs/i18n/uk-UA/llm.txt index 5a7213ed4a8..26f1d1d8621 100644 --- a/docs/i18n/uk-UA/llm.txt +++ b/docs/i18n/uk-UA/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/ur/docs/architecture/ARCHITECTURE.md b/docs/i18n/ur/docs/architecture/ARCHITECTURE.md index 5cf47b7acf7..0ea2490192b 100644 --- a/docs/i18n/ur/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/ur/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/ur/llm.txt b/docs/i18n/ur/llm.txt index 95720495f83..8c98210df21 100644 --- a/docs/i18n/ur/llm.txt +++ b/docs/i18n/ur/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/vi/docs/architecture/ARCHITECTURE.md b/docs/i18n/vi/docs/architecture/ARCHITECTURE.md index 314b934a567..d393227d964 100644 --- a/docs/i18n/vi/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/vi/docs/architecture/ARCHITECTURE.md @@ -674,7 +674,6 @@ Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/ | `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion | | `OpenCodeExecutor` | OpenCode | AI SDK compatible provider setup | | `PollinationsExecutor` | Pollinations AI | No API key required, rate-limited requests | -| `PuterExecutor` | Puter | Browser-based provider integration | | `QoderExecutor` | Qoder AI | PAT and OAuth support, multi-model free tier | | `VertexExecutor` | Google Vertex AI | Service account auth, region-based endpoints | @@ -719,7 +718,6 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | Service Account | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage diff --git a/docs/i18n/vi/llm.txt b/docs/i18n/vi/llm.txt index b4c9ccbe4d7..0043dc5ac3d 100644 --- a/docs/i18n/vi/llm.txt +++ b/docs/i18n/vi/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md b/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md index 7ea48138f42..691bfae8c19 100644 --- a/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/zh-CN/docs/architecture/ARCHITECTURE.md @@ -922,7 +922,6 @@ flowchart LR | `PerplexityWebExecutor` | Perplexity web | Web 会话反向,用于聊延续 | | `PetalsExecutor` | Petals distributed inference | 去中心化集群路由 | | `PollinationsExecutor` | Pollinations AI | 无需 API Key、带速率限制的请求 | -| `PuterExecutor` | Puter | 基于浏览器的服务商集成 | | `QoderExecutor` | Qoder AI | PAT 和 OAuth 支持、多模型免费层 | | `VertexExecutor` | Google Vertex AI | 服务帐户认证、基于区域的端点 | | `DevinDesktopExecutor` | Devin Desktop | 导入的 API 密钥 + Connect-protobuf 聊天流 | @@ -973,7 +972,6 @@ flowchart LR | SiliconFlow | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | 服务帐户 | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API Key | ✅ | ✅ | ❌ | ❌ | | Command Code | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ 每请求 | | Z.AI / GLM | openai | API Key / OAuth | ✅ | ✅ | ❌ | ❌ | | GLMT (preset) | claude | API Key | ✅ | ✅ | ❌ | ⚠️ 每请求 | diff --git a/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md index 40da1196ebe..613cfa2339d 100644 --- a/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/zh-CN/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -467,7 +467,7 @@ open-sse/ `antigravity`、`azure-openai`、`blackbox-web`、`chatgpt-web`、`cliproxyapi`、 `cloudflare-ai`、`codex`、`commandCode`、`cursor`、`default`、`devin-cli`、 `muse-spark-web`、`nlpcloud`、`opencode`、`perplexity-web`、`petals`、 -`pollinations`、`puter`、`qoder`、`vertex`、`windsurf`,以及 `claudeIdentity.ts` +`pollinations`、`qoder`、`vertex`、`windsurf`,以及 `claudeIdentity.ts` (共享身份标识辅助)和 `index.ts`(注册表)。 > 注意:未在此列出的服务商由 `default.ts` 通过通用 OpenAI 兼容执行器提供服务。完整的服务商目录(237 条目)位于 `src/shared/constants/providers.ts`。 diff --git a/docs/i18n/zh-CN/llm.txt b/docs/i18n/zh-CN/llm.txt index 22c88dc8459..648b17d1886 100644 --- a/docs/i18n/zh-CN/llm.txt +++ b/docs/i18n/zh-CN/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md b/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md index 0e9b525be03..756e62c76b0 100644 --- a/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md +++ b/docs/i18n/zh-TW/docs/architecture/ARCHITECTURE.md @@ -899,7 +899,6 @@ flowchart LR | `PerplexityWebExecutor` | Perplexity 網頁 | 用於聊天延續的網頁工作階段反向 | | `PetalsExecutor` | Petals 分散式推理 | 去中心化群組路由 | | `PollinationsExecutor` | Pollinations AI | 無需 API 金鑰、速率限制請求 | -| `PuterExecutor` | Puter | 基於瀏覽器的提供者整合 | | `QoderExecutor` | Qoder AI | PAT 與 OAuth 支援、多模型免費方案 | | `VertexExecutor` | Google Vertex AI | 服務帳戶驗證、基於區域的端點 | | `DevinDesktopExecutor` | Devin Desktop | 匯入的 API 金鑰 + Connect-protobuf 聊天串流 | @@ -949,7 +948,6 @@ flowchart LR | SiliconFlow | openai | API 金鑰 | ✅ | ✅ | ❌ | ❌ | | Hyperbolic | openai | API 金鑰 | ✅ | ✅ | ❌ | ❌ | | Vertex AI | gemini | 服務帳戶 | ✅ | ✅ | ✅ | ⚠️ Cloud Console | -| Puter | openai | API 金鑰 | ✅ | ✅ | ❌ | ❌ | | Command Code | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ 每次請求 | | Z.AI / GLM | openai | API 金鑰 / OAuth | ✅ | ✅ | ❌ | ❌ | | GLMT(預設) | claude | API 金鑰 | ✅ | ✅ | ❌ | ⚠️ 每次請求 | diff --git a/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md b/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md index d4db121af7b..53fa189a396 100644 --- a/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md +++ b/docs/i18n/zh-TW/docs/architecture/CODEBASE_DOCUMENTATION.md @@ -481,7 +481,7 @@ open-sse/ `antigravity`、`azure-openai`、`blackbox-web`、`chatgpt-web`、`cliproxyapi`、 `cloudflare-ai`、`codex`、`commandCode`、`cursor`、`default`、`devin-cli`、 `muse-spark-web`、`nlpcloud`、`opencode`、`perplexity-web`、`petals`、 -`pollinations`、`puter`、`qoder`、`vertex`、`windsurf`,加上 `claudeIdentity.ts` +`pollinations`、`qoder`、`vertex`、`windsurf`,加上 `claudeIdentity.ts` (共用身分識別輔助程式)和 `index.ts`(註冊表)。 > 注意:未列在此處的提供者由 `default.ts` 使用通用的 diff --git a/docs/i18n/zh-TW/llm.txt b/docs/i18n/zh-TW/llm.txt index 13149ea8d12..95108c5472c 100644 --- a/docs/i18n/zh-TW/llm.txt +++ b/docs/i18n/zh-TW/llm.txt @@ -5,6 +5,8 @@ --- + + > 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 338 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (105 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app. ## Overview @@ -19,7 +21,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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -199,8 +201,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -369,7 +370,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -440,7 +441,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/docs/reference/FREE_TIERS.md b/docs/reference/FREE_TIERS.md index f5e85bbffe1..a0ff4719159 100644 --- a/docs/reference/FREE_TIERS.md +++ b/docs/reference/FREE_TIERS.md @@ -140,7 +140,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve | `pollinations` | caution | MIT License cited in API docs suggests liberal reuse; no explicit prohibition on self-hosted proxying found. However, u… | | `predibase` | caution | Predibase is positioned as an enterprise fine-tuning/serving platform; the free trial is explicitly for exploration and… | | `publicai` | caution | ToS (publicai.co/tc) designates services as "primarily for research and educational use"; no explicit proxy or resale p… | -| `puter` | caution | Puter ToS forbids using services for "commercial purpose" without written consent; a self-hosted personal proxy consumi… | | `qoder` | caution | ToS page returned no readable content; Qoder is a coding IDE client (not a public API), and third-party proxy wrappers … | | `reka` | caution | Business Terms prohibit sublicensing or distributing access to third parties; a personal single-user proxy is likely fi… | | `sambanova` | caution | ToS Section 1.5(c) explicitly prohibits reselling, sublicensing, or making the service available to third parties; a se… | @@ -235,7 +234,6 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve | `opencode` | keyless | — | — | avoid | 7 | | `pollinations` | keyless | — | — | caution | 31 | | `publicai` | keyless | — | — | caution | 3 | -| `puter` | keyless | — | — | caution | 33 | | `qwen-web` | keyless | — | — | avoid | 3 | | `reka` | keyless | — | — | caution | 2 | | `sensenova` | keyless | — | — | caution | 1 | @@ -306,7 +304,7 @@ A 50-agent web-research pass (official docs + last-7-days news, adversarially ve - **`pollinations`** — Partially matches — the "no API key required" claim is still true for anonymous access, but the catalog freeNote omits that: (1) rate limits do apply (interval throttle of ~1 req/6-15s for anonymous … - **`predibase`** — The shipped freeNote ($25 free trial credits, 30-day validity) still matches current documentation. However, the catalog omits the concurrent 20,000 tokens/day serverless rate limit that applies duri… - **`publicai`** — The shipped freeNote ("Free community inference tier") is broadly accurate but understates the specificity: the 20 RPM rate limit is now documented. No major tightening found; the service remains fre… -- **`puter`** — Partially matches: the "500+ models" count is still accurate. However "users pay via Puter account" understates the reality — free accounts receive an undocumented starting credit that can be exhaust… +- **`puter`** — **Fully removed** from the catalog (registry, executor, free-model catalog and API-key entry) at the request of Puter's owner (Nariman Jelveh) — see the dead-service-removal precedent above (`phind`). - **`qoder`** — Our catalog ships freeNote "(none)", but Qoder does have a free tier: a Community Edition with unlimited basic-model completions (daily-capped, unspecified limit) plus a one-time 14-day/300-credit Pr… - **`qwen-web`** — Session-token access against chat.qwen.ai is not a dependable free-provider path and may be rejected upstream. - **`sambanova`** — Our shipped note only described the one-time $5 credit (30-day validity). The current reality includes a permanent recurring free tier with documented rate limits (20 RPM, 20 RPD, 200k TPD) that pers… diff --git a/docs/reference/PROVIDER_REFERENCE.md b/docs/reference/PROVIDER_REFERENCE.md index 613209bb49c..a184cc10a4c 100644 --- a/docs/reference/PROVIDER_REFERENCE.md +++ b/docs/reference/PROVIDER_REFERENCE.md @@ -147,14 +147,13 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `bazaarlink` | `bzl` | BazaarLink | API key | [link](https://bazaarlink.ai) | Use your BazaarLink API key (starts with sk-bl-) in Authorization: Bearer . OpenAI SDK works with base URL https://bazaarlink.ai/api/v1. Models use provider/model-name format. | | `bedrock` | `bedrock` | Amazon Bedrock | API key, enterprise | [link](https://aws.amazon.com/bedrock) | Use your Amazon Bedrock API key and configure the AWS region where your models are enabled (for example eu-west-2). OmniRoute calls Bedrock's native Converse API directly. | | `black-forest-labs` | `bfl` | Black Forest Labs | API key, image | [link](https://blackforestlabs.ai) | — | -| `blackbox` | `bb` | Blackbox AI | API key | [link](https://blackbox.ai) | Free tier: unlimited basic chat plus Minimax-M2.5, no credit card required | +| `blackbox` | `bb` | Blackbox AI | API key | [link](https://blackbox.ai) | Limited free access is available through Blackbox; model availability and account limits apply | | `bluesminds` | `bm` | BluesMinds | API key | [link](https://www.bluesminds.com) | Free daily pi credits — supports 200+ models including GPT-4o, GPT-4.1, Claude Sonnet 4.5, Gemini 2.0 Flash, DeepSeek V4, Qwen, Kimi K2 | | `byteplus` | `bpm` | BytePlus ModelArk | API key | [link](https://console.byteplus.com/ark) | — | | `bytez` | `bytez` | Bytez | API key | [link](https://bytez.com) | $1 free credits, refreshes every 4 weeks | | `cerebras` | `cerebras` | Cerebras | API key | [link](https://inference.cerebras.ai) | Free Trial: 1M tokens/day, 30K TPM, 5 RPM — no credit card. | | `charm-hyper` | `charm-hyper` | Charm Hyper | API key | [link](https://hyper.charm.land) | 100 free monthly Hypercredits on signup | | `chat-oripe` | `chat-oripe` | Chat Oripe | API key, aggregator | [link](https://api.oriper.com) | Official metadata advertises 2M tokens/month, but the public site and documentation were blocked during audit; treat the quota and brand mapping as unconfirmed. | -| `chatanywhere` | `chatanywhere` | ChatAnywhere | API key, aggregator | [link](https://chatanywhere.tech) | Personal, educational or research use only: public documentation cites 10,000 points/day and 200 requests/day per IP/key; do not use for commercial traffic. | | `cheaperinference` | `cinf` | Cheaper Inference | API key | [link](https://cheaperinference.com/?utm_source=omniroute) | — | | `chenzk` | `chenzk` | Chenzk API | API key | [link](https://chenzk.top) | — | | `chutes` | `chutes` | Chutes.ai | API key, aggregator | [link](https://chutes.ai) | Bearer API key for the Chutes OpenAI-compatible gateway. | @@ -200,7 +199,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `g4f-ollama` | `g4foll` | g4f.space — Ollama | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. | | `g4f-pollinations` | `g4fpol` | g4f.space — Pollinations | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. | | `galadriel` | `galadriel` | Galadriel | API key | [link](https://galadriel.com) | ⚠️ **DEPRECATED.** api.galadriel.ai no longer resolves (sweep 2026-06-19); the inference API appears discontinued. | -| `gemini` | `gemini` | Gemini (Google AI Studio) | API key | [link](https://aistudio.google.com) | Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com | +| `gemini` | `gemini` | Gemini (Google AI Studio) | API key | [link](https://aistudio.google.com) | Free tier available through Google AI Studio; current per-model quotas and regional limits apply | | `getgoapi` | `ggo` | GoAPI | API key, aggregator | [link](https://api.getgoapi.com) | — | | `gigachat` | `gigachat` | GigaChat (Sber) | API key | [link](https://developers.sber.ru) | — | | `gitlab` | `gitlab` | GitLab Duo PAT | API key | [link](https://docs.gitlab.com/user/duo_agent_platform/code_suggestions/) | GitLab personal access token for the public Code Suggestions API. Configure a self-hosted base URL when not using gitlab.com. | @@ -213,6 +212,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `hackclub` | `hc` | Hackclub AI | API key, aggregator | [link](https://ai.hackclub.com) | Sign in with your Hack Club account at ai.hackclub.com. | | `haiper` | `hp` | Haiper | API key, video | [link](https://haiper.ai) | Get API key at haiper.ai/haiper-api | | `hcnsec` | `hcnsec` | Huancheng Public API | API key | [link](https://api.hcnsec.cn) | Get API key at api.hcnsec.cn | +| `helixmind` | `helixmind` | HelixMind | API key, aggregator | [link](https://helixmind.online) | Previously circulated 3 RPM/50 RPD and no-card claims were not confirmed during the 2026-08-02 audit; current quota and billing require account verification. | | `helyxai` | `helyxai` | Helyx AI | API key, aggregator | [link](https://helyxai.space) | Operational Free plan documents 100,000 tokens/day; the site's separate 2M+ marketing claim conflicts and is not treated as a quota guarantee. | | `heroku` | `heroku` | Heroku AI | API key, enterprise | [link](https://www.heroku.com) | — | | `huggingface` | `hf` | HuggingFace | API key | [link](https://huggingface.co) | Free Inference API for thousands of models (Whisper, VITS, SDXL…) | @@ -289,7 +289,6 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `poolside` | `poolside` | Poolside | API key | [link](https://poolside.ai) | Laguna S 2.1 and XS 2.1 are free during Preview; no public numeric quota is published. | | `predibase` | `predibase` | Predibase | API key | [link](https://predibase.com) | ⚠️ **DEPRECATED.** serving.app.predibase.com no longer resolves (sweep 2026-06-19); the managed serving API appears discontinued. | | `publicai` | `publicai` | PublicAI | API key | [link](https://publicai.co) | Requires an API key — one-time signup credit, then paid | -| `puter` | `pu` | Puter AI | API key | [link](https://puter.com) | Get token at puter.com/dashboard → Copy Auth Token | | `qianfan` | `qianfan` | Baidu Qianfan | API key | [link](https://cloud.baidu.com/product-s/qianfan_home) | — | | `qiniu` | `qiniu` | Qiniu | API key | [link](https://www.qiniu.com) | — | | `qwen-cloud` | `qwc` | Qwen Cloud | API key | [link](https://www.qwencloud.com/) | — | @@ -307,7 +306,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `sealion` | `sealion` | SEA-LION | API key | [link](https://sea-lion.ai) | Sign in at sea-lion.ai with Google (no card, no region wall), create an API key, then paste it here. | | `segmind` | `segmind` | Segmind | API key, image, video | [link](https://segmind.com) | Use your Segmind API key in the x-api-key header. OmniRoute targets https://api.segmind.com/v1/ and returns the generated image/video bytes directly. | | `sensenova` | `sensenova` | SenseNova | API key | [link](https://platform.sensenova.cn) | Get API key at platform.sensenova.cn | -| `siliconflow` | `siliconflow` | SiliconFlow | API key | [link](https://cloud.siliconflow.com) | $1 free credits plus permanently free models after identity verification | +| `siliconflow` | `siliconflow` | SiliconFlow | API key | [link](https://cloud.siliconflow.com) | $1 free credits plus currently listed $0 models after identity verification; availability and limits may change | | `snowflake` | `snowflake` | Snowflake Cortex | API key, enterprise | [link](https://www.snowflake.com) | — | | `sparkdesk` | `sparkdesk` | SparkDesk | API key | [link](https://xinghuo.xfyun.cn) | Get API key at console.xfyun.cn | | `speka` | `speka` | Speka AI | API key, aggregator | [link](https://speka.me) | Free plan: $1 monthly usage, 10 RPM, one API key and access to open models and the playground; no card required. | @@ -333,6 +332,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `vercel-ai-gateway` | `vag` | Vercel AI Gateway | API key, aggregator | [link](https://vercel.com/docs/ai-gateway) | — | | `vertex` | `vertex` | Vertex AI | API key, enterprise | [link](https://cloud.google.com/vertex-ai) | Provide Service Account JSON or OAuth access_token | | `vertex-partner` | `vp` | Vertex AI Partners | API key, enterprise | [link](https://cloud.google.com/vertex-ai) | Provide the same Service Account JSON used for Vertex AI partner models. | +| `void-ai` | `void-ai` | Void AI | API key, aggregator | [link](https://voidai.app) | The public model catalog marks some models with a free plan requirement, but access is conditional and no numeric quota is confirmed. | | `volcengine` | `volcengine` | Volcengine | API key | [link](https://www.volcengine.com) | — | | `voyage-ai` | `voyage` | Voyage AI | API key, embed/rerank | [link](https://www.voyageai.com) | Bearer API key for Voyage AI embeddings and rerank APIs. | | `wafer` | `wafer` | Wafer AI | API key | [link](https://wafer.ai) | — | @@ -426,7 +426,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each - Catalog: [`src/shared/constants/providers.ts`](../../src/shared/constants/providers.ts) - Registry (per-model details): [`open-sse/config/providerRegistry.ts`](../../open-sse/config/providerRegistry.ts) -- Executors: [`open-sse/executors/`](../../open-sse/executors/) (101 implementations) +- Executors: [`open-sse/executors/`](../../open-sse/executors/) (100 implementations) - Translators: [`open-sse/translator/`](../../open-sse/translator/) ## See Also diff --git a/llm.txt b/llm.txt index 470ad5f4156..c9819f298f2 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, 144 migrations) +- **Database:** SQLite via better-sqlite3 (local, zero-config, 145 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 @@ -194,8 +194,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo │ │ ├── vertex.ts # Vertex AI (Service Account JSON) │ │ ├── cloudflare-ai.ts # Cloudflare Workers AI │ │ ├── opencode.ts # OpenCode Zen/Go -│ │ ├── pollinations.ts # Pollinations AI -│ │ └── puter.ts # Puter AI +│ │ └── pollinations.ts # Pollinations AI │ ├── handlers/ # Request handlers per API type (11 handlers) │ │ ├── chatCore.ts # Main chat completions handler │ │ ├── responsesHandler.ts # OpenAI Responses API handler @@ -364,7 +363,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool **OAuth Providers (13):** Claude Code, Antigravity, OpenAI Codex, GitHub Copilot, Cursor IDE, Kimi Coding, Kilo Code, Cline, Kiro, Qoder, Gemini, Windsurf, GitLab Duo -**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, Puter AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan +**API Key Providers (48+):** OpenAI, Anthropic, Gemini (Google AI Studio), DeepSeek, Groq, xAI (Grok), Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius AI, SiliconFlow, Hyperbolic, HuggingFace, OpenRouter, Vertex AI, Cloudflare Workers AI, Scaleway AI, AI/ML API, Pollinations AI, LongCat AI, Alibaba, Alibaba (China), Kimi, Kimi Coding (API Key), Minimax, Minimax (China), Blackbox AI, Synthetic, Kilo Gateway, Z.AI, GLM Coding, Deepgram, AssemblyAI, ElevenLabs, Cartesia, PlayHT, Inworld, NanoBanana, SD WebUI, ComfyUI, Ollama Cloud, Perplexity Search, Serper Search, Brave Search, Exa Search, Tavily Search, OpenCode Zen, OpenCode Go, Alibaba Coding Plan **Custom Providers:** OpenAI-compatible (`openai-compatible-*`) and Anthropic-compatible (`anthropic-compatible-*`) with custom base URLs @@ -435,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 (117 domain-specific files, 144 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 (117 domain-specific files, 145 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/config/freeModelCatalog.data.ts b/open-sse/config/freeModelCatalog.data.ts index d5760f69a5a..3d43bdd0202 100644 --- a/open-sse/config/freeModelCatalog.data.ts +++ b/open-sse/config/freeModelCatalog.data.ts @@ -359,39 +359,6 @@ export const FREE_MODEL_BUDGETS: FreeModelBudget[] = [ { provider: "publicai", modelId: "swiss-ai/apertus-70b-instruct", displayName: "swiss-ai/apertus-70b-instruct", monthlyTokens: 0, creditTokens: 0, freeType: "one-time-initial", poolKey: "publicai", tos: "caution" }, { provider: "publicai", modelId: "aisingapore/Qwen-SEA-LION-v4-32B-IT", displayName: "aisingapore/Qwen-SEA-LION-v4-32B-IT", monthlyTokens: 0, creditTokens: 0, freeType: "one-time-initial", poolKey: "publicai", tos: "caution" }, { provider: "publicai", modelId: "allenai/Olmo-3-32B-Think", displayName: "allenai/Olmo-3-32B-Think", monthlyTokens: 0, creditTokens: 0, freeType: "one-time-initial", poolKey: "publicai", tos: "caution" }, - { provider: "puter", modelId: "gpt-5.5", displayName: "GPT-5.5 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "gpt-5.4", displayName: "GPT-5.4 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "gpt-5.4-mini", displayName: "GPT-5.4 Mini (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "gpt-5.4-nano", displayName: "GPT-5.4 Nano (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "gpt-4o", displayName: "GPT-4o (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "gpt-4o-mini", displayName: "GPT-4o Mini (🆓 Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "o3", displayName: "OpenAI o3 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "claude-haiku-4-5", displayName: "Claude Haiku 4.5 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "claude-opus-4-7", displayName: "Claude Opus 4.7 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "google/gemini-3.1-flash-lite-preview", displayName: "Gemini 3.1 Flash Lite (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "google/gemini-3-flash", displayName: "Gemini 3 Flash (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "google/gemini-3.1-pro-preview", displayName: "Gemini 3.1 Pro (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "deepseek/deepseek-v4-pro", displayName: "DeepSeek V4 Pro (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "deepseek/deepseek-v4-flash", displayName: "DeepSeek V4 Flash (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "x-ai/grok-4.3", displayName: "Grok 4.3 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "x-ai/grok-4.20", displayName: "Grok 4.20 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "llama-4-scout", displayName: "Llama 4 Scout (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "llama-4-maverick", displayName: "Llama 4 Maverick (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "llama-3.3-70b-instruct", displayName: "Llama 3.3 70B (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "mistral-small-2603", displayName: "Mistral Small 4 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "mistral-medium-3-5", displayName: "Mistral Medium 3.5 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "mistral-large-2512", displayName: "Mistral Large (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "devstral-2512", displayName: "Devstral 2 (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "codestral-2508", displayName: "Codestral (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "mistral-nemo", displayName: "Mistral Nemo (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "qwen/qwen3.6-plus", displayName: "Qwen 3.6 Plus (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "qwen/qwen3.5-397b-a17b", displayName: "Qwen 3.5 397B (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "perplexity/sonar-deep-research", displayName: "Perplexity Sonar Deep Research (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "perplexity/sonar-pro-search", displayName: "Perplexity Sonar Pro Search (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "perplexity/sonar-pro", displayName: "Perplexity Sonar Pro (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "perplexity/sonar-reasoning-pro", displayName: "Perplexity Sonar Reasoning Pro (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, - { provider: "puter", modelId: "perplexity/sonar", displayName: "Perplexity Sonar (Puter)", monthlyTokens: 0, creditTokens: 0, freeType: "keyless", poolKey: "puter", tos: "caution" }, { provider: "qoder", modelId: "qwen3.8-max-preview", displayName: "Qwen3.8-Max-Preview", monthlyTokens: 0, creditTokens: 1000000, freeType: "one-time-initial", poolKey: "qoder", tos: "caution" }, { provider: "qoder", modelId: "qwen3.7-max", displayName: "Qwen3.7-Max", monthlyTokens: 0, creditTokens: 1000000, freeType: "one-time-initial", poolKey: "qoder", tos: "caution" }, { provider: "qoder", modelId: "qwen3.7-plus", displayName: "Qwen3.7-Plus", monthlyTokens: 0, creditTokens: 1000000, freeType: "one-time-initial", poolKey: "qoder", tos: "caution" }, diff --git a/open-sse/config/providers/index.ts b/open-sse/config/providers/index.ts index b314e54ff7b..a37ff3fc419 100644 --- a/open-sse/config/providers/index.ts +++ b/open-sse/config/providers/index.ts @@ -13,7 +13,6 @@ import { adapta_webProvider } from "./registry/adapta-web/index.ts"; import { notion_webProvider } from "./registry/notion-web/index.ts"; import { anthropicProvider } from "./registry/anthropic/index.ts"; import { sambanovaProvider } from "./registry/sambanova/index.ts"; -import { puterProvider } from "./registry/puter/index.ts"; import { deepaiProvider } from "./registry/deepai/index.ts"; import { upstageProvider } from "./registry/upstage/index.ts"; import { nebiusProvider } from "./registry/nebius/index.ts"; @@ -261,7 +260,6 @@ import { freeAiProvider } from "./registry/free-ai/index.ts"; import { voidAiProvider } from "./registry/void-ai/index.ts"; import { helixmindProvider } from "./registry/helixmind/index.ts"; - export const REGISTRY: Record = { aimlapi: aimlapiProvider, "ollama-cloud": ollama_cloudProvider, @@ -273,7 +271,6 @@ export const REGISTRY: Record = { "notion-web": notion_webProvider, anthropic: anthropicProvider, sambanova: sambanovaProvider, - puter: puterProvider, upstage: upstageProvider, deepai: deepaiProvider, nebius: nebiusProvider, @@ -523,5 +520,4 @@ export const REGISTRY: Record = { "free-ai": freeAiProvider, "void-ai": voidAiProvider, helixmind: helixmindProvider, - }; diff --git a/open-sse/config/providers/registry/puter/index.ts b/open-sse/config/providers/registry/puter/index.ts deleted file mode 100644 index a1e14d9cce4..00000000000 --- a/open-sse/config/providers/registry/puter/index.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { RegistryEntry } from "../../shared.ts"; - -export const puterProvider: RegistryEntry = { - id: "puter", - alias: "pu", - format: "openai", - executor: "puter", - // OpenAI-compatible gateway with 500+ models (GPT, Claude, Gemini, Grok, DeepSeek, Qwen…) - // Auth: Bearer from puter.com/dashboard → Copy Auth Token - // Model IDs use provider/model-name format for non-OpenAI models. - // Only chat completions (incl. streaming) are available via REST. - // Image gen, TTS, STT, video are puter.js SDK-only (browser). - baseUrl: "https://api.puter.com/puterai/openai/v1/chat/completions", - authType: "apikey", - authHeader: "bearer", - models: [ - // OpenAI — use bare IDs - { id: "gpt-5.5", name: "GPT-5.5 (Puter)" }, - { id: "gpt-5.4", name: "GPT-5.4 (Puter)" }, - { id: "gpt-5.4-mini", name: "GPT-5.4 Mini (Puter)" }, - { id: "gpt-5.4-nano", name: "GPT-5.4 Nano (Puter)" }, - { id: "gpt-4o", name: "GPT-4o (Puter)" }, - { id: "gpt-4o-mini", name: "GPT-4o Mini (🆓 Puter)" }, - { id: "o3", name: "OpenAI o3 (Puter)" }, - // Anthropic Claude — use bare IDs (confirmed working) - { id: "claude-haiku-4-5", name: "Claude Haiku 4.5 (Puter)" }, - { id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6 (Puter)" }, - { id: "claude-opus-4-7", name: "Claude Opus 4.7 (Puter)" }, - // Google Gemini — use google/ prefix (confirmed working) - { id: "google/gemini-3.5-flash", name: "Gemini 3.5 Flash (Puter)" }, - { id: "google/gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite (Puter)" }, - { id: "google/gemini-3-flash", name: "Gemini 3 Flash (Puter)" }, - { id: "google/gemini-3.1-pro-preview", name: "Gemini 3.1 Pro (Puter)" }, - // DeepSeek — use deepseek/ prefix (confirmed working) - { - id: "deepseek/deepseek-v4-pro", - name: "DeepSeek V4 Pro (Puter)", - supportsReasoning: true, - }, - { - id: "deepseek/deepseek-v4-flash", - name: "DeepSeek V4 Flash (Puter)", - supportsReasoning: true, - }, - // xAI Grok — use x-ai/ prefix - { id: "x-ai/grok-4.3", name: "Grok 4.3 (Puter)" }, - { id: "x-ai/grok-4.20", name: "Grok 4.20 (Puter)" }, - // Meta Llama — bare IDs (confirmed ✅) - { id: "llama-4-scout", name: "Llama 4 Scout (Puter)" }, - { id: "llama-4-maverick", name: "Llama 4 Maverick (Puter)" }, - { id: "llama-3.3-70b-instruct", name: "Llama 3.3 70B (Puter)" }, - // Mistral — bare IDs (confirmed ✅) - { id: "mistral-small-2603", name: "Mistral Small 4 (Puter)" }, - { id: "mistral-medium-3-5", name: "Mistral Medium 3.5 (Puter)" }, - { id: "mistral-large-2512", name: "Mistral Large (Puter)" }, - { id: "devstral-2512", name: "Devstral 2 (Puter)" }, - { id: "codestral-2508", name: "Codestral (Puter)" }, - { id: "mistral-nemo", name: "Mistral Nemo (Puter)" }, - // Qwen — use qwen/ prefix (confirmed ✅) - { id: "qwen/qwen3.6-plus", name: "Qwen 3.6 Plus (Puter)" }, - { id: "qwen/qwen3.5-397b-a17b", name: "Qwen 3.5 397B (Puter)" }, - // Perplexity Sonar via OpenRouter aliases exposed by Puter - { id: "perplexity/sonar-deep-research", name: "Perplexity Sonar Deep Research (Puter)" }, - { id: "perplexity/sonar-pro-search", name: "Perplexity Sonar Pro Search (Puter)" }, - { id: "perplexity/sonar-pro", name: "Perplexity Sonar Pro (Puter)" }, - { id: "perplexity/sonar-reasoning-pro", name: "Perplexity Sonar Reasoning Pro (Puter)" }, - { id: "perplexity/sonar", name: "Perplexity Sonar (Puter)" }, - ], - passthroughModels: true, // 500+ models available — users can type arbitrary Puter model IDs -}; diff --git a/open-sse/executors/index.ts b/open-sse/executors/index.ts index 267752cb84a..e564d236816 100644 --- a/open-sse/executors/index.ts +++ b/open-sse/executors/index.ts @@ -12,7 +12,6 @@ import { GlmExecutor } from "./glm.ts"; import { PollinationsExecutor } from "./pollinations.ts"; import { CloudflareAIExecutor } from "./cloudflare-ai.ts"; import { OpencodeExecutor } from "./opencode.ts"; -import { PuterExecutor } from "./puter.ts"; import { VertexExecutor } from "./vertex.ts"; import { CliproxyapiExecutor } from "./cliproxyapi.ts"; import { DarioExecutor } from "./dario.ts"; @@ -108,8 +107,6 @@ const executors = { "opencode-zen": new OpencodeExecutor("opencode-zen"), "opencode-go": new OpencodeExecutor("opencode-go"), opencode: new OpencodeExecutor("opencode-zen"), // Alias for opencode-zen - puter: new PuterExecutor(), - pu: new PuterExecutor(), // Alias vertex: new VertexExecutor(), "vertex-partner": new VertexExecutor(), cliproxyapi: new CliproxyapiExecutor(), @@ -261,7 +258,6 @@ export { GlmExecutor } from "./glm.ts"; export { PollinationsExecutor } from "./pollinations.ts"; export { CloudflareAIExecutor } from "./cloudflare-ai.ts"; export { OpencodeExecutor } from "./opencode.ts"; -export { PuterExecutor } from "./puter.ts"; export { CliproxyapiExecutor } from "./cliproxyapi.ts"; export { DarioExecutor } from "./dario.ts"; export { NineRouterExecutor } from "./ninerouter.ts"; diff --git a/open-sse/executors/puter.ts b/open-sse/executors/puter.ts deleted file mode 100644 index fd9de71b5f5..00000000000 --- a/open-sse/executors/puter.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { BaseExecutor } from "./base.ts"; -import { PROVIDERS } from "../config/constants.ts"; - -/** - * PuterExecutor — OpenAI-compatible proxy for Puter AI. - * - * Puter exposes 500+ models (GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Mistral...) - * through a single OpenAI-compatible REST endpoint. - * - * Endpoint: https://api.puter.com/puterai/openai/v1/chat/completions - * Auth: Bearer (from puter.com/dashboard → Copy Auth Token) - * Docs: https://docs.puter.com/AI/ - * - * Model ID examples: - * OpenAI: "gpt-4o-mini", "gpt-4o", "gpt-4.1" - * Claude: "claude-sonnet-4-5", "claude-opus-4", "claude-haiku-4-5" - * Gemini: "google/gemini-2.0-flash", "google/gemini-2.5-pro" - * DeepSeek: "deepseek/deepseek-chat", "deepseek/deepseek-r1" - * Grok: "x-ai/grok-3", "x-ai/grok-4" - * Mistral: "mistralai/mistral-small-3.2" - * Meta: "meta-llama/llama-3.3-70b-instruct" - * - * Note: Image generation, TTS, STT, and video are puter.js SDK-only features. - * Only text chat completions (with streaming SSE) are available via REST. - */ -export class PuterExecutor extends BaseExecutor { - constructor() { - super("puter", PROVIDERS["puter"] || { format: "openai" }); - } - - buildUrl(_model: string, _stream: boolean, _urlIndex = 0, _credentials = null): string { - return "https://api.puter.com/puterai/openai/v1/chat/completions"; - } - - buildHeaders(credentials: any, stream = true): Record { - const headers: Record = { - "Content-Type": "application/json", - }; - - const key = credentials?.apiKey || credentials?.accessToken; - if (key) { - headers["Authorization"] = `Bearer ${key}`; - } - - if (stream) { - headers["Accept"] = "text/event-stream"; - } - - return headers; - } - - transformRequest(model: string, body: any, _stream: boolean, _credentials: any): any { - // Puter accepts model IDs directly from its catalog. - // No transformation required — model string is passed as-is. - return body; - } -} - -export default PuterExecutor; diff --git a/open-sse/services/sessionPool/sessionFactory.ts b/open-sse/services/sessionPool/sessionFactory.ts index 39c1c2e5966..87dba8a3aec 100644 --- a/open-sse/services/sessionPool/sessionFactory.ts +++ b/open-sse/services/sessionPool/sessionFactory.ts @@ -1,7 +1,7 @@ /** * SessionFactory — Creates initialized Session instances * - * For zero-auth providers (Pollinations, Puter): just assigns a fingerprint. + * For zero-auth providers (Pollinations): just assigns a fingerprint. * For cookie-based providers (ChatGPT Web, DeepSeek Web): would launch * headless Playwright, solve Turnstile, and extract cookies. * @@ -33,7 +33,7 @@ export class SessionFactory { fingerprint, this.config.cooldownBase, this.config.cooldownMax, - this.config.cooldownJitter, + this.config.cooldownJitter ); } @@ -48,10 +48,7 @@ export class SessionFactory { } /** Build headers from session fingerprint */ - buildHeaders( - session: Session, - extra?: Record, - ): Record { + buildHeaders(session: Session, extra?: Record): Record { return session.buildHeaders(extra); } } diff --git a/open-sse/services/sessionPool/webExecutorWrapper.ts b/open-sse/services/sessionPool/webExecutorWrapper.ts index cb51048dcd0..51f1292d691 100644 --- a/open-sse/services/sessionPool/webExecutorWrapper.ts +++ b/open-sse/services/sessionPool/webExecutorWrapper.ts @@ -44,7 +44,7 @@ export interface WebExecutorFn { * 2. Merges session headers (UA + Sec-CH-UA) into the request * 3. Handles 429 → pool cooldown, 5xx → session death * - * For zero-auth providers like Pollinations, Puter, etc. this is all + * For zero-auth providers like Pollinations this is all * that's needed for "truly unlimited" — the fingerprint rotation alone * defeats burst-based rate limiting. */ @@ -54,7 +54,7 @@ export function withSessionPool( options?: { /** When true, wraps the response body for error handling */ wrapResponse?: boolean; - }, + } ): WebExecutorFn { const wrapResponse = options?.wrapResponse ?? true; diff --git a/public/providers/puter.svg b/public/providers/puter.svg deleted file mode 100644 index 2bd9180ee09..00000000000 --- a/public/providers/puter.svg +++ /dev/null @@ -1 +0,0 @@ -P diff --git a/src/app/(dashboard)/dashboard/usage/components/FreeBudgetCard.tsx b/src/app/(dashboard)/dashboard/usage/components/FreeBudgetCard.tsx index 28cab659991..4fd8dff8ede 100644 --- a/src/app/(dashboard)/dashboard/usage/components/FreeBudgetCard.tsx +++ b/src/app/(dashboard)/dashboard/usage/components/FreeBudgetCard.tsx @@ -353,7 +353,7 @@ export function FreeBudgetView({ // "No API key required" — derived from routing behaviour, NOT from // freeType: "keyless". That field means "free access not quantifiable in // tokens"; probing the endpoints showed several of those rows (blackbox, - // puter, iflytek, sparkdesk, friendliai, muse-spark-web) answering 401/403 + // iflytek, sparkdesk, friendliai, muse-spark-web) answering 401/403 // with no credential. Listing them here would invite users to call providers // that reject them. const keylessModels = perModel.filter((m) => noCredentialProviders.includes(m.provider)); diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index f9da468bbb8..643544bf071 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -5949,7 +5949,6 @@ "poe": "يوفر Poe دردشة واستجابات متوافقة مع OpenAI على https://api.poe.com/v1، مع التحقق من الرصيد المصادق عليه على /usage/current_balance.", "pollinations": "الفئة المجانية بدون مفتاح: openai، وopenai-fast، وopenai-large، وqwen-coder، وmistral، وdeepseek، وgrok، وgemini-flash-lite-3.1، وperplexity-fast، وperplexity-reasoning. تتطلب النماذج المميزة (claude، وgemini، وmidijourney) مفتاح Pollinations API من enter.pollinations.ai.", "publicai": "يتطلب مفتاح API — رصيد تسجيل لمرة واحدة، ثم مدفوع", - "puter": "احصل على الرمز المميز من puter.com/dashboard ← انسخ Auth Token", "qiniu": "أنشئ مفتاح Qiniu AI inference API على https://portal.qiniu.com/ai-inference/api-key، ثم الصقه هنا كرمز Bearer. نقطة نهاية متوافقة مع OpenAI على https://api.qnaigc.com/v1، لتوكيل DeepSeek وClaude وKimi والمزيد خلف مفتاح واحد.", "recraft": "ربط Recraft بمفتاح API.", "reka": "Reka Chat متوافق مع OpenAI على /v1. يقوم OmniRoute بفحص /v1/models وتوجيه حركة مرور الدردشة إلى /v1/chat/completions.", diff --git a/src/i18n/messages/az.json b/src/i18n/messages/az.json index ba1f3ebddc3..ae340730bb1 100644 --- a/src/i18n/messages/az.json +++ b/src/i18n/messages/az.json @@ -5949,7 +5949,6 @@ "poe": "Poe https://api.poe.com/v1 ünvanında OpenAI ilə uyğun söhbət və cavabları təqdim edir, /usage/current_balance ünvanında isə autentifikasiya edilmiş balans yoxlamalarını dəstəkləyir.", "pollinations": "Pulsuz açarsız səviyyə: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium modellər (claude, gemini, midijourney) enter.pollinations.ai saytından Pollinations API açarı tələb edir.", "publicai": "API açarı tələb olunur — qeydiyyat zamanı birdəfəlik kredit, sonra isə ödənişli", - "puter": "Tokeni puter.com/dashboard ünvanından əldə edin → Auth Token-i kopyalayın", "qiniu": "https://portal.qiniu.com/ai-inference/api-key ünvanında Qiniu AI inference API açarı yaradın, sonra onu bura Bearer tokeni kimi yapışdırın. OpenAI ilə uyğun son nöqtə https://api.qnaigc.com/v1 ünvanındadır və bir açar arxasında DeepSeek, Claude, Kimi və digərlərini proksiləşdirir.", "recraft": "Recraft-ı API açarı ilə qoşun.", "reka": "Reka Chat /v1 ünvanında OpenAI ilə uyğundur. OmniRoute /v1/models ünvanını yoxlayır və söhbət trafikini /v1/chat/completions ünvanına yönləndirir.", diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json index a2aa4128cf5..ab848d1ba41 100644 --- a/src/i18n/messages/bg.json +++ b/src/i18n/messages/bg.json @@ -5949,7 +5949,6 @@ "poe": "Poe предоставя съвместими с OpenAI чат и отговори на https://api.poe.com/v1, с автентикирани проверки на баланса на /usage/current_balance.", "pollinations": "Безплатно ниво без ключ: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Премиум моделите (claude, gemini, midijourney) изискват API ключ за Pollinations от enter.pollinations.ai.", "publicai": "Изисква API ключ — еднократен кредит при регистрация, след което е платено", - "puter": "Вземете токен на puter.com/dashboard → Copy Auth Token", "qiniu": "Създайте API ключ за Qiniu AI inference на https://portal.qiniu.com/ai-inference/api-key, след което го поставете тук като Bearer токен. Съвместима с OpenAI крайна точка на https://api.qnaigc.com/v1, проксираща DeepSeek, Claude, Kimi и други зад един ключ.", "recraft": "Свържете Recraft с API ключ.", "reka": "Reka Chat е съвместим с OpenAI на /v1. OmniRoute проверява /v1/models и пренасочва чат трафика към /v1/chat/completions.", diff --git a/src/i18n/messages/bn.json b/src/i18n/messages/bn.json index 4336e312308..49da675c0d6 100644 --- a/src/i18n/messages/bn.json +++ b/src/i18n/messages/bn.json @@ -5949,7 +5949,6 @@ "poe": "Poe https://api.poe.com/v1-এ OpenAI-সামঞ্জস্যপূর্ণ চ্যাট এবং রেসপন্স প্রকাশ করে, সাথে /usage/current_balance-এ অথেন্টিকেটেড ব্যালেন্স চেক করার সুবিধা রয়েছে।", "pollinations": "ফ্রি কী-হীন টিয়ার: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning। প্রিমিয়াম মডেলগুলোর (claude, gemini, midijourney) জন্য enter.pollinations.ai থেকে একটি Pollinations API কী প্রয়োজন।", "publicai": "একটি API কী প্রয়োজন — এককালীন সাইনআপ ক্রেডিট, তারপর পেইড", - "puter": "puter.com/dashboard থেকে টোকেন পান → Auth Token কপি করুন", "qiniu": "https://portal.qiniu.com/ai-inference/api-key-এ একটি Qiniu AI ইনফারেন্স API কী তৈরি করুন, তারপর এটি এখানে Bearer টোকেন হিসেবে পেস্ট করুন। https://api.qnaigc.com/v1-এ OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট, যা একটি কী-এর মাধ্যমে DeepSeek, Claude, Kimi এবং আরও অনেক কিছু প্রক্সি করে।", "recraft": "একটি API কী দিয়ে Recraft কানেক্ট করুন।", "reka": "Reka Chat /v1-এ OpenAI-সামঞ্জস্যপূর্ণ। OmniRoute /v1/models প্রোব করে এবং চ্যাট ট্রাফিক /v1/chat/completions-এ রাউট করে।", diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json index 1137f5c0b8d..46cdd477109 100644 --- a/src/i18n/messages/cs.json +++ b/src/i18n/messages/cs.json @@ -5949,7 +5949,6 @@ "poe": "Poe poskytuje chat a odpovědi kompatibilní s OpenAI na adrese https://api.poe.com/v1, s ověřenou kontrolou zůstatku na /usage/current_balance.", "pollinations": "Bezplatná úroveň bez klíče: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Prémiové modely (claude, gemini, midijourney) vyžadují API klíč Pollinations z enter.pollinations.ai.", "publicai": "Vyžaduje API klíč — jednorázový kredit při registraci, poté placené", - "puter": "Získejte token na puter.com/dashboard → Zkopírujte Auth Token", "qiniu": "Vytvořte API klíč pro Qiniu AI inferenci na adrese https://portal.qiniu.com/ai-inference/api-key a poté jej vložte sem jako Bearer token. Koncový bod kompatibilní s OpenAI je na adrese https://api.qnaigc.com/v1, který pod jedním klíčem proxyuje DeepSeek, Claude, Kimi a další.", "recraft": "Připojte Recraft pomocí API klíče.", "reka": "Reka Chat je kompatibilní s OpenAI na /v1. OmniRoute testuje /v1/models a směruje chatovací provoz na /v1/chat/completions.", diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json index 1b5401cad41..bb344aa2e83 100644 --- a/src/i18n/messages/da.json +++ b/src/i18n/messages/da.json @@ -5949,7 +5949,6 @@ "poe": "Poe eksponerer OpenAI-kompatibel chat og responses på https://api.poe.com/v1 med godkendte saldotjek på /usage/current_balance.", "pollinations": "Gratis nøglefrit niveau: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium-modeller (claude, gemini, midijourney) kræver en Pollinations API-nøgle fra enter.pollinations.ai.", "publicai": "Kræver en API-nøgle — engangskredit ved tilmelding, derefter betalt", - "puter": "Hent token på puter.com/dashboard → Kopiér Auth Token", "qiniu": "Opret en Qiniu AI-inferens-API-nøgle på https://portal.qiniu.com/ai-inference/api-key, og indsæt den derefter her som en Bearer-token. OpenAI-kompatibelt slutpunkt på https://api.qnaigc.com/v1, der fungerer som proxy for DeepSeek, Claude, Kimi og flere bag én nøgle.", "recraft": "Forbind Recraft med en API-nøgle.", "reka": "Reka Chat er OpenAI-kompatibel på /v1. OmniRoute undersøger /v1/models og dirigerer chattrafik til /v1/chat/completions.", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index 2d2922039d6..94323f5afcc 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -5950,7 +5950,6 @@ "poe": "Poe stellt OpenAI-kompatible Chat- und Responses-Endpunkte unter https://api.poe.com/v1 bereit, mit authentifizierten Guthabenabfragen auf /usage/current_balance.", "pollinations": "Kostenlose schlüssellose Stufe: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium-Modelle (claude, gemini, midijourney) erfordern einen Pollinations-API-Schlüssel von enter.pollinations.ai.", "publicai": "Erfordert einen API-Schlüssel — einmaliges Startguthaben bei Registrierung, danach kostenpflichtig", - "puter": "Token unter puter.com/dashboard abrufen → Auth-Token kopieren", "qiniu": "Erstellen Sie einen Qiniu-AI-Inferenz-API-Schlüssel unter https://portal.qiniu.com/ai-inference/api-key und fügen Sie ihn hier als Bearer-Token ein. OpenAI-kompatibler Endpunkt unter https://api.qnaigc.com/v1, der DeepSeek, Claude, Kimi und weitere hinter einem einzigen Schlüssel per Proxy bereitstellt.", "recraft": "Recraft mit einem API-Schlüssel verbinden.", "reka": "Reka Chat ist auf /v1 OpenAI-kompatibel. OmniRoute fragt /v1/models ab und leitet den Chat-Traffic an /v1/chat/completions weiter.", diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index 01b1095683a..788fdd7287e 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -6129,7 +6129,6 @@ "poe": "Poe exposes OpenAI-compatible chat and responses on https://api.poe.com/v1, with authenticated balance checks on /usage/current_balance.", "pollinations": "Free keyless tier: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium models (claude, gemini, midijourney) require a Pollinations API key from enter.pollinations.ai.", "publicai": "Requires an API key — one-time signup credit, then paid", - "puter": "Get token at puter.com/dashboard → Copy Auth Token", "qiniu": "Create a Qiniu AI inference API key at https://portal.qiniu.com/ai-inference/api-key, then paste it here as a Bearer token. OpenAI-compatible endpoint at https://api.qnaigc.com/v1, proxying DeepSeek, Claude, Kimi and more behind one key.", "recraft": "Connect Recraft with an API key.", "reka": "Reka Chat is OpenAI-compatible on /v1. OmniRoute probes /v1/models and routes chat traffic to /v1/chat/completions.", diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index 488abf1f66e..6876c2c637a 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -5949,7 +5949,6 @@ "poe": "Poe exposes OpenAI-compatible chat and responses on https://api.poe.com/v1, with authenticated balance checks on /usage/current_balance.", "pollinations": "Free keyless tier: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium models (claude, gemini, midijourney) require a Pollinations API key from enter.pollinations.ai.", "publicai": "Requires an API key — one-time signup credit, then paid", - "puter": "Get token at puter.com/dashboard → Copy Auth Token", "qiniu": "Create a Qiniu AI inference API key at https://portal.qiniu.com/ai-inference/api-key, then paste it here as a Bearer token. OpenAI-compatible endpoint at https://api.qnaigc.com/v1, proxying DeepSeek, Claude, Kimi and more behind one key.", "recraft": "Connect Recraft with an API key.", "reka": "Reka Chat is OpenAI-compatible on /v1. OmniRoute probes /v1/models and routes chat traffic to /v1/chat/completions.", diff --git a/src/i18n/messages/fa.json b/src/i18n/messages/fa.json index f95fbc10e75..923390e1b8d 100644 --- a/src/i18n/messages/fa.json +++ b/src/i18n/messages/fa.json @@ -5949,7 +5949,6 @@ "poe": "سرویس Poe چت و پاسخ‌های سازگار با OpenAI را در https://api.poe.com/v1 ارائه می‌دهد، همراه با بررسی موجودی احراز هویت شده در /usage/current_balance.", "pollinations": "سطح رایگان بدون کلید: openai، openai-fast، openai-large، qwen-coder، mistral، deepseek، grok، gemini-flash-lite-3.1، perplexity-fast، perplexity-reasoning. مدل‌های پرمیوم (claude، gemini، midijourney) به یک کلید API از Pollinations از آدرس enter.pollinations.ai نیاز دارند.", "publicai": "نیاز به یک کلید API دارد — اعتبار ثبت‌نام یک‌بار مصرف، سپس پرداخت هزینه", - "puter": "توکن را در puter.com/dashboard دریافت کنید ← کپی کردن Auth Token", "qiniu": "یک کلید API استنتاج Qiniu AI در https://portal.qiniu.com/ai-inference/api-key بسازید، سپس آن را در اینجا به عنوان توکن Bearer جای‌گذاری کنید. نقطه پایانی سازگار با OpenAI در https://api.qnaigc.com/v1، که DeepSeek، Claude، Kimi و موارد دیگر را پشت یک کلید پروکسی می‌کند.", "recraft": "اتصال Recraft با یک کلید API.", "reka": "سرویس Reka Chat در مسیر /v1 با OpenAI سازگار است. OmniRoute مسیر /v1/models را بررسی کرده و ترافیک چت را به /v1/chat/completions هدایت می‌کند.", diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json index 35fd1bb0ac5..617843905dd 100644 --- a/src/i18n/messages/fi.json +++ b/src/i18n/messages/fi.json @@ -5949,7 +5949,6 @@ "poe": "Poe tarjoaa OpenAI-yhteensopivan chatin ja vastaukset osoitteessa https://api.poe.com/v1 sekä todennetut saldotarkistukset osoitteessa /usage/current_balance.", "pollinations": "Ilmainen avaimeton taso: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium-mallit (claude, gemini, midijourney) vaativat Pollinations API -avaimen osoitteesta enter.pollinations.ai.", "publicai": "Vaatii API-avaimen — kertaluonteinen rekisteröitymissaldo, sen jälkeen maksullinen", - "puter": "Hanki token osoitteessa puter.com/dashboard → Copy Auth Token", "qiniu": "Luo Qiniu AI -päättelyn API-avain osoitteessa https://portal.qiniu.com/ai-inference/api-key ja liitä se sitten tähän Bearer-tokenina. OpenAI-yhteensopiva päätepiste osoitteessa https://api.qnaigc.com/v1 välittää DeepSeek-, Claude-, Kimi- ja muita malleja yhden avaimen takana.", "recraft": "Yhdistä Recraft API-avaimella.", "reka": "Reka Chat on OpenAI-yhteensopiva polussa /v1. OmniRoute tutkii polun /v1/models ja reitittää chat-liikenteen polkuun /v1/chat/completions.", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 5f770550da7..875b1b1c4e3 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -6114,7 +6114,6 @@ "poe": "Poe expose un chat et des réponses compatibles avec OpenAI sur https://api.poe.com/v1, avec des vérifications de solde authentifiées sur /usage/current_balance.", "pollinations": "Niveau gratuit sans clé : openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Les modèles Premium (claude, gemini, midijourney) nécessitent une clé API Pollinations provenant de enter.pollinations.ai.", "publicai": "Nécessite une clé API — crédit d'inscription unique, puis payant", - "puter": "Obtenez le jeton sur puter.com/dashboard → Copier le jeton d'authentification", "qiniu": "Créez une clé API d'inférence Qiniu AI sur https://portal.qiniu.com/ai-inference/api-key, puis collez-la ici en tant que jeton Bearer. Point de terminaison compatible OpenAI sur https://api.qnaigc.com/v1, servant de proxy pour DeepSeek, Claude, Kimi et plus encore derrière une seule clé.", "recraft": "Connecter Recraft avec une clé API.", "reka": "Reka Chat est compatible avec OpenAI sur /v1. OmniRoute sonde /v1/models et redirige le trafic de chat vers /v1/chat/completions.", diff --git a/src/i18n/messages/gu.json b/src/i18n/messages/gu.json index 6744b8496a8..9128f16cd62 100644 --- a/src/i18n/messages/gu.json +++ b/src/i18n/messages/gu.json @@ -5949,7 +5949,6 @@ "poe": "Poe https://api.poe.com/v1 પર OpenAI-સુસંગત ચેટ અને રિસ્પોન્સ પ્રદાન કરે છે, જેમાં /usage/current_balance પર પ્રમાણિત બેલેન્સ ચેક ઉપલબ્ધ છે.", "pollinations": "મફત કી-લેસ ટાયર: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. પ્રીમિયમ મોડલ્સ (claude, gemini, midijourney) માટે enter.pollinations.ai પરથી Pollinations API key ની જરૂર પડે છે.", "publicai": "API key ની જરૂર છે — એક વખતની સાઇનઅપ ક્રેડિટ, પછી પેઇડ", - "puter": "puter.com/dashboard પર ટોકન મેળવો → Auth Token કોપી કરો", "qiniu": "https://portal.qiniu.com/ai-inference/api-key પર Qiniu AI ઇન્ફરન્સ API key બનાવો, પછી તેને અહીં Bearer token તરીકે પેસ્ટ કરો. https://api.qnaigc.com/v1 પર OpenAI-સુસંગત એન્ડપોઇન્ટ, જે એક જ કી પાછળ DeepSeek, Claude, Kimi અને વધુને પ્રોક્સી કરે છે.", "recraft": "API key વડે Recraft ને કનેક્ટ કરો.", "reka": "Reka Chat /v1 પર OpenAI-સુસંગત છે. OmniRoute /v1/models ની તપાસ કરે છે અને ચેટ ટ્રાફિકને /v1/chat/completions પર રૂટ કરે છે.", diff --git a/src/i18n/messages/he.json b/src/i18n/messages/he.json index 7d7678a837d..27dc4060a23 100644 --- a/src/i18n/messages/he.json +++ b/src/i18n/messages/he.json @@ -5949,7 +5949,6 @@ "poe": "Poe חושף chat ו-responses תואמי OpenAI בכתובת https://api.poe.com/v1, עם בדיקות יתרה מאומתות ב-/usage/current_balance.", "pollinations": "שכבה חינמית ללא מפתח: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. מודלי פרימיום (claude, gemini, midijourney) דורשים מפתח API של Pollinations מ-enter.pollinations.ai.", "publicai": "דורש מפתח API — קרדיט חד-פעמי בהרשמה, ולאחר מכן בתשלום", - "puter": "קבל טוקן ב-puter.com/dashboard → Copy Auth Token", "qiniu": "צור מפתח API להסקת Qiniu AI בכתובת https://portal.qiniu.com/ai-inference/api-key, ולאחר מכן הדבק אותו כאן כ-Bearer token. נקודת קצה תואמת OpenAI בכתובת https://api.qnaigc.com/v1, המשמשת כפרוקסי עבור DeepSeek, Claude, Kimi ועוד מאחורי מפתח יחיד.", "recraft": "חבר את Recraft באמצעות מפתח API.", "reka": "Reka Chat תואם ל-OpenAI ב-/v1. ‏OmniRoute בודק את /v1/models ומנתב תעבורת צ'אט אל /v1/chat/completions.", diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json index 0540801e7c9..a0e9dc236e5 100644 --- a/src/i18n/messages/hi.json +++ b/src/i18n/messages/hi.json @@ -5949,7 +5949,6 @@ "poe": "Poe https://api.poe.com/v1 पर OpenAI-संगत चैट और रिस्पॉन्स एक्सपोज़ करता है, जिसमें /usage/current_balance पर प्रमाणित बैलेंस चेक शामिल है।", "pollinations": "मुफ्त कीलेस टियर: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning। प्रीमियम मॉडल (claude, gemini, midijourney) के लिए enter.pollinations.ai से एक Pollinations API कुंजी की आवश्यकता होती है।", "publicai": "एक API कुंजी की आवश्यकता है — एक बार साइनअप क्रेडिट, फिर सशुल्क", - "puter": "puter.com/dashboard पर टोकन प्राप्त करें → Auth Token कॉपी करें", "qiniu": "https://portal.qiniu.com/ai-inference/api-key पर एक Qiniu AI इनफेरेंस API कुंजी बनाएं, फिर इसे यहाँ Bearer टोकन के रूप में पेस्ट करें। https://api.qnaigc.com/v1 पर OpenAI-संगत एंडपॉइंट, जो एक कुंजी के पीछे DeepSeek, Claude, Kimi और अन्य को प्रॉक्सी करता है।", "recraft": "API कुंजी के साथ Recraft को कनेक्ट करें।", "reka": "Reka Chat /v1 पर OpenAI-संगत है। OmniRoute /v1/models की जांच करता है और चैट ट्रैफ़िक को /v1/chat/completions पर रूट करता है।", diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json index dc61ac2d3f7..70e39307ecb 100644 --- a/src/i18n/messages/hu.json +++ b/src/i18n/messages/hu.json @@ -5949,7 +5949,6 @@ "poe": "A Poe OpenAI-kompatibilis chat és responses végpontokat tesz elérhetővé a https://api.poe.com/v1 címen, hitelesített egyenleg-ellenőrzéssel a /usage/current_balance végponton.", "pollinations": "Ingyenes, kulcs nélküli szint: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. A prémium modellekhez (claude, gemini, midijourney) Pollinations API-kulcs szükséges az enter.pollinations.ai oldalról.", "publicai": "API-kulcs szükséges — egyszeri regisztrációs kredit, utána fizetős", - "puter": "Szerezze be a tokent a puter.com/dashboard oldalon → Copy Auth Token", "qiniu": "Hozzon létre egy Qiniu AI inference API-kulcsot a https://portal.qiniu.com/ai-inference/api-key oldalon, majd illessze be ide Bearer tokenként. OpenAI-kompatibilis végpont a https://api.qnaigc.com/v1 címen, amely a DeepSeek, Claude, Kimi és további modelleket proxyzza egyetlen kulcs mögött.", "recraft": "Csatlakoztassa a Recraftot egy API-kulccsal.", "reka": "A Reka Chat OpenAI-kompatibilis a /v1 végponton. Az OmniRoute lekérdezi a /v1/models végpontot, és a csevegési forgalmat a /v1/chat/completions végpontra irányítja.", diff --git a/src/i18n/messages/id.json b/src/i18n/messages/id.json index 026710fd46a..0c20809c327 100644 --- a/src/i18n/messages/id.json +++ b/src/i18n/messages/id.json @@ -5949,7 +5949,6 @@ "poe": "Poe mengekspos chat dan responses yang kompatibel dengan OpenAI di https://api.poe.com/v1, dengan pemeriksaan saldo terautentikasi di /usage/current_balance.", "pollinations": "Tingkat gratis tanpa kunci: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Model premium (claude, gemini, midijourney) memerlukan kunci API Pollinations dari enter.pollinations.ai.", "publicai": "Memerlukan kunci API — kredit pendaftaran satu kali, selanjutnya berbayar", - "puter": "Dapatkan token di puter.com/dashboard → Salin Auth Token", "qiniu": "Buat kunci API inferensi Qiniu AI di https://portal.qiniu.com/ai-inference/api-key, lalu tempel di sini sebagai token Bearer. Endpoint yang kompatibel dengan OpenAI di https://api.qnaigc.com/v1, memproksi DeepSeek, Claude, Kimi, dan lainnya di balik satu kunci.", "recraft": "Hubungkan Recraft dengan kunci API.", "reka": "Reka Chat kompatibel dengan OpenAI pada /v1. OmniRoute menyelidiki /v1/models dan merutekan lalu lintas chat ke /v1/chat/completions.", diff --git a/src/i18n/messages/in.json b/src/i18n/messages/in.json index e84ed5bb310..3cf84c9d221 100644 --- a/src/i18n/messages/in.json +++ b/src/i18n/messages/in.json @@ -5949,7 +5949,6 @@ "poe": "Poe mengekspos chat dan responses yang kompatibel dengan OpenAI di https://api.poe.com/v1, dengan pemeriksaan saldo terautentikasi pada /usage/current_balance.", "pollinations": "Tingkat gratis tanpa kunci: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Model premium (claude, gemini, midijourney) memerlukan kunci API Pollinations dari enter.pollinations.ai.", "publicai": "Memerlukan kunci API — kredit pendaftaran satu kali, selanjutnya berbayar", - "puter": "Dapatkan token di puter.com/dashboard → Salin Token Auth", "qiniu": "Buat kunci API inferensi Qiniu AI di https://portal.qiniu.com/ai-inference/api-key, lalu tempelkan di sini sebagai token Bearer. Endpoint yang kompatibel dengan OpenAI di https://api.qnaigc.com/v1, memproksi DeepSeek, Claude, Kimi, dan lainnya di balik satu kunci.", "recraft": "Hubungkan Recraft dengan kunci API.", "reka": "Reka Chat kompatibel dengan OpenAI pada /v1. OmniRoute menyelidiki /v1/models dan mengarahkan lalu lintas chat ke /v1/chat/completions.", diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json index 204433874d8..fdefeb0c9a4 100644 --- a/src/i18n/messages/it.json +++ b/src/i18n/messages/it.json @@ -5949,7 +5949,6 @@ "poe": "Poe espone chat e risposte compatibili con OpenAI su https://api.poe.com/v1, con controlli del saldo autenticati su /usage/current_balance.", "pollinations": "Livello gratuito senza chiave: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. I modelli premium (claude, gemini, midijourney) richiedono una chiave API Pollinations da enter.pollinations.ai.", "publicai": "Richiede una chiave API — credito di registrazione una tantum, poi a pagamento", - "puter": "Ottieni il token su puter.com/dashboard → Copia Auth Token", "qiniu": "Crea una chiave API di inferenza Qiniu AI su https://portal.qiniu.com/ai-inference/api-key, quindi incollala qui come token Bearer. Endpoint compatibile con OpenAI su https://api.qnaigc.com/v1, che fa da proxy per DeepSeek, Claude, Kimi e altri dietro un'unica chiave.", "recraft": "Connetti Recraft con una chiave API.", "reka": "Reka Chat è compatibile con OpenAI su /v1. OmniRoute sonda /v1/models e instrada il traffico di chat verso /v1/chat/completions.", diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json index 2492569714e..f4fcc7af9a5 100644 --- a/src/i18n/messages/ja.json +++ b/src/i18n/messages/ja.json @@ -5949,7 +5949,6 @@ "poe": "Poeはhttps://api.poe.com/v1でOpenAI互換のチャットとレスポンスを提供し、/usage/current_balanceで認証済みの残高確認を行います。", "pollinations": "無料のキーレス層:openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning。プレミアムモデル(claude, gemini, midijourney)にはenter.pollinations.aiから取得したPollinations APIキーが必要です。", "publicai": "APIキーが必要 — 初回登録時の無料クレジット、その後は有料", - "puter": "puter.com/dashboardでトークンを取得 → Auth Tokenをコピー", "qiniu": "https://portal.qiniu.com/ai-inference/api-keyでQiniu AI推論APIキーを作成し、ここにBearerトークンとして貼り付けます。https://api.qnaigc.com/v1にあるOpenAI互換のエンドポイントは、1つのキーの背後でDeepSeek、Claude、Kimiなどをプロキシします。", "recraft": "APIキーでRecraftに接続します。", "reka": "Reka Chatは/v1でOpenAI互換です。OmniRouteは/v1/modelsを調査し、チャットトラフィックを/v1/chat/completionsにルーティングします。", diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json index ef8f16b0d42..5c3c5e362ec 100644 --- a/src/i18n/messages/ko.json +++ b/src/i18n/messages/ko.json @@ -5949,7 +5949,6 @@ "poe": "Poe는 https://api.poe.com/v1에서 OpenAI 호환 채팅 및 응답을 제공하며, /usage/current_balance에서 인증된 잔액 확인을 지원합니다.", "pollinations": "무료 키리스(keyless) 티어: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. 프리미엄 모델(claude, gemini, midijourney)은 enter.pollinations.ai에서 발급받은 Pollinations API 키가 필요합니다.", "publicai": "API 키 필요 — 가입 시 1회성 크레딧 제공 후 유료 전환", - "puter": "puter.com/dashboard에서 토큰 받기 → Auth Token 복사", "qiniu": "https://portal.qiniu.com/ai-inference/api-key에서 Qiniu AI 추론 API 키를 생성한 후 여기에 Bearer 토큰으로 붙여넣으세요. https://api.qnaigc.com/v1의 OpenAI 호환 엔드포인트는 하나의 키로 DeepSeek, Claude, Kimi 등을 프록시합니다.", "recraft": "API 키로 Recraft를 연결합니다.", "reka": "Reka Chat은 /v1에서 OpenAI와 호환됩니다. OmniRoute는 /v1/models를 탐색하고 채팅 트래픽을 /v1/chat/completions로 라우팅합니다.", diff --git a/src/i18n/messages/mr.json b/src/i18n/messages/mr.json index f5ab9b9d9a4..8b3b36c902d 100644 --- a/src/i18n/messages/mr.json +++ b/src/i18n/messages/mr.json @@ -5949,7 +5949,6 @@ "poe": "Poe हे https://api.poe.com/v1 वर OpenAI-सुसंगत चॅट आणि प्रतिसाद दर्शवते, ज्यामध्ये /usage/current_balance वर प्रमाणीकृत बॅलन्स तपासणी उपलब्ध आहे.", "pollinations": "मोफत की-लेस स्तर: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. प्रीमियम मॉडेल्ससाठी (claude, gemini, midijourney) enter.pollinations.ai कडून Pollinations API की आवश्यक आहे.", "publicai": "API की आवश्यक आहे — एकवेळचे साइनअप क्रेडिट, त्यानंतर सशुल्क", - "puter": "puter.com/dashboard वर टोकन मिळवा → Auth Token कॉपी करा", "qiniu": "https://portal.qiniu.com/ai-inference/api-key वर Qiniu AI इन्फरन्स API की तयार करा, नंतर ती येथे Bearer टोकन म्हणून पेस्ट करा. https://api.qnaigc.com/v1 वर OpenAI-सुसंगत एंडपॉइंट आहे, जो एकाच की च्या मागे DeepSeek, Claude, Kimi आणि इतर मॉडेल्स प्रॉक्सी करतो.", "recraft": "API की द्वारे Recraft कनेक्ट करा.", "reka": "Reka Chat हे /v1 वर OpenAI-सुसंगत आहे. OmniRoute हे /v1/models तपासते आणि चॅट ट्रॅफिक /v1/chat/completions कडे मार्गस्थ करते.", diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json index 6891cefb896..81a7dabb280 100644 --- a/src/i18n/messages/ms.json +++ b/src/i18n/messages/ms.json @@ -5949,7 +5949,6 @@ "poe": "Poe mendedahkan sembang dan respons serasi OpenAI pada https://api.poe.com/v1, dengan semakan baki disahkan pada /usage/current_balance.", "pollinations": "Peringkat tanpa kunci percuma: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Model premium (claude, gemini, midijourney) memerlukan kunci API Pollinations daripada enter.pollinations.ai.", "publicai": "Memerlukan kunci API — kredit pendaftaran sekali sahaja, kemudian berbayar", - "puter": "Dapatkan token di puter.com/dashboard → Salin Auth Token", "qiniu": "Cipta kunci API inferens Qiniu AI di https://portal.qiniu.com/ai-inference/api-key, kemudian tampalkannya di sini sebagai token Bearer. Titik akhir serasi OpenAI di https://api.qnaigc.com/v1, memproksikan DeepSeek, Claude, Kimi dan banyak lagi di sebalik satu kunci.", "recraft": "Sambungkan Recraft dengan kunci API.", "reka": "Reka Chat adalah serasi OpenAI pada /v1. OmniRoute menyiasat /v1/models dan menghalakan trafik sembang ke /v1/chat/completions.", diff --git a/src/i18n/messages/nl.json b/src/i18n/messages/nl.json index a4e1074e881..3894646d328 100644 --- a/src/i18n/messages/nl.json +++ b/src/i18n/messages/nl.json @@ -5949,7 +5949,6 @@ "poe": "Poe stelt OpenAI-compatibele chat en antwoorden beschikbaar op https://api.poe.com/v1, met geauthenticeerde saldocontroles op /usage/current_balance.", "pollinations": "Gratis sleutelloos niveau: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium-modellen (claude, gemini, midijourney) vereisen een Pollinations API-sleutel van enter.pollinations.ai.", "publicai": "Vereist een API-sleutel — eenmalig aanmeldtegoed, daarna betaald", - "puter": "Haal token op via puter.com/dashboard → Kopieer Auth Token", "qiniu": "Maak een Qiniu AI-inference API-sleutel aan op https://portal.qiniu.com/ai-inference/api-key en plak deze hier als een Bearer-token. OpenAI-compatibel eindpunt op https://api.qnaigc.com/v1, dat DeepSeek, Claude, Kimi en meer proxiet achter één sleutel.", "recraft": "Verbind Recraft met een API-sleutel.", "reka": "Reka Chat is OpenAI-compatibel op /v1. OmniRoute peilt /v1/models en stuurt chatverkeer door naar /v1/chat/completions.", diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json index 4115e688316..91a73fc1057 100644 --- a/src/i18n/messages/no.json +++ b/src/i18n/messages/no.json @@ -5949,7 +5949,6 @@ "poe": "Poe eksponerer OpenAI-kompatibel chat og svar på https://api.poe.com/v1, med autentiserte saldo-sjekker på /usage/current_balance.", "pollinations": "Gratis nøkkelløst nivå: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium-modeller (claude, gemini, midijourney) krever en Pollinations API-nøkkel fra enter.pollinations.ai.", "publicai": "Krever en API-nøkkel — engangs registreringskreditt, deretter betalt", - "puter": "Hent token på puter.com/dashboard → Kopier Auth Token", "qiniu": "Opprett en Qiniu AI-inferens-API-nøkkel på https://portal.qiniu.com/ai-inference/api-key, og lim den deretter inn her som et Bearer-token. OpenAI-kompatibelt endepunkt på https://api.qnaigc.com/v1, som videresender DeepSeek, Claude, Kimi og mer bak én nøkkel.", "recraft": "Koble til Recraft med en API-nøkkel.", "reka": "Reka Chat er OpenAI-kompatibel på /v1. OmniRoute sjekker /v1/models og ruter chattrafikk til /v1/chat/completions.", diff --git a/src/i18n/messages/phi.json b/src/i18n/messages/phi.json index fbac514020e..68a7f1679b9 100644 --- a/src/i18n/messages/phi.json +++ b/src/i18n/messages/phi.json @@ -5949,7 +5949,6 @@ "poe": "Nag-e-expose ang Poe ng OpenAI-compatible na chat at mga tugon sa https://api.poe.com/v1, na may authenticated na pagsusuri ng balanse sa /usage/current_balance.", "pollinations": "Libreng keyless tier: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Ang mga premium model (claude, gemini, midijourney) ay nangangailangan ng Pollinations API key mula sa enter.pollinations.ai.", "publicai": "Nangangailangan ng API key — isang beses na signup credit, pagkatapos ay may bayad na", - "puter": "Kumuha ng token sa puter.com/dashboard → Kopyahin ang Auth Token", "qiniu": "Gumawa ng Qiniu AI inference API key sa https://portal.qiniu.com/ai-inference/api-key, pagkatapos ay i-paste ito rito bilang isang Bearer token. OpenAI-compatible na endpoint sa https://api.qnaigc.com/v1, nagpo-proxy ng DeepSeek, Claude, Kimi at marami pang iba sa likod ng isang key.", "recraft": "Ikonekta ang Recraft gamit ang isang API key.", "reka": "Ang Reka Chat ay OpenAI-compatible sa /v1. Sinusuri ng OmniRoute ang /v1/models at niruruta ang chat traffic sa /v1/chat/completions.", diff --git a/src/i18n/messages/pl.json b/src/i18n/messages/pl.json index 1d4786d0d94..7e1a9b8a62d 100644 --- a/src/i18n/messages/pl.json +++ b/src/i18n/messages/pl.json @@ -5949,7 +5949,6 @@ "poe": "Poe udostępnia zgodne z OpenAI punkty końcowe chat i responses pod adresem https://api.poe.com/v1, z uwierzytelnionym sprawdzaniem salda na /usage/current_balance.", "pollinations": "Darmowy plan bezkluczowy: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Modele premium (claude, gemini, midijourney) wymagają klucza API Pollinations z enter.pollinations.ai.", "publicai": "Wymaga klucza API — jednorazowy kredyt przy rejestracji, potem płatne", - "puter": "Pobierz token na puter.com/dashboard → Copy Auth Token", "qiniu": "Utwórz klucz API wnioskowania Qiniu AI na https://portal.qiniu.com/ai-inference/api-key, a następnie wklej go tutaj jako token Bearer. Punkt końcowy zgodny z OpenAI pod adresem https://api.qnaigc.com/v1, pośredniczący dla DeepSeek, Claude, Kimi i innych za pomocą jednego klucza.", "recraft": "Połącz Recraft za pomocą klucza API.", "reka": "Reka Chat jest zgodny z OpenAI na /v1. OmniRoute sprawdza /v1/models i przekierowuje ruch czatu do /v1/chat/completions.", diff --git a/src/i18n/messages/pt-BR.json b/src/i18n/messages/pt-BR.json index 545ab9e6545..239696ee74d 100644 --- a/src/i18n/messages/pt-BR.json +++ b/src/i18n/messages/pt-BR.json @@ -6114,7 +6114,6 @@ "poe": "O Poe expõe chat e responses compatíveis com OpenAI em https://api.poe.com/v1, com verificação autenticada de saldo em /usage/current_balance.", "pollinations": "Nível gratuito sem chave: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Modelos premium (claude, gemini, midijourney) requerem uma chave de API do Pollinations em enter.pollinations.ai.", "publicai": "Requer uma chave de API — crédito único no cadastro, depois pago", - "puter": "Obtenha o token em puter.com/dashboard → Copy Auth Token", "qiniu": "Crie uma chave de API de inferência Qiniu AI em https://portal.qiniu.com/ai-inference/api-key e cole-a aqui como um token Bearer. Endpoint compatível com OpenAI em https://api.qnaigc.com/v1, fazendo proxy de DeepSeek, Claude, Kimi e outros por trás de uma única chave.", "recraft": "Conecte o Recraft com uma chave de API.", "reka": "O Reka Chat é compatível com OpenAI em /v1. O OmniRoute sonda /v1/models e roteia o tráfego de chat para /v1/chat/completions.", diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index a5032f53a3f..e298f86a884 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -5949,7 +5949,6 @@ "poe": "O Poe expõe chat e responses compatíveis com a OpenAI em https://api.poe.com/v1, com verificações de saldo autenticadas em /usage/current_balance.", "pollinations": "Nível gratuito sem chave: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Os modelos premium (claude, gemini, midijourney) requerem uma chave de API da Pollinations de enter.pollinations.ai.", "publicai": "Requer uma chave de API — crédito único no registo, depois pago", - "puter": "Obtenha o token em puter.com/dashboard → Copy Auth Token", "qiniu": "Crie uma chave de API de inferência Qiniu AI em https://portal.qiniu.com/ai-inference/api-key e, em seguida, cole-a aqui como um token Bearer. Endpoint compatível com a OpenAI em https://api.qnaigc.com/v1, fazendo proxy de DeepSeek, Claude, Kimi e mais através de uma única chave.", "recraft": "Ligue o Recraft com uma chave de API.", "reka": "O Reka Chat é compatível com a OpenAI em /v1. O OmniRoute sonda /v1/models e encaminha o tráfego de chat para /v1/chat/completions.", diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json index 99bc4b32e2d..bbcdc365579 100644 --- a/src/i18n/messages/ro.json +++ b/src/i18n/messages/ro.json @@ -5949,7 +5949,6 @@ "poe": "Poe expune chat și răspunsuri compatibile cu OpenAI la https://api.poe.com/v1, cu verificări autentificate ale soldului la /usage/current_balance.", "pollinations": "Nivel gratuit fără cheie: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Modelele premium (claude, gemini, midijourney) necesită o cheie API Pollinations de la enter.pollinations.ai.", "publicai": "Necesită o cheie API — credit unic la înregistrare, apoi cu plată", - "puter": "Obține tokenul la puter.com/dashboard → Copy Auth Token", "qiniu": "Creează o cheie API Qiniu AI inference la https://portal.qiniu.com/ai-inference/api-key, apoi lipește-o aici ca token Bearer. Endpoint compatibil cu OpenAI la https://api.qnaigc.com/v1, oferind proxy pentru DeepSeek, Claude, Kimi și altele în spatele unei singure chei.", "recraft": "Conectează Recraft cu o cheie API.", "reka": "Reka Chat este compatibil cu OpenAI pe /v1. OmniRoute sondează /v1/models și direcționează traficul de chat către /v1/chat/completions.", diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json index 7fff7292fe7..fab2ebe9070 100644 --- a/src/i18n/messages/ru.json +++ b/src/i18n/messages/ru.json @@ -5949,7 +5949,6 @@ "poe": "Poe предоставляет совместимые с OpenAI чат и ответы на https://api.poe.com/v1, с аутентифицированной проверкой баланса на /usage/current_balance.", "pollinations": "Бесплатный уровень без ключа: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Для премиум-моделей (claude, gemini, midijourney) требуется API-ключ Pollinations с enter.pollinations.ai.", "publicai": "Требуется API-ключ — разовый кредит при регистрации, далее платно", - "puter": "Получить токен на puter.com/dashboard → Скопировать Auth Token", "qiniu": "Создайте API-ключ вывода Qiniu AI на https://portal.qiniu.com/ai-inference/api-key, затем вставьте его сюда в качестве Bearer-токена. Совместимая с OpenAI конечная точка находится по адресу https://api.qnaigc.com/v1, проксируя DeepSeek, Claude, Kimi и другие модели под одним ключом.", "recraft": "Подключить Recraft с помощью API-ключа.", "reka": "Reka Chat совместим с OpenAI на /v1. OmniRoute опрашивает /v1/models и направляет трафик чата на /v1/chat/completions.", diff --git a/src/i18n/messages/sk.json b/src/i18n/messages/sk.json index 618269ebbdd..3d0d013da17 100644 --- a/src/i18n/messages/sk.json +++ b/src/i18n/messages/sk.json @@ -5949,7 +5949,6 @@ "poe": "Poe poskytuje chat a odpovede kompatibilné s OpenAI na https://api.poe.com/v1, s overenou kontrolou zostatku na /usage/current_balance.", "pollinations": "Bezplatná úroveň bez kľúča: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Prémiové modely (claude, gemini, midijourney) vyžadujú API kľúč Pollinations z enter.pollinations.ai.", "publicai": "Vyžaduje API kľúč — jednorazový kredit pri registrácii, potom platené", - "puter": "Získajte token na puter.com/dashboard → Skopírujte Auth Token", "qiniu": "Vytvorte API kľúč pre Qiniu AI inference na https://portal.qiniu.com/ai-inference/api-key, potom ho sem vložte ako Bearer token. Koncový bod kompatibilný s OpenAI na https://api.qnaigc.com/v1, ktorý pod jedným kľúčom sprostredkováva DeepSeek, Claude, Kimi a ďalšie.", "recraft": "Pripojte Recraft pomocou API kľúča.", "reka": "Reka Chat je kompatibilný s OpenAI na /v1. OmniRoute testuje /v1/models a smeruje chatovú prevádzku na /v1/chat/completions.", diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json index 499ea222c27..7cfc15bdc25 100644 --- a/src/i18n/messages/sv.json +++ b/src/i18n/messages/sv.json @@ -5949,7 +5949,6 @@ "poe": "Poe exponerar OpenAI-kompatibel chatt och svar på https://api.poe.com/v1, med autentiserade saldokontroller på /usage/current_balance.", "pollinations": "Gratis nyckellös nivå: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premiummodeller (claude, gemini, midijourney) kräver en Pollinations API-nyckel från enter.pollinations.ai.", "publicai": "Kräver en API-nyckel — engångskredit vid registrering, därefter betald", - "puter": "Hämta token på puter.com/dashboard → Kopiera Auth Token", "qiniu": "Skapa en API-nyckel för Qiniu AI-inferens på https://portal.qiniu.com/ai-inference/api-key, klistra sedan in den här som en Bearer-token. OpenAI-kompatibel slutpunkt på https://api.qnaigc.com/v1, som agerar proxy för DeepSeek, Claude, Kimi med flera bakom en nyckel.", "recraft": "Anslut Recraft med en API-nyckel.", "reka": "Reka Chat är OpenAI-kompatibel på /v1. OmniRoute sonderar /v1/models och dirigerar chattrafik till /v1/chat/completions.", diff --git a/src/i18n/messages/sw.json b/src/i18n/messages/sw.json index b1886a820a2..736070dd1ce 100644 --- a/src/i18n/messages/sw.json +++ b/src/i18n/messages/sw.json @@ -5949,7 +5949,6 @@ "poe": "Poe hutoa gumzo na majibu yanayooana na OpenAI kwenye https://api.poe.com/v1, ikiwa na ukaguzi wa salio uliothibitishwa kwenye /usage/current_balance.", "pollinations": "Kiwango cha bure kisicho na ufunguo: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Miundo ya kulipia (claude, gemini, midijourney) inahitaji ufunguo wa API wa Pollinations kutoka enter.pollinations.ai.", "publicai": "Inahitaji ufunguo wa API — salio la mara moja la kujisajili, kisha ya kulipia", - "puter": "Pata tokeni kwenye puter.com/dashboard → Copy Auth Token", "qiniu": "Unda ufunguo wa API wa makisio ya Qiniu AI kwenye https://portal.qiniu.com/ai-inference/api-key, kisha ubandike hapa kama tokeni ya Bearer. Endpoint inayooana na OpenAI iko kwenye https://api.qnaigc.com/v1, ikifanya kazi kama proksi ya DeepSeek, Claude, Kimi na zaidi nyuma ya ufunguo mmoja.", "recraft": "Unganisha Recraft kwa kutumia ufunguo wa API.", "reka": "Reka Chat inaoana na OpenAI kwenye /v1. OmniRoute huchunguza /v1/models na kuelekeza trafiki ya gumzo kwenye /v1/chat/completions.", diff --git a/src/i18n/messages/ta.json b/src/i18n/messages/ta.json index f8bf80a4d7f..78baa2ef93f 100644 --- a/src/i18n/messages/ta.json +++ b/src/i18n/messages/ta.json @@ -5949,7 +5949,6 @@ "poe": "Poe ஆனது https://api.poe.com/v1 இல் OpenAI-உடன் இணக்கமான அரட்டை மற்றும் பதில்களை வழங்குகிறது, மேலும் /usage/current_balance இல் அங்கீகரிக்கப்பட்ட இருப்புச் சோதனைகளைக் கொண்டுள்ளது.", "pollinations": "இலவச கீ இல்லாத அடுக்கு: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. பிரீமியம் மாதிரிகளுக்கு (claude, gemini, midijourney) enter.pollinations.ai இலிருந்து ஒரு Pollinations API கீ தேவைப்படுகிறது.", "publicai": "ஒரு API கீ தேவை — ஒரு முறை பதிவு செய்வதற்கான கிரெடிட், அதன் பிறகு கட்டணம் செலுத்த வேண்டும்", - "puter": "puter.com/dashboard இல் டோக்கனைப் பெறவும் → Auth Token-ஐ நகலெடுக்கவும்", "qiniu": "https://portal.qiniu.com/ai-inference/api-key இல் ஒரு Qiniu AI அனுமான API கீயை உருவாக்கி, பின்னர் அதை இங்கே Bearer டோக்கனாக ஒட்டவும். OpenAI-உடன் இணக்கமான எண்ட்பாயிண்ட் https://api.qnaigc.com/v1 இல் உள்ளது, இது ஒரு கீயின் கீழ் DeepSeek, Claude, Kimi மற்றும் பலவற்றை பிராக்சி செய்கிறது.", "recraft": "Recraft-ஐ ஒரு API கீ மூலம் இணைக்கவும்.", "reka": "Reka Chat ஆனது /v1 இல் OpenAI-உடன் இணக்கமானது. OmniRoute ஆனது /v1/models ஐ ஆய்வு செய்து, அரட்டை டிராஃபிக்கை /v1/chat/completions க்கு வழிப்படுத்துகிறது.", diff --git a/src/i18n/messages/te.json b/src/i18n/messages/te.json index 8c5d306ad92..866d4264a4e 100644 --- a/src/i18n/messages/te.json +++ b/src/i18n/messages/te.json @@ -5949,7 +5949,6 @@ "poe": "Poe అనేది https://api.poe.com/v1 లో OpenAI-అనుకూల చాట్ మరియు రెస్పాన్స్‌లను అందిస్తుంది, /usage/current_balance పై ప్రామాణీకరించబడిన బ్యాలెన్స్ తనిఖీలతో.", "pollinations": "ఉచిత కీ-లేని శ్రేణి: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. ప్రీమియం మోడల్‌లకు (claude, gemini, midijourney) enter.pollinations.ai నుండి Pollinations API కీ అవసరం.", "publicai": "API కీ అవసరం — ఒకసారి సైన్అప్ క్రెడిట్, ఆపై చెల్లింపు", - "puter": "puter.com/dashboard వద్ద టోకెన్ పొందండి → Auth Tokenని కాపీ చేయండి", "qiniu": "https://portal.qiniu.com/ai-inference/api-key వద్ద Qiniu AI ఇన్‌ఫరెన్స్ API కీని సృష్టించండి, ఆపై దానిని ఇక్కడ Bearer టోకెన్‌గా పేస్ట్ చేయండి. https://api.qnaigc.com/v1 వద్ద OpenAI-అనుకూల ఎండ్‌పాయింట్ ఉంది, ఇది ఒకే కీ వెనుక DeepSeek, Claude, Kimi మరియు మరిన్నింటిని ప్రాక్సీ చేస్తుంది.", "recraft": "API కీతో Recraftని కనెక్ట్ చేయండి.", "reka": "Reka Chat అనేది /v1 లో OpenAI-అనుకూలమైనది. OmniRoute అనేది /v1/models ని శోధిస్తుంది మరియు చాట్ ట్రాఫిక్‌ను /v1/chat/completions కి రూట్ చేస్తుంది.", diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json index 12ca99733cb..87f7327e7e7 100644 --- a/src/i18n/messages/th.json +++ b/src/i18n/messages/th.json @@ -5949,7 +5949,6 @@ "poe": "Poe ให้บริการ chat และ responses ที่เข้ากันได้กับ OpenAI บน https://api.poe.com/v1 พร้อมการตรวจสอบยอดคงเหลือที่ผ่านการยืนยันตัวตนบน /usage/current_balance", "pollinations": "ระดับฟรีแบบไม่ต้องใช้คีย์: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning โมเดลพรีเมียม (claude, gemini, midijourney) ต้องใช้คีย์ API ของ Pollinations จาก enter.pollinations.ai", "publicai": "ต้องใช้คีย์ API — เครดิตลงทะเบียนแบบครั้งเดียว จากนั้นเป็นแบบชำระเงิน", - "puter": "รับโทเค็นที่ puter.com/dashboard → Copy Auth Token", "qiniu": "สร้างคีย์ API การอนุมาน Qiniu AI ที่ https://portal.qiniu.com/ai-inference/api-key จากนั้นวางที่นี่เป็นโทเค็น Bearer ปลายทางที่เข้ากันได้กับ OpenAI อยู่ที่ https://api.qnaigc.com/v1 ซึ่งทำหน้าที่เป็นพร็อกซีสำหรับ DeepSeek, Claude, Kimi และอื่นๆ ภายใต้คีย์เดียว", "recraft": "เชื่อมต่อ Recraft ด้วยคีย์ API", "reka": "Reka Chat เข้ากันได้กับ OpenAI บน /v1 โดย OmniRoute จะตรวจสอบ /v1/models และกำหนดเส้นทางการรับส่งข้อมูลแชทไปยัง /v1/chat/completions", diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json index 0d23525daf7..73d2ea2dc27 100644 --- a/src/i18n/messages/tr.json +++ b/src/i18n/messages/tr.json @@ -5949,7 +5949,6 @@ "poe": "Poe, https://api.poe.com/v1 adresinde OpenAI uyumlu sohbet ve yanıtlar sunar; /usage/current_balance üzerinde kimliği doğrulanmış bakiye kontrolleri mevcuttur.", "pollinations": "Ücretsiz anahtarsız katman: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Premium modeller (claude, gemini, midijourney) enter.pollinations.ai adresinden alınacak bir Pollinations API anahtarı gerektirir.", "publicai": "API anahtarı gerektirir — tek seferlik kayıt kredisi, sonrasında ücretli", - "puter": "puter.com/dashboard adresinden belirteç alın → Auth Token'ı Kopyalayın", "qiniu": "https://portal.qiniu.com/ai-inference/api-key adresinde bir Qiniu AI çıkarım API anahtarı oluşturun, ardından buraya Bearer token olarak yapıştırın. OpenAI uyumlu uç nokta https://api.qnaigc.com/v1 adresindedir ve tek bir anahtar arkasında DeepSeek, Claude, Kimi ve daha fazlasını proxy olarak yönlendirir.", "recraft": "Recraft'ı bir API anahtarı ile bağlayın.", "reka": "Reka Chat, /v1 üzerinde OpenAI uyumludur. OmniRoute, /v1/models uç noktasını sorgular ve sohbet trafiğini /v1/chat/completions uç noktasına yönlendirir.", diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json index 592268cdd77..35709fbf08c 100644 --- a/src/i18n/messages/uk-UA.json +++ b/src/i18n/messages/uk-UA.json @@ -5949,7 +5949,6 @@ "poe": "Poe надає OpenAI-сумісний чат та відповіді на https://api.poe.com/v1, з автентифікованою перевіркою балансу на /usage/current_balance.", "pollinations": "Безкоштовний безключовий рівень: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Преміум-моделі (claude, gemini, midijourney) вимагають API-ключ Pollinations з enter.pollinations.ai.", "publicai": "Потрібен API-ключ — одноразовий кредит при реєстрації, далі платно", - "puter": "Отримайте токен на puter.com/dashboard → Скопіюйте Auth Token", "qiniu": "Створіть API-ключ для Qiniu AI інференсу на https://portal.qiniu.com/ai-inference/api-key, а потім вставте його сюди як Bearer-токен. OpenAI-сумісна кінцева точка на https://api.qnaigc.com/v1, що проксіює DeepSeek, Claude, Kimi та інші за одним ключем.", "recraft": "Підключіть Recraft за допомогою API-ключа.", "reka": "Reka Chat є OpenAI-сумісним на /v1. OmniRoute опитує /v1/models та маршрутизує трафік чату на /v1/chat/completions.", diff --git a/src/i18n/messages/ur.json b/src/i18n/messages/ur.json index 563c1b78e75..870efb5e0c6 100644 --- a/src/i18n/messages/ur.json +++ b/src/i18n/messages/ur.json @@ -5949,7 +5949,6 @@ "poe": "Poe، https://api.poe.com/v1 پر OpenAI سے ہم آہنگ چیٹ اور ریسپانسز فراہم کرتا ہے، جس میں /usage/current_balance پر تصدیق شدہ بیلنس چیک شامل ہیں۔", "pollinations": "مفت بغیر کی (keyless) والا ٹیر: openai، openai-fast، openai-large، qwen-coder، mistral، deepseek، grok، gemini-flash-lite-3.1، perplexity-fast، perplexity-reasoning۔ پریمیم ماڈلز (claude، gemini، midijourney) کے لیے enter.pollinations.ai سے ایک Pollinations API key درکار ہے۔", "publicai": "ایک API key درکار ہے — ایک بار سائن اپ کریڈٹ، پھر بامعاوضہ", - "puter": "puter.com/dashboard پر ٹوکن حاصل کریں → Auth Token کاپی کریں", "qiniu": "https://portal.qiniu.com/ai-inference/api-key پر ایک Qiniu AI انفرنس API key بنائیں، پھر اسے یہاں Bearer ٹوکن کے طور پر پیسٹ کریں۔ OpenAI سے ہم آہنگ اینڈ پوائنٹ https://api.qnaigc.com/v1 پر ہے، جو ایک ہی کی (key) کے پیچھے DeepSeek، Claude، Kimi اور دیگر کو پراکسی کرتا ہے۔", "recraft": "Recraft کو ایک API key کے ساتھ منسلک کریں۔", "reka": "Reka Chat، /v1 پر OpenAI سے ہم آہنگ ہے۔ OmniRoute، /v1/models کی جانچ کرتا ہے اور چیٹ ٹریفک کو /v1/chat/completions پر بھیجتا ہے۔", diff --git a/src/i18n/messages/vi.json b/src/i18n/messages/vi.json index be4aa3a744e..f20be6be4d6 100644 --- a/src/i18n/messages/vi.json +++ b/src/i18n/messages/vi.json @@ -6114,7 +6114,6 @@ "poe": "Poe cung cấp trò chuyện và Responses tương thích OpenAI tại https://api.poe.com/v1, kèm kiểm tra số dư có xác thực tại /usage/current_balance.", "pollinations": "Gói miễn phí không cần khóa: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Mô hình cao cấp (claude, gemini, midijourney) yêu cầu khóa API Pollinations từ enter.pollinations.ai.", "publicai": "Yêu cầu khóa API — nhận tín dụng một lần khi đăng ký, sau đó trả phí", - "puter": "Lấy token tại puter.com/dashboard → Copy Auth Token", "qiniu": "Tạo khóa API suy luận Qiniu AI tại https://portal.qiniu.com/ai-inference/api-key, rồi dán dưới dạng token Bearer. Endpoint tương thích OpenAI tại https://api.qnaigc.com/v1, làm proxy cho DeepSeek, Claude, Kimi và nhiều mô hình khác sau một khóa.", "recraft": "Kết nối Recraft bằng khóa API.", "reka": "Reka Chat tương thích OpenAI trên /v1. OmniRoute thăm dò /v1/models và định tuyến trò chuyện tới /v1/chat/completions.", diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index 642d017a594..996acaa7511 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -5991,7 +5991,6 @@ "poe": "Poe 在 https://api.poe.com/v1 上公开了兼容 OpenAI 的 chat 和 responses,并在 /usage/current_balance 上提供经过身份验证的余额查询。", "pollinations": "免密钥免费层级:openai、openai-fast、openai-large、qwen-coder、mistral、deepseek、grok、gemini-flash-lite-3.1、perplexity-fast、perplexity-reasoning。高级模型(claude、gemini、midijourney)需要来自 enter.pollinations.ai 的 Pollinations API 密钥。", "publicai": "需要 API 密钥 — 一次性注册额度,之后付费", - "puter": "在 puter.com/dashboard 获取令牌 → 复制 Auth Token", "qiniu": "在 https://portal.qiniu.com/ai-inference/api-key 创建 Qiniu AI 推理 API 密钥,然后将其作为 Bearer 令牌粘贴在此处。兼容 OpenAI 的端点位于 https://api.qnaigc.com/v1,通过一个密钥代理 DeepSeek、Claude、Kimi 等多种模型。", "recraft": "使用 API 密钥连接 Recraft。", "reka": "Reka Chat 在 /v1 上兼容 OpenAI。OmniRoute 探测 /v1/models 并将聊天流量路由到 /v1/chat/completions。", diff --git a/src/i18n/messages/zh-TW.json b/src/i18n/messages/zh-TW.json index 7ee0dbd459d..2851351af00 100644 --- a/src/i18n/messages/zh-TW.json +++ b/src/i18n/messages/zh-TW.json @@ -5950,7 +5950,6 @@ "poe": "Poe 在 https://api.poe.com/v1 提供 OpenAI 相容的聊天和回應功能,並在 /usage/current_balance 進行認證餘額檢查。", "pollinations": "免費無需金鑰方案:openai、openai-fast、openai-large、qwen-coder、mistral、deepseek、grok、gemini-flash-lite-3.1、perplexity-fast、perplexity-reasoning。進階模型(claude、gemini、midijourney)需要從 enter.pollinations.ai 取得 Pollinations API 金鑰。", "publicai": "需要 API 金鑰 — 一次性註冊額度,之後付費", - "puter": "在 puter.com/dashboard 取得 token → 複製 Auth Token", "qiniu": "在 https://portal.qiniu.com/ai-inference/api-key 建立七牛 AI 推論 API 金鑰,然後以 Bearer token 形式貼上。OpenAI 相容端點為 https://api.qnaigc.com/v1,使用單一金鑰代理 DeepSeek、Claude、Kimi 等模型。", "recraft": "使用 API 金鑰連線 Recraft。", "reka": "Reka Chat 在 /v1 提供 OpenAI 相容介面。OmniRoute 探測 /v1/models 並將聊天流量路由至 /v1/chat/completions。", diff --git a/src/lib/db/migrations/152_remove_puter_provider.sql b/src/lib/db/migrations/152_remove_puter_provider.sql new file mode 100644 index 00000000000..9319a2f9614 --- /dev/null +++ b/src/lib/db/migrations/152_remove_puter_provider.sql @@ -0,0 +1,22 @@ +-- 152_remove_puter_provider.sql +-- The Puter provider was removed from OmniRoute at the request of Puter's +-- owner (Nariman Jelveh). Clean up any locally stored configuration for it. +-- Historical request and usage records are intentionally preserved under the +-- provider identity that existed when they were written (same principle as +-- 151_windsurf_to_devin_desktop.sql). + +DELETE FROM provider_connections +WHERE provider = 'puter'; + +DELETE FROM registered_keys +WHERE provider = 'puter'; + +DELETE FROM provider_key_limits +WHERE provider = 'puter'; + +DELETE FROM discovery_results +WHERE provider_id = 'puter'; + +DELETE FROM key_value +WHERE namespace = 'customModels' + AND key = 'puter'; diff --git a/src/lib/modelsDevSync/transform.ts b/src/lib/modelsDevSync/transform.ts index a736ed0032d..de12c6fe635 100644 --- a/src/lib/modelsDevSync/transform.ts +++ b/src/lib/modelsDevSync/transform.ts @@ -165,7 +165,6 @@ export const MODELS_DEV_PROVIDER_MAP: Record = { "minimax-cn": ["minimax-cn"], longcat: ["lc", "longcat"], pollinations: ["pol", "pollinations"], - puter: ["pu", "puter"], cloudflare: ["cf"], scaleway: ["scw"], ollama: ["ollamacloud", "ollama-cloud"], diff --git a/src/shared/components/ProviderIcon.tsx b/src/shared/components/ProviderIcon.tsx index 50a1351a38b..bdd50292a14 100644 --- a/src/shared/components/ProviderIcon.tsx +++ b/src/shared/components/ProviderIcon.tsx @@ -185,7 +185,6 @@ const KNOWN_SVGS = new Set([ "pollinations", "poolside", "publicai", - "puter", "qianfan", "qiniu", "qwen", diff --git a/src/shared/constants/providers/apikey/gateways.ts b/src/shared/constants/providers/apikey/gateways.ts index 3a88b74d9e2..81b1cfb0871 100644 --- a/src/shared/constants/providers/apikey/gateways.ts +++ b/src/shared/constants/providers/apikey/gateways.ts @@ -597,7 +597,8 @@ export const APIKEY_PROVIDERS_GATEWAYS = { textIcon: "DA", website: "https://inference.dahl.global", hasFree: true, - freeNote: "Free — MiniMax M2.7, Kimi K2.6. Click 'Add Account' to auto-generate a token, or add your own API key.", + freeNote: + "Free — MiniMax M2.7, Kimi K2.6. Click 'Add Account' to auto-generate a token, or add your own API key.", authHint: "Click 'Add Account' to auto-generate a token, or add a manual API key.", apiHint: "Auto-generate a token or paste your own API key.", apiKeyUrl: "https://inference.dahl.global/tokens", @@ -607,20 +608,6 @@ export const APIKEY_PROVIDERS_GATEWAYS = { text: "Dahl auto-generates tokens via https://inference.dahl.global/tokens. No signup needed. Rate limits apply. You can also add your own API key.", }, }, - puter: { - id: "puter", - alias: "pu", - name: "Puter AI", - icon: "cloud_circle", - color: "#6366F1", - textIcon: "PU", - website: "https://puter.com", - hasFree: true, - freeNote: - "500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account", - passthroughModels: true, - authHint: "Get token at puter.com/dashboard → Copy Auth Token", - }, uncloseai: { id: "uncloseai", alias: "unc", @@ -1212,8 +1199,7 @@ export const APIKEY_PROVIDERS_GATEWAYS = { freeNote: "Free models include Nemotron 3 Ultra (free) and Llama 3.3 70B Instruct (Free). Paid models require credits. Google/GitHub/Discord signup.", passthroughModels: true, - authHint: - "Get API key at naga.ac — Google/GitHub/Discord signup available.", + authHint: "Get API key at naga.ac — Google/GitHub/Discord signup available.", }, "void-ai": { id: "void-ai", diff --git a/src/shared/utils/providerCredentialRequirement.ts b/src/shared/utils/providerCredentialRequirement.ts index e35fb2c3455..2160b5c4dd5 100644 --- a/src/shared/utils/providerCredentialRequirement.ts +++ b/src/shared/utils/providerCredentialRequirement.ts @@ -10,7 +10,7 @@ * 2. **Can the user call it with nothing configured?** That is this module. * * Reading (1) as (2) is not academic: probing the endpoints on 2026-07-20 showed - * blackbox, friendliai, iflytek, sparkdesk and puter answering 401, and + * blackbox, friendliai, iflytek and sparkdesk answering 401, and * muse-spark-web 403, with no credential — yet all are `freeType: "keyless"`. * A UI section built on (1) would invite users to call providers that reject * them. So anything user-facing about API keys must come from here. @@ -85,7 +85,6 @@ export const NOT_TOKEN_QUANTIFIABLE_BUT_CREDENTIALED: readonly string[] = [ "iflytek", // probed -> 401 Unauthorized "liquid", // probed -> 404: endpoint moved; config needs a separate audit "muse-spark-web", // probed -> 403; authHeader is a session cookie, not a key - "puter", // probed -> 401 "Missing authentication token" "qwen-web", // probed -> 200 but serves the WAF HTML page, not the API "sparkdesk", // probed -> 401 Unauthorized ]; diff --git a/tests/snapshots/provider/translate-path.json b/tests/snapshots/provider/translate-path.json index d1920fcce94..7acc218d393 100644 --- a/tests/snapshots/provider/translate-path.json +++ b/tests/snapshots/provider/translate-path.json @@ -376,6 +376,29 @@ "stream": "https://daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent?alt=sse" } }, + "anyapi": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.anyapi.ai/v1/chat/completions", + "stream": "https://api.anyapi.ai/v1/chat/completions" + } + }, "api-airforce": { "format": "openai", "headers": { @@ -428,6 +451,29 @@ "stream": "auggie://cli/stdio" } }, + "auriko": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.auriko.ai/v1/chat/completions", + "stream": "https://api.auriko.ai/v1/chat/completions" + } + }, "bai": { "format": "openai", "headers": { @@ -750,6 +796,52 @@ "stream": "https://hyper.charm.land/v1/chat/completions" } }, + "chat-oripe": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.oriper.com/v1/chat/completions", + "stream": "https://api.oriper.com/v1/chat/completions" + } + }, + "chatanywhere": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.chatanywhere.org/v1/chat/completions", + "stream": "https://api.chatanywhere.org/v1/chat/completions" + } + }, "chatgpt-web": { "format": "openai", "headers": { @@ -773,8 +865,6 @@ "stream": "https://chatgpt.com/backend-api/conversation" } }, - "cheaperinference": { - "format": "openai", "chatgpt-web-codex": { "format": "openai-responses", "headers": { @@ -794,12 +884,33 @@ } }, "url": { - "nonStream": "https://api.cheaperinference.com/v1/chat/completions", - "stream": "https://api.cheaperinference.com/v1/chat/completions" "nonStream": "https://chatgpt.com", "stream": "https://chatgpt.com" } }, + "cheaperinference": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.cheaperinference.com/v1/chat/completions", + "stream": "https://api.cheaperinference.com/v1/chat/completions" + } + }, "chenzk": { "format": "openai", "headers": { @@ -1039,6 +1150,29 @@ "stream": "https://api.cline.bot/api/v1/chat/completions" } }, + "cloudcode-one": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.cloudcode.one/v1/chat/completions", + "stream": "https://api.cloudcode.one/v1/chat/completions" + } + }, "cloudflare-ai": { "format": "openai", "headers": { @@ -1230,6 +1364,29 @@ "stream": "https://api.commandcode.ai" } }, + "conol-web": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://conol.ai/api/sessions", + "stream": "https://conol.ai/api/sessions" + } + }, "copilot-m365-web": { "format": "openai", "headers": { @@ -1400,6 +1557,29 @@ "stream": "https://adb-0000000000000000.0.azuredatabricks.net/serving-endpoints" } }, + "deepai": { + "format": "custom", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.deepai.org", + "stream": "https://api.deepai.org" + } + }, "deepinfra": { "format": "openai", "headers": { @@ -1699,6 +1879,52 @@ "stream": "https://duckduckgo.com/duckchat/v1/chat" } }, + "dxnt": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://www.dxnt.com/v1/chat/completions", + "stream": "https://www.dxnt.com/v1/chat/completions" + } + }, + "electronhub": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.electronhub.ai/v1/chat/completions", + "stream": "https://api.electronhub.ai/v1/chat/completions" + } + }, "factory": { "format": "openai", "headers": { @@ -1722,6 +1948,29 @@ "stream": "https://api.factory.ai/v1/chat/completions" } }, + "fastrouter": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.fastrouter.ai/api/v1/chat/completions", + "stream": "https://api.fastrouter.ai/api/v1/chat/completions" + } + }, "featherless-ai": { "format": "openai", "headers": { @@ -1791,6 +2040,29 @@ "stream": "https://api.fireworks.ai/inference/v1/chat/completions" } }, + "free-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.free.ai/v1/chat/", + "stream": "https://api.free.ai/v1/chat/" + } + }, "freeaiapikey": { "format": "openai", "headers": { @@ -1814,6 +2086,29 @@ "stream": "https://freeaiapikey.com/v1/chat/completions" } }, + "freeinference": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://freeinference.org/v1/chat/completions", + "stream": "https://freeinference.org/v1/chat/completions" + } + }, "freemodel-dev": { "format": "openai", "headers": { @@ -2506,6 +2801,52 @@ "stream": "https://api.hcnsec.cn/v1/chat/completions" } }, + "helixmind": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://helixmind.online/v1/chat/completions", + "stream": "https://helixmind.online/v1/chat/completions" + } + }, + "helyxai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://helyxai.space/v1/chat/completions", + "stream": "https://helyxai.space/v1/chat/completions" + } + }, "heroku": { "format": "openai", "headers": { @@ -3054,6 +3395,29 @@ "stream": "https://inference.liquid.ai/v1/chat/completions" } }, + "literouter": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.literouter.com/v1/chat/completions", + "stream": "https://api.literouter.com/v1/chat/completions" + } + }, "llamagate": { "format": "openai", "headers": { @@ -3077,6 +3441,29 @@ "stream": "https://llamagate.ai/v1/chat/completions" } }, + "llm-kiwi": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.llm.kiwi/v1/chat/completions", + "stream": "https://api.llm.kiwi/v1/chat/completions" + } + }, "llm7": { "format": "openai", "headers": { @@ -3100,6 +3487,29 @@ "stream": "https://api.llm7.io/v1/chat/completions" } }, + "llmgateway": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.llmgateway.io/v1/chat/completions", + "stream": "https://api.llmgateway.io/v1/chat/completions" + } + }, "lmarena": { "format": "openai", "headers": { @@ -3169,6 +3579,29 @@ "stream": "https://chat.maritaca.ai/api" } }, + "meganova-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.meganova.ai/v1/chat/completions", + "stream": "https://api.meganova.ai/v1/chat/completions" + } + }, "meta-llama": { "format": "openai", "headers": { @@ -3215,59 +3648,99 @@ "stream": "https://api.xiaomimimo.com" } }, - "minimax": { - "format": "claude", + "minimax": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.minimax.io/v1/chat/completions", + "stream": "https://api.minimax.io/v1/chat/completions" + } + }, + "minimax-cn": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.minimaxi.com/v1/chat/completions", + "stream": "https://api.minimaxi.com/v1/chat/completions" + } + }, + "mistral": { + "format": "openai", "headers": { "apiKey": { "Accept": "text/event-stream", - "Anthropic-Version": "2023-06-01", "Authorization": "Bearer ", "Content-Type": "application/json" }, "nonStream": { - "Anthropic-Version": "2023-06-01", "Authorization": "Bearer ", "Content-Type": "application/json" }, "oauth": { "Accept": "text/event-stream", - "Anthropic-Version": "2023-06-01", "Authorization": "Bearer ", "Content-Type": "application/json" } }, "url": { - "nonStream": "https://api.minimax.io/anthropic/v1/messages?beta=true", - "stream": "https://api.minimax.io/anthropic/v1/messages?beta=true" + "nonStream": "https://api.mistral.ai/v1/chat/completions", + "stream": "https://api.mistral.ai/v1/chat/completions" } }, - "minimax-cn": { - "format": "claude", + "mixlayer": { + "format": "openai", "headers": { "apiKey": { "Accept": "text/event-stream", - "Anthropic-Version": "2023-06-01", "Authorization": "Bearer ", "Content-Type": "application/json" }, "nonStream": { - "Anthropic-Version": "2023-06-01", "Authorization": "Bearer ", "Content-Type": "application/json" }, "oauth": { "Accept": "text/event-stream", - "Anthropic-Version": "2023-06-01", "Authorization": "Bearer ", "Content-Type": "application/json" } }, "url": { - "nonStream": "https://api.minimaxi.com/anthropic/v1/messages?beta=true", - "stream": "https://api.minimaxi.com/anthropic/v1/messages?beta=true" + "nonStream": "https://models.mixlayer.ai/v1/chat/completions", + "stream": "https://models.mixlayer.ai/v1/chat/completions" } }, - "mistral": { + "mnn-ai": { "format": "openai", "headers": { "apiKey": { @@ -3286,8 +3759,8 @@ } }, "url": { - "nonStream": "https://api.mistral.ai/v1/chat/completions", - "stream": "https://api.mistral.ai/v1/chat/completions" + "nonStream": "https://api.mnnai.ru/v1/chat/completions", + "stream": "https://api.mnnai.ru/v1/chat/completions" } }, "modal": { @@ -3448,6 +3921,52 @@ "stream": "https://www.meta.ai/api/graphql" } }, + "naga-ac": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.naga.ac/v1/chat/completions", + "stream": "https://api.naga.ac/v1/chat/completions" + } + }, + "naga-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.naga.ac/v1/chat/completions", + "stream": "https://api.naga.ac/v1/chat/completions" + } + }, "nanogpt": { "format": "openai", "headers": { @@ -3704,6 +4223,29 @@ "stream": "https://integrate.api.nvidia.com/v1/chat/completions" } }, + "ofoxai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.ofox.ai/v1/chat/completions", + "stream": "https://api.ofox.ai/v1/chat/completions" + } + }, "ollama-cloud": { "format": "openai", "headers": { @@ -4107,6 +4649,29 @@ "stream": "https://api.poe.com/v1/chat/completions" } }, + "poixe-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.poixe.com/v1/chat/completions", + "stream": "https://api.poixe.com/v1/chat/completions" + } + }, "pollinations": { "format": "openai", "headers": { @@ -4130,7 +4695,7 @@ "stream": "https://gen.pollinations.ai/v1/chat/completions" } }, - "predibase": { + "poolside": { "format": "openai", "headers": { "apiKey": { @@ -4149,11 +4714,11 @@ } }, "url": { - "nonStream": "https://serving.app.predibase.com/v1/chat/completions", - "stream": "https://serving.app.predibase.com/v1/chat/completions" + "nonStream": "https://inference.poolside.ai/v1/chat/completions", + "stream": "https://inference.poolside.ai/v1/chat/completions" } }, - "promptql": { + "predibase": { "format": "openai", "headers": { "apiKey": { @@ -4172,11 +4737,11 @@ } }, "url": { - "nonStream": "https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql", - "stream": "https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql" + "nonStream": "https://serving.app.predibase.com/v1/chat/completions", + "stream": "https://serving.app.predibase.com/v1/chat/completions" } }, - "publicai": { + "promptql": { "format": "openai", "headers": { "apiKey": { @@ -4195,11 +4760,11 @@ } }, "url": { - "nonStream": "https://api.publicai.co/v1/chat/completions", - "stream": "https://api.publicai.co/v1/chat/completions" + "nonStream": "https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql", + "stream": "https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql" } }, - "puter": { + "publicai": { "format": "openai", "headers": { "apiKey": { @@ -4218,8 +4783,8 @@ } }, "url": { - "nonStream": "https://api.puter.com/puterai/openai/v1/chat/completions", - "stream": "https://api.puter.com/puterai/openai/v1/chat/completions" + "nonStream": "https://api.publicai.co/v1/chat/completions", + "stream": "https://api.publicai.co/v1/chat/completions" } }, "qianfan": { @@ -4665,6 +5230,29 @@ "stream": "https://spark-api-open.xf-yun.com/v1/chat/completions" } }, + "speka": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://speka.me/v1/chat/completions", + "stream": "https://speka.me/v1/chat/completions" + } + }, "stepfun": { "format": "openai", "headers": { @@ -4826,6 +5414,29 @@ "stream": "https://theoldllm.vercel.app/api/chatgpt" } }, + "tinycms-web": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://gov.freegpt.win/api/openai/oneapi/v1/chat/completions", + "stream": "https://gov.freegpt.win/api/openai/oneapi/v1/chat/completions" + } + }, "together": { "format": "openai", "headers": { @@ -4849,6 +5460,29 @@ "stream": "https://api.together.xyz/v1/chat/completions" } }, + "tokenreply": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.tokenreply.com/v1/chat/completions", + "stream": "https://api.tokenreply.com/v1/chat/completions" + } + }, "tokenrouter": { "format": "openai", "headers": { @@ -4983,8 +5617,8 @@ } }, "url": { - "nonStream": "https://api.unorouter.ai/v1/chat/completions", - "stream": "https://api.unorouter.ai/v1/chat/completions" + "nonStream": "https://api.unorouter.com/v1/chat/completions", + "stream": "https://api.unorouter.com/v1/chat/completions" } }, "upstage": { @@ -5148,6 +5782,29 @@ "stream": "https://us-central1-aiplatform.googleapis.com/v1/projects" } }, + "void-ai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.voidai.app/v1/chat/completions", + "stream": "https://api.voidai.app/v1/chat/completions" + } + }, "volcengine": { "format": "openai", "headers": { @@ -5381,6 +6038,29 @@ "stream": "https://api.lingyiwanwu.com/v1/chat/completions" } }, + "yolo-auto": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://yolo-auto.com/v1/chat/completions", + "stream": "https://yolo-auto.com/v1/chat/completions" + } + }, "yuanbao-web": { "format": "openai", "headers": { @@ -5521,5 +6201,51 @@ "nonStream": "https://zenmux.ai/api/anthropic/v1/messages", "stream": "https://zenmux.ai/api/anthropic/v1/messages" } + }, + "zerolimitai": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://www.zerolimitai.com/api/v1/chat/completions", + "stream": "https://www.zerolimitai.com/api/v1/chat/completions" + } + }, + "zylo-api": { + "format": "openai", + "headers": { + "apiKey": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "nonStream": { + "Authorization": "Bearer ", + "Content-Type": "application/json" + }, + "oauth": { + "Accept": "text/event-stream", + "Authorization": "Bearer ", + "Content-Type": "application/json" + } + }, + "url": { + "nonStream": "https://api.zyloai.net/v1/chat/completions", + "stream": "https://api.zyloai.net/v1/chat/completions" + } } } diff --git a/tests/unit/catalog-updates-v3x.test.ts b/tests/unit/catalog-updates-v3x.test.ts index c95581b569c..e95132bec67 100644 --- a/tests/unit/catalog-updates-v3x.test.ts +++ b/tests/unit/catalog-updates-v3x.test.ts @@ -23,16 +23,6 @@ test("Pollinations catalog mirrors the current public text model lineup", () => ); }); -test("Puter catalog exposes the currently documented Sonar models", () => { - const ids = new Set(getModelsByProviderId("puter").map((model) => model.id)); - - assert.ok(ids.has("perplexity/sonar")); - assert.ok(ids.has("perplexity/sonar-pro")); - assert.ok(ids.has("perplexity/sonar-pro-search")); - assert.ok(ids.has("perplexity/sonar-reasoning-pro")); - assert.ok(ids.has("perplexity/sonar-deep-research")); -}); - test("NVIDIA catalog includes the verified 2026 additions and GPT OSS 20B alias resolution", () => { const ids = new Set(getModelsByProviderId("nvidia").map((model) => model.id)); diff --git a/tests/unit/combo/auto-quota-cutoff.test.ts b/tests/unit/combo/auto-quota-cutoff.test.ts index 2b73e0f1c87..2459eeef399 100644 --- a/tests/unit/combo/auto-quota-cutoff.test.ts +++ b/tests/unit/combo/auto-quota-cutoff.test.ts @@ -151,13 +151,13 @@ test("future unavailable connection maps to rate_limited quota cutoff reason", ( test("status-blocked candidates are removed before auto scoring", () => { const targets = [ - target("puter", "fast-free", "puter-empty"), + target("pollinations", "fast-free", "pollinations-empty"), target("cerebras", "healthy", "cerebras-ok"), ]; const ranked = scoreAutoTargets( targets, [ - candidate("puter", "fast-free", "puter-empty", { + candidate("pollinations", "fast-free", "pollinations-empty", { quotaRemaining: 0, p95LatencyMs: 5, quotaCutoffBlocked: true, diff --git a/tests/unit/executor-puter.test.ts b/tests/unit/executor-puter.test.ts deleted file mode 100644 index 7295750a596..00000000000 --- a/tests/unit/executor-puter.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import test from "node:test"; -import assert from "node:assert/strict"; - -import { PuterExecutor } from "../../open-sse/executors/puter.ts"; - -test("PuterExecutor.buildUrl always uses Puter OpenAI endpoint", () => { - const executor = new PuterExecutor(); - assert.equal( - executor.buildUrl("gpt-4.1", true), - "https://api.puter.com/puterai/openai/v1/chat/completions" - ); -}); - -test("PuterExecutor.buildHeaders supports API key, access token and optional SSE accept", () => { - const executor = new PuterExecutor(); - const apiKeyHeaders = executor.buildHeaders({ apiKey: "puter-key" }, true); - const accessTokenHeaders = executor.buildHeaders({ accessToken: "puter-token" }, false); - - assert.deepEqual(apiKeyHeaders, { - "Content-Type": "application/json", - Authorization: "Bearer puter-key", - Accept: "text/event-stream", - }); - assert.deepEqual(accessTokenHeaders, { - "Content-Type": "application/json", - Authorization: "Bearer puter-token", - }); -}); - -test("PuterExecutor.transformRequest is a passthrough", () => { - const executor = new PuterExecutor(); - const body = { - model: "google/gemini-2.5-pro", - messages: [{ role: "user", content: "hello" }], - }; - assert.equal(executor.transformRequest(body.model, body, true, {}), body); -}); - -test("PuterExecutor.execute uses inherited BaseExecutor flow", async () => { - const executor = new PuterExecutor(); - const originalFetch = globalThis.fetch; - let captured; - globalThis.fetch = async (url, options) => { - captured = { url: String(url), options }; - return new Response(JSON.stringify({ ok: true }), { - status: 200, - headers: { "Content-Type": "application/json" }, - }); - }; - - try { - const body = { - model: "google/gemini-2.5-pro", - messages: [{ role: "user", content: "hello" }], - }; - const result = await executor.execute({ - model: body.model, - body, - stream: false, - credentials: { apiKey: "puter-key" }, - }); - - assert.equal(result.response.status, 200); - // #3941 ("Capture actual upstream provider requests") makes BaseExecutor return - // transformedBody as the JSON-round-tripped serialized body (the real on-the-wire - // payload, post fingerprint/sign), so it is a structurally-equal new object rather - // than the same reference. Puter's transformRequest is still a passthrough, so the - // body must match structurally. - assert.deepEqual(result.transformedBody, body); - assert.equal(result.url, "https://api.puter.com/puterai/openai/v1/chat/completions"); - assert.equal(captured.options.headers.Authorization, "Bearer puter-key"); - assert.equal(captured.options.body, JSON.stringify(body)); - } finally { - globalThis.fetch = originalFetch; - } -}); diff --git a/tests/unit/free-provider-rankings-custom-models-6368.test.ts b/tests/unit/free-provider-rankings-custom-models-6368.test.ts index 95b53064cbf..98880f654a5 100644 --- a/tests/unit/free-provider-rankings-custom-models-6368.test.ts +++ b/tests/unit/free-provider-rankings-custom-models-6368.test.ts @@ -2,7 +2,7 @@ * Regression test for #6368 (follow-up to #6150). * * Custom models a user adds to a provider (e.g. "Claude Fable 5" added on - * top of the Puter provider) were invisible in the Free Provider Rankings + * top of the OpenRouter provider) were invisible in the Free Provider Rankings * once the "Configured only" / "Available only" filters were applied, * because `getProviderModels()` only ever walked the static * `open-sse/config/providerRegistry.ts` catalog — a provider's user-added @@ -49,10 +49,7 @@ test("mergeProviderModels: additively includes custom models, de-duping by id", { id: "claude-fable-5-6368", name: "Claude Fable 5" }, ]; const merged = rankings.mergeProviderModels(registryModels, customModels); - assert.deepEqual( - merged.map((m) => m.id).sort(), - ["claude-fable-5-6368", "known-model"] - ); + assert.deepEqual(merged.map((m) => m.id).sort(), ["claude-fable-5-6368", "known-model"]); }); test("mergeProviderModels: no custom models returns the registry list unchanged", () => { @@ -73,33 +70,33 @@ test("#6368: a provider whose only scored model is a user-added custom model app expiresAt: null, }); - await modelsDb.addCustomModel("puter", CUSTOM_MODEL_ID, "Claude Fable 5"); + await modelsDb.addCustomModel("openrouter", CUSTOM_MODEL_ID, "Claude Fable 5"); await providersDb.createProviderConnection({ - provider: "puter", + provider: "openrouter", authType: "apikey", - name: "puter-main-6368", + name: "openrouter-main-6368", apiKey: "test-token", isActive: true, }); const unfiltered = await rankings.computeFreeProviderRankings(undefined, 100, {}); - const puterUnfiltered = unfiltered.find((r) => r.id === "puter"); - assert.ok(puterUnfiltered, "puter must appear in the unfiltered ranking"); + const orUnfiltered = unfiltered.find((r) => r.id === "openrouter"); + assert.ok(orUnfiltered, "openrouter must appear in the unfiltered ranking"); assert.ok( - puterUnfiltered!.topModel?.modelId === CUSTOM_MODEL_ID || - unfiltered.some((r) => r.id === "puter" && r.modelCount >= 1), - "puter ranking must reflect the custom model score" + orUnfiltered!.topModel?.modelId === CUSTOM_MODEL_ID || + unfiltered.some((r) => r.id === "openrouter" && r.modelCount >= 1), + "openrouter ranking must reflect the custom model score" ); const filtered = await rankings.computeFreeProviderRankings(undefined, 100, { configuredOnly: true, availableOnly: true, }); - const puterFiltered = filtered.find((r) => r.id === "puter"); + const orFiltered = filtered.find((r) => r.id === "openrouter"); assert.ok( - puterFiltered, - "puter (configured + available, ranked only via its custom model) must survive configuredOnly+availableOnly filters" + orFiltered, + "openrouter (configured + available, ranked only via its custom model) must survive configuredOnly+availableOnly filters" ); }); diff --git a/tests/unit/provider-credential-requirement.test.ts b/tests/unit/provider-credential-requirement.test.ts index 27e957c2201..59318427323 100644 --- a/tests/unit/provider-credential-requirement.test.ts +++ b/tests/unit/provider-credential-requirement.test.ts @@ -67,7 +67,7 @@ test("providers that reject anonymous calls are never advertised as key-free", ( // freeType: "keyless" in the catalog (meaning "not token-quantifiable"), so a // UI section built on that field would invite users to call providers that // reject them. This is the regression guard for that bug. - for (const id of ["blackbox", "friendliai", "iflytek", "sparkdesk", "puter", "muse-spark-web"]) { + for (const id of ["blackbox", "friendliai", "iflytek", "sparkdesk", "muse-spark-web"]) { assert.equal( worksWithoutCredential(getCredentialRequirement(id)), false, diff --git a/tests/unit/puter-provider-removed.test.ts b/tests/unit/puter-provider-removed.test.ts new file mode 100644 index 00000000000..86dd593c92c --- /dev/null +++ b/tests/unit/puter-provider-removed.test.ts @@ -0,0 +1,77 @@ +import { test } from "node:test"; +import assert from "node:assert/strict"; +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; + +const TEST_DATA_DIR = fs.mkdtempSync(path.join(os.tmpdir(), "omniroute-puter-removed-")); +process.env.DATA_DIR = TEST_DATA_DIR; + +const { REGISTRY } = await import("../../open-sse/config/providerRegistry.ts"); +const { APIKEY_PROVIDERS } = await import("../../src/shared/constants/providers.ts"); +const { FREE_MODEL_BUDGETS } = await import("../../open-sse/config/freeModelCatalog.data.ts"); +const { hasSpecializedExecutor } = await import("../../open-sse/executors/index.ts"); +const core = await import("../../src/lib/db/core.ts"); + +// Regression guard: the Puter provider (id `puter`, alias `pu`, +// https://puter.com) was removed at the request of Puter's owner +// (Nariman Jelveh). It must stay out of every provider catalog, the +// executor map, and the free model catalog, and migration 152 must clean +// up any locally stored Puter configuration. + +test.after(() => { + core.resetDbInstance(); + fs.rmSync(TEST_DATA_DIR, { recursive: true, force: true }); +}); + +test("puter provider is removed from the chat registry (id and alias)", () => { + assert.equal(REGISTRY["puter"], undefined); + assert.equal(REGISTRY["pu"], undefined); +}); + +test("puter provider is removed from the API-key provider presets", () => { + assert.equal((APIKEY_PROVIDERS as Record)["puter"], undefined); +}); + +test("puter has no entries in the free model catalog", () => { + const offenders = FREE_MODEL_BUDGETS.filter((b) => b.provider === "puter"); + assert.deepEqual(offenders, []); +}); + +test("puter executor is removed from the executor map (id and alias)", () => { + assert.equal(hasSpecializedExecutor("puter"), false); + assert.equal(hasSpecializedExecutor("pu"), false); +}); + +test("migration 152 deletes stored puter configuration and is idempotent", () => { + const db = core.getDbInstance(); + + const applied = db + .prepare("SELECT version FROM _omniroute_migrations WHERE version = 152") + .get() as { version: number } | undefined; + assert.ok(applied, "migration 152 must be recorded as applied"); + + // Simulate a pre-removal install that still has Puter configuration, then + // re-apply the migration SQL and assert every row is cleaned up. + db.prepare( + "INSERT INTO provider_connections (id, provider, auth_type, name, is_active, created_at, updated_at) VALUES (?, ?, ?, ?, 1, datetime('now'), datetime('now'))" + ).run("puter-conn-test", "puter", "apikey", "puter-main"); + db.prepare( + "INSERT INTO key_value (namespace, key, value) VALUES ('customModels', 'puter', '[]')" + ).run(); + + const sql = fs.readFileSync( + path.join(process.cwd(), "src/lib/db/migrations/152_remove_puter_provider.sql"), + "utf8" + ); + db.exec(sql); + db.exec(sql); // idempotent — a second run must not throw + + const conn = db.prepare("SELECT id FROM provider_connections WHERE provider = 'puter'").get(); + assert.equal(conn, undefined, "puter provider_connections rows must be deleted"); + + const custom = db + .prepare("SELECT key FROM key_value WHERE namespace = 'customModels' AND key = 'puter'") + .get(); + assert.equal(custom, undefined, "puter custom models must be deleted"); +});