# Minimal dependencies for the verified local quickstart and NEXUS_PROFILE=slim.
# Subset of pyproject.toml for a lightweight Nexus server with storage only.
# No cloud connectors, no LLM/ML packages, no Zoekt, no sandbox providers.

# CLI
click>=8.3.3
rich>=15.0.0
tqdm>=4.67.3

# Config
pydantic[email]>=2.13.4
pyyaml>=6.0.3

# Schema validation — required by archive verify_archive (Issue
# #4083) to validate v3 portability bundles against
# manifest-v3.json before trusting mounts.jsonl checksums. Listed
# here because the slim image installs the package with --no-deps
# and would otherwise silently miss this dep.
jsonschema>=4.20.0

# HTTP client (used internally)
httpx[http2]>=0.28.1
requests>=2.33.1
tenacity>=9.1.4
aiohttp>=3.13.5
frozenlist>=1.8.0

# gRPC server — lower bounds must match pyproject.toml / generated stubs
# (approvals_pb2_grpc rejects grpcio < 1.78.0 at import time; #3790)
grpcio>=1.80.0
protobuf>=6.33.6

# HTTP server
fastapi>=0.136.1
uvicorn[standard]>=0.46.0
uvloop>=0.22.1
watchfiles>=1.1.1

# Database (RecordStore — imports exist even if skipped at runtime)
sqlalchemy>=2.0.49
alembic>=1.18.4
greenlet>=3.5.0
aiosqlite>=0.22.1

# Caching
cachetools>=7.1.1

# Auth
authlib>=1.7.2
bcrypt>=5.0.0
cryptography>=48.0.0
PyJWT>=2.12.1

# Fast JSON
orjson>=3.11.9

# Content hashing
blake3>=1.0.8
bsdiff4>=1.2.6
fastcdc>=1.7.0

# Fuzzy matching
rapidfuzz>=3.14.5

# Rate limiting
slowapi>=0.1.9
limits>=5.8.0

# BM25 search (built-in)
bm25s>=0.3.8

# Logging
structlog>=25.5.0

# LZ4 compression
lz4>=4.4.5

# Roaring bitmaps
pyroaring>=1.1.0

# Misc
aiofiles>=25.1.0
dotenv>=0.9.9
networkx>=3.6.1
