siesa-agents 2.1.17 → 2.1.19-dev.0

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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # SIESA Agents
1
+ # SIESA BMAD Agents
2
2
 
3
3
  Paquete para instalar y configurar agentes SIESA en tu proyecto.
4
4
 
@@ -52,7 +52,6 @@ El paquete instala las siguientes carpetas en tu directorio actual:
52
52
  - **`.bmad-core/`** - Archivos principales del sistema BMAD
53
53
  - **`.vscode/`** - Configuración de Visual Studio Code
54
54
  - **`.github/`** - Configuración de GitHub Actions y workflows
55
- - **`.claude/`** - Configuración de Claude Code Commands y workflows
56
55
 
57
56
  ## Características
58
57
 
@@ -71,17 +70,22 @@ El paquete instala las siguientes carpetas en tu directorio actual:
71
70
 
72
71
  Para actualizar una instalación existente, simplemente ejecuta el comando nuevamente:
73
72
 
73
+ **Versión estable (recomendado):**
74
74
  ```bash
75
75
  npx siesa-agents
76
76
  ```
77
77
 
78
+ **Versión de desarrollo:**
79
+ ```bash
80
+ npx siesa-agents@dev
81
+ ```
82
+
78
83
  El sistema detectará automáticamente que ya existe una instalación y la actualizará.
79
84
 
80
85
  ## Requisitos
81
86
 
82
87
  - Node.js >= 14.0.0
83
88
  - npm >= 6.0.0
84
- - Python >= 3.7 (requerido para hooks de Claude Code)
85
89
 
86
90
  ## Estructura de archivos instalados
87
91
 
@@ -95,6 +99,8 @@ tu-proyecto/
95
99
  └── [workflows y configuración de GitHub]
