# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17

WATCHER — постоянно включенный демон Mistral
------------------------------------

ОПИСАНИЕ
------------
Демон Watcher делает BACH «всегда включенным» — вдохновлен OpenClaw/molt.bot.
Mistral (локально через Ollama, бесплатно) постоянно работает в фоновом режиме и
классифицирует входящие события. При необходимости он запускает сеансы Claude Code.

АРХИТЕКТУРА
-----------
                    Наблюдатель Демон (всегда включен)
                    |
    +---------------+---------------+
    |               |               |
  Соединитель FileSystem TaskQueue
  (Telegram, (Входящие, (Новые/Срочные)
   Discord) Загрузки) BACH Задания)
    |               |               |
    +-------+-------+-------+------+
            |
            в
     Классификатор Мистраль
     (OllamaClient -> Mistral: последняя версия)
            |
  +---------+---------+----------+
  |         |         |          |
ОТВЕТИТЬ ЭСКАЛАТАЦИЯ ТОЛЬКО LOG_ИГНОРИРОВАТЬ
ПРЯМОЙ КЛОД
  |         |         |
  v v v
Ответить Клоду Событию
через журнал сеанса
Запустить коннектор

КОМАНДЫ
-------
  bach watcher start              Запустить демон в фоновом режиме
  bach watcher stop               Остановить демон
  bach watcher status             Состояние, события, статистика
  bach watcher classify "text"    Классифицировать текст вручную (тест)
  bach watcher logs [N]           Последние N строк журнала
  bach watcher events [N]         Последние N классифицированных событий

КЛАССИФИКАЦИЯ
--------------
Mistral классифицирует каждое событие по одному из 4 действий:

  Действие Описание Пример
  --------------- ----------------------------------- ------------------------
  RESPOND_DIRECT Мистраль отвечает сам себе "Как дела?" -> «Хорошо!»
  ESCALATE_CLAUDE Запуск сеанса Клода «Рефакторинг обработчика»
  LOG_ONLY Только журнал, никаких действий «Резервное копирование завершено»
  ИГНОРИРОВАТЬ Отбросить спам, рекламу

ИСТОЧНИКИ СОБЫТИЙ
-------------
  Connector_messages Сообщения Telegram/Discord (через систему коннекторов)
  файловая система Новые файлы в отслеживаемых папках
  Task_queue Новые/срочные задачи BACH (P1/P2)
  запланированные события по расписанию (Cron)

БЕЗОПАСНОСТЬ
------------------
- Время восстановления: Мин. 5 минут между эскалациями Клода
- Дневной лимит: максимум 20 эскалаций в день.
- Проверка Клода: нет эскалации, если Клод уже онлайн.
- Блокировка экрана: нет эскалации, когда экран заблокирован.
- Тихие часы: настраиваемые (по умолчанию: 23:00-07:00)

КОНФИГУРАЦИЯ
-------------
Файл:hub/_services/watcher/config.json

Важные настройки:
  включенный демон вкл/выкл
  poll_interval_секунды интервал опроса (по умолчанию: 15 с)
  quiet_start/quiet_end Тихое время
  mistral_model Модель Олламы (по умолчанию: Mistral:latest)
  escalation_cooldown_секунды Мин. время между обострениями
  max_daily_escalations Максимальное количество эскалаций в день
  источники.* Активировать/деактивировать источники событий

ТРЕБОВАНИЯ
---------------
- Ollama установлена и запущена
- Загружена модель Мистраля (ollama pull mistral)
- Настроена система коннекторов (для источников сообщений)

БАЗА ДАННЫХ
---------
  Connector_messages.watcher_classified Отслеживание того, увидел ли Watcher сообщение
  watcher_event_log Все классифицированные события с результатом

ФАЙЛЫ ЖУРНАЛА
-----------
  data/logs/watcher_daemon.log Активность и классификация демонов

СМОТРИ ТАКЖЕ
----------
  bach help connector     Система коннекторов (Telegram/Discord)
  bach help partners      Партнерская система
  bach help daemon        Сессионный демон
  bach help injectors     Система инжекторов
