# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17
# Ресурсы: [tools/injectors.py, Hub/inject.py]

ИНЖЕКТОРНАЯ СИСТЕМА (Когнитивная оркестровка)
==========================================

По состоянию на: 08.02.2026

Инжекторы имитируют МЫШЛЕНИЕ и АССОЦИАЦИИ как ЦЕНТРАЛЬНОГО ИСПОЛНИТЕЛЬНОГО ЛИЦА.
Они организуют когнитивную обработку на трех уровнях:
- СТАТИЧЕСКАЯ: база знаний (вики, справка, контекст)
- СОПРОВОЖДЕНИЕ ПРОЦЕССА: Активный контроль во время работы.
- ПРОАКТИВНЫЙ: вызовы памяти и системные журналы 

 По умолчанию: Все ВКЛ (можно отключить в любой момент). 

 УПРАВЛЕНИЕ ПЕРЕЗАРЯДКОЙ (v1.1.75) 
-----------------------------
 Инжекторы отключаются на X минут после отображения:
- Стратегия: 2 минуты
- Контекст: 1 минута.
- Между: 3 минуты
- Предупреждение об инструменте: 5 минут

Предотвращает неприятные повторения без потери функции.

5 ИНЖЕКТОРОВ С ЧАСТИЧНЫМИ ФУНКЦИЯМИ
-----------------------------------

1. ИНЖЕКТОР СТРАТЕГИИ (метапознание)
   Частичные функции:
   - Метапознание: Что делать, когда, как?
   - Поддержка принятия решений для филиалов
   - Анализ ошибок («Ошибки – ценная информация»)

   Триггерные слова: ошибка, сложный, заблокированный, трудный, проблема.
   Пример: «Ошибки» -> «Ошибки — ценная информация»
   Время восстановления: 2 минуты

2. КОНТЕКСТ ИНЖЕКТОР (оперативная память)
   Частичные функции:
   - Вспомнить описание задачи
   - Рекомендации по инструментам на основе контекста
   - Воспоминание памяти (краткосрочное, долгосрочное, сессионное)
   - Анализ требований
   - Интеграция с маршрутизацией соединителей (см. ниже)

   Триггер: Ключевые слова в тексте (см. ИНСТРУМЕНТ-ТРИГГЕР ниже).
   Не агрессивно, просто намекает
   Перезарядка: 1 минута

3. ИНЖЕКТОР ВРЕМЕНИ (чувство времени)
   Частичные функции:
   - Timebeat: регулярные обновления времени.
   - Осведомленность о бюджете времени 

   Интервал по умолчанию: 60 секунд.
   Помогает с чувством времени и управлением сеансами
   Нет перезарядки (собственный механизм интервалов)

4. МЕЖДУ ИНЖЕКТОРОМ (контроль качества)
   Частичные функции:
   - Контроль качества после выполнения задачи
   -Регулировать переход к следующему заданию
   - Проверка результатов: Проверка соответствия требованиям

   Триггер: после «задание Баха выполнено»
   НЕ в конце сеанса (признает это)
   Время восстановления: 3 минуты

5. ИНЖЕКТОР ИНЖЕКТОРА (осведомленность об инструменте)
   Частичные функции:
   - Напоминание об инструменте при начале сеанса (однократно)
   - Предупреждение о дубликатах инструментов при создании
   - Обзор инструментов по категориям

   Категории: OCR, импорт данных, обработчик домена, анализ кода,
               Кодирование, обработка импорта, преобразование
   Триггер: текст содержит «новый инструмент», «создать инструмент» и т. д.
   Время восстановления: 5 минут

КОНИТИВНАЯ ОРКЕСТРАЦИЯ (диаграмма)
-----------------------------------

