# Portabilität: UNIVERSAL
# Version: 1.0.0
# Zuletzt validiert: 2026-03-04

HANDLER-NAME
============
docs-search

BESCHREIBUNG
============
Echtzeit-Dokumentationssuche mit FTS5 (Full-Text Search). Ersetzt Context7 MCP.
Durchsucht docs/, wiki/, docs/help/ und gecachte Web-Dokumentationen.
Nutzt SQLite-Indexierung für schnelle Abfragen; Fallback auf LIKE-Suche.

OPERATIONEN
===========

search <query>
  Volltextsuche über alle indexierten Dokumente.
  Limit: 20 Treffer (FTS5 Ranking).
  Fallback: LIKE-Suche bei fehlender FTS5.
  Bei leeren Ergebnissen: Direkte Dateisuche in docs/, wiki/, docs/help/.

index
  Baut Suchindex neu auf oder aktualisiert ihn.
  Verarbeitet: .md, .txt, .rst, .py Dateien.
  Prüft via MD5-Checksum ob Update nötig ist.
  Extrahiert Titel aus erster Zeile (ohne #).
  Schreibt: document_index, document_fts.

lookup <library> <topic>
  Suche in Library-spezifischen Docs.
  Limit: 10 Treffer.
  Nutzt 'library' und 'doc_type' Spalten.

fetch <url>
  Lädt Dokumentationsseite herunter, konvertiert HTML zu Markdown,
  cached in data/cache/docs/ (MD5-Hash als Dateiname).
  Nutzt html2text (optimal) oder Regex-Fallback.
  Registriert URL mit Library-Name in document_index.
  Timeout: 15 Sekunden.

stats
  Zeigt Index-Statistiken: Gesamt, Lokal, Web, Libraries.
  Standard Operation wenn keine Parameter.

BEISPIELE
=========

bach docs-search search "SQLite optimization"
  -> Suche "SQLite optimization" in docs/, wiki/, docs/help/

bach docs-search index
  -> Index aufbauen/aktualisieren

bach docs-search lookup numpy array_operations
  -> Suche nach "array_operations" in "numpy" Library-Docs

bach docs-search fetch https://docs.python.org/3/library/sqlite3.html
  -> HTML-Seite herunterladen, cachen, indexieren

bach docs-search stats
  -> Zeige Index-Statistiken

DATEIEN
=======
data/bach.db
  SQLite-Datenbank mit Tabellen:
  - document_index: Metadaten + Inhalt aller Dokumente
  - document_fts: FTS5 Virtual Table für Volltextsuche

data/cache/docs/
  Gecachte Web-Dokumentationen (MD5-Hash.md)
  Erzeugt bei fetch-Operation.

docs/
wiki/
docs/help/
  Quell-Verzeichnisse für lokale Doku.
  Durchsucht recursiv während index-Operation.

SIEHE AUCH
==========
docs/help/           Weitere Handler-Dokumentationen
data/                Datenbank und Cache-Ordner
hub/base.py          BaseHandler Implementierung
