Complementa a docs/explicacion.md (alto nivel) con la vista de bajo nivel:
- grafo de dependencias de módulos por niveles topológicos (imports internos)
- el grafo de inyección de dependencias de api/deps.py (lru_cache + factories)
- las firmas exactas de los contratos: LLMProvider, GuardrailEngine, los
validadores, el registry/policy store, el AgentOrchestrator, AgentState y el
cableado del grafo LangGraph, y cómo orchestrator._build_execution mapea el
StateSnapshot a AgentExecution
- la cadena de llamada de cada endpoint (qué deps, qué llama, qué persiste)
- mapa de persistencia (quién escribe/lee cada artefacto YAML/JSON/JSONL/SQLite)
- mapa CoreClient ↔ endpoints ↔ páginas del dashboard
- arranque/ciclo de vida y tabla Settings → consumidor
- "gotchas" conocidos
README y docs/explicacion.md enlazan al nuevo documento.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Documento de alto nivel para terceros: las seis ideas clave, vista de los dos
servicios y las capas del core, recorrido módulo a módulo con sus dependencias
(quién depende de quién), el patrón Protocol+factory+Settings, el viaje completo
de una petición (con diagrama de secuencia), la estrategia de persistencia (YAML/
JSON/JSONL/SQLite), glosario, mapa del repo y ruta de lectura. README enlaza a él.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Notas de desviación: Task 31 añade per-file-ignore N999 para pages/* (Streamlit
exige nombres con emoji); se quitan noqa BLE001 inútiles y la var muerta
chosen_example; Task 37 — el build de docker falló por typer 0.12.x vs click
>=8.2, se fijó click<8.2 y el smoke pasó (core healthy /health 200, dashboard
/_stcore/health ok, down limpio). Streamlit verificado con ruff + py_compile.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Nota de desviación: Task 26 reescribe el escenario HSS para no colisionar con
'mos'; Task 27 colapsa EXAMPLES a una línea y reusa el __init__ del scaffolding;
Task 29 Step 2 (índice de ejecuciones persistido) ya estaba hecho en Task 24, así
que ese commit solo añade el test. Estilo del repo = ruff check (no ruff format).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Nota de desviación: fastapi/uvicorn instalados, routers con estilo Annotated[T, Depends],
orchestrator.snapshot() en vez de _build_graph_for_snapshot, fixture default + tests extra.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Incluye nota de desviación: SqliteSaver → AsyncSqliteSaver (async CM),
aiosqlite<0.21, orchestrator abre el checkpointer por llamada, +tests del orchestrator.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Diseño completo de la plataforma de gobernanza de agentes IA: arquitectura
two-tier (FastAPI core + Streamlit dashboard), modelos de dominio, contratos
REST, interfaces Strategy (LLM, Guardrails, Registry), flujo LangGraph con
HITL dinámico vía interrupt(), versionado tipo Git en sistema de ficheros,
política y validadores, manejo de errores y plan de testing.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>