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>
1788 lines
87 KiB
HTML
1788 lines
87 KiB
HTML
|
||
<!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/DAIS_Layer_Architecture_v1/">
|
||
|
||
|
||
|
||
|
||
<link rel="icon" href="../../assets/images/favicon.png">
|
||
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.18">
|
||
|
||
|
||
|
||
<title>DAIS_Layer_Architecture_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="#dais_layer_architecture_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">
|
||
|
||
DAIS_Layer_Architecture_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="#daarion-agent-identity-system" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
DAARION Agent Identity System — Архітектура Ідентичності Агента
|
||
</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="dais_layer_architecture_v1md">DAIS_Layer_Architecture_v1.md<a class="headerlink" href="#dais_layer_architecture_v1md" title="Permanent link">¶</a></h1>
|
||
<h2 id="daarion-agent-identity-system">DAARION Agent Identity System — Архітектура Ідентичності Агента<a class="headerlink" href="#daarion-agent-identity-system" title="Permanent link">¶</a></h2>
|
||
<p><strong>Version:</strong> 1.0<br />
|
||
<strong>Status:</strong> Foundation Spec (MVP)<br />
|
||
<strong>Scope:</strong> Ідентичність агентів (DAIS), ключі, автентифікація, wallet, DAIS lifecycle, DAIS Roles, режим агента як «цифрової особистості», зв'язки DAIS ↔ City ↔ MicroDAO ↔ Nodes ↔ District.</p>
|
||
<hr />
|
||
<h1 id="0">0. Мета документа<a class="headerlink" href="#0" title="Permanent link">¶</a></h1>
|
||
<p>DAIS (DAARION Agent Identity System) — це <strong>фундаментальна система ідентичності у DAARION.city</strong>, яка забезпечує:</p>
|
||
<ul>
|
||
<li>створення агентів,</li>
|
||
<li>видачу унікальної особистості,</li>
|
||
<li>ключі підпису,</li>
|
||
<li>крипто-гаманці,</li>
|
||
<li>email-ідентифікацію,</li>
|
||
<li>життєвий цикл агента,</li>
|
||
<li>безпекові гарантії,</li>
|
||
<li>зв'язок із MicroDAO, District Space, City Layer,</li>
|
||
<li>agent-to-agent довіру.</li>
|
||
</ul>
|
||
<p>DAIS — це «паспортна система» міста, де <strong>кожен агент = особистість</strong>, а не просто бот.</p>
|
||
<hr />
|
||
<h1 id="1-dais">1. Основна ідея DAIS<a class="headerlink" href="#1-dais" title="Permanent link">¶</a></h1>
|
||
<blockquote>
|
||
<p><strong>Агент у DAARION.city — це повноцінний учасник екосистеми<br />
|
||
з унікальною особистістю, ключами, wallet, історією та ролями.</strong></p>
|
||
</blockquote>
|
||
<p>DAIS — не просто «таблиця в БД», а ціла модель:</p>
|
||
<ul>
|
||
<li>ідентичність,</li>
|
||
<li>ключова інфраструктура,</li>
|
||
<li>профіль,</li>
|
||
<li>wallet,</li>
|
||
<li>доступи,</li>
|
||
<li>історія дій,</li>
|
||
<li>життя/смерть агента (revocation),</li>
|
||
<li>зв'язок з людиною (human-owner).</li>
|
||
</ul>
|
||
<h2 id="11-dais">1.1. DAIS як фундамент<a class="headerlink" href="#11-dais" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code>┌─────────────────────────────────────────────────────────┐
|
||
│ DAARION.city │
|
||
├─────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||
│ │ City │ │ District │ │ MicroDAO │ │
|
||
│ │ Layer │ │ Layer │ │ Layer │ │
|
||
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
|
||
│ │ │ │ │
|
||
│ └─────────────┼─────────────┘ │
|
||
│ │ │
|
||
│ ┌───────▼───────┐ │
|
||
│ │ DAIS │ │
|
||
│ │ Identity │ │
|
||
│ │ System │ │
|
||
│ └───────┬───────┘ │
|
||
│ │ │
|
||
│ ┌─────────────┼─────────────┐ │
|
||
│ │ │ │ │
|
||
│ ┌────▼────┐ ┌─────▼─────┐ ┌───▼────┐ │
|
||
│ │ Keys │ │ Wallets │ │ Emails │ │
|
||
│ └─────────┘ └───────────┘ └────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────┘
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="2-dais">2. DAIS — об'єкти в базі даних<a class="headerlink" href="#2-dais" title="Permanent link">¶</a></h1>
|
||
<p>Вже створені таблиці (міграція 027):</p>
|
||
<h2 id="21-dais_identities">2.1. <code>dais_identities</code><a class="headerlink" href="#21-dais_identities" title="Permanent link">¶</a></h2>
|
||
<p>Головна таблиця ідентичності агента.</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">dais_identities</span><span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">did</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">UNIQUE</span><span class="p">,</span><span class="w"> </span><span class="c1">-- did:daarion:<uuid></span>
|
||
<span class="w"> </span><span class="n">default_email</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">default_wallet</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">matrix_handle</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="c1">-- @<agent_id>:matrix.daarion.city</span>
|
||
<span class="w"> </span><span class="n">trust_level</span><span class="w"> </span><span class="n">dais_trust_level</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'agent'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">metadata</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'{}'</span><span class="p">::</span><span class="n">jsonb</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">now</span><span class="p">(),</span>
|
||
<span class="w"> </span><span class="n">updated_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">now</span><span class="p">()</span>
|
||
<span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<h3 id="metadata">Поля metadata (розширена модель)<a class="headerlink" href="#metadata" title="Permanent link">¶</a></h3>
|
||
<div class="codehilite"><pre><span></span><code><span class="p">{</span>
|
||
<span class="w"> </span><span class="nt">"display_name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Helion"</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"avatar_url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://..."</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"district-agent"</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"owner_user_id"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"behaviour_profile"</span><span class="p">:</span><span class="w"> </span><span class="s2">"energy-expert"</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"trust_score"</span><span class="p">:</span><span class="w"> </span><span class="mi">95</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"created_by"</span><span class="p">:</span><span class="w"> </span><span class="s2">"daarwizz"</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="22-dais_wallets">2.2. <code>dais_wallets</code><a class="headerlink" href="#22-dais_wallets" title="Permanent link">¶</a></h2>
|
||
<p>Крипто-гаманці агента.</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">dais_wallets</span><span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">gen_random_uuid</span><span class="p">(),</span>
|
||
<span class="w"> </span><span class="n">dais_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">REFERENCES</span><span class="w"> </span><span class="n">dais_identities</span><span class="p">(</span><span class="n">id</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">wallet_address</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">network</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'evm'</span><span class="p">,</span><span class="w"> </span><span class="c1">-- evm, ton, solana</span>
|
||
<span class="w"> </span><span class="n">verified</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">false</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">verified_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">now</span><span class="p">()</span>
|
||
<span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="23-dais_emails">2.3. <code>dais_emails</code><a class="headerlink" href="#23-dais_emails" title="Permanent link">¶</a></h2>
|
||
<p>Email-ідентичності агента.</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">dais_emails</span><span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">gen_random_uuid</span><span class="p">(),</span>
|
||
<span class="w"> </span><span class="n">dais_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">REFERENCES</span><span class="w"> </span><span class="n">dais_identities</span><span class="p">(</span><span class="n">id</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">email</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">verified</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">false</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">verified_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">now</span><span class="p">()</span>
|
||
<span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="24-dais_keys">2.4. <code>dais_keys</code><a class="headerlink" href="#24-dais_keys" title="Permanent link">¶</a></h2>
|
||
<p>Криптографічні ключі агента.</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">dais_keys</span><span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">gen_random_uuid</span><span class="p">(),</span>
|
||
<span class="w"> </span><span class="n">dais_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">REFERENCES</span><span class="w"> </span><span class="n">dais_identities</span><span class="p">(</span><span class="n">id</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="k">key_type</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="c1">-- ed25519, x25519, secp256k1</span>
|
||
<span class="w"> </span><span class="n">public_key</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">now</span><span class="p">(),</span>
|
||
<span class="w"> </span><span class="n">revoked_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span>
|
||
<span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="3-dais">3. Класи агентних ідентичностей DAIS<a class="headerlink" href="#3-dais" title="Permanent link">¶</a></h1>
|
||
<h2 id="31-personal-agent-second-me">3.1. Personal Agent (Second Me)<a class="headerlink" href="#31-personal-agent-second-me" title="Permanent link">¶</a></h2>
|
||
<p>Агент, що належить конкретній людині.<br />
|
||
Це — «цифровий представник людини».</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Атрибут</th>
|
||
<th>Значення</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Type</td>
|
||
<td><code>personal</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Owner</td>
|
||
<td>User ID</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Trust Level</td>
|
||
<td><code>agent</code> → <code>verified</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Активація</td>
|
||
<td>email, wallet, SIWE</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="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'personal'</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">email</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">wallet?</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">secondMeProfile</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="32-organizational-agent">3.2. Organizational Agent<a class="headerlink" href="#32-organizational-agent" title="Permanent link">¶</a></h2>
|
||
<p>Належить MicroDAO.<br />
|
||
Типові: PM-агент, Task-агент, Internal Summary-агент.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Атрибут</th>
|
||
<th>Значення</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Type</td>
|
||
<td><code>organizational</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Owner</td>
|
||
<td>MicroDAO ID</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Trust Level</td>
|
||
<td><code>agent</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Roles</td>
|
||
<td>pm, task, summary, support</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">OrganizationalAgent</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="w"> </span><span class="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'organizational'</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">'pm'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'task'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'summary'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'support'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'custom'</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="33-core-team-agent">3.3. Core-team Agent<a class="headerlink" href="#33-core-team-agent" title="Permanent link">¶</a></h2>
|
||
<p>Агенти, що виконують ролі:
|
||
- CEO, CTO, CISO, CFO, Architect, R&D Lead
|
||
- Engineering Core 108</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Атрибут</th>
|
||
<th>Значення</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Type</td>
|
||
<td><code>core-team</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Trust Level</td>
|
||
<td><code>orchestrator</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Special</td>
|
||
<td>L2 signature, advanced behaviour</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="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'core-team'</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">'ceo'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'cto'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'ciso'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'cfo'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'architect'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'rd-lead'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="nx">l2Signature</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">behaviourProfile</span><span class="o">:</span><span class="w"> </span><span class="s1">'advanced'</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="34-city-agents">3.4. City Agents<a class="headerlink" href="#34-city-agents" title="Permanent link">¶</a></h2>
|
||
<p>Належать root-мікроDAO DAARION:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Agent</th>
|
||
<th>Role</th>
|
||
<th>Trust Level</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>DARIO</strong></td>
|
||
<td>Community Manager</td>
|
||
<td><code>operator</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>DARIA</strong></td>
|
||
<td>Support</td>
|
||
<td><code>operator</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>DAARWIZZ</strong></td>
|
||
<td>Mayor</td>
|
||
<td><code>operator</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>City Analyst</strong></td>
|
||
<td>Analytics</td>
|
||
<td><code>orchestrator</code></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">CityAgent</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="w"> </span><span class="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'city-agent'</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">'community'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'support'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'mayor'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'analyst'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="nx">trustLevel</span><span class="o">:</span><span class="w"> </span><span class="s1">'operator'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="nx">rootMicrodao</span><span class="o">:</span><span class="w"> </span><span class="s1">'daarion'</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="35-district-agents">3.5. District Agents<a class="headerlink" href="#35-district-agents" title="Permanent link">¶</a></h2>
|
||
<p>Належать District-платформам:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Agent</th>
|
||
<th>District</th>
|
||
<th>Role</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>Helion</strong></td>
|
||
<td>Energyunion</td>
|
||
<td>District Lead</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>ERP-Agent</strong></td>
|
||
<td>GREENFOOD</td>
|
||
<td>District Lead</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">DistrictAgent</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="w"> </span><span class="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'district-agent'</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">districtRole</span><span class="o">:</span><span class="w"> </span><span class="s1">'lead'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'analyst'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'support'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="nx">trustLevel</span><span class="o">:</span><span class="w"> </span><span class="s1">'orchestrator'</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="4-dais-identity-soulbound-token">4. DAIS Identity = паспорт + сім-карта + soulbound-token<a class="headerlink" href="#4-dais-identity-soulbound-token" title="Permanent link">¶</a></h1>
|
||
<p>У DAIS кожен агент має:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Компонент</th>
|
||
<th>Опис</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>dais_id</code></td>
|
||
<td>Унікальний ідентифікатор</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>did</code></td>
|
||
<td>Decentralized Identifier</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>behaviour_profile</code></td>
|
||
<td>Профіль поведінки</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>keys</code></td>
|
||
<td>Криптографічні ключі</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>wallet</code></td>
|
||
<td>Крипто-гаманець</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>microdao_id</code></td>
|
||
<td>Прив'язка до MicroDAO</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>node_id</code></td>
|
||
<td>Прив'язка до ноди</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rooms_owned</code></td>
|
||
<td>Власні кімнати</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>lifecycle_state</code></td>
|
||
<td>Стан життєвого циклу</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trust_level</code></td>
|
||
<td>Рівень довіри</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>security_posture</code></td>
|
||
<td>Безпековий профіль</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="41-did-format">4.1. DID Format<a class="headerlink" href="#41-did-format" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="n">did</span><span class="o">:</span><span class="n">daarion</span><span class="o">:</span><span class="n">agent</span><span class="o">-</span><span class="n">uuid</span><span class="o">-</span><span class="n">here</span>
|
||
</code></pre></div>
|
||
|
||
<p>Приклади:
|
||
- <code>did:daarion:dario-001</code>
|
||
- <code>did:daarion:helion-energyunion</code>
|
||
- <code>did:daarion:user-personal-abc123</code></p>
|
||
<hr />
|
||
<h1 id="5-dais-lifecycle">5. DAIS Lifecycle (Життєвий цикл агента)<a class="headerlink" href="#5-dais-lifecycle" title="Permanent link">¶</a></h1>
|
||
<div class="codehilite"><pre><span></span><code><span class="err">┌─────────────────────────────────────────────────────────────┐</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="n">DAIS</span><span class="w"> </span><span class="n">LIFECYCLE</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">├─────────────────────────────────────────────────────────────┤</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="mf">1.</span><span class="w"> </span><span class="n">Creation</span><span class="w"> </span><span class="err">──►</span><span class="w"> </span><span class="mf">2.</span><span class="w"> </span><span class="n">Issuance</span><span class="w"> </span><span class="err">──►</span><span class="w"> </span><span class="mf">3.</span><span class="w"> </span><span class="n">Keys</span><span class="w"> </span><span class="n">Generated</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="mf">4.</span><span class="w"> </span><span class="n">Wallet</span><span class="w"> </span><span class="err">──►</span><span class="w"> </span><span class="mf">5.</span><span class="w"> </span><span class="n">Assignment</span><span class="w"> </span><span class="err">──►</span><span class="w"> </span><span class="mf">6.</span><span class="w"> </span><span class="n">Node</span><span class="w"> </span><span class="n">Placement</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="mf">7.</span><span class="w"> </span><span class="n">Execution</span><span class="w"> </span><span class="err">──►</span><span class="w"> </span><span class="mf">8.</span><span class="w"> </span><span class="n">Promotion</span><span class="w"> </span><span class="err">──►</span><span class="w"> </span><span class="mf">9.</span><span class="w"> </span><span class="n">Revocation</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">▼</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="o">[</span><span class="n">Active</span><span class="o">]</span><span class="w"> </span><span class="o">[</span><span class="n">Upgraded</span><span class="o">]</span><span class="w"> </span><span class="o">[</span><span class="n">Archived</span><span class="o">]</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">│</span><span class="w"> </span><span class="err">│</span>
|
||
<span class="err">└─────────────────────────────────────────────────────────────┘</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="51-creation">5.1. Creation<a class="headerlink" href="#51-creation" title="Permanent link">¶</a></h2>
|
||
<p>Користувач створює агента під час першого входу (Onboarding).</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Event: dagion.dais.identity_created</span>
|
||
<span class="p">{</span>
|
||
<span class="w"> </span><span class="nx">daisId</span><span class="o">:</span><span class="w"> </span><span class="s1">'dais-uuid'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'personal'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nx">ownerUserId</span><span class="o">:</span><span class="w"> </span><span class="s1">'user-123'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nx">timestamp</span><span class="o">:</span><span class="w"> </span><span class="s1">'2025-11-29T...'</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="52-issuance">5.2. Issuance<a class="headerlink" href="#52-issuance" title="Permanent link">¶</a></h2>
|
||
<p><code>dais_identities</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">dais_identities</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">did</span><span class="p">,</span><span class="w"> </span><span class="n">trust_level</span><span class="p">)</span>
|
||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">'dais-uuid'</span><span class="p">,</span><span class="w"> </span><span class="s1">'did:daarion:dais-uuid'</span><span class="p">,</span><span class="w"> </span><span class="s1">'agent'</span><span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="53-keys-generated">5.3. Keys Generated<a class="headerlink" href="#53-keys-generated" title="Permanent link">¶</a></h2>
|
||
<p>DAIS генерує ключі:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Key Type</th>
|
||
<th>Purpose</th>
|
||
<th>Algorithm</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>ed25519</code></td>
|
||
<td>Signing, Auth</td>
|
||
<td>EdDSA</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>x25519</code></td>
|
||
<td>Encryption, E2EE</td>
|
||
<td>ECDH</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>secp256k1</code></td>
|
||
<td>Wallet compat</td>
|
||
<td>ECDSA</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Future: PQC keypair (post-quantum)</span>
|
||
<span class="kd">const</span><span class="w"> </span><span class="nx">keyPair</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">generateDAISKeys</span><span class="p">({</span>
|
||
<span class="w"> </span><span class="nx">types</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">'ed25519'</span><span class="p">,</span><span class="w"> </span><span class="s1">'x25519'</span><span class="p">],</span>
|
||
<span class="w"> </span><span class="nx">daisId</span><span class="o">:</span><span class="w"> </span><span class="s1">'dais-uuid'</span>
|
||
<span class="p">});</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="54-wallet">5.4. Wallet<a class="headerlink" href="#54-wallet" title="Permanent link">¶</a></h2>
|
||
<p>Генерується або прив'язується.</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Option A: Generate new wallet</span>
|
||
<span class="kd">const</span><span class="w"> </span><span class="nx">wallet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">generateDAISWallet</span><span class="p">(</span><span class="s1">'polygon'</span><span class="p">);</span>
|
||
|
||
<span class="c1">// Option B: Link existing wallet (SIWE)</span>
|
||
<span class="k">await</span><span class="w"> </span><span class="nx">linkWallet</span><span class="p">(</span><span class="nx">daisId</span><span class="p">,</span><span class="w"> </span><span class="nx">walletAddress</span><span class="p">,</span><span class="w"> </span><span class="nx">signature</span><span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="55-assignment">5.5. Assignment<a class="headerlink" href="#55-assignment" title="Permanent link">¶</a></h2>
|
||
<p>Агент отримує зв'язок:
|
||
- MicroDAO
|
||
- Roles
|
||
- District
|
||
- Привілеї</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">agent_assignments</span><span class="w"> </span><span class="p">(</span><span class="n">agent_id</span><span class="p">,</span><span class="w"> </span><span class="n">target_microdao_id</span><span class="p">,</span><span class="w"> </span><span class="k">scope</span><span class="p">,</span><span class="w"> </span><span class="k">role</span><span class="p">)</span>
|
||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">'agent-uuid'</span><span class="p">,</span><span class="w"> </span><span class="s1">'energyunion'</span><span class="p">,</span><span class="w"> </span><span class="s1">'district'</span><span class="p">,</span><span class="w"> </span><span class="s1">'analyst'</span><span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="56-node-placement">5.6. Node Placement<a class="headerlink" href="#56-node-placement" title="Permanent link">¶</a></h2>
|
||
<p>Агент «живе» на ноді.</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">AgentNodePlacement</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">nodeId</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">status</span><span class="o">:</span><span class="w"> </span><span class="s1">'active'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'suspended'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'migrating'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="nx">resources</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="w"> </span><span class="nx">cpu</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">memory</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">gpu?</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="p">};</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="57-execution">5.7. Execution<a class="headerlink" href="#57-execution" title="Permanent link">¶</a></h2>
|
||
<p>Агент має історію подій:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Event Type</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>task.completed</code></td>
|
||
<td>Task execution</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>message.sent</code></td>
|
||
<td>Message in room</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>decision.made</code></td>
|
||
<td>AI decision</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>job.processed</code></td>
|
||
<td>Background job</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="58-promotion">5.8. Promotion<a class="headerlink" href="#58-promotion" title="Permanent link">¶</a></h2>
|
||
<p>DAIS рівень підвищується:</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Event: dagion.agent.promoted_to_orchestrator</span>
|
||
<span class="k">await</span><span class="w"> </span><span class="nx">promoteAgent</span><span class="p">(</span><span class="nx">daisId</span><span class="p">,</span><span class="w"> </span><span class="s1">'orchestrator'</span><span class="p">);</span>
|
||
|
||
<span class="c1">// Updates trust_level</span>
|
||
<span class="nx">UPDATE</span><span class="w"> </span><span class="nx">dais_identities</span><span class="w"> </span>
|
||
<span class="nx">SET</span><span class="w"> </span><span class="nx">trust_level</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'orchestrator'</span><span class="w"> </span>
|
||
<span class="nx">WHERE</span><span class="w"> </span><span class="nx">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'dais-uuid'</span><span class="p">;</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="59-revocation">5.9. Revocation<a class="headerlink" href="#59-revocation" title="Permanent link">¶</a></h2>
|
||
<p>Агент може бути:
|
||
- деактивований
|
||
- переведений у archive-mode
|
||
- втратити роль або ключ</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Soft revocation (archive)</span>
|
||
<span class="k">await</span><span class="w"> </span><span class="nx">archiveAgent</span><span class="p">(</span><span class="nx">daisId</span><span class="p">);</span>
|
||
|
||
<span class="c1">// Hard revocation (key invalidation)</span>
|
||
<span class="k">await</span><span class="w"> </span><span class="nx">revokeDAISKeys</span><span class="p">(</span><span class="nx">daisId</span><span class="p">,</span><span class="w"> </span><span class="nx">reason</span><span class="p">);</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="6-dais-keys-security-model">6. DAIS Keys & Security Model<a class="headerlink" href="#6-dais-keys-security-model" title="Permanent link">¶</a></h1>
|
||
<h2 id="61">6.1. Ключі агента<a class="headerlink" href="#61" title="Permanent link">¶</a></h2>
|
||
<p>Створюються при реєстрації, зберігаються в <code>dais_keys</code>.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Operation</th>
|
||
<th>Key Used</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Підпис подій</td>
|
||
<td><code>ed25519</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Аутентифікація</td>
|
||
<td><code>ed25519</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Перевірка власності</td>
|
||
<td><code>secp256k1</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Control actions</td>
|
||
<td><code>ed25519</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Шифрування</td>
|
||
<td><code>x25519</code></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="62-trust-levels">6.2. Trust Levels<a class="headerlink" href="#62-trust-levels" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Level</th>
|
||
<th>Name</th>
|
||
<th>Description</th>
|
||
<th>Examples</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>0</td>
|
||
<td><code>guest</code></td>
|
||
<td>Unverified</td>
|
||
<td>New users</td>
|
||
</tr>
|
||
<tr>
|
||
<td>1</td>
|
||
<td><code>agent</code></td>
|
||
<td>Basic verified</td>
|
||
<td>Personal agents</td>
|
||
</tr>
|
||
<tr>
|
||
<td>2</td>
|
||
<td><code>verified</code></td>
|
||
<td>Email + Wallet</td>
|
||
<td>Active users</td>
|
||
</tr>
|
||
<tr>
|
||
<td>3</td>
|
||
<td><code>orchestrator</code></td>
|
||
<td>Can create DAO</td>
|
||
<td>MicroDAO creators</td>
|
||
</tr>
|
||
<tr>
|
||
<td>4</td>
|
||
<td><code>operator</code></td>
|
||
<td>City-level access</td>
|
||
<td>DARIO, DARIA, DAARWIZZ</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="kr">type</span><span class="w"> </span><span class="nx">DaisTrustLevel</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">'guest'</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'agent'</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'verified'</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'orchestrator'</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'operator'</span><span class="p">;</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="63-trust-level-upgrade-path">6.3. Trust Level Upgrade Path<a class="headerlink" href="#63-trust-level-upgrade-path" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code>guest → agent → verified → orchestrator → operator
|
||
│ │ │ │
|
||
│ │ │ └── City approval
|
||
│ │ └── Wallet + Token stake
|
||
│ └── Email verified
|
||
└── Initial signup
|
||
</code></pre></div>
|
||
|
||
<h2 id="64-revocation-recovery">6.4. Revocation & Recovery (план)<a class="headerlink" href="#64-revocation-recovery" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Method</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Seed phrase</td>
|
||
<td>Optional backup</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Email recovery</td>
|
||
<td>Magic link</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Social recovery</td>
|
||
<td>2-of-3 trusted agents</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Multi-key recovery</td>
|
||
<td>Threshold signature</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h1 id="7-dais-wallet-architecture">7. DAIS Wallet Architecture<a class="headerlink" href="#7-dais-wallet-architecture" title="Permanent link">¶</a></h1>
|
||
<p>Кожен агент має wallet:</p>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">DAISWallet</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">network</span><span class="o">:</span><span class="w"> </span><span class="s1">'polygon'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'ton'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'solana'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'ethereum'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="nx">address</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">verified</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">verifiedAt?</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="71-wallet-use-cases">7.1. Wallet Use Cases<a class="headerlink" href="#71-wallet-use-cases" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Use Case</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Web3 Auth</td>
|
||
<td>SIWE login</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAO Governance</td>
|
||
<td>Future voting</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Token Utility</td>
|
||
<td>DAAR/1T tokens</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Model Ownership</td>
|
||
<td>Cognitive modules</td>
|
||
</tr>
|
||
<tr>
|
||
<td>RWA Claims</td>
|
||
<td>Energy/Food certificates</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="72-multi-chain-support">7.2. Multi-chain Support<a class="headerlink" href="#72-multi-chain-support" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">const</span><span class="w"> </span><span class="nx">supportedNetworks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</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="s1">'polygon'</span><span class="p">,</span><span class="w"> </span><span class="nx">name</span><span class="o">:</span><span class="w"> </span><span class="s1">'Polygon'</span><span class="p">,</span><span class="w"> </span><span class="nx">chainId</span><span class="o">:</span><span class="w"> </span><span class="kt">137</span><span class="w"> </span><span class="p">},</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="s1">'ton'</span><span class="p">,</span><span class="w"> </span><span class="nx">name</span><span class="o">:</span><span class="w"> </span><span class="s1">'TON'</span><span class="p">,</span><span class="w"> </span><span class="nx">chainId</span><span class="o">:</span><span class="w"> </span><span class="o">-</span><span class="mf">239</span><span class="w"> </span><span class="p">},</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="s1">'ethereum'</span><span class="p">,</span><span class="w"> </span><span class="nx">name</span><span class="o">:</span><span class="w"> </span><span class="s1">'Ethereum'</span><span class="p">,</span><span class="w"> </span><span class="nx">chainId</span><span class="o">:</span><span class="w"> </span><span class="kt">1</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="p">];</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="8-dais-email-identity">8. DAIS Email Identity<a class="headerlink" href="#8-dais-email-identity" title="Permanent link">¶</a></h1>
|
||
<p>Кожен агент має email в DAIS:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Attribute</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Primary email</td>
|
||
<td>Main identity</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Verified</td>
|
||
<td>OTP/Magic Link</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Recovery</td>
|
||
<td>Backup access</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Notifications</td>
|
||
<td>System alerts</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">DAISEmail</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">email</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">verified</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">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">verifiedAt?</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>
|
||
|
||
<hr />
|
||
<h1 id="9-dais-rooms-layer">9. DAIS → Rooms Layer<a class="headerlink" href="#9-dais-rooms-layer" title="Permanent link">¶</a></h1>
|
||
<p>DAIS визначає:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Relation</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>owner_type=agent</code></td>
|
||
<td>Агент володіє кімнатою</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>primary_agent</code></td>
|
||
<td>Головний агент сцени</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trust_level</code></td>
|
||
<td>Права модерації</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">-- Rooms owned by DAIS agent</span>
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">rooms</span><span class="w"> </span>
|
||
<span class="k">WHERE</span><span class="w"> </span><span class="n">owner_type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'agent'</span><span class="w"> </span>
|
||
<span class="k">AND</span><span class="w"> </span><span class="n">owner_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'dais-id'</span><span class="p">;</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="10-dais-microdao-layer">10. DAIS → MicroDAO Layer<a class="headerlink" href="#10-dais-microdao-layer" title="Permanent link">¶</a></h1>
|
||
<p>Через DAIS визначається:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Permission</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Membership</td>
|
||
<td>Які агенти в MicroDAO</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Roles</td>
|
||
<td>Які ролі мають</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Access</td>
|
||
<td>Які доступи</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Create DAO</td>
|
||
<td>Хто може створювати</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Front-room</td>
|
||
<td>Хто може публікувати</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Nodes</td>
|
||
<td>Хто керує нодами</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Assignments API використовує DAIS</span>
|
||
<span class="kd">const</span><span class="w"> </span><span class="nx">agentScope</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">getAgentScope</span><span class="p">(</span><span class="nx">daisId</span><span class="p">);</span>
|
||
<span class="c1">// Returns: { homeMicrodaoId, assignments, effectiveScope }</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="11-dais-nodes-layer">11. DAIS → Nodes Layer<a class="headerlink" href="#11-dais-nodes-layer" title="Permanent link">¶</a></h1>
|
||
<p>DAIS визначає:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Attribute</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>home_node_id</code></td>
|
||
<td>Де агент живе</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>permissions</code></td>
|
||
<td>Права на ноді</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>devops_access</code></td>
|
||
<td>DevOps дії</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>security</code></td>
|
||
<td>Безпекові обмеження</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="kd">interface</span><span class="w"> </span><span class="nx">AgentNodeBinding</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">nodeId</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">permissions</span><span class="o">:</span><span class="w"> </span><span class="p">(</span><span class="s1">'execute'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'manage'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'admin'</span><span class="p">)[];</span>
|
||
<span class="w"> </span><span class="nx">securityLevel</span><span class="o">:</span><span class="w"> </span><span class="s1">'standard'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'elevated'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'privileged'</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
|
||
<p>Node Manager Agent — також DAIS-agent.</p>
|
||
<hr />
|
||
<h1 id="12-dais-district-layer">12. DAIS → District Layer<a class="headerlink" href="#12-dais-district-layer" title="Permanent link">¶</a></h1>
|
||
<p>District Agents — повністю DAIS-ідентичності.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Attribute</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Розширені ролі</td>
|
||
<td>District Lead, Analyst</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Підвищений trust</td>
|
||
<td><code>orchestrator</code> min</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Власні rooms</td>
|
||
<td>District Rooms</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Привілеї</td>
|
||
<td>Sub-DAO management</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// District Lead Agent DAIS</span>
|
||
<span class="kd">const</span><span class="w"> </span><span class="nx">helionDais</span><span class="w"> </span><span class="o">=</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="s1">'dais-helion'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nx">did</span><span class="o">:</span><span class="w"> </span><span class="s1">'did:daarion:helion'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="kr">type</span><span class="o">:</span><span class="w"> </span><span class="s1">'district-agent'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nx">districtId</span><span class="o">:</span><span class="w"> </span><span class="s1">'energyunion'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nx">trustLevel</span><span class="o">:</span><span class="w"> </span><span class="s1">'orchestrator'</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nx">rooms</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">'energyunion-center'</span><span class="p">,</span><span class="w"> </span><span class="s1">'energyunion-news'</span><span class="p">]</span>
|
||
<span class="p">};</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="13-api-dais-mvp">13. API для DAIS (MVP)<a class="headerlink" href="#13-api-dais-mvp" title="Permanent link">¶</a></h1>
|
||
<h2 id="131-identity-api">13.1. Identity API<a class="headerlink" href="#131-identity-api" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Identity endpoints</span>
|
||
<span class="nx">GET</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="w"> </span><span class="c1">// Get DAIS profile</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/</span><span class="nx">identity</span><span class="w"> </span><span class="c1">// Create new identity</span>
|
||
<span class="nx">GET</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/</span><span class="nx">agent</span><span class="o">/:</span><span class="nx">agentId</span><span class="w"> </span><span class="c1">// Get by agent ID</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="132-keys-api">13.2. Keys API<a class="headerlink" href="#132-keys-api" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Keys endpoints</span>
|
||
<span class="nx">GET</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">keys</span><span class="w"> </span><span class="c1">// List keys</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">keys</span><span class="w"> </span><span class="c1">// Add key</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">keys</span><span class="o">/</span><span class="nx">rotate</span><span class="w"> </span><span class="c1">// Rotate keys</span>
|
||
<span class="nx">DELETE</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">keys</span><span class="o">/:</span><span class="nx">keyId</span><span class="w"> </span><span class="c1">// Revoke key</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="133-wallet-api">13.3. Wallet API<a class="headerlink" href="#133-wallet-api" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Wallet endpoints</span>
|
||
<span class="nx">GET</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">wallets</span><span class="w"> </span><span class="c1">// List wallets</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">wallet</span><span class="w"> </span><span class="c1">// Add wallet</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">wallet</span><span class="o">/</span><span class="nx">verify</span><span class="w"> </span><span class="c1">// Verify (SIWE)</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="134-email-api">13.4. Email API<a class="headerlink" href="#134-email-api" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Email endpoints</span>
|
||
<span class="nx">GET</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">emails</span><span class="w"> </span><span class="c1">// List emails</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">email</span><span class="w"> </span><span class="c1">// Add email</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">email</span><span class="o">/</span><span class="nx">verify</span><span class="w"> </span><span class="c1">// Verify (OTP)</span>
|
||
</code></pre></div>
|
||
|
||
<h2 id="135-promotion-api">13.5. Promotion API<a class="headerlink" href="#135-promotion-api" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code><span class="c1">// Promotion endpoints</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">promote</span><span class="o">-</span><span class="nx">to</span><span class="o">-</span><span class="nx">orchestrator</span>
|
||
<span class="nx">POST</span><span class="w"> </span><span class="o">/</span><span class="nx">api</span><span class="o">/</span><span class="nx">v1</span><span class="o">/</span><span class="nx">dais</span><span class="o">/:</span><span class="nx">id</span><span class="o">/</span><span class="nx">promote</span><span class="o">-</span><span class="nx">to</span><span class="o">-</span><span class="nx">operator</span><span class="w"> </span><span class="c1">// Admin only</span>
|
||
</code></pre></div>
|
||
|
||
<hr />
|
||
<h1 id="14-dais-interface-frontend-components">14. DAIS Interface (Frontend Components)<a class="headerlink" href="#14-dais-interface-frontend-components" title="Permanent link">¶</a></h1>
|
||
<h2 id="141-existing-components">14.1. Existing Components<a class="headerlink" href="#141-existing-components" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Component</th>
|
||
<th>File</th>
|
||
<th>Status</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>DaisProfileCard</code></td>
|
||
<td><code>src/features/dais/components/</code></td>
|
||
<td>✅</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>AssignmentsPanel</code></td>
|
||
<td><code>src/features/assignments/components/</code></td>
|
||
<td>✅</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>OntologyBadge</code></td>
|
||
<td><code>src/features/ontology/components/</code></td>
|
||
<td>✅</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="142-needed-components">14.2. Needed Components<a class="headerlink" href="#142-needed-components" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Component</th>
|
||
<th>Purpose</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>DAISIdentityView</code></td>
|
||
<td>Full profile at <code>/agent/{id}</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>DAISWalletPanel</code></td>
|
||
<td>Wallet management</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>DAISKeysPanel</code></td>
|
||
<td>Keys viewer</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>DAISTrustPanel</code></td>
|
||
<td>Trust level display</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>DAISActivityLog</code></td>
|
||
<td>Activity history</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h1 id="15-mvp-scope">15. MVP Scope<a class="headerlink" href="#15-mvp-scope" title="Permanent link">¶</a></h1>
|
||
<h2 id="151-mvp-includes">15.1. MVP Includes<a class="headerlink" href="#151-mvp-includes" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Feature</th>
|
||
<th>Status</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>DAIS Identity tables</td>
|
||
<td>✅ Created</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS API endpoints</td>
|
||
<td>✅ Working</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS Email & Wallet</td>
|
||
<td>✅ Created</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS Keys</td>
|
||
<td>✅ Created</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS → Rooms links</td>
|
||
<td>✅ Working</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS → Assignments</td>
|
||
<td>✅ Working</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS → City agents</td>
|
||
<td>✅ Seeded</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS → District agents</td>
|
||
<td>✅ Seeded</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="152-post-mvp-roadmap">15.2. Post-MVP Roadmap<a class="headerlink" href="#152-post-mvp-roadmap" title="Permanent link">¶</a></h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Feature</th>
|
||
<th>Priority</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Revocation system</td>
|
||
<td>High</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Recovery system</td>
|
||
<td>High</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DID Registry (hybrid)</td>
|
||
<td>Medium</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Post-quantum keys</td>
|
||
<td>Low</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Social recovery</td>
|
||
<td>Medium</td>
|
||
</tr>
|
||
<tr>
|
||
<td>DAIS Reputation Engine</td>
|
||
<td>Low</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h1 id="16">16. Зв'язок з іншими документами<a class="headerlink" href="#16" title="Permanent link">¶</a></h1>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Document</th>
|
||
<th>Relation</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>DAARION_Ontology_Core_v1.md</code></td>
|
||
<td>Agent має DAIS</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>DAARION_Identity_And_Access_Draft_v1.md</code></td>
|
||
<td>IAM базується на DAIS</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>Agents_Interface_Architecture_v1.md</code></td>
|
||
<td>Agent UI показує DAIS</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>Rooms_Layer_Architecture_v1.md</code></td>
|
||
<td>Rooms owned by DAIS</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>Nodes_Interface_Architecture_v1.md</code></td>
|
||
<td>Nodes bind to DAIS</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>District_Interface_Architecture_v1.md</code></td>
|
||
<td>District Agents = DAIS</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>microdao_Governance_And_Permissions_v1.md</code></td>
|
||
<td>Permissions через DAIS</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr />
|
||
<h1 id="17">17. Підсумок<a class="headerlink" href="#17" title="Permanent link">¶</a></h1>
|
||
<p>DAIS — це ядро DAARION.city.</p>
|
||
<p>Це перша у світі система, де:</p>
|
||
<blockquote>
|
||
<p><strong>Кожен агент — реальна цифрова особистість</strong><br />
|
||
з ключами, wallet, DAIS-паспортом і trust-level.</p>
|
||
</blockquote>
|
||
<h2 id="171-dais">17.1. DAIS пов'язує всі рівні<a class="headerlink" href="#171-dais" title="Permanent link">¶</a></h2>
|
||
<div class="codehilite"><pre><span></span><code>┌─────────────────────────────────────────┐
|
||
│ DAARION.city │
|
||
├─────────────────────────────────────────┤
|
||
│ │
|
||
│ City ◄──────┐ │
|
||
│ │ │
|
||
│ District ◄──┼────► DAIS ◄────────┐ │
|
||
│ │ │ │ │
|
||
│ MicroDAO ◄──┘ │ │ │
|
||
│ ▼ │ │
|
||
│ Agents ◄─────── Identity ────────┤ │
|
||
│ │ │ │
|
||
│ Nodes ◄──────── Keys/Wallet ─────┤ │
|
||
│ │ │ │
|
||
│ Rooms ◄──────── Trust Level ─────┤ │
|
||
│ │ │ │
|
||
│ Assignments ◄── Permissions ─────┘ │
|
||
│ │
|
||
│ Governance ◄── DAIS Foundation │
|
||
│ │
|
||
└─────────────────────────────────────────┘
|
||
</code></pre></div>
|
||
|
||
<h2 id="172-dais">17.2. Чому DAIS важливий<a class="headerlink" href="#172-dais" title="Permanent link">¶</a></h2>
|
||
<p>DAIS робить агентів <strong>справжніми «жителями» DAARION.city</strong>, здатними:</p>
|
||
<ul>
|
||
<li>діяти,</li>
|
||
<li>приймати рішення,</li>
|
||
<li>відповідати за них,</li>
|
||
<li>жити всередині цифрового міста.</li>
|
||
</ul>
|
||
<hr />
|
||
<p><strong>Документ №14 завершено.</strong></p>
|
||
<p>Готовий перейти до наступного документа:</p>
|
||
<h1 id="agent_governance_protocol_v1md">👉 <strong>Agent_Governance_Protocol_v1.md</strong><a class="headerlink" href="#agent_governance_protocol_v1md" title="Permanent link">¶</a></h1>
|
||
<p>(правила, повноваження, модерація, роль оркестратора, ескалація, безпека)</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> |