n8n-mcp 2.10.9 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.env.example +21 -1
  2. package/README.md +72 -18
  3. package/data/nodes.db +0 -0
  4. package/dist/mcp/server.d.ts +2 -0
  5. package/dist/mcp/server.d.ts.map +1 -1
  6. package/dist/mcp/server.js +121 -32
  7. package/dist/mcp/server.js.map +1 -1
  8. package/dist/mcp/tool-docs/index.d.ts.map +1 -1
  9. package/dist/mcp/tool-docs/index.js +1 -0
  10. package/dist/mcp/tool-docs/index.js.map +1 -1
  11. package/dist/mcp/tool-docs/templates/index.d.ts +1 -0
  12. package/dist/mcp/tool-docs/templates/index.d.ts.map +1 -1
  13. package/dist/mcp/tool-docs/templates/index.js +3 -1
  14. package/dist/mcp/tool-docs/templates/index.js.map +1 -1
  15. package/dist/mcp/tool-docs/templates/search-templates-by-metadata.d.ts +3 -0
  16. package/dist/mcp/tool-docs/templates/search-templates-by-metadata.d.ts.map +1 -0
  17. package/dist/mcp/tool-docs/templates/search-templates-by-metadata.js +120 -0
  18. package/dist/mcp/tool-docs/templates/search-templates-by-metadata.js.map +1 -0
  19. package/dist/mcp/tools.d.ts.map +1 -1
  20. package/dist/mcp/tools.js +124 -4
  21. package/dist/mcp/tools.js.map +1 -1
  22. package/dist/scripts/fetch-templates.d.ts +1 -1
  23. package/dist/scripts/fetch-templates.d.ts.map +1 -1
  24. package/dist/scripts/fetch-templates.js +167 -44
  25. package/dist/scripts/fetch-templates.js.map +1 -1
  26. package/dist/scripts/generate-metadata-only.d.ts +3 -0
  27. package/dist/scripts/generate-metadata-only.d.ts.map +1 -0
  28. package/dist/scripts/generate-metadata-only.js +146 -0
  29. package/dist/scripts/generate-metadata-only.js.map +1 -0
  30. package/dist/scripts/generate-metadata-sync.d.ts +3 -0
  31. package/dist/scripts/generate-metadata-sync.d.ts.map +1 -0
  32. package/dist/scripts/generate-metadata-sync.js +136 -0
  33. package/dist/scripts/generate-metadata-sync.js.map +1 -0
  34. package/dist/scripts/test-batch-processing.d.ts +3 -0
  35. package/dist/scripts/test-batch-processing.d.ts.map +1 -0
  36. package/dist/scripts/test-batch-processing.js +144 -0
  37. package/dist/scripts/test-batch-processing.js.map +1 -0
  38. package/dist/scripts/test-metadata-generation.d.ts +3 -0
  39. package/dist/scripts/test-metadata-generation.d.ts.map +1 -0
  40. package/dist/scripts/test-metadata-generation.js +96 -0
  41. package/dist/scripts/test-metadata-generation.js.map +1 -0
  42. package/dist/scripts/validation-summary.js +1 -1
  43. package/dist/scripts/validation-summary.js.map +1 -1
  44. package/dist/templates/batch-processor.d.ts +35 -0
  45. package/dist/templates/batch-processor.d.ts.map +1 -0
  46. package/dist/templates/batch-processor.js +280 -0
  47. package/dist/templates/batch-processor.js.map +1 -0
  48. package/dist/templates/metadata-generator.d.ts +52 -0
  49. package/dist/templates/metadata-generator.d.ts.map +1 -0
  50. package/dist/templates/metadata-generator.js +254 -0
  51. package/dist/templates/metadata-generator.js.map +1 -0
  52. package/dist/templates/template-fetcher.d.ts +1 -0
  53. package/dist/templates/template-fetcher.d.ts.map +1 -1
  54. package/dist/templates/template-fetcher.js +23 -19
  55. package/dist/templates/template-fetcher.js.map +1 -1
  56. package/dist/templates/template-repository.d.ts +58 -5
  57. package/dist/templates/template-repository.d.ts.map +1 -1
  58. package/dist/templates/template-repository.js +408 -25
  59. package/dist/templates/template-repository.js.map +1 -1
  60. package/dist/templates/template-service.d.ts +50 -5
  61. package/dist/templates/template-service.d.ts.map +1 -1
  62. package/dist/templates/template-service.js +163 -21
  63. package/dist/templates/template-service.js.map +1 -1
  64. package/dist/utils/template-node-resolver.d.ts +2 -0
  65. package/dist/utils/template-node-resolver.d.ts.map +1 -0
  66. package/dist/utils/template-node-resolver.js +161 -0
  67. package/dist/utils/template-node-resolver.js.map +1 -0
  68. package/package.json +1 -1
