[project]
name = "maeris"
version = "0.9.0b5"
description = "MCP server and CLI for API management, security scanning, and Playwright test generation — powered by Claude"
readme = "README.md"
license = {file = "LICENSE"}
authors = [{name = "Maeris", email = "support@maeris.io"}]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Software Development :: Testing",
    "Topic :: Software Development :: Quality Assurance",
    "Topic :: Security",
]
requires-python = ">=3.10"
dependencies = [
    "mcp>=1.0.0,<2.0.0",
    "pydantic>=2.5,<3.0",
    "httpx>=0.27",
    "click>=8.1",
    "structlog>=24.1",
    "uvicorn>=0.27",
    "starlette>=0.36",
    "PyJWT>=2.8",
    "python-dotenv>=1.0.0",
    "rich>=13.0",
]

[project.urls]
Documentation = "https://maeris.io/docs"
Homepage = "https://maeris.io"

[project.optional-dependencies]
dev = [
    "pytest>=8.0",
    "pytest-asyncio>=0.23",
    "pytest-cov>=4.1",
    "mypy>=1.8",
    "ruff>=0.2",
]

[project.scripts]
maeris = "maeris_mcp.cli:cli"

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

[tool.hatch.build.targets.wheel]
packages = ["src/maeris_mcp"]

[tool.hatch.build.targets.sdist]
exclude = [".env", ".env.local", ".venv/", "dist/", "build/", "*.egg-info/"]

[tool.ruff]
line-length = 100
target-version = "py310"

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]

[tool.mypy]
python_version = "3.10"
strict = true
warn_return_any = true
warn_unused_ignores = true

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
