 
# These requirements are for the Python that is run in the
# neuro_san/service container.
#
# Requirements for tests, code style and other build stuff reside in
# requirements-build.txt

# In-house dependencies
leaf-common>=1.2.23
leaf-server-common>=0.1.20

# These are needed for generating code from .proto files
grpcio>=1.62.0
grpcio-health-checking>=1.62.0
grpcio-reflection>=1.62.0
grpcio-tools>=1.62.0

protobuf>=4.25.3,<5.0

# Downgraded secondary dependencies for error-free pip installs
pyhocon>=0.3.60
pyOpenSSL>=24.0.0

boto3>=1.34.51
botocore>=1.34.51
idna>=3.6
urllib3>=1.26.18
aiohttp>=3.10.5,<4.0

# These are transient dependencies needed by leaf-common
ruamel.yaml>=0.18.6
hvac>=1.1.0

# For LLM access
# Keep all these guys pinned for now, as it is the wild wild west out there
# and we don't want to be on a dependencies treadmill with timing not of our choosing.
langchain>=0.3.15,<0.4
langchain-anthropic>=0.3.11,<0.4
langchain-community>=0.3.19,<0.4
langchain-google-genai>=2.0.11,<3.0
langchain-openai>=0.2.5,<0.4
langchain-nvidia-ai-endpoints>=0.3.8,<0.4
langchain-ollama>=0.2.3,<0.3
openai>=1.54.1,<2.0
tiktoken>=0.8.0,<1.0
bs4>=0.0.2,<0.1
pydantic>=2.9.2,<3.0

# httpx pinned only for this reason: https://github.com/openai/openai-python/issues/1903
httpx==0.27.2

# HTTP server part
tornado>=6.4.2

# Sync/async queue
janus >= 2.0.0

# Local filesystem watchdog
watchdog>=6.0.0

# For input validation
validators>=0.22.0

# For chat-based cli tools not used in deployment
timedinput>=0.1.1

# The only reason we include this is for the website_search example
# to work out-of-the-box.
# This is not used in any part of neuro-san core operations.
duckduckgo_search>=7.3.0

# Structure parsing
json-repair>=0.47.3,<1.0
