@qubiit/lmagent 3.1.4 → 3.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/.agents/rules/00-master.md +2 -2
  2. package/.agents/skills/ai-agent-engineer/SKILL.md +1 -1
  3. package/.agents/skills/api-designer/SKILL.md +1 -1
  4. package/.agents/skills/architect/SKILL.md +1 -1
  5. package/.agents/skills/automation-engineer/SKILL.md +1 -1
  6. package/.agents/skills/backend-engineer/SKILL.md +1 -1
  7. package/.agents/skills/bmad-methodology/SKILL.md +1 -1
  8. package/.agents/skills/browser-agent/SKILL.md +1 -1
  9. package/.agents/skills/code-reviewer/SKILL.md +1 -1
  10. package/.agents/skills/data-engineer/SKILL.md +1 -1
  11. package/.agents/skills/devops-engineer/SKILL.md +1 -1
  12. package/.agents/skills/document-generator/SKILL.md +1 -1
  13. package/.agents/skills/frontend-engineer/SKILL.md +1 -1
  14. package/.agents/skills/git-workflow/SKILL.md +1 -1
  15. package/.agents/skills/mcp-builder/SKILL.md +1 -1
  16. package/.agents/skills/mobile-engineer/SKILL.md +1 -1
  17. package/.agents/skills/orchestrator/SKILL.md +1 -1
  18. package/.agents/skills/performance-engineer/SKILL.md +1 -1
  19. package/.agents/skills/product-manager/SKILL.md +1 -1
  20. package/.agents/skills/prompt-engineer/SKILL.md +1 -1
  21. package/.agents/skills/qa-engineer/SKILL.md +1 -1
  22. package/.agents/skills/scrum-master/SKILL.md +1 -1
  23. package/.agents/skills/security-analyst/SKILL.md +1 -1
  24. package/.agents/skills/seo-auditor/SKILL.md +1 -1
  25. package/.agents/skills/spec-driven-dev/SKILL.md +1 -1
  26. package/.agents/skills/supabase-expert/SKILL.md +1 -1
  27. package/.agents/skills/swe-agent/SKILL.md +1 -1
  28. package/.agents/skills/systematic-debugger/SKILL.md +1 -1
  29. package/.agents/skills/tech-lead/SKILL.md +1 -1
  30. package/.agents/skills/technical-writer/SKILL.md +1 -1
  31. package/.agents/skills/testing-strategist/SKILL.md +1 -1
  32. package/.agents/skills/ux-ui-designer/SKILL.md +1 -1
  33. package/install.js +40 -23
  34. package/package.json +4 -2
  35. package/scripts/create_skill.js +300 -0
  36. package/scripts/fix_descriptions.js +51 -0
  37. package/scripts/token-analyzer.js +275 -0
  38. package/scripts/validate_skills.js +285 -0
@@ -1,6 +1,6 @@
1
1
  # 🚀 LMAgent Bootstrap — Instrucciones Iniciales
2
2
 
3
- > **Tipo**: `rule` | **Versión**: 3.1.4 | **Prioridad**: MÁXIMA
3
+ > **Tipo**: `rule` | **Versión**: 3.1.7 | **Prioridad**: MÁXIMA
4
4
  > Esta regla se aplica **SIEMPRE** como primer paso antes de cualquier tarea.
5
5
 
6
6
  ---
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## 🧠 Framework
17
17
 
18
- Estás trabajando con **LMAgent v3.1.4**. Antes de implementar cualquier cambio:
18
+ Este archivo define la identidad, propósito y reglas fundamentales de **LMAgent v3.1.6**. Antes de implementar cualquier cambio:
19
19
 
20
20
  1. **Lee `AGENTS.md`** — Catálogo completo de skills, rules y workflows
21
21
  2. **Clasifica la tarea** — Nivel 0-4 según complejidad (ver `.agents/rules/01-workflow.md`)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ai-agent-engineer
3
- description: Diseño e implementación de agentes de IA, sistemas multi-agente, RAG pipelines y evaluación de LLMs. Úsalo con /ai para construir agentes autónomos, pipelines de IA o sistemas de evaluación.
3
+ description: "Diseño e implementación de agentes de IA, sistemas multi-agente, RAG pipelines y evaluación de LLMs. Úsalo con /ai para construir agentes autónomos, pipelines de IA o sistemas de evaluación."
4
4
  role: Diseño y Desarrollo de Agentes IA
