Avances en P2604.05.01 y P2604.06.01: DB Hooks, herramienta network, sensor de mejora continua y actualización de 05_ia.md

This commit is contained in:
Ricardo Monla
2026-03-19 17:40:36 -03:00
parent 1670bd48cd
commit 97d9b777b4
8 changed files with 211 additions and 48 deletions
+41 -34
View File
@@ -137,40 +137,47 @@ module ADN
rescue => e
@logger.error("Error cargando configuración: #{e.message}")
{}
end
end
# Muestra la ayuda general del subcomando
def mostrar_ayuda
ayuda = ADN::HelpFormatter.generar_help(
titulo: "Operaciones de Base de Datos ADN",
descripcion: "Integra las operaciones de base de datos PostgreSQL con la CLI ADN",
uso: "./adn/tools/run db [SUBCOMANDO] [OPCIONES]",
opciones: [
{ names: ['salud:bd'], desc: "Verificar conexión y estado de la BD" },
{ names: ['backup [OPCIONES]'], desc: "Crear backup de la base de datos" },
{ names: ['bitacora:crear [FECHA]'], desc: "Crear nueva bitácora diaria" },
{ names: ['bitacora:listar [OPCIONES]'], desc: "Listar bitácoras existentes" },
{ names: ['evento:crear [OPCIONES]'], desc: "Crear nueva entrada cronológica" },
{ names: ['evento:listar [OPCIONES]'], desc: "Listar entradas con filtros" },
{ names: ['nodo:crear [OPCIONES]'], desc: "Crear nuevo nodo (servidor/VM/PC)" },
{ names: ['nodo:listar [OPCIONES]'], desc: "Listar nodos del sistema" },
{ names: ['estadisticas'], desc: "Mostrar estadísticas del sistema" },
{ names: ['archivar:md'], desc: "Mueve los archivos .md migrados al archivo histórico" }
],
ejemplos: [
{ cmd: "./adn/tools/run db salud:bd", desc: "Verificar conexión y estado de la BD" },
{ cmd: "./adn/tools/run db bitacora:crear --resumen \"Inicio de proyecto\"", desc: "Crear bitácora con resumen" },
{ cmd: "./adn/tools/run db evento:crear --inicio 09:00 --descripcion \"Reunión\" --nodo srv-ns8", desc: "Crear entrada de evento" },
{ cmd: "./adn/tools/run db nodo:listar --tipo servidor", desc: "Listar nodos de tipo servidor" }
]
)
puts ayuda
puts ""
puts "#{Color::YELLOW}⚠ Nota:#{Color::RESET} Requiere PostgreSQL en ejecución (puerto 5433)"
puts " Iniciar contenedor: #{Color::DIM}cd dtic-BITACORAs && docker-compose up -d#{Color::RESET}"
end
end
# Sugerir subcomandos similares basándose en distancia de Levenshtein simplificada
#
# @param subcomando [String] El subcomando ingresado por el usuario
# @return [Array<String>] Lista de subcomandos similares
def sugerir_subcomandos_similares(subcomando)
subcomandos_validos = [
'salud:bd',
'bitacora:crear',
'bitacora:listar',
'evento:crear',
'evento:listar',
'evento:actualizar',
'evento:eliminar',
'nodo:crear',
'nodo:listar',
'hito:listar',
'hito:actualizar',
'hito:renombrar',
'hito:ordenar',
'estadisticas',
'backup',
'archivar:md'
]
# Calcular distancia simple (longest common substring ratio)
similares = []
subcomandos_validos.each do |valido|
# Si empieza con las mismas letras o tiene similitud significativa
if valido.start_with?(subcomando[0, [subcomando.length, 2].min]) ||
subcomando.start_with?(valido[0, [valido.length, 2].min]) ||
(subcomando.length > 3 && valido.length > 3 &&
(valido.include?(subcomando[0,3]) || subcomando.include?(valido[0,3])))
similares << valido
end
similares.uniq
end
end
end
end
end