[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "spens"
version = "0.1.0"
description = "Toolchain for running and orchestrating agents in a safe environment with full audit control"
readme = "README.md"
requires-python = ">=3.11"
license = "MIT"
keywords = ["agents", "sandbox", "nono", "docker", "audit"]
dependencies = [
    "rich>=13.7",
]
classifiers = [
    "Programming Language :: Python :: 3",
    "Operating System :: OS Independent",
]

[project.optional-dependencies]
dev = ["pytest", "ruff>=0.16"]

[project.scripts]
spens = "spens.cli:main"

[tool.ruff]
line-length = 120
target-version = "py311"
src = ["spens", "tests"]

[tool.ruff.lint]
select = [
    "E",   # pycodestyle errors
    "W",   # pycodestyle warnings
    "F",   # pyflakes
    "I",   # isort
    "UP",  # pyupgrade
    "B",   # flake8-bugbear
    "SIM", # flake8-simplify
]

[tool.ruff.lint.per-file-ignores]
# Long inline literals and short loop variable names are fine in tests
"tests/**" = ["E501", "E741"]

[tool.pytest.ini_options]
testpaths = ["tests/unit"]

[tool.hatch.build.targets.wheel]
packages = ["spens"]
