[project] name = "flock" version = "0.0.1" description = "Host coding-harness agent swarms on Hugging Face Jobs: keep them alive, prompt them, watch them." requires-python = ">=3.11" dependencies = [ "pydantic>=2.7", "httpx>=0.27", "pyyaml>=6", "typer>=0.12", "huggingface_hub>=1.0", ] [project.optional-dependencies] controller = ["fastapi>=0.115", "uvicorn[standard]>=0.30", "jinja2>=3.1"] worker = ["claude-agent-sdk>=0.1"] dev = ["pytest>=8", "pytest-asyncio>=0.23", "ruff>=0.6", "fastapi>=0.115", "uvicorn[standard]>=0.30", "jinja2>=3.1", "respx>=0.21"] [project.scripts] flock = "flock.cli:app" flock-controller = "flock.controller.main:main" flock-worker = "flock.worker.main:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/flock"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint.per-file-ignores] # ruff >= 0.17 enables PYI041 by default; models.py is the shared contract, left as written. "src/flock/models.py" = ["PYI041"]