pyproject.toml
Rama main · réplica de lectura del repositorio original.
[project]
name = "bitcadence"
version = "0.6.0"
description = "BitCadence: a governed job board for AI agents - approval gates, immutable audit, and Drumline shared memory. Every agent. One beat."
readme = "README.md"
requires-python = ">=3.9"
license = { text = "LicenseRef-Prosperity-3.0.0" }
authors = [
{ name = "Batoncadence LLC" }
]
keywords = ["ai-agents", "orchestration", "mcp", "governance", "self-hosted", "audit", "human-in-the-loop"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: Free for non-commercial use",
"Operating System :: OS Independent",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Topic :: System :: Distributed Computing",
]
dependencies = [
"fastapi>=0.100.0",
"uvicorn>=0.20.0",
"supabase>=1.0.0,<3.0.0",
"httpx>=0.24.0",
"authlib>=1.3.2,<2.0.0",
"itsdangerous>=2.1.2,<3.0.0",
"cryptography>=41.0.0",
"rich>=13.0.0",
"typer>=0.9.0",
"loguru>=0.7.0",
"python-dotenv>=1.0.0",
"websockets>=11.0",
# Upper bound is deliberate: mcp 2.0.0 (the 2026-07-28 spec) removed
# mcp.server.fastmcp entirely. mcp_server.py supports both majors via a
# compat import, but an unbounded pin would let a future 3.x break a fresh
# install silently - which is exactly what >=1.2.0 alone did the day 2.0.0
# shipped.
"mcp>=1.2.0,<3.0.0",
"pyyaml>=6.0",
"requests>=2.28.0",
"psutil>=5.9.0",
"filelock>=3.12.0",
# Arrow-key menu for bare `bitcadence`; the menu falls back to numbers without it.
"prompt_toolkit>=3.0.43,<4.0.0",
"tomli>=2.0.0; python_version < '3.11'",
# Windows ships no IANA timezone database, so stdlib zoneinfo cannot resolve
# names like "America/New_York" - which every timezone-aware schedule needs.
"tzdata; sys_platform == 'win32'",
]
[project.urls]
Homepage = "https://bitcadence.ai"
Repository = "https://github.com/mastalink/BitCadence"
Documentation = "https://github.com/mastalink/BitCadence/tree/main/docs"
Changelog = "https://github.com/mastalink/BitCadence/blob/main/CHANGELOG.md"
[project.optional-dependencies]
desktop = ["pystray>=0.19.5", "Pillow>=10.0"]
# Optional AWS integrations (ntfy topic from Secrets Manager, SNS email
# backup, S3 vault). Code imports boto3 lazily; without it these quietly
# no-op with "ModuleNotFoundError" in the gateway log.
aws = ["boto3>=1.34"]
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.0.0",
]
# Optional desktop status light. Headless servers must not need this.
tray = [
"pystray>=0.19.5",
"pillow>=10.0.0",
]
[project.scripts]
mco = "mco.cli:main"
bitcadence = "mco.cli:main"
[project.gui-scripts]
bitcadence-desktop = "mco.desktop.app:main"
[build-system]
requires = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
mco = ["static/*.html", "migrations/*.sql"]
[tool.pytest.ini_options]
minversion = "6.0"
addopts = "-ra -q"
testpaths = [
"tests",
]
asyncio_mode = "auto"