# Everything BigQueryAgentAnalyticsPlugin needs. Separate from gcp because
# pyarrow is a third of that extra's install size and only this plugin uses it.
optional-dependencies.bigquery-analytics = [
"google-cloud-bigquery>=2.2",
"google-cloud-bigquery-storage>=2",
"google-cloud-storage>=2.18,<4",
"pyarrow>=14",
]
optional-dependencies.community = [
"google-adk-community",
]
optional-dependencies.daytona = [
"daytona>=0.191", # For DaytonaEnvironment remote sandbox.
]
optional-dependencies.db = [
"sqlalchemy>=2,<3",
"sqlalchemy-spanner>=1.14",
]
optional-dependencies.dev = [
"codespell[toml]==2.4.2",
"flit>=3.10",
# Lint tools used by scripts/run_precommit_checks.sh (which runs them directly,
# without the pre-commit framework). Formatters that rewrite files are pinned
# to the exact versions in .pre-commit-config.yaml so local runs produce
# byte-identical output to CI.
"isort==8.0.1",
"mdformat==0.7.22",
"mdformat-gfm",
"mypy>=1.15",
"pre-commit>=4",
"pre-commit-hooks==4.6",
"pyink==25.12",
"pylint>=2.6",
"pyproject-fmt==2.24",
"ruff==0.15.17",
"tox>=4.23.2",
"tox-uv>=1.33.2",
]
optional-dependencies.docs = [
"autodoc-pydantic",
"furo",
"myst-parser",
"sphinx<9",
"sphinx-autodoc-typehints",
"sphinx-click",
"sphinx-rtd-theme",
]
optional-dependencies.e2b = [
"e2b>=2,<3", # For E2BEnvironment remote sandbox.
]
optional-dependencies.eval = [
"gepa>=0.1",
"google-cloud-aiplatform[evaluation]>=1.148",
"google-cloud-texttospeech>=2.37",
"jinja2>=3.1.4,<4", # For eval template rendering
"nltk!=3.10.1", # Transitive via rouge-score; 3.10.1's import hook breaks any venv living inside the working directory (reverted upstream in nltk/nltk#3732).
"openpyxl>=3.1.5,<4",
"pandas>=2.2.3",
"rouge-score>=0.1.2",
"tabulate>=0.9",
"xlrd>=2,<3",
]
optional-dependencies.extensions = [
"anthropic>=0.78", # For anthropic model support; 0.78 introduced ThinkingConfigAdaptiveParam (required for Claude Opus 4.7).
"beautifulsoup4>=3.2.2", # For load_web_page tool.
"crewai[tools]; python_version>='3.11' and python_version<'3.12'", # For CrewaiTool; chromadb/pypika fail on 3.12+
"docker>=7", # For ContainerCodeExecutor
"google-cloud-firestore>=2.11,<3", # For Firestore services
"k8s-agent-sandbox>=0.1.1.post3",
"kubernetes>=29",
"langgraph>=1.0.10,<2",
"langgraph-checkpoint>=4.1.1,<5", # LangGraph's own floor still admits unsafe checkpoint deserialization.
"litellm>=1.84",
"llama-index-embeddings-google-genai>=0.3",
"llama-index-readers-file>=0.4",
"lxml>=5.3",
"nltk!=3.10.1", # Transitive via llama-index-core; 3.10.1's import hook breaks any venv living inside the working directory (reverted upstream in nltk/nltk#3732).
"langgraph-checkpoint>=4.1.1,<5", # LangGraph's own floor still admits unsafe checkpoint deserialization.
"litellm>=1.84",
"llama-index-readers-file>=0.4",
"lxml>=5.3",
"mcp>=1.24,<2",
"nltk!=3.10.1", # Transitive via rouge-score and llama-index-core; 3.10.1's import hook breaks any venv living inside the working directory (reverted upstream in nltk/nltk#3732).