# Dinoer — Python dependencies
#
# Exact versions — the ones actually installed and tested in the reference
# deployment (`/opt/dinoer/venv`, checked 2026-08-05). Pinned rather than
# floored: a security-handling tool should install the same thing every
# time, not "whatever later patch happens to resolve" at install time.
# Bumping a pin is a deliberate act — re-test, then update the number.
# Install in a virtual environment:
#
#     python3 -m venv /opt/dinoer/venv
#     /opt/dinoer/venv/bin/pip install -r requirements.txt
#     /opt/dinoer/venv/bin/playwright install chromium
#
# Playwright requires its browser binary (Chromium) to be installed
# separately via the `playwright install` step above — it is not a
# pip dependency.

# Core: HTTP client for Ollama and Claude APIs
requests==2.34.2

# Core: scenario JSON schema validation (lot 9.2)
jsonschema==4.26.0

# Core: browser automation (Playwright Python bindings)
playwright==1.62.0

# v1.3: operator profile YAML loader (lib/profil_operateur.py)
PyYAML==6.0.3

# v1.6.0: TOTP generation for 2FA (Google Authenticator / Authy)
pyotp==2.10.0

# Recherche profonde : palier léger, extraction HTML sans navigateur
# (lib/fetch_leger.py)
beautifulsoup4==4.13.4

# Recherche profonde : base vectorielle locale pour l'embedding et le cache
# de recherche (lib/vector.py) — import différé (chargé uniquement dans
# get_client()), non requis pour les usages de Dinoer qui n'ouvrent jamais
# de collection ChromaDB
chromadb==1.5.9

# v1.15.0: stealth mode — normalise les attributs headless (--stealth)
playwright-stealth==2.0.3

# Optional: Anthropic API for --llm claude (deactivated with the perception layer)
# Not required for the default Ollama-only deployment, not installed in the
# reference venv — floor, not a tested exact pin like the rest of this file.
# anthropic>=0.40

# Test suite dependencies (pytest, etc.) live in requirements-dev.txt — never
# installed in /opt/dinoer/venv. See tests/ for usage.
