# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17
# Источники: [ARCHITECTURE.md, SKILL.md, core/, bach_api.py]

BACH ARCHITECTURE (Personal Agentic OS)
======================================

ОПРЕДЕЛЕНИЕ
BACH — это иерархическая система для организации моделей ИИ.
Он представляет собой «нервную систему» ​​между инфраструктурой (вычислениями) и приложением.

МОДЕЛЬ СЛОЯ
----------------

0. ОСНОВНОЙ СЛОЙ (core/, bach_api.py)
   Автоматическое обнаружение на основе реестра: автоматическая загрузка всех обработчиков из концентратора/
   Контейнер приложения: упрощенный DI с ленивой инициализацией БД + реестр
   Библиотечный API: программный доступ без CLI (bach_api.py)
   Базовые типы: Result, ParsedArgs, OpDef — унифицированные контракты

1. СЛОЙ ОРКЕСТРАЦИИ (bach.py, партнерская система, headless API)
   Координирует сотрудничество нескольких LLM (Клод, Близнецы, Оллама).
   Управляет задачами, ролями и делегированием через систему сообщений.
   REST API: порт 8001 для программного доступа (headless.py)

2. КОГНИТИВНЫЙ СЛОЙ ПАМЯТИ (memory_*, механизм консолидации)
   5 типов памяти (Рабочая, Эпизодическая, Смысловая, Процессуальная, Ассоциативная).
   Активная консолидация (затухание, усиление, ночное сжатие).

3. СЛОЙ ЛОГИКИ И НАВЫКОВ (хаб/, навыки/, иерархия JSON)
   Более 60 автоматически обнаруживаемых обработчиков (hub/) и динамическая иерархия навыков.
   Совет по навыкам (GUI) контролирует назначение экспертов агентам.
   Процессор очереди: концентратор/_services/connector/ для асинхронной обработки

4. СЛОЙ ВЫПОЛНЕНИЯ (инструменты/)
   Более 290 специализированных скриптов Python для файловой системы, управления, анализа и т. д.
   Стандартизированный интерфейс (префикс c_) для совместимости с ИИ.

5. ДАННЫЕ И СОХРАНЕНИЕ (bach.db, data/logs/)
   Основа SQLite с более чем 210 таблицами (централизованное хранилище данных).
   Отслеживание токенов, сеансов, успеха и правды каталога.
   Журналы объединены в data/logs/ (system/logs/ УСТАРЕЛО)

СТРУКТУРА ПРОЕКТА
---------------

system/
├── bach.py .................... Центр CLI (оркестратор)
├── bach_api.py .............. API библиотеки (программный доступ)
├── bach_legacy.py ............. Резервная копия (перед рефакторингом реестра)
├── ядро/ ........................ Фундаментальный слой
│ ├── base.py .............. Результат, ParsedArgs, OpDef
│ ├── реестр.py ............ Автоматическое обнаружение + маршрутизация команд
│ ├── app.py ................. Контейнер приложения (DI)
│ ├── db.py ........ Оболочка базы данных
│ ├── адаптер.py ............. Legacy Bridge
│ └── aliases.py ............. Псевдонимы команд (mem -> память)
├── данные/
│ ├── bach.db .............. SQLite (210+ таблиц) - "Память"
│ └── журналы/ .................... Сводные журналы (ТОЛЬКО ЗДЕСЬ)
├── дб/
│ └── Schema.sql ............. Единый источник истины (DDL)
├── концентратор/ ............................ Модули-обработчики (обнаруживаются автоматически)
│ ├── bach_paths.py .......... управление путями (управление)
│ └── _services/ ............. фоновые службы
│ ├── соединитель/ ......... процессор очереди (асинхронный)
│ └── документ/ .......... рабочие процессы отчетов
├── инструменты/ .................... Скрипты Python (более 290 инструментов)
├── docs/help/ ........................ Справочная система (.txt)
├── агенты/ ............ Профили агентов (роли)
├── партнеры/ .......... Конфигурации LLM (КОНСОЛИДИРОВАННЫЕ)
├── docs/ ........................ Документация и концепции
├── gui/ ............ веб-панель (FastAPI)
│ └── api/ ................... REST API
│ ├── headless.py ........ Порт 8001 (API Pure JSON)
│ └── messages_api.py .... маршрутизатор сообщений
└── user/ ........... Пользовательские данные и экспорт