5
5
  type: agent_persona
6
6
  icon: 🤖
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: api-designer
3
- description: Diseño de contratos de API REST y GraphQL, especificaciones OpenAPI y AsyncAPI. Úsalo con /api-design para definir contratos antes de implementar.
3
+ description: "Diseño de contratos de API REST y GraphQL, especificaciones OpenAPI y AsyncAPI. Úsalo con /api-design para definir contratos antes de implementar."
4
4
  role: Especialista en Diseño de APIs y Developer Experience
5
5
  type: agent_persona
6
6
  icon: 🔌
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: architect
3
- description: Diseño de arquitectura de software, patrones de diseño y estructuración de sistemas robustos y escalables. Úsalo con /arch para decisiones técnicas críticas, diseño de sistemas distribuidos o creación de ADRs.
3
+ description: "Diseño de arquitectura de software, patrones de diseño y estructuración de sistemas robustos y escalables. Úsalo con /arch para decisiones técnicas críticas, diseño de sistemas distribuidos o creación de ADRs."
4
4
  role: Senior Solutions Architect - Diseño de Sistemas Distribuidos
5
5
  type: agent_persona
6
6
  icon: �️
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: automation-engineer
3
- description: Automatización de procesos con n8n, Make y scripts. Úsalo con /auto para diseñar workflows de automatización, integraciones entre sistemas o bots.
3
+ description: "Automatización de procesos con n8n, Make y scripts. Úsalo con /auto para diseñar workflows de automatización, integraciones entre sistemas o bots."
4
4
  role: Automatización e Integraciones
5
5
  type: agent_persona
6
6
  icon: ⚙️
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: backend-engineer
3
- description: Desarrollo de lógica de servidor, APIs REST/GraphQL, bases de datos y servicios escalables. Úsalo con /dev para implementar endpoints, refactorizar código o debuggear problemas de backend.
3
+ description: "Desarrollo de lógica de servidor, APIs REST/GraphQL, bases de datos y servicios escalables. Úsalo con /dev para implementar endpoints, refactorizar código o debuggear problemas de backend."
4
4
  role: Senior Backend Engineer & Tech Lead - Ingeniería de Software Robusta
5
5
  type: agent_persona
6
6
  icon: ⚙️
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bmad-methodology
3
- description: Clasificación de complejidad de tareas y selección de metodología (BMAD, SWE-Agent, Spec-Driven). Úsalo con /bmad para determinar el nivel de una tarea (0-4) y el workflow correcto.
3
+ description: "Clasificación de complejidad de tareas y selección de metodología (BMAD, SWE-Agent, Spec-Driven). Úsalo con /bmad para determinar el nivel de una tarea (0-4) y el workflow correcto."
4
4
  role: Scale-Adaptive Intelligence & Project Orchestration
5
5
  type: methodology
6
6
  icon: 🧠
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: browser-agent
3
- description: Automatización de navegadores web, scraping, testing E2E y verificación visual de UIs. Úsalo con /browser para interactuar con páginas web, extraer datos o verificar flujos de usuario.
3
+ description: "Automatización de navegadores web, scraping, testing E2E y verificación visual de UIs. Úsalo con /browser para interactuar con páginas web, extraer datos o verificar flujos de usuario."
4
4
  role: Automatización de Navegador para Agentes IA
5
5
  type: agent_persona
6
6
  icon: 🌐
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: code-reviewer
3
- description: Revisión exhaustiva de código para detectar bugs, problemas de seguridad, deuda técnica y violaciones de estilo. Úsalo con /review para hacer code reviews de PRs o módulos.
3
+ description: "Revisión exhaustiva de código para detectar bugs, problemas de seguridad, deuda técnica y violaciones de estilo. Úsalo con /review para hacer code reviews de PRs o módulos."
4
4
  role: Experto en Code Review y Calidad de Código
5
5
  type: agent_persona
