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:
205
docs/tasks/TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201.md
Normal file
205
docs/tasks/TASK_PHASE_MVP_DAGI_INTEGRATION_FIX_20251201.md
Normal 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` підтверджує, що всі пункти закриті
|
||||
|
||||
Reference in New Issue
Block a user