# Memoria de Evolución - ParamManagerScripts ## Descripción Base del Proyecto **ParamManagerScripts** es un sistema de gestión y ejecución de scripts que proporciona una interfaz web para organizar y ejecutar scripts de diferentes tipos (Python, C#, etc.) de manera ordenada y controlada. ### Funcionalidad Principal #### 1. Sistema de Configuración Jerárquica - **Nivel 1 (Global)**: Parámetros compartidos por todos los scripts (`data/data.json`) - **Nivel 2 (Grupo)**: Configuración específica de cada grupo de scripts (`script_config.json`) - **Nivel 3 (Trabajo)**: Parámetros específicos del directorio de trabajo (`work_dir.json`) Esto esta definido en .doc\backend_setup.md #### 2. Gestión de Scripts por Categorías - **Scripts de Configuración**: Scripts Python tradicionales organizados en grupos - **Launcher GUI**: Scripts Python con interfaz gráfica - **Proyectos C#**: Ejecutables y proyectos .NET - **Proyectos Python**: Scripts Python especializados #### 3. Características del Frontend - Interfaz web accesible via `http://127.0.0.1:5000/` - Panel de logs en tiempo real con WebSocket - Gestión de directorios de trabajo por grupo - Integración con editores (VS Code, Cursor, Visual Studio) - Icono de bandeja del sistema para acceso rápido #### 4. Sistema de Launchers - **Launcher General**: Para scripts Python con GUI - **Launcher C#**: Gestión de proyectos y ejecutables .NET - **Launcher Python**: Scripts Python especializados con gestión de entornos #### 5. Servicios Compartidos - **ExcelService**: Manipulación de archivos Excel - **LanguageService**: Detección de idiomas - **LLMService**: Integración con modelos de IA (OpenAI, Groq, Claude, etc.) Esto esta definido en .doc\backend_setup.md ### Arquitectura Técnica - **Backend**: Flask con WebSocket para comunicación en tiempo real - **Frontend**: HTML/CSS/JavaScript con comunicación AJAX - **Configuración**: Sistema de archivos JSON con validación por esquemas - **Ejecución**: Subprocesos controlados con logging centralizado - **Codificación**: UTF-8 obligatorio para evitar problemas de caracteres ### Concepto Clave: Orientación a Directorios de Trabajo El sistema está diseñado para trabajar con directorios específicos donde los scripts procesan archivos. Cada grupo puede tener su directorio de trabajo configurado, y los scripts acceden a la configuración consolidada a través de `load_configuration()` que combina los tres niveles de configuración. --- ## Historial de Cambios ### [Fecha de Creación] - Descripción Base - Documentación inicial del sistema ParamManagerScripts - Descripción de la arquitectura y funcionalidades principales - Establecimiento de la estructura de memoria de evolución ### [2024-12-19] - Implementación de Campos de Tipo Archivo - **Nueva funcionalidad**: Agregado soporte para campos de tipo "Archivo" en el editor de esquemas - **Selección de archivos**: Implementado diálogo de selección de archivos con `tkinter.filedialog.askopenfilename` - **Botón "Abrir"**: Agregado botón adicional para abrir archivos seleccionados con la aplicación predeterminada del sistema - **Compatibilidad multiplataforma**: Soporte para Windows (`os.startfile`), macOS (`open`) y Linux (`xdg-open`) - **Validaciones**: Verificación de existencia y tipo de archivo antes de intentar abrirlo - **Integración UI**: Botón "Abrir" se habilita automáticamente cuando se selecciona un archivo - **Endpoints API**: Nuevas rutas `/api/browse-files` y `/api/open-file` para manejo de archivos - **Casos de uso**: Ideal para archivos Excel, Markdown, documentos y cualquier tipo de archivo que requiera apertura rápida