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

СИСТЕМА ВХОДЯЩИХ BACH
=================

Автоматическая сортировка документов со сторожевым мониторингом.

КОНЦЕПЦИЯ
-------

Система входящих сообщений контролирует входящие папки (загрузки, сканирование) и
автоматически сортирует файлы по целевым папкам в соответствии с правилами.

КОНФИГУРАЦИЯ
-------------

Системой управляют два файла:

  data/inbox_folders.txt Папка просмотра (исходники)
  data/inbox_config.json Правила сортировки

INBOX_FOLDERS.TXT FORMAT
------------------------

  # Формат: ПУТЬ | РЕЖИМ | ФИЛЬТР | ЦЕЛЬ
  C:\Пользователи\Пользователь\Загрузки | автомобиль | PDF | входящие
  C:\Пользователи\Пользователь\Сканирование | руководство | PDF,JPG | входящие

  РЕЖИМ: автоматический (автоматическая сортировка) или ручной (только сбор)
  ФИЛЬТР: расширения файлов (через запятую) или * для всех.
  НАЗНАЧЕНИЕ: почтовый ящик (зона передачи) или относительный путь BACH

INBOX_CONFIG.JSON
-----------------

  настройки:
    включено: правда/ложь
    интервал_секунд: 60
    Transfer_zone: пользователь/входящие/несортированные
    ocr_enabled: ложь
    auto_task_on_unknown: true

  правила:
    - идентификатор: Tax_invoice
      шаблон: счет-фактура|счет-фактура|квитанция
      тип_шаблона: имя файла|содержимое|ocr
      цель: пользователь/налог/{год}/квитанции/Другое
      приоритет: 1

ПАПКА
------

  пользователь/входящие/зона передачи (вход)
  user/inbox/unsorted Неназначаемые файлы

КОМАНДЫ CLI
-----------

  bach inbox status      Показать статус
  bach inbox start       Запустить программу просмотра входящих сообщений (в фоновом режиме)
  bach inbox stop        Остановить программу отслеживания входящих сообщений
  bach inbox scan        Однократное пробное сканирование
  bach inbox config      Показать конфигурацию

ИНТЕГРАЦИЯ С ДЭМОНОМ
------------------

Система входящих сообщений интегрирована как задание демона:

  Идентификатор задания: 3 (сканирование входящих сообщений)
  Тип: интервальный
  Цикл: 30 минут (по умолчанию ВЫКЛ.)
  Режим: --process (одно сканирование за один запуск)

Команды:
  bach daemon jobs               Перечислить все задания
  bach daemon run 3              Начать сканирование входящих сообщений вручную
  bach daemon toggle 3           Активировать/деактивировать задание
  bach daemon reschedule 3 15m   Изменить интервал (например, 15 минут)

ВАЖНО: задание демона вызывает `inbox_watcher.py --process`, НЕ
         постоянный сторожевой режим. Для мониторинга в реальном времени:
         `bach inbox start` (запускает сторожевой таймер напрямую)

GUI
---

  /inbox Панель входящих сообщений
  /inbox/rules Управление правилами (Задание № 443)

  Конечные точки API:
    POST /api/inbox/scan Запустить сканирование вручную (GUI + index.html)

РАБОЧЕЕ ПРОЦЕСС
--------

ДВА РЕЖИМА:

A. РЕЖИМ WATCHDOG (запуск папки «Входящие»):
   - Мониторинг в реальном времени с помощью сторожевой библиотеки.
   - Немедленно реагирует на новые файлы
   - Постоянно работает в фоновом режиме

B. РЕЖИМ ДЭМОНА (запуск демона Баха 3):
   - Периодическое сканирование каждые 30 минут (настраивается)
   - Вызывает `inbox_watcher.py --process`
   - Интегрировано в систему демонов 

Поток обработки (оба режима):
1. Файл появится в папке «Просмотр» (например, «Загрузки»).
2. Сканер ждет, пока файл не станет стабильным (нет доступа на запись).
3. Файл перемещен в зону передачи.
4. Механизм правил проверяет шаблоны (имя файла, содержимое, OCR)
Пятое попадание: файл перемещается в целевую папку.
6. Нет попадания: остается несортированным, задача создана

ИНТЕГРАЦИЯ КОННЕКТОРА
---------------------

Начиная с версии 1.1.0, сообщения коннектора (электронная почта, Slack и т. д.) отправляются автоматически.
перенаправлено в папку входящих сообщений. См.:

  system/hub/_services/connector/queue_processor.py
  bach --help messages
  bach --help connector

КОНЦЕПЦИОННЫЕ ДОКУМЕНТЫ
-----------------

  docs/CONCEPT_INBOX_SCANNER.md Архитектура (активная)
  docs/_archive/CONCEPT_inbox_*.md Спецификации формата (в архиве)

РЕАЛИЗАЦИЯ
--------------

  Основной скрипт system/tools/inbox_watcher.py (watchdog + --process)
  обработчик CLI system/hub/inbox.py
  system/gui/server.py API графического интерфейса (POST /api/inbox/scan)
  system/hub/_services/document/scanner_service.py Сканер документов

СМОТРИТЕ ТАКЖЕ
----------

  bach --help dirscan       Сканер документов
  bach --help daemon        Фоновые службы
  bach --help steuer        Налоговая интеграция
  bach --help messages      Система сообщений
  bach --help connector     Система соединителей

ВЕРСИЯ: 1.1.0 (2026-02-08)
