apprecio-mcp-base 1.2.7 → 1.2.9

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/cli/README.md +135 -0
  2. package/cli/dist/generate-feature.js +68 -51
  3. package/cli/dist/generate-feature.js.map +1 -1
  4. package/cli/dist/generators/feature-generator.d.ts +1 -1
  5. package/cli/dist/generators/feature-generator.d.ts.map +1 -1
  6. package/cli/dist/generators/feature-generator.js +2 -1
  7. package/cli/dist/generators/feature-generator.js.map +1 -1
  8. package/cli/dist/generators/init-generator.d.ts.map +1 -1
  9. package/cli/dist/generators/init-generator.js +20 -19
  10. package/cli/dist/generators/init-generator.js.map +1 -1
  11. package/cli/dist/generators/main-updater.js.map +1 -1
  12. package/cli/dist/generators/router-generator.d.ts +1 -1
  13. package/cli/dist/generators/router-generator.d.ts.map +1 -1
  14. package/cli/dist/generators/router-generator.js +34 -37
  15. package/cli/dist/generators/router-generator.js.map +1 -1
  16. package/cli/dist/generators/service-generator.d.ts +1 -1
  17. package/cli/dist/generators/service-generator.d.ts.map +1 -1
  18. package/cli/dist/generators/service-generator.js +21 -33
  19. package/cli/dist/generators/service-generator.js.map +1 -1
  20. package/cli/dist/generators/tool-generator.d.ts +3 -0
  21. package/cli/dist/generators/tool-generator.d.ts.map +1 -0
  22. package/cli/dist/generators/tool-generator.js +88 -0
  23. package/cli/dist/generators/tool-generator.js.map +1 -0
  24. package/cli/dist/generators/validation-generator.d.ts +1 -1
  25. package/cli/dist/generators/validation-generator.d.ts.map +1 -1
  26. package/cli/dist/generators/validation-generator.js +7 -6
  27. package/cli/dist/generators/validation-generator.js.map +1 -1
  28. package/cli/dist/utils/constants.d.ts +18 -0
  29. package/cli/dist/utils/constants.d.ts.map +1 -0
  30. package/cli/dist/utils/constants.js +32 -0
  31. package/cli/dist/utils/constants.js.map +1 -0
  32. package/cli/dist/{types.d.ts → utils/types.d.ts} +23 -0
  33. package/cli/dist/utils/types.d.ts.map +1 -0
  34. package/cli/dist/utils/types.js.map +1 -0
  35. package/package.json +1 -1
  36. package/cli/dist/types.d.ts.map +0 -1
  37. package/cli/dist/types.js.map +0 -1
  38. /package/cli/dist/{types.js → utils/types.js} +0 -0
package/cli/README.md ADDED
@@ -0,0 +1,135 @@
1
+ # Apprecio MCP CLI 🚀
2
+
3
+ Herramienta de línea de comandos para automatizar la creación y gestión de servidores MCP (Model Context Protocol) bajo la arquitectura Apprecio.
4
+
5
+ ## 📋 Características
6
+
7
+ - **Scaffolding de Proyecto**: Crea nuevos servidores MCP con estructura lista para producción.
8
+ - **Generación de Features**: Crea módulos completos (Route + Service + Validation) con un solo comando.
9
+ - **Gestión de Tools**: Agrega nuevos tools a features existentes de forma interactiva.
10
+ - **Arquitectura Modular**: Sigue estrictamente los patrones de diseño de Apprecio (Separation of Concerns).
11
+
12
+ ## 🛠 Instalación
13
+
14
+ Si estás desarrollando el CLI localmente:
15
+
16
+ ```bash
17
+ # En la carpeta raíz del proyecto base
18
+ npm run build:cli
19
+ npm link
20
+ ```
21
+
22
+ ## 🚀 Comandos
23
+
24
+ ### 1. Inicializar Proyecto (`init`)
25
+
26
+ Crea un nuevo servidor MCP desde cero.
27
+
28
+ ```bash
29
+ mcp-generate init
30
+ ```
31
+ **Opciones interactivas**:
32
+ - Nombre y ruta del proyecto.
33
+ - Soporte para MongoDB (opcional).
34
+ - Configuración automática de variables de entorno (`.env`).
35
+
36
+ ### 2. Generar Feature (`feature`)
37
+
38
+ Genera un módulo vertical completo.
39
+
40
+ ```bash
41
+ mcp-generate feature
42
+ ```
43
+
44
+ **Flujo de Generación**:
45
+ ```mermaid
46
+ flowchart TD
47
+ A[Inicio: mcp-generate feature] --> B{Solicitar Datos}
48
+ B --> C[Nombre: featureName]
49
+ B --> D[Tipo de Servicio]
50
+ B --> E[Selección de Tools]
51
+
52
+ E --> F[Generador Principal]
53
+
54
+ subgraph Generación de Archivos
55
+ direction TB
56
+ F --> G[Validation Generator]
57
+ G --> |Crea Zod Schemas| H[feature.validation.ts]
58
+
59
+ F --> I[Service Generator]
60
+ I --> |Crea Clase Service| J[feature.service.ts]
61
+ H -.-> J
62
+
63
+ F --> K[Router Generator]
64
+ K --> |Registra Tools en MCP| L[feature.feature.ts]
65
+ H -.-> L
66
+ J -.-> L
67
+ end
68
+
69
+ L --> M[Main Updater]
70
+ M --> |Inyecta en main.ts| N[Registro Automático]
71
+ ```
72
+
73
+ ### 3. Agregar Tool (`tool`)
74
+
75
+ Agrega una funcionalidad específica a una feature existente.
76
+
77
+ ```bash
78
+ mcp-generate tool
79
+ ```
80
+
81
+ **Flujo de Creación**:
82
+ ```mermaid
83
+ sequenceDiagram
84
+ participant User
85
+ participant CLI
86
+ participant Router as Router File (.feature.ts)
87
+ participant Validation as Validation File (.validation.ts)
88
+ participant Service as Service File (.service.ts)
89
+
90
+ User->>CLI: mcp-generate tool
91
+ CLI->>User: Seleccionar Feature
92
+ CLI->>User: Nombre del Tool (ej: approve_invoice)
93
+
94
+ par Actualizar Archivos
95
+ CLI->>Validation: Agregar Schema Zod (Input)
96
+ CLI->>Service: Agregar Método (Business Logic)
97
+ CLI->>Router: Registrar Tool en McpServer
98
+ end
99
+
100
+ Router-->>CLI: Tool Registrado
101
+ CLI->>User: ✅ Tool completado
102
+ ```
103
+
104
+ ## 📂 Estructura del CLI
105
+
106
+ El código fuente del CLI se encuentra organizado para facilitar su mantenimiento y extensión:
107
+
108
+ ```
109
+ cli/
110
+ ├── generators/ # Lógica de generación
111
+ │ ├── feature-generator.ts
112
+ │ ├── init-generator.ts
113
+ │ ├── main-updater.ts
114
+ │ ├── router-generator.ts
115
+ │ ├── service-generator.ts
116
+ │ ├── tool-generator.ts <-- (Nuevo) Lógica aislada de tools
117
+ │ └── validation-generator.ts
118
+ ├── utils/ # Utilidades compartidas
119
+ │ ├── constants.ts <-- Configuración centralizada
120
+ │ ├── naming.ts <-- Helpers (camelCase, PascalCase)
121
+ │ └── types.ts <-- Definiciones TypeScript
122
+ └── generate-feature.ts # Punto de entrada (Entry Point)
123
+ ```
124
+
125
+ ## 🔧 Desarrollo y Extensión
126
+
127
+ ### Agregar un nuevo tipo de servicio
128
+ 1. Editar `cli/utils/constants.ts` y agregar el tipo en `SERVICE_TYPES`.
129
+ 2. Actualizar `cli/generators/service-generator.ts` para manejar la lógica de generación del nuevo tipo.
130
+
131
+ ### Modificar templates
132
+ Los "templates" son strings literales dentro de cada generador (`generators/*.ts`). Modifica estos archivos para cambiar la estructura del código generado.
133
+
134
+ ---
135
+ Generado por **Apprecio MCP Team**
@@ -7,6 +7,8 @@ import fs from 'fs-extra';
7
7
  import { generateFeature } from './generators/feature-generator.js';
