pyro-mcp/pyproject.toml
Thales Maciel 894706af50 Add use-case recipes and smoke packs
Turn the stable workspace surface into five documented, runnable stories with a shared guest-backed smoke runner, new docs/use-cases recipes, and Make targets for cold-start validation, repro/fix loops, parallel workspaces, untrusted inspection, and review/eval workflows.

Bump the package and catalog surface to 3.6.0, update the main docs to point users from the stable workspace walkthrough into the recipe index and smoke packs, and mark the 3.6.0 roadmap milestone done.

Fix a regression uncovered by the real parallel-workspaces smoke: workspace_file_read must not bump last_activity_at. Verified with uv lock, UV_CACHE_DIR=.uv-cache make check, UV_CACHE_DIR=.uv-cache make dist-check, and USE_CASE_ENVIRONMENT=debian:12 UV_CACHE_DIR=.uv-cache make smoke-use-cases.
2026-03-13 10:27:38 -03:00

88 lines
2.6 KiB
TOML

[project]
name = "pyro-mcp"
version = "3.6.0"
description = "Stable Firecracker workspaces, one-shot sandboxes, and MCP tools for coding agents."
readme = "README.md"
license = { file = "LICENSE" }
authors = [
{ name = "Thales Maciel", email = "thales@thalesmaciel.com" }
]
requires-python = ">=3.12"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Testing",
"Topic :: System :: Systems Administration",
]
dependencies = [
"mcp>=1.26.0",
]
[project.urls]
Homepage = "https://git.thaloco.com/thaloco/pyro-mcp"
Repository = "https://git.thaloco.com/thaloco/pyro-mcp"
Issues = "https://git.thaloco.com/thaloco/pyro-mcp/issues"
PyPI = "https://pypi.org/project/pyro-mcp/"
[project.scripts]
pyro = "pyro_mcp.cli:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/pyro_mcp"]
[tool.hatch.build.targets.wheel.force-include]
"src/pyro_mcp/runtime_bundle/NOTICE" = "pyro_mcp/runtime_bundle/NOTICE"
"src/pyro_mcp/runtime_bundle/linux-x86_64/bin/firecracker" = "pyro_mcp/runtime_bundle/linux-x86_64/bin/firecracker"
"src/pyro_mcp/runtime_bundle/linux-x86_64/bin/jailer" = "pyro_mcp/runtime_bundle/linux-x86_64/bin/jailer"
"src/pyro_mcp/runtime_bundle/linux-x86_64/guest/pyro_guest_agent.py" = "pyro_mcp/runtime_bundle/linux-x86_64/guest/pyro_guest_agent.py"
"src/pyro_mcp/runtime_bundle/linux-x86_64/manifest.json" = "pyro_mcp/runtime_bundle/linux-x86_64/manifest.json"
[tool.hatch.build.targets.sdist]
include = [
"docs/**",
"src/pyro_mcp/**/*.py",
"src/pyro_mcp/runtime_bundle/NOTICE",
"src/pyro_mcp/runtime_bundle/linux-x86_64/bin/firecracker",
"src/pyro_mcp/runtime_bundle/linux-x86_64/bin/jailer",
"src/pyro_mcp/runtime_bundle/linux-x86_64/guest/pyro_guest_agent.py",
"src/pyro_mcp/runtime_bundle/linux-x86_64/manifest.json",
"README.md",
"LICENSE",
"AGENTS.md",
"pyproject.toml",
]
[dependency-groups]
dev = [
"mypy>=1.19.1",
"pre-commit>=4.5.1",
"pytest>=9.0.2",
"pytest-cov>=7.0.0",
"ruff>=0.15.4",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "--cov=pyro_mcp --cov-report=term-missing --cov-fail-under=90"
[tool.ruff]
target-version = "py312"
line-length = 100
[tool.ruff.lint]
select = ["E", "F", "I", "B"]
[tool.mypy]
python_version = "3.12"
strict = true
warn_unused_configs = true
files = ["src", "tests", "examples"]