- 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
149 lines
6.9 KiB
Markdown
149 lines
6.9 KiB
Markdown
# ✅ Monitor Agent - Стандартизація завершена
|
||
|
||
## 🎯 Стандартизація Monitor Agent
|
||
|
||
### Архітектура
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ Загальний Monitor Agent (DAARION) │
|
||
│ - ID: agent-monitor │
|
||
│ - Агрегує дані з усіх НОД та мікроДАО │
|
||
│ - Розташований в кабінеті DAARION │
|
||
└─────────────────────────────────────────────────────────┘
|
||
│
|
||
┌───────────┴───────────┐
|
||
│ │
|
||
┌───────▼────────┐ ┌─────────▼──────────┐
|
||
│ Monitor Agent │ │ Monitor Agent │
|
||
│ для НОДИ │ │ для мікроДАО │
|
||
│ │ │ │
|
||
│ monitor-node-1│ │ monitor-microdao- │
|
||
│ monitor-node-2│ │ {microdao_id} │
|
||
└───────────────┘ └────────────────────┘
|
||
```
|
||
|
||
## 📋 Структура нумерації
|
||
|
||
### 1. Monitor Agent для НОДИ
|
||
- **ID:** `agent-monitor-{node_id}`
|
||
- **Приклади:**
|
||
- `agent-monitor-node-1` - Monitor Agent для НОДА1
|
||
- `agent-monitor-node-2` - Monitor Agent для НОДА2
|
||
- `agent-monitor-node-3` - Monitor Agent для НОДА3
|
||
|
||
### 2. Monitor Agent для мікроДАО
|
||
- **ID:** `agent-monitor-microdao-{microdao_id}`
|
||
- **Приклади:**
|
||
- `agent-monitor-microdao-daarion-dao` - Monitor Agent для DAARION
|
||
- `agent-monitor-microdao-greenfood` - Monitor Agent для GREENFOOD
|
||
- `agent-monitor-microdao-energy-union` - Monitor Agent для ENERGY UNION
|
||
|
||
### 3. Загальний Monitor Agent
|
||
- **ID:** `agent-monitor`
|
||
- **Призначення:** Агрегація даних з усіх НОД та мікроДАО
|
||
- **Розташований:** Кабінет мікроДАО DAARION
|
||
|
||
## 🔧 Реалізація
|
||
|
||
### 1. Monitor Agent Factory
|
||
|
||
**Файл:** `src/utils/monitorAgentFactory.ts`
|
||
|
||
**Функції:**
|
||
- `createNodeMonitorAgent(nodeId, nodeName)` - Створити Monitor Agent для НОДИ
|
||
- `createMicroDaoMonitorAgent(microDaoId, microDaoName)` - Створити Monitor Agent для мікроДАО
|
||
- `createGlobalMonitorAgent()` - Створити загальний Monitor Agent
|
||
- `getMonitorAgentChatUrl(agentId, nodeId?, microDaoId?)` - Отримати URL для чату
|
||
- `hasNodeMonitorAgent(nodeId, agents)` - Перевірити існування Monitor Agent для ноди
|
||
- `hasMicroDaoMonitorAgent(microDaoId, agents)` - Перевірити існування Monitor Agent для мікроДАО
|
||
|
||
### 2. Компоненти
|
||
|
||
#### NodeMonitorChat
|
||
**Файл:** `src/components/monitor/NodeMonitorChat.tsx`
|
||
- Monitor Agent для конкретної НОДИ
|
||
- Фільтрує події тільки для цієї ноди
|
||
- Інтегровано в `NodeCabinetPage`
|
||
|
||
#### MicroDaoMonitorChat
|
||
**Файл:** `src/components/monitor/MicroDaoMonitorChat.tsx`
|
||
- Monitor Agent для конкретного мікроДАО
|
||
- Фільтрує події тільки для цього мікроДАО
|
||
- Інтегровано в `MicroDaoCabinetPage`
|
||
|
||
#### DaarionMonitorChat
|
||
**Файл:** `src/components/monitor/DaarionMonitorChat.tsx`
|
||
- Загальний Monitor Agent для всіх НОД та мікроДАО
|
||
- Агрегує події з усієї системи
|
||
- Інтегровано в `DaarionCabinetPage`
|
||
|
||
### 3. Backend Endpoints
|
||
|
||
**Файл:** `services/monitor-agent-service/app/main.py`
|
||
|
||
**Endpoints:**
|
||
- `POST /api/agent/monitor/chat` - Загальний Monitor Agent
|
||
- `POST /api/agent/monitor-node-{node_id}/chat` - Monitor Agent для НОДИ
|
||
- `POST /api/agent/monitor-microdao-{microdao_id}/chat` - Monitor Agent для мікроДАО
|
||
|
||
## ✅ Інтеграція
|
||
|
||
### Кабінети НОД
|
||
|
||
**Файл:** `src/pages/NodeCabinetPage.tsx`
|
||
- ✅ Додано `NodeMonitorChat` компонент
|
||
- ✅ Автоматично відображається для кожної НОДИ
|
||
- ✅ Фільтрує події по `node_id`
|
||
|
||
### Кабінети мікроДАО
|
||
|
||
**Файл:** `src/pages/MicroDaoCabinetPage.tsx`
|
||
- ✅ Додано `MicroDaoMonitorChat` компонент
|
||
- ✅ Автоматично відображається для кожного мікроДАО
|
||
- ✅ Фільтрує події по `microdao_id`
|
||
|
||
### Кабінет DAARION
|
||
|
||
**Файл:** `src/pages/DaarionCabinetPage.tsx`
|
||
- ✅ Додано `DaarionMonitorChat` компонент
|
||
- ✅ Загальний Monitor Agent для всієї системи
|
||
- ✅ Агрегує події з усіх НОД та мікроДАО
|
||
|
||
## 🚀 Автоматичне створення
|
||
|
||
### При створенні нової НОДИ
|
||
|
||
1. Автоматично створюється Monitor Agent з ID `agent-monitor-{node_id}`
|
||
2. Додається в список агентів ноди
|
||
3. Інтегрується в кабінет ноди через `NodeMonitorChat`
|
||
|
||
### При створенні нового мікроДАО
|
||
|
||
1. Автоматично створюється Monitor Agent з ID `agent-monitor-microdao-{microdao_id}`
|
||
2. Додається в список агентів мікроДАО
|
||
3. Інтегрується в кабінет мікроДАО через `MicroDaoMonitorChat`
|
||
|
||
## 📊 Поточний стан
|
||
|
||
| Компонент | Статус | Деталі |
|
||
|-----------|--------|--------|
|
||
| **Monitor Agent Factory** | ✅ Готово | Утиліти для створення Monitor Agent |
|
||
| **NodeMonitorChat** | ✅ Готово | Monitor Agent для НОДИ |
|
||
| **MicroDaoMonitorChat** | ✅ Готово | Monitor Agent для мікроДАО |
|
||
| **DaarionMonitorChat** | ✅ Готово | Загальний Monitor Agent |
|
||
| **Backend Endpoints** | ✅ Готово | Підтримка всіх типів Monitor Agent |
|
||
| **Інтеграція в кабінети** | ✅ Готово | Всі кабінети мають свої Monitor Agent |
|
||
|
||
## 🎯 Наступні кроки
|
||
|
||
1. ✅ Стандартизація завершена
|
||
2. ⏳ Автоматичне створення при створенні нової НОДИ (потрібно додати в API)
|
||
3. ⏳ Автоматичне створення при створенні нового мікроДАО (потрібно додати в API)
|
||
|
||
---
|
||
|
||
**Last Updated:** 2025-01-27
|
||
**Status:** ✅ Стандартизація завершена
|
||
|