mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
1455 lines
52 KiB
TypeScript
1455 lines
52 KiB
TypeScript
// AUTO-GENERATED by scripts/docs/generate-docs-index.mjs — DO NOT EDIT MANUALLY
|
||
// Regenerate with: node scripts/docs/generate-docs-index.mjs
|
||
|
||
export interface AutoGenDocItem {
|
||
slug: string;
|
||
title: string;
|
||
fileName: string;
|
||
}
|
||
|
||
export interface AutoGenNavSection {
|
||
title: string;
|
||
items: AutoGenDocItem[];
|
||
}
|
||
|
||
export interface AutoGenSearchItem {
|
||
slug: string;
|
||
title: string;
|
||
fileName: string;
|
||
section: string;
|
||
content: string;
|
||
headings: string[];
|
||
}
|
||
|
||
export const autoNavSections: AutoGenNavSection[] = [
|
||
{
|
||
title: "Architecture",
|
||
items: [
|
||
{
|
||
slug: "architecture",
|
||
title: "OmniRoute Architecture",
|
||
fileName: "architecture/ARCHITECTURE.md",
|
||
},
|
||
{
|
||
slug: "authz-guide",
|
||
title: "Authorization Guide",
|
||
fileName: "architecture/AUTHZ_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "codebase-documentation",
|
||
title: "OmniRoute Codebase Documentation",
|
||
fileName: "architecture/CODEBASE_DOCUMENTATION.md",
|
||
},
|
||
{
|
||
slug: "repository-map",
|
||
title: "Repository Map",
|
||
fileName: "architecture/REPOSITORY_MAP.md",
|
||
},
|
||
{
|
||
slug: "resilience-guide",
|
||
title: "Resilience Guide",
|
||
fileName: "architecture/RESILIENCE_GUIDE.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Guides",
|
||
items: [
|
||
{
|
||
slug: "docker-guide",
|
||
title: "🐳 Docker Guide — OmniRoute",
|
||
fileName: "guides/DOCKER_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "electron-guide",
|
||
title: "Electron Desktop Guide",
|
||
fileName: "guides/ELECTRON_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "features",
|
||
title: "OmniRoute — Dashboard Features Gallery",
|
||
fileName: "guides/FEATURES.md",
|
||
},
|
||
{
|
||
slug: "i18n",
|
||
title: "i18n — Internationalization Guide",
|
||
fileName: "guides/I18N.md",
|
||
},
|
||
{
|
||
slug: "kiro-setup",
|
||
title: "Kiro Setup Guide",
|
||
fileName: "guides/KIRO_SETUP.md",
|
||
},
|
||
{
|
||
slug: "pwa-guide",
|
||
title: "Progressive Web App (PWA) Guide",
|
||
fileName: "guides/PWA_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "setup-guide",
|
||
title: "📖 Setup Guide — OmniRoute",
|
||
fileName: "guides/SETUP_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "termux-guide",
|
||
title: "Termux Headless Setup",
|
||
fileName: "guides/TERMUX_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "troubleshooting",
|
||
title: "Troubleshooting",
|
||
fileName: "guides/TROUBLESHOOTING.md",
|
||
},
|
||
{
|
||
slug: "uninstall",
|
||
title: "OmniRoute — Uninstall Guide",
|
||
fileName: "guides/UNINSTALL.md",
|
||
},
|
||
{
|
||
slug: "user-guide",
|
||
title: "User Guide",
|
||
fileName: "guides/USER_GUIDE.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Reference",
|
||
items: [
|
||
{
|
||
slug: "api-reference",
|
||
title: "API Reference",
|
||
fileName: "reference/API_REFERENCE.md",
|
||
},
|
||
{
|
||
slug: "cli-tools",
|
||
title: "CLI Tools — OmniRoute v3.8.0",
|
||
fileName: "reference/CLI-TOOLS.md",
|
||
},
|
||
{
|
||
slug: "environment",
|
||
title: "Environment Variables Reference",
|
||
fileName: "reference/ENVIRONMENT.md",
|
||
},
|
||
{
|
||
slug: "free-tiers",
|
||
title: "Free Tiers",
|
||
fileName: "reference/FREE_TIERS.md",
|
||
},
|
||
{
|
||
slug: "provider-reference",
|
||
title: "Provider Reference",
|
||
fileName: "reference/PROVIDER_REFERENCE.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Frameworks",
|
||
items: [
|
||
{
|
||
slug: "a2a-server",
|
||
title: "OmniRoute A2A Server Documentation",
|
||
fileName: "frameworks/A2A-SERVER.md",
|
||
},
|
||
{
|
||
slug: "agent-protocols-guide",
|
||
title: "Agent Protocols Guide",
|
||
fileName: "frameworks/AGENT_PROTOCOLS_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "cloud-agent",
|
||
title: "Cloud Agents",
|
||
fileName: "frameworks/CLOUD_AGENT.md",
|
||
},
|
||
{
|
||
slug: "evals",
|
||
title: "Evaluations (Evals)",
|
||
fileName: "frameworks/EVALS.md",
|
||
},
|
||
{
|
||
slug: "gamification",
|
||
title: "Gamification & Leaderboard System",
|
||
fileName: "frameworks/GAMIFICATION.md",
|
||
},
|
||
{
|
||
slug: "mcp-server",
|
||
title: "OmniRoute MCP Server Documentation",
|
||
fileName: "frameworks/MCP-SERVER.md",
|
||
},
|
||
{
|
||
slug: "memory",
|
||
title: "Memory System",
|
||
fileName: "frameworks/MEMORY.md",
|
||
},
|
||
{
|
||
slug: "opencode",
|
||
title: "OpenCode Integration",
|
||
fileName: "frameworks/OPENCODE.md",
|
||
},
|
||
{
|
||
slug: "skills",
|
||
title: "Skills Framework",
|
||
fileName: "frameworks/SKILLS.md",
|
||
},
|
||
{
|
||
slug: "webhooks",
|
||
title: "Webhooks",
|
||
fileName: "frameworks/WEBHOOKS.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Routing",
|
||
items: [
|
||
{
|
||
slug: "auto-combo",
|
||
title: "OmniRoute Auto-Combo Engine",
|
||
fileName: "routing/AUTO-COMBO.md",
|
||
},
|
||
{
|
||
slug: "reasoning-replay",
|
||
title: "Reasoning Replay Cache",
|
||
fileName: "routing/REASONING_REPLAY.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Security",
|
||
items: [
|
||
{
|
||
slug: "cli-token",
|
||
title: "CLI Machine-ID Token",
|
||
fileName: "security/CLI_TOKEN.md",
|
||
},
|
||
{
|
||
slug: "cli-token-auth",
|
||
title: "CLI Machine-ID Token Authentication",
|
||
fileName: "security/CLI_TOKEN_AUTH.md",
|
||
},
|
||
{
|
||
slug: "compliance",
|
||
title: "Compliance & Audit",
|
||
fileName: "security/COMPLIANCE.md",
|
||
},
|
||
{
|
||
slug: "error-sanitization",
|
||
title: "Error Message Sanitization",
|
||
fileName: "security/ERROR_SANITIZATION.md",
|
||
},
|
||
{
|
||
slug: "guardrails",
|
||
title: "Guardrails",
|
||
fileName: "security/GUARDRAILS.md",
|
||
},
|
||
{
|
||
slug: "public-creds",
|
||
title: "Public Credentials Handling",
|
||
fileName: "security/PUBLIC_CREDS.md",
|
||
},
|
||
{
|
||
slug: "route-guard-tiers",
|
||
title: "Route Guard Tiers",
|
||
fileName: "security/ROUTE_GUARD_TIERS.md",
|
||
},
|
||
{
|
||
slug: "stealth-guide",
|
||
title: "Stealth Guide",
|
||
fileName: "security/STEALTH_GUIDE.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Compression",
|
||
items: [
|
||
{
|
||
slug: "compression-engines",
|
||
title: "Compression Engines",
|
||
fileName: "compression/COMPRESSION_ENGINES.md",
|
||
},
|
||
{
|
||
slug: "compression-guide",
|
||
title: "🗜️ Prompt Compression Guide — OmniRoute",
|
||
fileName: "compression/COMPRESSION_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "compression-language-packs",
|
||
title: "Compression Language Packs",
|
||
fileName: "compression/COMPRESSION_LANGUAGE_PACKS.md",
|
||
},
|
||
{
|
||
slug: "compression-rules-format",
|
||
title: "Compression Rules Format",
|
||
fileName: "compression/COMPRESSION_RULES_FORMAT.md",
|
||
},
|
||
{
|
||
slug: "rtk-compression",
|
||
title: "RTK Compression",
|
||
fileName: "compression/RTK_COMPRESSION.md",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "Ops",
|
||
items: [
|
||
{
|
||
slug: "coverage-plan",
|
||
title: "Test Coverage Plan",
|
||
fileName: "ops/COVERAGE_PLAN.md",
|
||
},
|
||
{
|
||
slug: "e2e-dashboard-shakedown-v3.8.0",
|
||
title: "E2E Dashboard Shakedown — v3.8.0",
|
||
fileName: "ops/E2E_DASHBOARD_SHAKEDOWN_v3.8.0.md",
|
||
},
|
||
{
|
||
slug: "fly-io-deployment-guide",
|
||
title: "OmniRoute Fly.io 部署指南",
|
||
fileName: "ops/FLY_IO_DEPLOYMENT_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "proxy-guide",
|
||
title: "🌐 OmniRoute Proxy Guide",
|
||
fileName: "ops/PROXY_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "release-checklist",
|
||
title: "Release Checklist",
|
||
fileName: "ops/RELEASE_CHECKLIST.md",
|
||
},
|
||
{
|
||
slug: "sqlite-runtime",
|
||
title: "SQLite Runtime Resolution",
|
||
fileName: "ops/SQLITE_RUNTIME.md",
|
||
},
|
||
{
|
||
slug: "tunnels-guide",
|
||
title: "Tunnels Guide",
|
||
fileName: "ops/TUNNELS_GUIDE.md",
|
||
},
|
||
{
|
||
slug: "vm-deployment-guide",
|
||
title: "OmniRoute — Deployment Guide on VM with Cloudflare",
|
||
fileName: "ops/VM_DEPLOYMENT_GUIDE.md",
|
||
},
|
||
],
|
||
},
|
||
];
|
||
|
||
export const autoSearchIndex: AutoGenSearchItem[] = [
|
||
{
|
||
slug: "architecture",
|
||
title: "OmniRoute Architecture",
|
||
fileName: "architecture/ARCHITECTURE.md",
|
||
section: "Architecture",
|
||
content:
|
||
"🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indonesia 🇰🇷 한국어 🇲\ud83c",
|
||
headings: [
|
||
"Executive Summary",
|
||
"Reference Diagrams",
|
||
"Scope and Boundaries",
|
||
"In Scope",
|
||
"Out of Scope",
|
||
"Dashboard Surface (Current)",
|
||
"High-Level System Context",
|
||
"Core Runtime Components",
|
||
"1) API and Routing Layer (Next.js App Routes)",
|
||
"2) SSE + Translation Core",
|
||
],
|
||
},
|
||
{
|
||
slug: "authz-guide",
|
||
title: "Authorization Guide",
|
||
fileName: "architecture/AUTHZ_GUIDE.md",
|
||
section: "Architecture",
|
||
content:
|
||
"Source of truth: src/server/authz/, src/shared/constants/publicApiRoutes.ts, src/lib/api/requireManagementAuth.ts, src/shared/utils/apiAuth.ts Last updated: 2026-05-13 — v3.8.0 OmniRoute has a route-aware authorization pipeline that gates every API request. Classification is deterministic and fail-c",
|
||
headings: [
|
||
"Two Auth Modes",
|
||
"1. API Key (Bearer)",
|
||
"2. Dashboard Session (auth_token cookie)",
|
||
"Route Classes",
|
||
"Pipeline",
|
||
"Policy contracts",
|
||
"Public Routes List",
|
||
"Adding a New Route",
|
||
"Pattern 1 — Public client API endpoint (Bearer-auth)",
|
||
"Pattern 2 — Management endpoint (session or Bearer + manage)",
|
||
],
|
||
},
|
||
{
|
||
slug: "codebase-documentation",
|
||
title: "OmniRoute Codebase Documentation",
|
||
fileName: "architecture/CODEBASE_DOCUMENTATION.md",
|
||
section: "Architecture",
|
||
content:
|
||
"Version: v3.8.0 Last updated: 2026-05-13 Audience: Engineers contributing to OmniRoute or building integrations on top of it. For high-level architecture diagrams and the reasoning behind each subsystem, read ARCHITECTURE.md. For deep dives on individual subsystems (Auto Combo, MCP server, A2A serve",
|
||
headings: [
|
||
"1. Tech Stack",
|
||
"2. Repository Layout",
|
||
"3. src/ — Next.js Application",
|
||
"3.1 src/app/ — App Router",
|
||
"3.1.1 src/app/(dashboard)/dashboard/ — UI pages",
|
||
"3.1.2 src/app/api/ — Top-level API groups",
|
||
"3.1.3 src/app/api/v1/ — OpenAI-compatible public API",
|
||
"3.2 src/lib/ — Core libraries",
|
||
"3.2.1 src/lib/db/",
|
||
"3.3 src/domain/ — Domain layer",
|
||
],
|
||
},
|
||
{
|
||
slug: "repository-map",
|
||
title: "Repository Map",
|
||
fileName: "architecture/REPOSITORY_MAP.md",
|
||
section: "Architecture",
|
||
content:
|
||
"One-line description for every directory and root file. Last updated: 2026-05-13 — OmniRoute v3.8.0 Use this map to navigate the codebase quickly. For deep dives, follow links to dedicated docs. ---------------------------------------- ----------------------------------------------------------------",
|
||
headings: [
|
||
"Top-level tree",
|
||
"Root files",
|
||
"src/ — Next.js application",
|
||
"src/app/ — App Router (Next.js 16)",
|
||
"src/lib/ — Core libraries (~50 modules)",
|
||
"src/db/ — Database (45+ modules + 55 migrations)",
|
||
"src/domain/",
|
||
"src/server/",
|
||
"src/shared/",
|
||
"open-sse/ — Streaming Engine Workspace",
|
||
],
|
||
},
|
||
{
|
||
slug: "resilience-guide",
|
||
title: "Resilience Guide",
|
||
fileName: "architecture/RESILIENCE_GUIDE.md",
|
||
section: "Architecture",
|
||
content:
|
||
"OmniRoute has three distinct but related resilience mechanisms. Each has a different scope and purpose. Keep them separate when debugging routing behavior. Source: diagrams/resilience-3layers.mmd Scope: entire provider (e.g., glm, openai, anthropic). Purpose: stop sending traffic to a provider that ",
|
||
headings: [
|
||
"1. Provider Circuit Breaker",
|
||
"2. Connection Cooldown",
|
||
"3. Model Lockout",
|
||
"Model Cooldowns Dashboard (v3.8.0)",
|
||
"Other Resilience Features",
|
||
"Debugging",
|
||
"TLS Fingerprinting & Stealth",
|
||
"See Also",
|
||
],
|
||
},
|
||
{
|
||
slug: "docker-guide",
|
||
title: "🐳 Docker Guide — OmniRoute",
|
||
fileName: "guides/DOCKER_GUIDE.md",
|
||
section: "Guides",
|
||
content:
|
||
"Complete Docker deployment reference. For a quick start, see the README Docker section. - Quick Run - With Environment File - Docker Compose - Available Profiles - Redis Sidecar - Production Compose - Dockerfile Stages - Critical Environment Variables - Docker Compose with Caddy (HTTPS) - Cloudflare",
|
||
headings: [
|
||
"Table of Contents",
|
||
"Quick Run",
|
||
"With Environment File",
|
||
"Docker Compose",
|
||
"Available Profiles",
|
||
"Redis Sidecar",
|
||
"Production Compose",
|
||
"Dockerfile Stages",
|
||
"Critical Environment Variables",
|
||
"Docker Compose with Caddy (HTTPS Auto-TLS)",
|
||
],
|
||
},
|
||
{
|
||
slug: "electron-guide",
|
||
title: "Electron Desktop Guide",
|
||
fileName: "guides/ELECTRON_GUIDE.md",
|
||
section: "Guides",
|
||
content:
|
||
"Source of truth: electron/ workspace Last updated: 2026-05-13 — v3.8.0 OmniRoute ships a cross-platform desktop app (Windows / macOS / Linux) built on Electron 41 + electron-builder 26.10. The desktop app spawns the Next.js standalone server as a child process, points a BrowserWindow at it, and adds",
|
||
headings: [
|
||
"Architecture",
|
||
"Versions",
|
||
"Scripts (root package.json)",
|
||
"Directory Layout",
|
||
"IPC Bridge (preload.js)",
|
||
"Server Lifecycle",
|
||
"Zero-config Secret Bootstrap",
|
||
"Window & Tray",
|
||
"Content Security Policy",
|
||
"Auto-update",
|
||
],
|
||
},
|
||
{
|
||
slug: "features",
|
||
title: "OmniRoute — Dashboard Features Gallery",
|
||
fileName: "guides/FEATURES.md",
|
||
section: "Guides",
|
||
content:
|
||
"🌐 Main README translations: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indones",
|
||
headings: [
|
||
"✨ v3.8.0 Highlights",
|
||
"🔌 Providers",
|
||
"🎨 Combos",
|
||
"📊 Analytics",
|
||
"🏥 System Health",
|
||
"🔧 Translator Playground",
|
||
"🎮 Model Playground _(v2.0.9+)_",
|
||
"🎨 Themes _(v2.0.5+)_",
|
||
"⚙️ Settings",
|
||
"🔧 CLI Tools",
|
||
],
|
||
},
|
||
{
|
||
slug: "i18n",
|
||
title: "i18n — Internationalization Guide",
|
||
fileName: "guides/I18N.md",
|
||
section: "Guides",
|
||
content:
|
||
"OmniRoute supports 30 languages with full dashboard UI translation, translated documentation, and RTL support for Arabic and Hebrew. 🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇩🇪 Deutsch 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇯🇵 日本語 🇰🇷 한국어 🇸🇦 العربية 🇮🇳 ",
|
||
headings: [
|
||
"Translation pipeline (recommended — v3.8.0)",
|
||
"Legacy scripts (deprecated)",
|
||
"Quick Reference",
|
||
"Architecture",
|
||
"Source of Truth",
|
||
"Runtime Flow",
|
||
"Supported Locales",
|
||
"Adding a New Language",
|
||
"1. Register the Locale",
|
||
"2. Add to Generator",
|
||
],
|
||
},
|
||
{
|
||
slug: "kiro-setup",
|
||
title: "Kiro Setup Guide",
|
||
fileName: "guides/KIRO_SETUP.md",
|
||
section: "Guides",
|
||
content:
|
||
"This guide covers adding Kiro (AWS-hosted AI coding assistant) accounts to OmniRoute, with a focus on running multiple accounts simultaneously without session conflicts. Starting with v3.8.0, OmniRoute calls registerClient() (AWS SSO OIDC) during every Kiro connection import. This gives each OmniRou",
|
||
headings: [
|
||
"Background: Why Kiro Accounts Can Conflict",
|
||
"How OmniRoute Solves This (v3.8.0+)",
|
||
"Migration Note for Connections Created Before v3.8.0",
|
||
"Adding Two Kiro Accounts Side by Side",
|
||
"Prerequisites",
|
||
"Step 1: Import the first account",
|
||
"Step 2: Import the second account",
|
||
"Step 3: Verify both connections are active",
|
||
"Step 4: Use a combo to route between accounts",
|
||
"Enterprise / IDC Users",
|
||
],
|
||
},
|
||
{
|
||
slug: "pwa-guide",
|
||
title: "Progressive Web App (PWA) Guide",
|
||
fileName: "guides/PWA_GUIDE.md",
|
||
section: "Guides",
|
||
content:
|
||
'OmniRoute ships as a fully installable Progressive Web App. When you access the dashboard from any mobile browser — Android (Chrome) or iOS (Safari) — you can "Add to Home Screen" and get a native app-like experience with no app store required. A Progressive Web App turns the OmniRoute web dashboard',
|
||
headings: [
|
||
"What Is a PWA?",
|
||
"Installation",
|
||
"Android (Chrome)",
|
||
"iOS (Safari)",
|
||
"Desktop (Chrome / Edge)",
|
||
"Features",
|
||
"Fullscreen Experience",
|
||
"Offline Support",
|
||
"Offline Page",
|
||
"App Icons",
|
||
],
|
||
},
|
||
{
|
||
slug: "setup-guide",
|
||
title: "📖 Setup Guide — OmniRoute",
|
||
fileName: "guides/SETUP_GUIDE.md",
|
||
section: "Guides",
|
||
content:
|
||
"Complete setup reference for OmniRoute. For the quick version, see the Quick Start in README. - Install Methods - CLI Tool Configuration - Protocol Setup (MCP + A2A) - Timeout Configuration - Split-Port Mode - Void Linux (xbps-src) - Uninstalling -------------------- --------------------------------",
|
||
headings: [
|
||
"Table of Contents",
|
||
"Install Methods",
|
||
"npm (recommended)",
|
||
"pnpm",
|
||
"Arch Linux (AUR)",
|
||
"From Source",
|
||
"Docker",
|
||
"Desktop App (Electron)",
|
||
"Headless server (CI/automation)",
|
||
"CLI Options",
|
||
],
|
||
},
|
||
{
|
||
slug: "termux-guide",
|
||
title: "Termux Headless Setup",
|
||
fileName: "guides/TERMUX_GUIDE.md",
|
||
section: "Guides",
|
||
content:
|
||
"OmniRoute can run as a headless server on Android through Termux. The Electron desktop app is not supported in Termux, but the web dashboard and OpenAI-compatible API work from the local browser or from other devices on the same network. Install Termux from F-Droid or GitHub releases, then update pa",
|
||
headings: [
|
||
"Prerequisites",
|
||
"Install",
|
||
"Run",
|
||
"Background Execution",
|
||
"Access From Other Devices",
|
||
"Data Directory",
|
||
"Limitations",
|
||
"Troubleshooting",
|
||
"better-sqlite3 Build Errors",
|
||
"Port Already In Use",
|
||
],
|
||
},
|
||
{
|
||
slug: "troubleshooting",
|
||
title: "Troubleshooting",
|
||
fileName: "guides/TROUBLESHOOTING.md",
|
||
section: "Guides",
|
||
content:
|
||
"🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indonesia 🇰🇷 한국어 🇲\ud83c",
|
||
headings: [
|
||
"Quick Fixes",
|
||
"Node.js Compatibility",
|
||
'Login page crashes or shows "Module self-registration" error',
|
||
'macOS: dlopen / "slice is not valid mach-o file"',
|
||
"Proxy Issues",
|
||
'Provider validation shows "fetch failed"',
|
||
'Token health check fails with "fetch failed"',
|
||
'SOCKS5 proxy returns "invalid onRequestStart method"',
|
||
"Provider Issues",
|
||
'"Language model did not provide messages"',
|
||
],
|
||
},
|
||
{
|
||
slug: "uninstall",
|
||
title: "OmniRoute — Uninstall Guide",
|
||
fileName: "guides/UNINSTALL.md",
|
||
section: "Guides",
|
||
content:
|
||
"🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indonesia 🇰🇷 한국어 🇲\ud83c",
|
||
headings: [
|
||
"Quick Uninstall (v3.6.2+)",
|
||
"Keep Your Data",
|
||
"Full Removal",
|
||
"Manual Uninstall",
|
||
"NPM Global Install",
|
||
"pnpm Global Install",
|
||
"Docker",
|
||
"Docker Compose",
|
||
"Electron Desktop App",
|
||
"Source Install (git clone)",
|
||
],
|
||
},
|
||
{
|
||
slug: "user-guide",
|
||
title: "User Guide",
|
||
fileName: "guides/USER_GUIDE.md",
|
||
section: "Guides",
|
||
content:
|
||
"🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indonesia 🇰🇷 한국어 🇲\ud83c",
|
||
headings: [
|
||
"Table of Contents",
|
||
"💰 Pricing at a Glance",
|
||
"🎯 Use Cases",
|
||
'Case 1: "I have Claude Pro subscription"',
|
||
'Case 2: "I want zero cost"',
|
||
'Case 3: "I need 24/7 coding, no interruptions"',
|
||
'Case 4: "I want FREE AI in OpenClaw"',
|
||
"📖 Provider Setup",
|
||
"🔐 Subscription Providers",
|
||
"Claude Code (Pro/Max)",
|
||
],
|
||
},
|
||
{
|
||
slug: "api-reference",
|
||
title: "API Reference",
|
||
fileName: "reference/API_REFERENCE.md",
|
||
section: "Reference",
|
||
content:
|
||
"🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indonesia 🇰🇷 한국어 🇲\ud83c",
|
||
headings: [
|
||
"Table of Contents",
|
||
"Chat Completions",
|
||
"Custom Headers",
|
||
"Embeddings",
|
||
"Image Generation",
|
||
"List Models",
|
||
"Compatibility Endpoints",
|
||
"Dedicated Provider Routes",
|
||
"Files API",
|
||
"Batches API",
|
||
],
|
||
},
|
||
{
|
||
slug: "cli-tools",
|
||
title: "CLI Tools — OmniRoute v3.8.0",
|
||
fileName: "reference/CLI-TOOLS.md",
|
||
section: "Reference",
|
||
content:
|
||
"Last updated: 2026-05-13 OmniRoute integrates with two categories of CLI tools: 1. External CLI integrations — third-party CLIs (Cursor, Cline, Codex, Claude Code, Qwen Code, Windsurf, Hermes, Amp, etc.) that you point at OmniRoute's local OpenAI-compatible endpoint. 2. Internal OmniRoute CLI — comm",
|
||
headings: [
|
||
"How It Works",
|
||
"1. External CLI Integrations",
|
||
"Source of Truth",
|
||
"Current Catalog (v3.8.0)",
|
||
"CLI fingerprint sync (Agents + Settings)",
|
||
"Step 1 — Get an OmniRoute API Key",
|
||
"Step 2 — Install CLI Tools",
|
||
"Step 3 — Set Global Environment Variables",
|
||
"Step 4 — Configure Each Tool",
|
||
"Claude Code",
|
||
],
|
||
},
|
||
{
|
||
slug: "environment",
|
||
title: "Environment Variables Reference",
|
||
fileName: "reference/ENVIRONMENT.md",
|
||
section: "Reference",
|
||
content:
|
||
"Complete reference for every environment variable recognized by OmniRoute. For a quick-start template, see .env.example. [!IMPORTANT] Every variable documented here must also appear in .env.example, and every variable in .env.example must appear here. npm run check:env-doc-sync enforces this on comm",
|
||
headings: [
|
||
"Table of Contents",
|
||
"1. Required Secrets",
|
||
"Generation Commands",
|
||
"2. Storage & Database",
|
||
"Scenarios",
|
||
"3. Network & Ports",
|
||
"Port Modes",
|
||
"4. Security & Authentication",
|
||
"Hardening Checklist",
|
||
"5. Input Sanitization & PII Protection",
|
||
],
|
||
},
|
||
{
|
||
slug: "free-tiers",
|
||
title: "Free Tiers",
|
||
fileName: "reference/FREE_TIERS.md",
|
||
section: "Reference",
|
||
content:
|
||
"Last consolidated: 2026-05-13 — OmniRoute v3.8.1 Source of truth: src/shared/constants/providers.ts (FREEPROVIDERS, OAUTHPROVIDERS, and APIKEYPROVIDERS entries flagged with hasFree: true + freeNote) This page lists providers with usable free tiers shipped in OmniRoute v3.8.1. The data is derived fro",
|
||
headings: [
|
||
"How free providers are wired",
|
||
"Quick reference (API key providers with hasFree: true)",
|
||
"OAuth-based free tiers",
|
||
"Always-free OAuth providers (in FREE_PROVIDERS)",
|
||
"OAuth providers with vendor-controlled free tiers (in OAUTH_PROVIDERS)",
|
||
"Deprecated / discontinued",
|
||
"Qwen Code (qwen)",
|
||
"Command Code",
|
||
"Environment variables",
|
||
"How to use",
|
||
],
|
||
},
|
||
{
|
||
slug: "provider-reference",
|
||
title: "Provider Reference",
|
||
fileName: "reference/PROVIDER_REFERENCE.md",
|
||
section: "Reference",
|
||
content:
|
||
"Auto-generated from src/shared/constants/providers.ts — do not edit by hand. Regenerate with: npm run gen:provider-reference Last generated: 2026-05-17 Total providers: 177. See category breakdown below. - Free — free tier with API key (configured via dashboard) - OAuth — sign-in flow handled by Omn",
|
||
headings: [
|
||
"Categories",
|
||
"Free Tier (OAuth-first or no-key) (5)",
|
||
"OAuth Providers (11)",
|
||
"Web Cookie Providers (7)",
|
||
"API Key Providers (paid / paid-with-free-credits) (122)",
|
||
"Local Providers (10)",
|
||
"Search Providers (11)",
|
||
"Audio-only Providers (7)",
|
||
"Upstream Proxy Providers (1)",
|
||
"Cloud Agent Providers (3)",
|
||
],
|
||
},
|
||
{
|
||
slug: "a2a-server",
|
||
title: "OmniRoute A2A Server Documentation",
|
||
fileName: "frameworks/A2A-SERVER.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Agent-to-Agent Protocol v0.3 — OmniRoute as an intelligent routing agent The A2A surface has two faces: - JSON-RPC 2.0 at POST /a2a (canonical entry point, defined in src/app/a2a/route.ts). - REST under /api/a2a/ for dashboards and tooling (status, task list, cancel). Tasks are tracked by A2ATaskMan",
|
||
headings: [
|
||
"Agent Discovery",
|
||
"Authentication",
|
||
"Enablement",
|
||
"JSON-RPC 2.0 Methods",
|
||
"message/send — Synchronous Execution",
|
||
"message/stream — SSE Streaming",
|
||
"tasks/get — Query Task Status",
|
||
"tasks/cancel — Cancel a Task",
|
||
"Available Skills",
|
||
"REST API (auxiliary)",
|
||
],
|
||
},
|
||
{
|
||
slug: "agent-protocols-guide",
|
||
title: "Agent Protocols Guide",
|
||
fileName: "frameworks/AGENT_PROTOCOLS_GUIDE.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Source: src/lib/{a2a,acp,cloudAgent}/, src/app/api/{a2a,acp,cloud}/, src/app/api/v1/agents/ Last updated: 2026-05-13 — v3.8.0 OmniRoute exposes three different agent-related surfaces. They look similar at first glance but solve different problems. Use this page to pick the right one. Surface Best fo",
|
||
headings: [
|
||
"TL;DR",
|
||
"Decision Tree",
|
||
"1. A2A — Agent-to-Agent",
|
||
"When to use",
|
||
"Methods",
|
||
"Built-in skills (5)",
|
||
"Deep dive",
|
||
"2. ACP — CLI Agents Registry",
|
||
"What it is",
|
||
"What it does",
|
||
],
|
||
},
|
||
{
|
||
slug: "cloud-agent",
|
||
title: "Cloud Agents",
|
||
fileName: "frameworks/CLOUD_AGENT.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Source of truth: src/lib/cloudAgent/ and src/app/api/v1/agents/tasks/ Last updated: 2026-05-13 — v3.8.0 OmniRoute orchestrates third-party cloud-hosted coding agents (Codex Cloud, Devin, Jules) as long-running tasks. Each agent is wrapped behind a uniform interface so clients can submit a prompt + r",
|
||
headings: [
|
||
"Supported Agents",
|
||
"Architecture",
|
||
"CloudAgentBase Interface",
|
||
"Domain Types",
|
||
"Database",
|
||
"REST API — Task Lifecycle",
|
||
"Create task",
|
||
"Approve a plan",
|
||
"Send a follow-up message",
|
||
"Cancel (local status only)",
|
||
],
|
||
},
|
||
{
|
||
slug: "evals",
|
||
title: "Evaluations (Evals)",
|
||
fileName: "frameworks/EVALS.md",
|
||
section: "Frameworks",
|
||
content:
|
||
'Source of truth: src/lib/evals/, src/lib/db/evals.ts, src/app/api/evals/ Last updated: 2026-05-13 — v3.8.0 OmniRoute ships a generic evaluation framework you can use to benchmark routing configurations, single providers/models, or the bundled "golden set" suites. Use it to verify routing changes, va',
|
||
headings: [
|
||
"Concepts",
|
||
"Suite",
|
||
"Case",
|
||
"Target",
|
||
"Scoring Rubrics",
|
||
"Database Schema",
|
||
"REST API",
|
||
"Running a suite",
|
||
"Creating a custom suite",
|
||
"Dispatch Pipeline",
|
||
],
|
||
},
|
||
{
|
||
slug: "gamification",
|
||
title: "Gamification & Leaderboard System",
|
||
fileName: "frameworks/GAMIFICATION.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Source of truth: src/lib/gamification/, src/lib/db/gamification.ts, src/app/api/gamification/ Last updated: 2026-05-19 — v3.8.0 OmniRoute includes a local-first gamification layer that rewards users for engaging with the platform — making requests, switching providers, creating combos, sharing token",
|
||
headings: [
|
||
"Overview",
|
||
"Purpose",
|
||
"Scope",
|
||
"Design Principles",
|
||
"Architecture",
|
||
"High-Level Flow",
|
||
"Module Dependency Graph",
|
||
"Data Layer",
|
||
"Database Tables",
|
||
"Domain Module: src/lib/db/gamification.ts",
|
||
],
|
||
},
|
||
{
|
||
slug: "mcp-server",
|
||
title: "OmniRoute MCP Server Documentation",
|
||
fileName: "frameworks/MCP-SERVER.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Model Context Protocol server with 37 tools across routing, cache, compression, memory, skills, and proxy operations. Source of truth: open-sse/mcp-server/schemas/tools.ts (30 tools) + open-sse/mcp-server/tools/memoryTools.ts (3 tools) + open-sse/mcp-server/tools/skillTools.ts (4 tools). Tool regist",
|
||
headings: [
|
||
"Installation",
|
||
"Transports",
|
||
"IDE Configuration",
|
||
"Essential Tools (8) — Phase 1",
|
||
"Phase 1 — Search",
|
||
"Advanced Tools (11) — Phase 2",
|
||
"Cache Tools (2)",
|
||
"Compression Tools (5)",
|
||
"MCP Accessibility Tree Filter (v3.8.0)",
|
||
"1Proxy Tools (3)",
|
||
],
|
||
},
|
||
{
|
||
slug: "memory",
|
||
title: "Memory System",
|
||
fileName: "frameworks/MEMORY.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Source of truth: src/lib/memory/ and src/app/api/memory/ Last updated: 2026-05-13 — v3.8.0 OmniRoute provides persistent conversational memory keyed by API key (and optionally session id). Memories are extracted automatically from LLM responses via lightweight regex pattern matching and injected bac",
|
||
headings: [
|
||
"Architecture",
|
||
"Storage Layers",
|
||
"Primary: SQLite (memories table)",
|
||
"Full-text Search (memory_fts virtual table)",
|
||
"Optional: Qdrant (vector store)",
|
||
"Memory Types",
|
||
"Fact Extraction (extraction.ts)",
|
||
"Retrieval (retrieval.ts)",
|
||
"Injection (injection.ts)",
|
||
"Settings (settings.ts)",
|
||
],
|
||
},
|
||
{
|
||
slug: "opencode",
|
||
title: "OpenCode Integration",
|
||
fileName: "frameworks/OPENCODE.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Status: Generally available. Audience: Operators wiring OpenCode to an OmniRoute deployment. Source of truth (config schema): src/shared/services/opencodeConfig.ts Source of truth (npm package): @omniroute/opencode-provider/ (publishable workspace) OpenCode is an agentic CLI/desktop AI client. It re",
|
||
headings: [
|
||
"Path 1 — CLI generator (no npm install)",
|
||
"Path 2 — npm package @omniroute/opencode-provider",
|
||
"What the runtime actually does",
|
||
"Model catalog defaults",
|
||
"URL normalisation",
|
||
"Authentication modes",
|
||
"Troubleshooting",
|
||
"See also",
|
||
],
|
||
},
|
||
{
|
||
slug: "skills",
|
||
title: "Skills Framework",
|
||
fileName: "frameworks/SKILLS.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Source of truth: src/lib/skills/ and src/app/api/skills/ Last updated: 2026-05-13 — v3.8.0 OmniRoute exposes an extensible Skills framework that lets language models (and operators) compose reusable capabilities — from filesystem reads and HTTP requests to sandboxed code execution and curated market",
|
||
headings: [
|
||
"Concepts",
|
||
"Skill Sources",
|
||
"Skill Identity",
|
||
"Skill Mode",
|
||
"Status (executions)",
|
||
"Registry Cache",
|
||
"Provider-Aware Injection",
|
||
"AUTO Scoring",
|
||
"Tool Call Interception",
|
||
"Docker Sandbox",
|
||
],
|
||
},
|
||
{
|
||
slug: "webhooks",
|
||
title: "Webhooks",
|
||
fileName: "frameworks/WEBHOOKS.md",
|
||
section: "Frameworks",
|
||
content:
|
||
"Source of truth: src/lib/webhookDispatcher.ts, src/lib/db/webhooks.ts, src/app/api/webhooks/ Last updated: 2026-05-13 — v3.8.0 OmniRoute can fire HTTP webhooks on platform events. Use them to integrate with Slack, PagerDuty, Datadog, internal alerting services, or any HTTP receiver. The dispatcher s",
|
||
headings: [
|
||
"Supported Events",
|
||
"Architecture",
|
||
"HMAC Signing",
|
||
"Verifying on the receiver",
|
||
"Retry & Failure Policy",
|
||
"Database",
|
||
"REST API",
|
||
"Create webhook",
|
||
"Test webhook",
|
||
"Dashboard",
|
||
],
|
||
},
|
||
{
|
||
slug: "auto-combo",
|
||
title: "OmniRoute Auto-Combo Engine",
|
||
fileName: "routing/AUTO-COMBO.md",
|
||
section: "Routing",
|
||
content:
|
||
"Self-managing model chains with adaptive scoring + zero-config auto-routing NEW: No combo creation required. Use auto/ prefix directly in any client. Model ID Variant Behavior -------------- ------- ------------------------------------------------------------------------ auto default All connected p",
|
||
headings: [
|
||
"Zero-Config Auto-Routing (auto/ prefix)",
|
||
"Quick Examples",
|
||
"How It Works (Persisted Auto-Combos)",
|
||
"Mode Packs",
|
||
"All Routing Strategies",
|
||
"Virtual Auto-Combo Factory",
|
||
"Self-Healing",
|
||
"Bandit Exploration",
|
||
"API",
|
||
"Task Fitness",
|
||
],
|
||
},
|
||
{
|
||
slug: "reasoning-replay",
|
||
title: "Reasoning Replay Cache",
|
||
fileName: "routing/REASONING_REPLAY.md",
|
||
section: "Routing",
|
||
content:
|
||
"Source of truth: src/lib/db/reasoningCache.ts, open-sse/services/reasoningCache.ts Last updated: 2026-05-13 — v3.8.0 OmniRoute captures assistant reasoningcontent produced by thinking-mode models and replays it transparently on multi-turn requests when the upstream provider requires it. This elimina",
|
||
headings: [
|
||
"Why This Exists",
|
||
"Architecture",
|
||
"Storage — Hybrid Memory + SQLite",
|
||
"Database Schema",
|
||
"Provider / Model Detection",
|
||
"REST API",
|
||
"Operational Notes",
|
||
"See Also",
|
||
],
|
||
},
|
||
{
|
||
slug: "cli-token",
|
||
title: "CLI Machine-ID Token",
|
||
fileName: "security/CLI_TOKEN.md",
|
||
section: "Security",
|
||
content:
|
||
"OmniRoute CLI commands authenticate against the local management API using a HMAC-SHA256(machine-id, salt) token sent via the x-omniroute-cli-token request header. This allows CLI subcommands (omniroute status, omniroute providers, etc.) to call management endpoints without requiring the user to sup",
|
||
headings: [
|
||
"Overview",
|
||
"How it works",
|
||
"Security properties",
|
||
"Salt rotation",
|
||
"Files",
|
||
"See also",
|
||
],
|
||
},
|
||
{
|
||
slug: "cli-token-auth",
|
||
title: "CLI Machine-ID Token Authentication",
|
||
fileName: "security/CLI_TOKEN_AUTH.md",
|
||
section: "Security",
|
||
content:
|
||
"OmniRoute's CLI uses a machine-derived token to authenticate to the local server without requiring an explicit API key. This enables zero-config local use while preserving security for remote access. 1. CLI side (bin/cli/utils/cliToken.mjs): computes SHA-256(machineId + salt).hex[0..32] using node-m",
|
||
headings: [
|
||
"How it works",
|
||
"Threat model",
|
||
"Opt-out",
|
||
"Audit logging",
|
||
"API key precedence",
|
||
"Related files",
|
||
],
|
||
},
|
||
{
|
||
slug: "compliance",
|
||
title: "Compliance & Audit",
|
||
fileName: "security/COMPLIANCE.md",
|
||
section: "Security",
|
||
content:
|
||
"Source of truth: src/lib/compliance/, src/app/api/compliance/ Last updated: 2026-05-13 — v3.8.0 OmniRoute records administrative actions, authentication events, provider credential lifecycle changes, and MCP tool invocations to SQLite-backed audit tables. This page covers what gets logged, where it ",
|
||
headings: [
|
||
"What Gets Logged",
|
||
"Administrative audit events (audit_log)",
|
||
"MCP tool calls (mcp_tool_audit)",
|
||
"Request / usage logs",
|
||
"Storage Schema",
|
||
"Retention & Cleanup",
|
||
"noLog Opt-Out (per API key)",
|
||
"REST API",
|
||
"Querying /api/compliance/audit-log",
|
||
"Dashboard",
|
||
],
|
||
},
|
||
{
|
||
slug: "error-sanitization",
|
||
title: "Error Message Sanitization",
|
||
fileName: "security/ERROR_SANITIZATION.md",
|
||
section: "Security",
|
||
content:
|
||
"Source of truth: open-sse/utils/error.ts — sanitizeErrorMessage, buildErrorBody, createErrorResult Tests: tests/unit/error-message-sanitization.test.ts Last updated: 2026-05-14 — v3.8.0 Audience: Any engineer touching error responses (HTTP routes, SSE streams, executors, MCP handlers). Status: MANDA",
|
||
headings: [
|
||
"Why this exists",
|
||
"The mandatory pattern",
|
||
"1. Building an error response (HTTP / API routes)",
|
||
"2. Custom error envelopes (rare)",
|
||
"3. Logging vs. responding",
|
||
"4. Forbidden patterns",
|
||
"Coverage in CI",
|
||
"Related controls",
|
||
"Upstream details passthrough",
|
||
"Known CodeQL limitation: custom sanitizers not recognized",
|
||
],
|
||
},
|
||
{
|
||
slug: "guardrails",
|
||
title: "Guardrails",
|
||
fileName: "security/GUARDRAILS.md",
|
||
section: "Security",
|
||
content:
|
||
"Source of truth: src/lib/guardrails/ Last updated: 2026-05-13 — v3.8.0 Guardrails enforce safety, policy, and content transformations at the boundary between OmniRoute and upstream providers. Each guardrail can inspect (and optionally reject, transform, or annotate) request payloads (preCall) and up",
|
||
headings: [
|
||
"Built-in Guardrails",
|
||
"Vision Bridge (visionBridge.ts)",
|
||
"PII Masker (piiMasker.ts)",
|
||
"Prompt Injection (promptInjection.ts)",
|
||
"Base Contract (base.ts)",
|
||
"Registry (registry.ts)",
|
||
"Disabling Guardrails Per-Request",
|
||
"Execution Order",
|
||
"Configuration",
|
||
"Custom Guardrails",
|
||
],
|
||
},
|
||
{
|
||
slug: "public-creds",
|
||
title: "Public Credentials Handling",
|
||
fileName: "security/PUBLIC_CREDS.md",
|
||
section: "Security",
|
||
content:
|
||
"Source of truth: open-sse/utils/publicCreds.ts Tests: tests/unit/publicCreds.test.ts Last updated: 2026-05-14 — v3.8.0 Audience: Engineers integrating providers that ship public OAuth clientid / clientsecret / Firebase Web API keys in their public CLIs. Status: MANDATORY for all new code that embeds",
|
||
headings: [
|
||
"Why this exists",
|
||
"The mandatory pattern",
|
||
"1. Adding a new public credential",
|
||
"2. Consumers",
|
||
"3. Forbidden patterns",
|
||
"Related controls",
|
||
"When NOT to use this helper",
|
||
"References",
|
||
],
|
||
},
|
||
{
|
||
slug: "route-guard-tiers",
|
||
title: "Route Guard Tiers",
|
||
fileName: "security/ROUTE_GUARD_TIERS.md",
|
||
section: "Security",
|
||
content:
|
||
"All OmniRoute management API routes are classified into one of three protection tiers. Classification is static, defined in src/server/authz/routeGuard.ts, and evaluated unconditionally on every request before any auth logic runs. Enforced by: isLocalOnlyPath(path) → loopback host check Bypass: None",
|
||
headings: [
|
||
"Overview",
|
||
"Tiers",
|
||
"Tier 1 — LOCAL_ONLY",
|
||
"Tier 2 — ALWAYS_PROTECTED",
|
||
"Tier 3 — MANAGEMENT (default)",
|
||
"Evaluation order",
|
||
"Adding a new spawn-capable route",
|
||
"Files",
|
||
"See also",
|
||
],
|
||
},
|
||
{
|
||
slug: "stealth-guide",
|
||
title: "Stealth Guide",
|
||
fileName: "security/STEALTH_GUIDE.md",
|
||
section: "Security",
|
||
content:
|
||
"Source of truth: open-sse/utils/tlsClient.ts, open-sse/services/{chatgptTlsClient,claudeCodeCCH,claudeCodeFingerprint,claudeCodeObfuscation,claudeCodeCompatible,antigravityObfuscation}.ts, open-sse/config/cliFingerprints.ts, src/mitm/ Last updated: 2026-05-13 — v3.8.0 Audience: Engineers maintaining",
|
||
headings: [
|
||
"Legal and Ethical Notice",
|
||
"TLS Fingerprinting Layer",
|
||
"open-sse/utils/tlsClient.ts — wreq-js (Chrome 124)",
|
||
"open-sse/services/chatgptTlsClient.ts — tls-client-node (Firefox 148)",
|
||
"Claude Code Stealth Bundle",
|
||
"claudeCodeFingerprint.ts",
|
||
"claudeCodeCCH.ts (Client Content Hash)",
|
||
"claudeCodeObfuscation.ts",
|
||
"claudeCodeCompatible.ts — anthropic-compatible-cc- providers",
|
||
"Antigravity Stealth",
|
||
],
|
||
},
|
||
{
|
||
slug: "compression-engines",
|
||
title: "Compression Engines",
|
||
fileName: "compression/COMPRESSION_ENGINES.md",
|
||
section: "Compression",
|
||
content:
|
||
"OmniRoute compression is built around engine contracts. A mode can run one engine directly (caveman or rtk) or a deterministic stacked pipeline that executes multiple engines in order. Mode Engine path Intended input ------------ ---------------------------------- -----------------------------------",
|
||
headings: [
|
||
"Modes",
|
||
"Engine Registry",
|
||
"MCP description compression (related)",
|
||
"Caveman",
|
||
"RTK",
|
||
"Stacked Pipelines",
|
||
"MCP Accessibility Tree Filter",
|
||
"What it does",
|
||
"Engine location",
|
||
"Configuration",
|
||
],
|
||
},
|
||
{
|
||
slug: "compression-guide",
|
||
title: "🗜️ Prompt Compression Guide — OmniRoute",
|
||
fileName: "compression/COMPRESSION_GUIDE.md",
|
||
section: "Compression",
|
||
content:
|
||
"Save 15-95% on eligible context automatically. For a quick overview, see the README Compression section. OmniRoute implements a modular prompt compression pipeline that runs proactively before requests hit upstream providers. This means your token savings happen transparently — no changes needed to ",
|
||
headings: [
|
||
"Overview",
|
||
"Compression Modes",
|
||
"Off",
|
||
"Lite Mode (~15% savings, <1ms latency)",
|
||
"Standard Mode (~30% savings)",
|
||
"Aggressive Mode (~50% savings)",
|
||
"Ultra Mode (~75% savings)",
|
||
"RTK Mode (60-90% upstream range)",
|
||
"Stacked Mode (78-95% eligible range)",
|
||
"Upstream Savings Math",
|
||
],
|
||
},
|
||
{
|
||
slug: "compression-language-packs",
|
||
title: "Compression Language Packs",
|
||
fileName: "compression/COMPRESSION_LANGUAGE_PACKS.md",
|
||
section: "Compression",
|
||
content:
|
||
"Caveman compression can load language-specific rule packs in addition to the built-in English rules. This keeps the core engine stable while allowing Portuguese, Spanish, German, French, Japanese, and future language packs to evolve independently. Language packs live under: Current shipped packs (ve",
|
||
headings: [
|
||
"Location",
|
||
"Language Detection",
|
||
"Config Shape",
|
||
"Adding a Language Pack",
|
||
"API",
|
||
"SHARED_BOUNDARIES (v3.8.0)",
|
||
"Why this matters",
|
||
"Customizing preservePatterns",
|
||
"Operational Notes",
|
||
],
|
||
},
|
||
{
|
||
slug: "compression-rules-format",
|
||
title: "Compression Rules Format",
|
||
fileName: "compression/COMPRESSION_RULES_FORMAT.md",
|
||
section: "Compression",
|
||
content:
|
||
"Compression rules are JSON files loaded at runtime. They are intentionally data-only so new language packs and RTK command filters can be reviewed without changing engine code. Canonical schema (source of truth): open-sse/services/compression/rules/schema.json (JSON Schema draft 2020-12). The exampl",
|
||
headings: [
|
||
"Caveman Rule Packs",
|
||
"Caveman Fields",
|
||
"RTK Filter Packs",
|
||
"RTK Fields",
|
||
"Safety Rules",
|
||
"Validation",
|
||
],
|
||
},
|
||
{
|
||
slug: "rtk-compression",
|
||
title: "RTK Compression",
|
||
fileName: "compression/RTK_COMPRESSION.md",
|
||
section: "Compression",
|
||
content:
|
||
"RTK compression is OmniRoute's command-aware compression engine for terminal and tool output. It is designed for coding-agent sessions where most context growth comes from test logs, build output, package manager noise, shell transcripts, Docker output, git output, and stack traces. RTK can run dire",
|
||
headings: [
|
||
"What It Compresses",
|
||
"Filter Resolution",
|
||
"Filter DSL",
|
||
"Configuration",
|
||
"API",
|
||
"Raw Output Recovery",
|
||
"Verify Gate",
|
||
"Extending RTK",
|
||
],
|
||
},
|
||
{
|
||
slug: "coverage-plan",
|
||
title: "Test Coverage Plan",
|
||
fileName: "ops/COVERAGE_PLAN.md",
|
||
section: "Ops",
|
||
content:
|
||
"Last updated: 2026-05-13 Status measured on 2026-05-13: lines 82.58%, statements 82.58%, functions 84.23%, branches 75.22%. Phases 1-5 are complete. Current focus is Phase 6 (=85%) and Phase 7 (=90%). There are multiple coverage numbers depending on how the report is computed. For planning, only one",
|
||
headings: [
|
||
"Baseline",
|
||
"Rules",
|
||
"Current command set",
|
||
"Milestones",
|
||
"Priority hotspots",
|
||
"Execution checklist",
|
||
"Phase 1: 56.95% -> 60%",
|
||
"Phase 2: 60% -> 65%",
|
||
"Phase 3: 65% -> 70%",
|
||
"Phase 4: 70% -> 75%",
|
||
],
|
||
},
|
||
{
|
||
slug: "e2e-dashboard-shakedown-v3.8.0",
|
||
title: "E2E Dashboard Shakedown — v3.8.0",
|
||
fileName: "ops/E2E_DASHBOARD_SHAKEDOWN_v3.8.0.md",
|
||
section: "Ops",
|
||
content:
|
||
"Branch alvo: release/v3.8.0 Objetivo: validar manualmente, em modo dev (Turbopack), que toda página renderiza sem erro de runtime ou de backend antes de fechar a versão 3.8.0. Para cada erro encontrado, o operador corrige na própria página e segue para a próxima — esse documento é o roteiro vivo da ",
|
||
headings: [
|
||
"0. Pré-requisitos (rodar uma vez)",
|
||
"0.1 Estado do repositório",
|
||
"0.2 Conflito conhecido — diretório app/ na raiz",
|
||
"0.3 Cache do Turbopack",
|
||
"0.4 Dev server",
|
||
"0.5 Browser",
|
||
"0.6 Side-channel — busca por erros no backend",
|
||
'1. O que conta como "passou"',
|
||
"2. Categorias de erro mais comuns e padrão de correção",
|
||
"3. Checklist de páginas (ordem sugerida)",
|
||
],
|
||
},
|
||
{
|
||
slug: "fly-io-deployment-guide",
|
||
title: "OmniRoute Fly.io 部署指南",
|
||
fileName: "ops/FLY_IO_DEPLOYMENT_GUIDE.md",
|
||
section: "Ops",
|
||
content:
|
||
"本文档记录 OmniRoute 在 Fly.io 上的实际部署方法,适用于两类场景: - 首次把当前项目部署到 Fly.io - 后续代码更新后继续发布 - 新项目参考同样流程部署 本文基于当前项目已经验证通过的配置整理,应用名为 omniroute。 当前仓库中的 fly.toml 已确认包含以下关键项: 说明: - app = 'omniroute' 决定实际部署到哪个 Fly 应用 - destination = '/data' 决定持久卷挂载目录 - 本项目必须让 DATADIR=/data,否则数据库和密钥会写到容器临时目录 --- Windows PowerShell: 如果安装脚",
|
||
headings: [
|
||
"1. 部署目标",
|
||
"2. 当前项目关键配置",
|
||
"3. 必备工具",
|
||
"3.1 安装 Fly CLI",
|
||
"3.2 登录 Fly 账号",
|
||
"3.3 检查登录状态",
|
||
"4. 首次部署当前项目",
|
||
"4.1 获取代码并进入目录",
|
||
"4.2 确认应用名",
|
||
"4.3 创建应用",
|
||
],
|
||
},
|
||
{
|
||
slug: "proxy-guide",
|
||
title: "🌐 OmniRoute Proxy Guide",
|
||
fileName: "ops/PROXY_GUIDE.md",
|
||
section: "Ops",
|
||
content:
|
||
"Bypass geographic blocks, protect your identity, and route AI traffic through any proxy — with zero configuration complexity. OmniRoute includes a full-featured proxy management system that lets you route upstream AI provider traffic through HTTP, HTTPS, or SOCKS5 proxies. Whether you're in a blocke",
|
||
headings: [
|
||
"Table of Contents",
|
||
"Why Use Proxies?",
|
||
"Architecture Overview",
|
||
"Key Components",
|
||
"4-Level Proxy System",
|
||
"How Resolution Works",
|
||
"What Gets Proxied",
|
||
"Proxy Registry (CRUD)",
|
||
"Creating a Proxy",
|
||
"Updating a Proxy",
|
||
],
|
||
},
|
||
{
|
||
slug: "release-checklist",
|
||
title: "Release Checklist",
|
||
fileName: "ops/RELEASE_CHECKLIST.md",
|
||
section: "Ops",
|
||
content:
|
||
"Last updated: 2026-05-13 — v3.8.0 Streamlined release flow that leverages Claude Code skills for automation. - [ ] All PRs targeted to this release are merged to release/vX.Y.0 - [ ] All open Linear/issue items for this version are closed or pushed to next milestone - [ ] CI green on release/vX.Y.0 ",
|
||
headings: [
|
||
"TL;DR",
|
||
"Detailed Checklist",
|
||
"Pre-release",
|
||
"Version & Changelog",
|
||
"Code Quality",
|
||
"Testing",
|
||
"Hooks (Husky validated)",
|
||
"Conventional Commits",
|
||
"Documentation",
|
||
"i18n",
|
||
],
|
||
},
|
||
{
|
||
slug: "sqlite-runtime",
|
||
title: "SQLite Runtime Resolution",
|
||
fileName: "ops/SQLITE_RUNTIME.md",
|
||
section: "Ops",
|
||
content:
|
||
"OmniRoute resolves its SQLite driver at startup through a 5-step fallback chain: 1. Bundled better-sqlite3 (via dependencies in package.json) — fastest, native binary, installed by npm install when build tools are present. 2. Runtime-installed better-sqlite3 (in /.omniroute/runtime/) — installed laz",
|
||
headings: [
|
||
"Why this complexity?",
|
||
"Magic-byte validation",
|
||
"Checking the active driver",
|
||
"Manual control",
|
||
"Reference",
|
||
],
|
||
},
|
||
{
|
||
slug: "tunnels-guide",
|
||
title: "Tunnels Guide",
|
||
fileName: "ops/TUNNELS_GUIDE.md",
|
||
section: "Ops",
|
||
content:
|
||
"Source of truth: src/lib/{cloudflaredTunnel,ngrokTunnel,tailscaleTunnel}.ts, src/app/api/tunnels/ Last updated: 2026-05-13 — v3.8.0 OmniRoute can expose its local server (http://localhost:20128) to the public internet via three tunnel backends. This is useful for: - OAuth callbacks from cloud provid",
|
||
headings: [
|
||
"Backends at a glance",
|
||
"1. Cloudflare Tunnel (Quick Tunnel)",
|
||
"Enable / disable via REST",
|
||
"Optional env vars",
|
||
"2. ngrok",
|
||
"Prerequisites",
|
||
"Enable / disable via REST",
|
||
"3. Tailscale Funnel",
|
||
"Prerequisites",
|
||
"REST endpoints",
|
||
],
|
||
},
|
||
{
|
||
slug: "vm-deployment-guide",
|
||
title: "OmniRoute — Deployment Guide on VM with Cloudflare",
|
||
fileName: "ops/VM_DEPLOYMENT_GUIDE.md",
|
||
section: "Ops",
|
||
content:
|
||
"🌐 Languages: 🇺🇸 English 🇧🇷 Português (Brasil) 🇪🇸 Español 🇫🇷 Français 🇮🇹 Italiano 🇷🇺 Русский 🇨🇳 中文 (简体) 🇩🇪 Deutsch 🇮🇳 हिन्दी 🇹🇭 ไทย 🇺🇦 Українська 🇸🇦 العربية 🇯🇵 日本語 🇻🇳 Tiếng Việt 🇧🇬 Български 🇩🇰 Dansk 🇫🇮 Suomi 🇮🇱 עברית 🇭🇺 Magyar 🇮🇩 Bahasa Indonesia 🇰🇷 한국어 🇲\ud83c",
|
||
headings: [
|
||
"Prerequisites",
|
||
"1. Configure the VM",
|
||
"1.1 Create the instance",
|
||
"1.2 Connect via SSH",
|
||
"1.3 Update the system",
|
||
"1.4 Install Docker",
|
||
"1.5 Install nginx",
|
||
"1.6 Configure Firewall (UFW)",
|
||
"2. Install OmniRoute",
|
||
"2.1 Create configuration directory",
|
||
],
|
||
},
|
||
{
|
||
slug: "api-explorer",
|
||
title: "API Explorer",
|
||
fileName: "reference/API_REFERENCE.md",
|
||
section: "Reference",
|
||
content: "interactive try it live api explorer endpoint test request response curl example",
|
||
headings: ["Try It", "Endpoints"],
|
||
},
|
||
];
|
||
|
||
export const autoAllSlugs: string[] = [
|
||
"architecture",
|
||
"authz-guide",
|
||
"codebase-documentation",
|
||
"repository-map",
|
||
"resilience-guide",
|
||
"docker-guide",
|
||
"electron-guide",
|
||
"features",
|
||
"i18n",
|
||
"kiro-setup",
|
||
"pwa-guide",
|
||
"setup-guide",
|
||
"termux-guide",
|
||
"troubleshooting",
|
||
"uninstall",
|
||
"user-guide",
|
||
"api-reference",
|
||
"cli-tools",
|
||
"environment",
|
||
"free-tiers",
|
||
"provider-reference",
|
||
"a2a-server",
|
||
"agent-protocols-guide",
|
||
"cloud-agent",
|
||
"evals",
|
||
"gamification",
|
||
"mcp-server",
|
||
"memory",
|
||
"opencode",
|
||
"skills",
|
||
"webhooks",
|
||
"auto-combo",
|
||
"reasoning-replay",
|
||
"cli-token",
|
||
"cli-token-auth",
|
||
"compliance",
|
||
"error-sanitization",
|
||
"guardrails",
|
||
"public-creds",
|
||
"route-guard-tiers",
|
||
"stealth-guide",
|
||
"compression-engines",
|
||
"compression-guide",
|
||
"compression-language-packs",
|
||
"compression-rules-format",
|
||
"rtk-compression",
|
||
"coverage-plan",
|
||
"e2e-dashboard-shakedown-v3.8.0",
|
||
"fly-io-deployment-guide",
|
||
"proxy-guide",
|
||
"release-checklist",
|
||
"sqlite-runtime",
|
||
"tunnels-guide",
|
||
"vm-deployment-guide",
|
||
];
|