# ── Phase 1 — core API / queue / data layer ──────────────────
Flask==3.0.3
Jinja2==3.1.4
gunicorn==22.0.0
python-dotenv==1.0.1
requests==2.32.3
redis==5.0.7
rq==1.16.2
Flask-Limiter==3.5.0
PyJWT==2.9.0

# ── Billing / email ───────────────────────────────────────────
stripe==10.7.0
resend==2.4.0

# ── Phase 2 — scraping engine (moved from legacy app.py) ─────
playwright==1.46.0
playwright-stealth==1.0.6
beautifulsoup4==4.12.3
lxml==5.3.0
nest_asyncio==1.6.0
openai==1.43.0
gspread==6.1.2
google-auth==2.34.0

# ── Phase 6 — embeddings / similarity ─────────────────────────
# Unpinned to a minimum rather than exact — prebuilt wheels for very
# new Python versions lag behind numpy point releases; pip will pick
# the newest compatible wheel.
numpy>=2.2.0

# ── Observability (initialised in Phase 7, dependency pinned now) ─
sentry-sdk[flask]==1.44.1

# ── Testing ────────────────────────────────────────────────────
pytest==8.3.2
pytest-cov==5.0.0
pytest-mock==3.14.0
fakeredis==2.24.1
