- Añadir bin/config/rates/ al archivo .gitignore
- Evitar el seguimiento de los archivos de tarifas generados
- Mantener los archivos de tarifas como datos locales no versionados
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir rates.prompt con la plantilla de consulta para tarifas
- Eliminar archivos de tarifas antiguos de la ubicación original
- Organizar archivos para nueva estructura donde las tarifas se guardan por tipo
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Leer el prompt desde el archivo rates.prompt en lugar de tenerlo hardcoded
- Traducir tipos de programadores a sus equivalentes en inglés
- Adaptar sistema de prompts para trabajar con textos en inglés
- Mejorar instrucciones al modelo para obtener solo valores numéricos
- Agregar manejo de errores si el archivo del prompt no existe
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminar toda la lógica compleja relacionada con factores de conversión
- Simplificar el proceso de extracción numérica de respuestas de Perplexity
- Usar prompt más directo enfocado específicamente en la tarifa por hora
- Reemplazar función get_fallback_rate por get_default_rate más simple
- Eliminar código innecesario para análisis de períodos de tiempo
- Mantener la lógica central de consulta a la API y extracción de valores
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reorganizar la lógica para crear un archivo por tipo de programador
- Simplificar la estructura de archivos usando [tipo].rate
- Crear tarifas solo para tipos de programadores que no tengan archivo existente
- Mejorar prompts para obtener específicamente tarifas por hora
- Añadir función get_programmer_types para centralizar la lista de profesionales
- Optimizar la función get_fallback_rate para soportar nueva estructura
- Aplicar consistentemente el límite de 200 USD/hora para todas las tarifas
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminar archivo kdevs.rate ya que no es necesario
- Mover todos los archivos .rate a la carpeta bin/config/rates
- Actualizar rate_update.py para usar la nueva ubicación de archivos
- Agregar creación automática de la carpeta rates si no existe
- Actualizar manejo de casos especiales en el código
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Considerar solo tarifas que no exceden el umbral al calcular promedios
- Añadir mensajes de log detallados sobre tarifas incluidas o excluidas
- Eliminar verificación redundante de umbral en el cálculo del promedio
- Mejorar la claridad de los mensajes sobre tarifas válidas utilizadas
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Asegurar que el promedio calculado nunca exceda el umbral de 200.00 USD/hora
- Modificar el cálculo de fallback para respetar estrictamente el umbral
- Aplicar límite explícito en todos los casos de cálculo de tarifa
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir parámetro temperature=0.2 para respuestas más consistentes
- Implementar límite de tarifa máxima de 200.00 USD/hora
- Calcular promedio de tarifas del mismo tipo si se supera el límite
- Usar fallback ajustado si no hay datos para calcular promedio
- Mejorar mensajes de log para casos donde se ajustan tarifas
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Detectar período de tiempo mencionado en la respuesta (hora, día, semana, mes, año)
- Aplicar factores de conversión automáticos para estandarizar a tarifa por hora
- Mejorar patrones de búsqueda para detectar valores con comas y diferentes formatos
- Ajustar rangos de validación según el período de tiempo detectado
- Aclarar en el prompt que se necesita específicamente la tarifa POR HORA
- Mejorar la extracción de números con formato miles (1,000.00)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminar declaración global SHOW_RESULTS innecesaria
- Eliminar uso de globals() que causaba SyntaxError
- Simplificar el manejo de variables globales
- Eliminar asignación redundante a variable pycountry_available
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar el nivel de log para mostrar solo errores y resultados importantes
- Añadir función show_result para controlar la salida de resultados
- Agregar opciones de línea de comandos para controlar verbosidad (-v, -q)
- Mostrar solo el valor guardado para cada archivo procesado
- Añadir manejo de errores global para mejor experiencia de usuario
- Proporcionar retroalimentación clara sobre éxito o fracaso
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir declaración de codificación UTF-8 en el encabezado del script
- Especificar codificación UTF-8 en todas las operaciones de lectura de archivos
- Especificar codificación UTF-8 en todas las operaciones de escritura de archivos
- Mejorar compatibilidad con caracteres internacionales en múltiples sistemas
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cambiar el modelo por defecto de 'o1' a 'sonar' para mejor compatibilidad con la API
- Actualizar el archivo de configuración rate_model.ai
- Simplificar la lógica de selección de modelo
- Usar el modelo más estable y preciso disponible en Perplexity
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminar el salto de línea al escribir el valor en los archivos .rate
- Asegurar que el archivo contenga solamente el valor numérico con separador decimal
- Mantener el formato consistente con los demás archivos del sistema
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir sistema de respaldo para cuando la API de Perplexity no está disponible
- Crear función get_fallback_rate para generar estimaciones basadas en datos de mercado
- Mejorar la extracción de valores numéricos con múltiples estrategias de parsing
- Permitir estimaciones aproximadas cuando no hay datos del año actual
- Implementar factores regionales para ajustar tarifas según la ubicación
- Continuar con valores de respaldo cuando hay errores de API consecutivos
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Mejorar la función query_perplexity con mejor manejo de errores y debugging
- Actualizar el modelo por defecto de 'o1' a 'sonar' que es compatible con la API
- Expandir get_perplexity_api_key para buscar la clave en múltiples ubicaciones
- Implementar sistema de control de errores consecutivos para detener el proceso
- Agregar validación del formato de la API key
- Mejorar registro de depuración para identificar problemas de conexión
- Incluir pausa entre solicitudes tras errores para evitar limitaciones de la API
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Usar advertencias en lugar de errores cuando falta pycountry
- Continuar la ejecución sin validación en lugar de detener el script
- Proporcionar instrucciones claras para instalar pycountry manualmente
- Evitar intentar instalar dependencias sin privilegios de administrador
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Definir todas las funciones necesarias dentro de update_python_and_pip
- Pasar command_installed explícitamente al subproceso sudo
- Eliminar dependencia de bibliotecas externas en el subproceso
- Mejorar la autonomía del script para actualizaciones con privilegios elevados
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Adoptar el enfoque de bootstrap.sh para la elevación de privilegios
- Encapsular la actualización de Python y pip en una función dedicada
- Usar sudo con bash -c para pasar funciones y variables correctamente
- Mejorar mensajes y flujo de ejecución en el script update.sh
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear funciones is_root y escalate_privileges en base.lib
- Modificar update.sh para verificar y escalar privilegios antes de actualizar Python y pip
- Mejorar manejo de errores cuando no es posible obtener privilegios
- Agregar verificación de existencia de sudo
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar mensajes de error claros cuando Python o pip no están instalados
- Eliminar dependencia de dialog en update.sh
- Mantener mensajes informativos simples usando variables del sistema
- Sugerir ejecutar bootstrap.sh para instalar dependencias faltantes
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear función pip_update específica para actualizar pip
- Crear función python3_update específica para actualizar Python
- Modificar update.sh para actualizar Python y pip por separado
- Mejorar manejo de errores y verificación de instalación previa
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear función pip_install específica para la instalación de pip
- Simplificar función python3_install para que solo instale Python
- Actualizar bootstrap.sh para verificar pip3 y usar la nueva función
- Mejorar la compatibilidad entre sistemas operativos
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Solucionar SyntaxError relacionado con la declaración global
- Usar globals() para actualizar la variable global pycountry_available
- Mejorar el flujo de ejecución del programa
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Salir del programa con mensaje de error si pip no está instalado
- Mejores mensajes de error para problemas con Python y pip
- Instrucciones más claras para la instalación de dependencias
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir detección robusta de pip y manejo de errores
- Incluir lista predefinida de códigos de país cuando pycountry no está disponible
- Corregir problemas de inicialización de logging
- Mejor manejo de errores y mensajes informativos
- Funcionamiento garantizado incluso sin pycountry instalado
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Instala automáticamente la biblioteca pycountry si no está disponible
- Valida códigos de país usando la base de datos de pycountry
- Acepta códigos especiales como 'ww' (mundial) y 'la' (Latinoamérica)
- Genera advertencias para códigos de país inválidos pero continúa el proceso
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Se añade script rate_update.py para:
- Analizar archivos .rate en la carpeta de configuración
- Consultar a la API de Perplexity para obtener tarifas actualizadas
- Guardar valores numéricos con 2 decimales en los archivos correspondientes
- Preservar archivos especiales como kdevs.rate sin modificarlos
- Soportar diferentes tipos de programadores y regiones
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Se añaden archivos de configuración que definen las tarifas por hora en dólares para diferentes habilidades técnicas y regiones:
- [habilidad]_[región].rate: Donde la habilidad puede ser bash, python, fullstack, etc.
- Las regiones incluyen 'la' (Latinoamérica) y 'ww' (mundial/worldwide)
- kdevs.rate define un multiplicador para cálculos relacionados
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Amplía la caja de diálogo de éxito para mejor visualización de la ruta del proyecto
- Aumenta altura del diálogo a 12 líneas y ancho a 80 caracteres
- Personaliza el diálogo para evitar truncamiento de rutas largas
- Mantiene consistencia con otros mensajes del sistema
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Elimina la función odoo_developers que ya no es necesaria
- Simplifica la biblioteca odoo.lib al eliminar código obsoleto
- Mejora la mantenibilidad del código al remover funciones innecesarias
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Elimina todas las referencias a odoo.repo que requerían archivos de configuración adicionales
- Simplifica la función odoo_developers para crear directorios sin depender de repositorios Git
- Reduce las dependencias externas para mejorar la portabilidad del script
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Elimina referencia a odoo.version que causaba error si el archivo no existía
- Añade manejo de errores para la lectura de archivos de configuración de Odoo
- Evita que el script falle cuando no hay configuraciones previas de Odoo
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reemplaza incorrecta llave de cierre '}' con 'fi' para cerrar correctamente el bloque if
- Soluciona error que impedía la ejecución del script odoo_set.sh
- Crea carpeta configs de Odoo faltante y el archivo odoo.version
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reordena los mensajes en odoo.es para mantener una secuencia lógica de números
- Mejora el manejo de variables en el subshell de la barra de progreso para evitar pérdida de valor
- Implementa un método más robusto para actualizar la descripción en README.md existentes
- Añade respaldo automático de README.md antes de modificarlo
- Mejora manejo de errores en la generación de archivos
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Simplifica a un solo mensaje: "Descripción del Proyecto Odoo:"
- Elimina textos explicativos adicionales para mantener una interfaz limpia
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Solicita una descripción de proyecto al usuario mediante dialog
- Utiliza la descripción en el archivo README.md generado
- Actualiza la descripción si el proyecto ya existe
- Añade nuevos mensajes en odoo.es para la funcionalidad
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remueve el script odoodevs_set.sh que ha sido reemplazado por odoo_set.sh
- Actualiza la documentación en README.md para eliminar referencias al script obsoleto
- Simplifica las instrucciones para desarrollo con Odoo
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añade entrada en la sección de Desarrollo Especializado
- Crea una nueva sección de Guía de Usuario para el desarrollo con Odoo
- Proporciona detalles sobre las funcionalidades de odoo_set.sh
- Incluye instrucciones de uso para crear y ejecutar proyectos Odoo
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crea una estructura completa de proyecto Odoo
- Incluye carpetas build y settings requeridas
- Genera archivo .typset con tipo de proyecto
- Configura entorno básico para desarrollo Odoo
- Utiliza funciones de console.lib para la interfaz de usuario
- Añade mensajes en odoo.es para internacionalización
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Detecta automáticamente el sistema operativo y utiliza el método de instalación adecuado
- Soporta instalación mediante snap en Ubuntu
- Fallback a instalación desde tarball cuando es necesario
- Mensajes externalizados en head.es para facilitar la localización
- Uso de la librería console.lib para el manejo de interfaces con dialog
- Actualizado README.md con información sobre la nueva funcionalidad
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir tablas de comandos organizadas por categoría
- Incorporar sección de inicio rápido
- Incluir instrucciones detalladas para cada funcionalidad
- Mejorar estructura con secciones claras para usuario y desarrollador
- Agregar badges e iconos para mejor visualización
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>