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

@@ -0,0 +1,205 @@
# TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201.md
Version: 1.0
Status: ACTIVE
Target: DAARION.space (NODE1)
Scope: Backend (city-service), Next.js Frontend, DB migrations, Node Profile UI
---
# 1. МЕТА
Замкнути ланцюг **"документи → код → деплой → UI"** для MVP так, щоб:
* всі інваріанти онтології (agents, microDAO, nodes) були відображені в коді й UI;
* DAIS/Agents/MicroDAO/Nodes працювали відповідно до foundation-доків;
* DAGI ↔ MVP працювали узгоджено на NODE1;
* UI не приховував важливу інформацію про агента, microDAO або ноду;
* було ліквідовано всі зафіксовані розриви з `mvp_dagi_integration_report_20251130.md`.
---
# 2. ПЕРЕЛІК НЕОБХІДНИХ ВИПРАВЛЕНЬ (TODO)
---
## A) Agents Layer: поглибити UI відповідно до онтології
### ❗ A1. Додати gov-level у UI (Next.js)
* У списку агентів (`/agents`)
* У профілі агента (`/agents/:agentId`)
* На governance-сторінці (`/governance`)
Поля з БД:
* `gov_level`
* `governance_rank` (якщо є)
* бейджі з документа Agent_Governance_Protocol_v1.md
### ❗ A2. Додати DAIS ID у всі представлення агентів
* DAIS identity (`dais_identities.id`)
* DAIS email(s)
* DAIS wallet(s)
### ❗ A3. Додати microDAO membership для агента
У UI агента показувати:
* "agent belongs to microDAO: <slug>"
* клік → кімнати microDAO
* бейдж microdao_type (regular/district/root)
---
## B) MicroDAO Layer: привести UI до документації
### ❗ B1. Розширити "MicroDAO Dashboard"
На основі:
* MicroDAO_Interface_Architecture_v1.md
* microdao_Data_Model_UPDATE_v1.md
* Rooms_Layer_Architecture_v1.md
Додати:
* список агентів microDAO
* список кімнат microDAO
* список громадян microDAO (напр. microdao_members / agent_assignments)
* бейджі microdao_type (root / district / org / clan / platform)
* кімната microDAO "lobby / help / governance"
### ❗ B2. Показати District-level microDAO як окремий тип
* GREENFOOD
* ENERGYUNION
* SOUL
* CLAN (коли буде протокол)
---
## C) Nodes Layer: вирівняти з онтологією та документами
### ❗ C1. Реалізувати "Node Dashboard (MVP full)"
Згідно:
* Nodes_Profile_Core_Invariant_PATCH_v1.md
* Nodes_Interface_Architecture_UPDATE_v1.md
Додати в `/nodes/:nodeId`:
**Metrics Layer:**
* CPU load
* CPU cores
* RAM total/used
* GPU count
* VRAM total/used
* Disk sizes
**Ownership Layer:**
* owner_microdao
* district_slug
* DAIS-агенти ноди
**Models Layer:**
* Swapper status
* Перелік моделей (стек) у JSON
* Відображення ролей моделей (LLM/coder/vision/etc.)
**Orchestration Layer:**
* Node Core Agents (GuardianOS/Pulse/Atomis)
* agent-count (local_agents)
* health DAGI router
### ❗ C2. Створити міграцію nodes
Додати таблицю `nodes` у PG, щоб перестати залежати від `node_cache`.
Мінімальні поля:
```sql
CREATE TABLE nodes (
id TEXT PRIMARY KEY, -- slug, e.g. node-1-hetzner-gex44
display_name TEXT NOT NULL,
owner_microdao_id TEXT REFERENCES microdaos(id),
node_type TEXT, -- energy, compute, hybrid, iot_gateway
env TEXT, -- production, development, staging
cpu_cores INTEGER,
ram_gb INTEGER,
gpu_count INTEGER DEFAULT 0,
disk_gb INTEGER,
status TEXT DEFAULT 'unknown',
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now()
);
```
### ❗ C3. Записати NODE1 / NODE2 у `nodes`
* проставити:
- `owner_microdao_id = dao_daarion`
- `home_node_id` для GuardianOS, Pulse, Atomis
---
# D) Backend Fixes
### ❗ D1. Виправити /api/agents/* відповідно до DAIS-шару
Формалізувати:
* dais_identity
* dais_emails[]
* dais_wallets[]
* home_node_id
* owner_microdao_id
### ❗ D2. Додати `/api/microdao/:id/rooms`
Для MicroDAO Dashboard.
### ❗ D3. Виправити `/api/nodes/:id/dashboard`
Зробити відповідно до Nodes Profile (див. C1).
---
# 3. ВИХІДНІ АРТЕФАКТИ
Cursor має створити:
* `docs/debug/mvp_dagi_integration_fix_report_<DATE>.md`
(результати перевірки після фіксів)
* (опціонально) `frontend-diff/` & `backend-diff/`
(всі зміни по UI та API)
---
# 4. КОМАНДА ДЛЯ CURSOR
Після додавання цього файла у репо:
> Виконай, будь ласка,
> `docs/tasks/TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201.md`
> у повному обсязі.
> Створи `docs/debug/mvp_dagi_integration_fix_report_<DATE>.md`,
> і підготуй дифи для backend (FastAPI) та frontend (Next.js).
---
# 5. КРИТЕРІЇ ЗАВЕРШЕННЯ
- [ ] A1-A3: gov-level, DAIS ID, microDAO membership відображаються на сторінках агентів
- [ ] B1-B2: MicroDAO Dashboard показує agents, rooms, citizens, district badge
- [ ] C1-C3: Node Dashboard показує 4 шари (Metrics, Ownership, Models, Orchestration), таблиця `nodes` існує, NODE1/NODE2 записані
- [ ] D1-D3: API повертають повні дані (DAIS, rooms, node dashboard)
- [ ] Звіт `mvp_dagi_integration_fix_report_<DATE>.md` підтверджує, що всі пункти закриті