[project]
name = "helix-cli"
version = "0.1.0"
description = "Official Helix CLI — a scriptable terminal client over the Helix MCP surface"
requires-python = ">=3.12"
# Intentionally tiny: the CLI is a thin client over the Helix MCP
# Streamable-HTTP endpoint plus the health/ready probes. It does NOT
# import the backend (``app.*``) — keeping the dependency set to httpx
# alone is what lets us ship it as a small wheel and a single-file
# PyInstaller binary employees can download and run without the backend.
dependencies = [
    "httpx>=0.28.0",
]

[project.scripts]
# ``helix`` console-script. Also runnable as ``python -m helix_cli``.
helix = "helix_cli.main:main"

[project.optional-dependencies]
dev = [
    "pytest>=8.3.0",
    "respx>=0.22.0",
    "ruff>=0.8.0",
]
# Used by the release workflow (.github/workflows/cli-release.yml) to
# build the single-file binaries. Not needed to run or test the CLI.
build = [
    "build>=1.2.0",
    "pyinstaller>=6.10.0",
]

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

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

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

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

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