8
8
  import { updateMainFile } from './generators/main-updater.js';
9
9
  import { initProject } from './generators/init-generator.js';
10
+ import { generateTool } from './generators/tool-generator.js';
11
+ import { SERVICE_TYPES, TOOLS } from './utils/constants.js';
10
12
  const program = new Command();
11
13
  program
12
14
  .name('mcp-generate')
@@ -75,13 +77,15 @@ program
75
77
  ]);
76
78
  try {
77
79
  console.log(chalk.yellow('\n📦 Creando proyecto...\n'));
80
+ // Tipado explícito para answers
81
+ const typedAnswers = answers;
78
82
  await initProject({
79
- projectName: answers.projectName,
80
- projectPath: answers.projectPath,
81
- description: answers.description,
82
- author: answers.author,
83
- useDatabase: answers.useDatabase,
84
- apiBaseUrl: answers.apiBaseUrl
83
+ projectName: typedAnswers.projectName,
84
+ projectPath: typedAnswers.projectPath,
85
+ description: typedAnswers.description,
86
+ author: typedAnswers.author,
87
+ useDatabase: typedAnswers.useDatabase,
88
+ apiBaseUrl: typedAnswers.apiBaseUrl
85
89
  });
86
90
  console.log(chalk.green('\n✅ ¡Proyecto creado exitosamente!\n'));
87
91
  // Preguntar si quiere instalar dependencias automáticamente
@@ -127,37 +131,36 @@ program
127
131
  }
128
132
  }
129
133
  // Ejecutar npm install de forma síncrona para esperar a que termine
130
- execSync('sudo npm install', {
134
+ execSync('npm install', {
131
135
  cwd: answers.projectPath,
132
136
  stdio: 'inherit', // Muestra el output en tiempo real
133
137
  encoding: 'utf-8'
134
138
  });
135
139
  console.log(chalk.green('\n✅ Dependencias instaladas correctamente\n'));
136
- // Preguntar si quiere linkear apprecio-mcp-base
137
- const linkAnswer = await inquirer.prompt([
138
- {
139
- type: 'confirm',
140
- name: 'linkBase',
141
- message: '¿Linkear apprecio-mcp-base local? (npm link apprecio-mcp-base)',
142
- default: true
143
- }
144
- ]);
145
- if (linkAnswer.linkBase) {
146
- console.log(chalk.yellow('\n🔗 Linkeando apprecio-mcp-base...\n'));
147
- try {
148
- execSync('npm link apprecio-mcp-base', {
149
- cwd: answers.projectPath,
150
- stdio: 'inherit',
151
- encoding: 'utf-8'
152
- });
153
- console.log(chalk.green('\n✅ apprecio-mcp-base linkeado correctamente\n'));
154
- }
155
- catch (linkError) {
156
- console.log(chalk.yellow('\n⚠️ Error linkeando apprecio-mcp-base'));
157
- console.log(chalk.white(' Asegúrate de haber ejecutado en apprecio-mcp-base:'));
158
- console.log(chalk.cyan(' cd apprecio-mcp-base && npm run build && npm link\n'));
159
- }
160
- }
140
+ // // Preguntar si quiere linkear apprecio-mcp-base
141
+ // const linkAnswer = await inquirer.prompt([
142
+ // {
143
+ // type: 'confirm',
144
+ // name: 'linkBase',
145
+ // message: '¿Linkear apprecio-mcp-base local? (npm link apprecio-mcp-base)',
146
+ // default: true
147
+ // }
148
+ // ]);
149
+ // if (linkAnswer.linkBase) {
150
+ // console.log(chalk.yellow('\n🔗 Linkeando apprecio-mcp-base...\n'));
151
+ // try {
152
+ // execSync('npm link apprecio-mcp-base', {
153
+ // cwd: answers.projectPath,
154
+ // stdio: 'inherit',
155
+ // encoding: 'utf-8'
156
+ // });
157
+ // console.log(chalk.green('\n✅ apprecio-mcp-base linkeado correctamente\n'));
158
+ // } catch (linkError: any) {
159
+ // console.log(chalk.yellow('\n⚠️ Error linkeando apprecio-mcp-base'));
160
+ // console.log(chalk.white(' Asegúrate de haber ejecutado en apprecio-mcp-base:'));
161
+ // console.log(chalk.cyan(' cd apprecio-mcp-base && npm run build && npm link\n'));
162
+ // }
163
+ // }
161
164
  }
162
165
  catch (error) {
163
166
  console.log(chalk.red('\n❌ Error instalando dependencias:', error.message));
@@ -239,25 +242,25 @@ program
239
242
  name: 'serviceType',
240
243
  message: 'Tipo de service:',
241
244
  choices: [
242
- { name: 'API Client (llamadas HTTP)', value: 'api' },
243
- { name: 'Database (MongoDB)', value: 'database' },
244
- { name: 'Mixed (API + DB)', value: 'mixed' },
245
- { name: 'Custom', value: 'custom' }
245
+ { name: 'API Client (llamadas HTTP)', value: SERVICE_TYPES.API },
246
+ { name: 'Database (MongoDB)', value: SERVICE_TYPES.DATABASE },
247
+ { name: 'Mixed (API + DB)', value: SERVICE_TYPES.MIXED },
248
+ { name: 'Custom', value: SERVICE_TYPES.CUSTOM }
246
249
  ],
247
250
  when: (answers) => answers.needsService,
248
- default: 'api'
251
+ default: SERVICE_TYPES.API
249
252
  },
250
253
  {
251
254
  type: 'checkbox',
252
255
  name: 'tools',
253
256
  message: 'Selecciona los tools a generar:',
254
257
  choices: [
255
- { name: 'list (listar items)', value: 'list', checked: true },
256
- { name: 'get (obtener un item)', value: 'get', checked: true },
257
- { name: 'create (crear item)', value: 'create', checked: true },
258
- { name: 'update (actualizar item)', value: 'update', checked: true },
259
- { name: 'delete (eliminar item)', value: 'delete' },
260
- { name: 'search (buscar items)', value: 'search' }
258
+ { name: 'list (listar items)', value: TOOLS.LIST, checked: true },
259
+ { name: 'get (obtener un item)', value: TOOLS.GET, checked: true },
260
+ { name: 'create (crear item)', value: TOOLS.CREATE, checked: true },
261
+ { name: 'update (actualizar item)', value: TOOLS.UPDATE, checked: true },
262
+ { name: 'delete (eliminar item)', value: TOOLS.DELETE },
263
+ { name: 'search (buscar items)', value: TOOLS.SEARCH }
261
264
  ],
262
265
  validate: (input) => {
263
266
  if (input.length === 0)
@@ -282,21 +285,22 @@ program
282
285
  console.log(chalk.yellow('\n📝 Generando archivos...\n'));
283
286
  const featurePath = path.join(process.cwd(), 'src', 'features', answers.featureName);
284
287
  await fs.ensureDir(featurePath);
288
+ const typedAnswers = answers;
285
289
  const files = await generateFeature({
286
- featureName: answers.featureName,
287
- featureDescription: answers.featureDescription,
288
- entityName: answers.entityName,
289
- tools: answers.tools,
290
- serviceType: answers.needsService ? answers.serviceType : 'none',
290
+ featureName: typedAnswers.featureName,
291
+ featureDescription: typedAnswers.featureDescription,
292
+ entityName: typedAnswers.entityName,
293
+ tools: typedAnswers.tools,
294
+ serviceType: typedAnswers.needsService ? typedAnswers.serviceType : SERVICE_TYPES.NONE,
291
295
  featurePath
292
296
  });
293
297
  console.log(chalk.green('✅ Archivos generados:\n'));
294
298
  files.forEach((file) => {
295
299
  console.log(chalk.gray(` ${file}`));
296
300
  });
297
- if (answers.updateMain) {
301
+ if (typedAnswers.updateMain) {
298
302
  console.log(chalk.yellow('\n🔄 Actualizando main.ts...\n'));
299
- await updateMainFile(answers.featureName, answers.entityName);
303
+ await updateMainFile(typedAnswers.featureName, typedAnswers.entityName);
300
304
  console.log(chalk.green('✅ main.ts actualizado\n'));
301
305
  }
302
306
  console.log(chalk.blue.bold('\n📚 Próximos pasos:\n'));
@@ -358,7 +362,20 @@ program
358
362
  default: true
359
363
  }
360
364
  ]);
361
- console.log(chalk.green(`\n✅ Tool ${answers.toolName} agregado a ${answers.feature}\n`));
365
+ try {
366
+ const typedAnswers = answers;
367
+ await generateTool({
368
+ featureName: typedAnswers.feature,
369
+ toolName: typedAnswers.toolName,
370
+ toolDescription: typedAnswers.toolDescription,
371
+ addToService: typedAnswers.addToService
372
+ });
373
+ console.log(chalk.green(`\n✅ Tool ${typedAnswers.toolName} agregado a ${typedAnswers.feature}\n`));
374
+ }
375
+ catch (error) {
376
+ console.error(chalk.red('\n❌ Error generando tool:'), error.message);
377
+ process.exit(1);
378
+ }
362
379
  });
