Перейти к содержимому
OmniRoute source

Repository Map (Русский)

Файл Назначение
README.md Маркетинговая посадочная страница + быстрый старт + матрица возможностей (см. также llm.txt)
CHANGELOG.md Журнал изменений для каждого релиза (автоматически создаётся навыком /version-bump-cc)
LICENSE Текст лицензии MIT
CLAUDE.md Правила проекта для агентов Claude Code (строгие правила, соглашения, сценарии)
AGENTS.md То же, что и CLAUDE.md, но для ИИ-агентов, отличных от Claude (Codex, Cursor и т. д.)
GEMINI.md Краткие правила для агентов на базе Gemini (подмножество CLAUDE.md)
CONTRIBUTING.md Руководство для участников: настройка, conventional commits, тестирование, процесс PR
SECURITY.md Политика сообщения об уязвимостях, поддерживаемые версии, модель угроз
CODE_OF_CONDUCT.md Contributor Covenant — требования к поведению участников сообщества
llm.txt Текстовая посадочная страница, оптимизированная для поисковых роботов LLM (SEO для ИИ-ассистентов)
package.json Манифест npm, скрипты, зависимости, движки, порог покрытия c8
package-lock.json Зафиксированное дерево зависимостей
tsconfig.json Корневая конфигурация TypeScript
tsconfig.typecheck-core.json Конфигурация проверки типов для ядра src/
tsconfig.typecheck-noimplicit-core.json Строгая проверка типов (noImplicitAny)
tsconfig.tsbuildinfo Кеш инкрементальной сборки TS (игнорируется Git)
next.config.mjs Конфигурация сборки Next.js 16 (автономный вывод)
next-env.d.ts Автоматически создаваемые Next.js типы переменных окружения
eslint.config.mjs Плоская конфигурация ESLint (правила для каждой области проекта)
prettier.config.mjs Правила форматирования Prettier
postcss.config.mjs Конфигурация PostCSS для конвейера Tailwind/CSS
playwright.config.ts Конфигурация сквозных тестов Playwright
vitest.config.ts Конфигурация Vitest (набор тестов по умолчанию)
vitest.mcp.config.ts Конфигурация Vitest для наборов тестов MCP-сервера / autoCombo / кеша
sonar-project.properties Конфигурация SonarQube/SonarCloud (качество кода)
Dockerfile Многоэтапная сборка Docker (builder → runner-base → runner-cli)
docker-compose.yml Конфигурация Compose для разработки с 4 профилями (base, cli, host, cliproxyapi) + сервис Redis
docker-compose.prod.yml Конфигурация Compose для рабочей среды (порт 20130, Redis, именованные тома)
.dockerignore Файлы, исключённые из контекста Docker
fly.toml Конфигурация развёртывания Fly.io (регион sin, порт 20128, том /data)
.env.example Шаблон файла переменных окружения (автоматически копируется в .env при первой установке)
.gitignore Шаблоны игнорирования Git
.npmignore Список исключений при публикации npm
.npmrc Конфигурация npm (реестр, политика lock-файлов)
.node-version Закреплённая версия Node (используется инструментами, совместимыми с nvm)
.nvmrc Закреплённая версия Node для nvm
eslint.complexity.config.mjs Конфигурация ESLint для контроля сложности (scripts/check/check-complexity.mjs --config)
eslint.sonarjs.config.mjs Конфигурация ESLint для правил SonarJS (когнитивная сложность / дублирование)
source.config.ts Конфигурация источника Fumadocs defineDocs (формирует .source/)
knip.json Конфигурация Knip — неиспользуемые файлы/экспорты/зависимости (для проверки мёртвого кода)
stryker.conf.json Конфигурация мутационного тестирования Stryker
.size-limit.json Конфигурация бюджета размера бандла size-limit
promptfooconfig.yaml Конфигурация оценки promptfoo
.gitleaks.toml Набор правил gitleaks для сканирования секретов
.zizmor.yml Конфигурация zizmor для проверки безопасности GitHub Actions
socket.yml Конфигурация Socket.dev для защиты цепочки поставок
news.json Локализованная лента объявлений v2; элемент запуска Radar поставляется неактивным
flake.nix / flake.lock Определение dev-оболочки Nix + файл блокировки
.env Локальные секреты (игнорируются Git — генерируется из .env.example)

Перемещено из корневого каталога в v3.8.26 (для упорядочивания):

  • → config/quality/: quality-baseline.json, complexity-baseline.json, duplication-baseline.json, file-size-baseline.json, test-discovery-baseline.json, dependency-allowlist.json, .license-allowlist.json и генерируемый файл quality-metrics.json (игнорируется Git). См. ## config/.

