feat(mvp): DAGI Integration Fix - gov_level, DAIS, nodes table

TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201

A) Agents Layer:
- A1: Added gov_level to API and UI (list + profile)
- A2: Added dais_identity_id to API and UI
- A3: Added home_microdao_id/name/slug for ownership display

B) MicroDAO Layer:
- B1/B2: Already implemented (agents, rooms, citizens, district badge)

C) Nodes Layer:
- C1: Node Dashboard already implemented
- C2: Created nodes table migration with owner_microdao_id
- C3: INSERT NODE1/NODE2 with dao_daarion ownership

D) Backend Fixes:
- D1: Extended /api/agents/* with DAIS/governance fields
- D2/D3: Already implemented

Files changed:
- services/city-service/repo_city.py
- services/city-service/models_city.py
- services/city-service/routes_city.py
- services/city-service/migrations.py
- apps/web/src/lib/types/agents.ts
- apps/web/src/lib/agent-dashboard.ts
- apps/web/src/app/agents/page.tsx
- apps/web/src/components/agent-dashboard/AgentSummaryCard.tsx

Reports:
- docs/debug/mvp_dagi_integration_fix_report_20251201.md
- docs/tasks/TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201.md
This commit is contained in:
Apple
2025-11-30 08:45:07 -08:00
parent a23deae3c4
commit 644edd3f30
22 changed files with 1227 additions and 82 deletions

View File

@@ -64,6 +64,23 @@ Version: 1.1
- `status`
- `registered_at`
## 2.5. Node Profile — Core Invariants (PATCH v1)
Кожна нода в DAARION Ontology має чотири обов'язкові шари:
1. **Metrics Layer** — live-метрики CPU/GPU/RAM/Disk + heartbeat. Навіть якщо телеметрія частково відсутня, нода переходить у `metrics_status = degraded`, а не існує “порожньою”.
2. **Ownership Layer** — власник (MicroDAO/District) з полями `owner_microdao_id`, `owner_microdao_slug` (опційно `district_id`). Немає безхазяйних нод.
3. **Models Layer** — локальний Swapper + набір моделей (LLM, STT, vision, TTS, RAG). Dev-ноди так само мають DAGI-стек, просто з іншим складом моделей.
4. **Orchestration Layer** — локальний DAGI Router + агенти з `home_node_id`, які працюють на цій ноді.
Також кожна нода має мінімальний набір **Node Core Agents**:
- **Node Guardian Agent** — відповідає за health, безпеку, інциденти.
- **Node Steward Agent** — відповідає за приналежність до microDAO, профіль, онбординг.
- (опційно) **Node Models/Swapper Agent** — відповідає за опис і політику використання локального стека моделей.
> Принцип “немає сторінки без агентів” означає, що будь-який інтерфейс Ноди (профіль, метрики, моделі, доступи) завжди “закріплений” за хоча б одним агентом, і цей агент показується в UI.
---
# 3. Типи НОД

View File

@@ -0,0 +1,85 @@
# Nodes Profile Core Invariant — PATCH v1
Version: 1.0
Status: ACTIVE
Parent doc: `docs/foundation/Nodes_Interface_Architecture_UPDATE_v1.md`
---
## 1. Мета
Зафіксувати базовий інваріант DAARION Ontology:
> **Кожна Нода має чотири обов'язкові шари:**
> 1. Metrics Layer
> 2. Ownership Layer
> 3. Models Layer
> 4. Orchestration Layer (DAGI Router + локальні агенти)
Цей патч уніфікує всі ноди (prod, dev, district, core-team) і припиняє трактування, ніби dev-ноди можуть існувати без DAGI-стеку.
---
## 2. Інваріанти
### 2.1 Metrics Layer
- Обов'язкові live-метрики CPU / RAM / GPU / Disk.
- Формат heartbeat з полями `cpu_load`, `memory_used`, `gpu[*].vram_used`, `disk`.
- Якщо метрики відсутні → статус `metrics_status = degraded`, а не “порожня нода”.
### 2.2 Ownership Layer
- Кожна нода належить рівно одному MicroDAO / District.
- Поля: `owner_microdao_id`, `owner_microdao_slug`, `district_id` (опційно).
- В UI обов’язково відображається бейдж MicroDAO.
### 2.3 Models Layer
- На кожній ноді працює локальний Swapper + Model Stack.
- JSON-профіль: `models.llm[]`, `models.vision[]`, `models.stt[]`, `models.tts[]`, `models.rag[]`.
- Немає “нод без моделей” — dev/prod різняться лише складом стека.
### 2.4 Orchestration Layer
- Локальний DAGI Router на кожній ноді.
- Локальні агенти з `home_node_id`.
- Події маршрутизуються через локальний router, який знає про локальні сервіси та підключення до NATS/City Layer.
### 2.5 Node Core Agents & Page Presence
- Мінімум два агенти на ноді:
- **Node Guardian Agent** — health, безпека, інциденти.
- **Node Steward Agent** — приналежність microDAO, онбординг, профіль.
- (опційно) окремий **Node Models/Swapper Agent**.
- Кожна сторінка інтерфейсу, пов’язана з нодою, “закріплена” за щонайменше одним агентом і показує його присутність (немає сторінок “без агентів”).
---
## 3. Вставка в основний документ
Вставити розділ **“Node Profile — Core Invariants (PATCH v1)”** після секції 2.4 (`Запис у таблиці nodes`) у `Nodes_Interface_Architecture_UPDATE_v1.md`.
Текст для вставки:
```md
## Node Profile — Core Invariants (PATCH v1)
Кожна Нода в DAARION Ontology має чотири обов'язкові шари:
1. **Metrics Layer** — live-метрики CPU/GPU/RAM/Disk, heartbeat кожні 60 секунд.
2. **Ownership Layer** — власник (MicroDAO/District) з полями `owner_microdao_id`, `owner_microdao_slug`.
3. **Models Layer** — локальний Swapper + Model Stack (LLM, STT, vision, RAG тощо).
4. **Orchestration Layer** — DAGI Router + локальні агенти з `home_node_id`.
Також кожна нода має мінімальний набір Node Core Agents:
- **Node Guardian Agent** (health, security, інциденти)
- **Node Steward Agent** (приналежність microDAO, профіль)
- (опційно) **Node Models/Swapper Agent**
Жодна сторінка інтерфейсу, що стосується ноди, не існує без агентів, які за неї відповідають (“немає сторінки без агентів”).
```
---
## 4. Next Steps
- Оновити `TASK_PHASE_NODE_RUNTIME_AUDIT_NODE1_NODE2.md`, щоб аудити перевіряли наявність усіх чотирьох шарів та Node Core Agents.
- Підготувати окремий config-аудит dev-ноди (NODE2), щоби переконатися у відокремленості прод- та dev-конфігів.