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

[project]
name = "agent-runtime-orchestrator"
version = "0.1.0"
description = "Agent-Runtime session orchestration service (Session Manager + Resource Manager)"
requires-python = ">=3.11.4"
dependencies = [
    "openjiuwen-runtime-foundation==0.1.0",
    "openjiuwen-runtime-service==0.1.0",
    "pydantic==2.11.7",
    "python-dotenv>=1.0.0",
    "uvicorn[standard]==0.42.0",
]

[project.optional-dependencies]
# local:开发/测试环境(fakeredis + fake K8s,无外部依赖)
local = [
    "fakeredis>=2.20",
]
# server:部署环境(真 Redis / MySQL 或 PostgreSQL / K8s)
server = [
    "kubernetes_asyncio==35.0.0",
    "aiomysql>=0.2",
    "asyncpg>=0.29",
    "httpx>=0.27",
]

[project.scripts]
agent-runtime = "agent_runtime.cli:main"

[dependency-groups]
dev = [
    "fakeredis[lua]>=2.20",
    "httpx>=0.27",
    "pytest==8.3.5",
    "pytest-asyncio==1.2.0",
    "pytest-mock==3.14.0",
]

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

[tool.uv.sources]
openjiuwen-runtime-foundation = { path = "../../foundation", editable = true }
openjiuwen-runtime-service = { path = "../../service", editable = true }

[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple/"

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

[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"