[project] name = "{{ project_slug }}-agent" version = "0.1.0" description = "{{ description }} — agent service" requires-python = ">={{ python_version }}" dependencies = [ "fastapi", "uvicorn[standard]", "loguru", "pydantic-settings", {%- if llm_provider == 'openai-api' %} "openai", {%- elif llm_provider == 'anthropic-api' %} "anthropic", {%- endif %} # 业务相关外部能力(导出、第三方 SDK 等)按需自行 uv add ] [dependency-groups] dev = [ "pytest", "pytest-asyncio", "pytest-cov", "mypy", "ruff", "pip-audit", ] [tool.ruff.lint] select = ["E", "F", "N", "T20", "I", "C901", "ANN", "S", "PLR"] ignore = ["ANN101", "ANN102"] [tool.ruff.lint.per-file-ignores] "tests/**" = ["ANN"] [tool.mypy] strict = true ignore_missing_imports = true [tool.pytest.ini_options] addopts = "--cov=src --cov-report=term-missing --cov-fail-under=80" asyncio_mode = "auto" [tool.importlinter] root_packages = ["src"] [[tool.importlinter.contracts]] name = "Domain zero IO" type = "forbidden" source_modules = ["src.domain"] forbidden_modules = ["fastapi", "httpx", "subprocess"]