ds-mcp-flowise 1.0.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.
- package/README.md +174 -0
- package/data/flowise.db +0 -0
- package/data/nodes.json +23349 -0
- package/data/summary.json +39 -0
- package/data/templates.json +53107 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +679 -0
- package/dist/index.js.map +1 -0
- package/package.json +48 -0
- package/scripts/extract-nodes.ts +368 -0
- package/scripts/prepare-database.ts +230 -0
- package/src/index.ts +768 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ds-mcp-flowise",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for building and managing Flowise chatflows and agentflows. Provides AI assistants with comprehensive knowledge of Flowise nodes and tools for workflow creation.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"ds-mcp-flowise": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"extract": "tsx scripts/extract-nodes.ts",
|
|
15
|
+
"prepare-db": "tsx scripts/prepare-database.ts"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"mcp",
|
|
19
|
+
"flowise",
|
|
20
|
+
"chatflow",
|
|
21
|
+
"agentflow",
|
|
22
|
+
"ai",
|
|
23
|
+
"workflow",
|
|
24
|
+
"langchain",
|
|
25
|
+
"claude",
|
|
26
|
+
"model-context-protocol"
|
|
27
|
+
],
|
|
28
|
+
"author": "David Soden",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
32
|
+
"glob": "^10.3.0",
|
|
33
|
+
"sql.js": "^1.10.0",
|
|
34
|
+
"typescript": "^5.3.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "^20.10.0",
|
|
38
|
+
"@types/sql.js": "^1.4.9",
|
|
39
|
+
"tsx": "^4.7.0"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18.0.0"
|
|
43
|
+
},
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/dtsoden/DS-MCP-FLOWISE.git"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract node definitions from Flowise source code
|
|
3
|
+
* Parses TypeScript files to extract node schemas without requiring runtime execution
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import { glob } from 'glob';
|
|
9
|
+
|
|
10
|
+
interface NodeInput {
|
|
11
|
+
label: string;
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
optional?: boolean;
|
|
16
|
+
default?: any;
|
|
17
|
+
options?: Array<{ label: string; name: string; description?: string }>;
|
|
18
|
+
additionalParams?: boolean;
|
|
19
|
+
rows?: number;
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
loadMethod?: string;
|
|
22
|
+
credentialNames?: string[];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface NodeCredential {
|
|
26
|
+
label: string;
|
|
27
|
+
name: string;
|
|
28
|
+
type: string;
|
|
29
|
+
credentialNames?: string[];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface ExtractedNode {
|
|
33
|
+
name: string;
|
|
34
|
+
label: string;
|
|
35
|
+
version: number;
|
|
36
|
+
type: string;
|
|
37
|
+
icon: string;
|
|
38
|
+
category: string;
|
|
39
|
+
description: string;
|
|
40
|
+
baseClasses: string[];
|
|
41
|
+
credential?: NodeCredential;
|
|
42
|
+
inputs: NodeInput[];
|
|
43
|
+
outputs?: any[];
|
|
44
|
+
filePath: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface MarketplaceTemplate {
|
|
48
|
+
name: string;
|
|
49
|
+
description: string;
|
|
50
|
+
type: 'chatflow' | 'agentflow' | 'agentflowv2' | 'tool';
|
|
51
|
+
nodes: any[];
|
|
52
|
+
edges: any[];
|
|
53
|
+
usecases?: string[];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Extract string value from assignment like: this.label = 'ChatOpenAI'
|
|
57
|
+
function extractStringValue(content: string, propertyName: string): string | null {
|
|
58
|
+
// Match both single and double quotes, and template literals
|
|
59
|
+
const patterns = [
|
|
60
|
+
new RegExp(`this\\.${propertyName}\\s*=\\s*['"\`]([^'"\`]+)['"\`]`),
|
|
61
|
+
new RegExp(`this\\.${propertyName}\\s*=\\s*['"\`]([^'"\`]+)['"\`]`),
|
|
62
|
+
];
|
|
63
|
+
|
|
64
|
+
for (const pattern of patterns) {
|
|
65
|
+
const match = content.match(pattern);
|
|
66
|
+
if (match) return match[1];
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Extract number value
|
|
72
|
+
function extractNumberValue(content: string, propertyName: string): number | null {
|
|
73
|
+
const pattern = new RegExp(`this\\.${propertyName}\\s*=\\s*([\\d.]+)`);
|
|
74
|
+
const match = content.match(pattern);
|
|
75
|
+
if (match) return parseFloat(match[1]);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Extract array value (for baseClasses)
|
|
80
|
+
function extractBaseClasses(content: string): string[] {
|
|
81
|
+
// Try to find baseClasses assignment
|
|
82
|
+
const patterns = [
|
|
83
|
+
/this\.baseClasses\s*=\s*\[([^\]]+)\]/s,
|
|
84
|
+
/this\.baseClasses\s*=\s*\[this\.type[^\]]*\]/s,
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
for (const pattern of patterns) {
|
|
88
|
+
const match = content.match(pattern);
|
|
89
|
+
if (match) {
|
|
90
|
+
// Extract string literals from the array
|
|
91
|
+
const arrayContent = match[1] || match[0];
|
|
92
|
+
const strings: string[] = [];
|
|
93
|
+
const stringMatches = arrayContent.matchAll(/['"`]([^'"`]+)['"`]/g);
|
|
94
|
+
for (const m of stringMatches) {
|
|
95
|
+
strings.push(m[1]);
|
|
96
|
+
}
|
|
97
|
+
// If this.type is referenced, we'll add it later
|
|
98
|
+
if (arrayContent.includes('this.type')) {
|
|
99
|
+
strings.unshift('__TYPE__'); // Placeholder
|
|
100
|
+
}
|
|
101
|
+
return strings;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Extract inputs array - this is complex due to nested objects
|
|
108
|
+
function extractInputs(content: string): NodeInput[] {
|
|
109
|
+
const inputs: NodeInput[] = [];
|
|
110
|
+
|
|
111
|
+
// Find the inputs array assignment
|
|
112
|
+
const inputsMatch = content.match(/this\.inputs\s*=\s*\[([\s\S]*?)\n\s{8}\]/);
|
|
113
|
+
if (!inputsMatch) return inputs;
|
|
114
|
+
|
|
115
|
+
const inputsContent = inputsMatch[1];
|
|
116
|
+
|
|
117
|
+
// Split by objects - look for { patterns
|
|
118
|
+
const objectPattern = /\{\s*\n([\s\S]*?)\n\s{12}\}/g;
|
|
119
|
+
let match;
|
|
120
|
+
|
|
121
|
+
while ((match = objectPattern.exec(inputsContent)) !== null) {
|
|
122
|
+
const objContent = match[1];
|
|
123
|
+
const input: NodeInput = {
|
|
124
|
+
label: '',
|
|
125
|
+
name: '',
|
|
126
|
+
type: ''
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
// Extract properties
|
|
130
|
+
const labelMatch = objContent.match(/label:\s*['"`]([^'"`]+)['"`]/);
|
|
131
|
+
const nameMatch = objContent.match(/name:\s*['"`]([^'"`]+)['"`]/);
|
|
132
|
+
const typeMatch = objContent.match(/type:\s*['"`]([^'"`]+)['"`]/);
|
|
133
|
+
const descMatch = objContent.match(/description:\s*['"`]([^'"`]+)['"`]/);
|
|
134
|
+
const optionalMatch = objContent.match(/optional:\s*(true|false)/);
|
|
135
|
+
const defaultMatch = objContent.match(/default:\s*(['"`]([^'"`]+)['"`]|[\d.]+|true|false)/);
|
|
136
|
+
const additionalMatch = objContent.match(/additionalParams:\s*(true|false)/);
|
|
137
|
+
const rowsMatch = objContent.match(/rows:\s*(\d+)/);
|
|
138
|
+
const placeholderMatch = objContent.match(/placeholder:\s*['"`]([^'"`]+)['"`]/);
|
|
139
|
+
const loadMethodMatch = objContent.match(/loadMethod:\s*['"`]([^'"`]+)['"`]/);
|
|
140
|
+
|
|
141
|
+
if (labelMatch) input.label = labelMatch[1];
|
|
142
|
+
if (nameMatch) input.name = nameMatch[1];
|
|
143
|
+
if (typeMatch) input.type = typeMatch[1];
|
|
144
|
+
if (descMatch) input.description = descMatch[1];
|
|
145
|
+
if (optionalMatch) input.optional = optionalMatch[1] === 'true';
|
|
146
|
+
if (defaultMatch) {
|
|
147
|
+
const val = defaultMatch[2] || defaultMatch[1];
|
|
148
|
+
if (val === 'true') input.default = true;
|
|
149
|
+
else if (val === 'false') input.default = false;
|
|
150
|
+
else if (!isNaN(Number(val))) input.default = Number(val);
|
|
151
|
+
else input.default = val.replace(/['"`]/g, '');
|
|
152
|
+
}
|
|
153
|
+
if (additionalMatch) input.additionalParams = additionalMatch[1] === 'true';
|
|
154
|
+
if (rowsMatch) input.rows = parseInt(rowsMatch[1]);
|
|
155
|
+
if (placeholderMatch) input.placeholder = placeholderMatch[1];
|
|
156
|
+
if (loadMethodMatch) input.loadMethod = loadMethodMatch[1];
|
|
157
|
+
|
|
158
|
+
// Extract options if present
|
|
159
|
+
const optionsMatch = objContent.match(/options:\s*\[([\s\S]*?)\]/);
|
|
160
|
+
if (optionsMatch) {
|
|
161
|
+
input.options = [];
|
|
162
|
+
const optPattern = /\{\s*label:\s*['"`]([^'"`]+)['"`],\s*name:\s*['"`]([^'"`]+)['"`]/g;
|
|
163
|
+
let optMatch;
|
|
164
|
+
while ((optMatch = optPattern.exec(optionsMatch[1])) !== null) {
|
|
165
|
+
input.options.push({ label: optMatch[1], name: optMatch[2] });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (input.name && input.type) {
|
|
170
|
+
inputs.push(input);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return inputs;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Extract credential object
|
|
178
|
+
function extractCredential(content: string): NodeCredential | null {
|
|
179
|
+
const credMatch = content.match(/this\.credential\s*=\s*\{([\s\S]*?)\n\s{8}\}/);
|
|
180
|
+
if (!credMatch) return null;
|
|
181
|
+
|
|
182
|
+
const credContent = credMatch[1];
|
|
183
|
+
const labelMatch = credContent.match(/label:\s*['"`]([^'"`]+)['"`]/);
|
|
184
|
+
const nameMatch = credContent.match(/name:\s*['"`]([^'"`]+)['"`]/);
|
|
185
|
+
const typeMatch = credContent.match(/type:\s*['"`]([^'"`]+)['"`]/);
|
|
186
|
+
const credNamesMatch = credContent.match(/credentialNames:\s*\[([^\]]+)\]/);
|
|
187
|
+
|
|
188
|
+
if (!labelMatch || !nameMatch) return null;
|
|
189
|
+
|
|
190
|
+
const credential: NodeCredential = {
|
|
191
|
+
label: labelMatch[1],
|
|
192
|
+
name: nameMatch[1],
|
|
193
|
+
type: typeMatch?.[1] || 'credential'
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
if (credNamesMatch) {
|
|
197
|
+
credential.credentialNames = [];
|
|
198
|
+
const namesPattern = /['"`]([^'"`]+)['"`]/g;
|
|
199
|
+
let m;
|
|
200
|
+
while ((m = namesPattern.exec(credNamesMatch[1])) !== null) {
|
|
201
|
+
credential.credentialNames.push(m[1]);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return credential;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Parse a single node file
|
|
209
|
+
function parseNodeFile(filePath: string): ExtractedNode | null {
|
|
210
|
+
try {
|
|
211
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
212
|
+
|
|
213
|
+
// Check if this is a node class
|
|
214
|
+
if (!content.includes('implements INode')) {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
const name = extractStringValue(content, 'name');
|
|
219
|
+
const label = extractStringValue(content, 'label');
|
|
220
|
+
const version = extractNumberValue(content, 'version');
|
|
221
|
+
const type = extractStringValue(content, 'type');
|
|
222
|
+
const icon = extractStringValue(content, 'icon');
|
|
223
|
+
const category = extractStringValue(content, 'category');
|
|
224
|
+
const description = extractStringValue(content, 'description');
|
|
225
|
+
|
|
226
|
+
if (!name || !label) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
let baseClasses = extractBaseClasses(content);
|
|
231
|
+
// Replace __TYPE__ placeholder with actual type
|
|
232
|
+
if (type) {
|
|
233
|
+
baseClasses = baseClasses.map(bc => bc === '__TYPE__' ? type : bc);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const inputs = extractInputs(content);
|
|
237
|
+
const credential = extractCredential(content);
|
|
238
|
+
|
|
239
|
+
return {
|
|
240
|
+
name,
|
|
241
|
+
label,
|
|
242
|
+
version: version || 1,
|
|
243
|
+
type: type || name,
|
|
244
|
+
icon: icon || '',
|
|
245
|
+
category: category || 'Unknown',
|
|
246
|
+
description: description || '',
|
|
247
|
+
baseClasses,
|
|
248
|
+
credential: credential || undefined,
|
|
249
|
+
inputs,
|
|
250
|
+
filePath: path.relative(process.cwd(), filePath)
|
|
251
|
+
};
|
|
252
|
+
} catch (error) {
|
|
253
|
+
console.error(`Error parsing ${filePath}:`, error);
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Parse marketplace templates
|
|
259
|
+
function parseMarketplaceTemplates(marketplacePath: string): MarketplaceTemplate[] {
|
|
260
|
+
const templates: MarketplaceTemplate[] = [];
|
|
261
|
+
|
|
262
|
+
const folders = [
|
|
263
|
+
{ path: 'chatflows', type: 'chatflow' as const },
|
|
264
|
+
{ path: 'agentflows', type: 'agentflow' as const },
|
|
265
|
+
{ path: 'agentflowsv2', type: 'agentflowv2' as const },
|
|
266
|
+
{ path: 'tools', type: 'tool' as const },
|
|
267
|
+
];
|
|
268
|
+
|
|
269
|
+
for (const folder of folders) {
|
|
270
|
+
const folderPath = path.join(marketplacePath, folder.path);
|
|
271
|
+
if (!fs.existsSync(folderPath)) continue;
|
|
272
|
+
|
|
273
|
+
const files = fs.readdirSync(folderPath).filter(f => f.endsWith('.json'));
|
|
274
|
+
|
|
275
|
+
for (const file of files) {
|
|
276
|
+
try {
|
|
277
|
+
const content = fs.readFileSync(path.join(folderPath, file), 'utf-8');
|
|
278
|
+
const data = JSON.parse(content);
|
|
279
|
+
|
|
280
|
+
templates.push({
|
|
281
|
+
name: file.replace('.json', ''),
|
|
282
|
+
description: data.description || '',
|
|
283
|
+
type: folder.type,
|
|
284
|
+
nodes: data.nodes || [],
|
|
285
|
+
edges: data.edges || [],
|
|
286
|
+
usecases: data.usecases || []
|
|
287
|
+
});
|
|
288
|
+
} catch (error) {
|
|
289
|
+
console.error(`Error parsing template ${file}:`, error);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return templates;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
async function main() {
|
|
298
|
+
const flowiseSourcePath = path.join(process.cwd(), 'flowise-source');
|
|
299
|
+
const nodesPath = path.join(flowiseSourcePath, 'packages', 'components', 'nodes');
|
|
300
|
+
const marketplacePath = path.join(flowiseSourcePath, 'packages', 'server', 'marketplaces');
|
|
301
|
+
const outputPath = path.join(process.cwd(), 'data');
|
|
302
|
+
|
|
303
|
+
console.log('Extracting Flowise node definitions...\n');
|
|
304
|
+
|
|
305
|
+
// Find all TypeScript node files
|
|
306
|
+
const nodeFiles = await glob('**/*.ts', { cwd: nodesPath, absolute: true });
|
|
307
|
+
console.log(`Found ${nodeFiles.length} TypeScript files`);
|
|
308
|
+
|
|
309
|
+
const nodes: ExtractedNode[] = [];
|
|
310
|
+
const categories = new Set<string>();
|
|
311
|
+
|
|
312
|
+
for (const file of nodeFiles) {
|
|
313
|
+
const node = parseNodeFile(file);
|
|
314
|
+
if (node) {
|
|
315
|
+
nodes.push(node);
|
|
316
|
+
categories.add(node.category);
|
|
317
|
+
process.stdout.write(`\rExtracted: ${nodes.length} nodes`);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
console.log(`\n\nExtracted ${nodes.length} nodes across ${categories.size} categories`);
|
|
322
|
+
console.log('Categories:', Array.from(categories).sort().join(', '));
|
|
323
|
+
|
|
324
|
+
// Parse marketplace templates
|
|
325
|
+
console.log('\nExtracting marketplace templates...');
|
|
326
|
+
const templates = parseMarketplaceTemplates(marketplacePath);
|
|
327
|
+
console.log(`Extracted ${templates.length} templates`);
|
|
328
|
+
|
|
329
|
+
// Ensure output directory exists
|
|
330
|
+
if (!fs.existsSync(outputPath)) {
|
|
331
|
+
fs.mkdirSync(outputPath, { recursive: true });
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// Write extracted data
|
|
335
|
+
fs.writeFileSync(
|
|
336
|
+
path.join(outputPath, 'nodes.json'),
|
|
337
|
+
JSON.stringify(nodes, null, 2)
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
fs.writeFileSync(
|
|
341
|
+
path.join(outputPath, 'templates.json'),
|
|
342
|
+
JSON.stringify(templates, null, 2)
|
|
343
|
+
);
|
|
344
|
+
|
|
345
|
+
// Write summary
|
|
346
|
+
const summary = {
|
|
347
|
+
extractedAt: new Date().toISOString(),
|
|
348
|
+
totalNodes: nodes.length,
|
|
349
|
+
categories: Array.from(categories).sort(),
|
|
350
|
+
totalTemplates: templates.length,
|
|
351
|
+
templatesByType: {
|
|
352
|
+
chatflow: templates.filter(t => t.type === 'chatflow').length,
|
|
353
|
+
agentflow: templates.filter(t => t.type === 'agentflow').length,
|
|
354
|
+
agentflowv2: templates.filter(t => t.type === 'agentflowv2').length,
|
|
355
|
+
tool: templates.filter(t => t.type === 'tool').length,
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
fs.writeFileSync(
|
|
360
|
+
path.join(outputPath, 'summary.json'),
|
|
361
|
+
JSON.stringify(summary, null, 2)
|
|
362
|
+
);
|
|
363
|
+
|
|
364
|
+
console.log('\nExtraction complete!');
|
|
365
|
+
console.log(`Output written to: ${outputPath}`);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prepare SQLite database from extracted node data
|
|
3
|
+
* Using sql.js for cross-platform compatibility (no native compilation needed)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import initSqlJs, { Database } from 'sql.js';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
|
|
10
|
+
const DATA_PATH = path.join(process.cwd(), 'data');
|
|
11
|
+
const DB_PATH = path.join(DATA_PATH, 'flowise.db');
|
|
12
|
+
|
|
13
|
+
interface NodeInput {
|
|
14
|
+
label: string;
|
|
15
|
+
name: string;
|
|
16
|
+
type: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
optional?: boolean;
|
|
19
|
+
default?: any;
|
|
20
|
+
options?: Array<{ label: string; name: string; description?: string }>;
|
|
21
|
+
additionalParams?: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface ExtractedNode {
|
|
25
|
+
name: string;
|
|
26
|
+
label: string;
|
|
27
|
+
version: number;
|
|
28
|
+
type: string;
|
|
29
|
+
icon: string;
|
|
30
|
+
category: string;
|
|
31
|
+
description: string;
|
|
32
|
+
baseClasses: string[];
|
|
33
|
+
credential?: any;
|
|
34
|
+
inputs: NodeInput[];
|
|
35
|
+
filePath: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface MarketplaceTemplate {
|
|
39
|
+
name: string;
|
|
40
|
+
description: string;
|
|
41
|
+
type: string;
|
|
42
|
+
nodes: any[];
|
|
43
|
+
edges: any[];
|
|
44
|
+
usecases?: string[];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async function createDatabase(): Promise<Database> {
|
|
48
|
+
const SQL = await initSqlJs();
|
|
49
|
+
const db = new SQL.Database();
|
|
50
|
+
|
|
51
|
+
// Create tables
|
|
52
|
+
db.run(`
|
|
53
|
+
-- Nodes table
|
|
54
|
+
CREATE TABLE nodes (
|
|
55
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
56
|
+
name TEXT UNIQUE NOT NULL,
|
|
57
|
+
label TEXT NOT NULL,
|
|
58
|
+
version REAL NOT NULL,
|
|
59
|
+
type TEXT NOT NULL,
|
|
60
|
+
icon TEXT,
|
|
61
|
+
category TEXT NOT NULL,
|
|
62
|
+
description TEXT,
|
|
63
|
+
base_classes TEXT,
|
|
64
|
+
credential TEXT,
|
|
65
|
+
file_path TEXT
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
-- Node inputs table
|
|
69
|
+
CREATE TABLE node_inputs (
|
|
70
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
71
|
+
node_name TEXT NOT NULL,
|
|
72
|
+
input_name TEXT NOT NULL,
|
|
73
|
+
input_label TEXT NOT NULL,
|
|
74
|
+
input_type TEXT NOT NULL,
|
|
75
|
+
description TEXT,
|
|
76
|
+
optional INTEGER DEFAULT 0,
|
|
77
|
+
default_value TEXT,
|
|
78
|
+
options TEXT,
|
|
79
|
+
additional_params INTEGER DEFAULT 0,
|
|
80
|
+
FOREIGN KEY (node_name) REFERENCES nodes(name)
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
-- Categories table
|
|
84
|
+
CREATE TABLE categories (
|
|
85
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
86
|
+
name TEXT UNIQUE NOT NULL,
|
|
87
|
+
node_count INTEGER DEFAULT 0
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
-- Templates table
|
|
91
|
+
CREATE TABLE templates (
|
|
92
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
93
|
+
name TEXT NOT NULL,
|
|
94
|
+
description TEXT,
|
|
95
|
+
type TEXT NOT NULL,
|
|
96
|
+
usecases TEXT,
|
|
97
|
+
nodes TEXT NOT NULL,
|
|
98
|
+
edges TEXT NOT NULL
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
-- Indexes
|
|
102
|
+
CREATE INDEX idx_nodes_category ON nodes(category);
|
|
103
|
+
CREATE INDEX idx_nodes_type ON nodes(type);
|
|
104
|
+
CREATE INDEX idx_node_inputs_node ON node_inputs(node_name);
|
|
105
|
+
CREATE INDEX idx_templates_type ON templates(type);
|
|
106
|
+
`);
|
|
107
|
+
|
|
108
|
+
return db;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function populateDatabase(db: Database) {
|
|
112
|
+
// Load extracted data
|
|
113
|
+
const nodesData: ExtractedNode[] = JSON.parse(
|
|
114
|
+
fs.readFileSync(path.join(DATA_PATH, 'nodes.json'), 'utf-8')
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
const templatesData: MarketplaceTemplate[] = JSON.parse(
|
|
118
|
+
fs.readFileSync(path.join(DATA_PATH, 'templates.json'), 'utf-8')
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
console.log(`Loading ${nodesData.length} nodes...`);
|
|
122
|
+
|
|
123
|
+
const categories = new Set<string>();
|
|
124
|
+
|
|
125
|
+
// Insert nodes
|
|
126
|
+
for (const node of nodesData) {
|
|
127
|
+
categories.add(node.category);
|
|
128
|
+
|
|
129
|
+
db.run(
|
|
130
|
+
`INSERT INTO nodes (name, label, version, type, icon, category, description, base_classes, credential, file_path)
|
|
131
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
132
|
+
[
|
|
133
|
+
node.name,
|
|
134
|
+
node.label,
|
|
135
|
+
node.version,
|
|
136
|
+
node.type,
|
|
137
|
+
node.icon,
|
|
138
|
+
node.category,
|
|
139
|
+
node.description,
|
|
140
|
+
JSON.stringify(node.baseClasses),
|
|
141
|
+
node.credential ? JSON.stringify(node.credential) : null,
|
|
142
|
+
node.filePath
|
|
143
|
+
]
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// Insert inputs
|
|
147
|
+
for (const input of node.inputs) {
|
|
148
|
+
db.run(
|
|
149
|
+
`INSERT INTO node_inputs (node_name, input_name, input_label, input_type, description, optional, default_value, options, additional_params)
|
|
150
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
151
|
+
[
|
|
152
|
+
node.name,
|
|
153
|
+
input.name,
|
|
154
|
+
input.label,
|
|
155
|
+
input.type,
|
|
156
|
+
input.description || null,
|
|
157
|
+
input.optional ? 1 : 0,
|
|
158
|
+
input.default !== undefined ? String(input.default) : null,
|
|
159
|
+
input.options ? JSON.stringify(input.options) : null,
|
|
160
|
+
input.additionalParams ? 1 : 0
|
|
161
|
+
]
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Insert and update categories
|
|
167
|
+
for (const category of categories) {
|
|
168
|
+
db.run(`INSERT OR IGNORE INTO categories (name) VALUES (?)`, [category]);
|
|
169
|
+
db.run(
|
|
170
|
+
`UPDATE categories SET node_count = (SELECT COUNT(*) FROM nodes WHERE category = ?) WHERE name = ?`,
|
|
171
|
+
[category, category]
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Insert templates
|
|
176
|
+
console.log(`Loading ${templatesData.length} templates...`);
|
|
177
|
+
|
|
178
|
+
for (const template of templatesData) {
|
|
179
|
+
db.run(
|
|
180
|
+
`INSERT INTO templates (name, description, type, usecases, nodes, edges)
|
|
181
|
+
VALUES (?, ?, ?, ?, ?, ?)`,
|
|
182
|
+
[
|
|
183
|
+
template.name,
|
|
184
|
+
template.description,
|
|
185
|
+
template.type,
|
|
186
|
+
template.usecases ? JSON.stringify(template.usecases) : null,
|
|
187
|
+
JSON.stringify(template.nodes),
|
|
188
|
+
JSON.stringify(template.edges)
|
|
189
|
+
]
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Get stats
|
|
194
|
+
const nodeCount = db.exec('SELECT COUNT(*) as count FROM nodes')[0].values[0][0];
|
|
195
|
+
const inputCount = db.exec('SELECT COUNT(*) as count FROM node_inputs')[0].values[0][0];
|
|
196
|
+
const categoryCount = db.exec('SELECT COUNT(*) as count FROM categories')[0].values[0][0];
|
|
197
|
+
const templateCount = db.exec('SELECT COUNT(*) as count FROM templates')[0].values[0][0];
|
|
198
|
+
|
|
199
|
+
console.log('\nDatabase prepared successfully!');
|
|
200
|
+
console.log(` Nodes: ${nodeCount}`);
|
|
201
|
+
console.log(` Inputs: ${inputCount}`);
|
|
202
|
+
console.log(` Categories: ${categoryCount}`);
|
|
203
|
+
console.log(` Templates: ${templateCount}`);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
async function main() {
|
|
207
|
+
// Check if extracted data exists
|
|
208
|
+
if (!fs.existsSync(path.join(DATA_PATH, 'nodes.json'))) {
|
|
209
|
+
console.error('Error: Extracted node data not found. Run "npm run extract" first.');
|
|
210
|
+
process.exit(1);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
console.log('Preparing SQLite database...\n');
|
|
214
|
+
|
|
215
|
+
const db = await createDatabase();
|
|
216
|
+
|
|
217
|
+
try {
|
|
218
|
+
populateDatabase(db);
|
|
219
|
+
|
|
220
|
+
// Save database to file
|
|
221
|
+
const data = db.export();
|
|
222
|
+
const buffer = Buffer.from(data);
|
|
223
|
+
fs.writeFileSync(DB_PATH, buffer);
|
|
224
|
+
console.log(`\nDatabase saved to: ${DB_PATH}`);
|
|
225
|
+
} finally {
|
|
226
|
+
db.close();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
main().catch(console.error);
|