[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.139.2", "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.4.6", "langchain-aws>=1.6.2", "langgraph-cli[inmem]>=0.4.31", "langsmith==0.10.5", "langchain-openai>=1.3.5", "langchain-fireworks>=1.4.4", # langchain-fireworks 1.4.2 pins a pre-release fireworks-ai; opt in explicitly so uv resolves it. "fireworks-ai>=1.2.0a88", "langchain-daytona>=0.0.7", "langchain-modal>=0.0.5", "langchain-runloop>=0.0.6", "exa-py>=2.16.0", "langchain-google-genai>=4.2.7", "langchain-mcp-adapters>=0.3.0", ] [project.optional-dependencies] dev = [ "pytest>=9.1.1", "pytest-asyncio>=1.4.0", "ruff>=0.15.22", "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.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"]