fastapi==0.115.7
uvicorn[standard]==0.35.0
typer
pydantic==2.11.7
itsdangerous
# CVE-2026-24486 (HIGH): arbitrary file write — fixed in 0.0.22
# CVE-2026-42561 (HIGH): pre-0.0.27 parser issue — bumped 2026-05-17.
python-multipart==0.0.27

python-socketio==5.13.0
passlib[bcrypt]==1.7.4
cryptography

requests==2.32.4
# CVE-2025-69223 (HIGH): zip bomb via auto_decompress + 8 more CVEs (smuggling, DoS)
aiohttp==3.13.3
async-timeout
aiocache
aiofiles
starlette-compress==1.6.0
beautifulsoup4
httpx[socks,http2,zstd,cli,brotli]==0.28.1

sqlalchemy==2.0.38
alembic==1.14.0
peewee==3.18.1
peewee-migrate==1.12.2
bcrypt==4.3.0
pytz
websocket-client
huggingface_hub

redis

pycrdt==0.12.25

loguru==0.7.3
asgiref==3.8.1

tiktoken

# CVE-2026-45134 (HIGH): LangSmith SDK public prompt pull deserializes
# untrusted manifests without trust boundary warning. Fixed in 0.3.30.
# Bumped 2026-05-17.
langchain==0.3.30
# CVE-2025-6984 (HIGH): insecure XML parsing (XXE) in document loaders
langchain-community==0.3.27

## Vector DB — chromadb baked in (default backend, ~50MB).
## Other backends (pymilvus, qdrant-client, opensearch-py, elasticsearch, pinecone) still
## install at runtime via the AI Engine wizard when an operator picks a non-chroma VECTOR_DB.
## Pin matches app/pyproject.toml — bump both in lockstep.
chromadb==0.6.3
# chromadb (and friends) pull ML transitives that the wizard-installed
# transformers (4.57.6) imports at runtime. Since system site-packages
# is on sys.path BEFORE the wizard-installed ml_packages (intentional —
# keeps bcrypt/uvicorn/etc system-resolved), the system versions win for
# any shared package. So they must be inside the range transformers
# accepts. Pinned set, all removable once the 2.4 bundle owns the full
# ML stack:
#   - tokenizers       transformers wants <=0.23.0; chromadb wants >=0.13.2
#   - huggingface-hub  transformers wants <1.0; tokenizers wants >=0.16.4,<2
#   - numpy            torch+transformers ecosystems still wobble on 2.x ABI
tokenizers<=0.23.0
huggingface-hub<1.0
numpy<2

# ML packages (torch, sentence-transformers, transformers, colbert-ai, faster-whisper,
# onnxruntime) — installed at runtime via the AI Engine wizard step (requirements-ml.txt)


# Document processing (required by langchain_community.document_loaders)
pypdf==4.3.1
docx2txt==0.8
# unstructured + python-pptx — installed at runtime when non-PDF document types are uploaded
ftfy==6.2.3
fpdf2==2.8.2
Markdown==3.7
validators==0.35.0
soundfile==0.13.1

# CVE-2025-48379 (HIGH): DDS heap buffer overflow — fixed in 11.3.0
# CVE-2026-25990 (HIGH): out-of-bounds write via crafted PSD — fixed in 12.1.1
# CVE-2026-40192 (HIGH): DoS via decompression bomb in FITS image processing — fixed in 12.2.0
pillow==12.2.0

# CVE-2026-32597 (HIGH): accepts unknown crit header extensions — fixed in 2.12.0
PyJWT[crypto]==2.12.0
# CVE-2026-27962 (CRITICAL): auth bypass via JWK header — fixed in 1.6.9
authlib==1.6.9

# black — installed at runtime if code formatting is needed

pydub

# Google Drive / Cloud — installed at runtime when integration is enabled
# google-api-python-client, google-auth-httplib2, google-auth-oauthlib
# googleapis-common-protos, google-cloud-storage

# Azure — installed at runtime when integration is enabled
# azure-identity, azure-storage-blob, azure-ai-documentintelligence

# Test packages (pytest, docker) — install separately for testing, not in production image

## LDAP
ldap3==2.9.1

## Trace
opentelemetry-api==1.32.1
opentelemetry-sdk==1.32.1
opentelemetry-exporter-otlp==1.32.1
opentelemetry-instrumentation==0.53b1
opentelemetry-instrumentation-fastapi==0.53b1
opentelemetry-instrumentation-sqlalchemy==0.53b1
opentelemetry-instrumentation-redis==0.53b1
opentelemetry-instrumentation-requests==0.53b1
opentelemetry-instrumentation-logging==0.53b1
opentelemetry-instrumentation-httpx==0.53b1
opentelemetry-instrumentation-aiohttp-client==0.53b1
