feat(foundation): FOUNDATION_UPDATE implementation

## Documentation (20 files)
- DAARION Ontology Core v1 (Agent → MicroDAO → Node → District)
- User Onboarding & Identity Layer (DAIS)
- Data Model UPDATE, Event Catalog, Governance & Permissions
- Rooms Layer, City/MicroDAO/Agents/Nodes Interface Architecture
- Helper files: ontology-summary, lifecycles, event-schemas

## Database Migration (027)
- DAIS tables: dais_identities, dais_emails, dais_wallets, dais_keys
- agent_assignments table for Assignment Layer
- rooms table for Rooms Layer
- event_outbox for NATS event delivery
- New enums: agent_role, microdao_type, node_kind, node_status, etc.
- Updated agents, microdaos, nodes tables with ontology fields

## Backend
- DAIS service & routes (/api/v1/dais/*)
- Assignment service & routes (/api/v1/assignments/*)
- Domain types for DAIS and Ontology

## Frontend
- Ontology types (Agent, MicroDAO, Node, DAIS, Assignments)
- API clients for DAIS and Assignments
- UI components: DaisProfileCard, AssignmentsPanel, OntologyBadge

Non-breaking update - all existing functionality preserved.
This commit is contained in:
Apple
2025-11-29 15:24:38 -08:00
parent deeaf26b0b
commit 7b91c8e83c
43 changed files with 5733 additions and 47 deletions

View File

@@ -0,0 +1,120 @@
# Agents_Interface_Architecture_v1.md
## DAARION.city — Agent-Centric Interface Architecture
**Version:** 1.0
**Status:** Foundation Spec (MVP)
**Scope:** Архітектура інтерфейсу агентів: primary_agent, team_agents, кабінети, ролі, кімнати, взаємодія з MicroDAO, Nodes, City.
---
# 0. Мета документа
Описати агентно-центровану модель інтерфейсу DAARION.space:
* кожна сторінка має агента-власника,
* первинні/командні агенти,
* кабінети агентів,
* категорії агентів,
* кімнати та віжети,
* інтеграцію з MicroDAO/City/Nodes.
---
# 1. Принцип
> **Усі сторінки, сцени й кімнати належать агентам (primary_agent).**
Структура сторінки:
```json
{
"primary_agent": "agent_id",
"team_agents": ["agent_id_2","agent_id_3"]
}
```
---
# 2. Типи агентів
1. Personal Agents (агенти користувачів).
2. Organizational Agents (належать MicroDAO).
3. Core-Team Agents (CEO/CTO/LegaI/Architect).
4. Public City Agents (DARIO, DARIA, DAARWIZZ, City Info).
5. Service/Infrastructure Agents (monitoring, bridge, summarizer).
6. District/Platform Agents (Helion, ERP GREENFOOD).
---
# 3. Primary vs Team Agents
* **Primary agent** — господар сцени (City Square → DARIO; MicroDAO Dashboard → Orchestrator).
* **Team agents** — асистують (DARIA, Security agent, DevOps agent тощо).
---
# 4. Кабінет агента
* **Profile** — ім’я, DAIS, роль, MicroDAO.
* **Activity** — події, дії, лог.
* **Rooms** — кімнати агента.
* **Workspaces** — проєкти, задачі.
* **Nodes** — home node, active session node.
* **Tools** — моделі, інтеграції.
* **Assignments** — MicroDAO / District / City scope.
---
# 5. Agent Rooms
* Personal room (DM з людиною).
* Workspace room (внутрішні).
* Public front room (у місті).
* Service room (інфраструктура).
* District room (платформи).
---
# 6. Зв’язки
* **Agent → MicroDAO**: ролі, дозволи, кімнати, проєкти.
* **Agent → Node**: home/active node, ресурси.
* **Agent → City**: публічні агенти, кіоски, City Square.
---
# 7. Widgets & Actions
* Кожен віджет має `agent_owner`.
* Будь-яка дія (створити MicroDAO, зареєструвати ноду) здійснюється агентом.
---
# 8. Agent Lifecycle
1. Creation (DAIS onboarding).
2. Assignment до MicroDAO.
3. Node placement.
4. Room creation.
5. Activity.
6. Promotion (core-team/orchestrator).
7. Archival.
---
# 9. MVP Scope
* Кабінет агента.
* Primary/team agent модель.
* Списки персональних/організаційних/публічних агентів.
* Agent rooms, projects, nodes.
* Присутність агента в City Square.
---
# 10. Підсумок
Агенти — центральні суб’єкти DAARION.space.
Цей документ закріплює інтерфейсну модель, у якій кожна сцена має primary_agent та команду агента, а всі функції (місто, MicroDAO, ноди) розгортаються через агентів.

View File

@@ -0,0 +1,152 @@
# City_Interface_Architecture_v1.md
## DAARION.city — City Layer & Public Space Interface
**Version:** 1.0
**Status:** Foundation Spec (MVP)
**Scope:** City Hub, City Square, public rooms, civic agents, MicroDAO portals, 2D/3D map
---
# 0. Мета документа
Визначити інтерфейс міського рівня DAARION.space:
* City Hub, City Square, публічні кімнати,
* ролі DARIO, DARIA, DAARWIZZ та інших civic-агентів,
* публічні кіоски/портали MicroDAO та District,
* взаємодію з Rooms Layer і MicroDAO Interface,
* 2D/3D представлення.
---
# 1. Роль City Layer
* верхній публічний шар DAARION.space;
* перша точка входу для мешканців;
* спільний простір для всіх MicroDAO/District/агентів;
* місце, де користувачі бачать мапу, кімнати, портали, події.
---
# 2. Основні об’єкти
## 2.1. City Hub
* належить root MicroDAO `DAARION`;
* містить City Square, City Rooms, City Map, реєстр порталів.
## 2.2. City Square
* головна публічна сцена;
* `primary_agent = DARIO`, `team_agents = [DARIA, DAARWIZZ, civic agents]`;
* блоки: привітання, підтримка, публічні кімнати, кіоски MicroDAO та District.
## 2.3. City Rooms
* `city.lobby`, `city.news`, `city.events`, `city.help` тощо;
* `space_scope='city'`, `owner_type='city'`.
## 2.4. MicroDAO Portals
* публічні кімнати `front-room` у місті (Energyunion, GREENFOOD);
* ведуть до інтерфейсу конкретного MicroDAO.
## 2.5. District Portals
* портали для платформ/екосистем;
* ведуть у District Space.
---
# 3. Агентність міського інтерфейсу
* **DARIO** — primary_agent City Square (community manager).
* **DARIA** — assistant_agent (tech support).
* **DAARWIZZ** — мер міста; бере участь у подіях.
* Публічні DAO агенти (Helion, ERP) мають власні front-room.
---
# 4. Основні екрани
1. `/city` — City Square (центральна сцена).
2. `/city/rooms` — список публічних кімнат.
3. `/city/map` — 2D-мапа з маркерами кімнат і порталів.
4. `/city/agents` — каталог публічних агентів (DARIO, DARIA, DAARWIZZ, DAO-агенти).
---
# 5. City Square Layout (MVP)
* **Центр:** DARIO (вітання, пропозиції, вибір MicroDAO).
* **Праворуч:** DARIA (FAQ, підтримка, навігація).
* **Низ:** публічні кімнати (Новини, Події, Допомога, Лобі).
* **Ліворуч:** кіоски MicroDAO (Energyunion, GREENFOOD).
* **Верх:** DAARWIZZ + глобальні оголошення.
---
# 6. Публічність та присутність
* City Square — місце, де можуть бути всі авторизовані користувачі, їх агенти та публічні DAO.
* MVP: список «хто онлайн» та лічильник присутніх (без 3D).
---
# 7. Портали MicroDAO
* кожне MicroDAO може опублікувати front-office (`space_scope='city'`);
* користувач бачить:
* якщо не член — публічний профіль + «Приєднатися»;
* якщо член — кнопка «Увійти в MicroDAO».
---
# 8. Civic Layer
* DARIO — community manager.
* DARIA — технічна підтримка.
* DAARWIZZ — мер; участь у «city.events`.
---
# 9. API (чернетка)
* `GET /api/city/rooms`
* `GET /api/city/portals`
* `GET /api/city/map`
* `GET /api/city/agents/public`
---
# 10. MVP Scope
* `/city` з базовими блоками DARIO/DARIA, публічні кімнати, два front-office.
* `/city/rooms` як таблиця.
* `/city/map` — статична 2D-мінімапа.
* Каталог публічних агентів.
Не входить: повна 3D-мапа, аватари, гейміфікація.
---
# 11. Взаємодія з іншими рівнями
* City Layer → Rooms Layer (`city-room`, `front-room`).
* City Layer → MicroDAO Interface (front-office).
* City Layer → Agents Layer (primary/team agents).
---
# 12. Підсумок
City Layer робить DAARION.city зрозумілим для мешканців:
* City Square — головна сцена;
* публічні кімнати — спільний простір;
* портали MicroDAO — міст між містом і організаціями;
* civic-агенти — обличчя міста.
Документ завершено.

View File

@@ -0,0 +1,234 @@
# DAARION_Identity_And_Access_Draft_v1.md
## DAIS — DAARION Autonomous Identity System (Draft IAM Specification)
**Version:** 1.0
**Status:** Draft (Foundation Update)
**Scope:** DAIS identity, wallets, keys, access control, DID, recovery
---
# 0. Мета документа
Визначити проектну модель системи ідентичності та доступу в DAARION.city:
* як створюється DAIS-ідентичність;
* як зв’язуються email, wallet, ключі, DID, Matrix;
* як визначаються рівні довіри;
* як працює key rotation та recovery;
* як DAIS пов’язаний із Agent/MicroDAO/Node;
* як реалізований доступ на рівні сервісів (gateway, node, worker).
Документ — фундамент IAM-модуля. Він не ламає поточну архітектуру, а задає майбутні вимоги.
---
# 1. Концепція DAIS
DAIS (DAARION Autonomous Identity System) — універсальна цифрова ідентичність, яка належить **агенту** й використовується для:
* створення агента,
* входу в MicroDAO,
* авторизації на нодах,
* підписання подій у DAGI Mesh,
* економічних операцій,
* відновлення доступу.
---
# 2. Структура DAIS-ідентичності
```
DAIS Identity
├─ Email identities (1..N)
├─ Wallet identities (1..N)
│ ├─ EVM (Polygon)
│ ├─ TON (future)
│ └─ Hardware wallet (future)
├─ DID (decentralized identifier)
├─ Matrix handle
├─ Public keys
├─ Signature domains
├─ Recovery methods
└─ Metadata
```
---
# 3. Компоненти DAIS
## 3.1. Email identities
* Passwordless (OTP / Magic Link).
* Можна прив’язати кілька email.
* Використовується як low-security login.
## 3.2. Wallet identities
* Підтримка EVM wallets (MetaMask, Rabby, WalletConnect).
* SIWE як стандарт підпису.
* Wallet є high-security login.
## 3.3. DID
* формат: `did:daariion:<uuid>`
* використовується для підписання подій, міжнодових операцій, Matrix.
## 3.4. Matrix handle
* `@<agent_id>:matrix.daarion.city`
* для міжагентного чату, голосових каналів, presence.
## 3.5. Public Keys
| Тип ключа | Призначення |
|-----------|--------------------------|
| Ed25519 | підпис подій, автентифікація |
| X25519 | шифрування / E2EE |
| secp256k1 | wallet-сумісність |
## 3.6. Signature domains
* `dais.login`
* `dais.node-auth`
* `dais.microdao-action`
* `dais.agent-auth`
* `dais.recovery`
## 3.7. Metadata
```json
{
"avatar": "...",
"telegram_linked": false,
"created_at": "...",
"citizenship_level": "basic"
}
```
---
# 4. Рівні довіри DAIS (Trust Levels)
| Рівень | Назва | Вимоги | Права |
|--------|---------------------|----------------------------------------|---------------------|
| 0 | Guest | email only | базові функції |
| 1 | Agent | підтверджений email | створення агента |
| 2 | Verified Agent | email + wallet | доступ до AI/DAO |
| 3 | Orchestrator | SIWE + токени/ролі | створення MicroDAO |
| 4 | DAARION Operator | hardware keys (future) | city governance |
---
# 5. Зберігання (схема)
```sql
dais_identities (
id text primary key,
default_email text null,
default_wallet text null,
did text not null,
trust_level integer not null default 1,
metadata jsonb not null default '{}'::jsonb,
created_at timestamptz not null default now()
);
dais_emails (
id uuid primary key,
dais_id text not null references dais_identities(id),
email text not null,
verified boolean not null default false
);
dais_wallets (
id uuid primary key,
dais_id text not null references dais_identities(id),
wallet_address text not null,
network text not null default 'evm',
verified boolean not null default false
);
dais_keys (
dais_id text not null references dais_identities(id),
key_type text not null,
public_key text not null
);
```
---
# 6. Взаємозв’язок DAIS → Agent → MicroDAO → Node
```
DAIS identity
↓ (автоматично)
Agent (home_microdao = DAARION)
↓ (через promotion)
MicroDAO (створюється оркестратором)
Node (реєструється MicroDAO)
```
---
# 7. Рівні доступу
## 7.1. Application (UI)
* Email OTP / Magic link / SIWE.
* Доступ до кабінету агента, MicroDAO, сервісів.
## 7.2. Services (Gateway/API)
* Авторизація через DID, public keys, короткоживучі токени.
## 7.3. Node Access
* Нода перевіряє DAIS-ключ (`dais.node-auth`).
---
# 8. Ротація ключів
* **Soft rotation:** заміна email, прив’язка нового wallet, оновлення Matrix handle.
* **Hard rotation:** новий DID, нові ключі Ed25519/X25519 (потрібен підпис wallet).
---
# 9. Recovery
* Recovery email (secondary addresses).
* Seed phrase wallet recovery.
* Social recovery (future) — 2-3 поручителі (агенти, MicroDAO core team, DAARION108).
---
# 10. DAIS та безпека DAGI Mesh
DAIS використовується для:
* підписання міжагентних повідомлень;
* валідації подій у DAGI Router;
* E2EE у Matrix;
* авторизації worker-нод;
* запуску міжнодових контейнерів.
Без DAIS неможливо створити агента, MicroDAO, ноду чи увійти в District.
---
# 11. Майбутні розширення
* Інтеграція TON;
* DID-compatible wallet auth;
* hardware keys;
* локальна біометрія (без передачі).
---
# 12. Підсумок
DAIS — це цифрове тіло кожного агента.
Воно забезпечує універсальний login, права доступу, підписи, recovery.
Документ задає базу для майбутнього IAM і не потребує змін у чинній логіці.

View File

@@ -0,0 +1,239 @@
# DAARION_Ontology_Core_v1.md
## DAARION.city — Ontology Core (Agent → MicroDAO → Node → District)
**Version:** 1.0
**Status:** Foundation Document (Immutable Core)
**Scope:** DAARION.city / microDAO / DAGI Mesh / Identity Layer (DAIS)
---
# 0. Мета документа
Цей документ встановлює **базову онтологію** міста DAARION.city:
структуру сутностей, їх ролі, інваріанти та правила взаємодії.
Це — фундаментальна модель, на якій будуються:
* User Onboarding
* Identity Layer (DAIS)
* MicroDAO Governance
* Node Registration
* Agent Networks
* District Architecture
* DAGI Mesh Routing
Документ є **неламким** (non-breaking): будь-які зміни мають бути сумісні назад і розширювати, а не замінювати тут визначені принципи.
---
# 1. Онтологічний каркас DAARION.city
Уся мережа базується на простій ієрархії:
**Agent → MicroDAO → Node → District**
Жодна сутність не може існувати поза цією структурою.
---
# 2. Agent
## 2.1. Опис
**Agent** — мінімальна одиниця DAARION.city.
Кожен агент має:
* унікальний цифровий профіль (**DAIS Identity**);
* власний «Кабінет агента» (Agent Console);
* ключі, криптогаманець, DID/Matrix-ідентичність;
* базову приналежність до однієї MicroDAO (`home_microdao_id`);
* базову ноду виконання (`home_node_id`);
* власні ролі та сфери діяльності.
## 2.2. Типи агентів
| Тип агента | Опис | Приписка | Сфера діяльності |
| -------------------------------- | ----------------------------- | ------------------------------------------------- | ---------------------------- |
| **Personal Agent** | стандартний агент користувача | обов'язкова | своя MicroDAO або root-місто |
| **Service/Infrastructure Agent** | технічні агенти сервісів | до MicroDAO, де вони розгорнуті (частіше DAARION) | мікроДАО / дістрик / місто |
| **Core-City Agent (DAARION108)** | головна команда з 108 агентів | root MicroDAO «DAARION» | citywide (все місто) |
| **Orchestrator Agent** | має право створювати MicroDAO | обов'язкова | керування MicroDAO |
## 2.3. Ролі
* `regular` — стандартний агент.
* `orchestrator` — агент, який може створювати і керувати MicroDAO.
## 2.4. Інваріанти Agent
1. Agent не може існувати без DAIS-ідентичності.
2. Agent завжди має одну `home_microdao_id`.
3. Agent завжди має хоч одну ноду виконання (мінімально — root-ноду DAARION).
4. Orchestrator — це підвищений стан агента, який активується лише при виконанні умов доступу (токени, ключі).
5. Усі Service/Infrastructure-агенти «приписані» до реальної MicroDAO та реальної ноди.
---
# 3. MicroDAO
## 3.1. Опис
**MicroDAO** — мінімальна організаційна одиниця в місті:
команда, спільнота, проєкт, ініціатива або економічна клітинка.
## 3.2. Ключові характеристики
* унікальний `microdao_id`;
* `primary_orchestrator_agent_id` — головний агент;
* свій криптогаманець DAIS;
* свій governance-модуль;
* свої кімнати/канали/робочі простори;
* можливість реєструвати **Node**.
## 3.3. Типи MicroDAO
* **root** — перша MicroDAO, місто DAARION;
* **standard** — звичайні MicroDAO користувачів;
* **district** — розширений режим MicroDAO з доступом до інфраструктури і підлеглих MicroDAO.
## 3.4. Інваріанти MicroDAO
1. MicroDAO не може існувати без одного основного Orchestrator-Agent.
2. Root MicroDAO (DAARION) існує завжди і є предком усіх інших MicroDAO.
3. Кожна MicroDAO може реєструвати одну або більше нод.
4. District — це **форма MicroDAO**, а не окрема сутність.
5. Жодна MicroDAO не може існувати «без агресора» (без керуючого агента).
---
# 4. Node
## 4.1. Опис
**Node** — реальний вузол виконання в DAGI Mesh:
* смартфон,
* ноутбук,
* edge-пристрій,
* сервер,
* GPU-кластер,
* IoT-шлюз.
Це **не абстракція** — тільки фізично або програмно реальні пристрої.
## 4.2. Характеристики
* `node_id`;
* `microdao_id` — кому належить нода;
* `node_kind`: `smartphone`, `laptop`, `edge`, `datacenter`, `iot`, `gpu-cluster`;
* `capabilities` (GPU, RAM, sensors, network);
* `status`: `provisioning`, `active`, `draining`, `retired`.
## 4.3. Інваріанти Node
1. Node **завжди** належить одній MicroDAO.
2. Не існує «безхозних», «тестових» або «системних» нод поза моделлю.
3. Вся базова інфраструктура DAARION.city належить root MicroDAO «DAARION».
4. Агент може виконуватись лише:
* на ноді своєї MicroDAO,
* або на ноді MicroDAO/District, які на це дали дозвіл (governance).
---
# 5. District
## 5.1. Опис
**District** — це MicroDAO, якій надано розширені повноваження для керування:
* підлеглими MicroDAO,
* мережами нод,
* економічними або галузевими кластерами.
## 5.2. Інваріанти District
1. District = MicroDAO з `type = district`.
2. District має `parent_microdao_id`.
3. District може керувати ресурсами нижчих MicroDAO без зміни їх власності над нодами.
4. District — це елемент ієрархії, але не новий тип сутності.
---
# 6. Assignment Layer (Агенти, які працюють у різних MicroDAO)
## 6.1. Опис
Agent може «приходити на роботу» або виконувати завдання:
* в іншій MicroDAO,
* в District,
* у всьому місті (DAARION108).
Це робиться без зміни:
* `home_microdao_id`,
* `home_node_id`,
* ролі (regular / orchestrator).
## 6.2. Сутність `agent_assignment`
Визначає:
«цей агент виконує роботу для іншої MicroDAO/District».
Поля:
* `agent_id`
* `target_microdao_id`
* `scope` (`microdao`, `district`, `city`)
* `role` (`advisor`, `ops`, `security`, `mentor`, `core-team`)
* `start_ts`, `end_ts`
## 6.3. Інваріанти Assignment
1. Assignment не змінює приписку агента.
2. DAARION108 мають `scope = city`.
3. Service/Infrastructure-агенти можуть мати assignment до всієї мережі.
---
# 7. Жорсткі інваріанти онтології (DAARION Law)
1. **Agent → MicroDAO → Node**
— єдина дозволена лінія походження.
2. **MicroDAO завжди має Orchestrator-Agent.**
3. **Node завжди належить MicroDAO.**
4. **District — це розширений режим MicroDAO, не окрема сутність.**
5. **Немає тестових, тимчасових або віртуальних нод.**
Усі ноди справжні та пов'язані з реальними агентами та MicroDAO.
6. **Новий користувач завжди починає як Agent, приписаний до root-мікроДАО DAARION.**
7. **Тільки Orchestrator-Agent може створити MicroDAO.**
---
# 8. Стратегічна мета онтології
Створити **міцний, простий, ідеально зрозумілий фундамент**
для нового типу Інтернету:
**Інтернет агентів та нод.**
На цій онтології будуть побудовані:
* модуль DAIS Identity,
* Agent Governance,
* Node Registration / Verification,
* District Platforms,
* розподілене планування DAGI Mesh,
* і вся економіка міста DAARION.city.
---
Документ готовий до включення в TASK_PHASE_FOUNDATION_UPDATE та подальшої розробки.

View File

@@ -0,0 +1,161 @@
# MicroDAO_Interface_Architecture_v1.md
## DAARION.city — MicroDAO Interface & Workspace Architecture
**Version:** 1.0
**Status:** Foundation Spec (MVP)
**Scope:** UI/UX структури MicroDAO, доступи, кімнати, проєкти, агентні ролі, ноди, front-office
---
# 0. Мета документа
Визначити повну структуру інтерфейсу MicroDAO:
* Dashboard,
* Rooms,
* Projects/Tasks/Kanban,
* Agents/Core-team,
* Members (люди + агенти),
* Nodes,
* Front-office у місті,
* Routing та API.
MicroDAO — це робочий простір команди / платформи / району.
---
# 1. Структура інтерфейсу MicroDAO
Кожне MicroDAO має 7 основних блоків:
1. **Dashboard**
2. **Rooms**
3. **Projects**
4. **Agents**
5. **Members**
6. **Nodes**
7. **Front-Office**
---
# 2. Dashboard
Показує:
* назву, логотип, тип (`root/standard/district`);
* опис;
* основні метрики (агенти, люди, ноди, проєкти);
* оркестратора та core-team;
* сповіщення, останні події;
* кнопку «Вийти у Front-Office».
---
# 3. Rooms
* внутрішні кімнати (general, core-team, dev, projects);
* публічні кімнати (front-office) із `publish_to_city`;
* портальні кімнати (посилання на District, підлеглі DAO).
---
# 4. Projects Layer
* Projects: назва, опис, команда, кімната, канбан.
* Tasks: title, description, status, assignee (agent/human), due date.
* Kanban: MVP — три стовпці.
---
# 5. Agents Layer
* Personal agents (людей), organizational, core-team, service.
* Перегляд агента: DAIS, rooms, projects, nodes, assignments.
* Core-team агенти мають розширені повноваження.
---
# 6. Members Layer
* Люди (humans) як учасники.
* Кожна людина керує своїми агентами.
* Ролі: `member`, `manager`, `core-team`, `orchestrator`.
---
# 7. Nodes Layer
* Список нод MicroDAO, їх статусів, ресурсів.
* Прив’язка агентів до нод.
* Доступні дії (реєстрація, оновлення, вимкнення).
---
# 8. Front-Office
* Публічний портал MicroDAO у City Hub.
* Показує публічну інформацію, агента-вітрину, кнопку «приєднатися».
---
# 9. District Mode
* District = MicroDAO з `type='district'`.
* Має власну міні-мапу.
* Управляє підлеглими MicroDAO та нодами.
* Відображає дружні DAO на окремій панелі.
---
# 10. Routing
```
/microdao/{id}/dashboard
/microdao/{id}/rooms
/microdao/{id}/projects
/microdao/{id}/agents
/microdao/{id}/members
/microdao/{id}/nodes
/microdao/{id}/front
```
District:
```
/district/{id}
/district/{id}/rooms
/district/{id}/ecosystem
```
---
# 11. Інтеграції
* Rooms Layer — кімнати DAO, front-room.
* City Layer — front-office у місті.
* Agents Layer — primary_agent кожної сцени.
* Nodes Layer — таб «Nodes».
---
# 12. 3D/2D перспектива
* Параметри кімнат/порталів зберігають `map_x`, `map_y`, `mesh_id`.
* У майбутньому MicroDAO може мати власний 3D-офіс.
---
# 13. MVP Scope
* Dashboard + Rooms + Projects + Agents + Members + Nodes + Front-Office.
* Без 3D, без складних governance workflows.
---
# 14. Підсумок
MicroDAO Interface — серце DAARION.space.
Він забезпечує роботу команд, агентів, нод і публічних порталів, інтегруючись із City та Rooms Layer.
Документ задає канонічну структуру для реалізації MVP.

View File

@@ -0,0 +1,199 @@
# Nodes_Interface_Architecture_v1.md
## DAARION.city — Nodes Interface & Node Management Architecture
**Version:** 1.0
**Status:** Foundation Spec (MVP)
**Scope:** Node dashboards, control rooms, node registration, capabilities, health monitoring, DAGI mesh integration
---
# 0. Мета документа
Визначити інтерфейс керування нодами в DAARION.city:
* як відображаються ноди в UI,
* як реєструються та верифікуються ноди,
* як моніториться здоров'я та ресурси,
* як ноди інтегруються з MicroDAO та DAGI Mesh,
* як агенти виконуються на нодах,
* як відбувається координація Node Fleet.
---
# 1. Роль Nodes Interface
Nodes Interface — це шар управління фізичними та логічними вузлами DAGI Mesh:
* відображення стану нод MicroDAO,
* реєстрація нових нод,
* моніторинг ресурсів (CPU, GPU, RAM, network),
* управління lifecycle нод,
* прив'язка агентів до нод,
* fleet management для District.
---
# 2. Типи нод
| Тип | Опис | Capabilities |
|-----|------|--------------|
| `smartphone` | мобільний пристрій | low compute, camera, GPS, sensors |
| `laptop` | персональний комп'ютер | mid compute, local LLM, development |
| `edge` | edge device | low-mid compute, IoT gateway |
| `datacenter` | серверна інфраструктура | high compute, GPU, 24/7 |
| `iot` | IoT пристрій | sensors, actuators, minimal compute |
| `gpu-cluster` | GPU-кластер | high GPU, ML inference/training |
---
# 3. Структура Node Dashboard
## 3.1. Node Overview
* `node_id`, `node_kind`
* `microdao_id` — власник ноди
* `status`: provisioning | active | draining | retired
* `capabilities` — ресурси (CPU, GPU, RAM, network)
* Останній heartbeat
* Кількість активних агентів
## 3.2. Health Metrics
* CPU utilization
* Memory usage
* GPU utilization (якщо є)
* Network throughput
* Latency до mesh router
* Uptime
## 3.3. Agent Sessions
* Список агентів, що виконуються на ноді
* Статус кожного агента (active, idle, error)
* Ресурси, зайняті агентом
---
# 4. Реєстрація ноди
## 4.1. Flow
1. Оркестратор MicroDAO обирає "Register Node".
2. Вказує тип ноди (`node_kind`).
3. Генерується provisioning token.
4. Пристрій завантажує DAGI agent та вводить token.
5. Нода автентифікується через DAIS node-auth.
6. Подія `node.registered` публікується в NATS.
7. Нода переходить у `provisioning`, потім `active`.
## 4.2. Інваріанти
* Нода завжди належить MicroDAO.
* Реєстрацію ініціює Orchestrator.
* Після реєстрації нода підключається до DAGI Mesh.
---
# 5. Екрани інтерфейсу
## 5.1. MicroDAO Nodes Tab
* `/microdao/{id}/nodes` — список нод MicroDAO
* Таблиця: node_id, kind, status, capabilities, agents, actions
* Кнопка "Register Node"
## 5.2. Node Detail
* `/node/{id}` — деталі ноди
* Overview, Health, Agents, Logs, Settings
* Actions: restart agents, drain, retire
## 5.3. Fleet Management (District)
* `/district/{id}/fleet` — всі ноди підлеглих MicroDAO
* Aggregated metrics, alerts
* Scheduling policies
---
# 6. API Endpoints
```
GET /api/microdao/{id}/nodes
POST /api/microdao/{id}/nodes/register
GET /api/node/{id}
GET /api/node/{id}/health
GET /api/node/{id}/agents
POST /api/node/{id}/drain
POST /api/node/{id}/retire
```
---
# 7. DAGI Mesh Integration
* Кожна нода підключається до DAGI Router.
* Ноди отримують task scheduling від Router.
* Агенти виконуються на нодах через Worker Runtime.
* Heartbeat кожні 30 секунд до Mesh Controller.
---
# 8. Lifecycle Management
```
provisioning → active → draining → retired
```
* **provisioning**: нода реєструється, очікує верифікації.
* **active**: нода працює, приймає агентів.
* **draining**: нода готується до вимкнення, нові агенти не призначаються.
* **retired**: нода офлайн, архівована.
---
# 9. Security
* Доступ до ноди через DAIS node-auth.
* Тільки Orchestrator/Core-Team можуть керувати нодами.
* Agent sessions ізольовані (container/sandbox).
* Всі комунікації шифровані (mTLS).
---
# 10. MVP Scope
* Node list у MicroDAO interface.
* Node registration flow.
* Basic health display (status, capabilities).
* Agent sessions list.
* Drain/Retire actions.
Не входить: advanced scheduling, GPU quotas, auto-scaling.
---
# 11. Зв'язок з іншими документами
* **Ontology** → Node як сутність Agent → MicroDAO → Node → District.
* **Data Model** → таблиця `nodes` з полями.
* **Event Catalog** → `node.registered`.
* **MicroDAO Interface** → Nodes Tab.
* **Governance** → права на реєстрацію нод.
* **DAIS** → node-auth для автентифікації.
---
# 12. Підсумок
Nodes Interface забезпечує управління фізичною інфраструктурою DAGI Mesh:
* реєстрацію нод,
* моніторинг здоров'я та ресурсів,
* виконання агентів,
* lifecycle management,
* fleet management для District.
Документ завершено.

99
docs/foundation/README.md Normal file
View File

@@ -0,0 +1,99 @@
# Foundation Documentation
Цей каталог містить **джерело істини** для DAARION.city — повну онтологію, моделі даних, Governance, Identity (DAIS), Rooms Layer та інтерфейси City/MicroDAO/Agents/Nodes.
---
## Статус: ✅ FOUNDATION_UPDATE Complete
**Всього файлів:** 19 (12 основних + 6 helpers + 1 patch)
---
## Основні документи (12)
### Онтологія та ідентичність (1-7)
| № | Файл | Опис |
|---|------|------|
| 1 | [`DAARION_Ontology_Core_v1.md`](./DAARION_Ontology_Core_v1.md) | Базова онтологія Agent → MicroDAO → Node → District |
| 2 | [`User_Onboarding_And_Identity_Layer_v1.md`](./User_Onboarding_And_Identity_Layer_v1.md) | Реєстрація, DAIS, email/wallet login, Orchestrator |
| 3 | [`Technical_Description_microdao_PATCH_Ontology.md`](./Technical_Description_microdao_PATCH_Ontology.md) | Патч онтології до існуючого Technical Description |
| 4 | [`microdao_Data_Model_UPDATE_v1.md`](./microdao_Data_Model_UPDATE_v1.md) | Оновлена модель даних: agents, microdaos, nodes, assignments |
| 5 | [`microdao_Event_Catalog_EXTENDED_v1.md`](./microdao_Event_Catalog_EXTENDED_v1.md) | Каталог подій NATS: lifecycle, assignment events |
| 6 | [`microdao_Governance_And_Permissions_v1.md`](./microdao_Governance_And_Permissions_v1.md) | Ролі, ACL, governance MicroDAO/District |
| 7 | [`DAARION_Identity_And_Access_Draft_v1.md`](./DAARION_Identity_And_Access_Draft_v1.md) | DAIS як IAM: DID, keys, wallets, trust levels |
### Rooms та інтерфейси (8-12)
| № | Файл | Опис |
|---|------|------|
| 8 | [`Rooms_Layer_Architecture_v1.md`](./Rooms_Layer_Architecture_v1.md) | City/MicroDAO/District rooms, portals, 2D/3D |
| 9 | [`MicroDAO_Interface_Architecture_v1.md`](./MicroDAO_Interface_Architecture_v1.md) | UI MicroDAO: Dashboard, Rooms, Projects, Agents, Nodes |
| 10 | [`City_Interface_Architecture_v1.md`](./City_Interface_Architecture_v1.md) | City Square, DARIO/DARIA, public rooms, portals |
| 11 | [`Agents_Interface_Architecture_v1.md`](./Agents_Interface_Architecture_v1.md) | Agent-centric UI: primary/team agents, кабінети |
| 12 | [`Nodes_Interface_Architecture_v1.md`](./Nodes_Interface_Architecture_v1.md) | Node dashboards, registration, health, DAGI Mesh |
---
## Helper-файли (`helpers/`) — 6
| Файл | Опис |
|------|------|
| [`ontology-summary.md`](./helpers/ontology-summary.md) | TL;DR онтології |
| [`onboarding-flow-diagram.mermaid`](./helpers/onboarding-flow-diagram.mermaid) | Mermaid-діаграма онбордингу |
| [`agent-types-matrix.md`](./helpers/agent-types-matrix.md) | Матриця типів агентів та їх прав |
| [`microdao-lifecycle.md`](./helpers/microdao-lifecycle.md) | Життєвий цикл MicroDAO |
| [`node-lifecycle.md`](./helpers/node-lifecycle.md) | Життєвий цикл Node |
| [`event-schemas.json`](./helpers/event-schemas.json) | JSON Schema для нових подій |
---
## Патчі (`patches/`) — 1
| Файл | Опис |
|------|------|
| [`DAARION_Person_Agent_DAIS_CoreTeam_PATCH_v1.md`](./patches/DAARION_Person_Agent_DAIS_CoreTeam_PATCH_v1.md) | Human vs Agent, DAIS scope, Core-Team, DAARION108 |
---
## Перехресні посилання
```
Онтологія (1)
Data Model (4) ←→ Event Catalog (5)
Governance (6) ←→ Identity & Access (7)
Onboarding (2) → Agents Interface (11) → MicroDAO Interface (9)
Rooms Layer (8) → City Interface (10) / Nodes Interface (12)
```
### Ключові зв'язки:
* **Ontology → Data Model → Events** — база для міграцій та синхронізації.
* **Onboarding/Identity → Agents → MicroDAO** — шлях користувача від реєстрації до створення DAO.
* **Rooms Layer → City/MicroDAO/Agents/Nodes** — визначає UI всіх рівнів.
* **Governance → Identity & Access → Nodes** — ACL та інфраструктурні права.
* **Patch** — уточнює Human vs Agent та Core-Team model.
---
## Використання
Ці документи є базою для:
1. **TASK_PHASE_FOUNDATION_UPDATE** — поточна фаза ✅
2. **Rooms Layer MVP** — реалізація кімнат
3. **City/MicroDAO UI** — інтерфейси
4. **DAIS Implementation** — Identity & Access
5. **DAGI Mesh** — Node management
---
## Task Reference
📋 [`docs/tasks/TASK_PHASE_FOUNDATION_UPDATE.md`](../tasks/TASK_PHASE_FOUNDATION_UPDATE.md)

View File

@@ -0,0 +1,173 @@
# Rooms_Layer_Architecture_v1.md
## DAARION.city — Rooms Layer & Shared City Space
**Version:** 1.0
**Status:** Foundation Spec (Non-Breaking)
**Scope:** City rooms, MicroDAO rooms, District platforms, 2D/3D map, public fronts, inter-DAO interaction
---
# 0. Мета документа
Визначити, що таке «Кімнати Міста» та загалом Rooms Layer у DAARION.city:
* як влаштовані простори міста (City Hub, City Square),
* як працюють кімнати MicroDAO/District,
* як MicroDAO можуть мати публічні front-offices у місті,
* як це все відображається в 2D-мапі і майбутньому 3D метавсесвіті,
* як Rooms Layer інтегрується з MicroDAO Interface і City Layer.
---
# 1. Базова модель
Rooms Layer працює на трьох рівнях:
1. **City Hub (root MicroDAO DAARION)** — публічні міські кімнати і фронт-офіси.
2. **MicroDAO Space** — внутрішні кімнати, робочі простори, проєкти, core-team.
3. **District Space** — платформи, міні-міста з підлеглими MicroDAO.
Функція Rooms Layer — універсальна: та сама структура для всіх рівнів, але з різним контекстом.
---
# 2. Поняття Rooms Layer
## Room
* чат / канал / робочий простір;
* має `owner_type` (`city | microdao | district | agent`), `owner_id`;
* має `space_scope` (`city | microdao | district`);
* має `visibility` (`private | members | public-city | public-global`);
* опціонально `matrix_room_id`.
## Location
* 2D map tile / координати;
* 3D anchor (будівля, кіоск);
* fallback — список/каталог.
## Portal
* кімната-«точка входу» MicroDAO/District у міське середовище;
* `is_portal=true`, `portal_target_microdao_id`.
---
# 3. Типи кімнат
1. **City Room** — належить root MicroDAO, `space_scope='city'`.
2. **DAO Room** — внутрішні кімнати MicroDAO (`space_scope='microdao'`).
3. **Public Front Room** — кімната MicroDAO з `space_scope='city'`.
4. **District Room** — кімнати District-платформи (`space_scope='district'`).
5. **Agent Room / Booth** — публічні кімнати агентів (Helion, ERP, DARIO).
6. **Event Room** — тимчасові/постійні кімнати подій.
---
# 4. Модель видимості
* `owner_type`, `owner_id`.
* `visibility`: `private`, `members`, `public-city`, `public-global`.
* `space_scope`: `city`, `microdao`, `district`.
Приклад front-office Energyunion:
```
owner_type = microdao
owner_id = energyunion
visibility = public-city
space_scope = city
is_portal = true
portal_target_microdao_id = energyunion
```
---
# 5. City Hub як спільний простір
* Місто — місце, де можуть бути присутні всі MicroDAO, District, агенти.
* Кожне MicroDAO може зареєструвати портали/кімнати у City Hub.
* Публічні агенти (Helion, ERP, DARIO) мають свої кіоски в місті.
---
# 6. Інтерфейсні рівні
## 6.1. City Rooms UI
* `/city/rooms` — список / карта публічних кімнат.
* `/city` — City Square зі слотами кімнат/порталів.
* `/city/map` — 2D карта.
## 6.2. MicroDAO Rooms UI
* `/microdao/{id}/rooms` — внутрішні кімнати, публікація front-room (прапорець `publish_to_city`).
## 6.3. District Rooms UI
* `/district/{id}/rooms` — кімнати платформи, підлеглі DAO.
---
# 7. 2D/3D підтримка
* Кожна кімната може мати `map_x`, `map_y`, `zone`.
* 3D-режим використовує `mesh_id`, `3d_position`.
* City Square → набір кімнат/порталів, які відображаються як плитки / кіоски.
---
# 8. Модель даних (чернетка)
```sql
rooms (
id text primary key,
owner_type text not null,
owner_id text not null,
type text not null, -- city-room | dao-room | front-room | agent-room | event-room
space_scope text not null, -- city | microdao | district
visibility text not null, -- private | members | public-city | public-global
matrix_room_id text null,
is_portal boolean not null default false,
portal_target_microdao_id text null,
map_x integer null,
map_y integer null,
zone text null,
metadata jsonb not null default '{}'::jsonb,
created_at timestamptz not null default now()
);
```
---
# 9. Governance
* City rooms створює root MicroDAO або civic-агенти з правами.
* DAO rooms створює оркестратор/команда.
* Front offices публікує Оркестратор або core-team.
* District rooms — оркестратор District.
---
# 10. MVP Scope
* Реєстр City Rooms.
* API: `GET /city/rooms`, `GET /city/portals`, `POST /microdao/{id}/rooms`.
* Мінімальний UI: список кімнат, дві front-room (Energyunion, GREENFOOD).
* Matrix-зв’язок для кімнат.
---
# 11. Підсумок
Rooms Layer уніфікує всі простори DAARION.city:
* місто як спільний простір,
* MicroDAO як власні робочі простори,
* District як платформи,
* агенти як власники кімнат.
Це база для 2D/3D DAARION.space.

View File

@@ -0,0 +1,213 @@
# Technical_Description_microdao_PATCH_Ontology.md
## Patch Update: DAARION Ontology, Agent Model, MicroDAO Rules, Node Structure
**Version:** 1.0
**Status:** Patch Addendum (Non-Breaking Update)
**Applies to:** Existing "Технічний опис microdao" документ
---
# 0. Мета патча
Цей документ додає нові архітектурні розділи та уточнення, які:
* узгоджують microDAO з повною онтологією DAARION.city,
* визначають інваріанти Agent/MicroDAO/Node,
* вводять механізм Assignment,
* уточнюють ролі та типи агентів,
* визначають, що District — не нова сутність, а режим MicroDAO,
* роблять архітектуру послідовною та розширюваною.
Патч нічого не ламає в існуючій логіці, лише додає розділи і правила.
---
# 1. Новий розділ: «Онтологія DAARION»
## 1.1. Ієрархія сутностей
Уся екосистема microdao існує в контексті онтології:
**Agent → MicroDAO → Node → District**
Інші об'єкти (канали, кімнати, governance, токени) належать цим сутностям.
## 1.2. Інваріанти онтології
* Кожен Agent належить до однієї MicroDAO.
* Кожна MicroDAO має одного primary Orchestrator-Agent.
* Кожна Node належить конкретній MicroDAO.
* District — це режим MicroDAO, а не окремий тип сутності.
* У системі не існує «сервісних», «віртуальних» або «нічийних» нод.
* Root MicroDAO (DAARION) — предок для всіх MicroDAO.
---
# 2. Новий розділ: «Agent Model (оновлений)»
## 2.1. Базові властивості Agent
* `agent_id`
* `dais_identity_id` (DAIS прив'язка)
* `home_microdao_id`
* `home_node_id`
* `role`: `regular` або `orchestrator`
* `service_scope` (нове поле; не обов'язкове)
## 2.2. Типи агентів
### A) Personal Agent
Агент конкретного користувача.
Приписаний до MicroDAO (за замовчанням — DAARION).
### B) Service/Infrastructure Agent
Агент, який забезпечує роботу сервісів міста.
Приписаний до MicroDAO, де він розміщений (частіше — DAARION).
Виконується на конкретних нодах.
### C) Core-City Agent (DAARION108)
108 агентів-експертів, що працюють для всього міста.
`service_scope = "city"`
### D) Orchestrator Agent
Агент, що має право створювати MicroDAO.
Перехід у Orchestrator створює подію: `agent.promoted_to_orchestrator`.
---
# 3. Новий розділ: «MicroDAO (оновлена модель)»
## 3.1. Структура
* `microdao_id`
* `type`: `root` | `standard` | `district`
* `primary_orchestrator_agent_id`
* `parent_microdao_id` (для district)
* `wallet_address`
* `metadata`
## 3.2. Інваріанти MicroDAO
* MicroDAO не може існувати без Orchestrator-Agent.
* `primary_orchestrator_agent_id` завжди існує і валідний.
* Root MicroDAO «DAARION» існує завжди.
* District = MicroDAO з розширеними правами.
* Усі ноди MicroDAO належать лише їй.
---
# 4. Новий розділ: «Node Model»
## 4.1. Структура ноди
* `node_id`
* `microdao_id`
* `node_kind`: `smartphone`, `laptop`, `edge`, `datacenter`, `iot`, `gpu-cluster`
* `capabilities` (json)
* `status`: `provisioning`, `active`, `draining`, `retired`
## 4.2. Інваріанти
* Нода завжди належить MicroDAO.
* Немає абстрактних/віртуальних нод.
* При реєстрації генерується подія `node.registered`.
---
# 5. Новий розділ: «District Model»
## 5.1. District = MicroDAO з type = district
Має розширені можливості:
* керування підлеглими MicroDAO,
* право мати власну мережу нод,
* роль «платформи» (галузь / район / екосистема).
## 5.2. Інваріанти District
* District не змінює власність нод MicroDAO.
* District — не новий тип сутності, не нова таблиця.
* Перехід MicroDAO → District фіксується подією `microdao.promoted_to_district`.
---
# 6. Новий розділ: «Assignment Layer (агенти, які працюють у різних MicroDAO)»
## 6.1. Призначення
Деякі агенти можуть:
* працювати у чужих MicroDAO,
* виконувати ролі у District,
* діяти від імені міста (DAARION108).
## 6.2. Структура сутності agent_assignment
```yaml
agent_assignment:
id: uuid
agent_id: string
target_microdao_id: string
scope: microdao | district | city
role: advisor | security | mentor | ops | core-team
start_ts: datetime
end_ts: datetime
```
## 6.3. Інваріанти Assignment
* Assignment не змінює перманентну приписку агента (`home_microdao_id`).
* Assignment є записом «тимчасової роботи/сервісу».
* DAARION108 мають `scope = city`.
---
# 7. Оновлення існуючих розділів документа microdao
Cursor при інтеграції повинен додати:
## 7.1. У розділ «Agents»
* поля: `home_microdao_id`, `home_node_id`, `service_scope`
* ролі: `regular`, `orchestrator`
* типи агентів (Personal, Service, Core-City)
## 7.2. У розділ «Teams/MicroDAO»
* обов'язкове поле `primary_orchestrator_agent_id`
* `type = root | standard | district`
* `parent_microdao_id`
* уточнення про DAARION (root)
## 7.3. У розділ «Nodes»
* додати інваріанти
* додати типи нод
* заборону абстрактних нод
## 7.4. У розділ «Governance»
* правило: MicroDAO створюється лише Orchestrator-Agent
* District — це не окрема таблиця
---
# 8. Підсумок патча
Після інтеграції цього патча:
* онтологія DAARION вплетена в microdao,
* всі сутності мають однакову семантику в документах та коді,
* нові типи агентів (service, core-city) офіційно описані,
* модель Assignment додана,
* MicroDAO, Node та District узгоджені з фундаментальним баченням,
* існуючі системи не змінюються, тільки розширюються.
Документ №3 завершений.

View File

@@ -0,0 +1,274 @@
# User_Onboarding_And_Identity_Layer_v1.md
## DAARION.city — User Onboarding & Identity Layer (DAIS)
**Version:** 1.0
**Status:** Core Spec (Foundation Update)
**Scope:** Реєстрація користувача, створення агентів, DAIS, wallet-логін, Orchestrator, MicroDAO
---
# 0. Мета документа
Цей документ описує **повний процес онбордингу користувача** в DAARION.city:
* реєстрацію → DAIS-профіль → Agent → Orchestrator → MicroDAO;
* Email-OTP та Magic Link;
* Web3 Wallet login та SIWE;
* правила доступу, ролі та підвищення;
* зберігання та синхронізацію ідентичностей;
* формування кабінету агента;
* перевірку токенів та прав на створення MicroDAO.
Документ створено як **неламке оновлення архітектури (non-breaking)**.
---
# 1. Загальний огляд онбордингу
Онбординг DAARION.city складається з трьох рівнів:
1. **DAIS Identity Layer**
— email, wallet, DID, keys → єдиний цифровий профіль.
2. **Agent Creation Layer**
— автоматичне створення агента + кабінету при першій реєстрації.
3. **Orchestrator → MicroDAO Layer**
— підвищення агента + створення MicroDAO за умовами доступу.
Це забезпечує інтуїтивний UX та жорстку архітектурну дисципліну.
---
# 2. DAIS Identity Layer
DAIS = **DAARION Autonomous Identity System**.
Це єдиний простір ідентифікації для людей, агентів і MicroDAO.
## 2.1. Структура DAIS-ідентичності
DAIS-ідентичність містить:
* **email-identities** (1..N)
* **wallet-identities** (EVM / SIWE)
* **telegram / TON identities** (майбутнє)
* **DID / Matrix identity**
* **public keys** (Ed25519 / secp256k1 / X25519)
* **signature domains** (підписи для сервісів)
* **recovery options**
## 2.2. Інваріанти DAIS
1. Один користувач = одна DAIS-ідентичність.
2. DAIS-профіль може мати багато email'ів і багато wallet'ів.
3. DAIS-профіль створюється **до** створення агента.
4. DAIS-профіль не може бути видалений, тільки ротується/оновлюється.
---
# 3. Реєстрація та автентифікація
DAARION.city підтримує два базові методи входу:
## 3.1. Email-OTP (One-Time Password)
Флоу:
1. Користувач вводить email.
2. Отримує одноразовий код (OTP).
3. Підтверджує код.
4. Створюється/активується DAIS-profile.
5. Створюється Agent + кабінет.
Переваги:
* Zero-password.
* Найменший бар'єр входу.
* Підходить для всіх типів користувачів.
## 3.2. Magic Link
Флоу:
1. Користувач вводить email.
2. Отримує магічне посилання.
3. Перехід → автоматичний вхід.
4. Створюється DAIS-profile → Agent.
## 3.3. Web3 Wallet Login (SIWE)
Підтримка: MetaMask, Rabby, WalletConnect.
Флоу:
1. Користувач підключає EVM-гаманець.
2. Підписує SIWE-повідомлення.
3. Створюється/активується DAIS-profile.
4. Гаманець стає частиною DAIS-ідентичності.
5. Створюється Agent.
## 3.4. Синхронізація Email + Wallet
Будь-який окремий метод додає ідентичність у DAIS.
При об'єднанні email і wallet → DAIS залишається єдиною сутністю.
---
# 4. Створення Агентів (Agent Creation Layer)
## 4.1. Коли створюється Agent
Agent створюється автоматично при:
* першому вході через email OTP,
* або першій верифікованій SIWE-сесії,
* або при Telegram/TON-верифікації в майбутньому.
## 4.2. Агент отримує:
* `agent_id`
* `home_microdao_id = DAARION (root)`
* `home_node_id = DAARION-root-node`
* DAIS-прив'язку
* Кабінет агента
* Роль: `regular`
## 4.3. Кабінет агента включає:
* Wallet overview
* Email overview
* Agent avatar / profile
* Список підключених нод
* Доступні сервіси
* Статус до MicroDAO
* Кнопку «Стати Оркестратором»
---
# 5. Перехід у Orchestrator (Orchestrator Promotion)
Це ключовий момент.
Користувач **не може** створити MicroDAO, поки:
* не має агента,
* не має оркестраторської ролі,
* не виконав умови допуску.
## 5.1. Флоу переходу
1. Користувач натискає «Стати Оркестратором».
2. Система перевіряє **умови доступу**.
3. Якщо всі умови виконано → підвищення агента.
4. Генерується подія `agent.promoted_to_orchestrator`.
5. Роль агента = `orchestrator`.
6. Відкривається Wizard створення MicroDAO.
## 5.2. Умови допуску
Умови встановлюються governance DAARION і можуть включати:
* прив'язаний Web3-гаманець;
* наявність основного токена (DAAR / DAARION);
* спеціальний NFT (Founder / Builder / Citizen);
* підтверджений email (обов'язково);
* мінімальний рівень довіри DAIS;
* проста верифікація через Matrix/Telegram.
## 5.3. Інваріанти Orchestrator
1. Кожен Orchestrator — це Agent, але не кожен Agent є Orchestrator.
2. Підвищення — це **одна подія** на агент (необоротна, але можна «заморозити» вручну).
3. Orchestrator може створити багато MicroDAO.
---
# 6. Створення MicroDAO
Коли агент стає Orchestrator → доступний Wizard створення MicroDAO.
## 6.1. Флоу
1. Старт Wizard: назва, опис, цілі, аватар.
2. Прив'язка DAIS-гаманця MicroDAO.
3. Створення запису `microdao_id`.
4. `primary_orchestrator_agent_id = цей агент`.
5. Ініціалізація governance.
6. Створення простору MicroDAO (канали, кімнати).
7. Генерується подія `microdao.created`.
8. Користувач переходить у кабінет MicroDAO.
## 6.2. Інваріанти MicroDAO в онбордингу
1. Немає MicroDAO без Orchestrator-Agent.
2. MicroDAO створюється саме в момент запуску Wizard, а не раніше.
3. Доступ до створення MicroDAO має лише Orchestrator.
---
# 7. Після створення MicroDAO: реєстрація нод
MicroDAO одразу отримує можливість:
* реєструвати ноди,
* прив'язувати пристрої,
* запускати сервісних агентів.
Флоу:
1. Orchestrator заходить у MicroDAO → Nodes.
2. Обирає «Зареєструвати Ноду».
3. Тип ноди: смартфон, ноут, сервер, IoT, GPU-кластер.
4. Автентифікація через DAIS-ключ.
5. Створюється запис `node_id`.
6. Генерується подія `node.registered`.
---
# 8. Значення онбордингу для онтології
Оновлений онбординг:
* **повністю відповідає онтології** Agent → MicroDAO → Node → District
* не ламає поточний UI (кнопка «Створити MicroDAO» зберігається)
* додає строгий порядок:
1. DAIS Identity
2. Agent
3. Orchestrator
4. MicroDAO
5. Node
6. District (опційно)
---
# 9. Події Stream (NATS)
Під час онбордингу фіксуються ключові події:
1. `dais.identity_created`
2. `agent.created`
3. `agent.promoted_to_orchestrator`
4. `microdao.created`
5. `node.registered`
6. (опційно) `microdao.promoted_to_district`
---
# 10. Резюме
Оновлений онбординг DAARION забезпечує:
* єдину ідентичність DAIS
* автоматичне створення агента
* чіткі умови доступу для Orchestrator
* чисту модель MicroDAO
* логічний шлях до реєстрації нод
* сумісність з майбутнім District Layer
* UX, що не ламає існуючих сценаріїв
---
Документ №2 завершено.

View File

@@ -0,0 +1,10 @@
# Agent Types Matrix
| Тип агента | Опис | Приписка | Scope | Може створити MicroDAO | Може працювати у чужих MicroDAO |
|------------|------|----------|--------|-------------------------|---------------------------------|
| Personal Agent | Агент користувача | обов'язково (до DAARION) | microdao | ні | через assignment |
| Service Agent | Технічний агент | до MicroDAO, де розгорнутий | microdao / district | ні | так, якщо assignment |
| Infrastructure Agent | gateway/bridge/monitor | DAARION | district/city | ні | так |
| Core-City Agent (DAARION108) | міська команда | DAARION | city | ні | так (auto) |
| Orchestrator Agent | має доступ до створення MicroDAO | своя MicroDAO | microdao | **так** | ні |

View File

@@ -0,0 +1,41 @@
{
"agent.promoted_to_orchestrator": {
"agent_id": "string",
"timestamp": "datetime"
},
"microdao.created": {
"microdao_id": "string",
"primary_orchestrator_agent_id": "string",
"type": "root | standard | district",
"parent_microdao_id": "string|null",
"timestamp": "datetime"
},
"node.registered": {
"node_id": "string",
"microdao_id": "string",
"node_kind": "smartphone|laptop|edge|datacenter|iot|gpu-cluster",
"capabilities": "object",
"timestamp": "datetime"
},
"microdao.promoted_to_district": {
"microdao_id": "string",
"promoted_by_agent_id": "string",
"parent_microdao_id": "string",
"timestamp": "datetime"
},
"agent.assignment_created": {
"assignment_id": "string",
"agent_id": "string",
"target_microdao_id": "string",
"scope": "microdao|district|city",
"role": "string",
"metadata": "object",
"timestamp": "datetime"
},
"agent.assignment_ended": {
"assignment_id": "string",
"agent_id": "string",
"timestamp": "datetime"
}
}

View File

@@ -0,0 +1,16 @@
# MicroDAO Lifecycle
1. Agent creates DAIS Identity
2. Agent is created (home = DAARION)
3. Agent becomes Orchestrator
4. Orchestrator runs MicroDAO Creation Wizard
5. `microdao.created` event emitted
6. MicroDAO governance initialized
7. Orchestrator registers nodes
8. `node.registered` events emitted
9. MicroDAO grows (members, rooms, agents)
10. (optional) MicroDAO promoted to District
11. `microdao.promoted_to_district` event
12. District manages sub-MicroDAO network
13. MicroDAO can be archived (future)

View File

@@ -0,0 +1,13 @@
# Node Lifecycle
1. Orchestrator triggers "Register Node"
2. Device generates DAIS node-auth key
3. MicroDAO verifies key ownership
4. `node.registered` event emitted
5. Node enters "provisioning" state
6. Agent workers start connecting
7. Node becomes "active"
8. Node can be updated (capabilities change)
9. Node enters "draining" before shutdown
10. Node becomes "retired"

View File

@@ -0,0 +1,18 @@
```mermaid
flowchart TD
A[User visits DAARION.city] --> B{Login method}
B -->|Email OTP| C[Create/Activate DAIS Identity]
B -->|Magic Link| C
B -->|Web3 Wallet (SIWE)| C
C --> D[Create Agent (home_microdao = DAARION)]
D --> E[Agent Console]
E --> F{Become Orchestrator?}
F -->|Yes| G[Check Access Conditions (wallet, tokens)]
G -->|Pass| H[agent.promoted_to_orchestrator]
H --> I[MicroDAO Creation Wizard]
I --> J[microdao.created]
J --> K[NODE REGISTRATION]
K --> L[node.registered]
L --> M[MicroDAO Operational]
```

View File

@@ -0,0 +1,47 @@
# DAARION Ontology — TL;DR
## 1. Основна лінія походження
`Agent → MicroDAO → Node → District`
## 2. Визначення сутностей
### Agent
* персональний або сервісний ШІ-агент;
* має DAIS-ідентичність (email + wallet + DID);
* завжди приписаний до `home_microdao_id`;
* має `role: regular | orchestrator`;
* має `service_scope: microdao | district | city`.
### MicroDAO
* мікро-спільнота, команда або проєкт;
* типи: `root`, `standard`, `district`;
* має `primary_orchestrator_agent_id`;
* може мати ноди;
* може бути підвищена до District.
### Node
* реальний пристрій (smartphone, laptop, edge, datacenter, iot, gpu-cluster);
* завжди належить MicroDAO (`microdao_id`);
* має `capabilities`, `status`.
### District
* MicroDAO з `type = district`;
* має розширені повноваження для підлеглих MicroDAO;
* керує підмережами нод.
## 3. Assignment Layer
Описує, де агент *працює*, не змінюючи приписку.
Поля:
* `agent_id`
* `target_microdao_id`
* `scope` (`microdao` \| `district` \| `city`)
* `role` (`advisor` \| `ops` \| `security` \| `mentor` \| `core-team`)

View File

@@ -0,0 +1,239 @@
# microdao_Data_Model_UPDATE_v1.md
## microDAO — Data Model Update (Foundation Layer)
**Version:** 1.0
**Status:** Non-Breaking Schema Extension
**Scope:** agents, microdaos, nodes, assignments, capabilities, metadata
---
# 0. Мета документа
Цей документ визначає оновлену модель даних microDAO, яка:
* формалізує онтологію DAARION (Agent → MicroDAO → Node → District),
* вводить нові інваріанти,
* додає нові сутності та поля,
* стандартизує JSON-поля `capabilities` і `metadata`,
* додає шар Assignment для агента, який працює в інших MicroDAO,
* залишається сумісною з існуючою системою (non-breaking).
---
# 1. Загальна структура моделі
Оновлена модель складається з п’яти головних сутностей:
1. `agents` (оновлено)
2. `microdaos` (оновлено)
3. `nodes` (оновлено)
4. `agent_assignments` (нова таблиця)
5. `event_log` / outbox (оновлено відповідно до подій)
Усі ці сутності підтримують фундаментальну онтологію DAARION.
---
# 2. Таблиця `agents` (оновлена)
Призначення: зберігати всіх агентів міста — персональних, сервісних, інфраструктурних, core-city, orchestrator.
## 2.1. Поля
```sql
agents (
id text primary key,
dais_identity_id text not null,
-- базова приписка
home_microdao_id text not null references microdaos(id),
home_node_id text null references nodes(id),
-- роль агента
role text not null check (role in ('regular','orchestrator')),
-- тип діяльності (розширений шар)
service_scope text null
check (service_scope in ('microdao','district','city')),
metadata jsonb not null default '{}'::jsonb,
created_at timestamptz not null default now()
);
```
## 2.2. Опис ключових полів
* `home_microdao_id` — база агента (жорсткий інваріант).
* `home_node_id` — нода, на якій живе агент (може бути null).
* `role``regular` або `orchestrator`.
* `service_scope``microdao`, `district`, `city`.
* `metadata` — додаткові параметри (аватар, worker-конфіги, теги тощо).
---
# 3. Таблиця `microdaos` (оновлена)
Призначення: зберігати root, standard, district MicroDAO.
## 3.1. Поля
```sql
microdaos (
id text primary key,
type text not null
check (type in ('root','standard','district')),
primary_orchestrator_agent_id text not null
references agents(id),
parent_microdao_id text null references microdaos(id),
wallet_address text null,
metadata jsonb not null default '{}'::jsonb,
created_at timestamptz not null default now()
);
```
## 3.2. Інваріанти
* MicroDAO не може існувати без `primary_orchestrator_agent_id`.
* `type='root'` зарезервовано для DAARION.
* `type='district'` дає розширені можливості.
* МікроДАО можуть формувати дерево через `parent_microdao_id`.
---
# 4. Таблиця `nodes` (оновлена)
Призначення: зберігати фізичні / логічні вузли виконання DAGI Mesh.
## 4.1. Поля
```sql
nodes (
id text primary key,
microdao_id text not null references microdaos(id),
node_kind text not null
check (node_kind in (
'smartphone','laptop','edge','datacenter',
'iot','gpu-cluster'
)),
capabilities jsonb not null default '{}'::jsonb,
status text not null
check (status in ('provisioning','active','draining','retired')),
metadata jsonb not null default '{}'::jsonb,
created_at timestamptz not null default now()
);
```
## 4.2. Інваріанти
* Node завжди належить конкретній MicroDAO.
* Node — реальний пристрій (не абстракція).
* При створенні ноди генерується подія `node.registered`.
---
# 5. Таблиця `agent_assignments` (нова)
Призначення: описує, де агент працює (service layer), не змінюючи приписку.
## 5.1. Поля
```sql
agent_assignments (
id uuid primary key,
agent_id text not null references agents(id),
target_microdao_id text not null references microdaos(id),
scope text not null
check (scope in ('microdao','district','city')),
role text not null, -- advisor/security/mentor/ops/core-team
start_ts timestamptz not null default now(),
end_ts timestamptz null,
metadata jsonb not null default '{}'::jsonb
);
```
## 5.2. Інваріанти
* Assignment не змінює `home_microdao_id`.
* DAARION108 мають assignments з `scope='city'`.
* Service/Infrastructure агенти можуть мати кілька assignments.
---
# 6. JSON-структури
## 6.1. `capabilities.json`
```json
{
"cpu": "8 cores",
"ram": "32GB",
"gpu": {
"model": "RTX 4090",
"vram": "24GB"
},
"network": {
"up": "1Gbps",
"down": "1Gbps"
},
"sensors": ["camera","lidar","temperature"]
}
```
## 6.2. `metadata.json`
```json
{
"version": "1.0.0",
"agent_type": "service",
"citywide": true,
"labels": ["core","secure","production"],
"notes": "This agent is part of DAARION108"
}
```
---
# 7. Події (пов’язані з моделлю)
* `agent.promoted_to_orchestrator`
* `microdao.created`
* `node.registered`
* `microdao.promoted_to_district`
* `agent.assignment_created`
* `agent.assignment_ended`
Їхні схеми визначені в `microdao_Event_Catalog_EXTENDED_v1.md`.
---
# 8. Міграції (чорновий план)
* додати поля до `agents`;
* додати поля до `microdaos`;
* оновити `nodes`;
* створити `agent_assignments`;
* додати enum-типи (за потреби).
---
# 9. Підсумок
Модель даних тепер повністю відповідає фундаментальній онтології DAARION.
Усі інваріанти формалізовані, Assignment layer додано, структури capabilities/metadata стандартизовано.
Документ готовий до реалізації міграцій та оновлень у коді.

View File

@@ -0,0 +1,236 @@
# microdao_Event_Catalog_EXTENDED_v1.md
## DAARION.city — Event Catalog (Extended Ontology Update)
**Version:** 1.0
**Status:** Core Spec Update (Non-Breaking)
**Scope:** Agent → Orchestrator → MicroDAO → Node → District → Assignment
---
# 0. Мета документа
Визначити повний перелік нових доменних подій, які:
* підтримують онтологію DAARION (Agent → MicroDAO → Node → District),
* описують життєвий цикл агента, мікроДАО, нод та assignment layer,
* забезпечують єдиний контракт для NATS Stream та DAGI Router.
Document не змінює існуючі події microdao — лише додає нові.
---
# 1. Стандарти подій
## 1.1. Структурні правила
* формат JSON;
* поле `event_id` (uuid v4);
* поле `timestamp` (ISO8601 UTC);
* поле `version` (semver);
* поле `subject` (назва події);
* поле `payload` (дані події).
## 1.2. Транспортування
Події транспортуються через NATS у форматі:
`dagion.<domain>.<event>`
---
# 2. Нові події онтології DAARION
## 2.1. `agent.promoted_to_orchestrator`
* **NATS subject:** `dagion.agent.promoted_to_orchestrator`
* **Опис:** Агент отримує роль Orchestrator.
* **Payload:**
```json
{
"type": "object",
"required": ["agent_id","timestamp"],
"properties": {
"agent_id": { "type": "string" },
"timestamp": { "type": "string", "format": "date-time" }
}
}
```
## 2.2. `microdao.created`
* **Subject:** `dagion.microdao.created`
* **Опис:** Створено нову MicroDAO.
* **Payload:**
```json
{
"type": "object",
"required": [
"microdao_id",
"primary_orchestrator_agent_id",
"type",
"timestamp"
],
"properties": {
"microdao_id": { "type": "string" },
"primary_orchestrator_agent_id": { "type": "string" },
"type": { "type": "string", "enum": ["root","standard","district"] },
"parent_microdao_id": { "type": ["string","null"] },
"timestamp": { "type": "string", "format": "date-time" }
}
}
```
## 2.3. `node.registered`
* **Subject:** `dagion.node.registered`
* **Опис:** Зареєстрована нова нода.
* **Payload:**
```json
{
"type": "object",
"required": [
"node_id",
"microdao_id",
"node_kind",
"timestamp"
],
"properties": {
"node_id": { "type": "string" },
"microdao_id": { "type": "string" },
"node_kind": {
"type": "string",
"enum": [
"smartphone","laptop","edge",
"datacenter","iot","gpu-cluster"
]
},
"capabilities": { "type": "object" },
"timestamp": { "type": "string", "format": "date-time" }
}
}
```
## 2.4. `microdao.promoted_to_district`
* **Subject:** `dagion.microdao.promoted_to_district`
* **Опис:** MicroDAO отримує статус District.
* **Payload:**
```json
{
"type": "object",
"required": [
"microdao_id",
"promoted_by_agent_id",
"timestamp"
],
"properties": {
"microdao_id": { "type": "string" },
"promoted_by_agent_id": { "type": "string" },
"parent_microdao_id": { "type": "string" },
"timestamp": { "type": "string", "format": "date-time" }
}
}
```
---
# 3. Assignment Layer Events
## 3.1. `agent.assignment_created`
* **Subject:** `dagion.agent.assignment_created`
* **Опис:** Агент отримав роль у іншій MicroDAO/District/City.
* **Payload:**
```json
{
"type": "object",
"required": [
"assignment_id",
"agent_id",
"target_microdao_id",
"scope",
"role",
"timestamp"
],
"properties": {
"assignment_id": { "type": "string" },
"agent_id": { "type": "string" },
"target_microdao_id": { "type": "string" },
"scope": {
"type": "string",
"enum": ["microdao","district","city"]
},
"role": { "type": "string" },
"metadata": { "type": "object" },
"timestamp": { "type": "string", "format": "date-time" }
}
}
```
## 3.2. `agent.assignment_ended`
* **Subject:** `dagion.agent.assignment_ended`
* **Опис:** Завершено assignment агента.
* **Payload:**
```json
{
"type": "object",
"required": [
"assignment_id",
"agent_id",
"timestamp"
],
"properties": {
"assignment_id": { "type": "string" },
"agent_id": { "type": "string" },
"timestamp": { "type": "string", "format": "date-time" }
}
}
```
---
# 4. Події ідентичності (довідково)
Зовнішній Identity Service генерує:
* `dais.identity_created` (`dagion.identity.created`)
* `agent.created` (`dagion.agent.created`)
Ці події використовуються microdao для синхронізації.
---
# 5. Зв’язок подій з життєвими циклами
* **Agent lifecycle:** `identity.created → agent.created → agent.promoted_to_orchestrator → assignment events`.
* **MicroDAO lifecycle:** `agent.promoted_to_orchestrator → microdao.created → microdao.promoted_to_district`.
* **Node lifecycle:** `microdao.created → node.registered`.
---
# 6. Гарантії та інваріанти
* Події не відкатуються.
* Кожна подія має `event_id`, `timestamp`, `version`.
* Подія не може суперечити онтології DAARION.
* Payload завжди відповідає цій моделі даних.
---
# 7. Переваги Extended Event Catalog
* Повний опис життєвих циклів Agent/MicroDAO/Node/District.
* Синхронізація Identity, microdao, Gateway, DAGI Router.
* Автоматичні реакції agents-as-workers.
* Підготовка до наступних фаз governance та city automation.
Документ завершено.

View File

@@ -0,0 +1,145 @@
# microdao_Governance_And_Permissions_v1.md
## DAARION.city — Governance & Permissions Layer (Minimal Core)
**Version:** 1.0
**Status:** Foundation Spec (Non-Breaking)
**Scope:** Agents, Orchestrators, MicroDAO, Nodes, Districts
---
# 0. Мета документа
Визначити мінімальну, але строгу модель управління та доступів у DAARION.city, яка:
* відповідає онтології Agent → MicroDAO → Node → District,
* захищає критичні операції (створення MicroDAO, реєстрація нод, assignments),
* визначає ролі та ACL, не вводячи громіздкого DAO-протоколу.
Документ розширює існуючі правила microdao без змін поведінки.
---
# 1. Принципи Governance DAARION
1. **Примат онтології.** Усі правила походять із структури Agent → MicroDAO → Node → District.
2. **Мінімальна достатність.** На базовому етапі — тільки найнеобхідніші механіки.
3. **Безпека через приписку.** Будь-який агент/нода мають формальну MicroDAO-приписку.
4. **DAARION як root governance.** Root MicroDAO — вища інстанція та еталон.
---
# 2. Ролі агентів
| Роль | Опис | Доступи |
|-----------------|-------------------------------------------------------------|-----------------------------------------------------------|
| Regular Agent | стандартний агент | вхід, участь у сервісах, виконання assignment |
| Orchestrator | агент, що керує MicroDAO | створення MicroDAO, управління нодами, членами |
| Service Agent | технічний/сервісний агент | доступ до внутрішньої інфраструктури |
| Core-City Agent | DAARION108 (citywide scope) | робота в усьому місті (при дотриманні політик) |
---
# 3. Governance MicroDAO
## 3.1. Основні артефакти
* `primary_orchestrator_agent_id`
* склад агентів і людей
* ноди
* assignments інших агентів
* DAO-налаштування
## 3.2. Дозволи (мінімальний набір)
* Оркестратор:
* редагування `metadata`
* додавання учасників
* запрошення агентів
* реєстрація / вимикання нод
* налаштування front-office
* підвищення до District
* Члени:
* доступ до DAO-кімнат
* участь у проектах
* запуск власних агентів (за правилами governance)
---
# 4. Node Governance
* **Хто реєструє ноду?** Оркестратор MicroDAO.
* **Хто керує нодою?** Оркестратор + довірені core-team агенти (Node Manager, DevOps).
* **Хто може використовувати ноду?**
* агенти цього MicroDAO
* агенти з assignment (якщо дозволено governance)
* citywide агенти (DAARION108) — тільки при спец-дозволах.
---
# 5. District Governance
District = MicroDAO `type='district'`.
Особливості:
* може мати `parent_microdao_id`;
* керує пулом підлеглих MicroDAO;
* має власні ноди / платформи;
* може координувати між-DAO задачі;
* перехід фіксується подією `microdao.promoted_to_district`.
---
# 6. Assignment Governance
Assignment дозволяє агенту працювати поза `home_microdao_id`.
* **Хто створює assignment?**
* Оркестратор MicroDAO (який приймає агента),
* District (для своїх підлеглих),
* DAARION (root) — для citywide операцій.
* **Для чого:**
* DAARION108 → citywide tasks,
* сервісні агенти → підтримка інших MicroDAO,
* зовнішні експерти → консалтинг/безпека.
* **Події:** `agent.assignment_created`, `agent.assignment_ended`.
---
# 7. ACL-модель (мінімум)
| Дозвіл | Опис | Хто має |
|--------------------|-------------------------------------|---------------------|
| `CREATE_MICRODAO` | Створити MicroDAO | Orchestrator |
| `REGISTER_NODE` | Реєструвати ноду | Orchestrator |
| `MANAGE_MEMBERS` | Керувати учасниками MicroDAO | Orchestrator |
| `CITYWIDE_ACCESS` | Діяти у всьому місті | DAARION108, civic |
| `DISTRICT_ADMIN` | Адмініструвати District-платформу | District Orchestrator |
---
# 8. Безпека та перевірка дозволів
Єдиний принцип:
> **Суб’єкт діє в межах своєї приписки + своїх assignment.**
Тобто:
* агент може діяти у своїй MicroDAO;
* агент може діяти в іншій MicroDAO лише через assignment;
* реєструвати ноду може тільки оркестратор MicroDAO-власника;
* District керує підлеглими, але не змінює їхню власність.
---
# 9. Підсумок
* Governance базується на канонічній онтології.
* Визначено роли agent'ів та дозволи.
* Assignment — офіційний механізм співпраці.
* District — розширення MicroDAO, а не нова сутність.
* Модель готова до подальшого розширення (повний ACL/RBAC) без ломки існуючої логіки.

View File

@@ -0,0 +1,146 @@
# DAARION_Person_Agent_DAIS_CoreTeam_PATCH_v1.md
## Patch Update: Human Auth Layer → Agent DAIS Identity → Core-Team Model
**Status:** Architectural Correction (Non-Breaking Patch)
**Version:** 1.0
**Scope:** Clarifies Human vs Agent, DAIS scope, Core-Team Agents, DAARION108, Civic Layer
---
# 0. Мета патча
Уточнити ключові концепції онтології DAARION.city, які не були зафіксовані повністю у фундаментальних документах:
1. різницю між **Human** та **Agent**,
2. що таке **DAIS** і кому він належить,
3. як люди взаємодіють із агентами,
4. хто такі **Core-Team Agents** та як вони працюють у MicroDAO,
5. чим є **DAARION108**,
6. хто представляє місто (civic layer — DAARWIZZ),
7. як MicroDAO стає простором співпраці людей і агентів.
Патч не змінює основні документи — лише уточнює семантику.
---
# 1. Human vs Agent
## 1.1. Human/User
* має Human-auth (email, wallet, Telegram, OTP);
* веде акаунт, налаштування доступу;
* **не має DAIS**;
* взаємодіє з містом через агентів, яких створює та контролює.
## 1.2. Agent
* цифровий представник людини, MicroDAO або організації;
* має DAIS (DID + keys + wallet + Matrix);
* працює у MicroDAO та на нодах;
* є власником кімнат, сторінок, інтерфейсів.
## 1.3. Взаємозв’язок
```
Human (user)
↓ володіє/керує
Agents (1..N)
↓ кожен має
DAIS Identity
↓ кожен приписаний до
MicroDAO
↓ може працювати на
Nodes
```
---
# 2. DAIS належить агенту, а не людині
* DAIS містить DID, ключі, wallets, Matrix handle, signature domains.
* DAIS = цифрове тіло агента.
* Людина має Human Auth і управляє агентом, але не є DID.
---
# 3. Core-Team Agents
* новий клас агентів із розширеними повноваженнями;
* ролі: CEO Agent, CTO Agent, CISO Agent, Architect, Product Lead, DevOps Lead, Legal Agent, HR Agent;
* мають доступ до всієї MicroDAO, координують роботу команд;
* у District — керують підлеглими підрозділами.
---
# 4. Core-Team у District
* District = MicroDAO-платформа;
* має власний **Core-Team Console**;
* може будувати міні-місто / екосистему;
* core-team агентів District керують підлеглими MicroDAO.
---
# 5. DAARION108
* Core-Team MicroDAO «DAARION DAO»;
* не civic layer, не міська підтримка;
* це організаційна команда (аналог команди OpenAI, але AI-команда);
* працює на Node2;
* виконує ролі CEO/CTO/Architect/PM/etc.
---
# 6. Civic Layer (DAARWIZZ)
* окремий шар: міський інтерфейс для громадян;
* агенти: DAARWIZZ (мер), навігатори, модератори, онбордери;
* живуть у root MicroDAO DAARION;
* мають `service_scope = city`.
---
# 7. MicroDAO як простір співпраці
* MicroDAO = workspace, де одночасно працюють люди та агенти;
* містить проєкти, канбан, кімнати, core-team, ноди;
* кожне MicroDAO може виставити публічні front-rooms у місті;
* DAARION (root MicroDAO) теж має свій MicroDAO-інтерфейс.
---
# 8. Інваріанти, які додає патч
1. **Human ≠ Agent.** Людина управляє агентом, але не є DID.
2. **DAIS належить агенту.** DID/ключі — це тіло агента.
3. **Core-Team Agents** — офіційний клас із розширеними правами.
4. **DAARION108** = core-team MicroDAO «DAARION DAO».
5. **Civic Layer (DAARWIZZ)** — незалежний шар, який обслуговує місто.
6. **MicroDAO** = простір співпраці людей і агентів.
---
# 9. Документи, які доповнює патч
* `DAARION_Ontology_Core_v1.md`
* `User_Onboarding_And_Identity_Layer_v1.md`
* `microdao_Governance_And_Permissions_v1.md`
* `microdao_Data_Model_UPDATE_v1.md`
* `DAARION_Identity_And_Access_Draft_v1.md`
---
# 10. Підсумок
Патч закріплює правильну концепцію:
* **DAIS = identity agent, not human.**
* **Human → controls → Agents.**
* **Agents → мають DAIS → діють у світі.**
* **Core-Team Agents** — ключовий клас для MicroDAO/District.
* **DAARION108** — core-team DAARION DAO.
* **DAARWIZZ** + civic агенти — інтерфейс міста.
Документ завершено.

View File

@@ -0,0 +1,214 @@
# TASK: Foundation Implementation in MVP
**Status:** ✅ Implemented
**Priority:** High
**Completed:** 2025-11-29
**Dependencies:** FOUNDATION_UPDATE документи (завершено)
---
## 📋 Огляд
Впровадження оновлень архітектури FOUNDATION_UPDATE в MVP:
- Оновлення Data Model (міграції)
- Нові NATS events
- Backend API оновлення
- Frontend оновлення
---
## ✅ Що вже є (аналіз)
### Database
- [x] `agents.is_orchestrator` (boolean) - частковий аналог `role`
- [x] `microdaos.is_platform` (boolean) - частковий аналог `type=district`
- [x] `microdaos.parent_microdao_id` - ієрархія
- [x] `microdaos.orchestrator_agent_id` - primary orchestrator
- [x] `nodes.modules`, `nodes.gpu`, `nodes.roles` - capabilities
- [x] `microdao_agents` - зв'язок агентів з мікроДАО
### Backend
- [x] DAO Factory service
- [x] Registry service
- [x] Wallet service
- [x] PDP (Policy Decision Point)
### Frontend
- [x] Agent Hub UI
- [x] MicroDAO Console
- [x] Node Cabinets
- [x] City Page (базова)
---
## 🚀 Що потрібно реалізувати
### Phase 1: Database Schema Update (Міграція 027) ✅
```sql
-- 027_foundation_ontology_update.sql
```
1. **Agents table**
- [x] `dais_identity_id text` - DAIS прив'язка
- [x] `agent_role` enum - замість is_orchestrator
- [x] `agent_service_scope` enum
- [x] `home_microdao_id text` - базова приписка
- [x] `home_node_id text` - базова нода
2. **MicroDAOs table**
- [x] `dao_type` enum (root/standard/district)
- [x] `primary_orchestrator_agent_id text`
- [x] `wallet_address text`
3. **Nodes table**
- [x] `kind` enum (smartphone/laptop/edge/datacenter/iot/gpu-cluster)
- [x] `capabilities jsonb`
- [x] `node_status` enum (provisioning/active/draining/retired)
4. **Нова таблиця: agent_assignments**
- [x] All fields implemented
5. **DAIS tables (нові)**
- [x] `dais_identities`
- [x] `dais_emails`
- [x] `dais_wallets`
- [x] `dais_keys`
6. **Rooms table (нова)**
- [x] Full Rooms Layer support
7. **Event outbox (нова)**
- [x] For NATS event delivery
### Phase 2: NATS Events (Event Catalog) ✅
- [x] `dagion.agent.promoted_to_orchestrator`
- [x] `dagion.microdao.created`
- [x] `dagion.node.registered`
- [x] `dagion.microdao.promoted_to_district`
- [x] `dagion.agent.assignment_created`
- [x] `dagion.agent.assignment_ended`
### Phase 3: Backend API Updates ✅
1. **DAIS routes**
- [x] `POST /api/v1/dais/identity`
- [x] `GET /api/v1/dais/:id`
- [x] `GET /api/v1/dais/agent/:agentId`
- [x] `POST /api/v1/dais/:id/email`
- [x] `POST /api/v1/dais/:id/email/verify`
- [x] `POST /api/v1/dais/:id/wallet`
- [x] `POST /api/v1/dais/:id/wallet/verify`
- [x] `POST /api/v1/dais/:id/promote-to-orchestrator`
2. **Assignment routes**
- [x] `POST /api/v1/assignments`
- [x] `DELETE /api/v1/assignments/:id`
- [x] `GET /api/v1/assignments/agent/:agentId`
- [x] `GET /api/v1/assignments/microdao/:microdaoId`
- [x] `GET /api/v1/assignments/citywide`
- [x] `GET /api/v1/assignments/agent/:agentId/scope`
- [x] `GET /api/v1/assignments/check`
### Phase 4: Frontend Updates ✅
1. **Types**
- [x] `src/types/ontology.ts` - all ontology types
2. **API Clients**
- [x] `src/api/dais.ts`
- [x] `src/api/assignments.ts`
3. **Components**
- [x] `DaisProfileCard.tsx`
- [x] `AssignmentsPanel.tsx`
- [x] `OntologyBadge.tsx` (MicrodaoType, NodeStatus, NodeKind, AgentRole, ServiceScope)
---
## 📁 Файли для створення/оновлення
### Backend
```
backend/
├── domain/
│ ├── dais/
│ │ └── types.ts # DAIS types
│ ├── agent/
│ │ └── types.ts # оновити
│ └── assignment/
│ └── types.ts # нові типи
├── http/
│ ├── dais.routes.ts # новий
│ └── assignment.routes.ts # новий
├── services/
│ ├── dais/
│ │ └── dais.service.ts # новий
│ └── assignment/
│ └── assignment.service.ts # новий
└── infra/
└── nats/
└── events.ts # оновити events catalog
```
### Frontend
```
src/
├── api/
│ ├── dais.ts # новий
│ └── assignments.ts # новий
├── features/
│ ├── dais/
│ │ └── components/ # DAIS UI
│ └── assignments/
│ └── AssignmentsPanel.tsx
└── types/
├── dais.ts # DAIS types
└── ontology.ts # Agent/MicroDAO/Node types
```
### Migrations
```
migrations/
└── 027_foundation_ontology_update.sql
```
---
## 🎯 Acceptance Criteria
1. **Database**
- [ ] Міграція 027 виконана успішно
- [ ] Всі таблиці відповідають Data Model v1
2. **Backend**
- [ ] API routes працюють
- [ ] NATS events публікуються
3. **Frontend**
- [ ] Agent Console показує DAIS/assignments
- [ ] MicroDAO показує type/hierarchy
- [ ] Nodes показують lifecycle
4. **Non-Breaking**
- [ ] Існуючий функціонал працює
- [ ] Backward compatibility збережено
---
## 🔧 Порядок виконання
1. **Створити міграцію** 027_foundation_ontology_update.sql
2. **Застосувати міграцію** на dev БД
3. **Оновити backend types** для нових полів
4. **Додати API routes** для DAIS, assignments
5. **Оновити frontend types**
6. **Додати UI компоненти** для нового функціоналу
7. **Тестування** локально
8. **Deploy** на production
---
**Готовий до виконання?** Починаємо з Phase 1: Database Migration.

View File

@@ -0,0 +1,112 @@
# TASK_PHASE_FOUNDATION_UPDATE.md
## DAARION.city — Fundamental Architecture Update (Non-Breaking)
**Ціль:** зафіксувати онтологію системи (Agent → MicroDAO → Node → District), стандартизувати онбординг, DAIS-ідентичність, типи агентів, події та базовий Data Model — **без порушення існуючого коду / документації**.
---
# 0. Принципи фази
1. **Нічого не ламаємо**, лише додаємо надбудову поверх існуючих документів.
2. Усе, що створюється в цій фазі — фундаментальна архітектура DAARION.
3. Cursor і DAGI-агенти повинні мати єдине джерело істини щодо реєстрації, агентів, мікроДАО, нод, ролей, подій.
---
# 1. Вихідні файли після завершення фази
Фаза повинна створити або оновити **13+ документів**.
## Головні
1. `DAARION_Ontology_Core_v1.md`
2. `User_Onboarding_And_Identity_Layer_v1.md`
3. `Technical_Description_microdao_PATCH_Ontology.md`
4. `microdao_Data_Model_UPDATE_v1.md`
5. `microdao_Event_Catalog_EXTENDED_v1.md`
6. `microdao_Governance_And_Permissions_v1.md`
7. `DAARION_Identity_And_Access_Draft_v1.md`
8. `Rooms_Layer_Architecture_v1.md`
9. `MicroDAO_Interface_Architecture_v1.md`
10. `City_Interface_Architecture_v1.md`
11. `Agents_Interface_Architecture_v1.md`
12. `Nodes_Interface_Architecture_v1.md`
## Допоміжні
* `helpers/ontology-summary.md`
* `helpers/onboarding-flow-diagram.mermaid`
* `helpers/agent-types-matrix.md`
* `helpers/microdao-lifecycle.md`
* `helpers/node-lifecycle.md`
* `helpers/event-schemas.json`
## Патчі
* `patches/DAARION_Person_Agent_DAIS_CoreTeam_PATCH_v1.md`
---
# 2. Tasks
1. **TASK 1 — Ontology Core** → створити базову онтологію (файл №1).
2. **TASK 2 — Onboarding & Identity** → email/wallet/SIWE/DAIS (файл №2).
3. **TASK 3 — Patch Technical Description** → секції онтології в існуючому описі microdao.
4. **TASK 4 — Data Model Update** → agents/microdaos/nodes/assignments.
5. **TASK 5 — Event Catalog** → додати 6 нових подій та схеми.
6. **TASK 6 — Governance Layer** → ролі, ACL, district, assignments.
7. **TASK 7 — Identity & Access Draft** → DAIS як IAM.
8. **TASK 8 — Rooms Layer** → city/microdao/district rooms.
9. **TASK 9 — MicroDAO Interface** → повний UI шару.
10. **TASK 10 — City Interface** → City Square, public rooms, portals.
11. **TASK 11 — Agents Interface** → agent-centric UI.
12. **TASK 12 — Nodes Interface** → node dashboards/control rooms.
13. **TASK 13 — Helper Files** → TL;DR, mermaid, lifecycles, event schemas.
---
# 3. Порядок виконання
1. Ontology → Onboarding → Patch → Data Model → Event Catalog → Governance → Identity & Access.
2. Після цього Rooms Layer та UI документи (MicroDAO/City/Agents/Nodes).
3. Завершити helper-файлами та README.
---
# 4. Гарантії «Non-Breaking Update»
* Неторкнені частини коду/документації залишаються валідними.
* Усі інваріанти вводяться як надбудова.
* Уся логіка створення MicroDAO/агента/нод залишається робочою.
---
# Acceptance checklist
1. **Документи**
* [x] Створено/оновлено всі файли, перелічені вище. ✅ (20 файлів)
* [x] README у `docs/foundation/` описує структуру. ✅
2. **Посилання**
* [x] Перехресні посилання між онтологією, моделлю даних, подіями, інтерфейсами. ✅
3. **Helper-файли**
* [x] TL;DR, діаграма онбордингу, матриця агентів, lifecycles, event schemas. ✅ (6 файлів)
4. **Патчі**
* [x] Застосовано патч Human vs Agent vs DAIS vs Core-Team. ✅
5. **Task readiness**
* [x] `TASK_PHASE_FOUNDATION_UPDATE.md` описує всі deliverables. ✅
* [x] Можна давати Cursor-таски для реалізації MVP на основі цих документів. ✅
---
## ✅ PHASE COMPLETE
**Дата завершення:** 2024-11-29
**Статистика:**
- Основних документів: 12
- Helper-файлів: 6
- Патчів: 1
- README: 1
- **Всього: 20 файлів**