feat(mcp-docugen): templates seed versionati + auto-seed all'avvio

- templates_seed/{offerta,report-analisi}/template.md: template Tielogic
  ufficiali versionati come sorgente di verità nel repo
- template_seed.py: copia idempotente seed→volume al boot, mai
  sovrascrive template esistenti (preserva edit fatti via MCP runtime)
- config.py: nuova Settings.templates_seed_dir
  (default /app/services/mcp-docugen/templates_seed)
- main.py: chiamata seed_templates() in build_app dopo TemplateStore init
- 4 nuovi test unit (idempotenza, skip se seed_dir mancante,
  no-op su entry non valide). 72 test verde totali

Workflow: edit del template nel repo → rebuild image → al primo boot
il volume vuoto riceve i template; se il template esiste già nel
volume (es. modificato dall'utente via tool MCP) viene preservato.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 12:19:29 +02:00
parent b4c2935c53
commit 419c1acc7a
8 changed files with 625 additions and 0 deletions
@@ -15,6 +15,7 @@ class Settings(BaseSettings):
llm_model_default: str = "anthropic/claude-sonnet-4"
public_base_url: str = Field(...)
data_dir: Path = Path("/data")
templates_seed_dir: Path = Path("/app/services/mcp-docugen/templates_seed")
asset_ttl_days: int = 30
max_image_size_mb: int = 10
llm_timeout_seconds: int = 60