feat(dashboard): scaffolding Streamlit con cliente HTTP y health check

CoreClient (httpx sync, 2 retries) cubre todos los endpoints del core y mapea
404/409/422 a {"error": ...}. app.py monta la página raíz con sidebar de branding
y un health-check del core.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Juan
2026-05-11 12:39:16 +02:00
co-authored by Claude Opus 4.7
parent 00a5dc83fa
commit a27e972360
2 changed files with 118 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
"""Entry point del dashboard Streamlit con sidebar de branding y health."""
from __future__ import annotations
import streamlit as st
from agentforge_dashboard.client import CoreClient
@st.cache_resource
def get_client() -> CoreClient:
return CoreClient()
def main() -> None:
st.set_page_config(
page_title="AgentForge",
page_icon="🛡️",
layout="wide",
initial_sidebar_state="expanded",
)
st.sidebar.markdown("## 🛡️ AgentForge")
st.sidebar.caption("Plataforma de gobernanza de agentes IA")
client = get_client()
try:
client.health()
st.sidebar.success("Core API: OK")
except Exception as exc:
st.sidebar.error(f"Core API unreachable: {exc}")
st.title("🛡️ AgentForge")
st.markdown(
"""
Bienvenido al panel de gobernanza de agentes IA.
Usa la barra lateral para navegar:
- **Registro**: catálogo de agentes y versiones.
- **Ejecutar**: lanzar un agente con guardrails completos.
- **Aprobaciones**: ejecuciones pausadas a la espera de revisión humana.
- **Historial**: trazas, violaciones y resultados.
- **Politicas**: políticas de guardrails y diff entre versiones.
"""
)
if __name__ == "__main__":
main()