6
6
  icon: 🔍
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: data-engineer
3
- description: Diseño de pipelines de datos, ETL/ELT, modelado de datos y análisis. Úsalo con /data para construir pipelines, optimizar queries o diseñar esquemas de datos.
3
+ description: "Diseño de pipelines de datos, ETL/ELT, modelado de datos y análisis. Úsalo con /data para construir pipelines, optimizar queries o diseñar esquemas de datos."
4
4
  role: Diseño y Administración de Bases de Datos
5
5
  type: agent_persona
6
6
  icon: 🗜️
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: devops-engineer
3
- description: Configuración de CI/CD, infraestructura en la nube, contenedores y automatización de despliegues. Úsalo con /devops para Dockerfiles, pipelines de GitHub Actions, manifiestos de Kubernetes o configuración de monitoreo.
3
+ description: "Configuración de CI/CD, infraestructura en la nube, contenedores y automatización de despliegues. Úsalo con /devops para Dockerfiles, pipelines de GitHub Actions, manifiestos de Kubernetes o configuración de monitoreo."
4
4
  role: Infrastructure, CI/CD y Operaciones
5
5
  type: agent_persona
6
6
  icon: 🚀
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: document-generator
3
- description: Generación de documentación técnica, READMEs, changelogs y wikis. Úsalo con /docs para crear o actualizar documentación de proyectos.
3
+ description: "Generación de documentación técnica, READMEs, changelogs y wikis. Úsalo con /docs para crear o actualizar documentación de proyectos."
4
4
  role: Generación de Documentos de Oficina
5
5
  type: agent_persona
6
6
  icon: 📄
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: frontend-engineer
3
- description: Desarrollo de interfaces de usuario modernas, responsivas y centradas en la experiencia del usuario con React/Next.js. Úsalo con /front para implementar componentes, integrar APIs o optimizar performance frontend.
3
+ description: "Desarrollo de interfaces de usuario modernas, responsivas y centradas en la experiencia del usuario con React/Next.js. Úsalo con /front para implementar componentes, integrar APIs o optimizar performance frontend."
4
4
  role: Desarrollo de Interfaces de Usuario
5
5
  type: agent_persona
6
6
  icon: 🎨
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: git-workflow
3
- description: Gestión de flujos de trabajo Git, branching strategies, commits semánticos y releases. Úsalo con /git para gestionar ramas, crear releases o resolver conflictos.
3
+ description: "Gestión de flujos de trabajo Git, branching strategies, commits semánticos y releases. Úsalo con /git para gestionar ramas, crear releases o resolver conflictos."
4
4
  role: Especialista en Git Workflows y Release Management
5
5
  type: agent_persona
6
6
  icon: 🌿
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mcp-builder
3
- description: Construcción de servidores MCP (Model Context Protocol) para extender capacidades de agentes de IA. Úsalo con /mcp para crear herramientas y recursos MCP.
3
+ description: "Construcción de servidores MCP (Model Context Protocol) para extender capacidades de agentes de IA. Úsalo con /mcp para crear herramientas y recursos MCP."
4
4
  role: Especialista en Model Context Protocol y Agent Tooling
5
5
  type: agent_persona
6
6
  icon: 🔧
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mobile-engineer
3
- description: Desarrollo de aplicaciones móviles con React Native y Expo. Úsalo con /mobile para implementar pantallas, navegación o integraciones nativas en apps iOS/Android.
3
+ description: "Desarrollo de aplicaciones móviles con React Native y Expo. Úsalo con /mobile para implementar pantallas, navegación o integraciones nativas en apps iOS/Android."
4
4
  role: Desarrollo de Aplicaciones Móviles
5
5
  type: agent_persona
6
6
  icon: 📱
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: orchestrator
3
- description: Meta-agente orquestador que clasifica tareas y rutea al experto correcto. Úsalo con /orch al inicio de cualquier tarea compleja o cuando no está claro qué persona activar.
3
+ description: "Meta-agente orquestador que clasifica tareas y rutea al experto correcto. Úsalo con /orch al inicio de cualquier tarea compleja o cuando no está claro qué persona activar."
4
4
  role: Meta-Agent que decide qué persona y workflow activar
5
5
  type: agent_persona