363
380
  program.parse();
364
381
  //# sourceMappingURL=generate-feature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-feature.js","sourceRoot":"","sources":["../generate-feature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-feature.js","sourceRoot":"","sources":["../generate-feature.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { GenerateFeatureOptions } from '../types.js';
1
+ import { GenerateFeatureOptions } from '../utils/types.js';
2
2
  export declare function generateFeature(options: GenerateFeatureOptions): Promise<string[]>;
3
3
  //# sourceMappingURL=feature-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-generator.d.ts","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBxF"}
1
+ {"version":3,"file":"feature-generator.d.ts","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBxF"}
@@ -1,13 +1,14 @@
1
1
  import { generateService } from './service-generator.js';
2
2
  import { generateRouter } from './router-generator.js';
3
3
  import { generateValidation } from './validation-generator.js';
4
+ import { SERVICE_TYPES } from '../utils/constants.js';
4
5
  export async function generateFeature(options) {
5
6
  const generatedFiles = [];
6
7
  // 1. Generar validation
7
8
  const validationFile = await generateValidation(options);
8
9
  generatedFiles.push(validationFile);
9
10
  // 2. Generar service (si es necesario)
10
- if (options.serviceType !== 'none') {
11
+ if (options.serviceType !== SERVICE_TYPES.NONE) {
11
12
  const serviceFile = await generateService(options);
12
13
  generatedFiles.push(serviceFile);
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"feature-generator.js","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACjE,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,wBAAwB;IACxB,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEpC,uCAAuC;IACvC,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,cAAc,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"feature-generator.js","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACjE,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,wBAAwB;IACxB,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEpC,uCAAuC;IACvC,IAAI,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,cAAc,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-generator.d.ts","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAquBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D5E"}
1
+ {"version":3,"file":"init-generator.d.ts","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAsuBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D5E"}
@@ -12,32 +12,33 @@ function generateApiKey() {
12
12
  */
13
13
  async function createEnvFile(projectPath, useDatabase, apiBaseUrl) {
14
14
  const apiKey = generateApiKey();
15
- const envContent = `# Authentication
16
- API_KEY=${apiKey}
17
- AUTH_ENABLED=false
15
+ const envContent = `
16
+ # Authentication
17
+ API_KEY=${apiKey}
18
+ AUTH_ENABLED=false
18
19
 
19
- # Database (opcional)
20
- MONGODB_URI=${useDatabase ? 'mongodb://localhost:27017/your-database' : ''}
20
+ # Database (opcional)
21
+ MONGODB_URI=${useDatabase ? 'mongodb://localhost:27017/your-database' : ''}
21
22
 
22
- API_BASE_URL='${apiBaseUrl}'
23
+ API_BASE_URL='${apiBaseUrl}'
23
24
 
24
- # Server
25
- MCP_SSE_PORT=3200
25
+ # Server
26
+ MCP_SSE_PORT=3200
26
27
 
27
- # Timeouts (ms)
28
- MCP_TIMEOUT=180000
29
- SSE_TIMEOUT=1800000
28
+ # Timeouts (ms)
29
+ MCP_TIMEOUT=180000
30
+ SSE_TIMEOUT=1800000
30
31
 
31
- # Logging
32
- LOG_LEVEL=info
32
+ # Logging
33
+ LOG_LEVEL=info
33
34
 
34
- # CORS
35
- CORS_ALLOW_ORIGIN=*
35
+ # CORS
36
+ CORS_ALLOW_ORIGIN=*
36
37
 
37
- # Rate Limiting
38
- RATE_LIMIT_WINDOW_MS=900000
39
- RATE_LIMIT_MAX_REQUESTS=100
40
- `;
38
+ # Rate Limiting
39
+ RATE_LIMIT_WINDOW_MS=900000
40
+ RATE_LIMIT_MAX_REQUESTS=100
41
+ `;
41
42
  await fs.writeFile(path.join(projectPath, '.env'), envContent);
42
43
  }
43
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"init-generator.js","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-generator.js","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main-updater.js","sourceRoot":"","sources":["../../generators/main-updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main-updater.js","sourceRoot":"","sources":["../../generators/main-updater.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { GenerateFeatureOptions } from '../types.js';
1
+ import { GenerateFeatureOptions } from '../utils/types.js';
2
2
  export declare function generateRouter(options: GenerateFeatureOptions): Promise<string>;
3
3
  //# sourceMappingURL=router-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAsB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ErF"}
1
+ {"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,wBAAsB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoErF"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
  import { toCamelCase, toPascalCase, toSnakeCase } from '../utils/naming.js';
4
+ import { TOOLS, TOOL_DESCRIPTIONS } from '../utils/constants.js';
4
5
  export async function generateRouter(options) {
5
6
  const { featureName, featureDescription, entityName, tools, featurePath, serviceType } = options;
6
7
  const className = toPascalCase(featureName);
@@ -9,7 +10,6 @@ export async function generateRouter(options) {
9
10
  let routerContent = '';
10
11
  // Imports
11
12
  routerContent += `import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\n`;
12
- routerContent += `import { z } from 'zod';\n`;
13
13
  routerContent += `import type { FeatureModule } from 'apprecio-mcp-base';\n`;
14
14
  routerContent += `import { logger } from 'apprecio-mcp-base';\n`;
15
15
  if (serviceType !== 'none') {
@@ -18,13 +18,8 @@ export async function generateRouter(options) {
18
18
  routerContent += `\n`;
19
19
  routerContent += `import {\n`;
20
20
  tools.forEach((tool) => {
21
- const schemaName = tool === 'list' ? `list${toPascalCase(entityName)}Schema` :
22
- tool === 'get' ? `get${toPascalCase(entityName)}Schema` :
23
- tool === 'create' ? `create${toPascalCase(entityName)}Schema` :
24
- tool === 'update' ? `update${toPascalCase(entityName)}Schema` :
25
- tool === 'delete' ? `delete${toPascalCase(entityName)}Schema` :
26
- `search${toPascalCase(entityName)}Schema`;
27
- routerContent += `${schemaName}, \n`;
21
+ const schemaName = getValidationSchemaName(tool, entityPascal);
22
+ routerContent += ` ${schemaName}, \n`;
28
23
  });
29
24
  routerContent += `} from './${featureName}.validation.js';`;
30
25
  routerContent += `\n\n`;
@@ -60,18 +55,31 @@ export async function generateRouter(options) {
60
55
  return filePath;
61
56
  }
62
57
  function generateToolDefinition(tool, featureName, entityName, entityPascal, serviceType, instanceName) {
63
- const toolName = toSnakeCase(tool === 'list' ? `list_${featureName}` :
64
- tool === 'get' ? `get_${entityName}` :
65
- tool === 'create' ? `create_${entityName}` :
66
- tool === 'update' ? `update_${entityName}` :
67
- tool === 'delete' ? `delete_${entityName}` :
68
- `search_${featureName}`);
58
+ const toolName = toSnakeCase(`${tool}_${entityName}`);
59
+ if (tool === TOOLS.LIST || tool === TOOLS.SEARCH) {
60
+ // Excepción plural para list/search si se desea mantener coherencia estricta
61
+ // Pero el switch original usaba lógica mixta:
62
+ // list -> list_featureName (plural?)
63
+ // search -> search_featureName
64
+ }
65
+ // Simplificación usando lógica original mapeada:
66
+ let baseToolName = '';
67
+ switch (tool) {
68
+ case TOOLS.LIST:
69
+ baseToolName = `list_${featureName}`;
70
+ break;
71
+ case TOOLS.SEARCH:
72
+ baseToolName = `search_${featureName}`;
73
+ break;
74
+ default: baseToolName = `${tool}_${entityName}`;
75
+ }
76
+ const finalToolName = toSnakeCase(baseToolName);
69
77
  const description = getToolDescription(tool, entityName);
70
78
  const inputSchema = generateInputSchema(tool, entityName);
71
79
  const handler = generateToolHandler(tool, featureName, entityName, serviceType, instanceName);
72
80
  let content = ` // Tool: ${description}\n`;
73
81
  content += ` mcpServer.registerTool(\n`;
74
- content += ` '${toolName}',\n`;
82
+ content += ` '${finalToolName}',\n`;
75
83
  content += ` {\n`;
76
84
  content += ` description: '${description}',\n`;
77
85
  content += ` inputSchema: ${inputSchema}.shape\n`;
@@ -81,33 +89,22 @@ function generateToolDefinition(tool, featureName, entityName, entityPascal, ser
81
89
  return content;
82
90
  }
83
91
  function getToolDescription(tool, entityName) {
84
- const descriptions = {
85
- 'list': `List all ${entityName}s`,
86
- 'get': `Get a specific ${entityName} by ID`,
87
- 'create': `Create a new ${entityName}`,
88
- 'update': `Update an existing ${entityName}`,
89
- 'delete': `Delete a ${entityName}`,
90
- 'search': `Search for ${entityName}s`
91
- };
92
- return descriptions[tool] || `Perform ${tool} operation on ${entityName}`;
92
+ const descGenerator = TOOL_DESCRIPTIONS[tool];
93
+ if (descGenerator) {
94
+ return descGenerator(entityName);
95
+ }
96
+ return `Perform ${tool} operation on ${entityName}`;
93
97
  }
94
98
  function generateInputSchema(tool, entityName) {
95
- const schemaName = tool === 'list' ? `list${toPascalCase(entityName)}Schema` :
96
- tool === 'get' ? `get${toPascalCase(entityName)}Schema` :
97
- tool === 'create' ? `create${toPascalCase(entityName)}Schema` :
98
- tool === 'update' ? `update${toPascalCase(entityName)}Schema` :
99
- tool === 'delete' ? `delete${toPascalCase(entityName)}Schema` :
100
- `search${toPascalCase(entityName)}Schema`;
101
- return schemaName;
99
+ return getValidationSchemaName(tool, toPascalCase(entityName));
100
+ }
101
+ function getValidationSchemaName(tool, entityPascal) {
102
+ return `${tool}${entityPascal}Schema`;
102
103
  }
103
104
  function generateToolHandler(tool, featureName, entityName, serviceType, instanceName) {
104
- const methodName = tool === 'list' ? `list${toPascalCase(featureName)}` :
105
- tool === 'get' ? `get${toPascalCase(entityName)}` :
106
- tool === 'create' ? `create${toPascalCase(entityName)}` :
107
- tool === 'update' ? `update${toPascalCase(entityName)}` :
108
- tool === 'delete' ? `delete${toPascalCase(entityName)}` :
109
- `search${toPascalCase(featureName)}`;
110
105
  const className = toPascalCase(featureName);
106
+ const entityPascal = toPascalCase(entityName);
107
+ const methodName = `${tool}${entityPascal}`;
111
108
  let handler = `
112
109
  (args, extra) => executeTool(extra, ${className}, getEnv, (service, headers) =>
113
110
  service.${methodName}(args, headers)
@@ -1 +1 @@
1
- {"version":3,"file":"router-generator.js","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-generator.js","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA+B;IAChE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjG,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC;IAE3D,IAAI,aAAa,GAAG,EAAE,CAAC;IAEvB,UAAU;IACV,aAAa,IAAI,wEAAwE,CAAC;IAC1F,aAAa,IAAI,2DAA2D,CAAC;IAC7E,aAAa,IAAI,+CAA+C,CAAC;IAEjE,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QACzB,aAAa,IAAI,UAAU,SAAS,YAAY,WAAW,iBAAiB,CAAC;IACjF,CAAC;IAED,aAAa,IAAI,IAAI,CAAC;IACtB,aAAa,IAAI,YAAY,CAAC;IAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC/D,aAAa,IAAI,OAAO,UAAU,MAAM,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,aAAa,IAAI,aAAa,WAAW,kBAAkB,CAAC;IAG5D,aAAa,IAAI,MAAM,CAAC;IAExB,aAAa,IAAI,mDAAmD,CAAA;IACpE,aAAa,IAAI,gEAAgE,CAAA;IAEjF,aAAa,IAAI,MAAM,CAAC;IAExB,yBAAyB;IACzB,aAAa,IAAI,gBAAgB,WAAW,CAAC,WAAW,CAAC,8BAA8B,CAAC;IACxF,aAAa,IAAI,cAAc,WAAW,MAAM,CAAC;IACjD,aAAa,IAAI,8CAA8C,CAAC;IAEhE,oBAAoB;IACpB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3B,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACnH,aAAa,IAAI,WAAW,GAAG,IAAI,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,aAAa,IAAI,wBAAwB,WAAW,6CAA6C,CAAC;IAClG,aAAa,IAAI,YAAY,CAAC;IAE9B,sBAAsB;IACtB,aAAa,IAAI,2CAA2C,CAAC;IAC7D,aAAa,IAAI,qCAAqC,WAAW,kBAAkB,CAAC;IACpF,aAAa,IAAI,kDAAkD,CAAC;IACpE,aAAa,IAAI,YAAY,CAAC;IAE9B,mBAAmB;IACnB,aAAa,IAAI,wCAAwC,CAAC;IAC1D,aAAa,IAAI,oCAAoC,WAAW,kBAAkB,CAAC;IACnF,aAAa,IAAI,2CAA2C,CAAC;IAC7D,aAAa,IAAI,UAAU,CAAC;IAE5B,aAAa,IAAI,MAAM,CAAC;IAExB,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,aAAa,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAC3B,IAAY,EACZ,WAAmB,EACnB,UAAkB,EAClB,YAAoB,EACpB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/C,6EAA6E;QAC7E,8CAA8C;QAC9C,qCAAqC;QACrC,+BAA+B;IACnC,CAAC;IAED,iDAAiD;IACjD,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,KAAK,CAAC,IAAI;YAAE,YAAY,GAAG,QAAQ,WAAW,EAAE,CAAC;YAAC,MAAM;QAC7D,KAAK,KAAK,CAAC,MAAM;YAAE,YAAY,GAAG,UAAU,WAAW,EAAE,CAAC;YAAC,MAAM;QACjE,OAAO,CAAC,CAAC,YAAY,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAE9F,IAAI,OAAO,GAAG,oBAAoB,WAAW,IAAI,CAAC;IAClD,OAAO,IAAI,mCAAmC,CAAC;IAC/C,OAAO,IAAI,gBAAgB,aAAa,MAAM,CAAC;IAC/C,OAAO,IAAI,iBAAiB,CAAC;IAC7B,OAAO,IAAI,iCAAiC,WAAW,MAAM,CAAC;IAC9D,OAAO,IAAI,gCAAgC,WAAW,UAAU,CAAC;IACjE,OAAO,IAAI,kBAAkB,CAAC;IAC9B,OAAO,IAAI,eAAe,OAAO,IAAI,CAAC;IACtC,OAAO,IAAI,cAAc,CAAC;IAE1B,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAkB;IACxD,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,WAAW,IAAI,iBAAiB,UAAU,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,UAAkB;IACzD,OAAO,uBAAuB,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,YAAoB;IAC/D,OAAO,GAAG,IAAI,GAAG,YAAY,QAAQ,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CACxB,IAAY,EACZ,WAAmB,EACnB,UAAkB,EAClB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,YAAY,EAAE,CAAC;IAE5C,IAAI,OAAO,GAAG;0CACwB,SAAS;0BACzB,UAAU;;KAE/B,CAAA;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -1,3 +1,3 @@
1
- import { GenerateFeatureOptions } from '../types.js';
1
+ import { GenerateFeatureOptions } from '../utils/types.js';
2
2
  export declare function generateService(options: GenerateFeatureOptions): Promise<string>;
3
3
  //# sourceMappingURL=service-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-generator.d.ts","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DtF"}
1
+ {"version":3,"file":"service-generator.d.ts","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DtF"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
  import { toPascalCase } from '../utils/naming.js';
4
+ import { TOOLS, SERVICE_TYPES } from '../utils/constants.js';
4
5
  export async function generateService(options) {
5
6
  const { featureName, entityName, tools, serviceType, featurePath } = options;
6
7
  const className = toPascalCase(featureName);
@@ -9,13 +10,13 @@ export async function generateService(options) {
9
10
  // Header
10
11
  serviceContent += `// Generated service for ${featureName}\n\n`;
11
12
  // Imports basados en tipo de service
12
- if (serviceType === 'api') {
13
+ if (serviceType === SERVICE_TYPES.API) {
13
14
  serviceContent += `import ApiClient from '../../services/api.js';\n`;
14
15
  }
15
- else if (serviceType === 'database') {
16
+ else if (serviceType === SERVICE_TYPES.DATABASE) {
16
17
  serviceContent += `import { MongoDBConnector } from 'apprecio-mcp-base';\n`;
17
18
  }
18
- else if (serviceType === 'mixed') {
19
+ else if (serviceType === SERVICE_TYPES.MIXED) {
19
20
  serviceContent += `import ApiClient from '../../services/api.js';\n`;
20
21
  serviceContent += `import { MongoDBConnector } from 'apprecio-mcp-base';\n`;
21
22
  }
@@ -29,10 +30,10 @@ export async function generateService(options) {
29
30
  serviceContent += `} from './${featureName}.validation.js';\n`;
30
31
  serviceContent += `\n`;
31
32
  // Clase del service
32
- if (serviceType === 'api') {
33
+ if (serviceType === SERVICE_TYPES.API) {
33
34
  serviceContent += `class ${className} extends ApiClient {\n\n`;
34
35
  }
35
- else if (serviceType === 'database') {
36
+ else if (serviceType === SERVICE_TYPES.DATABASE) {
36
37
  serviceContent += `class ${className} {\n`;
37
38
  serviceContent += ` private db: MongoDBConnector;\n\n`;
38
39
  serviceContent += ` constructor(db: MongoDBConnector) {\n`;
@@ -55,74 +56,61 @@ export async function generateService(options) {
55
56
  return filePath;
56
57
  }
57
58
  function generateInterfaceName(tool, entityPascal) {
58
- const toolMap = {
59
- 'list': `List${entityPascal}Options`,
60
- 'get': `Get${entityPascal}Options`,
61
- 'create': `Create${entityPascal}Options`,
62
- 'update': `Update${entityPascal}Options`,
63
- 'delete': `Delete${entityPascal}Options`,
64
- 'search': `Search${entityPascal}Options`
65
- };
66
- return toolMap[tool] || `${toPascalCase(tool)}${entityPascal}Options`;
59
+ return `${toPascalCase(tool)}${entityPascal}Options`;
67
60
  }
68
61
  function generateServiceMethod(tool, entityName, entityPascal, serviceType) {
69
- const methodName = tool === 'list' ? `list${entityPascal}` :
70
- tool === 'get' ? `get${entityPascal}` :
71
- tool === 'create' ? `create${entityPascal}` :
72
- tool === 'update' ? `update${entityPascal}` :
73
- tool === 'delete' ? `delete${entityPascal}` :
74
- `search${entityPascal}`;
62
+ const methodName = `${tool}${entityPascal}`;
75
63
  const optionsInterface = generateInterfaceName(tool, entityPascal);
76
64
  let methodContent = ` async ${methodName}(options: ${optionsInterface}, token?: string) {\n`;
77
- if (serviceType === 'api') {
78
- if (tool === 'list') {
65
+ if (serviceType === SERVICE_TYPES.API) {
66
+ if (tool === TOOLS.LIST) {
79
67
  methodContent += ` const { page = 1, perPage = 10, ...params} = options;\n`;
80
68
  methodContent += ` return this.get('${entityName}s', { page, perPage, ...params }, token || '');\n`;
81
69
  }
82
- else if (tool === 'get') {
70
+ else if (tool === TOOLS.GET) {
83
71
  methodContent += ` const { id } = options;\n`;
84
72
  methodContent += ` return this.get(\`${entityName}s/\${id}\`, {}, token || '');\n`;
85
73
  }
86
- else if (tool === 'create') {
74
+ else if (tool === TOOLS.CREATE) {
87
75
  methodContent += ` const { data } = options;\n`;
88
76
  methodContent += ` // Sanitize data aquí si es necesario\n`;
89
77
  methodContent += ` return this.post('${entityName}s', data, token || '');\n`;
90
78
  }
91
- else if (tool === 'update') {
79
+ else if (tool === TOOLS.UPDATE) {
92
80
  methodContent += ` const { id, data } = options;\n`;
93
81
  methodContent += ` return this.patch(\`${entityName}s/\${id}\`, data, token || '');\n`;
94
82
  }
95
- else if (tool === 'delete') {
83
+ else if (tool === TOOLS.DELETE) {
96
84
  methodContent += ` const { id } = options;\n`;
97
85
  methodContent += ` return this.delete(\`${entityName}s/\${id}\`, {}, token || '');\n`;
98
86
  }
99
- else if (tool === 'search') {
87
+ else if (tool === TOOLS.SEARCH) {
100
88
  methodContent += ` const { query, filters } = options;\n`;
101
89
  methodContent += ` return this.get('search/${entityName}s', { q: sanitize(query), ...filters }, token || '');\n`;
102
90
  }
103
91
  }
104
- else if (serviceType === 'database') {
105
- if (tool === 'list') {
92
+ else if (serviceType === SERVICE_TYPES.DATABASE) {
93
+ if (tool === TOOLS.LIST) {
106
94
  methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
107
95
  methodContent += ` const { page = 1, perPage = 10 } = options;\n`;
108
96
  methodContent += ` return collection.find({}).skip((page - 1) * perPage).limit(perPage).toArray();\n`;
109
97
  }
110
- else if (tool === 'get') {
98
+ else if (tool === TOOLS.GET) {
111
99
  methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
112
100
  methodContent += ` const { id } = options;\n`;
113
101
  methodContent += ` return collection.findOne({ _id: id });\n`;
114
102
  }
115
- else if (tool === 'create') {
103
+ else if (tool === TOOLS.CREATE) {
116
104
  methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
117
105
  methodContent += ` const { data } = options;\n`;
118
106
  methodContent += ` return collection.insertOne(data);\n`;
119
107
  }
120
- else if (tool === 'update') {
108
+ else if (tool === TOOLS.UPDATE) {
121
109
  methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
122
110
  methodContent += ` const { id, data } = options;\n`;
123
111
  methodContent += ` return collection.updateOne({ _id: id }, { $set: data });\n`;
124
112
  }
125
- else if (tool === 'delete') {
113
+ else if (tool === TOOLS.DELETE) {
126
114
  methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
127
115
  methodContent += ` const { id } = options;\n`;
128
116
  methodContent += ` return collection.deleteOne({ _id: id });\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"service-generator.js","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-generator.js","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACjE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE7E,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,SAAS;IACT,cAAc,IAAI,4BAA4B,WAAW,MAAM,CAAC;IAEhE,qCAAqC;IACrC,IAAI,WAAW,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACpC,cAAc,IAAI,kDAAkD,CAAC;IACzE,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,cAAc,IAAI,yDAAyD,CAAC;IAChF,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;QAC7C,cAAc,IAAI,kDAAkD,CAAC;QACrE,cAAc,IAAI,yDAAyD,CAAC;IAChF,CAAC;IAED,cAAc,IAAI,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,cAAc,IAAI,YAAY,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChE,cAAc,IAAI,QAAQ,aAAa,KAAK,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,cAAc,IAAI,aAAa,WAAW,oBAAoB,CAAC;IAE/D,cAAc,IAAI,IAAI,CAAC;IAEvB,oBAAoB;IACpB,IAAI,WAAW,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACpC,cAAc,IAAI,SAAS,SAAS,0BAA0B,CAAC;IACnE,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,cAAc,IAAI,SAAS,SAAS,MAAM,CAAC;QAC3C,cAAc,IAAI,uCAAuC,CAAC;QAC1D,cAAc,IAAI,2CAA2C,CAAC;QAC9D,cAAc,IAAI,yBAAyB,CAAC;QAC5C,cAAc,IAAI,WAAW,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,cAAc,IAAI,SAAS,SAAS,QAAQ,CAAC;IACjD,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAClF,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,cAAc,IAAI,OAAO,CAAC;IAC1B,cAAc,IAAI,kBAAkB,SAAS,KAAK,CAAC;IAEnD,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,aAAa,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE7C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,YAAoB;IAC7D,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,SAAS,CAAC;AACzD,CAAC;AAGD,SAAS,qBAAqB,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB,EAAE,WAAmB;IACtG,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,YAAY,EAAE,CAAC;IAE5C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEnE,IAAI,aAAa,GAAG,aAAa,UAAU,aAAa,gBAAgB,uBAAuB,CAAC;IAEhG,IAAI,WAAW,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACtB,aAAa,IAAI,iEAAiE,CAAC;YACnF,aAAa,IAAI,4BAA4B,UAAU,mDAAmD,CAAC;QAC/G,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,6BAA6B,UAAU,iCAAiC,CAAC;QAC9F,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qCAAqC,CAAC;YACvD,aAAa,IAAI,iDAAiD,CAAC;YACnE,aAAa,IAAI,6BAA6B,UAAU,2BAA2B,CAAC;QACxF,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,yCAAyC,CAAC;YAC3D,aAAa,IAAI,+BAA+B,UAAU,mCAAmC,CAAC;QAClG,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,gCAAgC,UAAU,iCAAiC,CAAC;QACjG,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,+CAA+C,CAAC;YACjE,aAAa,IAAI,mCAAmC,UAAU,yDAAyD,CAAC;QAC5H,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACtB,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,uDAAuD,CAAC;YACzE,aAAa,IAAI,2FAA2F,CAAC;QACjH,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,mDAAmD,CAAC;QACzE,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,qCAAqC,CAAC;YACvD,aAAa,IAAI,8CAA8C,CAAC;QACpE,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,yCAAyC,CAAC;YAC3D,aAAa,IAAI,qEAAqE,CAAC;QAC3F,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,qDAAqD,CAAC;QAC3E,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,aAAa,IAAI,4CAA4C,IAAI,IAAI,CAAC;QACtE,aAAa,IAAI,+CAA+C,CAAC;IACrE,CAAC;IAED,aAAa,IAAI,SAAS,CAAC;IAE3B,OAAO,aAAa,CAAC;AACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GenerateToolOptions } from '../utils/types.js';
2
+ export declare function generateTool(options: GenerateToolOptions): Promise<void>;
3
+ //# sourceMappingURL=tool-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../generators/tool-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9E"}
@@ -0,0 +1,88 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { toCamelCase, toPascalCase, toSnakeCase } from '../utils/naming.js';
4
+ export async function generateTool(options) {
5
+ const { featureName, toolName, toolDescription, addToService } = options;
6
+ const featurePath = path.join(process.cwd(), 'src', 'features', featureName);
7
+ // 1. Modificar Feature (Router)
8
+ await addToolToRouter(featurePath, featureName, toolName, toolDescription, addToService);
9
+ // 2. Modificar Validation
10
+ await addToolToValidation(featurePath, featureName, toolName);
11
+ // 3. Modificar Service (si aplica)
12
+ if (addToService) {
13
+ await addToolToService(featurePath, featureName, toolName);
14
+ }
15
+ }
16
+ async function addToolToRouter(featurePath, featureName, toolName, description, useService) {
17
+ const filePath = path.join(featurePath, `${featureName}.feature.ts`);
18
+ let content = await fs.readFile(filePath, 'utf-8');
19
+ const entityName = featureName.replace(/s$/, ''); // Aproximación
20
+ const entityPascal = toPascalCase(entityName);
21
+ const className = toPascalCase(featureName);
22
+ const toolSnake = toSnakeCase(toolName);
23
+ const schemaName = `${toPascalCase(toolName)}${entityPascal}Schema`;
24
+ const methodName = `${toCamelCase(toolName)}${entityPascal}`;
25
+ // Importar schema
26
+ if (!content.includes(schemaName)) {
27
+ content = content.replace(/\} from '\.\/.*\.validation\.js';/, ` ${schemaName},\n} from './${featureName}.validation.js';`);
28
+ }
29
+ // Agregar tool definition
30
+ const toolDef = `
31
+ // Tool: ${description}
32
+ mcpServer.registerTool(
33
+ '${toolSnake}',
34
+ {
35
+ description: '${description}',
36
+ inputSchema: ${schemaName}.shape
37
+ },
38
+ (args, extra) => executeTool(extra, ${className}, getEnv, (service, headers) =>
39
+ service.${methodName}(args, headers)
40
+ )
41
+ );`;
42
+ // Insertar antes del cierre de register
43
+ const registerEndRegex = /logger\.info\('.*registered successfully'\);\s*\},/;
44
+ content = content.replace(registerEndRegex, (match) => `${toolDef}\n ${match}`);
45
+ await fs.writeFile(filePath, content);
46
+ }
47
+ async function addToolToValidation(featurePath, featureName, toolName) {
48
+ const filePath = path.join(featurePath, `${featureName}.validation.ts`);
49
+ let content = await fs.readFile(filePath, 'utf-8');
50
+ const entityName = featureName.replace(/s$/, '');
51
+ const entityPascal = toPascalCase(entityName);
52
+ const schemaName = `${toPascalCase(toolName)}${entityPascal}Schema`;
53
+ const optionsType = `${toPascalCase(toolName)}${entityPascal}Options`;
54
+ const schema = `
55
+ export const ${schemaName} = z.object({
56
+ // TODO: Define schema validation for ${toolName}
57
+ });
58
+ export type ${optionsType} = z.infer<typeof ${schemaName}>;
59
+ `;
60
+ content += schema;
61
+ await fs.writeFile(filePath, content);
62
+ }
63
+ async function addToolToService(featurePath, featureName, toolName) {
64
+ const filePath = path.join(featurePath, `${featureName}.service.ts`);
65
+ // Verificar si existe el archivo de servicio
66
+ if (!await fs.pathExists(filePath))
67
+ return;
68
+ let content = await fs.readFile(filePath, 'utf-8');
69
+ const entityName = featureName.replace(/s$/, '');
70
+ const entityPascal = toPascalCase(entityName);
71
+ const methodName = `${toCamelCase(toolName)}${entityPascal}`;
72
+ const optionsType = `${toPascalCase(toolName)}${entityPascal}Options`;
73
+ // Importar tipo de opciones
74
+ if (!content.includes(optionsType)) {
75
+ content = content.replace(/\} from '\.\/.*\.validation\.js';/, ` ${optionsType},\n} from './${featureName}.validation.js';`);
76
+ }
77
+ const method = `
78
+ async ${methodName}(options: ${optionsType}, token?: string) {
79
+ // TODO: Implement ${toolName}
80
+ throw new Error('Not implemented');
81
+ }
82
+ `;
83
+ // Insertar antes del cierre de clase
84
+ const classEndRegex = /\}\s*export default/;
85
+ content = content.replace(classEndRegex, (match) => `${method}\n${match}`);
86
+ await fs.writeFile(filePath, content);
87
+ }
88
+ //# sourceMappingURL=tool-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../generators/tool-generator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { GenerateFeatureOptions } from '../types.js';
1
+ import { GenerateFeatureOptions } from '../utils/types.js';
2
2
  export declare function generateValidation(options: GenerateFeatureOptions): Promise<string>;
3
3
  //# sourceMappingURL=validation-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-generator.d.ts","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCzF"}
1
+ {"version":3,"file":"validation-generator.d.ts","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCzF"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
  import { toPascalCase } from '../utils/naming.js';
4
+ import { TOOLS } from '../utils/constants.js';
4
5
  export async function generateValidation(options) {
5
6
  const { featureName, entityName, tools, featurePath } = options;
6
7
  const entityPascal = toPascalCase(entityName);
@@ -29,27 +30,27 @@ export async function generateValidation(options) {
29
30
  function generateToolSchema(tool, entityName, entityPascal) {
30
31
  const schemaName = `${tool}${entityPascal}Schema`;
31
32
  let schema = `export const ${schemaName} = z.object({\n`;
32
- if (tool === 'list') {
33
+ if (tool === TOOLS.LIST) {
33
34
  schema += ` page,\n`;
34
35
  schema += ` perPage,\n`;
35
36
  schema += ` // TODO: Agregar filtros específicos\n`;
36
37
  }
37
- else if (tool === 'get') {
38
+ else if (tool === TOOLS.GET) {
38
39
  schema += ` id,\n`;
39
40
  }
40
- else if (tool === 'create') {
41
+ else if (tool === TOOLS.CREATE) {
41
42
  schema += ` data: z.object({ name, description, }),\n`;
42
43
  schema += ` // TODO: Agregar campos específicos del ${entityName}\n`;
43
44
  }
44
- else if (tool === 'update') {
45
+ else if (tool === TOOLS.UPDATE) {
45
46
  schema += ` id,\n`;
46
47
  schema += ` data: z.object({ name, description, }),\n`;
47
48
  schema += ` // TODO: Agregar campos actualizables\n`;
48
49
  }
49
- else if (tool === 'delete') {
50
+ else if (tool === TOOLS.DELETE) {
50
51
  schema += ` id,\n`;
51
52
  }
52
- else if (tool === 'search') {
53
+ else if (tool === TOOLS.SEARCH) {
53
54
  schema += ` query,\n`;
54
55
  schema += ` page,\n`;
55
56
  schema += ` perPage,\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"validation-generator.js","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA+B;IACpE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhE,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAE3B,aAAa;IACb,iBAAiB,IAAI,8BAA8B,CAAC;IAEpD,+BAA+B;IAC/B,iBAAiB,IAAI,6CAA6C,CAAC;IACnE,iBAAiB,IAAI,oDAAoD,CAAC;IAC1E,iBAAiB,IAAI,kDAAkD,CAAC;IACxE,iBAAiB,IAAI,wCAAwC,CAAC;IAC9D,iBAAiB,IAAI,kDAAkD,CAAC;IACxE,iBAAiB,IAAI,qDAAqD,CAAC;IAC3E,iBAAiB,IAAI,sDAAsD,CAAC;IAE5E,iCAAiC;IACjC,iBAAiB,IAAI,+CAA+C,CAAC;IAErE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAClE,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,gBAAgB,CAAC,CAAC;IACxE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAEhD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB;IAC9E,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,YAAY,QAAQ,CAAC;IAElD,IAAI,MAAM,GAAG,gBAAgB,UAAU,iBAAiB,CAAC;IAEzD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;QAC3B,MAAM,IAAI,4CAA4C,CAAC;IAC3D,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,+CAA+C,CAAC;QAC1D,MAAM,IAAI,+CAA+C,UAAU,IAAI,CAAC;IAC5E,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC;QACtB,MAAM,IAAI,+CAA+C,CAAC;QAC1D,MAAM,IAAI,6CAA6C,CAAC;IAC5D,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,cAAc,CAAC;QACzB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,eAAe,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,4BAA4B,UAAU,MAAM,CAAA;IAEtG,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"validation-generator.js","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA+B;IACpE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhE,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAE3B,aAAa;IACb,iBAAiB,IAAI,8BAA8B,CAAC;IAEpD,+BAA+B;IAC/B,iBAAiB,IAAI,6CAA6C,CAAC;IACnE,iBAAiB,IAAI,oDAAoD,CAAC;IAC1E,iBAAiB,IAAI,kDAAkD,CAAC;IACxE,iBAAiB,IAAI,wCAAwC,CAAC;IAC9D,iBAAiB,IAAI,kDAAkD,CAAC;IACxE,iBAAiB,IAAI,qDAAqD,CAAC;IAC3E,iBAAiB,IAAI,sDAAsD,CAAC;IAE5E,iCAAiC;IACjC,iBAAiB,IAAI,+CAA+C,CAAC;IAErE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAClE,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,gBAAgB,CAAC,CAAC;IACxE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAEhD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB;IAC9E,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,YAAY,QAAQ,CAAC;IAElD,IAAI,MAAM,GAAG,gBAAgB,UAAU,iBAAiB,CAAC;IAEzD,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;QAC3B,MAAM,IAAI,4CAA4C,CAAC;IAC3D,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,+CAA+C,CAAC;QAC1D,MAAM,IAAI,+CAA+C,UAAU,IAAI,CAAC;IAC5E,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,WAAW,CAAC;QACtB,MAAM,IAAI,+CAA+C,CAAC;QAC1D,MAAM,IAAI,6CAA6C,CAAC;IAC5D,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,cAAc,CAAC;QACzB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,eAAe,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,4BAA4B,UAAU,MAAM,CAAA;IAEtG,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export declare const TOOLS: {
2
+ readonly LIST: "list";
3
+ readonly GET: "get";
4
+ readonly CREATE: "create";
5
+ readonly UPDATE: "update";
6
+ readonly DELETE: "delete";
7
+ readonly SEARCH: "search";
8
+ };
9
+ export declare const SERVICE_TYPES: {
10
+ readonly API: "api";
11
+ readonly DATABASE: "database";
12
+ readonly MIXED: "mixed";
13
+ readonly CUSTOM: "custom";
14
+ readonly NONE: "none";
15
+ };
16
+ export declare const TOOL_DESCRIPTIONS: Record<string, (entity: string) => string>;
17
+ export declare const COMMON_VALIDATION_FIELDS: readonly ["id", "name", "description", "page", "perPage", "query"];
18
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;CAOR,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAOxE,CAAC;AAEF,eAAO,MAAM,wBAAwB,oEAO3B,CAAC"}
@@ -0,0 +1,32 @@
1
+ export const TOOLS = {
2
+ LIST: 'list',
3
+ GET: 'get',
4
+ CREATE: 'create',
5
+ UPDATE: 'update',
6
+ DELETE: 'delete',
7
+ SEARCH: 'search'
8
+ };
9
+ export const SERVICE_TYPES = {
10
+ API: 'api',
11
+ DATABASE: 'database',
12
+ MIXED: 'mixed',
13
+ CUSTOM: 'custom',
14
+ NONE: 'none'
15
+ };
16
+ export const TOOL_DESCRIPTIONS = {
17
+ [TOOLS.LIST]: (entity) => `List all ${entity}s`,
18
+ [TOOLS.GET]: (entity) => `Get a specific ${entity} by ID`,
19
+ [TOOLS.CREATE]: (entity) => `Create a new ${entity}`,
20
+ [TOOLS.UPDATE]: (entity) => `Update an existing ${entity}`,
21
+ [TOOLS.DELETE]: (entity) => `Delete a ${entity}`,
22
+ [TOOLS.SEARCH]: (entity) => `Search for ${entity}s`
23
+ };
24
+ export const COMMON_VALIDATION_FIELDS = [
25
+ 'id',
26
+ 'name',
27
+ 'description',
28
+ 'page',
29
+ 'perPage',
30
+ 'query'
31
+ ];
32
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAA+C;IACzE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,MAAM,GAAG;IAC/C,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,QAAQ;IACzD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,MAAM,EAAE;IACpD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,MAAM,EAAE;IAC1D,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,MAAM,EAAE;IAChD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,MAAM,GAAG;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI;IACJ,MAAM;IACN,aAAa;IACb,MAAM;IACN,SAAS;IACT,OAAO;CACD,CAAC"}
@@ -24,4 +24,27 @@ export interface ServiceMethodDefinition {
24
24
  returnType: string;
25
25
  implementation: string;
26
26
  }
27
+ export interface InitProjectAnswers {
28
+ projectName: string;
29
+ projectPath: string;
30
+ description: string;
31
+ author: string;
32
+ useDatabase: boolean;
33
+ apiBaseUrl?: string;
34
+ }
35
+ export interface FeatureGenAnswers {
36
+ featureName: string;
37
+ featureDescription: string;
38
+ needsService: boolean;
39
+ serviceType: GenerateFeatureOptions['serviceType'];
40
+ tools: string[];
41
+ entityName: string;
42
+ updateMain: boolean;
43
+ }
44
+ export interface ToolGenAnswers {
45
+ feature: string;
46
+ toolName: string;
47
+ toolDescription: string;
48
+ addToService: boolean;
49
+ }
27
50
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACzB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../utils/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apprecio-mcp-base",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "Base package for creating Apprecio MCP servers with consistency",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":""}
File without changes