# Requirements for tests, code style and other build stuff reside in
# requirements-build.txt

# Neuro SAN library
neuro-san>=0.7,<0.8

# MCP client SDK - used to perform the OAuth 2.1 (auth-code + PKCE + dynamic
# client registration) flow when connecting nsflow to OAuth-protected MCP servers.
# Pin matches the sibling neuro-san library so the two stay compatible.
mcp>=1.23.0,<2.0

# SQLAlchemy - direct dependency of the backend persistence layer
# (nsflow/backend/db/*, backing the CRUSE thread/message/theme endpoints).
# main.py and api/router.py import that layer unconditionally at import time,
# so the app cannot even start without SQLAlchemy installed.
#
# It was never declared here because it used to arrive transitively: neuro-san
# depended on langchain-classic, which depends on SQLAlchemy. neuro-san removed
# langchain-classic on 2026-07-28 (commit 327d60623, "Remove langchain-classic
# and langchain-community from requirements"), so a clean install resolving a
# current neuro-san (>=0.6.85, still inside our >=0.6.32,<0.7 range above) no
# longer pulls SQLAlchemy in - which broke both `pip install nsflow` startup and
# the CI pylint import-check. Declare it directly rather than lean on neuro-san's
# transitive graph. 2.0.x is what was previously resolved (2.0.51) and the db
# layer's API usage is SQLAlchemy 2.0-clean.
sqlalchemy>=2.0,<3

# These are needed to run this app
fastapi-cors>=0.0.6
fastapi>=0.115.8
aiofiles>=24.1.0
graphviz==0.20.3
nbformat>=5.10.4
pydantic>=2.9.2
pyhocon>=0.3.61
python-dotenv>=1.2.2,<2.0.0
rich>=14.2.0
uvicorn>=0.34.0
websockets>=14.2
wsproto>=1.2.0
Werkzeug>=3.1.4

# These packages are needed for text-2-speech and speech-2-text
# pydub relies on ffmpeg
# On Mac:
#     brew install ffmpeg
gTTS==2.5.4
pydub==0.25.1
python-multipart>=0.0.22
SpeechRecognition==3.14.3

# For PDF processing, matching the version used in neuro-san-studio
# Note: this is a temporary depndency until multimodal is added to neuro-san.
pypdf>=6.1.3
