# 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..` --- # 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. Документ завершено.