[project]
name = "beaver-backend"
version = "0.1.0"
description = "Beaver backend skeleton"
requires-python = ">=3.11"
dependencies = [
    "anthropic>=0.51.0,<1.0.0",
    "croniter>=6.0.0,<7.0.0",
    "fastmcp>=3.0.0,<4.0.0",
    "fastapi>=0.115.0,<1.0.0",
    "httpx>=0.28.0,<1.0.0",
    "json-repair>=0.39.0,<1.0.0",
    "litellm>=1.79.0,<2.0.0",
    "minio>=7.2.0,<8.0.0",
    "openai>=1.79.0,<2.0.0",
    "pydantic>=2.12.0,<3.0.0",
    "python-multipart>=0.0.20,<1.0.0",
    "typer>=0.20.0,<1.0.0",
    "uvicorn[standard]>=0.34.0,<1.0.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=9.0.0,<10.0.0",
    "pytest-asyncio>=1.0.0,<2.0.0",
]
telegram = [
    "python-telegram-bot>=22.0,<23.0",
]
feishu = [
    "lark-oapi>=1.4.22,<2.0.0",
]
qqbot = [
    "aiohttp>=3.9.0,<4.0.0",
]
weixin = [
    "aiohttp>=3.9.0,<4.0.0",
]
channels = [
    "python-telegram-bot>=22.0,<23.0",
    "lark-oapi>=1.4.22,<2.0.0",
    "aiohttp>=3.9.0,<4.0.0",
]

[project.scripts]
beaver = "beaver.interfaces.cli.main:main"
beaver-memory-mcp = "beaver.interfaces.mcp.memory_server:main"

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

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

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