# M3 Memory — Unified Dependencies
# Install: pip install -r requirements.txt
# Versions pinned to major.minor.* for supply-chain safety (2026-04-16)
#
# RUNTIME DEPENDENCY (not Python): M3 needs an OpenAI-compatible LLM server
# running locally for embeddings and optional enrichment features.
#   Required: an embedding model (e.g. qwen3-embedding:0.6b via Ollama).
#   Optional: a small chat model (0.5B-1B instruct, e.g. qwen2.5:0.5b or
#     llama3.2:1b) for auto-classification, summarization, and consolidation.
#     These features are no-ops if no chat model is loaded.
# See QUICKSTART.md and ENVIRONMENT_VARIABLES.md for runtime recommendations
# across Ollama, LM Studio, llama.cpp --server, vLLM, and LocalAI.

# --- Core Engine & MCP ---
fastmcp>=3.2.4,<4
mcp>=1.27.0,<2

# --- Network & HTTP ---
httpx[http2]>=0.28.1,<1
h2>=4.3.0,<5
requests>=2.33.1,<3
urllib3>=2.6.3,<3

# --- Database & Storage ---
psycopg2-binary>=2.9.12,<3
psycopg[binary]>=3.2.0,<4
chromadb-client>=1.5.8,<2
sqlglot>=30.6.0,<31

# --- Security & Auth ---
cryptography>=46.0.7,<48
keyring>=25.7.0,<26
pywin32>=311; sys_platform == 'win32'

# --- System & Thermal ---
psutil>=7.2.2,<8
pyobjc-framework-CoreWLAN; sys_platform == 'darwin'

# --- Intelligence & Vector ---
numpy>=2.4.4,<3
scipy>=1.17.1,<2
tqdm>=4.67.3,<5

# --- Embedding Server ---
sentence-transformers>=5.4.1,<6
torch>=2.11.0,<3

# --- Utilities ---
python-dotenv>=1.2.2,<2
PyYAML>=6.0.3,<7
fpdf2>=2.8.7,<3
beautifulsoup4>=4.14.3,<5
argparse>=1.4.0,<2

# --- MCP Proxy & API ---
fastapi>=0.136.1,<1
uvicorn>=0.46.0,<1

# --- Development & Testing ---
pytest>=9.0.3,<10
pytest-asyncio>=1.3.0,<2
ruff>=0.15.12,<1
mypy>=1.20.2,<2
types-requests>=2.33.0.20260408
types-setuptools>=82.0.0.20260408
