n8n-mcp 2.10.9 โ 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +21 -1
- package/README.md +95 -18
- package/data/nodes.db +0 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +122 -32
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-docs/index.d.ts.map +1 -1
- package/dist/mcp/tool-docs/index.js +1 -0
- package/dist/mcp/tool-docs/index.js.map +1 -1
- package/dist/mcp/tool-docs/templates/index.d.ts +1 -0
- package/dist/mcp/tool-docs/templates/index.d.ts.map +1 -1
- package/dist/mcp/tool-docs/templates/index.js +3 -1
- package/dist/mcp/tool-docs/templates/index.js.map +1 -1
- package/dist/mcp/tool-docs/templates/search-templates-by-metadata.d.ts +3 -0
- package/dist/mcp/tool-docs/templates/search-templates-by-metadata.d.ts.map +1 -0
- package/dist/mcp/tool-docs/templates/search-templates-by-metadata.js +120 -0
- package/dist/mcp/tool-docs/templates/search-templates-by-metadata.js.map +1 -0
- package/dist/mcp/tool-docs/templates/search-templates.d.ts.map +1 -1
- package/dist/mcp/tool-docs/templates/search-templates.js +12 -4
- package/dist/mcp/tool-docs/templates/search-templates.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +132 -4
- package/dist/mcp/tools.js.map +1 -1
- package/dist/scripts/fetch-templates.d.ts +1 -1
- package/dist/scripts/fetch-templates.d.ts.map +1 -1
- package/dist/scripts/fetch-templates.js +167 -44
- package/dist/scripts/fetch-templates.js.map +1 -1
- package/dist/scripts/generate-metadata-only.d.ts +3 -0
- package/dist/scripts/generate-metadata-only.d.ts.map +1 -0
- package/dist/scripts/generate-metadata-only.js +146 -0
- package/dist/scripts/generate-metadata-only.js.map +1 -0
- package/dist/scripts/generate-metadata-sync.d.ts +3 -0
- package/dist/scripts/generate-metadata-sync.d.ts.map +1 -0
- package/dist/scripts/generate-metadata-sync.js +136 -0
- package/dist/scripts/generate-metadata-sync.js.map +1 -0
- package/dist/scripts/test-batch-processing.d.ts +3 -0
- package/dist/scripts/test-batch-processing.d.ts.map +1 -0
- package/dist/scripts/test-batch-processing.js +144 -0
- package/dist/scripts/test-batch-processing.js.map +1 -0
- package/dist/scripts/test-metadata-generation.d.ts +3 -0
- package/dist/scripts/test-metadata-generation.d.ts.map +1 -0
- package/dist/scripts/test-metadata-generation.js +96 -0
- package/dist/scripts/test-metadata-generation.js.map +1 -0
- package/dist/scripts/validation-summary.js +1 -1
- package/dist/scripts/validation-summary.js.map +1 -1
- package/dist/templates/batch-processor.d.ts +35 -0
- package/dist/templates/batch-processor.d.ts.map +1 -0
- package/dist/templates/batch-processor.js +280 -0
- package/dist/templates/batch-processor.js.map +1 -0
- package/dist/templates/metadata-generator.d.ts +52 -0
- package/dist/templates/metadata-generator.d.ts.map +1 -0
- package/dist/templates/metadata-generator.js +254 -0
- package/dist/templates/metadata-generator.js.map +1 -0
- package/dist/templates/template-fetcher.d.ts +1 -0
- package/dist/templates/template-fetcher.d.ts.map +1 -1
- package/dist/templates/template-fetcher.js +23 -19
- package/dist/templates/template-fetcher.js.map +1 -1
- package/dist/templates/template-repository.d.ts +58 -5
- package/dist/templates/template-repository.d.ts.map +1 -1
- package/dist/templates/template-repository.js +408 -25
- package/dist/templates/template-repository.js.map +1 -1
- package/dist/templates/template-service.d.ts +53 -5
- package/dist/templates/template-service.d.ts.map +1 -1
- package/dist/templates/template-service.js +176 -21
- package/dist/templates/template-service.js.map +1 -1
- package/dist/utils/template-node-resolver.d.ts +2 -0
- package/dist/utils/template-node-resolver.d.ts.map +1 -0
- package/dist/utils/template-node-resolver.js +161 -0
- package/dist/utils/template-node-resolver.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
const database_adapter_1 = require("../database/database-adapter");
|
|
39
|
+
const template_repository_1 = require("../templates/template-repository");
|
|
40
|
+
const batch_processor_1 = require("../templates/batch-processor");
|
|
41
|
+
const zlib = __importStar(require("zlib"));
|
|
42
|
+
dotenv.config();
|
|
43
|
+
async function generateMetadataOnly() {
|
|
44
|
+
console.log('๐ค Generating metadata for existing templates (no fetching)...\n');
|
|
45
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
46
|
+
console.error('โ OPENAI_API_KEY not set in environment');
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
|
|
51
|
+
const repository = new template_repository_1.TemplateRepository(db);
|
|
52
|
+
const limit = parseInt(process.env.METADATA_LIMIT || '10');
|
|
53
|
+
const templatesWithoutMetadata = repository.getTemplatesWithoutMetadata(limit);
|
|
54
|
+
if (templatesWithoutMetadata.length === 0) {
|
|
55
|
+
console.log('โ
All templates already have metadata');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
console.log(`๐ Found ${templatesWithoutMetadata.length} templates without metadata\n`);
|
|
59
|
+
const processor = new batch_processor_1.BatchProcessor({
|
|
60
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
61
|
+
model: process.env.OPENAI_MODEL || 'gpt-4o-mini',
|
|
62
|
+
batchSize: parseInt(process.env.OPENAI_BATCH_SIZE || '5'),
|
|
63
|
+
outputDir: './temp/batch'
|
|
64
|
+
});
|
|
65
|
+
const requests = templatesWithoutMetadata.map((t) => {
|
|
66
|
+
let workflow = undefined;
|
|
67
|
+
try {
|
|
68
|
+
if (t.workflow_json_compressed) {
|
|
69
|
+
const decompressed = zlib.gunzipSync(Buffer.from(t.workflow_json_compressed, 'base64'));
|
|
70
|
+
workflow = JSON.parse(decompressed.toString());
|
|
71
|
+
}
|
|
72
|
+
else if (t.workflow_json) {
|
|
73
|
+
workflow = JSON.parse(t.workflow_json);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.warn(`Failed to parse workflow for template ${t.id}:`, error);
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
templateId: t.id,
|
|
81
|
+
name: t.name,
|
|
82
|
+
description: t.description,
|
|
83
|
+
nodes: JSON.parse(t.nodes_used),
|
|
84
|
+
workflow
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
console.log('๐ค Submitting batch to OpenAI...');
|
|
88
|
+
console.log(' Note: Batch processing can take 2-24 hours but usually completes in minutes\n');
|
|
89
|
+
const results = await processor.processTemplates(requests, (message, current, total) => {
|
|
90
|
+
process.stdout.write(`\r๐ ${message}: ${current}/${total}`);
|
|
91
|
+
});
|
|
92
|
+
console.log('\n\nโ
Batch processing complete!');
|
|
93
|
+
const metadataMap = new Map();
|
|
94
|
+
let successCount = 0;
|
|
95
|
+
let errorCount = 0;
|
|
96
|
+
for (const [templateId, result] of results) {
|
|
97
|
+
if (!result.error) {
|
|
98
|
+
metadataMap.set(templateId, result.metadata);
|
|
99
|
+
successCount++;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.warn(` โ ๏ธ Template ${templateId}: ${result.error}`);
|
|
103
|
+
errorCount++;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (metadataMap.size > 0) {
|
|
107
|
+
repository.batchUpdateMetadata(metadataMap);
|
|
108
|
+
console.log(`๐พ Updated metadata for ${metadataMap.size} templates`);
|
|
109
|
+
}
|
|
110
|
+
console.log('\n๐ Results:');
|
|
111
|
+
console.log(` - Templates processed: ${templatesWithoutMetadata.length}`);
|
|
112
|
+
console.log(` - Successful: ${successCount}`);
|
|
113
|
+
console.log(` - Errors: ${errorCount}`);
|
|
114
|
+
const stats = repository.getMetadataStats();
|
|
115
|
+
console.log('\n๐ Overall Metadata Statistics:');
|
|
116
|
+
console.log(` - Total templates: ${stats.total}`);
|
|
117
|
+
console.log(` - With metadata: ${stats.withMetadata}`);
|
|
118
|
+
console.log(` - Without metadata: ${stats.withoutMetadata}`);
|
|
119
|
+
console.log(` - Progress: ${Math.round((stats.withMetadata / stats.total) * 100)}%`);
|
|
120
|
+
if ('close' in db && typeof db.close === 'function') {
|
|
121
|
+
db.close();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error('\nโ Error:', error);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
130
|
+
console.log(' Metadata Generation Only (No Fetching) ');
|
|
131
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
132
|
+
console.log();
|
|
133
|
+
console.log('This script generates metadata for existing templates only.');
|
|
134
|
+
console.log('It does NOT fetch new templates from n8n.io.');
|
|
135
|
+
console.log();
|
|
136
|
+
console.log('Configuration:');
|
|
137
|
+
console.log(` - Model: ${process.env.OPENAI_MODEL || 'gpt-4o-mini'}`);
|
|
138
|
+
console.log(` - Limit: ${process.env.METADATA_LIMIT || '10'} templates`);
|
|
139
|
+
console.log(` - Batch size: ${process.env.OPENAI_BATCH_SIZE || '5'}`);
|
|
140
|
+
console.log();
|
|
141
|
+
console.log('To change settings, use environment variables:');
|
|
142
|
+
console.log(' METADATA_LIMIT=50 OPENAI_BATCH_SIZE=10 npm run metadata:generate');
|
|
143
|
+
console.log();
|
|
144
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n');
|
|
145
|
+
generateMetadataOnly().catch(console.error);
|
|
146
|
+
//# sourceMappingURL=generate-metadata-only.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-metadata-only.js","sourceRoot":"","sources":["../../src/scripts/generate-metadata-only.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-metadata-sync.d.ts","sourceRoot":"","sources":["../../src/scripts/generate-metadata-sync.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
const database_adapter_1 = require("../database/database-adapter");
|
|
39
|
+
const template_repository_1 = require("../templates/template-repository");
|
|
40
|
+
const metadata_generator_1 = require("../templates/metadata-generator");
|
|
41
|
+
dotenv.config();
|
|
42
|
+
async function generateMetadataSync() {
|
|
43
|
+
console.log('๐ Generating metadata synchronously (no batch API)...\n');
|
|
44
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
45
|
+
console.error('โ OPENAI_API_KEY not set in environment');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const limit = parseInt(process.env.METADATA_LIMIT || '50');
|
|
49
|
+
const delayMs = parseInt(process.env.API_DELAY || '1000');
|
|
50
|
+
try {
|
|
51
|
+
const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
|
|
52
|
+
const repository = new template_repository_1.TemplateRepository(db);
|
|
53
|
+
const templates = repository.getTemplatesWithoutMetadata(limit);
|
|
54
|
+
if (templates.length === 0) {
|
|
55
|
+
console.log('โ
All templates already have metadata');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
console.log(`๐ Found ${templates.length} templates to process\n`);
|
|
59
|
+
console.log(`โฑ๏ธ Processing with ${delayMs}ms delay between requests\n`);
|
|
60
|
+
const generator = new metadata_generator_1.MetadataGenerator(process.env.OPENAI_API_KEY, process.env.OPENAI_MODEL || 'gpt-4o-mini');
|
|
61
|
+
let successCount = 0;
|
|
62
|
+
let errorCount = 0;
|
|
63
|
+
for (let i = 0; i < templates.length; i++) {
|
|
64
|
+
const template = templates[i];
|
|
65
|
+
process.stdout.write(`\r[${i + 1}/${templates.length}] Processing: ${template.name.substring(0, 50)}...`);
|
|
66
|
+
try {
|
|
67
|
+
let workflow = null;
|
|
68
|
+
try {
|
|
69
|
+
if (template.workflow_json_compressed) {
|
|
70
|
+
const decompressed = Buffer.from(template.workflow_json_compressed, 'base64');
|
|
71
|
+
workflow = JSON.parse(require('zlib').gunzipSync(decompressed).toString());
|
|
72
|
+
}
|
|
73
|
+
else if (template.workflow_json) {
|
|
74
|
+
workflow = JSON.parse(template.workflow_json);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
}
|
|
79
|
+
const metadata = await generator.generateSingle({
|
|
80
|
+
templateId: template.id,
|
|
81
|
+
name: template.name,
|
|
82
|
+
description: template.description,
|
|
83
|
+
nodes: JSON.parse(template.nodes_used),
|
|
84
|
+
workflow
|
|
85
|
+
});
|
|
86
|
+
repository.updateTemplateMetadata(template.id, metadata);
|
|
87
|
+
successCount++;
|
|
88
|
+
if (i < templates.length - 1) {
|
|
89
|
+
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
errorCount++;
|
|
94
|
+
console.error(`\nโ Error for template ${template.id}: ${error.message}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
console.log('\n');
|
|
98
|
+
console.log('โ
Metadata generation complete!\n');
|
|
99
|
+
console.log('๐ Results:');
|
|
100
|
+
console.log(` - Processed: ${templates.length}`);
|
|
101
|
+
console.log(` - Successful: ${successCount}`);
|
|
102
|
+
console.log(` - Errors: ${errorCount}`);
|
|
103
|
+
const stats = repository.getMetadataStats();
|
|
104
|
+
console.log('\n๐ Overall Statistics:');
|
|
105
|
+
console.log(` - Total templates: ${stats.total}`);
|
|
106
|
+
console.log(` - With metadata: ${stats.withMetadata}`);
|
|
107
|
+
console.log(` - Without metadata: ${stats.withoutMetadata}`);
|
|
108
|
+
console.log(` - Progress: ${Math.round((stats.withMetadata / stats.total) * 100)}%`);
|
|
109
|
+
const tokensPerRequest = 1000;
|
|
110
|
+
const costPer1M = 0.15;
|
|
111
|
+
const estimatedCost = (successCount * tokensPerRequest * 2 * costPer1M) / 1000000;
|
|
112
|
+
console.log(`\n๐ฐ Estimated cost: $${estimatedCost.toFixed(3)}`);
|
|
113
|
+
if ('close' in db && typeof db.close === 'function') {
|
|
114
|
+
db.close();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
console.error('\nโ Error:', error);
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
123
|
+
console.log(' Synchronous Metadata Generation (No Batch API) ');
|
|
124
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
125
|
+
console.log();
|
|
126
|
+
console.log('Configuration:');
|
|
127
|
+
console.log(` - Model: ${process.env.OPENAI_MODEL || 'gpt-4o-mini'}`);
|
|
128
|
+
console.log(` - Limit: ${process.env.METADATA_LIMIT || '50'} templates`);
|
|
129
|
+
console.log(` - Delay: ${process.env.API_DELAY || '1000'}ms between requests`);
|
|
130
|
+
console.log();
|
|
131
|
+
console.log('To change settings, use environment variables:');
|
|
132
|
+
console.log(' METADATA_LIMIT=100 API_DELAY=500 node dist/scripts/generate-metadata-sync.js');
|
|
133
|
+
console.log();
|
|
134
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n');
|
|
135
|
+
generateMetadataSync().catch(console.error);
|
|
136
|
+
//# sourceMappingURL=generate-metadata-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-metadata-sync.js","sourceRoot":"","sources":["../../src/scripts/generate-metadata-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-batch-processing.d.ts","sourceRoot":"","sources":["../../src/scripts/test-batch-processing.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
const database_adapter_1 = require("../database/database-adapter");
|
|
39
|
+
const template_repository_1 = require("../templates/template-repository");
|
|
40
|
+
const batch_processor_1 = require("../templates/batch-processor");
|
|
41
|
+
dotenv.config();
|
|
42
|
+
async function testBatchProcessing() {
|
|
43
|
+
console.log('๐งช Testing full batch processing with OpenAI Batch API...\n');
|
|
44
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
45
|
+
console.error('โ OPENAI_API_KEY not set in environment');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
|
|
50
|
+
const repository = new template_repository_1.TemplateRepository(db);
|
|
51
|
+
const batchSize = parseInt(process.env.TEST_BATCH_SIZE || '10');
|
|
52
|
+
const templates = repository.getTemplatesWithoutMetadata(batchSize);
|
|
53
|
+
if (templates.length === 0) {
|
|
54
|
+
console.log('โ
All templates already have metadata');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
console.log(`๐ Found ${templates.length} templates to process in batch\n`);
|
|
58
|
+
const processor = new batch_processor_1.BatchProcessor({
|
|
59
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
60
|
+
model: process.env.OPENAI_MODEL || 'gpt-4o-mini',
|
|
61
|
+
batchSize: parseInt(process.env.OPENAI_BATCH_SIZE || '100'),
|
|
62
|
+
outputDir: './temp/batch'
|
|
63
|
+
});
|
|
64
|
+
const requests = templates.map(t => {
|
|
65
|
+
let workflow = null;
|
|
66
|
+
try {
|
|
67
|
+
if (t.workflow_json_compressed) {
|
|
68
|
+
const decompressed = Buffer.from(t.workflow_json_compressed, 'base64');
|
|
69
|
+
workflow = JSON.parse(require('zlib').gunzipSync(decompressed).toString());
|
|
70
|
+
}
|
|
71
|
+
else if (t.workflow_json) {
|
|
72
|
+
workflow = JSON.parse(t.workflow_json);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
console.warn(`Failed to parse workflow for template ${t.id}`);
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
templateId: t.id,
|
|
80
|
+
name: t.name,
|
|
81
|
+
description: t.description,
|
|
82
|
+
nodes: JSON.parse(t.nodes_used),
|
|
83
|
+
workflow
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
console.log('๐ค Submitting batch to OpenAI...');
|
|
87
|
+
console.log(' Note: Batch processing can take 2-24 hours to complete\n');
|
|
88
|
+
const results = await processor.processTemplates(requests, (message, current, total) => {
|
|
89
|
+
process.stdout.write(`\r๐ ${message}: ${current}/${total}`);
|
|
90
|
+
});
|
|
91
|
+
console.log('\n\nโ
Batch processing complete!\n');
|
|
92
|
+
const metadataMap = new Map();
|
|
93
|
+
let successCount = 0;
|
|
94
|
+
let errorCount = 0;
|
|
95
|
+
for (const [templateId, result] of results) {
|
|
96
|
+
if (!result.error) {
|
|
97
|
+
metadataMap.set(templateId, result.metadata);
|
|
98
|
+
successCount++;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.warn(` โ ๏ธ Template ${templateId}: ${result.error}`);
|
|
102
|
+
errorCount++;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (metadataMap.size > 0) {
|
|
106
|
+
repository.batchUpdateMetadata(metadataMap);
|
|
107
|
+
console.log(`๐พ Updated metadata for ${metadataMap.size} templates`);
|
|
108
|
+
}
|
|
109
|
+
console.log('\n๐ Batch Processing Results:');
|
|
110
|
+
console.log(` - Templates processed: ${templates.length}`);
|
|
111
|
+
console.log(` - Successful: ${successCount}`);
|
|
112
|
+
console.log(` - Errors: ${errorCount}`);
|
|
113
|
+
const stats = repository.getMetadataStats();
|
|
114
|
+
console.log('\n๐ Overall Metadata Statistics:');
|
|
115
|
+
console.log(` - Total templates: ${stats.total}`);
|
|
116
|
+
console.log(` - With metadata: ${stats.withMetadata}`);
|
|
117
|
+
console.log(` - Without metadata: ${stats.withoutMetadata}`);
|
|
118
|
+
console.log(` - Progress: ${Math.round((stats.withMetadata / stats.total) * 100)}%`);
|
|
119
|
+
if ('close' in db && typeof db.close === 'function') {
|
|
120
|
+
db.close();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error('\nโ Error:', error);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
129
|
+
console.log(' OpenAI Batch API Test ');
|
|
130
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
131
|
+
console.log();
|
|
132
|
+
console.log('This test will:');
|
|
133
|
+
console.log('1. Create a batch request file (JSONL format)');
|
|
134
|
+
console.log('2. Upload it to OpenAI');
|
|
135
|
+
console.log('3. Create a batch job');
|
|
136
|
+
console.log('4. Monitor the job until completion');
|
|
137
|
+
console.log('5. Retrieve and save results to database');
|
|
138
|
+
console.log();
|
|
139
|
+
console.log('โ ๏ธ Note: Batch jobs can take 2-24 hours to complete');
|
|
140
|
+
console.log(' but typically finish much faster for small batches');
|
|
141
|
+
console.log();
|
|
142
|
+
console.log('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n');
|
|
143
|
+
testBatchProcessing().catch(console.error);
|
|
144
|
+
//# sourceMappingURL=test-batch-processing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-batch-processing.js","sourceRoot":"","sources":["../../src/scripts/test-batch-processing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-metadata-generation.d.ts","sourceRoot":"","sources":["../../src/scripts/test-metadata-generation.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
const database_adapter_1 = require("../database/database-adapter");
|
|
39
|
+
const template_repository_1 = require("../templates/template-repository");
|
|
40
|
+
const metadata_generator_1 = require("../templates/metadata-generator");
|
|
41
|
+
dotenv.config();
|
|
42
|
+
async function testMetadataGeneration() {
|
|
43
|
+
console.log('๐งช Testing metadata generation with OpenAI...\n');
|
|
44
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
45
|
+
console.error('โ OPENAI_API_KEY not set in environment');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
|
|
50
|
+
const repository = new template_repository_1.TemplateRepository(db);
|
|
51
|
+
const templates = repository.getTemplatesWithoutMetadata(3);
|
|
52
|
+
if (templates.length === 0) {
|
|
53
|
+
console.log('โ
All templates already have metadata');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
console.log(`Found ${templates.length} templates to test with:\n`);
|
|
57
|
+
const generator = new metadata_generator_1.MetadataGenerator(process.env.OPENAI_API_KEY, process.env.OPENAI_MODEL || 'gpt-4o-mini');
|
|
58
|
+
for (const template of templates) {
|
|
59
|
+
console.log(`\n๐ Template: ${template.name}`);
|
|
60
|
+
console.log(` ID: ${template.id}`);
|
|
61
|
+
console.log(` Nodes: ${JSON.parse(template.nodes_used).slice(0, 5).join(', ')}...`);
|
|
62
|
+
try {
|
|
63
|
+
const metadata = await generator.generateSingle({
|
|
64
|
+
templateId: template.id,
|
|
65
|
+
name: template.name,
|
|
66
|
+
description: template.description,
|
|
67
|
+
nodes: JSON.parse(template.nodes_used)
|
|
68
|
+
});
|
|
69
|
+
console.log(' โ
Generated metadata:');
|
|
70
|
+
console.log(` Categories: ${metadata.categories.join(', ')}`);
|
|
71
|
+
console.log(` Complexity: ${metadata.complexity}`);
|
|
72
|
+
console.log(` Setup time: ${metadata.estimated_setup_minutes} minutes`);
|
|
73
|
+
console.log(` Use cases: ${metadata.use_cases.slice(0, 2).join(', ')}`);
|
|
74
|
+
repository.updateTemplateMetadata(template.id, metadata);
|
|
75
|
+
console.log(' ๐พ Saved to database');
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error(` โ Error generating metadata:`, error);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const stats = repository.getMetadataStats();
|
|
82
|
+
console.log('\n๐ Metadata Statistics:');
|
|
83
|
+
console.log(` - Total templates: ${stats.total}`);
|
|
84
|
+
console.log(` - With metadata: ${stats.withMetadata}`);
|
|
85
|
+
console.log(` - Without metadata: ${stats.withoutMetadata}`);
|
|
86
|
+
if ('close' in db && typeof db.close === 'function') {
|
|
87
|
+
db.close();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error('โ Error:', error);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
testMetadataGeneration().catch(console.error);
|
|
96
|
+
//# sourceMappingURL=test-metadata-generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-metadata-generation.js","sourceRoot":"","sources":["../../src/scripts/test-metadata-generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ async function runValidationSummary() {
|
|
|
43
43
|
};
|
|
44
44
|
for (const template of templates) {
|
|
45
45
|
try {
|
|
46
|
-
const workflow = JSON.parse(template.workflow_json);
|
|
46
|
+
const workflow = JSON.parse(template.workflow_json || '{}');
|
|
47
47
|
const validationResult = await validator.validateWorkflow(workflow, {
|
|
48
48
|
profile: 'minimal'
|
|
49
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-summary.js","sourceRoot":"","sources":["../../src/scripts/validation-summary.ts"],"names":[],"mappings":";;;;;;AAMA,2BAAgC;AAChC,gDAAwB;AACxB,iEAA6D;AAC7D,mEAAqE;AACrE,uEAAmE;AACnE,qFAAgF;AAChF,0EAAsE;AACtE,4CAAyC;AAEzC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAE9D,KAAK,UAAU,oBAAoB;IACjC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,wCAAqB,EAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,gCAAc,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,sCAAiB,CACrC,UAAU,EACV,mDAAuB,CACxB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,eAAe,EAAE;gBACf,YAAY,EAAE,CAAC;gBACf,eAAe,EAAE,CAAC;gBAClB,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,CAAC;gBACnB,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC;aACT;YACD,kBAAkB,EAAE,IAAI,GAAG,EAAkB;YAC7C,gBAAgB,EAAE,CAAC;SACpB,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-summary.js","sourceRoot":"","sources":["../../src/scripts/validation-summary.ts"],"names":[],"mappings":"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"}
|