diff --git a/HANDOFF-lilia.md b/HANDOFF-lilia.md new file mode 100644 index 0000000..b39afb1 --- /dev/null +++ b/HANDOFF-lilia.md @@ -0,0 +1,31 @@ +# HANDOFF → агент Лилия (codebase-memory-mcp) + +## Взаимосвязь двух агентов +- **Песочница (я)** сделал **СТРУКТУРНЫЙ слой**: клон 45 репо, `MAP.md` на каждый (назначение, Mermaid-модули, маршруты, связи грепом) + `INDEX.md` + межсервисный граф. Метод — греп/анализ, без LLM-семантики. +- **Лилия (INFRA-агент с codebase-memory-mcp)** делает **СЕМАНТИЧЕСКИЙ слой** поверх: точность и глубина. + +## Что осталось Лилии — по КАЖДОМУ репо +1. `index` репозитория через codebase-memory-mcp. +2. `get_architecture` — точные модули/слои (заменить/дополнить Mermaid в MAP.md). +3. **dead-code detection** — реальные кандидаты на удаление (у меня только пометки-предположения). +4. **cross-service links** — точные HTTP-вызовы между сервисами (у меня — упоминания грепом). +5. Топ-20 функций по входящим вызовам (ядро проекта). +6. Снапшот `graph.db.zst` рядом с MAP.md. + +## Как забрать +- `git clone project-maps` → по каждой папке дополнить секции в `MAP.md` (## Архитектура / ## Тех-долг / добавить ## Ядро (топ-функций)) + положить `graph.db.zst` → `git commit`. +- Точка синхронизации: репо **`agent-sync`** (сюда же кладу этот handoff) + `project-maps`. + +## Приоритет (по LOC/важности) +- egorin (9693 LOC) +- servaki-monitor (8741 LOC) +- cascade (6110 LOC) +- gate-web-relay (5230 LOC) +- Heritage (3105 LOC) +- mpo-design-system (2042 LOC) +- banya-bot (1875 LOC) +- smartlight-panel (1665 LOC) +- mpo-inform-site (983 LOC) +- ops-configs (981 LOC) +- KPgenerator (731 LOC) +- servaki-gps-monitoring (606 LOC) diff --git a/INDEX.md b/INDEX.md index 8504db2..e16df94 100644 --- a/INDEX.md +++ b/INDEX.md @@ -1,122 +1,145 @@ -# Project Maps — 2026-07-11 +# INDEX — карты проектов Gitea -> 45 репо проанализировано | 0 ошибок +> Структурный слой (греп-анализ, песочница). Семантику (call-graph/dead-code/graph.db.zst) дополняет Лилия через codebase-memory-mcp — см. `HANDOFF-lilia.md`. -## Сводная таблица +Репозиториев: **45** · 10 карт LLM-анализ, 35 — авто-скрипт (лимит сессии на середине). -| Репо | Язык | LOC | Маршруты | Внешние вызовы | Техдолг | Назначение | -|------|------|-----|----------|----------------|---------|------------| -| servaki-monitor | TypeScript | 8741 | 22 | 6 | 0 | Единая мультиарендная смарт-панель: энергомониторинг, умный дом, GPS | -| egorin | TypeScript | 9693 | 19 | 6 | 1 | Servaki Monitor: GPS-трекинг, энергомониторинг, охранный ПЦН, RBAC | -| cascade | HTML | 6110 | 17 | 8 | 11 | Каскадный VPN-сервис RU→FI→NL/DE, React-панель, Python-сервисы | -| Afanasov-smart | JavaScript (Node.js + React) | 5325 | 22 | 2 | 0 | Веб-панель умного освещения и автоматики для Wiren Board через MQTT | -| gate-web-relay | Python | 3157 | 29 | 3 | 1 | Управление воротами через Ethernet-реле SR-201, WSS-туннель к VPS | -| Heritage | JavaScript | 3105 | 17 | 0 | 0 | Семейное родословное дерево: визуализация, импорт/экспорт JSON/CSV/GEDCOM | -| mpo-design-system | Python | 2042 | 0 | 4 | 3 | База знаний и инструментарий дизайн-системы МПО-Информ, BM25-поиск | -| ops-configs | HTML | 1900 | 0 | 2 | 0 | Хранилище резервных копий конфигураций VPN/mesh-флота servaki.online | -| banya-bot | JavaScript (Node.js) | 1875 | 10 | 4 | 3 | Telegram-бот обратного отсчёта с прогнозом погоды и Web App | -| smartlight-panel | JavaScript | 1665 | 13 | 1 | 1 | Веб-панель управления освещением Wiren Board (WB-MDM3, WB-MR6C) | -| delodecor | HTML/CSS/JavaScript | 1240 | 6 | 4 | 0 | Статический лендинг мастерской изделий из дерева «DeloDecor» | -| mpo-inform-site | JavaScript | 983 | 18 | 3 | 1 | Корпоративный сайт МПО-Информ, SSG Astro 4, 44 страницы, FTP-деплой | -| servaki-gps-monitoring | Python | 606 | 0 | 2 | 0 | Аналитика устойчивости GPS-инжеста, Монте-Карло симуляция | -| mcp-hikvision | Python | 581 | 11 | 4 | 2 | MCP-сервер управления NVR/камерами Hikvision через ISAPI + Яндекс OAuth | -| leronx | Python | 317 | 0 | 5 | 0 | AI-контент пайплайн: Replicate FLUX, Яндекс.Диск, видеопайплайн | -| KPgenerator | JavaScript | 731 | 16 | 5 | 0 | Генерация КП для охранных систем: n8n, Ollama, PostgreSQL, PDF, Telegram | -| tempelhoff-pbx | SQL | 683 | 8 | 5 | 0 | Резервная копия конфигурации MikoPBX для объекта Tempelhoff | -| claude-memory | Markdown | 155 | 5 | 6 | 0 | Долговременная память Claude-агента: memory-nodes, инфраструктура, контекст | -| agent-sync | Shell | 196 | 7 | 1 | 0 | POSIX sh CLI для обмена задачами между агентами через Nextcloud WebDAV | -| orbit-kameliya | Caddyfile | 232 | 7 | 5 | 0 | Telegram-бот n8n: Replicate FLUX/kling, faster-whisper, MinIO, Grafana | -| agro-panel | HTML | 259 | 2 | 4 | 4 | Single-file HTML-панель управления 9 локациями винодельни Темпельхоф | -| cascade-de-ru | none | 0 | 0 | 0 | 0 | Документация тройного каскада AmneziaWG: .conf-файлы и QR-коды | -| home-router | Markdown | 0 | 3 | 10 | 0 | Резервная копия конфигурации роутера Keenetic Giga, журнал изменений | -| homeassistant-backup | none | 0 | 0 | 0 | 0 | Заготовка резервной копии конфигурации Home Assistant (Wiren Board) | -| lilia-ee-media-router | Markdown | 0 | 5 | 10 | 0 | Документация провижининга Keenetic Air → mesh1 AmneziaWG через EE-2 | -| matrix-migration | Caddyfile | 0 | 11 | 4 | 0 | Документация миграции Matrix с camellia на KZ-ноду | -| media-projects | Markdown | 0 | 0 | 0 | 0 | Журнал видеопроектов Remotion: реестр MP4-роликов на Яндекс.Диске | -| mesh1-status | Markdown | 0 | 0 | 0 | 0 | Статусный отчёт AmneziaWireGuard-меша mesh1 (25 нод, hub finik) | -| mesh2-status | Markdown | 0 | 4 | 7 | 0 | Документация агро-mesh-сети mesh2 (tempelhoff.ru), топология AmneziaWG | -| orbit-bot | Markdown | 0 | 5 | 5 | 0 | Документационный архив ORBIT Studio Bot: n8n, whisper, Ollama, Replicate | -| router-koval | Markdown | 0 | 6 | 10 | 0 | Операционная документация DE-Koval-SSD и роутера Keenetic KN-3910 | -| site-delodecor-ru | HTML | 0 | 1 | 2 | 0 | Статический сайт-визитка DeloDecor (delodecor.ru), Яндекс.Метрика | -| site-eba-sh-ru | HTML (статический) | 0 | 1 | 2 | 0 | Документационная карточка сайта eba-sh.ru (умный дом Wiren Board/Orbita) | -| site-egida1-ru | HTML (static) | 0 | 2 | 2 | 0 | Документационная карточка egida1.ru (Эгида, видеонаблюдение, Краснодар) | -| site-ermashova26-ru | HTML (static) | 0 | 0 | 2 | 0 | Персональный сайт логопеда Ермашовой (ermashova26.ru), метаданные | -| site-idea-s-ru | HTML (static) | 0 | 0 | 2 | 0 | Документационная карточка idea-s.ru (системы безопасности, КМВ) | -| site-mpo-inform-ru | none | 0 | 0 | 2 | 0 | Документационное репо mpo-inform.ru, ссылка на german/mpo-inform-site | -| site-mpoinform-ru | HTML (static) | 0 | 1 | 2 | 0 | Документационная карточка mpoinform.ru (МПО-ИНФОРМ, IT-решения) | -| site-servaki-online | HTML (static) | 0 | 6 | 2 | 0 | Публичный сайт «Сервакисервисы» (IT-поддержка, Юг России) | -| site-tempelhoff-ru | HTML (static) | 0 | 0 | 2 | 0 | Документация фото-лендинга КФХ Битаров (tempelhoff.ru), Beget FTP | -| user-bitarov | Text | 0 | 0 | 4 | 0 | Клиентские конфиги AmneziaWG + VLESS Reality для пользователя Битаров | -| user-mobile-wa | documentation | 0 | 0 | 3 | 0 | VPN-аккаунт мобильного WhatsApp: AmneziaWG split tunneling через FI | -| vpn-clients | Markdown/Documentation | 0 | 0 | 7 | 0 | Справочник клиентских приложений VLESS/AmneziaWG/MTProto | -| vpn-vps-ruslan | Markdown | 0 | 0 | 0 | 0 | Проектный план WireGuard VPN на VPS Ruslan (217.26.31.162), не начат | -| servaki-infra | HTML | 0 | 3 | 2 | 1 | Инфраструктурный монорепо: конфиги Aspia/Excalidraw/WG, лендинги, runbook'и | -## Межсервисные связи +## Панели/мониторинг + +| Репо | Язык | LOC | Модулей | Маршрутов | Связи | +|---|---|--:|--:|--:|---| +| [egorin](egorin/MAP.md) | TypeScript | 9693 | 11 | 25 | Afanasov-smart, Heritage, KPgenerator, agro-panel, banya-bot, cascade, cascade-de-ru, claude-memory, delodecor, gate-web-relay, home-router, homeassistant-backup, lilia-ee-media-router, matrix-migration, media-projects, mesh1-status, mesh2-status, mpo-inform-site, ops-configs, orbit-bot, orbit-kameliya, router-koval, servaki-gps-monitoring, servaki-infra, servaki-monitor, smartlight-panel, tempelhoff-pbx, user-bitarov, user-mobile-wa, vpn-clients, vpn-vps-ruslan | +| [servaki-monitor](servaki-monitor/MAP.md) | TypeScript | 8741 | 11 | 25 | Afanasov-smart, Heritage, KPgenerator, agro-panel, banya-bot, cascade, cascade-de-ru, claude-memory, delodecor, gate-web-relay, home-router, homeassistant-backup, lilia-ee-media-router, matrix-migration, media-projects, mesh1-status, mesh2-status, mpo-inform-site, ops-configs, orbit-bot, orbit-kameliya, router-koval, servaki-gps-monitoring, servaki-infra, smartlight-panel, tempelhoff-pbx, user-bitarov, user-mobile-wa, vpn-clients, vpn-vps-ruslan | +| [Heritage](Heritage/MAP.md) | JavaScript | 3105 | 6 | 15 | — | +| [smartlight-panel](smartlight-panel/MAP.md) | Markdown | 1665 | 6 | 13 | — | +| [servaki-gps-monitoring](servaki-gps-monitoring/MAP.md) | Markdown | 606 | 2 | 0 | — | +| [agro-panel](agro-panel/MAP.md) | Markdown | 259 | 0 | 0 | — | +| [mesh1-status](mesh1-status/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [mesh2-status](mesh2-status/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [orbit-kameliya](orbit-kameliya/MAP.md) | Markdown | 0 | 0 | 0 | — | + +## Боты/сервисы + +| Репо | Язык | LOC | Модулей | Маршрутов | Связи | +|---|---|--:|--:|--:|---| +| [banya-bot](banya-bot/MAP.md) | HTML | 1875 | 1 | 0 | — | +| [KPgenerator](KPgenerator/MAP.md) | JavaScript | 731 | 1 | 15 | — | +| [orbit-bot](orbit-bot/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [user-mobile-wa](user-mobile-wa/MAP.md) | Markdown | 0 | 0 | 0 | — | + +## Инфра/VPN/роутеры + +| Репо | Язык | LOC | Модулей | Маршрутов | Связи | +|---|---|--:|--:|--:|---| +| [cascade](cascade/MAP.md) | Markdown | 6110 | 11 | 10 | — | +| [gate-web-relay](gate-web-relay/MAP.md) | Python | 5230 | 4 | 25 | — | +| [ops-configs](ops-configs/MAP.md) | Markdown | 981 | 5 | 0 | cascade | +| [agent-sync](agent-sync/MAP.md) | Markdown | 196 | 0 | 0 | — | +| [Afanasov-smart](Afanasov-smart/MAP.md) | mixed | 0 | 0 | 0 | — | +| [cascade-de-ru](cascade-de-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [claude-memory](claude-memory/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [home-router](home-router/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [homeassistant-backup](homeassistant-backup/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [lilia-ee-media-router](lilia-ee-media-router/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [matrix-migration](matrix-migration/MAP.md) | Markdown | 0 | 2 | 0 | — | +| [media-projects](media-projects/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [router-koval](router-koval/MAP.md) | Markdown | 0 | 2 | 0 | — | +| [servaki-infra](servaki-infra/MAP.md) | Markdown | 0 | 7 | 0 | — | +| [tempelhoff-pbx](tempelhoff-pbx/MAP.md) | SQL | 0 | 0 | 0 | — | +| [user-bitarov](user-bitarov/MAP.md) | Markdown | 0 | 2 | 0 | — | +| [vpn-clients](vpn-clients/MAP.md) | Markdown | 0 | 1 | 0 | — | +| [vpn-vps-ruslan](vpn-vps-ruslan/MAP.md) | Markdown | 0 | 0 | 0 | — | + +## Сайты/дизайн + +| Репо | Язык | LOC | Модулей | Маршрутов | Связи | +|---|---|--:|--:|--:|---| +| [mpo-design-system](mpo-design-system/MAP.md) | Markdown | 2042 | 4 | 0 | — | +| [mpo-inform-site](mpo-inform-site/MAP.md) | JavaScript | 983 | 6 | 0 | — | +| [leronx](leronx/MAP.md) | Markdown | 317 | 3 | 0 | — | +| [delodecor](delodecor/MAP.md) | HTML | 17 | 1 | 0 | — | +| [site-delodecor-ru](site-delodecor-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-eba-sh-ru](site-eba-sh-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-egida1-ru](site-egida1-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-ermashova26-ru](site-ermashova26-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-idea-s-ru](site-idea-s-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-mpo-inform-ru](site-mpo-inform-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-mpoinform-ru](site-mpoinform-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-servaki-online](site-servaki-online/MAP.md) | Markdown | 0 | 0 | 0 | — | +| [site-tempelhoff-ru](site-tempelhoff-ru/MAP.md) | Markdown | 0 | 0 | 0 | — | + +## MCP + +| Репо | Язык | LOC | Модулей | Маршрутов | Связи | +|---|---|--:|--:|--:|---| +| [mcp-hikvision](mcp-hikvision/MAP.md) | Python | 581 | 5 | 11 | servaki-monitor | + +## Межсервисный граф (упоминания/вызовы между репо) ```mermaid graph LR - cascade -->|fetch panel-api| cascade_panel_api[cascade panel-api] - cascade -->|Keenetic RCI| keenetic_rci[Keenetic RCI] - cascade -->|SSH systemctl| vps_nodes[VPS-ноды] - cascade -->|Telegram Bot API| telegram[Telegram API] - - egorin -->|Яндекс OAuth| yandex_oauth[oauth.yandex.ru] - egorin -->|Traccar REST| traccar[Traccar] - servaki-monitor -->|Яндекс OAuth| yandex_oauth - servaki-monitor -->|Traccar REST| traccar - servaki-monitor -->|MQTT| mqtt_broker[MQTT broker] - servaki-monitor -->|InfluxDB Flux| influxdb[InfluxDB] - - Afanasov-smart -->|OpenWeatherMap| owm[api.openweathermap.org] - Afanasov-smart -->|MQTT| mqtt_broker - banya-bot -->|OpenWeatherMap| owm - smartlight-panel -->|OpenWeatherMap| owm - - gate-web-relay -->|Яндекс OAuth| yandex_oauth - mcp-hikvision -->|Яндекс OAuth| yandex_oauth - mcp-hikvision -->|Hikvision ISAPI| hikvision[NVR/камеры Hikvision] - - KPgenerator -->|Telegram Bot API| telegram - KPgenerator -->|Ollama LLM| ollama[192.168.1.158 Ollama] - KPgenerator -->|MinIO S3| minio[s3.servaki.online] - orbit-kameliya -->|Replicate API| replicate[api.replicate.com] - orbit-kameliya -->|Telegram Bot API| telegram - leronx -->|Replicate API| replicate - leronx -->|Яндекс.Диск WebDAV| yadisk[webdav.yandex.ru] - - agent-sync -->|Nextcloud WebDAV| nextcloud[n.servaki.online] - servaki-gps-monitoring -->|Nextcloud WebDAV| nextcloud - - ops-configs -->|SSH ru1| ru1[ru1 5.188.30.72] - ops-configs -->|Telegram Bot API| telegram - - mpo-inform-site -->|Beget FTP| beget_ftp[Beget FTP] - tempelhoff-pbx -->|SIP trunk| sbc_kmv[sbc.kmv.ru] - tempelhoff-pbx -->|Telegram notify| telegram -``` - -## Топ-5 по техдолгу - -| # | Репо | Кол-во | Главный элемент техдолга | -|---|------|--------|--------------------------| -| 1 | **cascade** | 11 | `bot/bot.py`: SNI/PBK/SID Reality захардкожены заглушками (REPLACE_WITH_REAL_PBK), интеграция 3x-ui API не реализована | -| 2 | **agro-panel** | 4 | MQTT-интеграция с Wiren Board через WebSocket (сенсорные данные — симуляция) | -| 3 | **banya-bot** | 3 | `status-patch.js` — команда /status не интегрирована в index.js, существует как отдельный неподключённый файл | -| 3 | **mpo-design-system** | 3 | BBB/03_BBB_Deploy_Knowledge.md: TODO — 2-е плечо ru3 для RU-участников (media UDP DNAT 16384-32768) | -| 5 | **egorin** | 1 | `deploy/pcn-receiver.py:8` — TODO: полная валидация SIA DC-09 CRC/шифрование | -| 5 | **gate-web-relay** | 1 | `deploy/HANDOFF-infra.md:131` TODO — MSS-кламп persistent (сейчас runtime) | -| 5 | **mcp-hikvision** | 2 | `scripts/failover-mcp.sh:35` — TODO: подставить реальную подкоманду beget-api.sh для смены A-записи | -| 5 | **mpo-inform-site** | 1 | `src/components/LeadForm.astro:82` — лид-форма сохраняет заявки только в localStorage, CRM не подключена | -| 5 | **smartlight-panel** | 1 | `MqttWirenBoardBridge` class (deviceBridge.js) — полностью закомментирован, MQTT-транспорт не реализован | -| 5 | **servaki-infra** | 1 | `knowledge/wirenboard-zabbix-office-proxmox-runbook-2026-07-08.md:224` — открытые вопросы оператору | - -## Крупнейшие репо - -| # | Репо | LOC | Язык | Назначение | -|---|------|-----|------|------------| -| 1 | **egorin** | 9693 | TypeScript | Servaki Monitor: GPS, энергомониторинг, ПЦН, RBAC, мультиаренда | -| 2 | **servaki-monitor** | 8741 | TypeScript | Единая смарт-панель: Traccar, Wiren Board MQTT, InfluxDB, Яндекс OAuth | -| 3 | **cascade** | 6110 | HTML | Каскадный VPN RU→FI→NL/DE, Python-сервисы, React-панель мониторинга | -| 4 | **Afanasov-smart** | 5325 | JavaScript (Node.js + React) | Умное освещение Wiren Board: REST API + SPA + MQTT + расписания | -| 5 | **gate-web-relay** | 3157 | Python | Управление воротами: SR-201 реле, WSS-туннель, Telegram-бот, OAuth | + egorin[egorin] --> Afanasov_smart[Afanasov-smart] + egorin[egorin] --> Heritage[Heritage] + egorin[egorin] --> KPgenerator[KPgenerator] + egorin[egorin] --> agro_panel[agro-panel] + egorin[egorin] --> banya_bot[banya-bot] + egorin[egorin] --> cascade[cascade] + egorin[egorin] --> cascade_de_ru[cascade-de-ru] + egorin[egorin] --> claude_memory[claude-memory] + egorin[egorin] --> delodecor[delodecor] + egorin[egorin] --> gate_web_relay[gate-web-relay] + egorin[egorin] --> home_router[home-router] + egorin[egorin] --> homeassistant_backup[homeassistant-backup] + egorin[egorin] --> lilia_ee_media_router[lilia-ee-media-router] + egorin[egorin] --> matrix_migration[matrix-migration] + egorin[egorin] --> media_projects[media-projects] + egorin[egorin] --> mesh1_status[mesh1-status] + egorin[egorin] --> mesh2_status[mesh2-status] + egorin[egorin] --> mpo_inform_site[mpo-inform-site] + egorin[egorin] --> ops_configs[ops-configs] + egorin[egorin] --> orbit_bot[orbit-bot] + egorin[egorin] --> orbit_kameliya[orbit-kameliya] + egorin[egorin] --> router_koval[router-koval] + egorin[egorin] --> servaki_gps_monitoring[servaki-gps-monitoring] + egorin[egorin] --> servaki_infra[servaki-infra] + egorin[egorin] --> servaki_monitor[servaki-monitor] + egorin[egorin] --> smartlight_panel[smartlight-panel] + egorin[egorin] --> tempelhoff_pbx[tempelhoff-pbx] + egorin[egorin] --> user_bitarov[user-bitarov] + egorin[egorin] --> user_mobile_wa[user-mobile-wa] + egorin[egorin] --> vpn_clients[vpn-clients] + egorin[egorin] --> vpn_vps_ruslan[vpn-vps-ruslan] + mcp_hikvision[mcp-hikvision] --> servaki_monitor[servaki-monitor] + ops_configs[ops-configs] --> cascade[cascade] + servaki_monitor[servaki-monitor] --> Afanasov_smart[Afanasov-smart] + servaki_monitor[servaki-monitor] --> Heritage[Heritage] + servaki_monitor[servaki-monitor] --> KPgenerator[KPgenerator] + servaki_monitor[servaki-monitor] --> agro_panel[agro-panel] + servaki_monitor[servaki-monitor] --> banya_bot[banya-bot] + servaki_monitor[servaki-monitor] --> cascade[cascade] + servaki_monitor[servaki-monitor] --> cascade_de_ru[cascade-de-ru] + servaki_monitor[servaki-monitor] --> claude_memory[claude-memory] + servaki_monitor[servaki-monitor] --> delodecor[delodecor] + servaki_monitor[servaki-monitor] --> gate_web_relay[gate-web-relay] + servaki_monitor[servaki-monitor] --> home_router[home-router] + servaki_monitor[servaki-monitor] --> homeassistant_backup[homeassistant-backup] + servaki_monitor[servaki-monitor] --> lilia_ee_media_router[lilia-ee-media-router] + servaki_monitor[servaki-monitor] --> matrix_migration[matrix-migration] + servaki_monitor[servaki-monitor] --> media_projects[media-projects] + servaki_monitor[servaki-monitor] --> mesh1_status[mesh1-status] + servaki_monitor[servaki-monitor] --> mesh2_status[mesh2-status] + servaki_monitor[servaki-monitor] --> mpo_inform_site[mpo-inform-site] + servaki_monitor[servaki-monitor] --> ops_configs[ops-configs] + servaki_monitor[servaki-monitor] --> orbit_bot[orbit-bot] + servaki_monitor[servaki-monitor] --> orbit_kameliya[orbit-kameliya] + servaki_monitor[servaki-monitor] --> router_koval[router-koval] + servaki_monitor[servaki-monitor] --> servaki_gps_monitoring[servaki-gps-monitoring] + servaki_monitor[servaki-monitor] --> servaki_infra[servaki-infra] + servaki_monitor[servaki-monitor] --> smartlight_panel[smartlight-panel] + servaki_monitor[servaki-monitor] --> tempelhoff_pbx[tempelhoff-pbx] + servaki_monitor[servaki-monitor] --> user_bitarov[user-bitarov] + servaki_monitor[servaki-monitor] --> user_mobile_wa[user-mobile-wa] + servaki_monitor[servaki-monitor] --> vpn_clients[vpn-clients] + servaki_monitor[servaki-monitor] --> vpn_vps_ruslan[vpn-vps-ruslan] +``` \ No newline at end of file