fastapi>=0.100.0
uvicorn[standard]
gunicorn
jinja2>=3.1.0
sqlalchemy>=2.0.0
psycopg2-binary
alembic
pydantic>=2.0.0
pydantic-settings>=2.0.0
email-validator
python-dotenv
pyyaml>=6.0.0
python-jose[cryptography]
passlib[bcrypt]
python-multipart
httpx>=0.28.0
pillow>=10.0.0
openpyxl>=3.1.2
pypdf>=4.2.0
python-docx>=1.1.2
python-pptx>=1.0.2
structlog
redis>=4.5.0  # Async support via redis.asyncio
celery>=5.6.3
croniter>=1.3.0
kombu>=5.3.0  # Message queue library for Celery
apscheduler
prometheus-client
psutil>=5.9.0
bleach
opentelemetry-api>=1.20.0,<2.0.0
opentelemetry-sdk>=1.20.0,<2.0.0
opentelemetry-exporter-otlp-proto-grpc>=1.20.0,<2.0.0
opentelemetry-instrumentation-fastapi>=0.41b0,<1.0.0
opentelemetry-instrumentation-sqlalchemy>=0.62b1,<1.0.0
opentelemetry-instrumentation-redis>=0.41b0,<1.0.0

# AI Providers
anthropic>=0.39.0
openai>=1.58.0
google-genai>=0.3.0

# AI Training (LLaMA Factory-style) - Optional, requires GPU
# These require special installation - uncomment if you have GPU
# paramiko is required for DGX Spark SSH orchestration
paramiko>=3.4.0
# torch>=2.0.0
# transformers>=4.40.0
# peft>=0.10.0          # LoRA/QLORA
# trl>=0.8.0            # SFT, PPO, DPO
# accelerate>=0.30.0    # Distributed training
# deepspeed>=0.14.0     # ZeRO optimization
# bitsandbytes>=0.42.0  # Quantization
# vllm>=0.4.0           # Inference serving
# sglang>=0.1.0         # Alternative inference
# datasets>=2.18.0      # HuggingFace datasets
# tensorboard>=2.15.0   # Training visualization
# huggingface-hub>=0.20.0  # Model downloads

# Mathematical Foundations
# arqera-math: mathematical foundations (Bayesian trust, Physarum routing, entropy, etc.)
# Private Arqera-IO repo — CI must inject GH_TOKEN at install time (PIP_EXTRA_INDEX_URL
# or git credentials helper). Pinned SHA so pip caches the clone — avoids GitHub-500
# transients. Bump the SHA in a follow-up PR when arqera-math main advances.
# The ${GH_TOKEN} placeholder is resolved by pip at install time from the env var;
# our CI workflows set GH_TOKEN from secrets.GITHUB_TOKEN (has repo:read on Arqera-IO/*).
arqera-math @ git+https://${GH_TOKEN}@github.com/Arqera-IO/arqera-math.git@d32fcf13508207fd83d0b4f35fb3b1c7449cd17d
# Backend uses inline services/math/ modules — no external dependency needed

# Vector Store & Embeddings
pgvector>=0.2.4

# Knowledge Graph (Ore Semantic Memory)
neo4j>=5.0.0

# External Services
firebase-admin>=6.4.0
stripe>=11.0.0
sendgrid>=6.11.0
twilio>=9.4.0
azure-communication-sms>=1.0.1  # Azure Communication Services for SMS
dnspython>=2.6.0
sentry-sdk[fastapi]>=1.32.0
boto3>=1.35.0
workos>=5.38.0
google-cloud-storage>=2.16.0
google-cloud-bigquery>=3.20.0
google-cloud-pubsub>=2.37.0
google-cloud-dlp>=3.14.0
google-cloud-monitoring>=2.22.0
google-cloud-secret-manager>=2.18.0
google-cloud-kms>=3.12.0
azure-identity>=1.15.0
azure-keyvault-secrets>=4.7.0
hvac>=2.1.0

# WebSocket
python-socketio>=5.11.0

# Testing
pytest>=8.3.0
pytest-asyncio>=1.3.0
pytest-cov>=6.0.0
pytest-xdist>=3.5.0  # Parallel test execution
pytest-timeout>=2.2.0  # Per-test timeout to prevent CI hangs
pytest-rerunfailures>=14.0  # Flaky test detection and reruns
mutmut>=2.4.0  # Mutation testing for test effectiveness validation
httpx>=0.28.0
factory-boy>=3.3.0
faker>=33.0.0
fakeredis>=2.21.0  # In-memory Redis for unit tests
testcontainers>=4.0.0  # PostgreSQL testcontainers for DB-level integration tests

# Dev Tools
ruff>=0.8.0
mypy>=1.20.2
pre-commit>=4.6.0
pyotp>=2.9.0
python-slugify>=8.0.4
user-agents>=2.2.0
msal>=1.30.0
webauthn>=2.0.0
python3-saml>=1.16.0
defusedxml>=0.7.1
psycopg[binary]
