yfinance>=0.2.50
fastapi>=0.111.0
uvicorn[standard]>=0.29.0
python-multipart>=0.0.9
anthropic>=0.28.0
openai>=1.50.0
httpx>=0.27.0
certifi>=2024.2.2    # CA bundle for pinned_urlopen when platform openssl/cert.pem is missing
python-dotenv>=1.0.0
pypdf>=4.0.0
pymupdf>=1.24.0
Pillow>=10.4.0        # HEIC/HEIF -> JPEG transcode on upload (attachment_parse._normalize_image)
pillow-heif>=0.18.0   # registers the HEIC/HEIF decoder Pillow doesn't ship with
openpyxl>=3.1.0
xlrd>=2.0.0
msoffcrypto-tool>=5.0.0
apscheduler>=3.10.0
python-telegram-bot>=21.0
python-dateutil>=2.8.2
PyYAML>=6.0          # SKILL.md YAML frontmatter parse/emit (skill upload/export)
tzdata>=2024.1
cryptography>=42.0.0
websockets>=12.0
jsonschema>=4.0.0    # AI tool-input validation at the dispatch boundary (ai/tools/registry.py)
segno
SQLAlchemy>=2.0.30      # storage engine (Core only — no ORM); spec 2026-08-05 D2
alembic>=1.13.0          # versioned, ordered migrations; spec 2026-08-05 D3
psycopg[binary]>=3.1.0   # Postgres dialect for hosted/CI; SQLite needs no driver
trafilatura>=2.2.0       # local readability extraction for plain_get_fetch (ai/search/base.py)
