agent-mp 0.5.17 → 0.5.18
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/dist/core/engine.js +47 -14
- package/package.json +1 -1
package/dist/core/engine.js
CHANGED
|
@@ -241,6 +241,8 @@ async function walkForKeyFiles(root) {
|
|
|
241
241
|
const ENTRY_REGEX = /Application\.(java|kt)$/;
|
|
242
242
|
const CTRL_REGEX = /(controller|router|routes|handler|endpoint|resource)/i;
|
|
243
243
|
const SCHEMA_REGEX = /(schema|\.entity|\.model|\.dto|models?\.|entities?\.)/i;
|
|
244
|
+
// Java packages that contain domain/entity classes even when filename alone doesn't signal it
|
|
245
|
+
const JAVA_DOMAIN_DIR_REGEX = /[\/\\](domain|entity|entities|model|models)[\/\\]/i;
|
|
244
246
|
async function walk(dir, depth) {
|
|
245
247
|
if (depth > 6)
|
|
246
248
|
return;
|
|
@@ -276,7 +278,8 @@ async function walkForKeyFiles(root) {
|
|
|
276
278
|
if (CTRL_REGEX.test(e.name) && result.controllers.length < 5) {
|
|
277
279
|
result.controllers.push(p);
|
|
278
280
|
}
|
|
279
|
-
|
|
281
|
+
const isSchema = SCHEMA_REGEX.test(e.name) || JAVA_DOMAIN_DIR_REGEX.test(p);
|
|
282
|
+
if (isSchema && result.schemas.length < 5) {
|
|
280
283
|
result.schemas.push(p);
|
|
281
284
|
}
|
|
282
285
|
}
|
|
@@ -1155,7 +1158,7 @@ INSTRUCCIONES:
|
|
|
1155
1158
|
compSection.push(`### ENTRY POINT: ${rel}\n\`\`\`\n${content}\n\`\`\``);
|
|
1156
1159
|
}
|
|
1157
1160
|
}
|
|
1158
|
-
const ctrls = found.controllers.slice(0,
|
|
1161
|
+
const ctrls = found.controllers.slice(0, 5);
|
|
1159
1162
|
for (const ctrl of ctrls) {
|
|
1160
1163
|
const content = await readFileSafe(ctrl, MAX_CTRL);
|
|
1161
1164
|
if (content) {
|
|
@@ -1163,7 +1166,7 @@ INSTRUCCIONES:
|
|
|
1163
1166
|
compSection.push(`### CONTROLLER/ROUTER: ${rel}\n\`\`\`\n${content}\n\`\`\``);
|
|
1164
1167
|
}
|
|
1165
1168
|
}
|
|
1166
|
-
const schemas = found.schemas.slice(0,
|
|
1169
|
+
const schemas = found.schemas.slice(0, 4);
|
|
1167
1170
|
for (const sch of schemas) {
|
|
1168
1171
|
const content = await readFileSafe(sch, MAX_SCHEMA);
|
|
1169
1172
|
if (content) {
|
|
@@ -1273,11 +1276,27 @@ El engine YA leyo por vos los archivos clave de cada componente y te los pasa ar
|
|
|
1273
1276
|
- Del MANIFEST: nombre, version, framework, dependencias clave con sus versiones, scripts, entry point
|
|
1274
1277
|
- Del ENTRY POINT: puerto real, middlewares, modulos cargados
|
|
1275
1278
|
- De los CONFIG/ENV: variables reales y su proposito
|
|
1276
|
-
- De los CONTROLLER/ROUTER: endpoints REALES (metodo, ruta, parametros)
|
|
1277
|
-
- De los SCHEMA/MODEL: shape real de los datos
|
|
1279
|
+
- De los CONTROLLER/ROUTER: endpoints REALES (metodo, ruta, parametros, anotaciones como @GetMapping/@PostMapping/router.get)
|
|
1280
|
+
- De los SCHEMA/MODEL/DOMAIN: shape real de los datos (campos, tipos, anotaciones @Column/@Entity)
|
|
1278
1281
|
3. Identificar relaciones REALES entre componentes (URLs/hosts de otros servicios en .env, imports cross-component, conexiones a BBDD).
|
|
1279
1282
|
4. Generar la documentacion en los 3 niveles, en formato markdown, dentro de los bloques === ... ===.
|
|
1280
1283
|
|
|
1284
|
+
REGLA CRITICA PARA MODULOS (NIVEL 2):
|
|
1285
|
+
- Los modulos SON LAS FEATURES DEL NEGOCIO, NO las capas tecnicas.
|
|
1286
|
+
- MAL: modulos llamados "web-api", "security", "data-access" — eso es hablar de capas, no de negocio
|
|
1287
|
+
- BIEN: modulos llamados "clients", "sales", "products", "auth", "orders" — eso es hablar de features
|
|
1288
|
+
- Para identificar los modulos reales, MIRÁ los CONTROLLER/ROUTER pre-leidos:
|
|
1289
|
+
* Si el controller se llama ClientController.java → el modulo se llama "clients"
|
|
1290
|
+
* Si se llama SaleController.java → modulo "sales"
|
|
1291
|
+
* Si se llama AuthController.ts → modulo "auth"
|
|
1292
|
+
* El nombre del modulo = lo que maneja ese controller, no su capa
|
|
1293
|
+
- "Archivos clave" en cada modulo DEBE listar los archivos FUENTE REALES que leiste (los .java, .ts, .py, etc.),
|
|
1294
|
+
NO solo el manifest (pom.xml / package.json). Ejemplo correcto:
|
|
1295
|
+
| Archivo | Rol |
|
|
1296
|
+
| src/main/java/.../ClientController.java | Endpoints REST /clients |
|
|
1297
|
+
| src/main/java/.../Client.java | Entidad JPA (tabla CLIENTS) |
|
|
1298
|
+
| src/main/java/.../ClientRepository.java | Acceso a SQL Server |
|
|
1299
|
+
|
|
1281
1300
|
NO inventes datos. Si un componente no tiene una de esas piezas en los archivos leidos, simplemente omiti esa seccion en su documentacion.
|
|
1282
1301
|
|
|
1283
1302
|
================================================================
|
|
@@ -1368,15 +1387,24 @@ Secciones obligatorias:
|
|
|
1368
1387
|
- **Health check:** GET /health (si existe)
|
|
1369
1388
|
|
|
1370
1389
|
## Estructura interna (arbol real)
|
|
1390
|
+
Listar DIRECTORIOS clave + los archivos que leiste (los CONTROLLER/ROUTER y SCHEMA/MODEL del prefetch).
|
|
1371
1391
|
\`\`\`
|
|
1372
1392
|
src/
|
|
1373
|
-
├── main.ts
|
|
1374
|
-
├── auth/
|
|
1375
|
-
├──
|
|
1393
|
+
├── main.ts # entry point, configura CORS y swagger
|
|
1394
|
+
├── auth/
|
|
1395
|
+
│ ├── auth.controller.ts # endpoints /auth/login, /auth/refresh
|
|
1396
|
+
│ └── auth.service.ts # logica de validacion JWT
|
|
1397
|
+
├── leads/
|
|
1398
|
+
│ ├── leads.controller.ts # endpoints /leads
|
|
1399
|
+
│ └── lead.schema.ts # modelo Lead { name, email, status }
|
|
1376
1400
|
└── ...
|
|
1377
1401
|
\`\`\`
|
|
1402
|
+
Para Java, usar el arbol de packages: src/main/java/.../controller/, .../domain/, .../service/, etc.
|
|
1403
|
+
Si no se leyo el codigo fuente, mencionar solo los directorios visibles en la estructura de archivos.
|
|
1378
1404
|
|
|
1379
1405
|
## Modulos internos
|
|
1406
|
+
IMPORTANTE: nombrar cada modulo por su FEATURE (clients, sales, products), no por su capa (web, data, service).
|
|
1407
|
+
Los modulos surgen de los controllers que se leyeron: un controller → un modulo.
|
|
1380
1408
|
| Modulo | Proposito (negocio) | Doc tecnica |
|
|
1381
1409
|
|--------|---------------------|-------------|
|
|
1382
1410
|
| auth | Login y validacion de tokens | modules/auth.md |
|
|
@@ -1387,7 +1415,7 @@ src/
|
|
|
1387
1415
|
|--------|------|--------|----------------------------|
|
|
1388
1416
|
| GET | /leads | leads | Lista negocios filtrables |
|
|
1389
1417
|
| GET | /leads/:id | leads | Detalle de un negocio |
|
|
1390
|
-
(SOLO endpoints reales extraidos de los controllers)
|
|
1418
|
+
(SOLO endpoints reales extraidos de los controllers — metodo HTTP, ruta, y descripcion en 1 linea)
|
|
1391
1419
|
|
|
1392
1420
|
## Variables de entorno
|
|
1393
1421
|
| Variable | Default | Proposito |
|
|
@@ -1448,10 +1476,15 @@ Escenarios paso a paso. Ejemplo:
|
|
|
1448
1476
|
- Excepciones: ...
|
|
1449
1477
|
|
|
1450
1478
|
## Archivos clave
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
|
1454
|
-
|
|
1479
|
+
OBLIGATORIO: listar los archivos FUENTE reales que encontraste en los pre-fetched data.
|
|
1480
|
+
NO poner solo el manifest. Si no hay fuentes leidas para este modulo, omitir la seccion.
|
|
1481
|
+
| Archivo (ruta relativa al componente) | Rol |
|
|
1482
|
+
|---------------------------------------|-----|
|
|
1483
|
+
| src/main/java/.../ClientController.java | Expone endpoints REST /clients |
|
|
1484
|
+
| src/main/java/.../Client.java | Entidad JPA mapeada a tabla CLIENTS |
|
|
1485
|
+
| src/main/java/.../ClientRepository.java | Acceso a datos via JPA |
|
|
1486
|
+
| src/clients/clients.controller.ts | Endpoints /clients (Node.js) |
|
|
1487
|
+
| src/clients/clients.service.ts | Logica de negocio (Node.js) |
|
|
1455
1488
|
|
|
1456
1489
|
## Dependencias
|
|
1457
1490
|
- **Internas (mismo componente):** auth, common
|
|
@@ -1464,7 +1497,7 @@ CALIBRACION DE DETALLE
|
|
|
1464
1497
|
- NIVEL 0: 50-150 lineas (no menos, no mas)
|
|
1465
1498
|
- NIVEL 1: 80-200 lineas por componente
|
|
1466
1499
|
- NIVEL 2: 40-120 lineas por modulo
|
|
1467
|
-
- Si te queda corto → leiste pocos archivos,
|
|
1500
|
+
- Si te queda corto → leiste pocos archivos, no agregues relleno — simplemente genera con lo que hay
|
|
1468
1501
|
- Si te queda largo → estas repitiendo o agregando relleno, recorta
|
|
1469
1502
|
|
|
1470
1503
|
================================================================
|