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

РАСШИРЕНИЯ — инструменты рабочего стола и специальные приложения 
=============================================

 Статус: 2026-03-04 

 Обработчик расширений управляет внешними расширениями BACH: настольными приложениями,
Специальные инструменты и графические интерфейсы рабочего стола, которые не являются частью базовой системы.
Расширения хранятся в каталоге Extensions/ и могут быть синхронизированы.
нашел и запустил.

СТРУКТУРА
--------

  расширения/
    доб1/
      Метаданные расширения SKILL.md
      Загрузочный файл START.bat (Windows)
      Документация README.md
      основная программа main.py
      require.txt Зависимости Python
    доб2/
      ...

ИМЯ ОБРАБОТЧИКА
------------

расширения

КОМАНДЫ CLI (расширения Баха)
-----------------------------

  list Список всех расширений
  show <имя> Показать подробную информацию о расширении
  запустить <имя> Стартовое расширение (START.bat или main.py)
  синхронизация расширений синхронизируется с базой данных
  search <term> Расширения поиска

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

Расширения представляют собой модульные портативные настольные приложения со следующими функциями:

- Каждое расширение имеет собственный каталог с SKILL.md
- START.bat необязательно для запуска Windows (резервный вариант: прямое выполнение Python)
- SKILL.md или README.md содержат описания
- Автоматическое определение основных файлов: main.py, app.py, <имя>.py.
- Синхронизация в БД регистрирует расширения как навыки (type='extension')

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

list: Список всех существующих расширений с:
         - Количество файлов .py
         - Флаги: [SKILL] если SKILL.md, [START] если START.bat
         - Описание (из SKILL.md или README.md)
         - Место хранения

показать: Подробное отображение расширения:
         - Полный путь
         - Список файлов с размерами
         - Предварительный просмотр SKILL.md (до 500 символов)
         - Нечеткое совпадение, если имя неточно 

run: Запускает расширение:
         - Windows: Запустите START.bat (новое окно)
         - Резервный вариант: запустить основной файл напрямую с Python.
         - Основной файл по приоритету: main.py > app.py > <имя>.py

sync: синхронизирует расширения с базой данных (bach.db):
         - Добавляет новые расширения (type='extension')
         - Обновления путей и описаний существующих расширений.
         - --dry-run показывает изменения без записи

поиск: полнотекстовый поиск:
         - Имя расширения (без учета регистра)
         - Описание (регистронезависимо)
         - Показывает совпадения с фрагментом

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

  # Список всех расширений
  bach extensions list

  # Подробности о расширении (например, «myapp»)
  bach extensions show myapp

  # Запустить расширение
  bach extensions run myapp
  bach extensions run knowledgedigest

  # Синхронизировать в базе данных (добавлять вновь обнаруженные расширения)
  bach extensions sync
  bach extensions sync --dry-run      # Предварительный просмотр без изменений

  # Поиск расширения
  bach extensions search "data"
  bach extensions search "analysis"

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

  реализация обработчикаhub/extensions.py
  Extensions/Каталог расширений (относительно system/)
  Extensions/<имя>/SKILL.md Метаданные расширения
  Extensions/<имя>/START.bat Файл запуска Windows
  документация Extensions/<имя>/README.md
  Extensions/<имя>/requirements.txt Зависимости (необязательно)
  база данных data/bach.db с расширением реестра

БАЗА ДАННЫХ
---------

  бах.дб:
    таблица навыков с type='extension'
      - имя Имя расширения
      - введите «расширение»
      - категория Категория (например, «расширение»)
      - путь Путь к каталогу
      - описание описание
      - is_active 1 (включено) или 0 (выключено)
      - версия версии (по умолчанию: 1.0.0)
      - dist_type 2 (Расширение)

SKILL.md ФОРМАТ
---------------

Минимальный формат:

  описание: Краткое описание расширения.
  автор: Имя
  версия: 1.0.0
  категория: инструмент|gui|anaанализ|utils

Описание автоматически берется из SKILL.md или README.md обработчиком
извлекается и сохраняется в базе данных.

ПУСКОВОЙ МЕХАНИЗМ
----------------

1. расширения bash запускают <имя>, вызывается
2. Обработчик ищет расширения/<имя>/
3. START.bat существует? -> Windows: cmd /c start <START.bat>
4. Еще: Найдите основной файл (main.py, app.py, <имя>.py).
5. Основной файл присутствует? -> python <основной файл>
6. Ошибка, если файл запуска не найден

В системах, отличных от Windows: START.bat игнорируется, только резервная версия Python

СМ. ТАКЖЕ
----------

  bach --help skills          Система SKILL.md (метаданные)
  bach --help dist            Распространение и упаковка
  расширения/каталог расширений
  Исследования/_tools/Инструменты исследования (примеры)
