CmdForge/pyproject.toml

105 lines
2.7 KiB
TOML

[build-system]
requires = ["setuptools>=77.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "cmdforge"
version = "0.2.0"
description = "Build, compose, and share AI-powered command-line tools you own"
readme = "PYPI_README.md"
license = "MIT"
license-files = ["LICENSE"]
requires-python = ">=3.10"
authors = [
{name = "Rob"}
]
keywords = ["ai", "cli", "tools", "automation", "llm", "terminal", "unix", "pipe"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Utilities",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Text Processing",
]
dependencies = [
"PyYAML>=6.0",
"requests>=2.28",
"PySide6>=6.5",
"NodeGraphQt>=0.6.0",
"setuptools", # Required for distutils compatibility (Python 3.12+)
"jsonschema>=4.0", # JSON schema validation for structured output
"cryptography>=41.0", # Ed25519 release attestations
]
[project.optional-dependencies]
dev = [
"pytest>=7.0",
"pytest-cov>=4.0",
"tomli>=1.1; python_version < '3.11'",
]
release = [
"build>=1.2",
"twine>=6.0",
]
registry = [
"Flask>=2.3",
"argon2-cffi>=21.0",
"sentry-sdk[flask]>=1.0",
"gunicorn>=21.0",
]
flow = [
"NodeGraphQt-QuiltiX-fork[pyside6]>=0.7.0",
"setuptools", # Required for distutils compatibility
]
pty = [
"pexpect>=4.8", # For PTY providers (interactive CLIs like Aider)
]
mcp = [
"mcp>=1.27,<2", # Model Context Protocol support (McpStep)
]
all = [
"Flask>=2.3",
"argon2-cffi>=21.0",
"sentry-sdk[flask]>=1.0",
"gunicorn>=21.0",
"NodeGraphQt-QuiltiX-fork[pyside6]>=0.7.0",
"setuptools",
"pexpect>=4.8",
"mcp>=1.27,<2",
]
[project.scripts]
cmdforge = "cmdforge.cli:main"
cf = "cmdforge.cli.picker:main"
[project.urls]
Homepage = "https://cmdforge.brrd.tech"
Documentation = "https://cmdforge.brrd.tech/docs"
Repository = "https://gitea.brrd.tech/rob/CmdForge.git"
Issues = "https://gitea.brrd.tech/rob/CmdForge/issues"
Changelog = "https://gitea.brrd.tech/rob/CmdForge/src/branch/main/CHANGELOG.md"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
"cmdforge.web" = [
"templates/**/*.html",
"static/**/*",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
markers = [
"integration: marks tests as integration tests (require running server)",
]