# frozen_string_literal: true require_relative '../core/colores' class SubcomandoAyuda def initialize(args, logger) @args = args @logger = logger end def ejecutar if @args.empty? mostrar_ayuda_principal else mostrar_ayuda_subcomando(@args[0]) end end private def mostrar_ayuda_principal puts <<~AYUDA_PRINCIPAL #{Color::CYAN}🔧 Herramienta ADN - Interfaz de línea de comandos unificada#{Color::RESET} #{Color::DIM}Versión: Fase 1 (Núcleo Autónomo)#{Color::RESET} #{Color::GREEN}Uso:#{Color::RESET} ./adn/tools/run [opciones] [argumentos] #{Color::YELLOW}Subcomandos disponibles:#{Color::RESET} validador [--watch] [--fix] Validar cumplimiento del ADN en bitácoras contexto [--cmd] Obtener contexto topológico de un nodo nodos [opciones] Gestión de nodos (agrupar, listar, buscar) jornada [modo] [hora] Gestión de jornada (iniciar, cerrar, estado) salud [--dashboard] [--json] Ver salud general del sistema ADN generar bitacora [fecha] Generar nueva bitácora (fecha: YYYY-MM-DD) generar nodo Generar ficha de nodo #{Color::YELLOW}generar proyecto #{Color::RESET} Generar manifiesto de proyecto #{Color::YELLOW}backup [--mode MODO]#{Color::RESET} Ejecutar backup seguro de un nodo #{Color::YELLOW}db #{Color::RESET} Operaciones de base de datos #{Color::YELLOW}triggers [opciones]#{Color::RESET} Gestión del motor de triggers #{Color::YELLOW}plan [subcomando]#{Color::RESET} Gestión de planes y progreso #{Color::YELLOW}proceso #{Color::RESET} Ejecutar procesos técnicos automatizados #{Color::YELLOW}estados#{Color::RESET} Listar tareas en proceso (⏳) #{Color::YELLOW}ayuda [subcomando]#{Color::RESET} Mostrar esta ayuda o ayuda específica #{Color::YELLOW}Subcomandos en desarrollo (Fases futuras):#{Color::RESET} evolucion Gestionar propuesta de evolución del ADN triggers [--test] [--force] Ejecutar triggers de sincronización #{Color::DIM}Para ayuda detallada de un subcomando:#{Color::RESET} ./adn/tools/run ayuda #{Color::DIM}Documentación completa:#{Color::RESET} docs/plan/260307-1400_Plan_Mejoras_ADN.md AYUDA_PRINCIPAL end def mostrar_ayuda_subcomando(subcomando) case subcomando.downcase when 'validador' puts "Uso: ./adn/tools/run validador [--watch] [--fix]" puts "" puts "Valida el cumplimiento del ADN en las bitácoras:" puts " • Formato de tiempo (HH:MM, sin \"hs\")" puts " • Iconografía de estados y semántica correcta" puts " • Presencia de métricas híbridas ([Físico/Remoto:])" puts " • Referencias bidireccionales en rollovers" puts " • Estructura de tablas en bitácoras" puts "" puts "Opciones:" puts " --watch Monitorizar cambios en tiempo real (Fase 1 completa)" puts " --fix Intentar corregir errores automáticamente" puts "" puts "Ejemplo:" puts " ./adn/tools/run validador" puts " ./adn/tools/run validador --fix" when 'contexto' puts "Uso: ./adn/tools/run contexto [--cmd]" puts "" puts "Obtiene información contextual de un nodo:" puts " • IP y configuración de red" puts " • Rol en la topología" puts " • Comandos SSH sugeridos" puts "" puts "Ejemplo:" puts " ./adn/tools/run contexto srv-pmox1" puts " ./adn/tools/run contexto srvv-fenix --cmd" when 'nodos' puts "Uso: ./adn/tools/run nodos [opciones]" puts "" puts "Gestión y consulta de nodos de infraestructura:" puts " • agrupar [--servidor SRV] Agrupar VMs por servidor anfitrión" puts " • listar [--tipo TIPO] Listar fichas de nodos (.md)" puts " • buscar Buscar nodos por nombre o contenido" puts "" puts "Ejemplos:" puts " ./adn/tools/run nodos agrupar" puts " ./adn/tools/run nodos agrupar --servidor srv-pmox1" puts " ./adn/tools/run nodos listar --tipo srvv" puts " ./adn/tools/run nodos buscar dasuten" when 'jornada' puts "Uso: ./adn/tools/run jornada [modo] [hora] [opciones]" puts "" puts "Gestión de jornada laboral:" puts " • iniciar [presencial|remoto] [HH:MM] Registrar inicio" puts " • cerrar [presencial|remoto] [HH:MM] Registrar cierre" puts " • estado Ver estado actual" puts "" puts "Opciones:" puts " --nodo NOMBRE Nodo a registrar (default: dtic-DIIAA)" puts " --fecha YYYY-MM-DD Fecha de la bitácora (default: hoy)" puts "" puts "Ejemplos:" puts " ./adn/tools/run jornada iniciar presencial 08:00" puts " ./adn/tools/run jornada cerrar remoto 23:00" puts " ./adn/tools/run jornada estado" when 'salud' puts "Uso: ./adn/tools/run salud [--dashboard] [--json]" puts "" puts "Muestra métricas de salud del sistema ADN:" puts " • Cantidad de hebras, bitácoras, nodos, proyectos" puts " • Errores recientes en logs" puts "" puts "Ejemplo:" puts " ./adn/tools/run salud" puts " ./adn/tools/run salud --json" when 'generar' puts "Uso: ./adn/tools/run generar [argumentos]" puts "" puts "Tipos disponibles:" puts " bitacora [fecha] - Crea nueva bitácora (fecha: YYYY-MM-DD, default: hoy)" puts " nodo - Crea ficha de nodo" puts " proyecto - Crea manifiesto de proyecto" puts "" puts "Ejemplos:" puts " ./adn/tools/run generar bitacora" puts " ./adn/tools/run generar bitacora 2026-03-08" puts " ./adn/tools/run generar nodo srv-nuevo" puts " ./adn/tools/run generar proyecto P2604" when 'proceso' puts "Uso: ./adn/tools/run proceso [argumentos]" puts "" puts "Ejecuta procesos técnicos automatizados sobre la infraestructura:" puts " • nodos:actualizar_so Actualiza paquetes y parches de seguridad" puts "" puts "Ejemplos:" puts " ./adn/tools/run proceso nodos:actualizar_so srv-ns8" puts " ./adn/tools/run proceso nodos:actualizar_so srv-dasu" when 'estados' puts "Uso: ./adn/tools/run estados" puts "" puts "Consulta la bitácora web para listar todos los items con estado ⏳ (En proceso)." puts "Ideal para monitorear procesos automatizados o jornadas abiertas." else puts "#{Color::RED}✗ Subcomando desconocido: #{subcomando}#{Color::RESET}" puts "Usa './adn/tools/run ayuda' para ver la lista de subcomandos." end end end