Registry Service
El RegistryService es el núcleo de la “conciencia situacional” del Orchestrator. Permite al sistema saber qué componentes están operativos y dónde residen.
Responsabilidades
Section titled “Responsabilidades”- Lectura de Configuración: Carga
nostromo_registry.json, que actúa como la fuente de verdad estática de la infraestructura. - Verificación de Salud (Health Check): Realiza sondeos TCP activos para determinar la disponibilidad de los servicios.
Implementación
Section titled “Implementación”Fuente de Verdad
Section titled “Fuente de Verdad”El servicio lee process.env.NOSTROMO_REGISTRY_PATH (default: c:/dev/Nostromo/nostromo_registry.json).
Estructura del JSON:
{ "agents": { "orchestrator_backend": { "name": "Orchestrator Backend", "ports": { "http": 8000 }, "status": "active" } }}Lógica de Port Check
Section titled “Lógica de Port Check”Para evitar falsos negativos en entornos híbridos (IPv4/IPv6), el servicio implementa una estrategia de doble verificación:
- Intenta conexión a
127.0.0.1. - Si falla, intenta conexión a
localhost. - Si ambos fallan o exceden el timeout de 2000ms, se marca como
Inactive.
// Pseudocódigo de verificaciónasync function checkAnyPort(ports: number[]): Promise<boolean> { for (const port of ports) { if (await isPortOpen(port)) return true; } return false;}API Endpoint
Section titled “API Endpoint”GET /api/agent/registry
Section titled “GET /api/agent/registry”Expone la lista enriquecida de agentes.
- Auth: Requiere
SUPER_ADMIN(RBAC). - Respuesta: Array de objetos Agent incluyendo el estado calculado en tiempo real.