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>
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
"""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()
|