Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "vmware-aiops"
version = "2.5.0"
description = "VMware vCenter/ESXi AI-powered VM lifecycle and deployment tool"
readme = "README.md"
license = "MIT"
requires-python = ">=3.10"
authors = [{ name = "Wei Zhou", email = "zhouwei008@gmail.com" }]
dependencies = [
    "pyvmomi>=8.0.3.0,<10.0",
    "pyaml>=24.0,<27.0",
    "typer>=0.12,<1.0",
    "rich>=13.0,<16.0",
    "apscheduler>=3.10,<4.0",
    "httpx>=0.27,<1.0",
    "certifi>=2026.10.19",  # GHSA-6q48-6c7w-9gw2: exclude compromised emSign root
    "python-dotenv>=1.0,<2.0",
    "mcp[cli]>=1.30,<2.0",
    "vmware-policy>=1.25.0,<2.0",
    # Read-only cluster-health triage (summary + HTML snapshot) is owned by
    # vmware-monitor; AIops delegates to it so a conversation with the AIops
    # entry point can produce the same report without duplicating the code.
    "vmware-monitor>=2.4.2,<3.0",  # unreadable host != down, login refused -> role error
]


[project.urls]
Homepage = "https://github.com/vmware-skills/VMware-AIops"
Repository = "https://github.com/vmware-skills/VMware-AIops"
Issues = "https://github.com/vmware-skills/VMware-AIops/issues"
Changelog = "https://github.com/vmware-skills/VMware-AIops/blob/main/RELEASE_NOTES.md"

[dependency-groups]
dev = [
    "pytest>=8.0,<10.0",
    "pytest-cov>=5.0,<8.0",
    "ruff>=0.5,<1.0",
]

[project.scripts]
vmware-aiops = "vmware_aiops.cli:app"
vmware-aiops-mcp = "vmware_aiops.mcp_server.server:main"

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

# Dev-only: resolve vmware-monitor from the local workspace so the delegated
# cluster-health summary uses the in-progress version. uv-specific and stripped
# from the published wheel — the real requirement stays `vmware-monitor>=1.8.0`
# in [project.dependencies]. Released together at the same family version.
[tool.uv.sources]
vmware-monitor = { path = "../VMware-Monitor", editable = true }

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

[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP"]

[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
    "unit: Unit tests",
    "integration: Integration tests (require vCenter)",
    "capability: Capability evals — scored trends, not pass/fail gates. Excluded from the default run (they measure quality, so <100% is expected and must not read as a broken build). Run them with: pytest -m capability",
]
# Capability evals are opt-in; see the marker description above.
addopts = "-m 'not capability'"