# OmniKB dependencies — compatible-release pins.
# Use ~= (compatible release): allows patch-level security updates within the
# same minor version, blocks breaking changes. For exact reproducibility
# use ``requirements.lock.txt`` (generated via ``pip freeze``).
#
#   pip install -r requirements.txt            # development (compat pins)
#   pip install -r requirements.lock.txt       # reproducible build (exact)

# ── Web framework ──────────────────────────────────────────────
fastapi~=0.136.0
uvicorn[standard]~=0.46.0
pydantic~=2.13.0
pydantic-settings~=2.14.0
python-multipart~=0.0.27
aiofiles~=25.1.0
starlette~=1.0.0

# ── Vector store ───────────────────────────────────────────────
qdrant-client[fastembed]~=1.17.0

# ── Metadata DB ────────────────────────────────────────────────
aiosqlite~=0.22.0

# ── LLM / Embeddings ───────────────────────────────────────────
# NOTE: only DeepSeek and OpenAI-compatible providers are wired today.
# langchain-anthropic is installed for legacy .env compatibility only.
openai~=2.36.0
langchain~=1.2.0
langchain-openai~=1.2.0
langchain-anthropic~=1.4.0
langchain-community~=0.4.0
langchain-text-splitters~=1.1.0
langgraph~=1.1.0

# ── MCP ────────────────────────────────────────────────────────
fastmcp~=3.2.0

# ── Document processing ────────────────────────────────────────
pdfplumber~=0.11.0
python-docx~=1.2.0
beautifulsoup4~=4.14.0
httpx~=0.28.0

# ── Utilities ──────────────────────────────────────────────────
python-dotenv~=1.2.0

# ── Media transcription ────────────────────────────────────────
# Requires: ffmpeg binary on PATH (apt install ffmpeg / brew install ffmpeg).
faster-whisper~=1.2.0
ffmpeg-python~=0.2.0

# ── Web scraping ───────────────────────────────────────────────
scrapling~=0.4.0
# Stealth-patched Playwright fork. Optional; requires `patchright install`
# (or `playwright install chromium`) on first run.
patchright~=1.59.0

# ── Re-ranker (optional, large download on first use) ──────────
sentence-transformers~=5.4.0

# ── Optional (install manually): ────────────────────────────────
# yt-dlp                 — YouTube metadata extraction
# pytest pytest-asyncio  — running tests/agent_core unit suite