АРХИТЕКТУРНАЯ СХЕМА (Реестр v2.0)
------------------------------------

┌────────────────────────────────────────────────────────────────┐
│ СЛОЙ ДОСТУПА │
├───────────────────┬─────────── ─────────┬───────────────────────┤
│ CLI (bach.py) │ Библиотека (bach_api) │ REST (headless.py) │
│ Маршрутизация sys.argv │ Прямая функция │ Порт 8001 JSON API │
└───────────────────┴──────────── ─────────┴──────────────────────┘
                              ↓
┌────────────────────────────────────────────────────────────────┐
│ ОСНОВНОЙ СЛОЙ (core/) │
├───────────────────┬─────────── ─────────┬───────────────────────┤
│ Контейнер приложения │ HandlerRegistry │ База данных (db.py) │
│ DI + Lazy Init │ Автообнаружение │ Схема + Миграция │
└───────────────────┴──────────── ─────────┴──────────────────────┘
                              ↓
┌────────────────────────────────────────────────────────────────┐
│ СЛОЙ ОБРАБОТЧИКА (концентратор/) │
│ Более 60 подклассов BaseHandler — регистрируются автоматически │
├───────────────────┬─────────── ─────────┬───────────────────────┤
│ Task.py │ Memory.py │ Partner.py │
│ Tax.py │ Backup.py │ урок.py │
│ ... │ ... │ ... │
└───────────────────┴──────────── ─────────┴──────────────────────┘
                              ↓
┌────────────────────────────────────────────────────────────────┐
│ СЕРВИСНЫЙ СЛОЙ (hub/_services/) │
├───────────────────┬─────────── ─────────┬───────────────────────┤
│ соединитель/ │ документ/ │ демон/ │
│ Обработчик очередей │ Рабочие процессы отчетов │ Фоновые задачи │
└───────────────────┴──────────── ─────────┴──────────────────────┘
                              ↓
┌────────────────────────────────────────────────────────────────┐
│ СЛОЙ ВЫПОЛНЕНИЯ (инструменты/) │
│ Более 290 скриптов Python со стандартизированным интерфейсом c_ │
└──────────────────────────────── ────────────────────────────────┘
                              ↓
┌────────────────────────────────────────────────────────────────┐
│ СЛОЙ СОХРАНЕНИЯ │
├───────────────────┬─────────── ─────────┬───────────────────────┤
│ bach.db │ данные/журналы/ │ пользователь/ │
│ Более 210 таблиц │ Консолидированные журналы │ Экспорт и отчеты │
└──────────────────┴────────────── ─────┴──────────────────────┘

ОСНОВНЫЕ ПОНЯТИЯ
-------------

* НА ОСНОВЕ РЕГИСТРА: автоматическое обнаружение вместо жестко запрограммированной карты обработчиков.
  Новым обработчикам нужен ТОЛЬКО файл в хабе/ (без регистрации).

* ДВОЙНОЙ ДОСТУП: CLI (список задач python bach.py) И API библиотеки (bach_api.task.list()).
  Оба используют одни и те же обработчики + БД — нулевые издержки.

* МУЛЬТИПАРТНЕР: Не один агент, а сеть со специализированными ролями.

* КОГНИТИВНАЯ ПАМЯТЬ: Информация не только сохраняется, но и
  активно взвешивается и «переваривается» (консолидация).

* ПОРТАТИВНЫЙ И ЛОКАЛЬНЫЙ: вся система инкапсулирована в папку и
  работает без требования к облаку (например, с Ollama).

* САМОИСПРАВЛЕНИЕ: автоматическое исправление путей и записей реестра.

* HEADLESS API: интерфейс REST на порту 8001 для внешней интеграции
  (отдельно от порта 8000 сервера графического пользовательского интерфейса).

СМОТРИ ТАКЖЕ
----------
docs/help/bach_info.txt Что такое BACH?
docs/help/memory.txt Система памяти
docs/help/partner.txt Сотрудничество ИИ
wiki/was_ist_bach.txt Подробный обзор