src/
├── app/ # App Router (страницы + маршруты API + страницы состояния + лендинг)
├── lib/ # Основные библиотеки / доменные модули (80 подкаталогов + ~70 файлов верхнего уровня)
├── domain/ # Чистая доменная логика (движок политик, резервные сценарии, стоимость, блокировка, comboResolver, оценка)
├── server/ # Только серверные модули (конвейер авторизации, cors, middleware аутентификации) — нельзя импортировать на клиенте
├── shared/ # Общий код для сервера и клиента там, где это безопасно (константы, типы, валидация, контракты, утилиты)
├── i18n/ # Конфигурация next-intl + JSON-файлы сообщений для каждой локали (42 локали)
├── middleware/ # Middleware Next.js (обогащение запросов, определение локали)
├── mitm/ # Ядро MITM-прокси: создание/установка сертификатов, обработчики, целевые сервисы, инспектор, маски, сквозная передача
│ ├── handlers/ # 9 классов обработчиков IDE-агентов, расширяющих MitmHandlerBase (antigravity, kiro, copilot, codex, cursor, zed, claudeCode, openCode, trae)
│ └── inspector/ # Слой перехвата трафика: буфер (кольцевой буфер в памяти), sseMerger, conversationNormalizer, kindDetector, contextKey, httpProxyServer, systemProxyConfig
├── models/ # Связующий код адаптера моделей (устаревшая прослойка)
├── scripts/ # Встроенные скрипты обслуживания (например, backfillAggregation)
├── sse/ # Устаревшие обработчики/сервисы SSE (chat.ts, chatHelpers.ts, services/auth.ts)
├── store/ # Устаревшее хранилище в памяти (постепенно заменяется на src/lib/db)
├── types/ # Общие файлы типов TS
├── instrumentation.ts # Хук телеметрии Next.js (браузер + edge)
├── instrumentation-node.ts # Инструментирование только для Node
└── proxy.ts # Входная прослойка HTTP-прокси
Путь Назначение
app/api/v1/ Публичный API, совместимый с OpenAI (~25 подмаршрутов: чат, дополнения, эмбеддинги, файлы, пакеты, аудио, изображения, видео, музыка, переранжирование, модерация, поиск, ws, агенты, учётные записи, провайдеры и т. д.)
app/api/v1beta/ Конечные точки API в стиле Gemini
app/api/playground/ Маршруты Playground Studio: improve-prompt/ (POST — переформулирование промпта с помощью LLM), presets/ (GET — список / POST — создание), presets/[id]/ (GET / PUT / DELETE) — см. docs/frameworks/PLAYGROUND_STUDIO.md
app/api/ (не v1) Маршруты управления/администрирования (~60 каталогов: провайдеры, комбинации, настройки, mcp, a2a, оценки, память, навыки, вебхуки, соответствие требованиям, отказоустойчивость, мониторинг, туннели, инструменты CLI и т. д.)
app/api/tools/agent-bridge/ REST API AgentBridge — 12 маршрутов (управление сервером, состояние агентов/DNS/сопоставления, обход, сертификат, вышестоящий центр сертификации). LOCAL_ONLY + SPAWN_CAPABLE. См. docs/frameworks/AGENTBRIDGE.md §7.
app/api/tools/traffic-inspector/ REST + WS API Traffic Inspector — более 16 маршрутов (запросы, сеансы, хосты, режимы захвата, экспорт, ws). LOCAL_ONLY + SPAWN_CAPABLE. См. docs/frameworks/TRAFFIC_INSPECTOR.md §8.
app/a2a/ Точка входа A2A JSON-RPC 2.0 (POST /a2a)
app/.well-known/agent.json/ Карточка агента A2A (обнаружение)
app/(dashboard)/dashboard/ Страницы интерфейса панели управления (более 50 разделов, ~118 файлов page.tsx: провайдеры, комбинации, настройки, память, навыки, вебхуки, оценки, аудит, пакетная обработка, кэш, затраты, состояние, система, активность и т. д.)
app/(dashboard)/dashboard/search-tools/ Интерфейс Search Tools Studio (3 вкладки: поиск/скрапинг/сравнение + SearchConceptCard + ProviderCatalog) — см. docs/frameworks/SEARCH_TOOLS_STUDIO.md
app/(dashboard)/dashboard/memory/ Memory Studio (план 21): page.tsx (оболочка с 3 вкладками), components/ (MemoryConceptCard, MemoryEngineStatus, EmbeddingSourceSelector, EditMemoryModal, RetrievePreview, QdrantConfigCard, RerankConfigCard), components/tabs/ (MemoriesTab, PlaygroundTab, EngineTab), hooks/ (useEngineStatus, useMemorySettings)
app/(dashboard)/dashboard/tools/agent-bridge/ Страница AgentBridge на панели управления — карточка сервера, 9 карточек агентов, мастер настройки, сопоставление моделей, список обхода. Интернационализация PT-BR + EN. См. docs/frameworks/AGENTBRIDGE.md.
app/(dashboard)/dashboard/tools/traffic-inspector/ Страница Traffic Inspector на панели управления — разделённый интерфейс DevTools, 7 вкладок с подробностями, 4 переключателя режимов захвата, средство записи сеансов, контекстная цветовая маркировка. Интернационализация PT-BR + EN. См. docs/frameworks/TRAFFIC_INSPECTOR.md.
app/(dashboard)/dashboard/activity/ Страница ленты активности (группа B): page.tsx (сервер) + ActivityFeedClient.tsx + components/{ActivityFeed,ActivityItem,DayHeader,EventTypeFilter}.tsx — см. docs/architecture/MONITORING_SECTIONS.md
app/(dashboard)/dashboard/costs/quota-share/ Страница совместного использования квот (группа B): QuotaSharePageClient.tsx + components/{PoolCard,DimensionBar,AllocationTable,BurnRateChart,QuotaConceptCard,CreatePoolModal,EditAllocationsModal}.tsx + hooks/{usePools,usePoolUsage,useLocalStoragePoolMigration}.ts
app/(dashboard)/dashboard/costs/quota-share/plans/ Страница конфигурации тарифного плана провайдера (группа B): page.tsx + ProviderPlanConfigClient.tsx — переопределение параметров квоты для каждого подключения
app/docs/ Встроенное средство просмотра документации (отображает docs/*.md)
app/landing/ Маркетинговая целевая страница
app/login/, forgot-password/, forbidden/ Страницы, связанные с аутентификацией
app/{400,401,403,408,429,500,502,503}/ Страницы ошибок HTTP
app/maintenance/, offline/, status/, privacy/, terms/, callback/ Статические страницы и страницы состояния
app/layout.tsx, page.tsx, manifest.ts, globals.css Корневой макет, главная страница, манифест PWA, глобальные стили CSS
app/error.tsx, global-error.tsx, not-found.tsx, loading.tsx Границы ошибок
Модуль Назначение
a2a/ Диспетчер задач протокола A2A, навыки (5), потоковая передача
acp/ Реестр CLI-агентов (локальное обнаружение CLI — см. docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
api/ Общие вспомогательные средства API (requireManagementAuth, валидация)
auth/ Сеансы, хеширование паролей, проверка токенов
batches/ Обработчики OpenAI Batches API
catalog/ Валидация каталога провайдеров с помощью Zod и определение возможностей
cloudAgent/ Облачные агенты (Codex Cloud, Devin, Jules) — см. docs/frameworks/CLOUD_AGENT.md
combos/ Определение комбинаций и вспомогательные средства изменения порядка
audit/ Вспомогательные средства ленты активности: highLevelActions.ts (список разрешённых действий и isHighLevelAction()), activityIcons.ts (сопоставление действия со значком/глаголом), timeline.ts (groupByDay/relativeTime) — см. docs/architecture/MONITORING_SECTIONS.md
compliance/ Журнал аудита и аудит провайдеров — см. docs/security/COMPLIANCE.md
compression/ Связующий код движка сжатия (движки находятся в open-sse/services/compression/)
config/ Вспомогательные средства конфигурации среды выполнения
db/ Более 120 доменных модулей БД и 168 миграций (для SQLite всегда используйте этот модуль)
quota/ Механизм совместного использования квот: dimensions.ts (типы/Zod), types.ts (интерфейс QuotaStore), sqliteQuotaStore.ts, redisQuotaStore.ts, storeFactory.ts, fairShare.ts, burnRate.ts, planResolver.ts, planRegistry.ts, saturationSignals.ts, enforce.ts, spendRecorder.ts — см. docs/routing/QUOTA_SHARE.md
radar/ Клиент каталога бесплатных моделей Radar: feedSchema.ts, pinnedKeys.ts, verify.ts, sync.ts, applyFeed.ts, index.ts (getRadarCatalog()) — см. docs/frameworks/RADAR.md
display/ Вспомогательные средства форматирования UI (стоимость, задержка и т. д.)
embeddings/ Вспомогательные средства сервиса эмбеддингов
env/ Разбор и проверка переменных окружения
evals/ Фреймворк оценки (наборы тестов, средство запуска, среда выполнения) — см. docs/frameworks/EVALS.md
guardrails/ Маскирование персональных данных, защита от инъекций в промпты, мост для обработки изображений — см. docs/security/GUARDRAILS.md
jobs/ Фоновые задачи (аналогичные cron)
memory/ Диалоговая память (гибридный RRF на базе SQLite FTS5 и sqlite-vec + Qdrant второго уровня) — см. docs/frameworks/MEMORY.md
memory/embedding/ Слой эмбеддингов с несколькими источниками: index.ts (резолвер), remote.ts, staticPotion.ts, transformersLocal.ts, cache.ts, types.ts (план 21)
memory/vectorStore.ts Обёртка для sqlite-vec v0.1.9 — полный перебор KNN + гибридный RRF (FTS5 + векторы, k=60). Ленивая инициализация, корректное снижение функциональности при недоступности sqlite-vec. (план 21)
memory/reindex.ts runReindexBatch() — обрабатывает в фоновом режиме записи памяти с needs_reindex=1; вызывается через POST /api/memory/reindex и при отложенном заполнении данных. (план 21)
monitoring/ Проверки работоспособности, отправка метрик
oauth/ Потоки OAuth/импорта для 22 модулей поставщиков (agy, antigravity, claude, cline, codebuddy-cn, codex, cursor, devin-desktop, ghe-copilot, github, gitlab-duo, grok-cli-oauth, grok-cli, kilocode, kimi-coding, kiro, openference, qoder, trae, xai-oauth, zed-hosted, zed)
plugins/ Реестр плагинов
promptCache/ Точки разрыва кеша промптов в стиле Anthropic
skills/ Фреймворк навыков (встроенные + маркетплейс + SkillsSH) — см. docs/frameworks/SKILLS.md
playground/ Общие вспомогательные модули Playground Studio: codeExport.ts (генератор curl/Python/TS), promptImprover.ts (конструктор метапромптов), streamMetrics.ts (чистые вычисления TTFT/TPS), types.ts (таблица цен) — см. docs/frameworks/PLAYGROUND_STUDIO.md
webhookDispatcher.ts Доставка вебхуков с HMAC — см. docs/frameworks/WEBHOOKS.md
cloudflaredTunnel.ts, ngrokTunnel.ts Менеджеры туннелей — см. docs/ops/TUNNELS_GUIDE.md
cloudSync.ts, initCloudSync.ts Необязательная облачная синхронизация состояния
localDb.ts Модуль реэкспорта для модулей БД (без логики — только реэкспорт)
cacheLayer.ts, idempotencyLayer.ts Кэширование запросов + идемпотентность
(ещё ~30 файлов верхнего уровня) Специализированные вспомогательные модули (logEnv, modelsDevSync, piiSanitizer и т. д.)

src/lib/db/ — База данных (122 модуля + 168 миграций)

Заголовок раздела «src/lib/db/ — База данных (122 модуля + 168 миграций)»
Подкаталог Назначение
db/core.ts Синглтон getDbInstance() с журналированием WAL
db/migrations/ Версионированные SQL-файлы (идемпотентные, транзакционные). 073_memory_vec.sql добавляет memory_vec_meta + столбец needs_reindex (план 21).
db/playgroundPresets.ts CRUD-модуль для предустановок Playground Studio (listPlaygroundPresets, getPlaygroundPreset, createPlaygroundPreset, updatePlaygroundPreset, deletePlaygroundPreset)
db/memoryVec.ts CRUD для memory_vec_meta (active_dim, embedding_signature, last_reset_at, vec_loaded) + markMemoryNeedsReindex, getMemoryReindexQueue и т. д. (план 21)
db/<domain>.ts По одному модулю на домен: провайдеры, комбинации, ключи API, пользователи, сессии, использование, auditlog, вебхуки, навыки, memory_entries, cloud_agent_tasks, evals*, reasoning_cache и т. д.
Модуль Назначение
policy.ts Механизм политик
fallbackPolicy.ts Дерево решений для резервного переключения
costRules.ts Правила расчёта стоимости
lockoutPolicy.ts Политика блокировки модели/подключения
tagRouter.ts Маршрутизация на основе тегов
comboResolver.ts Разрешение комбинаций (используется механизмом комбинаций)
modelAvailability.ts Проверка доступности для каждой модели
assessment/ Оценка модели (этап 1 RFC-AUTO-ASSESSMENT )
Модуль Назначение
authz/ Конвейер авторизации: classify → policies → enforce — см. docs/architecture/AUTHZ_GUIDE.md
cors/ Конфигурация CORS
auth/ Промежуточное ПО для сеансов
Модуль Назначение
constants/providers.ts 355 провайдеров с валидацией Zod (источник истины)
constants/cliTools.ts Реестр внешних инструментов CLI
constants/routingStrategies.ts 19 стратегий маршрутизации с приоритетами
constants/publicApiRoutes.ts Маршруты, требующие Bearer-аутентификации (в отличие от административной)
constants/upstreamHeaders.ts Список запрещённых заголовков для восходящих запросов
validation/schemas.ts ~80 схем Zod (единый источник истины для контрактов API)
validation/helpers.ts Вспомогательные функции валидации Zod (validateBody и т. д.)
types/ Общие типы TS
contracts/ Публичные контракты API (используются через files: в package.json)
utils/circuitBreaker.ts Предохранитель провайдера (см. docs/architecture/RESILIENCE_GUIDE.md)
utils/apiAuth.ts Валидация ключей API, проверка областей доступа
utils/fetchTimeout.ts Обёртки для тайм-аутов/прерывания восходящих запросов fetch
utils/releaseNotes.ts Парсер закрытых объявлений v2/legacy, локализация и скрытие по ID

open-sse/ — Рабочее пространство потокового движка

Заголовок раздела «open-sse/ — Рабочее пространство потокового движка»

Отдельное рабочее пространство npm (@omniroute/open-sse). Обрабатывает запросы и выполнение операций провайдерами.

open-sse/
├── handlers/ # 16 файлов (12 обработчиков + 4 вспомогательных модуля): chatCore, responsesHandler, embeddings, audio, image, video, music, rerank, moderations, search и т. д.
├── executors/ # 67 исполнителей для конкретных провайдеров (расширяют BaseExecutor)
├── translator/ # Конвертеры форматов (9 для запросов, 9 для ответов, 9 вспомогательных)
├── transformer/ # Responses API ↔ Chat Completions (TransformStream)
├── services/ # ~80+ сервисных модулей (combo, accountFallback, autoCombo, reasoningCache, claude code/chatgpt stealth, modelDeprecation, taskAwareRouter, workflowFSM и т. д.)
├── mcp-server/ # Сервер MCP (110 инструментов, 3 транспорта, 33 области доступа)
├── config/ # Реестры провайдеров/моделей, конфигурация заголовков, псевдонимы моделей
├── utils/ # Клиент TLS, proxy fetch/dispatcher, сетевые вспомогательные модули
├── index.ts # Точка входа рабочего пространства
├── package.json # Манифест рабочего пространства
├── tsconfig.json # Конфигурация TS рабочего пространства
└── types.d.ts # Объявления типов рабочего пространства
Путь Назначение
server.ts Жизненный цикл сервера MCP (транспорты stdio + HTTP)
httpTransport.ts Транспорты HTTP Streamable + SSE (/api/mcp/sse, /api/mcp/stream)
audit.ts Журналирование аудита в таблицу mcp_tool_audit
scopeEnforcement.ts Проверка области доступа для каждого инструмента
runtimeHeartbeat.ts Отправка сигнала работоспособности в DATA_DIR/runtime/mcp-heartbeat.json
descriptionCompressor.ts Сжатие метаданных описаний инструментов для экономии контекста
schemas/tools.ts 36 определений базовых инструментов + области доступа
tools/advancedTools.ts Реализации расширенных инструментов
tools/memoryTools.ts 3 инструмента памяти (поиск/добавление/очистка)
tools/skillTools.ts 4 инструмента навыков (список/включение/выполнение/выполнения)
tools/compressionTools.ts 5 инструментов сжатия
README.md Внутренний файл README сервера MCP (перекрёстная ссылка из docs/frameworks/MCP-SERVER.md)

Файл Назначение
main.js Основной процесс Electron (BrowserWindow, встроенный сервер Next.js, системный трей, автоматическое обновление)
preload.js Мост IPC (contextBridge → window.omniroute)
package.json Конфигурация electron-builder + зависимости Electron 41 + electron-builder 26.10
assets/ Значки приложения (Windows .ico, macOS .icns, Linux .png)
dist-electron/ Результаты сборки (игнорируются Git)
types.d.ts Объявления типов для моста рендерера
README.md Внутренний файл README Electron (см. также docs/guides/ELECTRON_GUIDE.md)

Файл Назначение
omniroute.mjs Основная точка входа CLI — omniroute serve, omniroute setup, omniroute doctor, omniroute providers, omniroute combos и т. д.
reset-password.mjs Автономный CLI для сброса пароля
cli/commands/setup.mjs Интерактивный и неинтерактивный мастер настройки
cli/commands/doctor.mjs Диагностика состояния системы (более 8 проверок)
cli/commands/providers.mjs Просмотр списка, тестирование и проверка поставщиков
cli/{args,data-dir,encryption,io,provider-catalog,provider-store,provider-test,settings-store,sqlite}.mjs Вспомогательные модули CLI
cli/tray/tray.ts Интеграция с системным треем (кроссплатформенная: NotifyIcon в Windows, systray2 в macOS/Linux)
cli/tray/tray.ps1 Бэкенд NotifyIcon на PowerShell (Windows, без новых двоичных файлов)
cli/tray/autostart.ts Кроссплатформенный автозапуск (LaunchAgent / .desktop / реестр)
cli/runtime/sqliteRuntime.mjs Пятиэтапная цепочка разрешения драйвера SQLite (встроенный → среда выполнения → отложенная установка → node:sqlite → sql.js)
cli/runtime/magicBytes.mjs Проверка сигнатурных байтов двоичных файлов (ELF / Mach-O / универсальный Mach-O / PE)
cli/runtime/index.mjs warmUpRuntimes() — предварительно разрешает драйверы при postinstall / первом запуске
nodeRuntimeSupport.mjs Проверка поддерживаемой версии Node.js при установке

Файл Назначение
skills/omniroute*/SKILL.md 10 манифестов навыков для внешних ИИ-агентов (Claude Desktop, ChatGPT, Cursor, Cline)

Скрипт Назначение
run-next.mjs Средство запуска в режиме разработки/обычном режиме с загрузкой переменных окружения
build-next-isolated.mjs Автономная сборка (автономный режим Next.js 16)
prepublish.ts Подготовка пакета перед npm pack
postinstall.mjs Автоматическое создание .env из .env.example при первой установке
sync-env.mjs Повторная синхронизация ключей .env с .env.example
check-cycles.mjs Обнаружение циклических зависимостей
check-route-validation.mjs Проверка наличия валидации Zod во всех маршрутах API
check-t11-any-budget.mjs Обеспечение соблюдения явного лимита any для каждого файла
check-docs-sync.mjs Проверка синхронизации версий документации (существующая проверка перед коммитом)
check-env-doc-sync.mjs НОВОЕ: перекрёстная проверка переменных окружения в коде, .env.example и ENVIRONMENT.md
check-docs-counts-sync.mjs НОВОЕ: проверка соответствия документации количественных показателей (исполнители, стратегии, OAuth, навыки A2A)
check-deprecated-versions.mjs НОВОЕ: выявление устаревших версий/дат в документации
check-supported-node-runtime.ts Проверка поддержки текущей версии Node
check-pr-test-policy.mjs Обеспечение соблюдения правила «тесты обязательны» при изменениях рабочего кода
gen-provider-reference.ts НОВОЕ: автоматическое создание docs/reference/PROVIDER_REFERENCE.md из каталога
i18n/generate-multilang.mjs Перевод строк интерфейса и документации через Google Translate
i18n_autotranslate.py Конвейер перевода документации на основе LLM
validate_translation.py Проверка перевода для каждой локали
check_translations.py Проверка ключей i18n в коде
run-playwright-tests.mjs Средство запуска E2E-тестов Playwright
run-protocol-clients-tests.mjs Средство запуска E2E-тестов MCP/A2A
run-ecosystem-tests.mjs Тесты экосистемы (интеграции с провайдерами)
test-report-summary.mjs Создание сводки покрытия в формате Markdown
smoke-electron-packaged.mjs Дымовое тестирование упакованной сборки Electron
native-binary-compat.mjs Проверка соответствия нативных зависимостей (better-sqlite3) версии Node в Electron
validate-pack-artifact.ts Проверка результата упаковки npm
responses-ws-proxy.mjs WebSocket-мост для Codex Responses API
v1-ws-bridge.mjs WebSocket-мост для конечной точки /api/v1/ws
standalone-server-ws.mjs Средство запуска автономного WS-сервера
system-info.mjs Вывод информации о системе/среде выполнения для технической поддержки
healthcheck.mjs Однократная проверка работоспособности (используется Docker HEALTHCHECK)
uninstall.mjs Скрипт полного удаления

docs/ — Публичная документация (7 корневых файлов + 17 подкаталогов)

Заголовок раздела «docs/ — Публичная документация (7 корневых файлов + 17 подкаталогов)»
Документ Назначение
ARCHITECTURE.md Высокоуровневая архитектура, карта подсистем, интерфейс панели управления
CODEBASE_DOCUMENTATION.md Инженерный справочник: каталоги, модули, соглашения
FEATURES.md Матрица функций с обзором ключевых возможностей v3.8
USER_GUIDE.md Руководство пользователя (настройка, модели, комбинации, CLI, аудио и т. д.)
API_REFERENCE.md Справочник по конечным точкам API с моделью аутентификации
openapi.yaml Спецификация OpenAPI 3.0 (121 маршрут)
SETUP_GUIDE.md Способы установки (npm, npx, Docker, Electron, Termux, из исходного кода)
ENVIRONMENT.md Все переменные окружения (документировано ~800, ~3 050 строк в .env.example)
TROUBLESHOOTING.md Распространённые ошибки + известные проблемы v3.8.0
RELEASE_CHECKLIST.md Полный процесс выпуска (навыки, husky, conventional commits, развёртывание)
COVERAGE_PLAN.md Цели покрытия и текущее состояние
FREE_TIERS.md Подобранные провайдеры с бесплатными тарифами (48+ бесплатных + 11 OAuth)
CLI-TOOLS.md Интеграции с внешними CLI + внутренний CLI OmniRoute
I18N.md Архитектура i18n, добавление языка, 42 локали
UNINSTALL.md Шаги по полному удалению
PROVIDER_REFERENCE.md Автоматически создаваемый каталог из 355 провайдеров (повторная генерация: npm run gen:provider-reference)
Документ Назначение
MCP-SERVER.md Сервер MCP: 110 инструментов, 3 транспорта, 33 области, конечные точки REST
A2A-SERVER.md A2A v0.3: JSON-RPC, 6 навыков, вспомогательные средства REST, карточка агента
AGENT_PROTOCOLS_GUIDE.md Единое руководство: A2A, ACP и облачные агенты
CLOUD_AGENT.md Оркестрация Codex Cloud / Devin / Jules
SKILLS.md Система навыков (встроенные + маркетплейс + SkillsSH + песочница)
RADAR.md Наложение каталога бесплатных моделей Radar (RADAR_ENABLED, по умолчанию отключено)
MEMORY.md Система памяти (SQLite FTS5 + Qdrant)
EVALS.md Система оценки (наборы, запуски, рубрики)
GUARDRAILS.md Маскирование PII, защита от инъекций промптов, мост для компьютерного зрения
COMPLIANCE.md Журнал аудита, хранение данных, отказ от журналирования через noLog
WEBHOOKS.md Доставка вебхуков с подписью HMAC
REASONING_REPLAY.md Гибридный кэш памяти/SQLite для reasoning_content
AUTHZ_GUIDE.md Конвейер авторизации (classify → policies → enforce)
RESILIENCE_GUIDE.md Автоматический выключатель + период восстановления + блокировка модели
docs/security/STEALTH_GUIDE.md (только в git) Цифровые отпечатки TLS (JA3/JA4), Claude Code CCH, сертификат MITM
AUTO-COMBO.md Движок Auto Combo (оценка по 16 факторам, 6 наборов режимов, виртуальная фабрика)
Документ Назначение
COMPRESSION_GUIDE.md Обзор режимов сжатия + план развития
COMPRESSION_ENGINES.md Движки Caveman + RTK, контракт реестра
COMPRESSION_RULES_FORMAT.md JSON-схема набора правил Caveman
COMPRESSION_LANGUAGE_PACKS.md Перечень наборов правил для каждого языка
RTK_COMPRESSION.md Декларативный конвейер RTK (49 фильтров)
Документ Назначение
DOCKER_GUIDE.md Сборка Docker, профили (base/cli/host/cliproxyapi), сайдкар Redis
VM_DEPLOYMENT_GUIDE.md Развёртывание на типовой VM/VPS (Ubuntu/Debian + nginx + systemd)
FLY_IO_DEPLOYMENT_GUIDE.md Развёртывание на Fly.io (в настоящее время только на китайском)
TERMUX_GUIDE.md Работа без графического интерфейса на Android через Termux
PWA_GUIDE.md Установка Progressive Web App + сервис-воркер
ELECTRON_GUIDE.md Сборка + подписание + распространение настольного приложения
TUNNELS_GUIDE.md Cloudflared + ngrok + Tailscale Funnel
PROXY_GUIDE.md Четырёхуровневый исходящий прокси + маркетплейс 1proxy
Подкаталог Назначение
docs/i18n/ Локализованные переводы документации (41 локаль)
docs/screenshots/ Изображения для руководств
_tasks/superpowers/ Планы/спецификации из superpowers (writing-plans/brainstorming) + исследования — изолированный репозиторий с отдельным версионированием, игнорируемый Git в основном дереве. См. CLAUDE.md → «Planning & Research Artifacts».

Подкаталог Тип Средство запуска
tests/unit/ Модульные тесты (~4 800 файлов, самые быстрые) Встроенное средство запуска тестов Node
tests/integration/ Интеграционные тесты нескольких модулей и БД Встроенное средство запуска тестов Node (1 поток)
tests/e2e/ E2E-тесты интерфейса и рабочих процессов Playwright
tests/e2e/protocol-clients.test.ts E2E-тесты MCP и A2A с реальными клиентами Специализированные клиенты протоколов
tests/e2e/ecosystem.test.ts Интеграция с провайдерами (с доступом к сети) Встроенное средство запуска тестов Node

Путь Назначение
public/ (корень) Значки сайта, robots.txt, манифест, сервис-воркер, маркетинговые изображения
public/providers/ Логотипы провайдеров в форматах PNG/SVG (используются в панели управления)

config/ — Статические конфигурации и состояние проверок качества

Заголовок раздела «config/ — Статические конфигурации и состояние проверок качества»

Поставляемые шаблоны конфигурации и зафиксированные базовые показатели проверок качества (перемещены сюда из корня репозитория в v3.8.26, чтобы не перегружать корневой каталог).

Путь Назначение
config/i18n.json Список локалей и метаданные (канонический источник количества локалей — 42)
config/i18n-schema.json Схема JSON для проверки i18n.json
config/payloadRules.json Правила очистки входящих данных от вышестоящих систем
config/quality/quality-baseline.json Базовый уровень многофакторного храпового механизма (scripts/quality/check-quality-ratchet.mjs)
config/quality/complexity-baseline.json Зафиксированный базовый уровень сложности ESLint (check-complexity.mjs)
config/quality/duplication-baseline.json Зафиксированный базовый уровень дублирования jscpd (check-duplication.mjs)
config/quality/file-size-baseline.json Зафиксированный базовый размер для каждого файла (check-file-size.mjs)
config/quality/test-discovery-baseline.json Зафиксированный базовый уровень потерянных тестов (check-test-discovery.mjs)
config/quality/dependency-allowlist.json Список разрешённых зависимостей (check-deps.mjs)
config/quality/.license-allowlist.json Список разрешённых лицензий SPDX (check-licenses.mjs)
config/quality/quality-metrics.json Временные собранные метрики (создаётся collect-metrics.mjs; игнорируется Git)

Путь Назначение
.github/workflows/ Рабочие процессы GitHub Actions для CI/CD (линтинг, тесты, покрытие, релиз)
.github/ISSUE_TEMPLATE/ Шаблоны сообщений об ошибках и запросов функций
.github/pull_request_template.md Шаблон PR
.github/dependabot.yml Конфигурация обновления зависимостей

Файл Назначение
pre-commit Запускает lint-staged + check-docs-sync + check:any-budget:t11
pre-push В настоящее время отключён (закомментирован). Запускайте npm run test:unit вручную.
_/ Внутренние компоненты Husky

Файл Назначение
commands/version-bump-cc.md /version-bump-cc — повышение версии + автосписок изменений
commands/generate-release-cc.md /generate-release-cc — полный процесс выпуска релиза
commands/deploy-vps-{local,akamai,both}-cc.md Развёртывание на VPS
commands/capture-release-evidences-cc.md Запись новых функций в браузере в формате WebP
commands/review-{prs,discussions}-cc.md Разбор PR и обсуждений GitHub
commands/{review-issues,implement-features}-cc.md Рабочие процессы для задач
settings.local.json Настройки Claude Code для конкретного проекта

.agents/ — Универсальные рабочие процессы агентов (Codex / Cursor / и т. д.)

Заголовок раздела «.agents/ — Универсальные рабочие процессы агентов (Codex / Cursor / и т. д.)»
Путь Назначение
workflows/*-ag.md 11 определений рабочих процессов (зеркало .claude/commands/)
skills/<name>/SKILL.md 9 определений навыков с примечаниями по выполнению в Codex

Примечание: Рабочие процессы и команды в настоящее время побайтово идентичны. Если .agents/ предназначен для другой среды выполнения агентов (Codex), варианты должны существенно различаться.


_ideia/, _mono_repo/, _references/, _tasks/ — Вне основного дерева

Заголовок раздела «_ideia/, _mono_repo/, _references/, _tasks/ — Вне основного дерева»

Эти каталоги с префиксом подчёркивания содержат материалы, не входящие в поставку:

  • _ideia/ — заметки по проектированию (категории defer / notfit / viable)
  • _mono_repo/ — исторические подпроекты (omnirouteCloud, omnirouteSite, vscode-extension)
  • _references/ — доступные только для чтения клоны связанных OSS-проектов (LiteLLM, 9router, ClawRouter, CLIProxyAPI, modelrelay, new-api и т. д.) для перекрёстной сверки во время разработки
  • _tasks/ — неформальные файлы отслеживания задач для каждого релиза

Не включаются в вывод npm pack. См. .npmignore.


Путь Назначение
node_modules/ Зависимости npm
.next/ Результаты сборки Next.js
coverage/ Отчёты c8 о покрытии
logs/ Журналы выполнения
package/ Промежуточные файлы npm pack
.playwright-mcp/ Артефакты тестов Playwright MCP
.issues/ Локальный кеш задач
tsconfig.tsbuildinfo Инкрементный кеш TS

  • Новый участник? Прочитайте CONTRIBUTING.md → CLAUDE.md → docs/architecture/ARCHITECTURE.md → docs/architecture/CODEBASE_DOCUMENTATION.md.
  • Добавляете провайдера? Следуйте разделу docs/architecture/ARCHITECTURE.md § Adding a New Provider и сверьтесь с docs/reference/PROVIDER_REFERENCE.md.
  • Добавляете маршрут? См. docs/architecture/ARCHITECTURE.md § Adding a New API Route и src/shared/validation/schemas.ts.
  • Добавляете инструмент MCP? См. docs/frameworks/MCP-SERVER.md § Adding a Tool.
  • Добавляете навык A2A? См. docs/frameworks/A2A-SERVER.md § Adding a New Skill.
  • Запускаете локально? См. docs/guides/SETUP_GUIDE.md.
  • Выполняете развёртывание? См. docs/guides/DOCKER_GUIDE.md / docs/ops/VM_DEPLOYMENT_GUIDE.md / docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md.
  • Выпускаете релиз? См. docs/ops/RELEASE_CHECKLIST.md (и навык Claude Code /generate-release-cc).

Исходный код OmniRoute (a58000c7685f)

HagiCode

HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.

Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

Главный экран HagiCode в светлой теме
  • SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
  • EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
  • FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.
Перейти на HagiCode