@cascadeflow/n8n-nodes-cascadeflow 0.4.5 → 0.4.7

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Lemony Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"CascadeFlow.node.d.ts","sourceRoot":"","sources":["../../../nodes/CascadeFlow/CascadeFlow.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB,qBAAa,WAAY,YAAW,SAAS;IAC3C,WAAW,EAAE,oBAAoB,CAyR/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAyJxE"}
1
+ {"version":3,"file":"CascadeFlow.node.d.ts","sourceRoot":"","sources":["../../../nodes/CascadeFlow/CascadeFlow.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB,qBAAa,WAAY,YAAW,SAAS;IAC3C,WAAW,EAAE,oBAAoB,CAwD/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA+MxE"}
@@ -6,266 +6,41 @@ const core_1 = require("@cascadeflow/core");
6
6
  class CascadeFlow {
7
7
  constructor() {
8
8
  this.description = {
9
- displayName: 'cascadeflow',
9
+ displayName: 'CascadeFlow',
10
10
  name: 'cascadeFlow',
11
11
  icon: 'file:cascadeflow.svg',
12
12
  group: ['transform'],
13
- version: 1,
14
- subtitle: '={{$parameter["operation"]}}',
13
+ version: 3,
14
+ subtitle: 'AI Model Cascading',
15
15
  description: 'Smart AI model cascading with 40-85% cost savings',
16
16
  defaults: {
17
- name: 'cascadeflow',
17
+ name: 'CascadeFlow',
18
18
  },
19
- inputs: ['main'],
19
+ // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
20
+ inputs: ['main', 'main', 'main'],
21
+ inputNames: ['Input', 'Drafter Model', 'Verifier Model'],
20
22
  outputs: ['main'],
21
- credentials: [
22
- {
23
- name: 'cascadeFlowApi',
24
- required: true,
25
- },
26
- ],
27
23
  properties: [
24
+ // Quality Threshold
28
25
  {
29
- displayName: 'Operation',
30
- name: 'operation',
31
- type: 'options',
32
- noDataExpression: true,
33
- options: [
34
- {
35
- name: 'Generate Text',
36
- value: 'generateText',
37
- description: 'Generate AI response with cascading',
38
- action: 'Generate text with cascading',
39
- },
40
- {
41
- name: 'Generate with Tools',
42
- value: 'generateWithTools',
43
- description: 'Generate AI response with tool calling',
44
- action: 'Generate with tool calling',
45
- },
46
- ],
47
- default: 'generateText',
48
- },
49
- // Input message
50
- {
51
- displayName: 'Message',
52
- name: 'message',
53
- type: 'string',
54
- default: '',
55
- required: true,
26
+ displayName: 'Quality Threshold',
27
+ name: 'qualityThreshold',
28
+ type: 'number',
29
+ default: 0.7,
56
30
  typeOptions: {
57
- rows: 4,
31
+ minValue: 0,
32
+ maxValue: 1,
33
+ numberPrecision: 2,
58
34
  },
59
- description: 'The message or query to send to AI',
60
- placeholder: 'What is the capital of France?',
61
- },
62
- // Model Configuration
63
- {
64
- displayName: 'Models Configuration',
65
- name: 'modelsConfig',
66
- type: 'fixedCollection',
67
- typeOptions: {
68
- multipleValues: false,
69
- },
70
- default: {},
71
- options: [
72
- {
73
- name: 'models',
74
- displayName: 'Models',
75
- values: [
76
- {
77
- displayName: 'Draft Model Cost',
78
- name: 'draftCost',
79
- type: 'number',
80
- default: 0.000375,
81
- description: 'Cost per 1K tokens (blended)',
82
- },
83
- {
84
- displayName: 'Draft Model Name',
85
- name: 'draftModel',
86
- type: 'string',
87
- default: 'gpt-4o-mini',
88
- description: 'Model name for draft generation',
89
- placeholder: 'gpt-4o-mini',
90
- },
91
- {
92
- displayName: 'Draft Model Provider',
93
- name: 'draftProvider',
94
- type: 'options',
95
- default: 'openai',
96
- options: [
97
- {
98
- name: 'Anthropic',
99
- value: 'anthropic',
100
- },
101
- {
102
- name: 'Groq',
103
- value: 'groq',
104
- },
105
- {
106
- name: 'Ollama (Local)',
107
- value: 'ollama',
108
- },
109
- {
110
- name: 'OpenAI',
111
- value: 'openai',
112
- },
113
- {
114
- name: 'Together AI',
115
- value: 'together',
116
- },
117
- ],
118
- description: 'Provider for the cheap draft model',
119
- },
120
- {
121
- displayName: 'Verifier Model Cost',
122
- name: 'verifierCost',
123
- type: 'number',
124
- default: 0.00625,
125
- description: 'Cost per 1K tokens (blended)',
126
- },
127
- {
128
- displayName: 'Verifier Model Name',
129
- name: 'verifierModel',
130
- type: 'string',
131
- default: 'gpt-4o',
132
- description: 'Model name for verification',
133
- placeholder: 'gpt-4o',
134
- },
135
- {
136
- displayName: 'Verifier Model Provider',
137
- name: 'verifierProvider',
138
- type: 'options',
139
- default: 'openai',
140
- options: [
141
- {
142
- name: 'OpenAI',
143
- value: 'openai',
144
- },
145
- {
146
- name: 'Anthropic',
147
- value: 'anthropic',
148
- },
149
- {
150
- name: 'Groq',
151
- value: 'groq',
152
- },
153
- {
154
- name: 'Together AI',
155
- value: 'together',
156
- },
157
- ],
158
- description: 'Provider for the expensive verifier model',
159
- },
160
- ],
161
- },
162
- ],
163
- },
164
- // Quality Configuration
165
- {
166
- displayName: 'Quality Settings',
167
- name: 'qualitySettings',
168
- type: 'fixedCollection',
169
- typeOptions: {
170
- multipleValues: false,
171
- },
172
- default: {},
173
- options: [
174
- {
175
- name: 'quality',
176
- displayName: 'Quality',
177
- values: [
178
- {
179
- displayName: 'Quality Threshold',
180
- name: 'threshold',
181
- type: 'number',
182
- default: 0.7,
183
- typeOptions: {
184
- minValue: 0,
185
- maxValue: 1,
186
- numberPrecision: 2,
187
- },
188
- description: 'Minimum quality score to accept draft (0-1)',
189
- },
190
- {
191
- displayName: 'Require Minimum Tokens',
192
- name: 'requireMinimumTokens',
193
- type: 'number',
194
- default: 10,
195
- typeOptions: {
196
- minValue: 0,
197
- },
198
- description: 'Minimum response length in tokens',
199
- },
200
- ],
201
- },
202
- ],
203
- },
204
- // Advanced Options
205
- {
206
- displayName: 'Advanced Options',
207
- name: 'advancedOptions',
208
- type: 'collection',
209
- default: {},
210
- placeholder: 'Add Option',
211
- options: [
212
- {
213
- displayName: 'Max Tokens',
214
- name: 'maxTokens',
215
- type: 'number',
216
- default: 1000,
217
- description: 'Maximum tokens to generate',
218
- },
219
- {
220
- displayName: 'Temperature',
221
- name: 'temperature',
222
- type: 'number',
223
- default: 0.7,
224
- typeOptions: {
225
- minValue: 0,
226
- maxValue: 2,
227
- numberPrecision: 1,
228
- },
229
- description: 'Sampling temperature (0-2)',
230
- },
231
- {
232
- displayName: 'System Prompt',
233
- name: 'systemPrompt',
234
- type: 'string',
235
- default: '',
236
- typeOptions: {
237
- rows: 3,
238
- },
239
- description: 'Optional system prompt',
240
- },
241
- ],
242
- },
243
- // Tool Calling (for generateWithTools operation)
244
- {
245
- displayName: 'Tools',
246
- name: 'tools',
247
- type: 'json',
248
- displayOptions: {
249
- show: {
250
- operation: ['generateWithTools'],
251
- },
252
- },
253
- default: '[]',
254
- description: 'Tools in OpenAI format (JSON array)',
255
- placeholder: '[{"type": "function", "function": {"name": "get_weather", ...}}]',
35
+ description: 'Minimum quality score (0-1) to accept drafter response. Lower = more cost savings, higher = better quality.',
256
36
  },
257
37
  // Output Options
258
38
  {
259
39
  displayName: 'Output',
260
40
  name: 'output',
261
41
  type: 'options',
262
- default: 'fullMetrics',
42
+ default: 'contentOnly',
263
43
  options: [
264
- {
265
- name: 'Full Metrics',
266
- value: 'fullMetrics',
267
- description: 'Return response + all cascade metrics',
268
- },
269
44
  {
270
45
  name: 'Content Only',
271
46
  value: 'contentOnly',
@@ -276,6 +51,11 @@ class CascadeFlow {
276
51
  value: 'metricsSummary',
277
52
  description: 'Return response + key metrics (cost, savings, model)',
278
53
  },
54
+ {
55
+ name: 'Full Metrics',
56
+ value: 'fullMetrics',
57
+ description: 'Return response + all cascade metrics',
58
+ },
279
59
  ],
280
60
  description: 'What data to return',
281
61
  },
@@ -283,81 +63,128 @@ class CascadeFlow {
283
63
  };
284
64
  }
285
65
  async execute() {
286
- const items = this.getInputData();
287
66
  const returnData = [];
288
- // Get credentials
289
- const credentials = await this.getCredentials('cascadeFlowApi');
290
- // Helper to get API key for provider (moved inside execute for proper 'this' context)
291
- const getApiKeyForProvider = (creds, provider) => {
292
- const keyMap = {
293
- openai: 'openaiApiKey',
294
- anthropic: 'anthropicApiKey',
295
- groq: 'groqApiKey',
296
- together: 'togetherApiKey',
297
- huggingface: 'huggingfaceApiKey',
67
+ // Get data from all three inputs
68
+ const inputData = this.getInputData(0); // Input (prompt/query)
69
+ const drafterInputData = this.getInputData(1); // Drafter model
70
+ const verifierInputData = this.getInputData(2); // Verifier model
71
+ // Helper to extract model config from provider node output
72
+ const extractModelConfig = (providerData, inputName) => {
73
+ if (!providerData || providerData.length === 0) {
74
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `No data received from ${inputName} input. Please connect a provider node (OpenAI, Anthropic, vLLM, Ollama, etc.).`);
75
+ }
76
+ const data = providerData[0].json;
77
+ // Extract model information - handle various provider formats
78
+ // OpenAI, Anthropic, Groq typically use 'model'
79
+ // Some custom providers might use 'modelName' or 'name'
80
+ const modelName = data.model ||
81
+ data.modelName ||
82
+ data.name ||
83
+ data.model_name ||
84
+ 'gpt-4o-mini';
85
+ // Try to detect provider from various fields
86
+ let providerStr = data.provider ||
87
+ data.providerName ||
88
+ '';
89
+ // If no explicit provider, try to infer from model name or base_url
90
+ if (!providerStr) {
91
+ if (modelName.includes('gpt') || modelName.includes('o1') || modelName.includes('o3')) {
92
+ providerStr = 'openai';
93
+ }
94
+ else if (modelName.includes('claude')) {
95
+ providerStr = 'anthropic';
96
+ }
97
+ else if (modelName.includes('llama') || modelName.includes('mixtral') || modelName.includes('qwen')) {
98
+ // Check for vLLM or Ollama
99
+ const baseUrl = data.baseUrl || data.base_url || '';
100
+ if (baseUrl.includes('ollama') || baseUrl.includes('11434')) {
101
+ providerStr = 'ollama';
102
+ }
103
+ else {
104
+ providerStr = 'vllm';
105
+ }
106
+ }
107
+ else {
108
+ providerStr = 'openai'; // Default fallback
109
+ }
110
+ }
111
+ // Extract API configuration
112
+ const apiKey = data.apiKey ||
113
+ data.api_key ||
114
+ data.token ||
115
+ '';
116
+ const baseUrl = data.baseUrl ||
117
+ data.base_url ||
118
+ undefined;
119
+ // Cost estimation - use provided cost or estimate based on provider
120
+ let cost = data.cost || data.modelCost;
121
+ if (!cost) {
122
+ // Rough estimates per 1K tokens (blended input/output)
123
+ if (providerStr === 'anthropic') {
124
+ cost = modelName.includes('opus') ? 0.03 : 0.006;
125
+ }
126
+ else if (providerStr === 'openai') {
127
+ if (modelName.includes('o1') || modelName.includes('o3'))
128
+ cost = 0.03;
129
+ else if (modelName.includes('gpt-4'))
130
+ cost = 0.006;
131
+ else
132
+ cost = 0.0004;
133
+ }
134
+ else {
135
+ cost = 0.001; // Default for local/other providers
136
+ }
137
+ }
138
+ const config = {
139
+ name: modelName,
140
+ provider: providerStr,
141
+ cost,
142
+ apiKey,
298
143
  };
299
- const keyName = keyMap[provider];
300
- if (!keyName) {
301
- return '';
144
+ // Add baseUrl if provided (for vLLM, Ollama, custom endpoints)
145
+ if (baseUrl) {
146
+ config.baseUrl = baseUrl;
302
147
  }
303
- return creds[keyName] || '';
148
+ return config;
304
149
  };
305
- for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
150
+ // Extract model configurations from provider inputs
151
+ const drafterConfig = extractModelConfig(drafterInputData, 'Drafter Model');
152
+ const verifierConfig = extractModelConfig(verifierInputData, 'Verifier Model');
153
+ const modelConfigs = [drafterConfig, verifierConfig];
154
+ // Process each input item
155
+ for (let itemIndex = 0; itemIndex < inputData.length; itemIndex++) {
306
156
  try {
307
157
  // Get parameters
308
- const operation = this.getNodeParameter('operation', itemIndex);
309
- const message = this.getNodeParameter('message', itemIndex);
310
- const modelsConfig = this.getNodeParameter('modelsConfig', itemIndex, {});
311
- const qualitySettings = this.getNodeParameter('qualitySettings', itemIndex, {});
312
- const advancedOptions = this.getNodeParameter('advancedOptions', itemIndex, {});
313
- const outputMode = this.getNodeParameter('output', itemIndex, 'fullMetrics');
314
- // Extract model configuration
315
- const models = modelsConfig.models || {};
316
- const quality = qualitySettings.quality || {};
317
- // Build model configs
318
- const modelConfigs = [
319
- // Draft model
320
- {
321
- name: models.draftModel || 'gpt-4o-mini',
322
- provider: models.draftProvider || 'openai',
323
- cost: models.draftCost || 0.000375,
324
- apiKey: getApiKeyForProvider(credentials, models.draftProvider || 'openai'),
325
- },
326
- // Verifier model
327
- {
328
- name: models.verifierModel || 'gpt-4o',
329
- provider: models.verifierProvider || 'openai',
330
- cost: models.verifierCost || 0.00625,
331
- apiKey: getApiKeyForProvider(credentials, models.verifierProvider || 'openai'),
332
- },
333
- ];
158
+ const qualityThreshold = this.getNodeParameter('qualityThreshold', itemIndex, 0.7);
159
+ const outputMode = this.getNodeParameter('output', itemIndex, 'contentOnly');
160
+ // Extract prompt from input data - support various field names
161
+ const item = inputData[itemIndex].json;
162
+ const prompt = item.prompt ||
163
+ item.message ||
164
+ item.query ||
165
+ item.text ||
166
+ item.input ||
167
+ JSON.stringify(item);
168
+ if (!prompt || prompt.length === 0) {
169
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No prompt found in input data. Connect a node that provides prompt, message, query, text, or input field.', { itemIndex });
170
+ }
171
+ // Extract tools if provided (for function calling)
172
+ const tools = item.tools || undefined;
334
173
  // Create CascadeAgent
335
174
  const agent = new core_1.CascadeAgent({
336
175
  models: modelConfigs,
337
176
  quality: {
338
- threshold: quality.threshold || 0.7,
339
- requireMinimumTokens: quality.requireMinimumTokens || 10,
177
+ threshold: qualityThreshold,
178
+ requireMinimumTokens: 10,
340
179
  },
341
180
  });
342
181
  // Prepare run options
343
- const runOptions = {
344
- maxTokens: advancedOptions.maxTokens,
345
- temperature: advancedOptions.temperature,
346
- systemPrompt: advancedOptions.systemPrompt,
347
- };
348
- // Add tools if generateWithTools operation
349
- if (operation === 'generateWithTools') {
350
- const toolsJson = this.getNodeParameter('tools', itemIndex, '[]');
351
- try {
352
- runOptions.tools = JSON.parse(toolsJson);
353
- }
354
- catch (error) {
355
- const errorMessage = error instanceof Error ? error.message : String(error);
356
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Invalid tools JSON: ${errorMessage}`, { itemIndex });
357
- }
182
+ const runOptions = {};
183
+ if (tools) {
184
+ runOptions.tools = tools;
358
185
  }
359
186
  // Execute cascade
360
- const result = await agent.run(message, runOptions);
187
+ const result = await agent.run(prompt, runOptions);
361
188
  // Format output based on outputMode
362
189
  let outputData;
363
190
  switch (outputMode) {
@@ -380,7 +207,6 @@ class CascadeFlow {
380
207
  };
381
208
  break;
382
209
  case 'fullMetrics':
383
- default:
384
210
  outputData = {
385
211
  ...result,
386
212
  // Add n8n-friendly summary
@@ -393,6 +219,8 @@ class CascadeFlow {
393
219
  },
394
220
  };
395
221
  break;
222
+ default:
223
+ outputData = result;
396
224
  }
397
225
  returnData.push({
398
226
  json: outputData,
@@ -1 +1 @@
1
- {"version":3,"file":"CascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/CascadeFlow/CascadeFlow.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/CascadeFlow/CascadeFlow.node.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,15 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91.76 91.76">
2
3
  <defs>
3
- <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
4
- <stop offset="0%" style="stop-color:#667eea;stop-opacity:1" />
5
- <stop offset="100%" style="stop-color:#764ba2;stop-opacity:1" />
6
- </linearGradient>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #fff;
7
+ }
8
+ </style>
7
9
  </defs>
8
-
9
- <!-- Cascade symbol -->
10
- <g fill="url(#grad1)">
11
- <!-- Top tier (draft) -->
12
- <circle cx="50" cy="20" r="8" opacity="0.6"/>
13
- <text x="50" y="24" text-anchor="middle" font-size="10" fill="white" font-weight="bold">D</text>
14
-
15
- <!-- Arrow -->
16
- <path d="M 50 28 L 50 40" stroke="url(#grad1)" stroke-width="2" fill="none" opacity="0.6"/>
17
- <polygon points="50,40 47,35 53,35" fill="url(#grad1)" opacity="0.6"/>
18
-
19
- <!-- Quality check diamond -->
20
- <g opacity="0.8">
21
- <path d="M 50 42 L 58 50 L 50 58 L 42 50 Z" fill="url(#grad1)"/>
22
- <text x="50" y="53" text-anchor="middle" font-size="8" fill="white" font-weight="bold">✓</text>
23
- </g>
24
-
25
- <!-- Branch paths -->
26
- <path d="M 50 58 L 30 75" stroke="url(#grad1)" stroke-width="2" fill="none" opacity="0.6" stroke-dasharray="2,2"/>
27
- <path d="M 50 58 L 50 75" stroke="url(#grad1)" stroke-width="2" fill="none"/>
28
-
29
- <!-- Bottom tier (verifier - optional) -->
30
- <circle cx="30" cy="80" r="7" opacity="0.4" stroke="#764ba2" stroke-width="1" fill="none"/>
31
- <text x="30" y="84" text-anchor="middle" font-size="9" fill="#764ba2" opacity="0.4">V</text>
32
-
33
- <!-- Result -->
34
- <circle cx="50" cy="80" r="8"/>
35
- <text x="50" y="84" text-anchor="middle" font-size="10" fill="white" font-weight="bold">✓</text>
36
- </g>
37
-
38
- <!-- Cost savings indicator -->
39
- <g opacity="0.9">
40
- <rect x="65" y="75" width="30" height="14" rx="3" fill="#10b981"/>
41
- <text x="80" y="84" text-anchor="middle" font-size="9" fill="white" font-weight="bold">-85%</text>
42
- </g>
43
- </svg>
10
+ <path class="cls-1" d="M38.19,54.36c-4.15-4.15-4.15-10.87,0-15.02,4.15-4.15,10.87-4.15,15.02,0,4.15,4.15,4.15,10.87,0,15.02s-10.87,4.15-15.02,0Z"/>
11
+ <path class="cls-1" d="M63.4,91.76H28.7c-7.93,0-14.35-6.42-14.35-14.35h49.05v14.35Z"/>
12
+ <path class="cls-1" d="M14.35,77.41c-7.93,0-14.35-6.42-14.35-14.35V29.8h14.35v47.61Z"/>
13
+ <path class="cls-1" d="M28.36,0h34.7c7.93,0,14.35,6.42,14.35,14.35H28.36V0Z"/>
14
+ <path class="cls-1" d="M77.41,14.35c7.93,0,14.35,6.42,14.35,14.35v33.26h-14.35V14.35Z"/>
15
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cascadeflow/n8n-nodes-cascadeflow",
3
- "version": "0.4.5",
3
+ "version": "0.4.7",
4
4
  "description": "n8n node for cascadeflow - Smart AI model cascading with 40-85% cost savings",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -21,14 +21,6 @@
21
21
  "url": "https://github.com/lemony-ai/cascadeflow.git",
22
22
  "directory": "packages/integrations/n8n"
23
23
  },
24
- "scripts": {
25
- "build": "tsc && gulp build:icons",
26
- "dev": "tsc --watch",
27
- "format": "prettier nodes credentials --write",
28
- "lint": "eslint \"nodes/**/*.ts\" \"credentials/**/*.ts\" package.json",
29
- "lintfix": "eslint \"nodes/**/*.ts\" \"credentials/**/*.ts\" package.json --fix",
30
- "prepublishOnly": "npm run build && npm run lint"
31
- },
32
24
  "files": [
33
25
  "dist"
34
26
  ],
@@ -59,5 +51,12 @@
59
51
  "openai": "^4.73.1",
60
52
  "@anthropic-ai/sdk": "^0.30.0",
61
53
  "groq-sdk": "^0.5.0"
54
+ },
55
+ "scripts": {
56
+ "build": "tsc && gulp build:icons",
57
+ "dev": "tsc --watch",
58
+ "format": "prettier nodes credentials --write",
59
+ "lint": "eslint \"nodes/**/*.ts\" \"credentials/**/*.ts\" package.json",
60
+ "lintfix": "eslint \"nodes/**/*.ts\" \"credentials/**/*.ts\" package.json --fix"
62
61
  }
63
- }
62
+ }