Skip to content
GitHub

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.

  1. Lectura de Configuración: Carga nostromo_registry.json, que actúa como la fuente de verdad estática de la infraestructura.
  2. Verificación de Salud (Health Check): Realiza sondeos TCP activos para determinar la disponibilidad de los servicios.

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"
}
}
}

Para evitar falsos negativos en entornos híbridos (IPv4/IPv6), el servicio implementa una estrategia de doble verificación:

  1. Intenta conexión a 127.0.0.1.
  2. Si falla, intenta conexión a localhost.
  3. Si ambos fallan o exceden el timeout de 2000ms, se marca como Inactive.
// Pseudocódigo de verificación
async function checkAnyPort(ports: number[]): Promise<boolean> {
for (const port of ports) {
if (await isPortOpen(port)) return true;
}
return false;
}

Expone la lista enriquecida de agentes.

  • Auth: Requiere SUPER_ADMIN (RBAC).
  • Respuesta: Array de objetos Agent incluyendo el estado calculado en tiempo real.