agent-mp 0.5.10 → 0.5.12

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 (2) hide show
  1. package/dist/core/engine.js +293 -103
  2. package/package.json +1 -1
@@ -1021,124 +1021,271 @@ DIRECTORIO_TRABAJO: ${this.projectDir}
1021
1021
  PROYECTO: ${this.config.project}
1022
1022
  STACK: ${this.config.stack}
1023
1023
 
1024
- ESTRUCTURA DE ARCHIVOS DEL PROYECTO (excluyendo .agent, node_modules, .git, dist, __pycache__, .venv, target, build):
1024
+ ESTRUCTURA DE ARCHIVOS (excluye .agent, node_modules, .git, dist, __pycache__, .venv, target, build):
1025
1025
  ${fsSnapshot}
1026
1026
 
1027
- ${existingMainArch ? `=== DOCUMENTACION EXISTENTE: architecture.md (principal) ===\n${existingMainArch.slice(0, 2000)}\n` : ''}
1028
- ${existingComponentDocs ? `=== DOCUMENTACION EXISTENTE por componente ===\n${existingComponentDocs.slice(0, 3000)}\n` : ''}
1027
+ ${existingMainArch ? `=== DOC EXISTENTE: architecture.md (principal) ===\n${existingMainArch.slice(0, 2000)}\n` : ''}
1028
+ ${existingComponentDocs ? `=== DOC EXISTENTE por componente ===\n${existingComponentDocs.slice(0, 3000)}\n` : ''}
1029
1029
 
1030
- INSTRUCCIONES:
1031
- Analiza la estructura de archivos y genera documentación ESCALONADA en DOS NIVELES:
1030
+ ================================================================
1031
+ OBJETIVO
1032
+ ================================================================
1033
+ Generar documentacion ESCALONADA en 3 niveles, util TANTO para personas funcionales (PM, negocio) como tecnicas (devs).
1034
+ Detallada pero NO excesiva. Concreta, con datos REALES leidos de los archivos. Cero especulaciones.
1032
1035
 
1033
- NIVEL 1: architecture.md (raiz de .agent/context/)
1034
- - Lista TODOS los directorios al nivel del proyecto
1035
- - Indica si son independientes o conectados entre si (ej: front consume back, dos APIs se consumen entre si)
1036
- - Prerequisitos generales para levantar el proyecto
1037
- - Comandos globales de desarrollo
1036
+ ================================================================
1037
+ REGLA DE ORO PROHIBIDO INVENTAR
1038
+ ================================================================
1039
+ NO uses jamas: "Inferido", "Probablemente", "Posiblemente", "Asumido", "(supuesto)", "(quizas)", "parece ser".
1040
+ Si no podes verificar un dato leyendo un archivo concreto → OMITELO. Es mejor una doc corta y veraz que una larga llena de suposiciones.
1041
+ Cada puerto, version, endpoint, env var, schema o ruta que aparezca en la doc DEBE haber sido leido de un archivo real.
1038
1042
 
1039
- NIVEL 2: Para CADA directorio que sea un servicio/API/app/funcionalidad:
1040
- - Crea subcarpeta: [nombre-del-directorio]/architecture.md explica como se estructura internamente
1041
- - Crea subcarpeta: [nombre-del-directorio]/modules/[modulo].md → detalle de cada modulo interno
1042
- - Si un directorio es trivial (solo scripts, docs, configs), NO crees subcarpeta, solo mencionarlo en el architecture.md principal
1043
+ ================================================================
1044
+ WORKFLOW QUE TENES QUE EJECUTAR (usa tus tools de read_file/grep_search/list_directory)
1045
+ ================================================================
1046
+ 1. Lista DIRECTORIO_TRABAJO. Identifica los componentes (apps/services/libs). Descarta lo trivial (solo configs/docs/scripts).
1047
+ 2. Para CADA componente no trivial, LEE COMO MINIMO:
1048
+ a. Manifest del proyecto: package.json | requirements.txt | pyproject.toml | pom.xml | build.gradle | Cargo.toml | go.mod
1049
+ → de ahi sacas: nombre, version, framework, dependencias clave con sus versiones, scripts/tasks, entry point
1050
+ b. Entry point real: src/main.ts | index.js | app.py | Application.java | cmd/main.go (segun stack)
1051
+ → de ahi sacas: puerto, middlewares, modulos cargados, configuracion inicial
1052
+ c. Archivo de variables de entorno: .env | .env.example | application.yml | config.* | settings.py
1053
+ → de ahi sacas: variables reales con su proposito
1054
+ d. Al menos 2-3 controladores/routers/handlers principales
1055
+ → de ahi extraes endpoints REALES (metodo, ruta, parametros)
1056
+ e. Al menos 2-3 modelos/schemas/entities principales
1057
+ → de ahi extraes el shape de datos
1058
+ f. README.md del componente si existe
1059
+ 3. Mapea RELACIONES REALES entre componentes (no asumas):
1060
+ - Buscando URLs/hosts de otros servicios en .env
1061
+ - Buscando imports cross-component
1062
+ - Buscando cadenas de conexion a BBDD/colas/cache
1063
+ 4. Recien con esa informacion concreta, genera los archivos de documentacion.
1043
1064
 
