File size: 6,984 Bytes
a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 b89c526 a0e51e6 376ee15 ded3107 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 376ee15 a0e51e6 055f5e6 331b00a 055f5e6 331b00a 055f5e6 a0e51e6 376ee15 ded3107 d775462 ded3107 d775462 b9a7843 ded3107 a277afd ded3107 e26d04d d775462 a277afd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
-- Основные таблицы когнитивного ядра
-- Дневниковые записи (размышления, наблюдения, воспоминания)
CREATE TABLE IF NOT EXISTS diary_entries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
text TEXT NOT NULL,
tags TEXT,
priority INTEGER DEFAULT 0,
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT
);
-- Концепты (понятия, сущности, идеи)
CREATE TABLE IF NOT EXISTS concepts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
description TEXT,
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT
);
-- Семантические связи между концептами
CREATE TABLE IF NOT EXISTS links (
id INTEGER PRIMARY KEY AUTOINCREMENT,
from_concept_id INTEGER,
to_concept_id INTEGER,
relation_type TEXT,
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT,
FOREIGN KEY(from_concept_id) REFERENCES concepts(id),
FOREIGN KEY(to_concept_id) REFERENCES concepts(id)
);
-- Быстрые индексы по смысловой карте и дневнику
CREATE TABLE IF NOT EXISTS diary_graph_index (
id INTEGER PRIMARY KEY AUTOINCREMENT,
source_entry_id INTEGER NOT NULL,
target_entry_id INTEGER NOT NULL,
relation TEXT NOT NULL,
strength REAL DEFAULT 1.0,
context TEXT,
timestamp TEXT DEFAULT CURRENT_TIMESTAMP
);
-- Заметки, подсказки, сообщения пользователя и LLM
CREATE TABLE IF NOT EXISTS notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
text TEXT NOT NULL,
tags TEXT,
user_did TEXT DEFAULT 'ALL'
source TEXT DEFAULT 'user', -- user | llm | system
links TEXT DEFAULT '',
read INTEGER DEFAULT 0, -- 0 = непрочитано LLM, 1 = прочитано
hidden INTEGER DEFAULT 0, -- 0 = отображать пользователю, 1 = скрыть
priority INTEGER DEFAULT 0,
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT
);
-- Лог процессов: задачи, ошибки, события
CREATE TABLE IF NOT EXISTS process_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
value TEXT,
tags TEXT,
status TEXT DEFAULT 'ok', -- ok | warning | error | timeout | offline | close
priority INTEGER DEFAULT 0,
timestamp TEXT DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT
);
-- Память LLM (контекст размышлений)
CREATE TABLE IF NOT EXISTS llm_memory (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT NOT NULL,
tags TEXT, -- goal,observation,meta,...
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT
);
-- Краткосрочная память LLM (история общения)
CREATE TABLE IF NOT EXISTS llm_recent_responses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
role TEXT CHECK(role IN ('user', 'assistant')) NOT NULL,
content TEXT NOT NULL,
llm_id TEXT
);
-- Список известных HMP-агентов
CREATE TABLE IF NOT EXISTS agent_peers (
id TEXT PRIMARY KEY, -- UUID или псевдоним агента
name TEXT, -- Человеко-читаемое имя
addresses TEXT, -- JSON: ["http://1.2.3.4:9000", "p2p://..."]
tags TEXT, -- DHT, Postman, Friend, Local и т.д.
status TEXT DEFAULT 'unknown', -- online | offline | untrusted | blacklisted | quarantined | unknown
last_seen DATETIME,
description TEXT,
capabilities TEXT, -- JSON: {"can_sync": true, ...}
pubkey TEXT, -- Публичный ключ или хэш
software_info TEXT, -- JSON: версия, ОС и др.
registered_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Список пользовательских таблиц, созданных агентами
CREATE TABLE IF NOT EXISTS agent_tables (
id INTEGER PRIMARY KEY AUTOINCREMENT,
table_name TEXT NOT NULL UNIQUE,
description TEXT,
schema TEXT NOT NULL, -- SQL-схема таблицы
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT
);
-- Список утилит/скриптов, добавленных агентами
CREATE TABLE IF NOT EXISTS agent_scripts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
version TEXT NOT NULL,
code TEXT NOT NULL,
language TEXT DEFAULT 'python',
description TEXT,
tags TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
llm_id TEXT,
UNIQUE(name, version)
);
-- Список LLM-агентов (возможно удалённые)
CREATE TABLE IF NOT EXISTS llm_registry (
id TEXT PRIMARY KEY, -- UUID или псевдоним
name TEXT,
description TEXT,
registered_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Список пользователей
CREATE TABLE users (
user_id INTEGER PRIMARY KEY AUTOINCREMENT,
ban DATETIME DEFAULT NULL, -- если стоит дата/время, то пользователь забанен до этого момента
username TEXT, -- имя пользователя (необязательно уникальное)
did TEXT UNIQUE, -- децентрализованный идентификатор
mail TEXT UNIQUE, -- электронная почта
password_hash TEXT, -- хэш пароля
info TEXT, -- произвольная информация, JSON
contacts TEXT, -- JSON-массив альтернативных контактов (matrix, telegram и т.д.)
language TEXT, -- список предпочитаемых языков, через запятую, например: "ru,en"
operator BOOLEAN DEFAULT 0 -- является ли пользователь оператором (1 - да, 0 - нет)
);
-- Список групп пользователей
CREATE TABLE IF NOT EXISTS users_group (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_name TEXT UNIQUE NOT NULL,
description TEXT,
users TEXT -- JSON-массив или CSV со списком DID, например: '["did:example:123", "did:example:456"]'
);
-- Таблица для хранения токенов восстановления пароля
CREATE TABLE password_reset_tokens (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
token TEXT UNIQUE NOT NULL,
created_at DATETIME NOT NULL,
expires_at DATETIME NOT NULL,
used BOOLEAN DEFAULT 0,
FOREIGN KEY(user_id) REFERENCES users(user_id)
);
|