proyecto generalizado
This commit is contained in:
+11
-11
@@ -1,4 +1,4 @@
|
||||
# Componentes de AgentForge y su interrelación (bajo nivel)
|
||||
# Componentes de Forja y su interrelación (bajo nivel)
|
||||
|
||||
> **Alcance.** Este documento es la **referencia de cableado**: módulos exactos,
|
||||
> firmas, el grafo de dependencias de imports, el grafo de inyección de
|
||||
@@ -9,7 +9,7 @@
|
||||
> - ¿Las decisiones técnicas resumidas? → [`ARCHITECTURE.md`](../ARCHITECTURE.md).
|
||||
> - ¿Cómo arrancarlo? → [`README.md`](../README.md).
|
||||
>
|
||||
> Rutas relativas a `core/src/agentforge_core/` salvo que se diga otra cosa.
|
||||
> Rutas relativas a `core/src/ forja_core/` salvo que se diga otra cosa.
|
||||
> Refleja el estado del repo en `v0.1.0`.
|
||||
|
||||
---
|
||||
@@ -67,7 +67,7 @@ NIVEL 6
|
||||
main ⇐ api (routers), api.middlewares, config, observability.logging → create_app(), app
|
||||
|
||||
(separado, sin imports del paquete core)
|
||||
dashboard/src/agentforge_dashboard/* ← habla con `main` por HTTP, no por import
|
||||
dashboard/src/ forja_dashboard/* ← habla con `main` por HTTP, no por import
|
||||
```
|
||||
|
||||
Reglas que se cumplen y conviene mantener:
|
||||
@@ -333,11 +333,11 @@ Hashing/versionado: `registry/versioning.compute_hash(yaml_text)` = SHA-256 del
|
||||
|
||||
---
|
||||
|
||||
## 6. Dashboard ↔ Core (`agentforge_dashboard`)
|
||||
## 6. Dashboard ↔ Core (` forja_dashboard`)
|
||||
|
||||
El dashboard no comparte código con el core: solo lo llama por HTTP a través de
|
||||
`CoreClient` (`dashboard/src/agentforge_dashboard/client.py`, httpx síncrono con 2
|
||||
retries, `base_url = AGENTFORGE_CORE_URL`; mapea 404/409/422 → `{"error": <json>}`).
|
||||
`CoreClient` (`dashboard/src/ forja_dashboard/client.py`, httpx síncrono con 2
|
||||
retries, `base_url = FORJA_CORE_URL`; mapea 404/409/422 → `{"error": <json>}`).
|
||||
|
||||
| `CoreClient.<método>` | Endpoint del core | Página(s) que lo usan |
|
||||
|-----------------------|-------------------|-----------------------|
|
||||
@@ -365,11 +365,11 @@ Componentes reutilizables: `components/diff_view.render_unified_diff(diff_text)`
|
||||
|
||||
## 7. Arranque y ciclo de vida
|
||||
|
||||
**Proceso core** (`uvicorn agentforge_core.main:app`):
|
||||
1. Import de `agentforge_core.main` ⇒ se ejecuta `app = create_app()`:
|
||||
**Proceso core** (`uvicorn forja_core.main:app`):
|
||||
1. Import de ` forja_core.main` ⇒ se ejecuta `app = create_app()`:
|
||||
`Settings()` → `configure_logging(level=settings.log_level)` → `FastAPI(...)` →
|
||||
`app.add_middleware(TraceIdMiddleware)` → registra `GET /health` →
|
||||
`from agentforge_core.api import agents, executions, policies, violations` →
|
||||
`from forja_core.api import agents, executions, policies, violations` →
|
||||
`include_router` ×5.
|
||||
2. Las dependencias (`deps.get_registry`, `get_policy_store`, `get_llm_provider`,
|
||||
`get_guardrail_engine`, `get_orchestrator`) **no** se construyen aún; se
|
||||
@@ -378,12 +378,12 @@ Componentes reutilizables: `components/diff_view.render_unified_diff(diff_text)`
|
||||
pueden disparar la construcción perezosa) → handler → respuesta con `X-Trace-Id`.
|
||||
|
||||
**Contenedores** (`docker-compose.yml`): servicio `core` (`core/Dockerfile`,
|
||||
`uvicorn agentforge_core.main:app --host 0.0.0.0 --port 8000`, `HEALTHCHECK` →
|
||||
`uvicorn forja_core.main:app --host 0.0.0.0 --port 8000`, `HEALTHCHECK` →
|
||||
`curl /health`, monta `./agents:ro`, `./policies:ro`, `./data:rw`, env
|
||||
`DATA_DIR=/app/data`, `AGENTS_DIR=/app/agents`, `POLICIES_DIR=/app/policies`,
|
||||
`env_file: .env`); servicio `dashboard` (`dashboard/Dockerfile`, `streamlit run
|
||||
app.py`, `HEALTHCHECK` → `/_stcore/health`, `depends_on: core: service_healthy`,
|
||||
env `AGENTFORGE_CORE_URL=http://core:8000`, monta `./agents:ro` para leer los
|
||||
env `FORJA_CORE_URL=http://core:8000`, monta `./agents:ro` para leer los
|
||||
`examples/*.txt`).
|
||||
|
||||
**`Settings` (env vars)** — `config.py`:
|
||||
|
||||
Reference in New Issue
Block a user