6
6
  icon: 🎯
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: performance-engineer
3
- description: Optimización de rendimiento de aplicaciones, profiling, análisis de bottlenecks y tuning. Úsalo con /perf para identificar y resolver problemas de performance.
3
+ description: "Optimización de rendimiento de aplicaciones, profiling, análisis de bottlenecks y tuning. Úsalo con /perf para identificar y resolver problemas de performance."
4
4
  role: Optimización de Rendimiento y Escalabilidad
5
5
  type: agent_persona
6
6
  icon: 🏎️
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: product-manager
3
- description: Definición de la visión del producto, roadmap y requisitos detallados para maximizar el valor al usuario. Úsalo con /pm para generar PRDs, priorizar features con RICE/MoSCoW o conducir sesiones de brainstorming.
3
+ description: "Definición de la visión del producto, roadmap y requisitos detallados para maximizar el valor al usuario. Úsalo con /pm para generar PRDs, priorizar features con RICE/MoSCoW o conducir sesiones de brainstorming."
4
4
  role: Senior Product Manager - Estrategia y Visión de Producto
5
5
  type: agent_persona
6
6
  icon: 📊
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: prompt-engineer
3
- description: Diseño y optimización de prompts para LLMs, system prompts y cadenas de razonamiento. Úsalo con /prompt para mejorar la calidad de respuestas de agentes de IA.
3
+ description: "Diseño y optimización de prompts para LLMs, system prompts y cadenas de razonamiento. Úsalo con /prompt para mejorar la calidad de respuestas de agentes de IA."
4
4
  role: Ingeniería de Prompts y Arquitectura Cognitiva
5
5
  type: agent_persona
6
6
  icon: 🧠
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qa-engineer
3
- description: Aseguramiento de la calidad mediante pruebas automatizadas, manuales y validación rigurosa de criterios de aceptación. Úsalo con /qa para escribir tests, analizar cobertura, reproducir bugs o evaluar agentes de IA con LLM Evals.
3
+ description: "Aseguramiento de la calidad mediante pruebas automatizadas, manuales y validación rigurosa de criterios de aceptación. Úsalo con /qa para escribir tests, analizar cobertura, reproducir bugs o evaluar agentes de IA con LLM Evals."
4
4
  role: Testing y Aseguramiento de Calidad
5
5
  type: agent_persona
6
6
  icon: 🧪
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: scrum-master
3
- description: Facilitación de ceremonias ágiles, gestión de sprints y remoción de impedimentos. Úsalo con /scrum para planificar sprints, hacer retrospectivas o gestionar el backlog.
3
+ description: "Facilitación de ceremonias ágiles, gestión de sprints y remoción de impedimentos. Úsalo con /scrum para planificar sprints, hacer retrospectivas o gestionar el backlog."
4
4
  role: Agile Coach & Senior Scrum Master - Facilitador de Alto Rendimiento
5
5
  type: agent_persona
6
6
  icon: 🏉
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: security-analyst
3
- description: Análisis de seguridad, threat modeling, revisión de vulnerabilidades y hardening. Úsalo con /sec para auditar código, revisar configuraciones o hacer threat modeling.
3
+ description: "Análisis de seguridad, threat modeling, revisión de vulnerabilidades y hardening. Úsalo con /sec para auditar código, revisar configuraciones o hacer threat modeling."
4
4
  role: Seguridad y Compliance
5
5
  type: agent_persona
6
6
  icon: 🛡️
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: seo-auditor
3
- description: Auditoría SEO, análisis de Core Web Vitals, optimización de metadatos y estrategia de contenido. Úsalo con /seo para auditar páginas web o mejorar el posicionamiento.
3
+ description: "Auditoría SEO, análisis de Core Web Vitals, optimización de metadatos y estrategia de contenido. Úsalo con /seo para auditar páginas web o mejorar el posicionamiento."
4
4
  role: Auditoría Web y SEO Técnico
5
5
  type: agent_persona
6
6
  icon: 🔎
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: spec-driven-dev
3
- description: Metodología SPEC DRIVEN: pipeline SPECIFY → PLAN → TASKS → CODE → VERIFY. Úsalo con /spec para tareas Level 2+ que requieren planificación antes de codear.
3
+ description: "Metodología SPEC DRIVEN: pipeline SPECIFY → PLAN → TASKS → CODE → VERIFY. Úsalo con /spec para tareas Level 2+ que requieren planificación antes de codear."
4
4
  role: Development Methodology - Specification as Source of Truth