1044
- FORMATO EXACTO de los archivos a devolver (separados por marcadores):
1065
+ ================================================================
1066
+ LENGUAJE DUAL (regla critica)
1067
+ ================================================================
1068
+ Cada seccion abre con UNA linea en lenguaje simple (que entienda un PM/negocio), DESPUES viene el detalle tecnico.
1069
+ - MAL: "El microservicio orquesta la persistencia mediante un repositorio."
1070
+ - BIEN: "Guarda la informacion del usuario en la base. Internamente usa un repositorio que abstrae la conexion a MongoDB."
1045
1071
 
1046
- === architecture.md ===
1047
- # ${this.config.project} Architecture Overview
1072
+ ================================================================
1073
+ ESTRUCTURA DE LOS 3 NIVELES
1074
+ ================================================================
1075
+
1076
+ ────────────────────────────────────────────────────────────────
1077
+ NIVEL 0 — architecture.md (raiz de .agent/context/)
1078
+ Indice global. Objetivo: 50-150 lineas. Concreto.
1079
+ ────────────────────────────────────────────────────────────────
1080
+ Secciones obligatorias:
1048
1081
 
1049
- Descripcion general del proyecto.
1082
+ # ${this.config.project} Arquitectura Global (NIVEL 0)
1050
1083
 
1051
- ## Componentes del Proyecto
1084
+ > Indice de servicios y relaciones. Lectura escalonada:
1085
+ > NIVEL 0: este archivo
1086
+ > NIVEL 1: .agent/context/[componente]/architecture.md
1087
+ > NIVEL 2: .agent/context/[componente]/modules/[modulo].md
1052
1088
 
1053
- | Componente | Tipo | Stack | Proposito | Entry Point |
1054
- |------------|------|-------|-----------|-------------|
1055
- | datamart-data-access-api | API Backend | NestJS | Acceso a datos | src/main.ts |
1056
- | nexus-core-api | API Backend | NestJS | Core business logic | src/main.ts |
1089
+ ## 1. Overview funcional
1090
+ 2-4 lineas en lenguaje simple: que es el sistema, para quien sirve, que problema resuelve.
1057
1091
 
1058
- ## Como se Relacionan los Componentes
1092
+ ## 2. Componentes del proyecto
1093
+ | Componente | Tipo | Stack + version | Puerto | Proposito (negocio) | Entry point |
1094
+ |------------|------|-----------------|--------|---------------------|-------------|
1095
+ (una fila por componente, con datos REALES)
1059
1096
 
1060
- Explica las conexiones entre componentes:
1061
- - Si un front consume un back, explicar como
1062
- - Si dos APIs se consumen entre sí (fetch, HTTP), explicar el flujo
1063
- - Si son independientes, indicar que cada uno funciona por su cuenta
1097
+ ## 3. Relaciones entre componentes
1098
+ | Origen | Destino | Tipo (HTTP / Import / DB / Queue / CORS) | Proposito |
1099
+ |--------|---------|------------------------------------------|-----------|
1100
+ (una fila por cada relacion confirmada)
1064
1101
 
