feat: Add presence heartbeat for Matrix online status

- matrix-gateway: POST /internal/matrix/presence/online endpoint
- usePresenceHeartbeat hook with activity tracking
- Auto away after 5 min inactivity
- Offline on page close/visibility change
- Integrated in MatrixChatRoom component
This commit is contained in:
Apple
2025-11-27 00:19:40 -08:00
parent 5bed515852
commit 3de3c8cb36
6371 changed files with 1317450 additions and 932 deletions

View File

@@ -0,0 +1,179 @@
# ✅ Інтеграція реальної інвентаризації НОДА1 - Завершено
**Дата:** 2025-11-23
**Статус:** ✅ Готово до використання
---
## 🎉 Що реалізовано
### ✅ 1. Оновлено API з реальними даними НОДА1
**Файл:** `src/api/nodeInventory.ts`
**Зміни:**
- ✅ Додано функцію `getNode1RealInventory()` з реальними даними з `/tmp/NODE1_COMPLETE_INVENTORY.md`
- ✅ Оновлено інтерфейси для підтримки нових даних:
- `TelegramBot` - інформація про ботів
- `AIAgent` - інформація про агентів
- `OllamaModel` - інформація про моделі (встановлені + потрібні)
- `ProblematicService` - проблемні сервіси
- `NodeInventory.statistics` - статистика ноди
**Реальні дані НОДА1:**
- 22 Docker контейнери (13 healthy, 4 up, 5 проблемних)
- 10 Telegram/Discord ботів (8 активних, 2 очікують токени)
- 14 AI агентів (8 основних + 5 Команда Яромира + 1 Discord)
- 4 бази даних
- 5 встановлених + 3 потрібні Ollama моделі
- 5 проблемних сервісів
---
### ✅ 2. Оновлено відображення в кабінеті НОДА1
**Файл:** `src/pages/NodeCabinetPage.tsx`
**Додано секції:**
#### 2.1. 📊 Статистика
- Контейнери (22 total, 13 healthy, 5 проблемних)
- Активні боти (8/10)
- AI Агенти (14)
- Бази даних (4)
- Ollama моделі (5 встановлено, 3 потрібно)
- Сервіси (19)
#### 2.2. ⚠️ Проблемні сервіси
- Список з 5 проблемних сервісів
- Пріоритети (критичні/некритичні)
- Кнопка "Виправити" для кожного сервісу
- Детальна інформація про проблему
**Проблемні сервіси:**
1. **dagi-memory-service** (Restarting) - Критично
2. **dagi-rag-service** (Restarting) - Критично
3. **dagi-grafana** (Restarting) - Критично
4. **dagi-stt-service** (Unhealthy) - Некритично
5. **dagi-image-gen** (Unhealthy) - Некритично
#### 2.3. 🐳 Docker контейнери
- **Працюють (Healthy)** - 13 контейнерів з uptime та призначенням
- **Працюють (без health check)** - 4 контейнери
- **Проблемні** - 5 контейнерів з деталями
#### 2.4. 🗄️ Бази даних
- PostgreSQL (5432) - Healthy
- Neo4j (7474, 7687) - Healthy
- Qdrant (6333) - Up
- Redis (6379) - Not visible
#### 2.5. 🤖 Telegram/Discord боти
- 8 активних ботів (зелені картки)
- 2 боти очікують токени (жовті картки)
- Інформація: username, token prefix, модель, тип
**Боти:**
- DAARWIZZ, Helion, GREENFOOD, CLAN, Soul, DRUID, EONARCH, Яромир (активні)
- NUTRA, Dario (очікують токени)
#### 2.6. 🧠 AI Агенти
- **Команда Яромира** (5 агентів) - окрема секція з індиго фоном
- Яромир (Orchestrator)
- Вождь (Strategic, qwen2.5:14b)
- Проводник (Mentor, qwen2.5:7b)
- Домир (Harmony, qwen2.5:3b)
- Создатель (Innovation, qwen2.5:14b)
- **Основні агенти** (9 агентів)
- DAARWIZZ, Helion, GREENFOOD, CLAN, Soul, DRUID, NUTRA, EONARCH, Dario
#### 2.7. 🤖 Ollama моделі
- **✅ Встановлені** (5 моделей) - зелені картки
- qwen3:8b (5.2 GB)
- qwen3-vl:8b (6.1 GB)
- qwen2-math:7b (4.4 GB)
- qwen2.5:3b-instruct-q4_K_M (1.9 GB)
- qwen2.5:7b-instruct-q4_K_M (4.7 GB)
- **⚠️ Потрібно завантажити** (3 моделі) - жовті картки з кнопкою "Завантажити"
- qwen2.5:14b (~8 GB) - для Вождь, Создатель
- qwen2.5:7b (~4.5 GB) - для Проводник
- qwen2.5:3b (~2 GB) - для Домир
---
## 📊 Структура відображення
```
Вкладка "Інвентаризація"
├── 📊 Статистика (6 метрик)
├── ⚠️ Проблемні сервіси (5 сервісів з кнопками)
├── 🐳 Docker контейнери
│ ├── Працюють (Healthy) - 13
│ ├── Працюють (без health check) - 4
│ └── Проблемні - 5
├── 🗄️ Бази даних (4)
├── 🤖 Telegram/Discord боти (10)
├── 🧠 AI Агенти (14)
│ ├── Команда Яромира (5)
│ └── Основні агенти (9)
├── 🤖 Ollama моделі
│ ├── ✅ Встановлені (5)
│ └── ⚠️ Потрібно завантажити (3)
├── 📦 Docker образи
├── ⚙️ Systemd сервіси
├── 📚 Встановлені пакети
└── 📁 Файлова структура
```
---
## 🚀 Як використати
### 1. Відкрити кабінет НОДА1
```
http://localhost:8899/nodes/node-1-hetzner-gex44
```
### 2. Перейти на вкладку "Інвентаризація"
1. Відкрити кабінет НОДА1
2. Натиснути на вкладку "Інвентаризація"
3. Переглянути всю інформацію про ноду
### 3. Дії
**Виправити проблемні сервіси:**
- Натиснути кнопку "Виправити" біля проблемного сервісу
- Переглянути деталі проблеми
**Завантажити Ollama моделі:**
- Натиснути кнопку "Завантажити" біля потрібної моделі
- Модель буде завантажена через Ollama
---
## ✅ Статус
**Готово:**
- ✅ API оновлено з реальними даними НОДА1
- ✅ Статистика відображається
- ✅ Проблемні сервіси з кнопками дій
- ✅ Боти зі статусами
- ✅ Агенти з деталями
- ✅ Ollama моделі (встановлені + потрібні)
- ✅ Бази даних
- ✅ Docker контейнери (healthy, up, problematic)
**Результат:**
- ✅ Вся інформація з реальної інвентаризації відображається
- ✅ Зручна навігація та структура
- ✅ Кнопки дій для виправлення проблем
---
**Реальна інвентаризація НОДА1 повністю інтегрована!** 🎉
**Доступ:**
- НОДА1: `http://localhost:8899/nodes/node-1-hetzner-gex44` → Вкладка "Інвентаризація"