# Jarvis · Agent OS — Python-Abhängigkeiten
# Installiere mit: pip install -r requirements.txt
# Oder besser: pip install ".[all]"  (nutzt pyproject.toml)

# === Core ===
pydantic>=2.10,<3              # Datenmodelle, Validierung
pydantic-settings>=2.7,<3     # Settings Management
pyyaml>=6.0,<7                 # Config-Parsing
structlog>=25.4,<26            # Structured Logging
httpx>=0.28,<1                 # Async HTTP-Client (Ollama)
rich>=13.0,<14                 # CLI-Ausgabe
prompt-toolkit>=3.0,<4         # CLI-Input
anyio>=4.0,<5                  # Async Primitives
python-dotenv>=1.0,<2          # .env-Dateien laden

# === Security ===
cryptography>=46.0.5           # Credential-Verschlüsselung (Fernet)

# === Channels (optional) ===
# fastapi>=0.115,<1            # Web UI + REST API
# uvicorn[standard]>=0.34,<1   # ASGI-Server
# websockets>=14.0,<15         # WebSocket-Support
# python-telegram-bot>=21.0,<22  # Telegram-Channel

# === Websuche (optional) ===
# ddgs>=9.0,<10                # DuckDuckGo-Suche (Multi-Backend, kostenlos)
# trafilatura>=2.0             # Volltext-Extraktion aus HTML

# === Dokument-Export (optional) ===
# fpdf2>=2.7,<3                # PDF-Generierung (document_export Tool)
# python-docx>=1.0,<2          # DOCX-Generierung (document_export Tool)

# === Browser-Automatisierung (optional) ===
# playwright>=1.40             # Headless Browser (browse_url, browse_click, ...)
#                              # Nach Install: playwright install chromium

# === Voice (optional, GPU-System) ===
# faster-whisper>=1.0          # Speech-to-Text (Telegram Voice, Voice Channel)
# piper-tts>=1.0               # Text-to-Speech
# sounddevice>=0.5             # Audio I/O

# === Memory ===
# numpy>=2.0,<3                # Vektor-Operationen
# sqlite-vec>=0.1              # SQLite Vektor-Erweiterung
# beautifulsoup4>=4.12         # HTML-Parsing

# === Development ===
# pytest>=8.0,<9               # Tests
# pytest-asyncio>=0.24,<1      # Async-Tests
# pytest-cov>=6.0,<7           # Coverage
# ruff>=0.9,<1                 # Linter
# mypy>=1.14,<2                # Type-Checker
