[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "gh-deepagent" version = "0.6.1" description = "Coding & GitHub-issue-solving agent built on LangChain Deep Agents" readme = "README.md" requires-python = ">=3.11" license = { text = "MIT" } authors = [{ name = "you" }] dependencies = [ "deepagents>=0.6.11,<0.8.0", "langgraph>=0.2.0", "langchain>=0.3.0", "langchain-core>=0.3.0", "PyGithub>=2.3.0", "GitPython>=3.1.43", "typer>=0.12.0", "rich>=13.7.0", "python-dotenv>=1.0.1", "pydantic>=2.7.0", "redis>=5.0.0", "structlog>=24.1.0", "prometheus-client>=0.20.0", ] [project.optional-dependencies] ollama = ["langchain-ollama>=0.2.0"] anthropic = ["langchain-anthropic>=0.2.0"] openai = ["langchain-openai>=0.2.0"] google = ["langchain-google-genai>=2.0.0"] groq = ["langchain-groq>=0.2.0"] daytona = ["langchain-daytona>=0.1.0", "daytona>=0.20.0"] modal = ["langchain-modal>=0.1.0", "modal>=0.64.0"] runloop = ["langchain-runloop>=0.1.0", "runloop-api-client>=0.4.0"] webhook = ["fastapi>=0.110", "uvicorn[standard]>=0.27", "httpx>=0.27"] migrate = ["libcst>=1.4.0"] # also requires `ast-grep` binary in PATH perf = ["py-spy>=0.4.0"] otel = [ "opentelemetry-api>=1.25", "opentelemetry-sdk>=1.25", "opentelemetry-exporter-otlp-proto-grpc>=1.25", "opentelemetry-instrumentation-fastapi>=0.46b0", "opentelemetry-instrumentation-redis>=0.46b0", "opentelemetry-instrumentation-httpx>=0.46b0", ] dashboard = [ "streamlit>=1.36.0", "pandas>=2.0", "httpx>=0.27", ] all = [ "langchain-ollama>=0.2.0", "langchain-anthropic>=0.2.0", "langchain-openai>=0.2.0", "fastapi>=0.110", "uvicorn[standard]>=0.27", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "ruff>=0.5", "mypy>=1.10", "httpx>=0.27", "fakeredis>=2.20.0", ] [project.scripts] gh-deepagent = "gh_deepagent.cli:app" [tool.hatch.build.targets.wheel] packages = ["src/gh_deepagent"] [tool.ruff] line-length = 100 target-version = "py311" [tool.pytest.ini_options] addopts = "-q" testpaths = ["tests"]