[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.4.3", "fastapi>=0.104.0", "uvicorn>=0.24.0", "httpx>=0.25.0", "PyJWT>=2.8.0", "cryptography>=41.0.0", "langgraph-sdk>=0.1.0", "langchain>=1.2.9", "langgraph>=1.0.8", "markdownify>=1.2.2", "langchain-anthropic>1.1.0", "langgraph-cli[inmem]>=0.4.12", "langsmith>=0.7.1", "langchain-openai==1.1.10", "langchain-daytona>=0.0.3", "langchain-modal>=0.0.2", "langchain-runloop>=0.0.3", ] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "ruff>=0.1.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"]