# 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} ./tools/adn/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 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}sync [ruta|fecha]#{Color::RESET} Sincronizar con API dtic-BITACORAs #{Color::YELLOW}inicio de jornada [presencial|remoto]#{Color::RESET} Inicio de jornada laboral #{Color::YELLOW}cierre de jornada [presencial|remoto]#{Color::RESET} Cierre de jornada laboral #{Color::YELLOW}triggers [opciones]#{Color::RESET} Gestión del motor de triggers #{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} ./tools/adn/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: ./tools/adn/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 " ./tools/adn/run validador" puts " ./tools/adn/run validador --fix" when 'contexto' puts "Uso: ./tools/adn/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 " ./tools/adn/run contexto srv-pmox1" puts " ./tools/adn/run contexto srvv-fenix --cmd" when 'salud' puts "Uso: ./tools/adn/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 " ./tools/adn/run salud" puts " ./tools/adn/run salud --json" when 'generar' puts "Uso: ./tools/adn/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 " ./tools/adn/run generar bitacora" puts " ./tools/adn/run generar bitacora 2026-03-08" puts " ./tools/adn/run generar nodo srv-nuevo" puts " ./tools/adn/run generar proyecto P2604" else puts "#{Color::RED}✗ Subcomando desconocido: #{subcomando}#{Color::RESET}" puts "Usa './tools/adn/run ayuda' para ver la lista de subcomandos." end end end