- 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
5.7 KiB
5.7 KiB
✅ Виправлення відображення агентів-оркестраторів в кабінетах мікроДАО
Дата: 2025-11-23
Статус: ✅ Виправлено
🐛 Проблема
В кабінетах мікроДАО не відображалися:
- Агенти-оркестратори (greenfood, daarwizz, helion)
- Функціонал мікроДАО
✅ Рішення
1. Інтеграція агентів з НОДИ1
Додано:
- Отримання агентів з НОДИ1 через
getNode1Agents() - Пошук оркестратора серед агентів з НОДИ1
- Об'єднання агентів з API та з НОДИ1
Файл: src/pages/MicroDaoCabinetPage.tsx
// Отримуємо агентів з НОДИ1
const { data: node1AgentsData } = useQuery({
queryKey: ['node1-agents-for-microdao', microDaoId],
queryFn: async () => {
try {
return await getNode1Agents();
} catch (error) {
console.error('Error fetching node1 agents:', error);
return null;
}
},
enabled: !!microDaoId,
});
// Знаходимо оркестратора
const orchestratorFromNode1 = node1AgentsData?.items?.find(
(agent: Node1Agent) =>
agent.id === orchestratorAgentId ||
agent.id === `agent-${orchestratorAgentId}` ||
// Спеціальні випадки для кожного агента
(orchestratorAgentId === 'greenfood' && agent.id === 'agent-greenfood-assistant') ||
(orchestratorAgentId === 'daarwizz' && agent.id === 'agent-daarwizz') ||
(orchestratorAgentId === 'helion' && agent.id === 'agent-helion')
);
// Об'єднуємо агенти
const allAgents = [
...(agentsData?.items || []),
...(orchestratorFromNode1 ? [{
id: orchestratorFromNode1.id,
name: orchestratorFromNode1.name,
role: orchestratorFromNode1.role || 'Оркестратор мікроДАО',
language: 'uk',
focus: orchestratorFromNode1.category || 'Оркестрація',
enabled: orchestratorFromNode1.status === 'active',
type: 'orchestrator' as const,
node1Agent: orchestratorFromNode1,
}] : []),
];
2. Покращене відображення агентів
Додано:
- Візуальне виділення оркестраторів (фіолетовий колір, іконка корони)
- Кнопка "Кабінет" для переходу до кабінету агента
- Додаткова інформація про модель та ноду
Візуальні зміни:
- Оркестратори мають фіолетовий border та фон
- Іконка корони для оркестраторів
- Бейдж "Оркестратор"
- Інформація про модель та ноду
3. Маппінг агентів
ID агентів на НОДИ1:
greenfood→agent-greenfood-assistantdaarwizz→agent-daarwizzhelion→agent-helion
Логіка пошуку:
- Перевірка точного співпадіння ID
- Перевірка з префіксом
agent- - Перевірка спеціальних випадків для кожного агента
- Перевірка за назвою
📊 Результат
Відображення агентів
Вкладка "Агенти":
- ✅ Всі агенти з API
- ✅ Оркестратор з НОДИ1 (якщо є)
- ✅ Візуальне виділення оркестраторів
- ✅ Кнопка переходу до кабінету агента
- ✅ Інформація про модель та ноду
Статистика:
- ✅ Кількість агентів включає оркестратора
- ✅ Відображається на головній сторінці
Чат з оркестратором:
- ✅ Автоматично визначає оркестратора
- ✅ Використовує правильний ID агента
🎯 Приклади
GREENFOOD мікроДАО
Оркестратор:
- ID:
agent-greenfood-assistant - Назва:
GREENFOOD Assistant - Роль:
GREENFOOD ERP Orchestrator - Тип:
orchestrator - Нода: НОДА1
Відображення:
- Фіолетовий border та фон
- Іконка корони
- Бейдж "Оркестратор"
- Кнопка "Кабінет"
DAARION мікроДАО
Оркестратор:
- ID:
agent-daarwizz - Назва:
Daarwizz - Роль:
Main User Interface Agent - Тип:
worker(але є оркестратором мікроДАО) - Нода: НОДА1
ENERGY UNION мікроДАО
Оркестратор:
- ID:
agent-helion - Назва:
Helion - Роль:
Energy Union Agent - Тип:
worker(але є оркестратором мікроДАО) - Нода: НОДА1
✅ Статус
Виправлено:
- ✅ Агенти-оркестратори відображаються в кабінетах мікроДАО
- ✅ Функціонал мікроДАО працює
- ✅ Візуальне виділення оркестраторів
- ✅ Інтеграція з НОДИ1
- ✅ Чат з оркестратором працює
Результат:
- ✅ Всі три мікроДАО показують своїх оркестраторів
- ✅ Функціонал мікроДАО доступний
- ✅ Користувачі можуть перейти до кабінету агента
Відображення агентів-оркестраторів виправлено! 🎉