5
5
  type: methodology
6
6
  icon: 📋
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: supabase-expert
3
- description: Desarrollo con Supabase: Auth, Realtime, Storage, Edge Functions y Row Level Security. Úsalo con /supabase para implementar features con Supabase como backend.
3
+ description: "Desarrollo con Supabase: Auth, Realtime, Storage, Edge Functions y Row Level Security. Úsalo con /supabase para implementar features con Supabase como backend."
4
4
  role: Experto en Supabase Platform & PostgreSQL
5
5
  type: agent_persona
6
6
  icon: ⚡
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: swe-agent
3
- description: Resolución autónoma de issues de GitHub usando trajectory-based debugging. Úsalo con /swe para resolver bugs complejos de forma sistemática y autónoma.
3
+ description: "Resolución autónoma de issues de GitHub usando trajectory-based debugging. Úsalo con /swe para resolver bugs complejos de forma sistemática y autónoma."
4
4
  role: Autonomous Software Engineering Agent
5
5
  type: methodology
6
6
  icon: 🔧
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: systematic-debugger
3
- description: Debugging sistemático y análisis de causa raíz de bugs. Úsalo con /debug para investigar errores complejos de forma metódica.
3
+ description: "Debugging sistemático y análisis de causa raíz de bugs. Úsalo con /debug para investigar errores complejos de forma metódica."
4
4
  role: Debugging Metódico y Resolución de Problemas
5
5
  type: agent_persona
6
6
  icon: 🔍
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: tech-lead
3
- description: Liderazgo técnico, decisiones de arquitectura, mentoring y gestión de deuda técnica. Úsalo con /lead para decisiones técnicas ejecutivas o revisiones de arquitectura.
3
+ description: "Liderazgo técnico, decisiones de arquitectura, mentoring y gestión de deuda técnica. Úsalo con /lead para decisiones técnicas ejecutivas o revisiones de arquitectura."
4
4
  role: Liderazgo Técnico y Mentorship
5
5
  type: agent_persona
6
6
  icon: 🧭
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: technical-writer
3
- description: Redacción de documentación técnica clara, tutoriales, guías de API y changelogs. Úsalo con /write para crear documentación de alta calidad.
3
+ description: "Redacción de documentación técnica clara, tutoriales, guías de API y changelogs. Úsalo con /write para crear documentación de alta calidad."
4
4
  role: Documentación Técnica y Comunicación
5
5
  type: agent_persona
6
6
  icon: 📝
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: testing-strategist
3
- description: Diseño de estrategias de testing, selección de herramientas y definición de métricas de calidad. Úsalo con /test-strategy para planificar la cobertura de tests de un proyecto.
3
+ description: "Diseño de estrategias de testing, selección de herramientas y definición de métricas de calidad. Úsalo con /test-strategy para planificar la cobertura de tests de un proyecto."
4
4
  role: Especialista en Testing Strategy y Quality Assurance Automation
5
5
  type: agent_persona
6
6
  icon: 🧪
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ux-ui-designer
3
- description: Diseño de experiencias de usuario, sistemas de diseño, wireframes y accesibilidad. Úsalo con /ux para definir flujos de usuario, componentes de diseño o auditar accesibilidad.
3
+ description: "Diseño de experiencias de usuario, sistemas de diseño, wireframes y accesibilidad. Úsalo con /ux para definir flujos de usuario, componentes de diseño o auditar accesibilidad."
4
4
  role: Diseño de Experiencia e Interfaz de Usuario
5
5
  type: agent_persona
6
6
  icon: 🎨
package/install.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  const fs = require('fs');
4
4
  const path = require('path');
