# Переносимость: UNIVERSAL

PARTNER-CONFIG-MANAGER
----------------------

Управляет автоматическим вводом BACH в файлы конфигурации
Партнеры LLM (Клод Код, Близнецы, Оллама). Обнаруживает установленных партнеров и
регистрирует BACH с помощью блоков конфигурации на основе шаблонов.

Часть SQ015: агностика LLM и процесс регистрации.


ОПИСАНИЕ
------------

Обработчик автоматизирует интеграцию BACH в различные среды LLM.
Он основан на шаблонах и поддерживает типы партнеров:
  - claude-код (каталог обнаружения: ~/.claude)
  - Gemini (каталог обнаружения: ~/.gemini)
  - ollama (каталог обнаружения: ~/.ollama)

Новые файлы конфигурации создаются из шаблонов, BACH_ROOT_PATH
вставлено автоматически. Повторная регистрация идемпотентна.


OPERATIONS
-----------

detect_active_partners()
  Обнаруживает установленных партнеров, проверяя их каталоги обнаружения.
  Возвращает: список имен партнеров (например, ["claude-code", "ollama"])

register_partner(partner: str)
  Вводит BACH в файл конфигурации партнера.
  - Загружает шаблон из шаблонов/{PARTNER_MD_TEMPLATE.md}
  - Заменяет [BACH_ROOT_PATH] текущим корневым путем BACH.
  - Создает новый файл или добавляет, если BACH еще не введен.
  - Возврат: (успех: bool, сообщение: str)

unregister_partner(partner: str)
  Удаляет блок BACH из файла конфигурации партнера.
  – Поиск по маркеру «#BACH Integration».
  - Удаляет блокировку до следующего заголовка верхнего уровня.
  - Идемпотент: нет ошибок в отсутствующих файлах/блоках.
  - Возвращает: (успех: bool, сообщение: str)

register_all_detected()
  Регистрирует BACH у всех признанных партнеров.
  Возвращает: Список (партнер: str, успех: bool, сообщение: str)


ПРИМЕРЫ
---------

Программный (bach_api):

  из bach_api импортировать PartnerConfigManager
  из пути импорта Pathlib

  менеджер = PartnerConfigManager(Путь("/путь/к/BACH"))

  # Признайте всех партнеров
  партнеры = менеджер.detect_active_partners()
  print(partners) # ["claude-code"]

  # Регистрация БАХа
  успех, msg = менеджер.register_partner("код-клауда")
  print(msg) # ✓ CLAUDE.md создан: ~/.CLAUDE.md

  # Зарегистрируйте всех
  результаты = менеджер.register_all_detected()


ФАЙЛЫ
-------

hub/partner_config_manager.py
  Реализация обработчика с классом PartnerConfigManager и функциями CLI.

templates/CLAUDE_MD_TEMPLATE.md
  Шаблон для интеграции кода Claude. Будет заменен на BACH_ROOT_PATH.

templates/GEMINI_MD_TEMPLATE.md
  Шаблон для интеграции с Gemini.

templates/OLLAMA_MD_TEMPLATE.md
  Шаблон для интеграции Ollama.

~/.CLAUDE.md, ~/.GEMINI.md, ~/.OLLAMA.md
  Целевые файлы для пользователей. Будет создан в домашнем каталоге.


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

SQ015 (системные требования): LLM Agnostics & Registration Process
SQ038: Улучшенная система маркеров для удаления блоков (планируется).
bach.py: точка входа CLI с подкомандами «партнера».
bach_api.py: API Python для программного использования.