@@ -1,8 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.TemplateRepository = void 0;
4
37
  const logger_1 = require("../utils/logger");
5
38
  const template_sanitizer_1 = require("../utils/template-sanitizer");
39
+ const zlib = __importStar(require("zlib"));
40
+ const template_node_resolver_1 = require("../utils/template-node-resolver");
6
41
  class TemplateRepository {
7
42
  constructor(db) {
8
43
  this.db = db;
@@ -71,10 +106,14 @@ class TemplateRepository {
71
106
  }
72
107
  }
73
108
  saveTemplate(workflow, detail, categories = []) {
109
+ if ((workflow.totalViews || 0) <= 10) {
110
+ logger_1.logger.debug(`Skipping template ${workflow.id}: ${workflow.name} (only ${workflow.totalViews} views)`);
111
+ return;
112
+ }
74
113
  const stmt = this.db.prepare(`
75
114
  INSERT OR REPLACE INTO templates (
76
115
  id, workflow_id, name, description, author_name, author_username,
77
- author_verified, nodes_used, workflow_json, categories, views,
116
+ author_verified, nodes_used, workflow_json_compressed, categories, views,
78
117
  created_at, updated_at, url
79
118
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
80
119
  `);
@@ -90,30 +129,74 @@ class TemplateRepository {
90
129
  tokenPreviews: detectedTokens.map(t => t.substring(0, 20) + '...')
91
130
  });
92
131
  }
93
- stmt.run(workflow.id, workflow.id, workflow.name, workflow.description || '', workflow.user.name, workflow.user.username, workflow.user.verified ? 1 : 0, JSON.stringify(nodeTypes), JSON.stringify(sanitizedWorkflow), JSON.stringify(categories), workflow.totalViews || 0, workflow.createdAt, workflow.createdAt, url);
132
+ const workflowJsonStr = JSON.stringify(sanitizedWorkflow);
133
+ const compressed = zlib.gzipSync(workflowJsonStr);
134
+ const compressedBase64 = compressed.toString('base64');
135
+ const originalSize = Buffer.byteLength(workflowJsonStr);
136
+ const compressedSize = compressed.length;
137
+ const ratio = Math.round((1 - compressedSize / originalSize) * 100);
138
+ logger_1.logger.debug(`Template ${workflow.id} compression: ${originalSize} → ${compressedSize} bytes (${ratio}% reduction)`);
139
+ stmt.run(workflow.id, workflow.id, workflow.name, workflow.description || '', workflow.user.name, workflow.user.username, workflow.user.verified ? 1 : 0, JSON.stringify(nodeTypes), compressedBase64, JSON.stringify(categories), workflow.totalViews || 0, workflow.createdAt, workflow.createdAt, url);
94
140
  }