@@ -40,7 +40,7 @@ const INIT_DIRS = [
40
40
  const IDE_CONFIGS = [
41
41
  // --- IDEs Principales (Auto-Detectados) ---
42
42
  // Cursor: usa .cursor/rules/*.mdc (formato MDC con frontmatter)
43
- { name: 'Cursor', value: 'cursor', rulesDir: '.cursor/rules', skillsDir: '.cursor/skills', workflowsDir: '.cursor/workflows', configFile: '.cursorrules', bridgeFile: 'lmagent.mdc', markerFile: '.cursorrules', forceCopy: true },
43
+ { name: 'Cursor', value: 'cursor', rulesDir: '.cursor/rules', skillsDir: '.cursor/rules/skills', workflowsDir: '.cursor/workflows', configFile: '.cursorrules', bridgeFile: 'lmagent.mdc', markerFile: '.cursorrules', forceCopy: true },
44
44
  // Windsurf Wave 8+: usa .windsurf/rules/*.md (directorio, NO .windsurfrules)
45
45
  { name: 'Windsurf', value: 'windsurf', rulesDir: '.windsurf/rules', skillsDir: '.windsurf/skills', workflowsDir: '.windsurf/workflows', configFile: null, bridgeFile: 'lmagent.md', markerFile: '.windsurf', forceCopy: true },
46
46
  // Cline: usa .clinerules/ (directorio con .md files)
@@ -902,12 +902,26 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
902
902
  `;
903
903
  }
904
904
 
905
+ // CLEANUP: Legacy Cursor Skills Directory
906
+ // Since we moved skills to .cursor/rules/skills, we must remove .cursor/skills to avoid duplicates
907
+ if (ide.value === 'cursor') {
908
+ const legacySkillsDir = path.join(targetRoot, '.cursor/skills');
909
+ if (fs.existsSync(legacySkillsDir)) {
910
+ try {
911
+ fs.rmSync(legacySkillsDir, { recursive: true, force: true });
912
+ console.log(` ${chalk.yellow('🗑 Eliminado directorio obsoleto:')} .cursor / skills(Movido a.cursor / rules / skills)`);
913
+ } catch (e) {
914
+ console.error(chalk.red(` ⚠️ No se pudo eliminar.cursor / skills: ${e.message} `));
915
+ }
916
+ }
917
+ }
918
+
905
919
  try {
906
920
  if (!fs.existsSync(path.dirname(bridgePath))) fs.mkdirSync(path.dirname(bridgePath), { recursive: true });
907
921
  fs.writeFileSync(bridgePath, bridgeContent);
908
- console.log(` ${chalk.green('✔')} ${ide.name} Bridge Rule: ${bridgeFile}`);
922
+ console.log(` ${chalk.green('✔')} ${ide.name} Bridge Rule: ${bridgeFile} `);
909
923
  } catch (e) {
910
- console.error(chalk.red(` ❌ Error creating bridge for ${ide.name}: ${e.message}`));
924
+ console.error(chalk.red(` ❌ Error creating bridge for ${ide.name}: ${e.message} `));
911
925
  }
912
926
  }
913
927
  // 2. Install RULES (Files)
@@ -918,7 +932,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
918
932
  if (arePathsEqual(targetDir, globalRulesDir)) {
919
933
  console.log(chalk.blue(` ℹ ${ide.name}: Rules updated via Global Sync`));
920
934
  } else {
921
- console.log(chalk.bold(`\nInstalling Rules to ${chalk.cyan(targetDir)}:`));
935
+ console.log(chalk.bold(`\nInstalling Rules to ${chalk.cyan(targetDir)}: `));
922
936
 
923
937
  try {
924
938
  if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
@@ -935,7 +949,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
935
949
  const legacyPath = path.join(targetDir, legacy);
936
950
  if (fs.existsSync(legacyPath)) {
937
951
  fs.unlinkSync(legacyPath);
938
- console.log(` ${chalk.yellow('🗑 Eliminado regla obsoleta:')} ${legacy}`);
952
+ console.log(` ${chalk.yellow('🗑 Eliminado regla obsoleta:')} ${legacy} `);
939
953
  }
940
954
  }
941
955
 
@@ -945,11 +959,11 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
945
959
 
946
960
  if (fs.existsSync(srcVal)) {
947
961
  await applyFile(srcVal, destVal, currentInstallMethod);
948
- console.log(` ${chalk.blue('✔')} ${rule}`);
962
+ console.log(` ${chalk.blue('✔')} ${rule} `);
949
963
  }
950
964
  }
951
965
  } catch (e) {
952
- console.error(chalk.red(`❌ Error installing rules for ${ide.name}: ${e.message}`));
966
+ console.error(chalk.red(`❌ Error installing rules for ${ide.name}: ${e.message} `));
953
967
  }
954
968
  }
955
969
  }
@@ -962,7 +976,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
962
976
  if (arePathsEqual(targetDir, globalWorkflowsDir)) {
963
977
  console.log(chalk.blue(` ℹ ${ide.name}: Workflows updated via Global Sync`));
964
978
  } else {
965
- console.log(chalk.bold(`\nInstalling Workflows to ${chalk.cyan(targetDir)}:`));
979
+ console.log(chalk.bold(`\nInstalling Workflows to ${chalk.cyan(targetDir)}: `));
966
980
 
967
981
  try {
968
982
  if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
@@ -973,11 +987,11 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
973
987
 
974
988
  if (fs.existsSync(srcVal)) {
975
989
  await applyFile(srcVal, destVal, currentInstallMethod);
976
- console.log(` ${chalk.magenta('✔')} ${wf}`);
990
+ console.log(` ${chalk.magenta('✔')} ${wf} `);
977
991
  }
978
992
  }
979
993
  } catch (e) {
980
- console.error(chalk.red(`❌ Error installing workflows for ${ide.name}: ${e.message}`));
994
+ console.error(chalk.red(`❌ Error installing workflows for ${ide.name}: ${e.message} `));
981
995
  }
982
996
  }
983
997
  }
@@ -992,16 +1006,16 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
992
1006
  const targetDir = path.join(targetRoot, parentDir, 'memory');
993
1007
 
994
1008
  if (arePathsEqual(targetDir, path.join(globalAgentDir, 'memory'))) {
995
- // console.log(chalk.blue(` ℹ ${ide.name}: Memory updated via Global Sync`));
1009
+ // console.log(chalk.blue(` ℹ ${ ide.name }: Memory updated via Global Sync`));
996
1010
  } else {
997
- // console.log(chalk.bold(`\nInstalling Memory to ${chalk.cyan(targetDir)}:`));
1011
+ // console.log(chalk.bold(`\nInstalling Memory to ${ chalk.cyan(targetDir) }: `));
998
1012
  try {
999
1013
  if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
1000
1014
  // Copy all contents of memory
1001
1015
  copyRecursiveSync(SOURCE_MEMORY, targetDir, true); // Always copy/overwrite for now, or use applyFile for items if we want symlinks
1002
- console.log(` ${chalk.cyan('✔')} Memory (Context) optimized.`);
1016
+ console.log(` ${chalk.cyan('✔')} Memory(Context) optimized.`);
1003
1017
  } catch (e) {
1004
- console.error(chalk.red(`❌ Error installing memory for ${ide.name}: ${e.message}`));
1018
+ console.error(chalk.red(`❌ Error installing memory for ${ide.name}: ${e.message} `));
1005
1019
  }
1006
1020
  }
1007
1021
  }
@@ -1014,7 +1028,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
1014
1028
 
1015
1029
  // Mensaje dinámico según agentes instalados
1016
1030
  const ideNames = targetIdes.map(i => i.name).join(', ');
1017
- console.log(chalk.cyan(`🤖 Agentes configurados: ${chalk.bold(ideNames)}`));
1031
+ console.log(chalk.cyan(`🤖 Agentes configurados: ${chalk.bold(ideNames)} `));
1018
1032
  console.log('');
1019
1033
  console.log(chalk.white(' 1. Abre tu agente en este proyecto — leerá el contexto automáticamente.'));
1020
1034
  console.log(chalk.white(' 2. Usa los triggers para activar un rol específico:'));
@@ -1032,7 +1046,7 @@ async function applyFile(source, dest, method) {
1032
1046
 
1033
1047
  // Case-insensitive check for Windows compatibility
1034
1048
  if (srcPath.toLowerCase() === destPath.toLowerCase()) {
1035
- // console.log(chalk.gray(` (Skipping self-install: ${path.basename(source)})`));
1049
+ // console.log(chalk.gray(` (Skipping self - install: ${ path.basename(source) })`));
1036
1050
  return;
1037
1051
  }
1038
1052
  if (fs.existsSync(dest) || (fs.existsSync(path.dirname(dest)) && fs.readdirSync(path.dirname(dest)).includes(path.basename(dest)))) {
@@ -1065,11 +1079,11 @@ async function applyFile(source, dest, method) {
1065
1079
  }
1066
1080
  const isWindows = os.platform() === 'win32';
1067
1081
  const msg = isWindows && !isDir
1068
- ? `(Symlink falló [Requiere Admin/DevMode en Win]. Copiado.)`
1082
+ ? `(Symlink falló[Requiere Admin / DevMode en Win].Copiado.)`
1069
1083
  : `(Symlink falló, se usó copia)`;
1070
- console.log(chalk.yellow(` ${msg}`));
1084
+ console.log(chalk.yellow(` ${msg} `));
1071
1085
  } catch (err) {
1072
- console.error(chalk.red(` Error copiando ${path.basename(dest)}: ${err.message}`));
1086
+ console.error(chalk.red(` Error copiando ${path.basename(dest)}: ${err.message} `));
1073
1087
  }
1074
1088
  }
1075
1089
  } else {
@@ -1086,7 +1100,7 @@ function copyRecursiveSync(src, dest, overwrite) {
1086
1100
  try {
1087
1101
  fs.cpSync(src, dest, { recursive: true, force: overwrite, errorOnExist: false });
1088
1102
  } catch (e) {
1089
- console.error(chalk.red(`Error copying (cpSync) ${path.basename(src)}: ${e.message}`));
1103
+ console.error(chalk.red(`Error copying(cpSync) ${path.basename(src)}: ${e.message} `));
1090
1104
  // Fallback manual implementation just in case
1091
1105
  if (fs.existsSync(src)) {
1092
1106
  const stat = fs.statSync(src);
@@ -1145,7 +1159,7 @@ async function runInit(options) {
1145
1159
 
1146
1160
  const projectRoot = process.cwd();
1147
1161
  const targetRoot = projectRoot; // Fix for ReferenceError in runInit
1148
- console.log(chalk.cyan(`📦 Inicializando proyecto LMAgent en: ${chalk.bold(projectRoot)}\n`));
1162
+ console.log(chalk.cyan(`📦 Inicializando proyecto LMAgent en: ${chalk.bold(projectRoot)} \n`));
1149
1163
 
1150
1164
  // Verificar si ya está inicializado
1151
1165
  const agentsExists = fs.existsSync(path.join(projectRoot, 'AGENTS.md'));
@@ -1176,7 +1190,7 @@ async function runInit(options) {
1176
1190
  name: 'files',
1177
1191
  message: 'Archivos de entry point a copiar:',
1178
1192
  choices: INIT_FILES.map(f => ({
1179
- name: `${f.src} - ${f.desc}`,
1193
+ name: `${f.src} - ${f.desc} `,
1180
1194
  value: f.src,
1181
1195
  checked: true
1182
1196
  }))
@@ -1495,3 +1509,6 @@ function getAllItemsFlat(dir) {
1495
1509
  return results;
1496
1510
  }
1497
1511
 
1512
+
1513
+ // Execute CLI
1514
+ program.parse(process.argv);
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.1.4",
6
+ "version": "3.1.7",
7
7
  "files": [
8
8
  "install.js",
9
9
  "README.md",
@@ -11,7 +11,8 @@
11
11
  "AGENTS.md",
12
12
  "CLAUDE.md",
13
13
  "CONTRIBUTING.md",
14
- ".agents"
14
+ ".agents",
15
+ "scripts"
15
16
  ],
16
17
  "engines": {
17
18
  "node": ">=22.0.0"
@@ -74,6 +75,7 @@
74
75
  "author": "Leandro Martín Alvarez (QuBiit)",
75
76
  "license": "MIT",
76
77
  "dependencies": {
78
+ "@qubiit/lmagent": "file:qubiit-lmagent-3.1.6.tgz",
77
79
  "boxen": "^8.0.1",
78
80
  "chalk": "^4.1.2",
79
81
  "commander": "^13.1.0",