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,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 та подальшої розробки.