1065
- ### Diagrama de Flujo (texto)
1102
+ ## 4. Diagrama de arquitectura
1066
1103
  \`\`\`
1067
- [Frontend] --fetch--> [API 1] --HTTP--> [API 2]
1068
- [API 1] --> [Database]
1104
+ [Frontend Web] ──HTTP──> [API Auth :8081]
1105
+ │ │
1106
+ │ v
1107
+ └──HTTP──> [API Core :8080] ──> [MongoDB]
1069
1108
  \`\`\`
1070
1109
 
1071
- ## Prerequisitos Generales
1072
- - Node.js x.x, Python x.x, Docker, etc.
1073
- - Bases de datos, servicios externos
1110
+ ## 5. Flujos end-to-end principales (3-5)
1111
+ Mappings funcional → tecnico, paso a paso. Ejemplo:
1112
+ - **"Un usuario crea un pedido"**: WebApp → POST /orders (API Core) → valida JWT contra API Auth → guarda en MongoDB → devuelve 201 con el pedido.
1074
1113
 
1075
- ## Comandos de Desarrollo Globales
1114
+ ## 6. Prerequisitos para levantar el proyecto
1115
+ Versiones REALES leidas de los manifests (no rangos genericos).
1116
+
1117
+ ## 7. Comandos globales de desarrollo
1076
1118
  | Comando | Descripcion | Directorio |
1077
- |---------|-------------|------------|
1078
- | ... | ... | ... |
1079
1119
 
1080
- === [nombre]/architecture.md ===
1081
- # [nombre] — Arquitectura Interna
1120
+ ## 8. Decisiones de arquitectura globales (opcional, solo si hay)
1121
+
1122
+ ────────────────────────────────────────────────────────────────
1123
+ NIVEL 1 — [componente]/architecture.md
1124
+ Detalle del componente. Objetivo: 80-200 lineas. Crear UNO POR CADA componente NO trivial.
1125
+ ────────────────────────────────────────────────────────────────
1126
+ Secciones obligatorias:
1082
1127
 
1083
- Descripcion de este componente y su rol en el proyecto.
1128
+ # [componente] Arquitectura (NIVEL 1)
1084
1129
 
1085
- ## Estructura Interna
1130
+ ## Que hace
1131
+ 2-3 lineas en lenguaje simple, sin tecnicismos.
1132
+
1133
+ ## Casos de uso principales
1134
+ 3-6 bullets en formato negocio:
1135
+ - "Permite al usuario X..."
1136
+ - "El sistema usa este servicio para Y..."
1137
+
1138
+ ## Stack tecnico
1139
+ | Item | Valor |
1140
+ |------|-------|
1141
+ | Lenguaje | TypeScript 5.3 |
1142
+ | Framework | NestJS 11.0.1 |
1143
+ | ORM | Mongoose 9.3.3 |
1144
+ | Auth | Passport JWT |
1145
+ (datos reales del manifest)
1146
+
1147
+ ## Puerto y URLs
1148
+ - **Puerto:** 8085 (de PORT en .env)
1149
+ - **Swagger / docs:** http://localhost:8085/api/docs (si aplica)
1150
+ - **Health check:** GET /health (si existe)
1151
+
1152
+ ## Estructura interna (arbol real)
1086
1153
  \`\`\`
1087
1154
  src/
1088
- ├── main.ts # entry point
1089
- ├── config/ # configuracion
1090
- ├── controllers/ # endpoints
1091
- └── services/ # logica de negocio
1155
+ ├── main.ts # entry point, configura CORS y swagger
1156
+ ├── auth/ # autenticacion JWT
1157
+ ├── leads/ # gestion de leads
1158
+ └── ...
1092
1159
  \`\`\`
1093
1160
 
1094
- ## Modulos Internos
1095
- | Modulo | Archivo | Descripcion |
1096
- |--------|---------|-------------|
1097
- | config | modules/config.md | Configuracion |
1098
- | controller | modules/controller.md | Endpoints |
1161
+ ## Modulos internos
1162
+ | Modulo | Proposito (negocio) | Doc tecnica |
1163
+ |--------|---------------------|-------------|
1164
+ | auth | Login y validacion de tokens | modules/auth.md |
1165
+ | leads | Listado y consulta de negocios | modules/leads.md |
1166
+
1167
+ ## Endpoints principales
1168
+ | Metodo | Ruta | Modulo | Que hace (lenguaje simple) |
1169
+ |--------|------|--------|----------------------------|
1170
+ | GET | /leads | leads | Lista negocios filtrables |
1171
+ | GET | /leads/:id | leads | Detalle de un negocio |
1172
+ (SOLO endpoints reales extraidos de los controllers)
1099
1173
 
1100
- ## Como Levantar
1101
- - **Instalar deps:** comando
1102
- - **Servicios necesarios:** BD, redis, etc.
1103
- - **Variables de entorno:** listarlas con su proposito
1104
- - **Comando para iniciar:** \`...\`
1174
+ ## Variables de entorno
1175
+ | Variable | Default | Proposito |
1176
+ |----------|---------|-----------|
1177
+ | PORT | 8085 | Puerto del servicio |
1178
+ | MONGODB_URI | mongodb://... | Conexion principal |
1105
1179
 
1106
- ## Comandos Disponibles
1180
+ ## Integraciones con otros servicios / sistemas
1181
+ | Servicio externo | Tipo (HTTP/DB/Queue) | Proposito |
1182
+
1183
+ ## Como levantar
1184
+ - **Instalar deps:** \`npm install\`
1185
+ - **Servicios necesarios:** MongoDB corriendo, security-api accesible
1186
+ - **Comando para iniciar:** \`npm run start:dev\`
1187
+
1188
+ ## Comandos disponibles
1107
1189
  | Comando | Que hace |
1108
- |---------|----------|
1109
- | ... | ... |
1110
1190
 
1111
- ## Comunicacion con Otros Componentes
1112
- - A que APIs llama o que APIs lo llaman
1113
- - Protocolo (fetch, HTTP, gRPC, etc.)
1191
+ ## Decisiones tecnicas relevantes
1192
+ (solo si hay decisiones notables; si no, omitir esta seccion)
1193
+
1194
+ ────────────────────────────────────────────────────────────────
1195
+ NIVEL 2 — [componente]/modules/[modulo].md
1196
+ Detalle de un modulo interno. Objetivo: 40-120 lineas. Crear UNO POR cada modulo significativo.
1197
+ ────────────────────────────────────────────────────────────────
1198
+ Secciones obligatorias:
1199
+
1200
+ # Modulo: [nombre] — [componente]
1201
+
1202
+ ## Funcion (lenguaje simple)
1203
+ 1-2 lineas: "Permite al usuario gestionar X" / "El sistema usa este modulo para Y".
1114
1204
 
1115
- === [nombre]/modules/[modulo].md ===
1116
- # [nombre-del-modulo]
1205
+ ## Funcion (tecnica)
1206
+ 1-2 lineas: como esta implementado a alto nivel.
1117
1207
 
1118
- ## Funcion
1119
- Que hace este modulo especifico.
1208
+ ## Flujos / casos de uso (1-3)
1209
+ Escenarios paso a paso. Ejemplo:
1210
+ - **Crear un pedido:** Cliente → POST /orders → middleware valida JWT → service.create() → guarda en DB → responde 201
1211
+
1212
+ ## Endpoints / interfaces publicas (si aplica)
1213
+ | Metodo | Ruta | Body | Respuesta |
1214
+ |--------|------|------|-----------|
1215
+
1216
+ ## Modelos / schemas relevantes
1217
+ \`\`\`typescript
1218
+ // shape REAL extraido del archivo de schema/model
1219
+ {
1220
+ _id: ObjectId,
1221
+ name: string,
1222
+ createdAt: Date,
1223
+ ...
1224
+ }
1225
+ \`\`\`
1120
1226
 
1121
- ## Archivo Principal
1122
- - **Ruta:** path relativo
1123
- - **Funciones/Clases principales**
1227
+ ## Reglas de negocio
1228
+ - Validaciones: ...
1229
+ - Condiciones especiales: ...
1230
+ - Excepciones: ...
1124
1231
 
1125
- ## Endpoints / Interfaces Publicas
1126
- Si es un controller/router:
1127
- - \`GET /ruta\` — descripcion
1128
- - \`POST /ruta\` — descripcion
1232
+ ## Archivos clave
1233
+ | Archivo | Rol |
1234
+ |---------|-----|
1235
+ | src/leads/leads.controller.ts | Endpoints /leads |
1236
+ | src/leads/leads.service.ts | Logica de negocio |
1129
1237
 
1130
1238
  ## Dependencias
1131
- - **Internas:** modulos del mismo componente
1132
- - **Externas:** librerias de terceros
1133
-
1134
- REGLAS:
1135
- - Devuelve UNICAMENTE los archivos separados por === path/file.md ===
1136
- - NO incluyas texto explicativo fuera de los archivos
1137
- - El archivo principal SIEMPRE es === architecture.md ===
1138
- - Para cada componente con modulos internos: === [nombre]/architecture.md === + === [nombre]/modules/[modulo].md ===
1139
- - Para componentes triviales (scripts, docs): solo mencionarlos en architecture.md principal
1140
- - Documenta TODOS los directorios al nivel de DIRECTORIO_TRABAJO (excluyendo .agent)
1141
- - Si hay documentacion existente, actualizala con los cambios detectados`;
1239
+ - **Internas (mismo componente):** auth, common
1240
+ - **Externas:** mongoose, class-validator
1241
+ - **Cross-component:** llama a security-api via HTTP para validar JWT
1242
+
1243
+ ================================================================
1244
+ CALIBRACION DE DETALLE
1245
+ ================================================================
1246
+ - NIVEL 0: 50-150 lineas (no menos, no mas)
1247
+ - NIVEL 1: 80-200 lineas por componente
1248
+ - NIVEL 2: 40-120 lineas por modulo
1249
+ - Si te queda corto leiste pocos archivos, lee mas
1250
+ - Si te queda largo → estas repitiendo o agregando relleno, recorta
1251
+
1252
+ ================================================================
1253
+ QUE NO HACER
1254
+ ================================================================
1255
+ - NO usar "Inferido", "Probablemente", "(asumido)", "(quizas)", "parece"
1256
+ - NO repetir lo mismo entre niveles sin agregar valor (cada nivel zoomea mas)
1257
+ - NO dejar tablas vacias ni con placeholders tipo "..."
1258
+ - NO mezclar lenguaje tecnico puro: SIEMPRE empezar funcional, despues tecnico
1259
+ - NO documentar componentes triviales (scripts, docs, configs sueltas) con su propia carpeta — mencionalos en NIVEL 0 y listo
1260
+ - NO inventar endpoints, env vars, puertos o schemas que no leiste
1261
+
1262
+ ================================================================
1263
+ FORMATO DE SALIDA — OBLIGATORIO
1264
+ ================================================================
1265
+ Devolve UNICAMENTE bloques de archivos separados por marcadores ===. Nada de explicaciones extra fuera de los bloques.
1266
+
1267
+ === architecture.md ===
1268
+ [contenido completo del NIVEL 0]
1269
+
1270
+ === nombre-componente-1/architecture.md ===
1271
+ [contenido completo del NIVEL 1 del componente 1]
1272
+
1273
+ === nombre-componente-1/modules/auth.md ===
1274
+ [contenido completo del NIVEL 2 del modulo auth]
1275
+
1276
+ === nombre-componente-1/modules/leads.md ===
1277
+ [contenido completo del NIVEL 2 del modulo leads]
1278
+
1279
+ === nombre-componente-2/architecture.md ===
1280
+ ...
1281
+
1282
+ REGLAS DE PATHS:
1283
+ - El archivo principal SIEMPRE es: === architecture.md ===
1284
+ - Por componente: === [nombre-componente]/architecture.md ===
1285
+ - Por modulo interno: === [nombre-componente]/modules/[nombre-modulo].md ===
1286
+ - USA SIEMPRE rutas RELATIVAS, jamas absolutas
1287
+ - Documenta TODOS los componentes no triviales del DIRECTORIO_TRABAJO
1288
+ - Si existe documentacion previa, ACTUALIZALA preservando lo que sigue siendo valido y agregando lo nuevo`;
1142
1289
  const res = await this.runWithFallback('explorer', prompt, 'Exploracion');
1143
1290
  const text = extractCliText(res);
1144
1291
  // Parse sections separated by === path/file.md === markers
@@ -1158,20 +1305,32 @@ REGLAS:
1158
1305
  targetPath = mainArchPath;
1159
1306
  }
1160
1307
  else {
1161
- // Component doc: [component]/architecture.md or [component]/modules/[mod].md
1162
- // fileName could be: "datamart-data-access-api/architecture.md" or "datamart-data-access-api/modules/config.md"
1163
- const compMatch = fileName.match(/^(.+?)\/architecture\.md$/i);
1164
- const modMatch = fileName.match(/^(.+?)\/modules\/(.+\.md)$/i);
1165
- if (compMatch) {
1166
- targetPath = path.join(contextDir, compMatch[1], 'architecture.md');
1308
+ // CRITICAL: Extract only the relative path components, strip any absolute path prefix
1309
+ // fileName could be: "datamart-data-access-api/architecture.md"
1310
+ // or "/home/user/project/datamart-data-access-api/architecture.md" (BAD — must ignore prefix)
1311
+ // We only want the components relative to contextDir
1312
+ // Remove any leading absolute path by extracting the last meaningful path segments
1313
+ const cleanName = fileName.replace(/^.*[\/\\]/, ''); // strip any prefix
1314
+ // Check if it's a component architecture file: "component/architecture.md" or "component/modules/mod.md"
1315
+ const pathParts = fileName.split(/[\/\\]/).filter(Boolean);
1316
+ // Keep only the last 2-3 parts (component name + file)
1317
+ // e.g. ["/home", "user", "proj", "datamart", "architecture.md"] → ["datamart", "architecture.md"]
1318
+ // e.g. ["datamart-data-access-api", "architecture.md"] → same
1319
+ // e.g. ["datamart-data-access-api", "modules", "config.md"] → same
1320
+ let relPath;
1321
+ if (pathParts.length >= 3 && pathParts[pathParts.length - 2] === 'modules') {
1322
+ // component/modules/file.md
1323
+ relPath = path.join(pathParts[pathParts.length - 3], 'modules', pathParts[pathParts.length - 1]);
1167
1324
  }
1168
- else if (modMatch) {
1169
- targetPath = path.join(contextDir, modMatch[1], 'modules', modMatch[2]);
1325
+ else if (pathParts.length >= 2) {
1326
+ // component/file.md
1327
+ relPath = path.join(pathParts[pathParts.length - 2], pathParts[pathParts.length - 1]);
1170
1328
  }
1171
1329
  else {
1172
- // Fallback: treat as modules file in legacy modules/ dir
1173
- targetPath = path.join(contextDir, 'modules', fileName.replace(/.*\//, ''));
1330
+ // fallback
1331
+ relPath = path.join('modules', cleanName);
1174
1332
  }
1333
+ targetPath = path.join(contextDir, relPath);
1175
1334
  }
1176
1335
  await fs.mkdir(path.dirname(targetPath), { recursive: true });
1177
1336
  await writeFile(targetPath, content);
@@ -1217,16 +1376,47 @@ PROYECTO: ${this.config.project}
1217
1376
  ${existingArch ? `DOCUMENTACION EXISTENTE:\n${existingArch.slice(0, 3000)}\n` : 'Sin documentacion previa.\n'}
1218
1377
  CONTEXTO: ${context.slice(0, 2000)}
1219
1378
 
1220
- INSTRUCCIONES:
1221
- 1. Lista el directorio raiz e identifica todos los servicios/apps.
1222
- 2. Para cada uno: lee package.json/requirements.txt, explora src/, identifica entry point, rutas/endpoints, puerto.
1223
- 3. Identifica dependencias entre servicios.
1224
- 4. Crea/actualiza ${archPath} con tabla resumen y detalle por servicio.
1225
- 5. Crea/actualiza ${contextDir}/<servicio>/architecture.md para cada servicio.
1226
-
1227
- REGLAS:
1228
- - Escribe UNICAMENTE los archivos indicados: ${archPath} y ${contextDir}/<servicio>/architecture.md
1229
- - NO crees archivos adicionales ni con otros nombres en ningun directorio`);
1379
+ OBJETIVO
1380
+ Generar documentacion ESCALONADA en 3 niveles (global / componente / modulo), util para perfiles funcionales y tecnicos. Detallada pero concreta. Cero suposiciones.
1381
+
1382
+ REGLA DE ORO PROHIBIDO ESPECULAR
1383
+ NO uses "Inferido", "Probablemente", "Asumido", "(quizas)", "parece". Si no podes verificar un dato leyendo un archivo, OMITELO. Cada puerto, version, endpoint, env var y schema debe haber sido leido de un archivo real.
1384
+
1385
+ WORKFLOW (usa tus tools)
1386
+ 1. Lista DIRECTORIO_TRABAJO y detecta los componentes no triviales.
1387
+ 2. Para cada componente, LEE como minimo:
1388
+ - Manifest (package.json | requirements.txt | pom.xml | build.gradle | go.mod | Cargo.toml)
1389
+ - Entry point (main.ts | index.js | app.py | Application.java | cmd/main.go)
1390
+ - .env / .env.example / application.yml / settings.py
1391
+ - 2-3 controladores/routers principales (para endpoints reales)
1392
+ - 2-3 schemas/models principales (para shapes reales)
1393
+ 3. Mapea relaciones reales (URLs en .env, imports cross-component, conexiones a DB/colas).
1394
+
1395
+ LENGUAJE DUAL
1396
+ Cada seccion abre con UNA linea simple (que entienda un PM). Despues, el detalle tecnico.
1397
+ - MAL: "El microservicio orquesta la persistencia mediante un repositorio."
1398
+ - BIEN: "Guarda la informacion del usuario. Internamente usa un repositorio que abstrae MongoDB."
1399
+
1400
+ NIVEL 0 — ${archPath} (50-150 lineas)
1401
+ Secciones: Overview funcional · Tabla de componentes (con stack+version, puerto, proposito, entry point) · Tabla de relaciones (origen, destino, tipo, proposito) · Diagrama ASCII · 3-5 flujos end-to-end (mapping funcional → tecnico) · Prerequisitos · Comandos globales.
1402
+
1403
+ NIVEL 1 — ${contextDir}/<componente>/architecture.md (80-200 lineas, uno por componente)
1404
+ Secciones: Que hace (simple) · Casos de uso (3-6 bullets en formato negocio) · Stack tecnico (tabla con versiones reales) · Puerto y URLs · Estructura interna (arbol real) · Tabla de modulos · Tabla de endpoints reales · Tabla de variables de entorno · Integraciones · Como levantar · Comandos.
1405
+
1406
+ NIVEL 2 — ${contextDir}/<componente>/modules/<modulo>.md (40-120 lineas, uno por modulo significativo)
1407
+ Secciones: Funcion (simple) · Funcion (tecnica) · Flujos / casos de uso paso a paso · Endpoints / interfaces · Schemas reales en codigo · Reglas de negocio · Archivos clave · Dependencias internas/externas/cross-component.
1408
+
1409
+ CALIBRACION
1410
+ - NIVEL 0: 50-150 lineas. NIVEL 1: 80-200 por componente. NIVEL 2: 40-120 por modulo.
1411
+ - Si te queda corto, leiste pocos archivos. Si te queda largo, recorta el relleno.
1412
+ - Componentes triviales (solo scripts/docs): mencionalos en NIVEL 0 y NO les crees subcarpeta.
1413
+
1414
+ REGLAS DE ESCRITURA
1415
+ - Solo podes escribir archivos dentro de ${contextDir}/
1416
+ - NO crees archivos sueltos en la raiz de ${contextDir}/ (excepto architecture.md)
1417
+ - Por componente usa: ${contextDir}/<componente>/architecture.md
1418
+ - Por modulo usa: ${contextDir}/<componente>/modules/<modulo>.md
1419
+ - Si existe documentacion previa, ACTUALIZALA preservando lo valido`);
1230
1420
  let result;
1231
1421
  const sp = this._startSpinner(`agent-explorer ${role.model}`);
1232
1422
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-mp",
3
- "version": "0.5.10",
3
+ "version": "0.5.12",
4
4
  "description": "Deterministic multi-agent CLI orchestrator — plan, code, review",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",