96
100
  ```
97
101
 
102
+
103
+
98
104
  ## Soporte
99
105
 
100
106
  Si encuentras algún problema durante la instalación, por favor verifica:
@@ -109,7 +115,4 @@ MIT
109
115
 
110
116
  ## Autor
111
117
 
112
- SIESA - Sistemas de Información Empresarial
113
-
114
- ---
115
- *Versión actualizada automáticamente por CI/CD*
118
+ SIESA - Sistemas de Información Empresarial
package/bin/install.js CHANGED
@@ -11,20 +11,12 @@ class SiesaBmadInstaller {
11
11
  { source: 'bmad-core', target: '.bmad-core' },
12
12
  { source: 'vscode', target: '.vscode' },
13
13
  { source: 'github', target: '.github' },
14
- { source: 'claude', target: '.claude' }
14
+ { source: 'claude', target: '.claude' },
15
+ { source: 'resources', target: '.resources' }
15
16
  ];
16
-
17
- // Lista de archivos que se preservan automáticamente (no se crean backups)
18
- this.ignoredFiles = [
19
- 'data/technical-preferences.md'
20
- ];
21
-
22
17
  this.targetDir = process.cwd();
23
18
  // Intentar múltiples ubicaciones posibles para el paquete
24
19
  this.packageDir = this.findPackageDir();
25
-
26
- // Almacenamiento temporal para contenido de archivos ignorados
27
- this.preservedContent = new Map();
28
20
  }
29
21
 
30
22
  showBanner() {
@@ -35,7 +27,8 @@ class SiesaBmadInstaller {
35
27
  console.log('╚════██║██║██╔══╝ ╚════██║██╔══██║ ██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ╚════██║');
36
28
  console.log('███████║██║███████╗███████║██║ ██║ ██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ███████║');
37
29
  console.log('╚══════╝╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝');
38
- console.log('');
30
+ console.log('Version de Desarrollador');
31
+ console.log('\n');
39
32
  }
40
33
 
41
34
  findPackageDir() {
@@ -132,8 +125,7 @@ class SiesaBmadInstaller {
132
125
  modifiedFiles.push({
133
126
  folder: mapping.target,
134
127
  file: relativePath,
135
- fullPath: targetFile,
136
- is_ignored: this.ignoredFiles.includes(relativePath)
128
+ fullPath: targetFile
137
129
  });
138
130
  }
139
131
  } catch (error) {
@@ -145,8 +137,7 @@ class SiesaBmadInstaller {
145
137
  modifiedFiles.push({
146
138
  folder: mapping.target,
147
139
  file: relativePath,
148
- fullPath: targetFile,
149
- is_ignored: this.ignoredFiles.includes(relativePath)
140
+ fullPath: targetFile
150
141
  });
151
142
  }
152
143
  }
@@ -177,10 +168,6 @@ class SiesaBmadInstaller {
177
168
  }
178
169
 
179
170
  async promptUser(modifiedFiles) {
180
-
181
- const hasNonIgnoredFiles = modifiedFiles.some(file => file.is_ignored == false)
182
- if (!hasNonIgnoredFiles) return '2'
183
-
184
171
  console.log('\n⚠️ Se detectaron archivos modificados:');
185
172
 
186
173
  // Agrupar por carpeta
@@ -221,12 +208,6 @@ class SiesaBmadInstaller {
221
208
  console.log('\n🔄 Creando backup de archivos modificados...');
222
209
 
223
210
  for (const item of modifiedFiles) {
224
- // No crear backup de archivos ignorados
225
- if (item.is_ignored) {
226
- console.log(`✓ Preservando: ${item.file} (sin backup)`);
227
- continue;
228
- }
229
-
230
211
  const originalPath = item.fullPath;
231
212
  const backupPath = this.getBackupPath(originalPath);
232
213
 
@@ -291,19 +272,10 @@ class SiesaBmadInstaller {
291
272
  // Obtener todos los archivos backup existentes
292
273
  const backupFiles = await this.findBackupFiles(targetPath);
293
274
 
294
- // Copiar la carpeta preservando technical-preferences.md
275
+ // Copiar la carpeta completa sobrescribiendo
295
276
  await fs.copy(sourcePath, targetPath, {
296
277
  overwrite: true,
297
- recursive: true,
298
- filter: (src) => {
299
- const relativePath = path.relative(sourcePath, src);
300
- // No sobrescribir archivos ignorados si ya existen
301
- if (this.ignoredFiles.includes(relativePath)) {
302
- const targetFile = path.join(targetPath, relativePath);
303
- return !fs.existsSync(targetFile);
304
- }
305
- return true;
306
- }
278
+ recursive: true
307
279
  });
308
280
 
309
281
  // Restaurar los archivos backup
@@ -358,16 +330,7 @@ class SiesaBmadInstaller {
358
330
  if (fs.existsSync(sourcePath)) {
359
331
  await fs.copy(sourcePath, targetPath, {
360
332
  overwrite: true,
361
- recursive: true,
362
- filter: (src) => {
363
- const relativePath = path.relative(sourcePath, src);
364
- // No sobrescribir archivos ignorados si ya existen
365
- if (this.ignoredFiles.includes(relativePath)) {
366
- const targetFile = path.join(targetPath, relativePath);
367
- return !fs.existsSync(targetFile);
368
- }
369
- return true;
370
- }
333
+ recursive: true
371
334
  });
372
335
  } else {
373
336
  console.warn(`⚠️ Carpeta ${mapping.source} no encontrada en el paquete`);
@@ -403,9 +366,6 @@ class SiesaBmadInstaller {
403
366
  await this.performUpdateWithBackups();
404
367
  } else {
405
368
  // Si no hay backups, hacer actualización normal (remover y copiar)
406
- // Pero primero preservar archivos ignorados
407
- await this.preserveIgnoredFiles();
408
-
409
369
  for (const mapping of this.folderMappings) {
410
370
  const targetPath = path.join(this.targetDir, mapping.target);
411
371
 
@@ -416,66 +376,9 @@ class SiesaBmadInstaller {
416
376
 
417
377
  // Realizar instalación nueva
418
378
  await this.performInstallation();
419
-
420
- // Restaurar archivos ignorados
421
- await this.restoreIgnoredFiles();
422
379
  }
423
380
  }
424
381
 
425
- async preserveIgnoredFiles() {
426
- console.log('🔒 Preservando archivos de configuración...');
427
-
428
- for (const mapping of this.folderMappings) {
429
- const targetFolderPath = path.join(this.targetDir, mapping.target);
430
-
431
- if (!fs.existsSync(targetFolderPath)) {
432
- continue;
433
- }
434
-
435
- for (const ignoredFile of this.ignoredFiles) {
436
- const filePath = path.join(targetFolderPath, ignoredFile);
437
-
438
- if (fs.existsSync(filePath)) {
439
- try {
440
- const content = await fs.readFile(filePath, 'utf8');
441
- const key = `${mapping.target}/${ignoredFile}`;
442
- this.preservedContent.set(key, content);
443
- console.log(`✓ Preservando: ${ignoredFile}`);
444
- } catch (error) {
445
- console.warn(`⚠️ Error leyendo ${ignoredFile}: ${error.message}`);
446
- }
447
- }
448
- }
449
- }
450
- }
451
-
452
- async restoreIgnoredFiles() {
453
- if (this.preservedContent.size === 0) {
454
- return;
455
- }
456
-
457
- console.log('🔄 Restaurando archivos de configuración...');
458
-
459
- for (const [key, content] of this.preservedContent) {
460
- const [targetFolder, ...filePathParts] = key.split('/');
461
- const filePath = path.join(this.targetDir, targetFolder, ...filePathParts);
462
-
463
- try {
464
- // Asegurar que el directorio existe
465
- await fs.ensureDir(path.dirname(filePath));
466
-
467
- // Restaurar el contenido
468
- await fs.writeFile(filePath, content, 'utf8');
469
- console.log(`✓ Restaurado: ${filePathParts.join('/')}`);
470
- } catch (error) {
471
- console.warn(`⚠️ Error restaurando ${filePathParts.join('/')}: ${error.message}`);
472
- }
473
- }
474
-
475
- // Limpiar el mapa después de restaurar
476
- this.preservedContent.clear();
477
- }
478
-
479
382
  showPostInstallMessage() {
480
383
  console.log('\n📚 Carpetas instaladas:');
481
384
  this.folderMappings.forEach(mapping => {
@@ -81,8 +81,6 @@ dependencies:
81
81
  - architect-checklist.md
82
82
  data:
83
83
  - technical-preferences.md
84
- - technology-stack.md
85
- - architecture-patterns.md
86
84
  tasks:
87
85
  - create-deep-research-prompt.md
88
86
  - create-doc.md
@@ -60,7 +60,7 @@ commands:
60
60
  dependencies:
61
61
  data:
62
62
  - technical-preferences.md
63
- - technology-stack.md
63
+ - technical-preferences-ux.md
64
64
  tasks:
65
65
  - create-doc.md
66
66
  - execute-checklist.md
@@ -263,6 +263,7 @@ src/
263
263
  │ └── registration/ # FEATURE
264
264
  ├── shared/
265
265
  │ ├── components/ # Shadcn/ui components
266
+ │ │ └── ui/ # Base UI Kit components from proyecto/components/ui/
266
267
  │ ├── hooks/
267
268
  │ ├── utils/
268
269
  │ ├── types/
@@ -276,7 +277,20 @@ src/
276
277
  │ ├── api/ # API configuration
277
278
  │ ├── storage/ # IndexedDB, localStorage
278
279
  │ └── pwa/ # PWA configuration
279
- └── assets/
280
+ ├── assets/
281
+ │ ├── fonts/ # Fonts from proyecto/public/fonts/
282
+ │ │ ├── SiesaBT-Light.otf
283
+ │ │ ├── SiesaBT-Regular.otf
284
+ │ │ └── SiesaBT-Bold.otf
285
+ │ ├── images/
286
+ │ │ └── logos/ # Logos from proyecto/public/images/logos/
287
+ │ │ ├── Siesa_Logosimbolo_Azul.svg
288
+ │ │ ├── Siesa_Logosimbolo_Blanco.svg
289
+ │ │ ├── Siesa_Simbolo_Azul.svg
290
+ │ │ └── Siesa_Simbolo_Blanco.svg
291
+ │ └── favicon.ico # Favicon from proyecto/public/favicon.ico
292
+ └── styles/
293
+ └── globals.css # Consolidated styles + Tailwind + WCAG from proyecto/styles/globals.css
280
294
  ```
281
295
 
282
296
  ### Import Organization