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:
120
docs/foundation/Agents_Interface_Architecture_v1.md
Normal file
120
docs/foundation/Agents_Interface_Architecture_v1.md
Normal 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, ноди) розгортаються через агентів.
|
||||
|
||||
152
docs/foundation/City_Interface_Architecture_v1.md
Normal file
152
docs/foundation/City_Interface_Architecture_v1.md
Normal 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-агенти — обличчя міста.
|
||||
|
||||
Документ завершено.
|
||||
|
||||
234
docs/foundation/DAARION_Identity_And_Access_Draft_v1.md
Normal file
234
docs/foundation/DAARION_Identity_And_Access_Draft_v1.md
Normal 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 і не потребує змін у чинній логіці.
|
||||
|
||||
239
docs/foundation/DAARION_Ontology_Core_v1.md
Normal file
239
docs/foundation/DAARION_Ontology_Core_v1.md
Normal 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 та подальшої розробки.
|
||||
|
||||
161
docs/foundation/MicroDAO_Interface_Architecture_v1.md
Normal file
161
docs/foundation/MicroDAO_Interface_Architecture_v1.md
Normal 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.
|
||||
|
||||
199
docs/foundation/Nodes_Interface_Architecture_v1.md
Normal file
199
docs/foundation/Nodes_Interface_Architecture_v1.md
Normal 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
99
docs/foundation/README.md
Normal 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)
|
||||
|
||||
173
docs/foundation/Rooms_Layer_Architecture_v1.md
Normal file
173
docs/foundation/Rooms_Layer_Architecture_v1.md
Normal 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.
|
||||
|
||||
213
docs/foundation/Technical_Description_microdao_PATCH_Ontology.md
Normal file
213
docs/foundation/Technical_Description_microdao_PATCH_Ontology.md
Normal 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 завершений.
|
||||
|
||||
274
docs/foundation/User_Onboarding_And_Identity_Layer_v1.md
Normal file
274
docs/foundation/User_Onboarding_And_Identity_Layer_v1.md
Normal 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 завершено.
|
||||
|
||||
10
docs/foundation/helpers/agent-types-matrix.md
Normal file
10
docs/foundation/helpers/agent-types-matrix.md
Normal 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 | **так** | ні |
|
||||
|
||||
41
docs/foundation/helpers/event-schemas.json
Normal file
41
docs/foundation/helpers/event-schemas.json
Normal 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"
|
||||
}
|
||||
}
|
||||
|
||||
16
docs/foundation/helpers/microdao-lifecycle.md
Normal file
16
docs/foundation/helpers/microdao-lifecycle.md
Normal 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)
|
||||
|
||||
13
docs/foundation/helpers/node-lifecycle.md
Normal file
13
docs/foundation/helpers/node-lifecycle.md
Normal 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"
|
||||
|
||||
18
docs/foundation/helpers/onboarding-flow-diagram.mermaid
Normal file
18
docs/foundation/helpers/onboarding-flow-diagram.mermaid
Normal 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]
|
||||
```
|
||||
|
||||
47
docs/foundation/helpers/ontology-summary.md
Normal file
47
docs/foundation/helpers/ontology-summary.md
Normal 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`)
|
||||
|
||||
239
docs/foundation/microdao_Data_Model_UPDATE_v1.md
Normal file
239
docs/foundation/microdao_Data_Model_UPDATE_v1.md
Normal 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 стандартизовано.
|
||||
Документ готовий до реалізації міграцій та оновлень у коді.
|
||||
|
||||
236
docs/foundation/microdao_Event_Catalog_EXTENDED_v1.md
Normal file
236
docs/foundation/microdao_Event_Catalog_EXTENDED_v1.md
Normal 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.
|
||||
|
||||
Документ завершено.
|
||||
|
||||
145
docs/foundation/microdao_Governance_And_Permissions_v1.md
Normal file
145
docs/foundation/microdao_Governance_And_Permissions_v1.md
Normal 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) без ломки існуючої логіки.
|
||||
|
||||
|
||||
@@ -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 агенти — інтерфейс міста.
|
||||
|
||||
Документ завершено.
|
||||
|
||||
214
docs/tasks/TASK_FOUNDATION_IMPLEMENTATION.md
Normal file
214
docs/tasks/TASK_FOUNDATION_IMPLEMENTATION.md
Normal 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.
|
||||
|
||||
112
docs/tasks/TASK_PHASE_FOUNDATION_UPDATE.md
Normal file
112
docs/tasks/TASK_PHASE_FOUNDATION_UPDATE.md
Normal 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 файлів**
|
||||
|
||||
Reference in New Issue
Block a user