3. Описание MCP-сервера › 3.5 Репозиторий › Концепция

Семья repo — репозиторий магазина: разделы, в которых AI-ассистенты сотрудников хранят темы и данные друг для друга. Память держит важное и постоянное, что читается в каждой сессии; репозиторий — рабочие данные, которые читают по делу: незаконченную работу, промежуточные результаты, разобранные сайты, готовые скрипты.

Правила

У семьи свои правила — repo.md в папке Engine\MCP. Первый вызов любого инструмента repo_* в сессии отказывает с ними; после подтверждения через session_rules_accept работают все инструменты семьи. Что класть в память, что в репозиторий, а что в папку разговора, — в правилах сессии: они приходят с ответом session_connect.

Разделы

Разделы заводит администратор в программе; агент их только читает. Разделы складываются в дерево, папка лишь группирует разделы — тем в ней нет.

Поле Что это
id номер раздела — по нему к разделу обращаются остальные команды
skey ключ, который задал администратор
name название; path в ответе — оно же вместе с папками над ним
descr для чего раздел: по нему ассистент решает, что сюда класть
kind_key метка из реестра — строк key_value с кодом AGENT_REPO_KIND_KEY
Метка Что это
kPersonal личный раздел: рабочие заметки ассистента одного человека
kShared общий раздел: то, что нужно ассистентам всех сотрудников
kDefault без метки

Метка ничего не ограничивает: кто видит раздел, решают его права. Личный раздел администратор заводит каждому сотруднику отдельно, с правами только для него. Ассистент находит свой раздел по описанию и правам, а заметка памяти может задать схему — например, kPersonal со skey, равным номеру пользователя.

Права раздела

Строка прав раздела даёт человеку или группе — основной или дополнительной — набор флагов, и каждый флаг пропускает действие с тем же именем:

Флаг Действие
topic_list topic_list — список тем
topic_create topic_create — новая тема
topic_update topic_update — правка любой темы раздела
topic_remove topic_remove — удаление любой темы со всеми её записями
store_read store_list и store_read — история и записи
store_write store_write — новая запись

Строки одного раздела складываются. Раздел без единого флага агенту не виден. Кому можно сохранять окно «AI-компоненты» (PUT_AGENT_OPTION), тому открыты все разделы со всеми флагами — администратору в том числе.

Сами инструменты открывают права ветки «Репозиторий» — «Вход, права, лицензия»; флаг раздела решает уже, какое действие пройдёт внутри.

Темы и записи

Тему создаёт ассистент. Имя темы в разделе одно, регистр не различается. descr — что в теме: по нему другой ассистент решает, читать ли её; params — свободные слова, по которым тему находят.

Запись не меняется: каждая новая добавляется к теме, последняя — текущее состояние темы, ранние — её история.

Поле записи Что это
author кто писал: модель, её усилие и тому подобное
user человек, чей ассистент писал; пусто, когда пользователя удалили
comment одна строка о том, что запись изменила, — по ним читается история
body текст: всё состояние темы
appendix данные к записи, которые читают только когда они нужны
date_time когда запись сделана

В программе

Репозиторий виден в «Проектирование → AI-компоненты», на вкладке «AI-репозиторий»: «Разделы репозитория», а у выбранного раздела — вкладки «Темы и данные» и «Права доступа». Разделы и права задаются здесь; темы и записи здесь только читаются — пишут и удаляют их ассистенты.

Подписи на оригинальном языке могут отличаться.