--- name: OmniRoute AI Gateway description: OmniRoute v3.6.5 на LXC 132 (10.0.0.179) — AI-шлюз для 60+ LLM провайдеров, порт 20128 type: project originSessionId: 9f26284f-db92-456f-813d-fd8210b7d7b6 --- ## OmniRoute v3.6.5 (LXC 132, 10.0.0.179) > ⚠️ **2026-06-19: провайдер Kiro (`kr/*`) потерял креды** — любой `kr/...` отдаёт `400 "No credentials for provider: kiro"`. Бьёт по fallback-цепочкам всех агентов, где стоял `kr/claude-sonnet-4.5` (German переведён на `cx/gpt-5.5`; проверить openclaw/swarmclaw). Лечение — переподключить Kiro-провайдер в дашборде OmniRoute. Что точно живо на 2026-06-19: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-sonnet-4-6` (все Max — общий кап, периодический 400 «out of extra usage»), `cx/gpt-5.5` (Codex, отдельный провайдер). Мертво: `kr/*`, `cx/gpt-5.4`, `gemini-cli/*` (403), `gh/*` (500). - **Путь**: /root/OmniRoute/, Node.js 22, Next.js 16.2, git repo (github.com/diegosouzapw/OmniRoute) - **Dashboard**: http://10.0.0.179:20128, пароль: 1qaz!QAZ - **API**: http://10.0.0.179:20128/v1 - **API Key**: sk-225e902dc95ff192-6bdad7-3ec8cdc6 - **SQLite DB**: /root/.omniroute/storage.sqlite - **Service**: omniroute.service (systemd, enabled), запускает **npx-кэш** (НЕ git repo) - **ExecStart**: `/usr/bin/node /root/.npm/_npx//node_modules/omniroute/app/server.js` (hash меняется при обновлении) - **Конфиг**: /root/OmniRoute/.env (секреты сгенерированы) ### Инцидент 2026-06-16: disk-full + Claude OAuth протух (всё на cc/* легло) Симптом: агенты SwarmClaw (Бенелюкс и др.) + Антошка молчат, `cc/claude-opus-4-8` → 500/504. **Два корня:** 1. **Диск LXC 132 = 100%.** OmniRoute делает **бэкап БД ~300МБ на КАЖДУЮ запись** в `/root/.omniroute/db_backups/` → за время съел 50G → `SqliteError: database or disk is full` → 500. Лечение: чистка `db_backups` (оставить 2-3), старых `storage.sqlite.bak`/`call_logs`, `journalctl --vacuum`; диск расширен `pct resize 132 rootfs +50G` → **100G**. ⚠️ Backup-спам надо ограничить (cron-чистка `db_backups`), иначе 100G тоже забьётся. ⚠️ local-lvm thin pool физически на 90% — не расширять бесконечно. 2. **Claude Max OAuth протух** (`invalid_grant: Refresh token not found`, `claude | none active`). **Reconnect (процедура):** - `curl -s -c /tmp/cj -X POST -d '{"password":"1qaz!QAZ"}' -H 'Content-Type: application/json' http://localhost:20128/api/auth/login` - `curl -b /tmp/cj http://localhost:20128/api/oauth/claude/authorize` → отдаёт **authorize-URL** `https://claude.ai/oauth/authorize?...&code_challenge=...&state=...` - Олег открывает URL → логин в **Max-аккаунт** → Authorize → Anthropic redirect на `platform.claude.com/oauth/code/callback?code=...&state=...` показывает код. - Обмен кода завершается (UI/redirect) → `claude active`. Проверка: тест `cc/claude-opus-4-8` → 200. ### SSH доступ к LXC 132 - **Прямой SSH (root@10.0.0.179) НЕ РАБОТАЕТ** — пароль 1qaz!QAZ не подходит, ключ claude-code отсутствует - **Доступ через Proxmox**: `sshpass -p '1qaz!QAZ' ssh root@10.0.0.250 "pct exec 132 -- bash -c 'COMMAND'"` — РАБОТАЕТ - **Hostname**: code-server ### Обновление OmniRoute (npx способ — используется сервисом) 1. Остановить: `pct exec 132 -- systemctl stop omniroute` 2. Удалить старый npx-кэш: `rm -rf /root/.npm/_npx/` 3. Установить: `npx omniroute@ --version` (создаст новый кэш) 4. Обновить путь в `/etc/systemd/system/omniroute.service` ExecStart на новый hash 5. `systemctl daemon-reload && systemctl start omniroute` ### Обновление git-репозитория (отдельно, для разработки) 1. `cd /root/OmniRoute && git pull origin main && npm install && npm run build` ### Подключённые провайдеры (2026-04-11) | Провайдер | Аккаунт | Модели | Статус | |-----------|---------|--------|--------| | Codex (OpenAI) | batlaew@gmail.com (free plan) | gpt-5.4, gpt-5.4-mini | Работает, refresh проблема | | Claude | OAuth | claude-opus-4-6, sonnet | Токен есть, refresh проблема | | Kiro (AWS) | OAuth | claude-sonnet-4.5, haiku | Токен есть, refresh проблема | ### Использование - Prefix модели: `cx/gpt-5.4` (Codex), `cc/claude-opus-4-6` (Claude) - 181 модель доступна через API (на 2026-04-14) - Codex OAuth: callback на localhost:1455 (нужен SSH-туннель для удалённого доступа) - Token refresh: требует периодическую перелогинку OAuth ### Важно - OAuth Codex привязан к localhost:1455 — для удалённого доступа: `ssh -L 20128:localhost:20128 -L 1455:localhost:1455 root@10.0.0.179` - Встроенные агенты: Droid и Assistant (Dashboard → Agents) - CLI tools конфиг: Dashboard → CLI Tools