Skip to content

# Node Guardian & Node Steward

Дата: 29 листопада 2025
Статус: Впроваджено (Task 038)

У екосистемі DAARION кожна нода має два ключові "обличчя" — спеціалізованих агентів, які відповідають за її функціонування та представлення у мережі.

## 1. Ролі

### 🛡️ Node Guardian (Технічний наглядач)

Відповідальність: * Моніторинг інфраструктури (CPU, RAM, Disk, GPU). * Стан сервісів (Docker, Systemd). * Безпека та алерти. * Автоматична реакція на інциденти (в межах дозволеного).

Тип агента: `node_guardian` (або `infra_monitor`).

### 🗣️ Node Steward (Хазяїн ноди)

Відповідальність: * Публічне представлення ноди як "громадянина". * Комунікація з іншими учасниками мережі. * Управління конфігурацією та правилами (Governance). * "Human Interface" до ноди.

Тип агента: `node_steward` (або `infra_ops`).

## 2. Як призначити

Агенти автоматично визначаються системою (`city-service`) за наступним алгоритмом:

1. Пошук за типом (`kind`):

2. Система шукає агентів, прив'язаних до цієї ноди (`node_id`), які мають `kind = 'node_guardian'` або `'node_steward'`.

3. Fallback (сумісність):

4. Якщо спеціалізованих типів не знайдено, система шукає `infra_monitor` (як Guardian) та `infra_ops` (як Steward).

5. Node Cache (Legacy):

6. Якщо динамічний пошук не дав результатів, використовується закешоване значення з таблиці `node_registry.nodes` (якщо воно було встановлено вручну).

### SQL для призначення (приклад)

    -- Призначити Guardian
    UPDATE agents
    SET kind = 'node_guardian'
    WHERE id = 'my-monitor-agent-id';

    -- Призначити Steward
    UPDATE agents
    SET kind = 'node_steward'
    WHERE id = 'my-steward-agent-id';

## 3. Відображення в UI

### Node Dashboard (`/nodes/[nodeId]`)

У кабінеті ноди (як повному, так і базовому профілі) відображається картка "Node Guardian & Steward": * Показує імена та ролі агентів. * Посилання на їх Публічний профіль (`/citizens/[slug]`). * Посилання на Кабінет агента (`/agents/[id]`).

Це дозволяє оператору швидко перейти до налаштувань агента або почати діалог з ним.