# BACH - Core Requirements
# ============================================================
# Minimal dependencies needed for the BACH CLI to run.
# Install with: pip install -r requirements.txt
#
# System: Python 3.11+ recommended (tested on 3.12)
# Note:   Many features load lazily - only install what you use.
#         See requirements-optional.txt for feature-specific packages.
# ============================================================

# --- HTTP & Networking ---
requests>=2.32.5          # HTTP requests (hub: web, mail, connectors)
httpx>=0.28.1             # Async HTTP client (hub: API calls)
aiohttp>=3.13.0           # Async HTTP sessions (connectors, bridge)

# --- Data & Config Parsing ---
PyYAML>=6.0.2             # YAML config files (skills, connectors)
toml>=0.10.2              # TOML config support (converters)
python-dotenv>=1.2.0      # .env file loading
pydantic>=2.12.5          # Data validation (GUI API, FastAPI models)
xmltodict>=1.0.2          # XML <-> dict conversion (converters)
defusedxml>=0.7.1         # Secure XML parsing (document vendor code)
lxml>=6.0.0               # Fast XML/HTML parser (document processing)

# --- Text Processing ---
emoji>=2.15.0             # Emoji handling & safe-stripping (policies)
ftfy>=6.3.1               # Unicode/encoding repair (file ops)
rapidfuzz>=3.14.3         # Fuzzy string matching (document redaction)
markdown>=3.10            # Markdown -> HTML conversion (docs)

# --- File System & Monitoring ---
watchdog>=6.0.0           # File system event monitoring (scanner, watcher)
psutil>=7.0.0             # System/process info (GUI daemon, scheduler)
GitPython>=3.1.46         # Git operations (dev pipeline, ATI)

# --- Terminal & CLI ---
colorama>=0.4.6           # ANSI colors on Windows
rich>=14.2.0              # Rich terminal output (tables, progress bars)
click>=8.2.1              # CLI argument parsing
typer>=0.21.1             # Typed CLI building
tqdm>=4.67.1              # Progress bars (batch operations)

# --- Security & Credentials ---
cryptography>=45.0.5      # Encryption/hashing (anonymizer, security)
keyring>=25.7.0           # OS keychain integration (mail, API keys)

# --- Database & Storage ---
peewee>=3.19.0            # Lightweight ORM (some tools)

# --- PDF Processing (Core) ---
# PyMuPDF is OPTIONAL (AGPL) -- moved to requirements-optional.txt (SQ072/ENT-32)
pypdf>=6.4.0              # PDF text extraction & manipulation (MIT)
pdfplumber>=0.11.7        # PDF text/table extraction (MIT)
pikepdf>=10.0.2           # PDF low-level editing (anonymizer, redaction)

# --- Clipboard & UI Automation ---
pyperclip>=1.9.0          # Clipboard access (prompt workflow)
pyautogui>=0.9.54         # GUI automation (prompt session, ATI)
