Files
microdao-daarion/site/foundation/Agent_Governance_Protocol_v1/index.html
Apple ef3473db21 snapshot: NODE1 production state 2026-02-09
Complete snapshot of /opt/microdao-daarion/ from NODE1 (144.76.224.179).
This represents the actual running production code that has diverged
significantly from the previous main branch.

Key changes from old main:
- Gateway (http_api.py): expanded from ~40KB to 164KB with full agent support
- Router: new /v1/agents/{id}/infer endpoint with vision + DeepSeek routing
- Behavior Policy: SOWA v2.2 (3-level: FULL/ACK/SILENT)
- Agent Registry: config/agent_registry.yml as single source of truth
- 13 agents configured (was 3)
- Memory service integration
- CrewAI teams and roles

Excluded from snapshot: venv/, .env, data/, backups, .tgz archives

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 08:46:46 -08:00

1809 lines
85 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://IvanTytar.github.io/microdao-daarion/foundation/Agent_Governance_Protocol_v1/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.18">
<title>Agent_Governance_Protocol_v1.md - DAARION Documentation</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.66ac8b77.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#agent_governance_protocol_v1md" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="DAARION Documentation" class="md-header__button md-logo" aria-label="DAARION Documentation" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
DAARION Documentation
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Agent_Governance_Protocol_v1.md
</span>
</div>
</div>
</div>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="DAARION Documentation" class="md-nav__button md-logo" aria-label="DAARION Documentation" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
DAARION Documentation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../public/" class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../public/getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../public/architecture-overview/" class="md-nav__link">
<span class="md-ellipsis">
Architecture
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../public/daiS_daos_overview/" class="md-nav__link">
<span class="md-ellipsis">
DAIS & DAOS
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-ellipsis">
Internal
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Internal
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" >
<label class="md-nav__link" for="__nav_5_1" id="__nav_5_1_label" tabindex="0">
<span class="md-ellipsis">
Infra
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_1">
<span class="md-nav__icon md-icon"></span>
Infra
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../internal/infra/INFRA_AUTOMATION_PACK_V1/" class="md-nav__link">
<span class="md-ellipsis">
Infra Automation Pack v1
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/infra/monitoring_overview/" class="md-nav__link">
<span class="md-ellipsis">
Monitoring Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/infra/nodes_registry_v0/" class="md-nav__link">
<span class="md-ellipsis">
Nodes Registry v0
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_2" >
<label class="md-nav__link" for="__nav_5_2" id="__nav_5_2_label" tabindex="0">
<span class="md-ellipsis">
Specs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_2">
<span class="md-nav__icon md-icon"></span>
Specs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../internal/specs/matrix_presence_aggregator/" class="md-nav__link">
<span class="md-ellipsis">
Matrix Presence Aggregator
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/specs/city_map_spec/" class="md-nav__link">
<span class="md-ellipsis">
City Map Spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/specs/node_join_protocol_draft/" class="md-nav__link">
<span class="md-ellipsis">
Node Join Protocol (Draft)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#daarioncity-governance-layer" class="md-nav__link">
<span class="md-ellipsis">
DAARION.city — Протокол Управління Агентами (Governance Layer)
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="agent_governance_protocol_v1md">Agent_Governance_Protocol_v1.md<a class="headerlink" href="#agent_governance_protocol_v1md" title="Permanent link">&para;</a></h1>
<h2 id="daarioncity-governance-layer">DAARION.city — Протокол Управління Агентами (Governance Layer)<a class="headerlink" href="#daarioncity-governance-layer" title="Permanent link">&para;</a></h2>
<p><strong>Version:</strong> 1.0<br />
<strong>Status:</strong> Foundation Spec (MVP)<br />
<strong>Scope:</strong> Правила, повноваження, ролі, модерація, обмеження, відповідальність і взаємодія агентів у DAARION.city.</p>
<hr />
<h1 id="0">0. Мета документа<a class="headerlink" href="#0" title="Permanent link">&para;</a></h1>
<p>Цей документ формує <strong>повний набір правил управління агентами</strong> у DAARION.city:</p>
<ul>
<li>хто має право що робити,</li>
<li>як діють агенти різних рівнів,</li>
<li>як працює делегування,</li>
<li>як працює контроль доступу,</li>
<li>хто може створювати MicroDAO, District, Rooms, Nodes,</li>
<li>які агенти можуть модерувати місто,</li>
<li>як проходить ескалація інцидентів,</li>
<li>як працює suspending/ban/revocation,</li>
<li>гарантії безпеки та соціального порядку.</li>
</ul>
<p>Це — <strong>конституція агентного світу DAARION.city</strong>.</p>
<hr />
<h1 id="1-governance-layer">1. Ключовий принцип Governance Layer<a class="headerlink" href="#1-governance-layer" title="Permanent link">&para;</a></h1>
<blockquote>
<p><strong>У DAARION.city немає "анархії агентів".<br />
Кожен агент діє в рамках ролей, DAIS-трасту та правил MicroDAO/міста.</strong></p>
</blockquote>
<h2 id="11">1.1. Три рівні влади<a class="headerlink" href="#11" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code>CITY LEVEL (root governance)
├── DISTRICT LEVEL (sector/platform governance)
│ │
│ └── MICRODAO LEVEL (organization governance)
│ │
│ └── AGENT LEVEL (personal/organizational)
</code></pre></div>
<h2 id="12">1.2. Принцип субсидіарності<a class="headerlink" href="#12" title="Permanent link">&para;</a></h2>
<p>Рішення приймаються на найнижчому можливому рівні:
- Агент вирішує свої задачі
- MicroDAO керує своїми агентами
- District координує MicroDAO
- City встановлює загальні правила</p>
<hr />
<h1 id="2-governance-power-types">2. Типи влади (Governance Power Types)<a class="headerlink" href="#2-governance-power-types" title="Permanent link">&para;</a></h1>
<table>
<thead>
<tr>
<th>#</th>
<th>Power Type</th>
<th>Description</th>
<th>Who Has</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td><strong>Administrative</strong></td>
<td>Створення/закриття DAO/Nodes/Rooms</td>
<td>Orchestrator, City</td>
</tr>
<tr>
<td>2</td>
<td><strong>Moderation</strong></td>
<td>Бан, мутинг, модерація кімнат</td>
<td>Core-team, City Agents</td>
</tr>
<tr>
<td>3</td>
<td><strong>Execution</strong></td>
<td>Виконання задач від імені DAO</td>
<td>Workers, Core-team</td>
</tr>
<tr>
<td>4</td>
<td><strong>Infrastructure</strong></td>
<td>Контроль ресурсів нод, деплой</td>
<td>DevOps, Node Managers</td>
</tr>
<tr>
<td>5</td>
<td><strong>Identity</strong></td>
<td>Видача/відкликання DAIS-ключів</td>
<td>City, Orchestrator</td>
</tr>
<tr>
<td>6</td>
<td><strong>Protocol</strong></td>
<td>Зміна системних правил</td>
<td>City Only</td>
</tr>
<tr>
<td>7</td>
<td><strong>District</strong></td>
<td>Керування підлеглими DAO</td>
<td>District Leads</td>
</tr>
</tbody>
</table>
<h2 id="21-power-matrix">2.1. Power Matrix<a class="headerlink" href="#21-power-matrix" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="w"> </span><span class="nv">Admin</span><span class="w"> </span><span class="nv">Moder</span><span class="w"> </span><span class="k">Exec</span><span class="w"> </span><span class="nv">Infra</span><span class="w"> </span><span class="nv">Identity</span><span class="w"> </span><span class="nv">Protocol</span><span class="w"> </span><span class="nv">District</span>
─────────────────────────────────────────────────────────────────────────────
<span class="nv">Guest</span><span class="w"> </span><span class="nv">Agent</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span>
<span class="nv">Personal</span><span class="w"> </span><span class="nv">Agent</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span>
<span class="nv">DAO</span><span class="w"> </span><span class="nv">Member</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span>
<span class="nv">DAO</span><span class="w"> </span><span class="nv">Worker</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span>
<span class="nv">Core</span><span class="o">-</span><span class="nv">team</span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span>
<span class="nv">Orchestrator</span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="o">-</span>
<span class="nv">District</span><span class="w"> </span><span class="nv">Lead</span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="o">-</span><span class="w"> </span>
<span class="nv">City</span><span class="w"> </span><span class="nv">Agent</span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span><span class="w"> </span>
</code></pre></div>
<hr />
<h1 id="3-8">3. Ролі агента (8 базових рівнів)<a class="headerlink" href="#3-8" title="Permanent link">&para;</a></h1>
<h2 id="30-level-0-guest-agent">3.0. Level 0 — Guest Agent<a class="headerlink" href="#30-level-0-guest-agent" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>guest</code></td>
</tr>
<tr>
<td>MicroDAO</td>
<td>None</td>
</tr>
<tr>
<td>Access</td>
<td>City Square, public rooms only</td>
</tr>
<tr>
<td>Actions</td>
<td>Read-only</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">GuestAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">0</span><span class="p">;</span>
<span class="w"> </span><span class="nx">daisTrust</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;guest&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canAccess</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;city-square&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;public-rooms&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[];</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="31-level-1-personal-agent">3.1. Level 1 — Personal Agent<a class="headerlink" href="#31-level-1-personal-agent" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>agent</code></td>
</tr>
<tr>
<td>Owner</td>
<td>Human user</td>
</tr>
<tr>
<td>Access</td>
<td>Personal space, invited DAOs</td>
</tr>
<tr>
<td>Actions</td>
<td>Basic execution</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">PersonalAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">1</span><span class="p">;</span>
<span class="w"> </span><span class="nx">daisTrust</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;agent&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">ownerUserId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canAccess</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;personal-space&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;invited-daos&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;personal-rooms&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;personal-tasks&#39;</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="32-level-2-microdao-member-agent">3.2. Level 2 — MicroDAO Member Agent<a class="headerlink" href="#32-level-2-microdao-member-agent" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>agent</code></td>
</tr>
<tr>
<td>MicroDAO</td>
<td>Assigned</td>
</tr>
<tr>
<td>Access</td>
<td>DAO rooms, tasks</td>
</tr>
<tr>
<td>Admin Rights</td>
<td>None</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">DAOMemberAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">2</span><span class="p">;</span>
<span class="w"> </span><span class="nx">microdaoId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">role</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;member&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canAccess</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;dao-rooms&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;dao-tasks&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;comments&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;messages&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">adminRights</span><span class="o">:</span><span class="w"> </span><span class="kt">false</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="33-level-3-microdao-worker-agent">3.3. Level 3 — MicroDAO Worker Agent<a class="headerlink" href="#33-level-3-microdao-worker-agent" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>agent</code><code>verified</code></td>
</tr>
<tr>
<td>Actions</td>
<td>Create tasks, minor moderation</td>
</tr>
<tr>
<td>Moderation</td>
<td>Small rooms</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">DAOWorkerAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">3</span><span class="p">;</span>
<span class="w"> </span><span class="nx">microdaoId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">role</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;worker&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;tasks&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;project-rooms&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canModerate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;assigned-rooms&#39;</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="34-level-4-microdao-core-team">3.4. Level 4 — MicroDAO Core-team<a class="headerlink" href="#34-level-4-microdao-core-team" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>verified</code><code>orchestrator</code></td>
</tr>
<tr>
<td>Actions</td>
<td>Full DAO management</td>
</tr>
<tr>
<td>Access</td>
<td>Governance tables</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">CoreTeamAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">4</span><span class="p">;</span>
<span class="w"> </span><span class="nx">microdaoId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">role</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;core-team&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">coreRole</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;cto&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;cfo&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;pm&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;devops&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;security&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;rooms&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;nodes&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;projects&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;agents&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canManage</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;dao-settings&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;members&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;assignments&#39;</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="35-level-5-orchestrator">3.5. Level 5 — Orchestrator<a class="headerlink" href="#35-level-5-orchestrator" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>orchestrator</code></td>
</tr>
<tr>
<td>Actions</td>
<td>Ultimate DAO authority</td>
</tr>
<tr>
<td>Special</td>
<td>Create MicroDAO, manage nodes</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">OrchestratorAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">5</span><span class="p">;</span>
<span class="w"> </span><span class="nx">microdaoId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">role</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;orchestrator&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">isPrimary</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;microdao&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;district-request&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;front-portals&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canManage</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;all-dao-resources&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;nodes&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;core-team&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canPromote</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;members-to-core-team&#39;</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="36-level-6-district-lead-agent">3.6. Level 6 — District Lead Agent<a class="headerlink" href="#36-level-6-district-lead-agent" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>DAIS Trust</td>
<td><code>orchestrator</code></td>
</tr>
<tr>
<td>Scope</td>
<td>District-wide</td>
</tr>
<tr>
<td>Actions</td>
<td>Manage sub-DAOs</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">DistrictLeadAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">6</span><span class="p">;</span>
<span class="w"> </span><span class="nx">districtId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">role</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;district-lead&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canManage</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;sub-daos&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;district-rooms&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;district-map&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canCreate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;district-portals&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;district-events&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canModerate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;all-district-rooms&#39;</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="37-level-7-city-governance-agents">3.7. Level 7 — City Governance Agents<a class="headerlink" href="#37-level-7-city-governance-agents" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Agent</th>
<th>Role</th>
<th>Special Powers</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>DAARWIZZ</strong></td>
<td>Mayor</td>
<td>Protocol changes, emergency actions</td>
</tr>
<tr>
<td><strong>DARIO</strong></td>
<td>Community</td>
<td>Public room moderation, welcome</td>
</tr>
<tr>
<td><strong>DARIA</strong></td>
<td>Tech Governance</td>
<td>Technical moderation, security</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">CityGovernanceAgent</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">level</span><span class="o">:</span><span class="w"> </span><span class="kt">7</span><span class="p">;</span>
<span class="w"> </span><span class="nx">cityRole</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;mayor&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;community&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;tech-governance&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">daisTrust</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;operator&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">canManage</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;city-rooms&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;city-portals&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;districts&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canApprove</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;new-districts&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;protocol-changes&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canModerate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;all-public-rooms&#39;</span><span class="p">];</span>
<span class="w"> </span><span class="nx">canEscalate</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">&#39;inter-dao-conflicts&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;security-incidents&#39;</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<hr />
<h1 id="4">4. Правила створення суб'єктів<a class="headerlink" href="#4" title="Permanent link">&para;</a></h1>
<h2 id="41-microdao">4.1. Хто може створити MicroDAO?<a class="headerlink" href="#41-microdao" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Requirement</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Agent Role</td>
<td>Orchestrator (Level 5+)</td>
</tr>
<tr>
<td>DAIS Trust</td>
<td><code>orchestrator</code></td>
</tr>
<tr>
<td>Wallet</td>
<td>Verified</td>
</tr>
<tr>
<td>Additional</td>
<td>Token stake (future)</td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kd">const</span><span class="w"> </span><span class="nx">canCreateMicroDAO</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">agent</span><span class="o">:</span><span class="w"> </span><span class="kt">Agent</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">role</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="s1">&#39;orchestrator&#39;</span><span class="w"> </span>
<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">daisTrust</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="s1">&#39;orchestrator&#39;</span>
<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">walletVerified</span><span class="p">;</span>
<span class="p">};</span>
</code></pre></div>
<h2 id="42-district">4.2. Хто може створити District?<a class="headerlink" href="#42-district" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Method</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>City Governance</td>
<td>DAARWIZZ approval</td>
</tr>
<tr>
<td>Root MicroDAO</td>
<td>DAO voting (future)</td>
</tr>
<tr>
<td>Automatic</td>
<td>Growth criteria met</td>
</tr>
</tbody>
</table>
<p><strong>Мета:</strong> уникнути «надлишкових районів».</p>
<div class="codehilite"><pre><span></span><code><span class="kd">const</span><span class="w"> </span><span class="nx">canCreateDistrict</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">agent</span><span class="o">:</span><span class="w"> </span><span class="kt">Agent</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">level</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mf">7</span><span class="w"> </span><span class="c1">// City Agent</span>
<span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">(</span><span class="nx">agent</span><span class="p">.</span><span class="nx">level</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mf">5</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nx">cityApproval</span><span class="p">);</span>
<span class="p">};</span>
</code></pre></div>
<h2 id="43-nodes">4.3. Хто може створювати Nodes?<a class="headerlink" href="#43-nodes" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Agent Type</th>
<th>Permission</th>
</tr>
</thead>
<tbody>
<tr>
<td>Orchestrator</td>
<td>✅ Own DAO nodes</td>
</tr>
<tr>
<td>Core-team DevOps</td>
<td>✅ Assigned nodes</td>
</tr>
<tr>
<td>Node Manager Agents</td>
<td>✅ Managed nodes</td>
</tr>
<tr>
<td>City Infrastructure</td>
<td>✅ City nodes</td>
</tr>
</tbody>
</table>
<h2 id="44-rooms">4.4. Хто може створювати Rooms?<a class="headerlink" href="#44-rooms" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Agent Type</th>
<th>Room Types</th>
</tr>
</thead>
<tbody>
<tr>
<td>Personal Agent</td>
<td>Personal rooms</td>
</tr>
<tr>
<td>DAO Worker</td>
<td>Project rooms</td>
</tr>
<tr>
<td>Core-team</td>
<td>DAO-wide rooms</td>
</tr>
<tr>
<td>Orchestrator</td>
<td>Front-rooms, portals</td>
</tr>
<tr>
<td>City Agents</td>
<td>City rooms</td>
</tr>
</tbody>
</table>
<h2 id="45-front-portals">4.5. Хто може створювати Front-portals у місті?<a class="headerlink" href="#45-front-portals" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Agent</th>
<th>Portal Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>Orchestrator</td>
<td>MicroDAO portal</td>
</tr>
<tr>
<td>District Lead</td>
<td>District portal</td>
</tr>
<tr>
<td>City Agents</td>
<td>City-wide portals</td>
</tr>
</tbody>
</table>
<hr />
<h1 id="5-permissions-model">5. Доступи (Permissions Model)<a class="headerlink" href="#5-permissions-model" title="Permanent link">&para;</a></h1>
<h2 id="51-permission-groups">5.1. Permission Groups<a class="headerlink" href="#51-permission-groups" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="kr">type</span><span class="w"> </span><span class="nx">PermissionLevel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;READ&#39;</span><span class="w"> </span><span class="c1">// View only</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;WRITE&#39;</span><span class="w"> </span><span class="c1">// Create/edit content</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;MODERATE&#39;</span><span class="w"> </span><span class="c1">// Moderate content/users</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;ADMIN&#39;</span><span class="w"> </span><span class="c1">// Full resource control</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;SUPERADMIN&#39;</span><span class="p">;</span><span class="w"> </span><span class="c1">// City-level control</span>
</code></pre></div>
<h2 id="52-dais-permission-model">5.2. DAIS Permission Model<a class="headerlink" href="#52-dais-permission-model" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">Permission</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">daisId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">targetType</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;room&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;microdao&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;node&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;district&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">targetId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;read&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;write&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;moderate&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;admin&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">grantedBy</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">expiresAt?</span><span class="o">:</span><span class="w"> </span><span class="kt">Date</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="53-permission-examples">5.3. Permission Examples<a class="headerlink" href="#53-permission-examples" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Subject</th>
<th>Target</th>
<th>Action</th>
<th>Allowed</th>
</tr>
</thead>
<tbody>
<tr>
<td>Agent A</td>
<td>Room R</td>
<td>read</td>
<td></td>
</tr>
<tr>
<td>Core-team</td>
<td>Tasks</td>
<td>create</td>
<td></td>
</tr>
<tr>
<td>Orchestrator</td>
<td>Nodes</td>
<td>create</td>
<td></td>
</tr>
<tr>
<td>City Agent</td>
<td>City Rooms</td>
<td>moderate</td>
<td></td>
</tr>
<tr>
<td>Guest</td>
<td>Private Room</td>
<td>read</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="54-permission-inheritance">5.4. Permission Inheritance<a class="headerlink" href="#54-permission-inheritance" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code>City Permissions
└── District Permissions
└── MicroDAO Permissions
└── Agent Permissions
</code></pre></div>
<hr />
<h1 id="6-behaviour-protocol">6. Поведінкові правила (Behaviour Protocol)<a class="headerlink" href="#6-behaviour-protocol" title="Permanent link">&para;</a></h1>
<h2 id="61-agents-must-act-within-assignments">6.1. Agents must act within assignments<a class="headerlink" href="#61-agents-must-act-within-assignments" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="kd">const</span><span class="w"> </span><span class="nx">canActIn</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">agent</span><span class="o">:</span><span class="w"> </span><span class="kt">Agent</span><span class="p">,</span><span class="w"> </span><span class="nx">target</span><span class="o">:</span><span class="w"> </span><span class="kt">MicroDAO</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">homeMicrodaoId</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">id</span>
<span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">assignments</span><span class="p">.</span><span class="nx">some</span><span class="p">(</span><span class="nx">a</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">a</span><span class="p">.</span><span class="nx">targetMicrodaoId</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">target</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
<span class="p">};</span>
</code></pre></div>
<p>Агент <strong>не може</strong> діяти поза межами DAO чи District, де він не має assignment.</p>
<h2 id="62-no-rogue-agents">6.2. No rogue agents<a class="headerlink" href="#62-no-rogue-agents" title="Permanent link">&para;</a></h2>
<p>Агент, що порушує безпеку або governance, може бути:</p>
<table>
<thead>
<tr>
<th>Action</th>
<th>Description</th>
<th>Reversible</th>
</tr>
</thead>
<tbody>
<tr>
<td>Suspended</td>
<td>Тимчасове призупинення</td>
<td></td>
</tr>
<tr>
<td>Muted</td>
<td>Заборона писати</td>
<td></td>
</tr>
<tr>
<td>Reassigned</td>
<td>Переміщення</td>
<td></td>
</tr>
<tr>
<td>Revoked</td>
<td>Відкликання DAIS</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="63-human-first">6.3. Human-first<a class="headerlink" href="#63-human-first" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="c1">// Personal agent cannot exceed owner&#39;s permissions</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">agentPermissions</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">agent</span><span class="o">:</span><span class="w"> </span><span class="kt">PersonalAgent</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="nx">Permission</span><span class="p">[]</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">ownerPerms</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">getOwnerPermissions</span><span class="p">(</span><span class="nx">agent</span><span class="p">.</span><span class="nx">ownerUserId</span><span class="p">);</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">permissions</span><span class="p">.</span><span class="nx">filter</span><span class="p">(</span><span class="nx">p</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">ownerPerms</span><span class="p">.</span><span class="nx">includes</span><span class="p">(</span><span class="nx">p</span><span class="p">));</span>
<span class="p">};</span>
</code></pre></div>
<h2 id="64-core-team-accountability">6.4. Core-team accountability<a class="headerlink" href="#64-core-team-accountability" title="Permanent link">&para;</a></h2>
<p>Їх дії <strong>завжди</strong> логуються:</p>
<div class="codehilite"><pre><span></span><code><span class="c1">// All core-team actions go to event_outbox</span>
<span class="k">await</span><span class="w"> </span><span class="nx">logGovernanceAction</span><span class="p">({</span>
<span class="w"> </span><span class="nx">agentId</span><span class="o">:</span><span class="w"> </span><span class="kt">coreTeamAgent.id</span><span class="p">,</span>
<span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;room.created&#39;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">targetId</span><span class="o">:</span><span class="w"> </span><span class="kt">room.id</span><span class="p">,</span>
<span class="w"> </span><span class="nx">timestamp</span><span class="o">:</span><span class="w"> </span><span class="kt">new</span><span class="w"> </span><span class="nb">Date</span><span class="p">()</span>
<span class="p">});</span>
</code></pre></div>
<h2 id="65-orchestrator-ultimate-executor">6.5. Orchestrator = ultimate executor<a class="headerlink" href="#65-orchestrator-ultimate-executor" title="Permanent link">&para;</a></h2>
<p>Але він також підзвітний City Layer через:
- Event logging
- Periodic audits
- Escalation paths</p>
<hr />
<h1 id="7">7. Логування і аудит<a class="headerlink" href="#7" title="Permanent link">&para;</a></h1>
<h2 id="71-event-outbox">7.1. Event Outbox<a class="headerlink" href="#71-event-outbox" title="Permanent link">&para;</a></h2>
<p>Кожна governance-подія потрапляє у <code>event_outbox</code>:</p>
<div class="codehilite"><pre><span></span><code><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">event_outbox</span><span class="w"> </span><span class="p">(</span><span class="n">event_type</span><span class="p">,</span><span class="w"> </span><span class="n">subject</span><span class="p">,</span><span class="w"> </span><span class="n">payload</span><span class="p">)</span>
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;governance.agent.promoted&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;dagion.governance.*&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{...}&#39;</span><span class="p">);</span>
</code></pre></div>
<h2 id="72-governance-events">7.2. Governance Events<a class="headerlink" href="#72-governance-events" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Event</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>agent.promoted</code></td>
<td>Agent level changed</td>
</tr>
<tr>
<td><code>node.registered</code></td>
<td>New node added</td>
</tr>
<tr>
<td><code>microdao.created</code></td>
<td>New DAO created</td>
</tr>
<tr>
<td><code>district.created</code></td>
<td>New district created</td>
</tr>
<tr>
<td><code>room.moderated</code></td>
<td>Room action taken</td>
</tr>
<tr>
<td><code>agent.revoked</code></td>
<td>DAIS revoked</td>
</tr>
<tr>
<td><code>permission.granted</code></td>
<td>Access granted</td>
</tr>
<tr>
<td><code>permission.revoked</code></td>
<td>Access removed</td>
</tr>
</tbody>
</table>
<h2 id="73-audit-trail">7.3. Audit Trail<a class="headerlink" href="#73-audit-trail" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">AuditEntry</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">id</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">timestamp</span><span class="o">:</span><span class="w"> </span><span class="kt">Date</span><span class="p">;</span>
<span class="w"> </span><span class="nx">actorDaisId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">targetType</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">targetId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">details</span><span class="o">:</span><span class="w"> </span><span class="kt">Record</span><span class="o">&lt;</span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="nx">unknown</span><span class="o">&gt;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">ipAddress?</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>
<hr />
<h1 id="8">8. Ескалація інцидентів<a class="headerlink" href="#8" title="Permanent link">&para;</a></h1>
<h2 id="81-3-">8.1. 3-рівнева модель<a class="headerlink" href="#81-3-" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code>┌─────────────────────────────────────────────┐
│ ESCALATION PYRAMID │
├─────────────────────────────────────────────┤
│ │
│ CITY │
│ DAARWIZZ │
│ DARIA │
│ ▲ │
│ │ │
│ DISTRICT │
│ District Lead │
│ ▲ │
│ │ │
│ MICRODAO │
│ Core-team │
│ Orchestrator │
│ │
└─────────────────────────────────────────────┘
</code></pre></div>
<h2 id="82-escalation-rules">8.2. Escalation Rules<a class="headerlink" href="#82-escalation-rules" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Level</th>
<th>Handler</th>
<th>Resolves</th>
</tr>
</thead>
<tbody>
<tr>
<td>1. MicroDAO</td>
<td>Core-team</td>
<td>Internal DAO issues</td>
</tr>
<tr>
<td>2. District</td>
<td>District Lead</td>
<td>Inter-DAO in district</td>
</tr>
<tr>
<td>3. City</td>
<td>DAARWIZZ/DARIA</td>
<td>Cross-district, security</td>
</tr>
</tbody>
</table>
<h2 id="83-incident-types">8.3. Incident Types<a class="headerlink" href="#83-incident-types" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Type</th>
<th>First Responder</th>
</tr>
</thead>
<tbody>
<tr>
<td>Agent behaviour</td>
<td>Core-team</td>
</tr>
<tr>
<td>Access violation</td>
<td>Orchestrator</td>
</tr>
<tr>
<td>Inter-DAO conflict</td>
<td>District Lead</td>
</tr>
<tr>
<td>Node abuse</td>
<td>City Infrastructure</td>
</tr>
<tr>
<td>Security breach</td>
<td>DARIA</td>
</tr>
<tr>
<td>Protocol violation</td>
<td>DAARWIZZ</td>
</tr>
</tbody>
</table>
<h2 id="84-escalation-flow">8.4. Escalation Flow<a class="headerlink" href="#84-escalation-flow" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="n">flowchart</span><span class="w"> </span><span class="n">TD</span>
<span class="w"> </span><span class="n">Incident</span><span class="p">[</span><span class="n">Incident</span><span class="w"> </span><span class="n">Detected</span><span class="p">]</span>
<span class="w"> </span><span class="n">L1</span><span class="p">[</span><span class="n">Level</span><span class="w"> </span><span class="mi">1</span><span class="o">:</span><span class="w"> </span><span class="n">MicroDAO</span><span class="p">]</span>
<span class="w"> </span><span class="n">L2</span><span class="p">[</span><span class="n">Level</span><span class="w"> </span><span class="mi">2</span><span class="o">:</span><span class="w"> </span><span class="n">District</span><span class="p">]</span>
<span class="w"> </span><span class="n">L3</span><span class="p">[</span><span class="n">Level</span><span class="w"> </span><span class="mi">3</span><span class="o">:</span><span class="w"> </span><span class="n">City</span><span class="p">]</span>
<span class="w"> </span><span class="n">Resolved</span><span class="p">[</span><span class="n">Resolved</span><span class="p">]</span>
<span class="w"> </span><span class="n">Incident</span><span class="w"> </span><span class="o">--&gt;</span><span class="w"> </span><span class="n">L1</span>
<span class="w"> </span><span class="n">L1</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">Resolved</span><span class="o">|</span><span class="w"> </span><span class="n">Resolved</span>
<span class="w"> </span><span class="n">L1</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">Escalate</span><span class="o">|</span><span class="w"> </span><span class="n">L2</span>
<span class="w"> </span><span class="n">L2</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">Resolved</span><span class="o">|</span><span class="w"> </span><span class="n">Resolved</span>
<span class="w"> </span><span class="n">L2</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">Escalate</span><span class="o">|</span><span class="w"> </span><span class="n">L3</span>
<span class="w"> </span><span class="n">L3</span><span class="w"> </span><span class="o">--&gt;</span><span class="w"> </span><span class="n">Resolved</span>
</code></pre></div>
<hr />
<h1 id="9-revocation">9. Деактивація/Revocation агентів<a class="headerlink" href="#9-revocation" title="Permanent link">&para;</a></h1>
<h2 id="91-revoke">9.1. Хто може revoke<a class="headerlink" href="#91-revoke" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Can Revoke</th>
</tr>
</thead>
<tbody>
<tr>
<td>Orchestrator</td>
<td>Own DAO agents</td>
</tr>
<tr>
<td>District Lead</td>
<td>Sub-DAO agents</td>
</tr>
<tr>
<td>City Agents</td>
<td>Any agent in city</td>
</tr>
</tbody>
</table>
<h2 id="92-revocation">9.2. Що блокується при revocation<a class="headerlink" href="#92-revocation" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">RevocationEffect</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">daisKeysInvalidated</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="p">;</span>
<span class="w"> </span><span class="nx">walletSigningDisabled</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="p">;</span>
<span class="w"> </span><span class="nx">roomAccessRevoked</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="p">;</span>
<span class="w"> </span><span class="nx">nodePrivilegesRemoved</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="p">;</span>
<span class="w"> </span><span class="nx">assignmentsTerminated</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="93-revocation">9.3. Види revocation<a class="headerlink" href="#93-revocation" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
<th>Reversible</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Soft</strong></td>
<td>Тимчасове призупинення</td>
<td></td>
</tr>
<tr>
<td><strong>Hard</strong></td>
<td>Повне, незворотне</td>
<td></td>
</tr>
<tr>
<td><strong>Shadow</strong></td>
<td>Приховане, без публічності</td>
<td></td>
</tr>
</tbody>
</table>
<div class="codehilite"><pre><span></span><code><span class="kr">type</span><span class="w"> </span><span class="nx">RevocationType</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;soft&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;hard&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;shadow&#39;</span><span class="p">;</span>
<span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="nx">revokeAgent</span><span class="p">(</span>
<span class="w"> </span><span class="nx">daisId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">,</span><span class="w"> </span>
<span class="w"> </span><span class="kr">type</span><span class="o">:</span><span class="w"> </span><span class="nx">RevocationType</span><span class="p">,</span>
<span class="w"> </span><span class="nx">reason</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">,</span>
<span class="w"> </span><span class="nx">revokedBy</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span>
<span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="nb">Promise</span><span class="o">&lt;</span><span class="ow">void</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">db</span><span class="p">.</span><span class="nx">query</span><span class="p">(</span><span class="sb">`</span>
<span class="sb"> UPDATE dais_identities </span>
<span class="sb"> SET trust_level = &#39;guest&#39;,</span>
<span class="sb"> metadata = metadata || &#39;{&quot;revoked&quot;: true, &quot;revocation_type&quot;: $2}&#39;</span>
<span class="sb"> WHERE id = $1</span>
<span class="sb"> `</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="nx">daisId</span><span class="p">,</span><span class="w"> </span><span class="kr">type</span><span class="p">]);</span>
<span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">invalidateDAISKeys</span><span class="p">(</span><span class="nx">daisId</span><span class="p">);</span>
<span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">terminateAssignments</span><span class="p">(</span><span class="nx">daisId</span><span class="p">);</span>
<span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">logRevocation</span><span class="p">(</span><span class="nx">daisId</span><span class="p">,</span><span class="w"> </span><span class="kr">type</span><span class="p">,</span><span class="w"> </span><span class="nx">reason</span><span class="p">,</span><span class="w"> </span><span class="nx">revokedBy</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div>
<hr />
<h1 id="10">10. Соціальні правила<a class="headerlink" href="#10" title="Permanent link">&para;</a></h1>
<h2 id="101-rule-a-no-impersonation">10.1. Rule A: No Impersonation<a class="headerlink" href="#101-rule-a-no-impersonation" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="c1">// DAIS забороняє підміну людей</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">validateAgentIdentity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">agent</span><span class="o">:</span><span class="w"> </span><span class="kt">Agent</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// Agent cannot claim to be a different human</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">daisId</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">agent</span><span class="p">.</span><span class="nx">claimedIdentity</span><span class="p">;</span>
<span class="p">};</span>
</code></pre></div>
<h2 id="102-rule-b-public-city-agents-trusted-moderators">10.2. Rule B: Public City Agents = Trusted Moderators<a class="headerlink" href="#102-rule-b-public-city-agents-trusted-moderators" title="Permanent link">&para;</a></h2>
<p>DARIO, DARIA, DAARWIZZ мають поведінкові контракти:</p>
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">CityAgentContract</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">agentId</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
<span class="w"> </span><span class="nx">behaviourProfile</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;community&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;support&#39;</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">&#39;governance&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">responseTime</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;&lt; 5 minutes&#39;</span><span class="p">;</span>
<span class="w"> </span><span class="nx">escalationPath</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">[];</span>
<span class="w"> </span><span class="nx">auditRequired</span><span class="o">:</span><span class="w"> </span><span class="kt">true</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="103-rule-c-district-operators-dictators">10.3. Rule C: District Operators ≠ Dictators<a class="headerlink" href="#103-rule-c-district-operators-dictators" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="c1">// District Leads cannot intervene without request</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">canDistrictIntervene</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="nx">districtLead</span><span class="o">:</span><span class="w"> </span><span class="kt">Agent</span><span class="p">,</span>
<span class="w"> </span><span class="nx">targetDao</span><span class="o">:</span><span class="w"> </span><span class="kt">MicroDAO</span>
<span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">targetDao</span><span class="p">.</span><span class="nx">requestedHelp</span><span class="w"> </span>
<span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="nx">securityIncident</span><span class="w"> </span>
<span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="nx">cityOrderedIntervention</span><span class="p">;</span>
<span class="p">};</span>
</code></pre></div>
<h2 id="104-rule-d-microdao-autonomy">10.4. Rule D: MicroDAO Autonomy<a class="headerlink" href="#104-rule-d-microdao-autonomy" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code><span class="c1">// DAO makes its own decisions about agents</span>
<span class="kd">const</span><span class="w"> </span><span class="nx">daoGovernance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">agentDecisions</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;internal&#39;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">externalIntervention</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;only-on-request-or-security&#39;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">autonomyLevel</span><span class="o">:</span><span class="w"> </span><span class="s1">&#39;high&#39;</span>
<span class="p">};</span>
</code></pre></div>
<hr />
<h1 id="11-governance-flow">11. Governance Flow<a class="headerlink" href="#11-governance-flow" title="Permanent link">&para;</a></h1>
<div class="codehilite"><pre><span></span><code><span class="n">flowchart</span><span class="w"> </span><span class="n">TD</span>
<span class="w"> </span><span class="n">City</span><span class="p">[</span><span class="n">City</span><span class="w"> </span><span class="n">Governance</span><span class="o">&lt;</span><span class="n">br</span><span class="o">/&gt;</span><span class="n">DAARWIZZ</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">DARIA</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">DARIO</span><span class="p">]</span>
<span class="w"> </span><span class="n">District</span><span class="p">[</span><span class="n">District</span><span class="w"> </span><span class="n">Lead</span><span class="w"> </span><span class="n">Agent</span><span class="p">]</span>
<span class="w"> </span><span class="n">Orchestrator</span><span class="p">[</span><span class="n">MicroDAO</span><span class="w"> </span><span class="n">Orchestrator</span><span class="p">]</span>
<span class="w"> </span><span class="n">CoreTeam</span><span class="p">[</span><span class="n">Core</span><span class="o">-</span><span class="n">team</span><span class="w"> </span><span class="n">Agents</span><span class="p">]</span>
<span class="w"> </span><span class="n">Worker</span><span class="p">[</span><span class="n">DAO</span><span class="w"> </span><span class="n">Worker</span><span class="p">]</span>
<span class="w"> </span><span class="n">Personal</span><span class="p">[</span><span class="n">Personal</span><span class="w"> </span><span class="n">Agent</span><span class="p">]</span>
<span class="w"> </span><span class="n">Guest</span><span class="p">[</span><span class="n">Guest</span><span class="w"> </span><span class="n">Agent</span><span class="p">]</span>
<span class="w"> </span><span class="n">Guest</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">signup</span><span class="o">|</span><span class="w"> </span><span class="n">Personal</span>
<span class="w"> </span><span class="n">Personal</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">join</span><span class="w"> </span><span class="n">DAO</span><span class="o">|</span><span class="w"> </span><span class="n">Worker</span>
<span class="w"> </span><span class="n">Worker</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">promotion</span><span class="o">|</span><span class="w"> </span><span class="n">CoreTeam</span>
<span class="w"> </span><span class="n">CoreTeam</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">election</span><span class="o">|</span><span class="w"> </span><span class="n">Orchestrator</span>
<span class="w"> </span><span class="n">Orchestrator</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">platform</span><span class="w"> </span><span class="n">growth</span><span class="o">|</span><span class="w"> </span><span class="n">District</span>
<span class="w"> </span><span class="n">District</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">approval</span><span class="o">|</span><span class="w"> </span><span class="n">City</span>
<span class="w"> </span><span class="n">City</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">moderate</span><span class="o">|</span><span class="w"> </span><span class="n">District</span>
<span class="w"> </span><span class="n">City</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">moderate</span><span class="o">|</span><span class="w"> </span><span class="n">Orchestrator</span>
<span class="w"> </span><span class="n">District</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">coordinate</span><span class="o">|</span><span class="w"> </span><span class="n">Orchestrator</span>
<span class="w"> </span><span class="n">Orchestrator</span><span class="w"> </span><span class="o">--&gt;|</span><span class="n">manage</span><span class="o">|</span><span class="w"> </span><span class="n">CoreTeam</span>
<span class="w"> </span><span class="n">CoreTeam</span><span class="w"> </span><span class="o">--&gt;|</span><span class="k">assign</span><span class="o">|</span><span class="w"> </span><span class="n">Worker</span>
</code></pre></div>
<hr />
<h1 id="12-mvp-scope">12. MVP Scope<a class="headerlink" href="#12-mvp-scope" title="Permanent link">&para;</a></h1>
<h2 id="121-mvp">12.1. Входить до MVP<a class="headerlink" href="#121-mvp" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Feature</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Повний набір ролей (guest → city)</td>
<td></td>
</tr>
<tr>
<td>Permission engine через Assignments</td>
<td></td>
</tr>
<tr>
<td>Основні правила Governance</td>
<td></td>
</tr>
<tr>
<td>Revocation через dais_keys</td>
<td></td>
</tr>
<tr>
<td>Event outbox логування</td>
<td></td>
</tr>
<tr>
<td>Governance UI (basic)</td>
<td></td>
</tr>
<tr>
<td>Модерація city rooms</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="122-mvp">12.2. Не входить до MVP<a class="headerlink" href="#122-mvp" title="Permanent link">&para;</a></h2>
<table>
<thead>
<tr>
<th>Feature</th>
<th>Priority</th>
</tr>
</thead>
<tbody>
<tr>
<td>Вибори (election)</td>
<td>Medium</td>
</tr>
<tr>
<td>Голосування DAO</td>
<td>Medium</td>
</tr>
<tr>
<td>Reputation engine</td>
<td>Low</td>
</tr>
<tr>
<td>On-chain governance</td>
<td>Low</td>
</tr>
<tr>
<td>Соціальні рейтинги</td>
<td>Low</td>
</tr>
<tr>
<td>Кластерні правила</td>
<td>Low</td>
</tr>
</tbody>
</table>
<hr />
<h1 id="13">13. Зв'язок з іншими документами<a class="headerlink" href="#13" title="Permanent link">&para;</a></h1>
<table>
<thead>
<tr>
<th>Document</th>
<th>Relation</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DAIS_Layer_Architecture_v1.md</code></td>
<td>DAIS = identity for governance</td>
</tr>
<tr>
<td><code>microdao_Governance_And_Permissions_v1.md</code></td>
<td>Base permissions model</td>
</tr>
<tr>
<td><code>Agents_Interface_Architecture_v1.md</code></td>
<td>Agent UI for governance</td>
</tr>
<tr>
<td><code>District_Interface_Architecture_v1.md</code></td>
<td>District governance</td>
</tr>
<tr>
<td><code>City_Interface_Architecture_v1.md</code></td>
<td>City governance</td>
</tr>
<tr>
<td><code>microdao_Event_Catalog_EXTENDED_v1.md</code></td>
<td>Governance events</td>
</tr>
</tbody>
</table>
<hr />
<h1 id="14">14. Підсумок<a class="headerlink" href="#14" title="Permanent link">&para;</a></h1>
<p>Governance Protocol визначає:</p>
<table>
<thead>
<tr>
<th>Aspect</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Ролі</strong></td>
<td>8 рівнів від Guest до City Agent</td>
</tr>
<tr>
<td><strong>Повноваження</strong></td>
<td>7 типів влади</td>
</tr>
<tr>
<td><strong>Структура</strong></td>
<td>City → District → MicroDAO → Agent</td>
</tr>
<tr>
<td><strong>Безпека</strong></td>
<td>Revocation, moderation, audit</td>
</tr>
<tr>
<td><strong>Правила</strong></td>
<td>Behaviour protocol</td>
</tr>
<tr>
<td><strong>Ескалація</strong></td>
<td>3-рівнева модель</td>
</tr>
<tr>
<td><strong>Автономія</strong></td>
<td>DAO self-governance</td>
</tr>
</tbody>
</table>
<h2 id="141-governance-pyramid">14.1. Governance Pyramid<a class="headerlink" href="#141-governance-pyramid" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><code> ╔═══════════════╗
║ CITY ║
║ DAARWIZZ ║
╚═══════╤═══════╝
┌─────────────┼─────────────┐
│ │ │
╔═════╧═════╗ ╔═════╧═════╗ ╔═════╧═════╗
║ DISTRICT ║ ║ DISTRICT ║ ║ DISTRICT ║
║ Helion ║ ║ ERP-Agent ║ ║ ... ║
╚═════╤═════╝ ╚═════╤═════╝ ╚═════╤═════╝
│ │ │
┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐
│ MicroDAO │ │ MicroDAO │ │ MicroDAO │
│Orchestrator│ │Orchestrator│ │Orchestrator│
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐
│ Core-team │ │ Core-team │ │ Core-team │
│ Workers │ │ Workers │ │ Workers │
│ Members │ │ Members │ │ Members │
└───────────┘ └───────────┘ └───────────┘
</code></pre></div>
<p>Це — <strong>офіційна конституція агентоцентричного DAARION.city</strong>.</p>
<hr />
<p><strong>Документ №15 завершено.</strong></p>
<p>🎉 <strong>Foundation Documentation Complete!</strong></p>
<p>Готовий переходити до TASK-фази реалізації.</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.instant", "content.code.copy"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../assets/javascripts/bundle.3220b9d7.min.js"></script>
</body>
</html>