95
- getTemplatesByNodes(nodeTypes, limit = 10) {
96
- const conditions = nodeTypes.map(() => "nodes_used LIKE ?").join(" OR ");
141
+ getTemplatesByNodes(nodeTypes, limit = 10, offset = 0) {
142
+ const resolvedTypes = (0, template_node_resolver_1.resolveTemplateNodeTypes)(nodeTypes);
143
+ if (resolvedTypes.length === 0) {
144
+ logger_1.logger.debug('No resolved types for template search', { input: nodeTypes });
145
+ return [];
146
+ }
147
+ const conditions = resolvedTypes.map(() => "nodes_used LIKE ?").join(" OR ");
97
148
  const query = `
98
149
  SELECT * FROM templates
99
150
  WHERE ${conditions}
100
151
  ORDER BY views DESC, created_at DESC
101
- LIMIT ?
152
+ LIMIT ? OFFSET ?
102
153
  `;
103
- const params = [...nodeTypes.map(n => `%"${n}"%`), limit];
104
- return this.db.prepare(query).all(...params);
154
+ const params = [...resolvedTypes.map(n => `%"${n}"%`), limit, offset];
155
+ const results = this.db.prepare(query).all(...params);
156
+ logger_1.logger.debug(`Template search found ${results.length} results`, {
157
+ input: nodeTypes,
158
+ resolved: resolvedTypes,
159
+ found: results.length
160
+ });
161
+ return results.map(t => this.decompressWorkflow(t));
105
162
  }
106
163
  getTemplate(templateId) {
107
164
  const row = this.db.prepare(`
108
165
  SELECT * FROM templates WHERE id = ?
109
166
  `).get(templateId);
110
- return row || null;
167
+ if (!row)
168
+ return null;
169
+ if (row.workflow_json_compressed && !row.workflow_json) {
170
+ try {
171
+ const compressed = Buffer.from(row.workflow_json_compressed, 'base64');
172
+ const decompressed = zlib.gunzipSync(compressed);
173
+ row.workflow_json = decompressed.toString();
174
+ }
175
+ catch (error) {
176
+ logger_1.logger.error(`Failed to decompress workflow for template ${templateId}:`, error);
177
+ return null;
178
+ }
179
+ }
180
+ return row;
111
181
  }
112
- searchTemplates(query, limit = 20) {
182
+ decompressWorkflow(template) {
183
+ if (template.workflow_json_compressed && !template.workflow_json) {
184
+ try {
185
+ const compressed = Buffer.from(template.workflow_json_compressed, 'base64');
186
+ const decompressed = zlib.gunzipSync(compressed);
187
+ template.workflow_json = decompressed.toString();
188
+ }
189
+ catch (error) {
190
+ logger_1.logger.error(`Failed to decompress workflow for template ${template.id}:`, error);
191
+ }
192
+ }
193
+ return template;
194
+ }
195
+ searchTemplates(query, limit = 20, offset = 0) {
113
196
  logger_1.logger.debug(`Searching templates for: "${query}" (FTS5: ${this.hasFTS5Support})`);
114
197
  if (!this.hasFTS5Support) {
115
198
  logger_1.logger.debug('Using LIKE search (FTS5 not available)');
116
- return this.searchTemplatesLIKE(query, limit);
199
+ return this.searchTemplatesLIKE(query, limit, offset);
117
200
  }
118
201
  try {
119
202
  const ftsQuery = query.split(' ').map(term => {
@@ -126,10 +209,10 @@ class TemplateRepository {
126
209
  JOIN templates_fts ON t.id = templates_fts.rowid
127
210
  WHERE templates_fts MATCH ?
128
211
  ORDER BY rank, t.views DESC
129
- LIMIT ?
130
- `).all(ftsQuery, limit);
212
+ LIMIT ? OFFSET ?
213
+ `).all(ftsQuery, limit, offset);
131
214
  logger_1.logger.debug(`FTS5 search returned ${results.length} results`);
132
- return results;
215
+ return results.map(t => this.decompressWorkflow(t));
133
216
  }
134
217
  catch (error) {
135
218
  logger_1.logger.warn('FTS5 template search failed, using LIKE fallback:', {
@@ -137,22 +220,22 @@ class TemplateRepository {
137
220
  query: query,
138
221
  ftsQuery: query.split(' ').map(term => `"${term}"`).join(' OR ')
139
222
  });
140
- return this.searchTemplatesLIKE(query, limit);
223
+ return this.searchTemplatesLIKE(query, limit, offset);
141
224
  }
142
225
  }
143
- searchTemplatesLIKE(query, limit = 20) {
226
+ searchTemplatesLIKE(query, limit = 20, offset = 0) {
144
227
  const likeQuery = `%${query}%`;
145
228
  logger_1.logger.debug(`Using LIKE search with pattern: ${likeQuery}`);
146
229
  const results = this.db.prepare(`
147
230
  SELECT * FROM templates
148
231
  WHERE name LIKE ? OR description LIKE ?
149
232
  ORDER BY views DESC, created_at DESC
150
- LIMIT ?
151
- `).all(likeQuery, likeQuery, limit);
233
+ LIMIT ? OFFSET ?
234
+ `).all(likeQuery, likeQuery, limit, offset);
152
235
  logger_1.logger.debug(`LIKE search returned ${results.length} results`);
153
- return results;
236
+ return results.map(t => this.decompressWorkflow(t));
154
237
  }
155
- getTemplatesForTask(task) {
238
+ getTemplatesForTask(task, limit = 10, offset = 0) {
156
239
  const taskNodeMap = {
157
240
  'ai_automation': ['@n8n/n8n-nodes-langchain.openAi', '@n8n/n8n-nodes-langchain.agent', 'n8n-nodes-base.openAi'],
158
241
  'data_sync': ['n8n-nodes-base.googleSheets', 'n8n-nodes-base.postgres', 'n8n-nodes-base.mysql'],
@@ -169,19 +252,99 @@ class TemplateRepository {
169
252
  if (!nodes) {
170
253
  return [];
171
254
  }
172
- return this.getTemplatesByNodes(nodes, 10);
255
+ return this.getTemplatesByNodes(nodes, limit, offset);
173
256
  }
174
- getAllTemplates(limit = 10) {
175
- return this.db.prepare(`
257
+ getAllTemplates(limit = 10, offset = 0, sortBy = 'views') {
258
+ const orderClause = sortBy === 'name' ? 'name ASC' :
259
+ sortBy === 'created_at' ? 'created_at DESC' :
260
+ 'views DESC, created_at DESC';
261
+ const results = this.db.prepare(`
176
262
  SELECT * FROM templates
177
- ORDER BY views DESC, created_at DESC
178
- LIMIT ?
179
- `).all(limit);
263
+ ORDER BY ${orderClause}
264
+ LIMIT ? OFFSET ?
265
+ `).all(limit, offset);
266
+ return results.map(t => this.decompressWorkflow(t));
180
267
  }
181
268
  getTemplateCount() {
182
269
  const result = this.db.prepare('SELECT COUNT(*) as count FROM templates').get();
183
270
  return result.count;
184
271
  }
272
+ getSearchCount(query) {
273
+ if (!this.hasFTS5Support) {
274
+ const likeQuery = `%${query}%`;
275
+ const result = this.db.prepare(`
276
+ SELECT COUNT(*) as count FROM templates
277
+ WHERE name LIKE ? OR description LIKE ?
278
+ `).get(likeQuery, likeQuery);
279
+ return result.count;
280
+ }
281
+ try {
282
+ const ftsQuery = query.split(' ').map(term => {
283
+ const escaped = term.replace(/"/g, '""');
284
+ return `"${escaped}"`;
285
+ }).join(' OR ');
286
+ const result = this.db.prepare(`
287
+ SELECT COUNT(*) as count FROM templates t
288
+ JOIN templates_fts ON t.id = templates_fts.rowid
289
+ WHERE templates_fts MATCH ?
290
+ `).get(ftsQuery);
291
+ return result.count;
292
+ }
293
+ catch {
294
+ const likeQuery = `%${query}%`;
295
+ const result = this.db.prepare(`
296
+ SELECT COUNT(*) as count FROM templates
297
+ WHERE name LIKE ? OR description LIKE ?
298
+ `).get(likeQuery, likeQuery);
299
+ return result.count;
300
+ }
301
+ }
302
+ getNodeTemplatesCount(nodeTypes) {
303
+ const resolvedTypes = (0, template_node_resolver_1.resolveTemplateNodeTypes)(nodeTypes);
304
+ if (resolvedTypes.length === 0) {
305
+ return 0;
306
+ }
307
+ const conditions = resolvedTypes.map(() => "nodes_used LIKE ?").join(" OR ");
308
+ const query = `SELECT COUNT(*) as count FROM templates WHERE ${conditions}`;
309
+ const params = resolvedTypes.map(n => `%"${n}"%`);
310
+ const result = this.db.prepare(query).get(...params);
311
+ return result.count;
312
+ }
313
+ getTaskTemplatesCount(task) {
314
+ const taskNodeMap = {
315
+ 'ai_automation': ['@n8n/n8n-nodes-langchain.openAi', '@n8n/n8n-nodes-langchain.agent', 'n8n-nodes-base.openAi'],
316
+ 'data_sync': ['n8n-nodes-base.googleSheets', 'n8n-nodes-base.postgres', 'n8n-nodes-base.mysql'],
317
+ 'webhook_processing': ['n8n-nodes-base.webhook', 'n8n-nodes-base.httpRequest'],
318
+ 'email_automation': ['n8n-nodes-base.gmail', 'n8n-nodes-base.emailSend', 'n8n-nodes-base.emailReadImap'],
319
+ 'slack_integration': ['n8n-nodes-base.slack', 'n8n-nodes-base.slackTrigger'],
320
+ 'data_transformation': ['n8n-nodes-base.code', 'n8n-nodes-base.set', 'n8n-nodes-base.merge'],
321
+ 'file_processing': ['n8n-nodes-base.readBinaryFile', 'n8n-nodes-base.writeBinaryFile', 'n8n-nodes-base.googleDrive'],
322
+ 'scheduling': ['n8n-nodes-base.scheduleTrigger', 'n8n-nodes-base.cron'],
323
+ 'api_integration': ['n8n-nodes-base.httpRequest', 'n8n-nodes-base.graphql'],
324
+ 'database_operations': ['n8n-nodes-base.postgres', 'n8n-nodes-base.mysql', 'n8n-nodes-base.mongodb']
325
+ };
326
+ const nodes = taskNodeMap[task];
327
+ if (!nodes) {
328
+ return 0;
329
+ }
330
+ return this.getNodeTemplatesCount(nodes);
331
+ }
332
+ getExistingTemplateIds() {
333
+ const rows = this.db.prepare('SELECT id FROM templates').all();
334
+ return new Set(rows.map(r => r.id));
335
+ }
336
+ hasTemplate(templateId) {
337
+ const result = this.db.prepare('SELECT 1 FROM templates WHERE id = ?').get(templateId);
338
+ return result !== undefined;
339
+ }
340
+ getTemplateMetadata() {
341
+ const rows = this.db.prepare('SELECT id, name, updated_at FROM templates').all();
342
+ const metadata = new Map();
343
+ for (const row of rows) {
344
+ metadata.set(row.id, { name: row.name, updated_at: row.updated_at });
345
+ }
346
+ return metadata;
347
+ }
185
348
  getTemplateStats() {
186
349
  const count = this.getTemplateCount();
187
350
  const avgViews = this.db.prepare('SELECT AVG(views) as avg FROM templates').get();
@@ -228,6 +391,226 @@ class TemplateRepository {
228
391
  logger_1.logger.warn('Failed to rebuild template FTS5 index:', error);
229
392
  }
230
393
  }
394
+ updateTemplateMetadata(templateId, metadata) {
395
+ const stmt = this.db.prepare(`
396
+ UPDATE templates
397
+ SET metadata_json = ?, metadata_generated_at = CURRENT_TIMESTAMP
398
+ WHERE id = ?
399
+ `);
400
+ stmt.run(JSON.stringify(metadata), templateId);
401
+ logger_1.logger.debug(`Updated metadata for template ${templateId}`);
402
+ }
403
+ batchUpdateMetadata(metadataMap) {
404
+ const stmt = this.db.prepare(`
405
+ UPDATE templates
406
+ SET metadata_json = ?, metadata_generated_at = CURRENT_TIMESTAMP
407
+ WHERE id = ?
408
+ `);
409
+ for (const [templateId, metadata] of metadataMap.entries()) {
410
+ stmt.run(JSON.stringify(metadata), templateId);
411
+ }
412
+ logger_1.logger.info(`Updated metadata for ${metadataMap.size} templates`);
413
+ }
414
+ getTemplatesWithoutMetadata(limit = 100) {
415
+ const stmt = this.db.prepare(`
416
+ SELECT * FROM templates
417
+ WHERE metadata_json IS NULL OR metadata_generated_at IS NULL
418
+ ORDER BY views DESC
419
+ LIMIT ?
420
+ `);
421
+ return stmt.all(limit);
422
+ }
423
+ getTemplatesWithOutdatedMetadata(daysOld = 30, limit = 100) {
424
+ const stmt = this.db.prepare(`
425
+ SELECT * FROM templates
426
+ WHERE metadata_generated_at < datetime('now', '-' || ? || ' days')
427
+ ORDER BY views DESC
428
+ LIMIT ?
429
+ `);
430
+ return stmt.all(daysOld, limit);
431
+ }
432
+ getMetadataStats() {
433
+ const total = this.getTemplateCount();
434
+ const withMetadata = this.db.prepare(`
435
+ SELECT COUNT(*) as count FROM templates
436
+ WHERE metadata_json IS NOT NULL
437
+ `).get().count;
438
+ const withoutMetadata = total - withMetadata;
439
+ const outdated = this.db.prepare(`
440
+ SELECT COUNT(*) as count FROM templates
441
+ WHERE metadata_generated_at < datetime('now', '-30 days')
442
+ `).get().count;
443
+ return { total, withMetadata, withoutMetadata, outdated };
444
+ }
445
+ searchTemplatesByMetadata(filters, limit = 20, offset = 0) {
446
+ const conditions = ['metadata_json IS NOT NULL'];
447
+ const params = [];
448
+ if (filters.category !== undefined) {
449
+ conditions.push("json_extract(metadata_json, '$.categories') LIKE '%' || ? || '%'");
450
+ const sanitizedCategory = JSON.stringify(filters.category).slice(1, -1);
451
+ params.push(sanitizedCategory);
452
+ }
453
+ if (filters.complexity) {
454
+ conditions.push("json_extract(metadata_json, '$.complexity') = ?");
455
+ params.push(filters.complexity);
456
+ }
457
+ if (filters.maxSetupMinutes !== undefined) {
458
+ conditions.push("CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) <= ?");
459
+ params.push(filters.maxSetupMinutes);
460
+ }
461
+ if (filters.minSetupMinutes !== undefined) {
462
+ conditions.push("CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) >= ?");
463
+ params.push(filters.minSetupMinutes);
464
+ }
465
+ if (filters.requiredService !== undefined) {
466
+ conditions.push("json_extract(metadata_json, '$.required_services') LIKE '%' || ? || '%'");
467
+ const sanitizedService = JSON.stringify(filters.requiredService).slice(1, -1);
468
+ params.push(sanitizedService);
469
+ }
470
+ if (filters.targetAudience !== undefined) {
471
+ conditions.push("json_extract(metadata_json, '$.target_audience') LIKE '%' || ? || '%'");
472
+ const sanitizedAudience = JSON.stringify(filters.targetAudience).slice(1, -1);
473
+ params.push(sanitizedAudience);
474
+ }
475
+ const query = `
476
+ SELECT * FROM templates
477
+ WHERE ${conditions.join(' AND ')}
478
+ ORDER BY views DESC, created_at DESC
479
+ LIMIT ? OFFSET ?
480
+ `;
481
+ params.push(limit, offset);
482
+ const results = this.db.prepare(query).all(...params);
483
+ logger_1.logger.debug(`Metadata search found ${results.length} results`, { filters, count: results.length });
484
+ return results.map(t => this.decompressWorkflow(t));
485
+ }
486
+ getMetadataSearchCount(filters) {
487
+ const conditions = ['metadata_json IS NOT NULL'];
488
+ const params = [];
489
+ if (filters.category !== undefined) {
490
+ conditions.push("json_extract(metadata_json, '$.categories') LIKE '%' || ? || '%'");
491
+ const sanitizedCategory = JSON.stringify(filters.category).slice(1, -1);
492
+ params.push(sanitizedCategory);
493
+ }
494
+ if (filters.complexity) {
495
+ conditions.push("json_extract(metadata_json, '$.complexity') = ?");
496
+ params.push(filters.complexity);
497
+ }
498
+ if (filters.maxSetupMinutes !== undefined) {
499
+ conditions.push("CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) <= ?");
500
+ params.push(filters.maxSetupMinutes);
501
+ }
502
+ if (filters.minSetupMinutes !== undefined) {
503
+ conditions.push("CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) >= ?");
504
+ params.push(filters.minSetupMinutes);
505
+ }
506
+ if (filters.requiredService !== undefined) {
507
+ conditions.push("json_extract(metadata_json, '$.required_services') LIKE '%' || ? || '%'");
508
+ const sanitizedService = JSON.stringify(filters.requiredService).slice(1, -1);
509
+ params.push(sanitizedService);
510
+ }
511
+ if (filters.targetAudience !== undefined) {
512
+ conditions.push("json_extract(metadata_json, '$.target_audience') LIKE '%' || ? || '%'");
513
+ const sanitizedAudience = JSON.stringify(filters.targetAudience).slice(1, -1);
514
+ params.push(sanitizedAudience);
515
+ }
516
+ const query = `SELECT COUNT(*) as count FROM templates WHERE ${conditions.join(' AND ')}`;
517
+ const result = this.db.prepare(query).get(...params);
518
+ return result.count;
519
+ }
520
+ getAvailableCategories() {
521
+ const results = this.db.prepare(`
522
+ SELECT DISTINCT json_extract(value, '$') as category
523
+ FROM templates, json_each(json_extract(metadata_json, '$.categories'))
524
+ WHERE metadata_json IS NOT NULL
525
+ ORDER BY category
526
+ `).all();
527
+ return results.map(r => r.category);
528
+ }
529
+ getAvailableTargetAudiences() {
530
+ const results = this.db.prepare(`
531
+ SELECT DISTINCT json_extract(value, '$') as audience
532
+ FROM templates, json_each(json_extract(metadata_json, '$.target_audience'))
533
+ WHERE metadata_json IS NOT NULL
534
+ ORDER BY audience
535
+ `).all();
536
+ return results.map(r => r.audience);
537
+ }
538
+ getTemplatesByCategory(category, limit = 10, offset = 0) {
539
+ const query = `
540
+ SELECT * FROM templates
541
+ WHERE metadata_json IS NOT NULL
542
+ AND json_extract(metadata_json, '$.categories') LIKE '%' || ? || '%'
543
+ ORDER BY views DESC, created_at DESC
544
+ LIMIT ? OFFSET ?
545
+ `;
546
+ const sanitizedCategory = JSON.stringify(category).slice(1, -1);
547
+ const results = this.db.prepare(query).all(sanitizedCategory, limit, offset);
548
+ return results.map(t => this.decompressWorkflow(t));
549
+ }
550
+ getTemplatesByComplexity(complexity, limit = 10, offset = 0) {
551
+ const query = `
552
+ SELECT * FROM templates
553
+ WHERE metadata_json IS NOT NULL
554
+ AND json_extract(metadata_json, '$.complexity') = ?
555
+ ORDER BY views DESC, created_at DESC
556
+ LIMIT ? OFFSET ?
557
+ `;
558
+ const results = this.db.prepare(query).all(complexity, limit, offset);
559
+ return results.map(t => this.decompressWorkflow(t));
560
+ }
561
+ getSearchTemplatesByMetadataCount(filters) {
562
+ let sql = `
563
+ SELECT COUNT(*) as count FROM templates
564
+ WHERE metadata_json IS NOT NULL
565
+ `;
566
+ const params = [];
567
+ if (filters.category) {
568
+ sql += ` AND json_extract(metadata_json, '$.categories') LIKE ?`;
569
+ params.push(`%"${filters.category}"%`);
570
+ }
571
+ if (filters.complexity) {
572
+ sql += ` AND json_extract(metadata_json, '$.complexity') = ?`;
573
+ params.push(filters.complexity);
574
+ }
575
+ if (filters.maxSetupMinutes !== undefined) {
576
+ sql += ` AND CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) <= ?`;
577
+ params.push(filters.maxSetupMinutes);
578
+ }
579
+ if (filters.minSetupMinutes !== undefined) {
580
+ sql += ` AND CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) >= ?`;
581
+ params.push(filters.minSetupMinutes);
582
+ }
583
+ if (filters.requiredService) {
584
+ sql += ` AND json_extract(metadata_json, '$.required_services') LIKE ?`;
585
+ params.push(`%"${filters.requiredService}"%`);
586
+ }
587
+ if (filters.targetAudience) {
588
+ sql += ` AND json_extract(metadata_json, '$.target_audience') LIKE ?`;
589
+ params.push(`%"${filters.targetAudience}"%`);
590
+ }
591
+ const result = this.db.prepare(sql).get(...params);
592
+ return result?.count || 0;
593
+ }
594
+ getUniqueCategories() {
595
+ const sql = `
596
+ SELECT DISTINCT value as category
597
+ FROM templates, json_each(metadata_json, '$.categories')
598
+ WHERE metadata_json IS NOT NULL
599
+ ORDER BY category
600
+ `;
601
+ const results = this.db.prepare(sql).all();
602
+ return results.map(r => r.category);
603
+ }
604
+ getUniqueTargetAudiences() {
605
+ const sql = `
606
+ SELECT DISTINCT value as audience
607
+ FROM templates, json_each(metadata_json, '$.target_audience')
608
+ WHERE metadata_json IS NOT NULL
609
+ ORDER BY audience
610
+ `;
611
+ const results = this.db.prepare(sql).all();
612
+ return results.map(r => r.audience);
613
+ }
231
614
  }
232
615
  exports.TemplateRepository = TemplateRepository;
233
616
  //# sourceMappingURL=template-repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-repository.js","sourceRoot":"","sources":["../../src/templates/template-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-repository.js","sourceRoot":"","sources":["../../src/templates/template-repository.ts"],"names":[],"mappings":"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"}
@@ -12,20 +12,65 @@ export interface TemplateInfo {
12
12
  views: number;
13
13
  created: string;
14
14
  url: string;
15
+ metadata?: {
16
+ categories: string[];
17
+ complexity: 'simple' | 'medium' | 'complex';
18
+ use_cases: string[];
19
+ estimated_setup_minutes: number;
20
+ required_services: string[];
21
+ key_features: string[];
22
+ target_audience: string[];
23
+ };
15
24
  }
16
25
  export interface TemplateWithWorkflow extends TemplateInfo {
17
26
  workflow: any;
18
27
  }
28
+ export interface PaginatedResponse<T> {
29
+ items: T[];
30
+ total: number;
31
+ limit: number;
32
+ offset: number;
33
+ hasMore: boolean;
34
+ }
35
+ export interface TemplateMinimal {
36
+ id: number;
37
+ name: string;
38
+ description: string;
39
+ views: number;
40
+ nodeCount: number;
41
+ metadata?: {
42
+ categories: string[];
43
+ complexity: 'simple' | 'medium' | 'complex';
44
+ use_cases: string[];
45
+ estimated_setup_minutes: number;
46
+ required_services: string[];
47
+ key_features: string[];
48
+ target_audience: string[];
49
+ };
50
+ }
19
51
  export declare class TemplateService {
20
52
  private repository;
21
53
  constructor(db: DatabaseAdapter);
22
- listNodeTemplates(nodeTypes: string[], limit?: number): Promise<TemplateInfo[]>;
23
- getTemplate(templateId: number): Promise<TemplateWithWorkflow | null>;
24
- searchTemplates(query: string, limit?: number): Promise<TemplateInfo[]>;
25
- getTemplatesForTask(task: string): Promise<TemplateInfo[]>;
54
+ listNodeTemplates(nodeTypes: string[], limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
55
+ getTemplate(templateId: number, mode?: 'nodes_only' | 'structure' | 'full'): Promise<any>;
56
+ searchTemplates(query: string, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
57
+ getTemplatesForTask(task: string, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
58
+ listTemplates(limit?: number, offset?: number, sortBy?: 'views' | 'created_at' | 'name', includeMetadata?: boolean): Promise<PaginatedResponse<TemplateMinimal>>;
26
59
  listAvailableTasks(): string[];
60
+ searchTemplatesByMetadata(filters: {
61
+ category?: string;
62
+ complexity?: 'simple' | 'medium' | 'complex';
63
+ maxSetupMinutes?: number;
64
+ minSetupMinutes?: number;
65
+ requiredService?: string;
66
+ targetAudience?: string;
67
+ }, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
68
+ getAvailableCategories(): Promise<string[]>;
69
+ getAvailableTargetAudiences(): Promise<string[]>;
70
+ getTemplatesByCategory(category: string, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
71
+ getTemplatesByComplexity(complexity: 'simple' | 'medium' | 'complex', limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
27
72
  getTemplateStats(): Promise<Record<string, any>>;
28
- fetchAndUpdateTemplates(progressCallback?: (message: string, current: number, total: number) => void): Promise<void>;
73
+ fetchAndUpdateTemplates(progressCallback?: (message: string, current: number, total: number) => void, mode?: 'rebuild' | 'update'): Promise<void>;
29
74
  private formatTemplateInfo;
30
75
  }
31
76
  //# sourceMappingURL=template-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-service.d.ts","sourceRoot":"","sources":["../../src/templates/template-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAI/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAqB;gBAE3B,EAAE,EAAE,eAAe;IAOzB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQnF,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAerE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQ3E,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQhE,kBAAkB,IAAI,MAAM,EAAE;IAkBxB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAOhD,uBAAuB,CAC3B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAC3E,OAAO,CAAC,IAAI,CAAC;IAkDhB,OAAO,CAAC,kBAAkB;CAgB3B"}
1
+ {"version":3,"file":"template-service.d.ts","sourceRoot":"","sources":["../../src/templates/template-service.ts"],"names":[],"mappings":"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"}