[project] name = "open-swe-agent" version = "0.1.0" description = "Open SWE Agent - Python agent for automating software engineering tasks" readme = "README.md" requires-python = ">=3.11" license = { text = "MIT" } dependencies = [ "deepagents==0.6.12", "fastapi>=0.140.7", "uvicorn>=0.51.0", "httpx>=0.28.1", "PyJWT>=2.13.0", "cryptography>=49.0.0", "langgraph-sdk>=0.4.2", "langchain>=1.3.14", "langgraph>=1.2.9", "markdownify>=1.2.3", "langchain-anthropic>=1.5.2", "langchain-aws>=1.6.3", "langgraph-cli[inmem]>=0.4.31", "langsmith==0.10.10", "langchain-openai>=1.4.1", "langchain-fireworks>=1.5.2", # langchain-fireworks 1.4.2 pins a pre-release fireworks-ai; opt in explicitly so uv resolves it. "fireworks-ai>=1.2.4", "langchain-daytona>=0.0.7", "langchain-modal>=0.0.5", "langchain-runloop>=0.0.6", "langchain-e2b==0.0.6", "exa-py>=2.16.2", "langchain-google-genai>=4.3.2", "langchain-mcp-adapters>=0.3.1", ] [project.optional-dependencies] dev = [ "pytest>=9.1.1", "pytest-asyncio>=1.4.0", "ruff>=0.16.0", "Pygments>=2.20.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build.targets.wheel] packages = ["agent"] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.format] exclude = ["*.md"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # Pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade ] ignore = [ "E501", # line too long (handled by formatter) ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]