[project]
name = "hybrid-groups"
dynamic = ["version"]
description = "A multi-user, multi-agent collaboration platform"
authors = [
    { name = "Martin Krasser", email = "martin@gradion.ai" },
    { name = "Christoph Stumpf", email = "chris@gradion.ai" },
]
requires-python = ">=3.11,<3.14"
readme = "README.md"
license = "Apache-2.0"
dependencies = [
    "pydantic-ai>=0.8.1,<0.9",
    "mcp>=1.13.0,<2",
    "aioconsole>=0.8.1,<0.9",
    "slack-bolt>=1.23.0,<2",
    "aiohttp>=3.11.16,<4",
    "fastapi[all]>=0.115.12,<0.116",
    "pygithub>=2.6.1,<3",
    "aiofiles>=24.1.0,<25",
    "aiodocker>=0.24.0,<0.25",
    "google-genai>=1.21.1,<2",
    "gitingest>=0.1.4,<0.2",
    "datasets>=3.6.0,<4",
    "tinydb>=4.8.2,<5",
    "bcrypt>=4.3.0,<5",
    "cryptography>=45.0.3,<46",
    "rich>=14.0.0,<15",
    "markdown-to-mrkdwn>=0.2.0,<0.3",
    "composio-client>=1.7.0",
]

[tool.uv]
default-groups = [
    "docs",
    "dev",
]

[dependency-groups]
docs = [
    "mkdocs>=1.6.1,<2",
    "mkdocs-material>=9.5.48,<10",
    "mkdocstrings-python>=1.12.2,<2",
]
dev = [
    "invoke~=2.2",
    "pre-commit~=4.0",
    "pytest~=8.3",
    "pytest-asyncio>=0.25.3,<0.26",
    "pytest-cov>=4.1.0,<5",
    "types-aiofiles>=24.1.0.20250326,<25",
]

[build-system]
requires = ["hatchling", "uv-dynamic-versioning"]
build-backend = "hatchling.build"

[tool.hatch.version]
source = "uv-dynamic-versioning"

[tool.uv-dynamic-versioning]
vcs = "git"
pattern = "default-unprefixed"
style = "pep440"

[tool.hatch.build.targets.sdist]
include = ["hygroup"]

[tool.hatch.build.targets.wheel]
include = ["hygroup"]

[tool.ruff]
line-length = 120

[tool.ruff.lint.per-file-ignores]
"**/__init__.py" = ["F401"]

[tool.mypy]
check_untyped_defs = true
ignore_missing_imports = true

[[tool.mypy.overrides]]
module = [
    "aiofiles.*"
]
ignore_missing_imports = true
