siesa-agents 2.1.23-dev.0 → 2.1.24-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/bin/install.js +15 -14
- package/kiro/README.md +13 -0
- package/kiro/steering/agent-detection.md +46 -0
- package/package.json +2 -1
package/bin/install.js
CHANGED
|
@@ -12,6 +12,7 @@ class SiesaBmadInstaller {
|
|
|
12
12
|
{ source: 'vscode', target: '.vscode' },
|
|
13
13
|
{ source: 'github', target: '.github' },
|
|
14
14
|
{ source: 'claude', target: '.claude' },
|
|
15
|
+
{ source: 'kiro', target: '.kiro' },
|
|
15
16
|
{ source: 'resources', target: '.resources' }
|
|
16
17
|
];
|
|
17
18
|
this.targetDir = process.cwd();
|
|
@@ -72,7 +73,7 @@ class SiesaBmadInstaller {
|
|
|
72
73
|
try {
|
|
73
74
|
// Verificar si ya existe una instalación
|
|
74
75
|
const hasExistingInstallation = this.checkExistingInstallation();
|
|
75
|
-
|
|
76
|
+
|
|
76
77
|
if (hasExistingInstallation) {
|
|
77
78
|
console.log('🔄 Instalación existente detectada. Actualizando...');
|
|
78
79
|
await this.update();
|
|
@@ -213,11 +214,11 @@ class SiesaBmadInstaller {
|
|
|
213
214
|
|
|
214
215
|
try {
|
|
215
216
|
await fs.copy(originalPath, backupPath);
|
|
216
|
-
|
|
217
|
+
|
|
217
218
|
// Determinar tipo de backup para mostrar mensaje apropiado
|
|
218
219
|
const backupName = path.basename(backupPath);
|
|
219
220
|
const isVersionedBackup = backupName.includes('_bk_');
|
|
220
|
-
|
|
221
|
+
|
|
221
222
|
if (isVersionedBackup) {
|
|
222
223
|
console.log(`✓ Backup versionado: ${path.relative(this.targetDir, backupPath)}`);
|
|
223
224
|
} else {
|
|
@@ -236,7 +237,7 @@ class SiesaBmadInstaller {
|
|
|
236
237
|
|
|
237
238
|
// Primer intento: archivo_bk.ext
|
|
238
239
|
const basicBackupPath = path.join(dir, `${name}_bk${ext}`);
|
|
239
|
-
|
|
240
|
+
|
|
240
241
|
// Si no existe, usar el nombre básico
|
|
241
242
|
if (!fs.existsSync(basicBackupPath)) {
|
|
242
243
|
return basicBackupPath;
|
|
@@ -245,12 +246,12 @@ class SiesaBmadInstaller {
|
|
|
245
246
|
// Si ya existe _bk, crear versión con timestamp
|
|
246
247
|
const now = new Date();
|
|
247
248
|
const timestamp = now.getFullYear().toString() +
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
249
|
+
(now.getMonth() + 1).toString().padStart(2, '0') +
|
|
250
|
+
now.getDate().toString().padStart(2, '0') + '_' +
|
|
251
|
+
now.getHours().toString().padStart(2, '0') +
|
|
252
|
+
now.getMinutes().toString().padStart(2, '0') +
|
|
253
|
+
now.getSeconds().toString().padStart(2, '0');
|
|
254
|
+
|
|
254
255
|
return path.join(dir, `${name}_bk_${timestamp}${ext}`);
|
|
255
256
|
}
|
|
256
257
|
|
|
@@ -271,7 +272,7 @@ class SiesaBmadInstaller {
|
|
|
271
272
|
async copyWithBackupPreservation(sourcePath, targetPath) {
|
|
272
273
|
// Obtener todos los archivos backup existentes
|
|
273
274
|
const backupFiles = await this.findBackupFiles(targetPath);
|
|
274
|
-
|
|
275
|
+
|
|
275
276
|
// Copiar la carpeta completa sobrescribiendo
|
|
276
277
|
await fs.copy(sourcePath, targetPath, {
|
|
277
278
|
overwrite: true,
|
|
@@ -282,7 +283,7 @@ class SiesaBmadInstaller {
|
|
|
282
283
|
for (const backupFile of backupFiles) {
|
|
283
284
|
const backupSourcePath = backupFile.tempPath;
|
|
284
285
|
const backupTargetPath = backupFile.originalPath;
|
|
285
|
-
|
|
286
|
+
|
|
286
287
|
try {
|
|
287
288
|
await fs.copy(backupSourcePath, backupTargetPath);
|
|
288
289
|
// Limpiar archivo temporal
|
|
@@ -307,10 +308,10 @@ class SiesaBmadInstaller {
|
|
|
307
308
|
if (fileName.includes('_bk')) {
|
|
308
309
|
const tempPath = path.join(require('os').tmpdir(), `backup_${Date.now()}_${fileName}`);
|
|
309
310
|
const relativePath = path.relative(targetPath, filePath);
|
|
310
|
-
|
|
311
|
+
|
|
311
312
|
// Crear copia temporal del backup
|
|
312
313
|
await fs.copy(filePath, tempPath);
|
|
313
|
-
|
|
314
|
+
|
|
314
315
|
backupFiles.push({
|
|
315
316
|
originalPath: filePath,
|
|
316
317
|
tempPath: tempPath,
|
package/kiro/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Kiro Configuration
|
|
2
|
+
|
|
3
|
+
Esta carpeta contiene las configuraciones y specs para Kiro IDE.
|
|
4
|
+
|
|
5
|
+
## Estructura
|
|
6
|
+
|
|
7
|
+
- **specs/** - Especificaciones de features (requirements, design, tasks)
|
|
8
|
+
- **steering/** - Reglas y contexto adicional para el agente
|
|
9
|
+
- **settings/** - Configuraciones de Kiro (MCP, etc.)
|
|
10
|
+
|
|
11
|
+
## Uso
|
|
12
|
+
|
|
13
|
+
Las specs siguen el workflow: Requirements → Design → Tasks → Implementation
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
inclusion: always
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Agent Detection System
|
|
6
|
+
|
|
7
|
+
When the user types a short command starting with "as", detect and activate the corresponding agent from bmad-core/agents/.
|
|
8
|
+
|
|
9
|
+
## Agent Command Mapping
|
|
10
|
+
|
|
11
|
+
| Command | Agent File | Agent Name | Role |
|
|
12
|
+
|---------|-----------|------------|------|
|
|
13
|
+
| `as dev` | bmad-core/agents/dev.md | James | Full Stack Developer |
|
|
14
|
+
| `as analyst` | bmad-core/agents/analyst.md | Mary | Business Analyst |
|
|
15
|
+
| `as architect` | bmad-core/agents/architect.md | - | Software Architect |
|
|
16
|
+
| `as backend` | bmad-core/agents/backend-agent.md | - | Backend Developer |
|
|
17
|
+
| `as frontend` | bmad-core/agents/frontend-agent.md | - | Frontend Developer |
|
|
18
|
+
| `as pm` | bmad-core/agents/pm.md | - | Project Manager |
|
|
19
|
+
| `as po` | bmad-core/agents/po.md | - | Product Owner |
|
|
20
|
+
| `as qa` | bmad-core/agents/qa.md | Quinn | Test Architect |
|
|
21
|
+
| `as sm` | bmad-core/agents/sm.md | - | Scrum Master |
|
|
22
|
+
| `as ux` | bmad-core/agents/ux-expert.md | - | UX Expert |
|
|
23
|
+
| `as master` | bmad-core/agents/bmad-master.md | - | BMad Master |
|
|
24
|
+
| `as orchestrator` | bmad-core/agents/bmad-orchestrator.md | - | BMad Orchestrator |
|
|
25
|
+
|
|
26
|
+
## Detection Rules
|
|
27
|
+
|
|
28
|
+
1. When user input matches pattern `as {agent_id}`, load the corresponding agent file
|
|
29
|
+
2. Read the ENTIRE agent file to understand the complete persona
|
|
30
|
+
3. Follow the activation-instructions in the YAML block exactly
|
|
31
|
+
4. Load bmad-core/core-config.yaml as specified in activation instructions
|
|
32
|
+
5. Adopt the persona and execute the greeting + *help command
|
|
33
|
+
6. Stay in character until user types the agent's `*exit` command
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
- User types: `as dev` → Load bmad-core/agents/dev.md → Become James the Developer
|
|
38
|
+
- User types: `as qa` → Load bmad-core/agents/qa.md → Become Quinn the Test Architect
|
|
39
|
+
- User types: `as analyst` → Load bmad-core/agents/analyst.md → Become Mary the Business Analyst
|
|
40
|
+
|
|
41
|
+
## Important Notes
|
|
42
|
+
|
|
43
|
+
- Each agent file is self-contained with complete configuration in YAML
|
|
44
|
+
- DO NOT load external agent files during activation
|
|
45
|
+
- ONLY load dependency files when user requests specific command execution
|
|
46
|
+
- The agent.customization field ALWAYS takes precedence over conflicting instructions
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "siesa-agents",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.24-dev.0",
|
|
4
4
|
"description": "Paquete para instalar y configurar agentes SIESA en tu proyecto",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"vscode/**/*",
|
|
25
25
|
"github/**/*",
|
|
26
26
|
"claude/**/*",
|
|
27
|
+
"kiro/**/*",
|
|
27
28
|
"bin/**/*",
|
|
28
29
|
"resources/**/*",
|
|
29
30
|
"README.md"
|