cambios profundos

This commit is contained in:
2026-05-27 16:29:02 +02:00
parent d95ed15766
commit 34b11dfc66
29 changed files with 594 additions and 11102 deletions
+12 -15
View File
@@ -1,26 +1,23 @@
# Forja — Arquitectura técnica
> Documento "vivo" con las decisiones técnicas. El spec original está en
> [`docs/superpowers/specs/2026-05-09- forja-design.md`](docs/superpowers/specs/2026-05-09- forja-design.md).
> Documento vivo con las decisiones técnicas.
## Visión general
Two-tier:
- `forja-core` — FastAPI 8000. Dominio de gobierno, runtime LangGraph,
guardrails y persistencia.
- `forja-dashboard` — Streamlit 8501. Cliente HTTP del core.
Forja es un **único servicio FastAPI** (:8000):
- Todo el dominio de gobierno, runtime LangGraph, guardrails y persistencia.
- UI embebida (HTMX) para uso humano + API REST completa bajo `/api`.
## Diagrama
```
┌─────────────────────┐ HTTP/JSON ┌─────────────────────┐
Dashboard (Stream.) │ ───────────► │ Core (FastAPI)
└─────────────────────┘ └─────────┬───────────┘
┌─────────────────────────┬────────┴──────┬────────────┐
▼ ▼ ▼ ▼
LLM layer Guardrails layer LangGraph State
(Strategy pattern) (Strategy pattern) Runtime JSON+SQL+JSONL
┌────────────────────────────────────────────────────────────┐
forja-core :8000
│ UI HTMX (humanos) + REST API (/api) + dominio completo │
│ LLM (strategy) │ Guardrails (strategy) │ LangGraph │
│ │ │ + checkpoints│
└────────────────────────────────────────────────────────────┘
```
## Patrones aplicados
@@ -50,7 +47,7 @@ Se usa la API dinámica `interrupt(payload)` de LangGraph ≥0.2 dentro del
nodo `approve_gate`. Sólo pausa cuando hay acciones de alto riesgo
(`risk_score >= threshold` o `requires_approval=True`). El cliente envía
`Command(resume={"approved_action_ids": [...]})` vía
`POST /executions/{trace_id}/approve`.
`POST /api/executions/{trace_id}/approve`.
## Observabilidad