← Volver al catálogo

📋 Master Status

Archivo: agentes/supervisores/master-status.ts · Plist: com.rifai.master-status (solo cargado en ~/Library/LaunchAgents, no versionado en cron/) · Horario: diario a las 08:00 (StartCalendarInterval Hour 8 Min 0) + RunAtLoad

Qué hace

Genera un inventario completo de TODOS los agentes con cron cargado y su estado real, agrupados por categoría (Marketing, SEO/Content, Social, CS, Intel, Finance, Operations, Supervision, Brain, Otros). Para cada uno muestra cuándo corrió por última vez, el tamaño de su log de errores y cuántas entradas de historial tiene. Al final comprueba los servicios externos críticos (Meta, Shopify, los bots de Telegram, el Brain) y manda un resumen al CEOSEC. Es la foto matutina de la flota.

Cómo funciona

1. Lista los plists cargados con launchctl list | grep com.rifai..

2. Por cada agente: mira el mtime de su <slug>.out.log (última ejecución), el tamaño de <slug>.err.log y el nº de entradas en data/<slug>-state.json.

3. Asigna icono: ⏳ nunca corrió · 🔴 error grande + status≠0 · 🟡 errores menores · 🟢 OK. Clasifica por categoría con regex sobre el slug.

4. Imprime el listado y un resumen (OK / warnings / errores / nunca).

5. Verifica servicios: token Meta (debug_token + días restantes), Shopify (/shop.json), los 8 bots Telegram (getMe), tamaño del Brain DB + vector store.

6. Envía un resumen vía notify-router (event: system_health, warning si hay errores).

Datos/APIs

  • launchctl + sistema de archivos (logs/, data/).
  • Meta Graph API (debug_token). Vars: META_PAGE_TOKEN, META_ACCESS_TOKEN.
  • Shopify Admin API (/shop.json). Vars: SHOPIFY_STORE, SHOPIFY_ACCESS_TOKEN.
  • Telegram: getMe por bot (TELEGRAM_BOT_TOKEN, _META_, _SEO_, _SOCIAL_, _CS_, _CREATIVE_, _REPORTS_, _SALES_) + resumen vía notify-router.
  • Brain: lee tamaños de brain/brain.db y brain/vector-store/knowledge.json.

Cómo probarlo

cd /Users/user/rifai-agents && npx tsx agentes/supervisores/master-status.ts

Esperar: listado por categorías con iconos, resumen numérico y bloque "Servicios externos" con el estado de Meta/Shopify/bots/Brain. Manda un resumen real al CEOSEC al final.

Si se rompe / recuperar

launchctl unload ~/Library/LaunchAgents/com.rifai.master-status.plist && launchctl load ~/Library/LaunchAgents/com.rifai.master-status.plist

Logs: /Users/user/rifai-agents/logs/master-status.log.

Cómo replicarlo

Parseo de launchctl list, cruce con mtime de .out.log y tamaño de .err.log, clasificación por regex de slug, checks de Meta/Shopify/Telegram/Brain y resumen vía notify-router. No depende de los JSON de status/ (mira los logs directamente), a diferencia del Director.