# requirements.txt — Peregrine by Circuit Forge LLC
# Extracted from environment.yml for Docker pip installs
# Keep in sync with environment.yml

# ── CircuitForge shared core ───────────────────────────────────────────────
# Requires circuitforge-core >= 0.8.0 (config.load_env, db, tasks; resources moved to circuitforge-orch).
# Local dev / Docker (parent-context build): path install works because
# circuitforge-core/ is a sibling directory.
# CI / fresh checkouts: falls back to the Forgejo VCS URL below.
# To use local editable install run: pip install -e ../circuitforge-core
# TODO: pin to @v0.7.0 tag once cf-core cuts a release tag.
git+https://git.opensourcesolarpunk.com/Circuit-Forge/circuitforge-core.git@main

# ── Web UI ────────────────────────────────────────────────────────────────
streamlit>=1.35
watchdog
reportlab>=4.0
pandas>=2.0
pyarrow
streamlit-paste-button>=0.1.0

# ── Job scraping ──────────────────────────────────────────────────────────
python-jobspy>=1.1
playwright>=1.40
pytest-playwright>=0.4
pytest-json-report>=1.5
selenium
undetected-chromedriver
webdriver-manager
beautifulsoup4
requests
curl_cffi
fake-useragent

# ── LLM / AI backends ─────────────────────────────────────────────────────
openai>=1.55.0,<2.0.0  # >=1.55 required for httpx 0.28 compat; <2.0 for langchain-openai
anthropic>=0.80
ollama
langchain>=0.2
langchain-openai
langchain-anthropic
langchain-ollama
langchain-community
langchain-google-genai
google-generativeai
tiktoken

# ── Resume matching ───────────────────────────────────────────────────────
scikit-learn>=1.3
rapidfuzz
# lib-resume-builder-aihawk intentionally excluded — pulls torch+CUDA (~7GB).
# AIHawk runs in its own conda env (aihawk-env) outside the Docker container.

# ── Notion integration ────────────────────────────────────────────────────
notion-client>=3.0

# ── Document handling ─────────────────────────────────────────────────────
pypdf
pdfminer-six
pdfplumber
python-docx
json-repair
pyyaml>=6.0
python-dotenv

# ── Auth / licensing ──────────────────────────────────────────────────────
PyJWT>=2.8
pysqlcipher3

# ── Cloud / telemetry ─────────────────────────────────────────────────────────
psycopg2-binary

# ── Utilities ─────────────────────────────────────────────────────────────
sqlalchemy
tqdm
loguru
rich
tenacity
httpx

# ── Testing ───────────────────────────────────────────────────────────────
pytest>=9.0
pytest-cov
pytest-mock
lxml

# ── Documentation ────────────────────────────────────────────────────────
mkdocs>=1.5
mkdocs-material>=9.5

# ── Vue SPA API backend ──────────────────────────────────────────────────
fastapi>=0.100.0
uvicorn[standard]>=0.20.0
PyJWT>=2.8.0
cryptography>=40.0.0
python-multipart>=0.0.6
