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

[project]
name = "agentpaas"
version = "1.4.2"
description = "Agent Platform as a Service — powered by lambdagent"
readme = "README.md"
license = "BUSL-1.1"
requires-python = ">=3.10"
authors = [
    {name = "Qin Liu", email = "qinliu@nju.edu.cn"},
]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Developers",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
]
dependencies = [
    # Core PaaS deps
    "fastapi>=0.100.0,<1.0",
    "uvicorn[standard]>=0.20.0",
    "pydantic>=2.0,<3.0",
    "pyyaml>=6.0,<7.0",
    # 上传端点（agentpack install-upload / update-upload 的 File/UploadFile）
    # 需要 multipart 解析 — FastAPI 在路由定义时即检查，缺了它连
    # `import agentpaas.api.app` 都会崩（CI 自 2026-06-07 起全红的根因；
    # 本地因 anaconda 自带而未暴露）。
    "python-multipart>=0.0.6",
    # Lambdagent kernel — agentpaas imports it from 17+ call sites.
    # Audit critical #4: previously omitted → ModuleNotFoundError on
    # every agent-execution endpoint of a clean `pip install agentpaas`.
    # In dev, install lambdagent first via `pip install -e ./lambdagent/`;
    # editable install will satisfy this requirement.
    "lambdagent>=0.1.0",
]

[project.optional-dependencies]
prod = ["asyncpg>=0.27", "redis>=5.0", "opentelemetry-sdk>=1.20", "prometheus-client>=0.17"]
dev = ["httpx>=0.24", "pytest>=7.0", "pytest-asyncio>=0.21"]
wechat = ["wechat-clawbot>=0.2.0"]

[project.scripts]
agentpaas = "agentpaas.__main__:main"

[project.urls]
Repository = "https://github.com/kenny67nju/lambdagentpaas"
Issues = "https://github.com/kenny67nju/lambdagentpaas/issues"

# ──────────────────────────────────────────────
# src-layout (audit critical #4 / high #18 — was `where = [".."]` which
# shipped a 1.2 KB wheel with metadata only and no source.)
# ──────────────────────────────────────────────
[tool.setuptools]
package-dir = {"" = "src"}

[tool.setuptools.packages.find]
where = ["src"]
include = ["agentpaas*"]
