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

ИМЯ ОБРАБОТЧИКА
============
docs-search

ОПИСАНИЕ
============
Поиск документации в реальном времени с помощью FTS5 (полнотекстовый поиск). Заменяет Context7 MCP.
Ищет документы/, вики/, документы/справку/ и кэшированную веб-документацию.
Использует индексацию SQLite для быстрых запросов; Возврат к поиску LIKE.

OPERATIONS
===========

search <query>
  Полнотекстовый поиск по всем проиндексированным документам.
  Ограничение: 20 обращений (рейтинг FTS5).
  Резервный вариант: поиск LIKE, если FTS5 отсутствует.
  Для пустых результатов: прямой поиск файлов в docs/, wiki/, docs/help/.

index.
  Перестраивает или обновляет индекс поиска.
  Процессы: файлы .md, .txt, .rst, .py.
  Проверяет по контрольной сумме MD5, необходимо ли обновление.
  Извлекает заголовок из первой строки (без #).
  Пишет: document_index, document_fts.

lookup <библиотека> <тема>
  Поиск документации по конкретной библиотеке.
  Ограничение: 10 попаданий.
  Использует столбцы «library» и «doc_type».

fetch <url>
  Загружает страницу документации, конвертирует HTML в Markdown,
  кэшируется в data/cache/docs/ (хэш MD5 в качестве имени файла).
  Использует html2text (оптимально) или резервное выражение регулярного выражения.
  Регистрирует URL-адрес с именем библиотеки в document_index.
  Таймаут: 15 секунд.

статистика
  Показывает статистику индексов: Всего, Локально, Интернет, Библиотеки.
  Операция по умолчанию, если нет параметров.

ПРИМЕРЫ
=========

bach docs-search search "SQLite optimization"
  -> Найдите «оптимизацию SQLite» в docs/, wiki/, docs/help/

bach docs-search index
  -> Индекс сборки/обновления

bach docs-search lookup numpy array_operations
  -> Найдите «array_operations» в документации библиотеки «numpy» 

bach docs-search fetch https://docs.python.org/3/library/sqlite3.html
  -> Загрузить, кэшировать, индексировать HTML-страницу

bach docs-search stats
  -> Показать статистику индекса

ФАЙЛЫ
=======
data/bach.db
  База данных SQLite с таблицами:
  - document_index: метаданные + содержимое всех документов
  - document_fts: виртуальная таблица FTS5 для полнотекстового поиска 

data/cache/docs/
  Кэшированная веб-документация (MD5-Hash.md)
  Создано операцией выборки.

docs/
вики/
документы/помощь/
  Исходные каталоги для локальной документации.
  Рекурсивный поиск во время операции с индексом.

СМ. ТАКЖЕ
==========
docs/help/ Дополнительная документация по обработчику.
data/папка базы данных и кеша
Hub/base.py реализация BaseHandler
