[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "fischer-agentkit"
version = "0.1.0"
description = "Unified Agent Framework with Tool/Skill plugins, Memory, Self-Evolution, MCP support, and Multi-Agent orchestration"
readme = "README.md"
requires-python = ">=3.11"
license = {text = "MIT"}
authors = [
    {name = "Fischer Team"},
]
dependencies = [
    "pydantic>=2.0",
    "redis[hiredis]>=5.0",
    "sqlalchemy[asyncio]>=2.0",
    "asyncpg>=0.29",
    "httpx>=0.27",
    "pyyaml>=6.0",
    "jsonschema>=4.0",
    "typer>=0.12",
    "rich>=13.0",
]

[project.scripts]
agentkit = "agentkit.cli.main:app"

[project.optional-dependencies]
server = [
    "fastapi>=0.110",
    "uvicorn>=0.27",
    "sse-starlette>=2.0",
]
mcp = [
    "mcp>=1.0",
]
evolution = [
    "scipy>=1.12",
]
dev = [
    "pytest>=8.0",
    "pytest-asyncio>=0.23",
    "pytest-cov>=5.0",
    "pytest-httpx>=0.30",
    "testcontainers[postgres,redis]>=4.0",
    "ruff>=0.4",
    "fastapi>=0.110",
    "uvicorn>=0.27",
]

[tool.setuptools.packages.find]
where = ["src"]

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
markers = [
    "integration: mark test as integration test (requires docker)",
    "redis: mark test as requiring Redis",
    "postgres: mark test as requiring PostgreSQL",
]

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