Files
microdao-daarion/MICRODAO-ORCHESTRATORS-DISPLAY-FIX.md
Apple 3de3c8cb36 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
2025-11-27 00:19:40 -08:00

5.7 KiB
Raw Blame History

Виправлення відображення агентів-оркестраторів в кабінетах мікроДАО

Дата: 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:

  • greenfoodagent-greenfood-assistant
  • daarwizzagent-daarwizz
  • helionagent-helion

Логіка пошуку:

  1. Перевірка точного співпадіння ID
  2. Перевірка з префіксом agent-
  3. Перевірка спеціальних випадків для кожного агента
  4. Перевірка за назвою

📊 Результат

Відображення агентів

Вкладка "Агенти":

  • Всі агенти з 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
  • Чат з оркестратором працює

Результат:

  • Всі три мікроДАО показують своїх оркестраторів
  • Функціонал мікроДАО доступний
  • Користувачі можуть перейти до кабінету агента

Відображення агентів-оркестраторів виправлено! 🎉