# We separate out requirements that are specific to the build, but not
# necessary for operation to minimize the size of containers

# Optional LLM Access
langchain-anthropic>=1.4.3,<2.0
# The [anthropic] extra adds anthropic[bedrock] + langchain-anthropic, needed for
# the "anthropic-bedrock" class (ChatAnthropicBedrock). It is a superset of plain
# langchain-aws, so the boto3-based "bedrock" class (ChatBedrock) keeps working.
langchain-aws[anthropic]>=1.0.0,<2.0
langchain-google-genai>=4.1.2,<5.0
langchain-nvidia-ai-endpoints>=1.0.0,<2.0
langchain-ollama>=1.0.0,<2.0
# langchain-openrouter depends on the openrouter SDK, which pins pydantic<2.13
# (as of openrouter 1.1.47). That pin is what keeps requirements.txt's pydantic
# floor below 2.13 (see the "Python 3.14 note" there) and is why pip resolves
# pydantic to 2.12.x when installing both requirements files together.
# Revisit both comments when openrouter lifts its cap.
langchain-openrouter>=0.2.3,<1.0

# Optional ReservationsStorage
# ... for S3
botocore>=1.34.51
aiobotocore>=3.7.0
# ... for Azure
azure-storage-blob>=12.19.0
azure-identity>=1.14.0

# Optional Authorization
openfga-sdk

# Optional Observability
# Floor is the verified version (langfuse.langchain.CallbackHandler path,
# get_client() per-key singleton, LANGFUSE_TRACING_ENABLED unset == "true");
# major-version cap because langfuse majors have moved the handler import
# path before (v2 -> v3).
langfuse>=4.6.1,<5.0

# These are needed for generating code from .proto files and for the
# generated *_pb2_grpc.py files which import grpcio
grpcio-tools>=1.62.0

# Tests
pytest==9.0.3
pytest-asyncio==1.3.0
pytest-timer==1.0.0
pytest-timeout>=2.3.1
timeout-decorator==0.5.0
coverage==7.6.1
pytest-cov==5.0.0
parameterized
pytest-xdist
pymarkdownlnt==0.9.30

# Code quality
flake8==7.3.0
pylint==4.0.2

# Special pylint extensions
pylint-protobuf==0.22.0

# packaging
build
setuptools>=61.0
wheel
setuptools-scm==8.1.0

# Tools that check that README renders correctly on PyPi
readme_renderer
readme_renderer[md]
# Note: Workaround for install problem with cmarkgfm==2025.11.20
cmarkgfm<=2024.11.20
