feat(foundation): FOUNDATION_UPDATE implementation

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

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

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

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

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

View File

@@ -0,0 +1,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 завершено.