c5e84a578b
Task 0 del piano (adattato a workspace uv): - services/mcp-docugen/: pyproject.toml, src/mcp_docugen/, tests/unit+integration/, README, .env.example. Package rinominato da docugen_mcp -> mcp_docugen. - Root pyproject.toml: aggiunto services/mcp-docugen a workspace members. - .python-version: 3.11 - uv.lock committato. Docker stack stile CerberoSuite/Cerbero con prefisso "arca-": - docker/base.Dockerfile -> arca-base:latest - docker/mcp-docugen.Dockerfile -> arca-mcp-docugen:dev (porta interna 9100, label arca.service, runtime multi-stage, user non-root, healthcheck) - docker-compose.yml root: gateway Caddy unica porta host (8080) + mcp-docugen su rete interna. Security defaults cap_drop ALL, no-new-privileges, read_only ove applicabile, restart unless-stopped. - gateway/Caddyfile: reverse proxy /mcp-docugen/* -> mcp-docugen:9100 + landing. - gateway/public/index.html: landing page minimale. .env.example root aggiornato con DOCUGEN_API_KEY + OPENROUTER_API_KEY condivisa. Task 1-12 (implementazione TDD effettiva) ancora da fare. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
42 lines
748 B
TOML
42 lines
748 B
TOML
[tool.uv.workspace]
|
|
members = [
|
|
"services/mcp-docugen",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py311"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "W", "UP", "B", "SIM"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.ruff.lint.flake8-bugbear]
|
|
extend-immutable-calls = [
|
|
"fastapi.Depends",
|
|
"fastapi.Query",
|
|
"fastapi.Body",
|
|
"fastapi.Header",
|
|
"fastapi.Path",
|
|
"fastapi.Cookie",
|
|
"fastapi.Form",
|
|
"fastapi.File",
|
|
"fastapi.Security",
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"**/test_*.py" = ["B008"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["services"]
|
|
addopts = "--import-mode=importlib"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.24",
|
|
"pytest-httpx>=0.30",
|
|
"ruff>=0.7",
|
|
]
|