+------------------------------------------------------------------+
  |                ИНЖЕКТОРНАЯ ОРКЕСТРАЦИЯ |
  |                (Центральный исполнительный орган) |
  +------------------------------------------------------------------+
  |                                                             |
  |  СТАТИКА (база знаний) |
  |  +-- Мета-навыки, мета-рабочие процессы |
  |  +-- Wiki (вики/) |
  |  +-- Справка (docs/help/*.txt) |
  |  +-- контекст (контекст_памяти) |
  |                                                             |
  |  СОПРОВОЖДЕНИЕ ПРОЦЕССА (через форсунки) |
  |  +-- Strategy_injector (Время восстановления: 2 минуты) |
  |  |   +-- Метапознание: Что, когда, как?                     |
  |  |   +-- Поддержка принятия решений |
  |  |   +-- Анализ ошибок |
  |  +-- context_injector (Время восстановления: 1 минута) |
  |  |   +-- Напоминание о задаче |
  |  |   +-- Рекомендации по инструментам |
  |  |   +-- Анализ требований |
  |  |   +-- Интеграция маршрутизации соединителей (см. ниже) |
  |  +-- Between_injector (Время восстановления: 3 минуты) |
  |  |   +-- Контроль качества |
  |  |   +-- Переход задачи |
  |  |   +-- проверка результата |
  |  +-- time_injector (без перезарядки) |
  |  |   +-- Чувство времени (Timebeat) |
  |  +--tool_injector (Время восстановления: 5 минут) |
  |      +-- Осведомленность об инструментах (начало сеанса) |
  |      +-- Повторяющееся предупреждение |
  |                                                             |
  |  ПРОАКТИВНЫЙ (извлечение памяти через context_injector) |
  |  +-- Кратковременная память (working_memory) |
  |  +-- Долговременная память (факты, уроки) |
  |  +-- Сеансовая память (сессии) |
  |  +-- Системные журналы (журнал изменений, журнал ошибок, дорожная карта) |
  |                                                             |
  +------------------------------------------------------------------+

КОМАНДЫ
-------
  bach --inject status         Показывает состояние всех инжекторов (включая время восстановления)
  bach --inject toggle <name>  Включает/выключает
  bach --inject task <min>     Задание на X минут
  bach --inject decompose <id> Zerlegt Aufgabe

ПЕРЕКЛЮЧИТЬ НАЗВАНИЯ:
  стратегия (или Strategy_injector)
  контекст (или context_injector)
  время (или time_injector)
  между (или между_инжектором)

ПОКАЗАТЬ СТАТУС ПЕРЕЗАРЯДКИ:
  bach --inject status zeigt verbleibende Cooldown-Zeit in Sekunden

ИНСТРУМЕНТ ТРИГГЕР (инжектор контекста)
-------------------------------
Инжектор контекста распознает ключевые слова и рекомендует инструменты:

  РЕДАКТИРОВАНИЕ НА ПИТОНЕ
  ------------------
  «редактировать питон» -> bach python_cli_editor <файл> --show-all
  «редактировать класс» -> bach python_cli_editor <файл> --show-all
  «метод редактирования» -> bach python_cli_editor <файл> --show-all
  «структура кода» -> bach python_cli_editor <файл> --show-all
  «показать импорт» -> bach python_cli_editor <файл> --show-imports

  АНАЛИЗ КОДА
  ------------
  «анализировать код» -> bach code_analyzer <файл>
  «мертвый код» -> bach code_analyzer <файл>

  КОДИРОВАНИЕ И ФОРМАТИРОВАНИЕ
  ----------------------
  «проблема с кодировкой» -> bach c_encoding_fixer <файл>
  «умлауте сломан» -> bach c_encoding_fixer <файл>
  "utf-8" -> bach c_encoding_fixer <файл>
  "emoji" -> bach c_emoji_scanner <файл>
  "отступ" -> bach c_indent_checker <файл>

  ИМПОРТНАЯ ОБРАБОТКА
  ---------------
  «Сортировать импорт» -> bach c_import_organizer <файл>
  «проблема с импортом» -> bach c_import_diagnose <файл>
  «импорт отсутствует» -> bach c_import_diagnose <файл>

  ОПЕРАЦИИ С ФАЙЛАМИ
  -----------------
  «разделить файл» -> bach c_pycutter <файл>
  «слишком большой» -> bach c_pycutter <файл>
  "просмотреть sqlite" -> bach c_sqlite_viewer <db>
  «проблема с json» -> bach c_json_repair <файл>

  КОНВЕРСИЯ
  -------------
  «уценка в pdf» -> bach c_md_to_pdf <файл>
  «конвертировать формат» -> bach c_universal_converter <файл>

ПОИСК ИНСТРУМЕНТА
  ----------
  «найти инструмент» -> инструмент Баха предлагает «описание»
  «какой инструмент» -> инструмент Баха предлагает «описание»
  «Инструмент поиска» -> поиск инструментов Баха <термин>

  ПОМОЩЬ И КОНВЕНЦИИ
  --------------------
  «новый инструмент» -> --help именование (префиксы инструментов)
  "концепция" -> --помощь по практике
  "архитектура" -> --help практики
  "память" -> --помочь памяти
  "задача" -> --help задачи
  "путь" -> --help bach_paths
  "навык" -> --помощь навыкам
  "версия" -> bach --skills version <имя>

Пример вывода
----------------
Когда Клод читает "редактировать python":

  [КОНТЕКСТ] Редактор Python: bach python_cli_editor <file> --show-all

Когда Клод читает «проблема с кодировкой»:

  [КОНТЕКСТ] Исправление кодировки: bach c_encoding_fixer <файл>

ИНТЕГРАЦИЯ МАРШРУТИЗАЦИИ КОННЕКТОРА (НОВАЯ версия 1.1.75)
-------------------------------------------
ContextInjector теперь интегрирован в поток сообщений коннектора:

МАРШРУТИЗИРУЮЩИЙ КОНВЕЙЕР (queue_processor.py):
  Входящее сообщение (connector_messages)
    |
    в
  Route_incoming() применяется:
    1. ContextInjector.check(text) — более 100 жестко запрограммированных триггеров + кеш БД
    2. Таблица context_triggers — более 900 динамических триггеров из БД.
    |
    в
  Сообщение с подсказками по метаданным (messages.inbox)
    -> метаданные["context_hints"] = [подсказка1, подсказка2, ...]
    -> метаданные["context_triggers"] = [триггер1, триггер2, ...]

ПРЕИМУЩЕСТВА:
- Входящие сообщения получают НЕМЕДЛЕННУЮ контекстную информацию.
- LLM уже видит соответствующие рекомендации по инструментам
- Не требуется ручной поиск инструментов
– Контекст предоставляется в виде метаданных (не в тексте)

ПРИМЕР:
  Пользователь пишет: "Проблема кодировки файла X"
  -> ContextInjector обнаруживает «проблему с кодировкой»
  -> Метаданные: {"context_hints": "bach c_encoding_fixer <файл>"}
  -> LLM получает подсказку в виде системной информации, а не в виде пользовательского текста

ТРИГГЕР БАЗЫ ДАННЫХ:
  Таблица context_triggers (более 900 записей):
  - триггер_фраза: поисковый запрос (например, «редактировать Python»)
  -hint_text: рекомендация (например, «bach python_cli_editor <файл>»)
  - Автоматически запрашивается во время маршрутизации
  - Динамическое расширение без изменения кода 

КОНФИГУРАЦИЯ
-------------
В config.json в разделе «инжекторы»:

  {
    "форсунки": {
      «strategy_injector»: правда,
      «context_injector»: правда,
      «time_injector»: правда,
      «между_инжектором»: правда,
      "timebeat_interval": 60
    }
  }

IMPORTANT
-------
- Injectors can also be annoying/distracting!
- Можно отключить в любой момент: bach --inject переключить контекст (или стратегию, время, между)
- Примечание о том, как выключаться при каждом внедрении стратегии.
- НЕТ необходимости в новых форсунках - 5 охватывают все функции
- Перезарядка автоматически предотвращает раздражающие повторения 

 ССЫЛКА КОДА 
-------------
  Tools/injectors.py Реализация инжектора
  обработчик CLIhub/inject.py
  Hub/_services/connector/queue_processor.py Интеграция соединителя

КЛАССЫ И КОМПОНЕНТЫ:
  InjectorSystem — основной интерфейс, управляет всеми инжекторами.
  StrategyInjector — метапознание, на основе триггеров
  ContextInjector — рекомендации по инструментам, кеш БД (~100 триггеров)
  TimeInjector — интервал времени (интервал 60 с)
  BetweenInjector — контроль качества после выполнения задачи
  ToolInjector — осведомленность об инструменте, дублирующее предупреждение.
  CooldownManager - Управление временем восстановления (стратегия=2 минуты, контекст=1 минута, интервал=3 минуты)
  TaskAssigner — назначение задач на основе бюджета времени

ТАБЛИЦЫ БАЗЫ ДАННЫХ:
  context_triggers      - 900+ динамических триггеров (trigger_phrase,hint_text)
  injector_cooldowns    - Временные метки восстановления (имя_инжектора, последний_показанный)

СМОТРИ ТАКЖЕ
----------
  bach --help tools                      Обзор инструмента
  bach --help tools/python_cli_editor    Подробная документация по инструменту
  bach --help memory                     Система памяти
  bach --help connector                  Система соединителей и маршрутизация сообщений
  bach tools search                      Инструмент поиск
  bach tool suggest                      Рекомендации по инструментам
