[build-system] requires = ["setuptools>=80"] build-backend = "setuptools.build_meta" [project] name = "modelforge-node-agent" version = "1.2.2" license = "AGPL-3.0-or-later" requires-python = ">=3.12" dependencies = [ "certifi==2026.7.22", "httpx==0.28.1", # Ships as one product with the control plane, so this tracks VERSION exactly. A # stale pin here made the Node Agent image unbuildable the moment the product # version moved, which is a release failure that only appears at build time. "modelforge-api==1.2.2", "pydantic-settings==2.15.0", ] [project.optional-dependencies] dev = [ "pytest==8.4.2", "ruff==0.16.5", "mypy==1.20.2", ] [project.scripts] modelforge-node-agent = "modelforge_node_agent.main:main" [tool.setuptools.packages.find] where = ["src"] [tool.pytest.ini_options] pythonpath = ["src", "../backend/src"] testpaths = ["tests"] [tool.mypy] # The images run on Linux, so that is the platform the type check must analyse. Checking on the # developer's platform meant Windows-only branches were analysed and Linux-only ones were not — # a winreg block type-checked cleanly here and failed in CI on identical code. platform = "linux" python_version = "3.12" strict = true mypy_path = ["../backend/src"] [tool.ruff] target-version = "py312" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "S"] [tool.ruff.lint.per-file-ignores] "tests/*" = ["S101"]