@cascadeflow/n8n-nodes-cascadeflow 0.5.4 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"LmChatCascadeFlow.node.d.ts","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACX,MAAM,cAAc,CAAC;AAyRtB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,WAAW,EAAE,oBAAoB,CA4D/B;IAEI,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CAsDlE"}
1
+ {"version":3,"file":"LmChatCascadeFlow.node.d.ts","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACX,MAAM,cAAc,CAAC;AAoqBtB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,WAAW,EAAE,oBAAoB,CAiF/B;IAEI,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CA+DlE"}
@@ -3,24 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LmChatCascadeFlow = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const chat_models_1 = require("@langchain/core/language_models/chat_models");
6
- // Quality validation - optional import, fallback if unavailable
6
+ const outputs_1 = require("@langchain/core/outputs");
7
+ // Quality validation, cost tracking, and routing - optional import, fallback if unavailable
7
8
  let QualityValidator;
8
9
  let CASCADE_QUALITY_CONFIG;
10
+ let CostCalculator;
11
+ let ComplexityDetector;
12
+ let PreRouter;
9
13
  try {
10
14
  const cascadeCore = require('@cascadeflow/core');
11
15
  QualityValidator = cascadeCore.QualityValidator;
12
16
  CASCADE_QUALITY_CONFIG = cascadeCore.CASCADE_QUALITY_CONFIG;
17
+ CostCalculator = cascadeCore.CostCalculator;
18
+ ComplexityDetector = cascadeCore.ComplexityDetector;
19
+ PreRouter = cascadeCore.PreRouter;
13
20
  }
14
21
  catch (e) {
15
- // @cascadeflow/core not available - use simple validation
16
- console.warn('⚠️ @cascadeflow/core not available, using simple quality check');
22
+ // @cascadeflow/core not available - use simple validation and estimates
23
+ console.warn('⚠️ @cascadeflow/core not available, using fallbacks');
17
24
  }
18
25
  /**
19
26
  * Custom CascadeChatModel that wraps two models (drafter and verifier)
20
27
  * and implements cascading logic with cost tracking
21
28
  */
22
29
  class CascadeChatModel extends chat_models_1.BaseChatModel {
23
- constructor(drafterModel, verifierModelGetter, qualityThreshold = 0.7) {
30
+ constructor(drafterModel, verifierModelGetter, qualityThreshold = 0.7, useSemanticValidation = true, useAlignmentScoring = true, useComplexityRouting = true) {
24
31
  super({});
25
32
  // Cost tracking
26
33
  this.drafterCost = 0;
@@ -30,14 +37,23 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
30
37
  this.drafterModel = drafterModel;
31
38
  this.verifierModelGetter = verifierModelGetter;
32
39
  this.qualityThreshold = qualityThreshold;
33
- // Initialize quality validator with CASCADE-optimized config (if available)
40
+ // Initialize quality validator with CASCADE-optimized config + semantic validation
34
41
  if (QualityValidator && CASCADE_QUALITY_CONFIG) {
35
42
  try {
36
43
  this.qualityValidator = new QualityValidator({
37
44
  ...CASCADE_QUALITY_CONFIG,
38
45
  minConfidence: qualityThreshold,
46
+ useSemanticValidation, // Enable semantic ML-based validation
47
+ useAlignmentScoring, // Enable query-response alignment scoring
48
+ semanticThreshold: 0.5, // Semantic similarity threshold
39
49
  });
40
50
  console.log('✅ CascadeFlow quality validator initialized');
51
+ if (useSemanticValidation) {
52
+ console.log(' 📊 Semantic validation enabled (requires @cascadeflow/ml)');
53
+ }
54
+ if (useAlignmentScoring) {
55
+ console.log(' 🎯 Alignment scoring enabled');
56
+ }
41
57
  }
42
58
  catch (e) {
43
59
  console.warn('⚠️ Quality validator initialization failed, using simple check');
@@ -47,17 +63,147 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
47
63
  else {
48
64
  this.qualityValidator = null;
49
65
  }
66
+ // Initialize cost calculator if available
67
+ if (CostCalculator) {
68
+ try {
69
+ this.costCalculator = new CostCalculator();
70
+ console.log('💰 CascadeFlow cost calculator initialized');
71
+ }
72
+ catch (e) {
73
+ console.warn('⚠️ Cost calculator initialization failed, using estimates');
74
+ this.costCalculator = null;
75
+ }
76
+ }
77
+ else {
78
+ this.costCalculator = null;
79
+ }
80
+ // Initialize complexity detector and PreRouter if enabled
81
+ if (useComplexityRouting && ComplexityDetector && PreRouter) {
82
+ try {
83
+ this.complexityDetector = new ComplexityDetector();
84
+ // Note: PreRouter needs model configs, but we only have 2 models in n8n (drafter/verifier)
85
+ // We'll use complexity detection to decide: trivial/simple → drafter, hard/expert → direct verifier
86
+ this.preRouter = null; // Not using full PreRouter since we only have 2 models
87
+ console.log('🧠 CascadeFlow complexity-based routing enabled');
88
+ }
89
+ catch (e) {
90
+ console.warn('⚠️ Complexity detector initialization failed');
91
+ this.complexityDetector = null;
92
+ this.preRouter = null;
93
+ }
94
+ }
95
+ else {
96
+ this.complexityDetector = null;
97
+ this.preRouter = null;
98
+ }
50
99
  }
51
100
  async getVerifierModel() {
52
101
  if (!this.verifierModel) {
53
102
  console.log(' 🔄 Loading verifier model from TOP port (labeled "Verifier")...');
54
103
  this.verifierModel = await this.verifierModelGetter();
55
- const verifierType = typeof this.verifierModel._llmType === 'function' ? this.verifierModel._llmType() : 'unknown';
56
- const verifierModelName = this.verifierModel.modelName || this.verifierModel.model || 'unknown';
57
- console.log(` ✓ Verifier model loaded: ${verifierType} (${verifierModelName})`);
104
+ const verifierInfo = this.getModelInfo(this.verifierModel);
105
+ console.log(` ✓ Verifier model loaded: ${verifierInfo}`);
58
106
  }
59
107
  return this.verifierModel;
60
108
  }
109
+ /**
110
+ * Helper to get model info string (type and name)
111
+ */
112
+ getModelInfo(model) {
113
+ const type = typeof model._llmType === 'function' ? model._llmType() : 'unknown';
114
+ const modelName = model.modelName || model.model || 'unknown';
115
+ return `${type} (${modelName})`;
116
+ }
117
+ /**
118
+ * Check if message contains tool calls
119
+ * Tool calls can be in additional_kwargs.tool_calls or additional_kwargs.function_call
120
+ */
121
+ hasToolCalls(message) {
122
+ const additionalKwargs = message.additional_kwargs || {};
123
+ // Check for tool_calls array (OpenAI format)
124
+ if (additionalKwargs.tool_calls && Array.isArray(additionalKwargs.tool_calls) && additionalKwargs.tool_calls.length > 0) {
125
+ return true;
126
+ }
127
+ // Check for function_call object (legacy format)
128
+ if (additionalKwargs.function_call && typeof additionalKwargs.function_call === 'object') {
129
+ return true;
130
+ }
131
+ // Check for tool_calls in response_metadata (Anthropic format)
132
+ const responseMetadata = message.response_metadata || {};
133
+ if (responseMetadata.tool_calls && Array.isArray(responseMetadata.tool_calls) && responseMetadata.tool_calls.length > 0) {
134
+ return true;
135
+ }
136
+ return false;
137
+ }
138
+ /**
139
+ * Get count of tool calls in message
140
+ */
141
+ getToolCallsCount(message) {
142
+ const additionalKwargs = message.additional_kwargs || {};
143
+ const responseMetadata = message.response_metadata || {};
144
+ // Count tool_calls array
145
+ if (additionalKwargs.tool_calls && Array.isArray(additionalKwargs.tool_calls)) {
146
+ return additionalKwargs.tool_calls.length;
147
+ }
148
+ // Count function_call (legacy - counts as 1)
149
+ if (additionalKwargs.function_call) {
150
+ return 1;
151
+ }
152
+ // Count Anthropic format tool_calls
153
+ if (responseMetadata.tool_calls && Array.isArray(responseMetadata.tool_calls)) {
154
+ return responseMetadata.tool_calls.length;
155
+ }
156
+ return 0;
157
+ }
158
+ /**
159
+ * Calculate accurate cost from message token usage
160
+ * Falls back to rough estimates if cost calculator unavailable
161
+ */
162
+ async calculateMessageCost(message, model) {
163
+ // Extract token usage from response metadata
164
+ const responseMetadata = message.response_metadata || {};
165
+ const tokenUsage = responseMetadata.tokenUsage || responseMetadata.usage || {};
166
+ const inputTokens = tokenUsage.promptTokens || tokenUsage.prompt_tokens || 0;
167
+ const outputTokens = tokenUsage.completionTokens || tokenUsage.completion_tokens || 0;
168
+ // Get model name
169
+ const modelName = model.modelName || model.model || 'unknown';
170
+ // Use cost calculator if available
171
+ if (this.costCalculator && inputTokens > 0) {
172
+ try {
173
+ const cost = await this.costCalculator.calculateCost({
174
+ model: modelName,
175
+ inputTokens,
176
+ outputTokens,
177
+ });
178
+ return cost;
179
+ }
180
+ catch (e) {
181
+ console.warn(`Cost calculation failed for ${modelName}, using estimate`);
182
+ }
183
+ }
184
+ // Fallback to rough estimates based on model name
185
+ const estimatesPerMillion = {
186
+ 'gpt-4o-mini': { input: 0.15, output: 0.6 },
187
+ 'gpt-4o': { input: 5.0, output: 15.0 },
188
+ 'gpt-4-turbo': { input: 10.0, output: 30.0 },
189
+ 'gpt-4': { input: 30.0, output: 60.0 },
190
+ 'gpt-3.5-turbo': { input: 0.5, output: 1.5 },
191
+ 'claude-3-5-sonnet': { input: 3.0, output: 15.0 },
192
+ 'claude-3-haiku': { input: 0.25, output: 1.25 },
193
+ default: { input: 1.0, output: 2.0 },
194
+ };
195
+ // Find matching estimate
196
+ let estimate = estimatesPerMillion.default;
197
+ for (const [key, value] of Object.entries(estimatesPerMillion)) {
198
+ if (modelName.includes(key)) {
199
+ estimate = value;
200
+ break;
201
+ }
202
+ }
203
+ const cost = (inputTokens / 1000000) * estimate.input +
204
+ (outputTokens / 1000000) * estimate.output;
205
+ return cost;
206
+ }
61
207
  /**
62
208
  * Simple quality validation fallback (when @cascadeflow/core not available)
63
209
  */
@@ -92,17 +238,98 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
92
238
  }
93
239
  async _generate(messages, options, runManager) {
94
240
  try {
95
- // Step 1: Try the drafter model
96
- const drafterModelType = typeof this.drafterModel._llmType === 'function' ? this.drafterModel._llmType() : 'unknown';
97
- const drafterModelName = this.drafterModel.modelName || this.drafterModel.model || 'unknown';
98
- const drafterInfo = `${drafterModelType} (${drafterModelName})`;
241
+ // Step 1: Detect query complexity (if enabled)
242
+ const queryText = messages.map(m => m.content.toString()).join(' ');
243
+ let complexity;
244
+ let shouldSkipDrafter = false;
245
+ if (this.complexityDetector) {
246
+ try {
247
+ const complexityResult = await this.complexityDetector.detectComplexity(queryText);
248
+ complexity = complexityResult.level;
249
+ // Skip drafter for hard/expert queries - go directly to verifier
250
+ if (complexity === 'hard' || complexity === 'expert') {
251
+ shouldSkipDrafter = true;
252
+ await runManager?.handleText(`🧠 Complexity: ${complexity} → Routing directly to verifier (skip drafter)\n`);
253
+ console.log(`🧠 Complexity: ${complexity} → Direct verifier route`);
254
+ }
255
+ else {
256
+ await runManager?.handleText(`🧠 Complexity: ${complexity} → Trying drafter first\n`);
257
+ console.log(`🧠 Complexity: ${complexity} → Drafter route`);
258
+ }
259
+ }
260
+ catch (e) {
261
+ console.warn('Complexity detection failed, using normal flow');
262
+ }
263
+ }
264
+ // Step 1a: If complexity routing says skip drafter, go directly to verifier
265
+ if (shouldSkipDrafter) {
266
+ const verifierModel = await this.getVerifierModel();
267
+ const verifierInfo = this.getModelInfo(verifierModel);
268
+ await runManager?.handleText(`⚡ Direct route: Using verifier for ${complexity} query\n`);
269
+ const verifierStartTime = Date.now();
270
+ const verifierMessage = await verifierModel.invoke(messages, options);
271
+ const verifierLatency = Date.now() - verifierStartTime;
272
+ this.verifierCount++;
273
+ const verifierCost = await this.calculateMessageCost(verifierMessage, verifierModel);
274
+ const flowLog = `\n┌────────────────────────────────────────────┐\n│ ⚡ FLOW: DIRECT VERIFIER (SMART ROUTE) │\n└────────────────────────────────────────────┘\n Query → Complexity Check (${complexity}) → Verifier → Response\n 🧠 Smart routing: Skipped drafter for complex query\n Model used: ${verifierInfo}\n Latency: ${verifierLatency}ms\n 💰 Cost: $${verifierCost.toFixed(6)}\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
275
+ await runManager?.handleText(flowLog);
276
+ console.log(flowLog);
277
+ if (!verifierMessage.response_metadata) {
278
+ verifierMessage.response_metadata = {};
279
+ }
280
+ verifierMessage.response_metadata.cascadeflow = {
281
+ flow: 'direct_verifier',
282
+ complexity,
283
+ latency_ms: verifierLatency,
284
+ cost_usd: verifierCost,
285
+ model_used: 'verifier',
286
+ reason: `Query complexity (${complexity}) warranted direct verifier routing`
287
+ };
288
+ return {
289
+ generations: [{
290
+ text: verifierMessage.content.toString(),
291
+ message: verifierMessage,
292
+ }],
293
+ };
294
+ }
295
+ // Step 2: Try the drafter model (normal flow)
296
+ const drafterInfo = this.getModelInfo(this.drafterModel);
99
297
  await runManager?.handleText(`🎯 CascadeFlow: Trying drafter model (from BOTTOM port): ${drafterInfo}\n`);
100
298
  console.log(`🎯 CascadeFlow: Trying drafter model (from BOTTOM port): ${drafterInfo}`);
101
299
  const drafterStartTime = Date.now();
102
300
  const drafterMessage = await this.drafterModel.invoke(messages, options);
103
301
  const drafterLatency = Date.now() - drafterStartTime;
104
302
  this.drafterCount++;
105
- // Step 2: Quality check using CascadeFlow validator (or simple fallback)
303
+ // Step 2: Check if response contains tool calls
304
+ // Tool calls skip quality validation and pass through directly
305
+ const hasToolCalls = this.hasToolCalls(drafterMessage);
306
+ if (hasToolCalls) {
307
+ const toolCallsCount = this.getToolCallsCount(drafterMessage);
308
+ const toolLog = ` 🔧 Tool calls detected (${toolCallsCount}) - bypassing quality check\n`;
309
+ await runManager?.handleText(toolLog);
310
+ console.log(toolLog);
311
+ const flowLog = `\n┌──────────────────────────────────────────┐\n│ 🔧 FLOW: TOOL CALLS (DIRECT PASS) │\n└──────────────────────────────────────────┘\n Query → Drafter → Tool Calls (${toolCallsCount}) → Response\n ⚡ Tool calling: Drafter generated tool calls\n Model used: ${drafterInfo}\n Latency: ${drafterLatency}ms\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
312
+ await runManager?.handleText(flowLog);
313
+ console.log(flowLog);
314
+ // Add tool call metadata
315
+ if (!drafterMessage.response_metadata) {
316
+ drafterMessage.response_metadata = {};
317
+ }
318
+ drafterMessage.response_metadata.cascadeflow = {
319
+ flow: 'tool_calls_direct',
320
+ has_tool_calls: true,
321
+ tool_calls_count: toolCallsCount,
322
+ latency_ms: drafterLatency,
323
+ model_used: 'drafter'
324
+ };
325
+ return {
326
+ generations: [{
327
+ text: drafterMessage.content.toString(),
328
+ message: drafterMessage,
329
+ }],
330
+ };
331
+ }
332
+ // Step 3: Quality check using CascadeFlow validator (or simple fallback)
106
333
  const responseText = drafterMessage.content.toString();
107
334
  let validationResult;
108
335
  if (this.qualityValidator) {
@@ -133,13 +360,11 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
133
360
  await runManager?.handleText(simpleLog);
134
361
  console.log(simpleLog);
135
362
  }
136
- // Step 3: If quality is sufficient, return drafter response
363
+ // Step 4: If quality is sufficient, return drafter response
137
364
  if (validationResult.passed) {
138
- // Estimate cost savings
139
- const estimatedDrafterCost = 0.0001; // $0.0001 per request (rough estimate)
140
- const estimatedVerifierCost = 0.0016; // $0.0016 per request (rough estimate)
141
- const savings = ((estimatedVerifierCost - estimatedDrafterCost) / estimatedVerifierCost * 100).toFixed(1);
142
- const flowLog = `\n┌─────────────────────────────────────────┐\n│ ✅ FLOW: DRAFTER ACCEPTED (FAST PATH) │\n└─────────────────────────────────────────┘\n Query → Drafter → Quality Check ✅ → Response\n ⚡ Fast & Cheap: Used drafter model only\n Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})\n Quality score: ${validationResult.score.toFixed(2)}\n Latency: ${drafterLatency}ms\n 💰 Cost savings: ~${savings}% (used cheap model)\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
365
+ // Calculate actual cost
366
+ const drafterCost = await this.calculateMessageCost(drafterMessage, this.drafterModel);
367
+ const flowLog = `\n┌─────────────────────────────────────────┐\n│ ✅ FLOW: DRAFTER ACCEPTED (FAST PATH) │\n└─────────────────────────────────────────┘\n Query → Drafter → Quality Check ✅ → Response\n ⚡ Fast & Cheap: Used drafter model only\n Model used: ${drafterInfo}\n Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})\n Quality score: ${validationResult.score.toFixed(2)}\n Latency: ${drafterLatency}ms\n 💰 Cost: $${drafterCost.toFixed(6)} (drafter only)\n 📊 Stats: ${this.drafterCount} drafter, ${this.verifierCount} verifier\n`;
143
368
  await runManager?.handleText(flowLog);
144
369
  console.log(flowLog);
145
370
  // Add flow metadata to message for n8n UI visibility (logs only, not in response text)
@@ -151,7 +376,7 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
151
376
  confidence: validationResult.confidence,
152
377
  quality_score: validationResult.score,
153
378
  latency_ms: drafterLatency,
154
- cost_savings_percent: parseFloat(savings),
379
+ cost_usd: drafterCost,
155
380
  model_used: 'drafter'
156
381
  };
157
382
  return {
@@ -161,18 +386,22 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
161
386
  }],
162
387
  };
163
388
  }
164
- // Step 4: Otherwise, escalate to verifier
389
+ // Step 5: Otherwise, escalate to verifier
165
390
  const escalateLog = `\n┌────────────────────────────────────────────────┐\n│ ⚠️ FLOW: ESCALATED TO VERIFIER (SLOW PATH) │\n└────────────────────────────────────────────────┘\n Query → Drafter → Quality Check ❌ → Verifier → Response\n 🔄 Escalating: Drafter quality too low, using verifier\n Confidence: ${validationResult.confidence.toFixed(2)} < ${this.qualityThreshold} (threshold)\n Reason: ${validationResult.reason}\n Drafter latency: ${drafterLatency}ms\n 🔄 Loading verifier model...\n`;
166
391
  await runManager?.handleText(escalateLog);
167
392
  console.log(escalateLog);
168
393
  const verifierStartTime = Date.now();
169
394
  const verifierModel = await this.getVerifierModel();
395
+ const verifierInfo = this.getModelInfo(verifierModel);
170
396
  const verifierMessage = await verifierModel.invoke(messages, options);
171
397
  const verifierLatency = Date.now() - verifierStartTime;
172
398
  this.verifierCount++;
399
+ // Calculate costs
400
+ const verifierCost = await this.calculateMessageCost(verifierMessage, verifierModel);
401
+ const totalCost = verifierCost; // Drafter cost is wasted in this path
173
402
  const totalLatency = drafterLatency + verifierLatency;
174
403
  const acceptanceRate = (this.drafterCount / (this.drafterCount + this.verifierCount) * 100).toFixed(1);
175
- const completionLog = ` ✅ Verifier completed successfully\n Verifier latency: ${verifierLatency}ms\n Total latency: ${totalLatency}ms (drafter: ${drafterLatency}ms + verifier: ${verifierLatency}ms)\n 💰 Cost: Full verifier cost (0% savings this request)\n 📊 Stats: ${this.drafterCount} drafter (${acceptanceRate}%), ${this.verifierCount} verifier\n`;
404
+ const completionLog = ` ✅ Verifier completed successfully\n Model used: ${verifierInfo}\n Verifier latency: ${verifierLatency}ms\n Total latency: ${totalLatency}ms (drafter: ${drafterLatency}ms + verifier: ${verifierLatency}ms)\n 💰 Cost: $${totalCost.toFixed(6)} (verifier only, drafter attempt wasted)\n 📊 Stats: ${this.drafterCount} drafter (${acceptanceRate}%), ${this.verifierCount} verifier\n`;
176
405
  await runManager?.handleText(completionLog);
177
406
  console.log(completionLog);
178
407
  // Add flow metadata to message for n8n UI visibility (logs only, not in response text)
@@ -185,7 +414,7 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
185
414
  drafter_latency_ms: drafterLatency,
186
415
  verifier_latency_ms: verifierLatency,
187
416
  total_latency_ms: totalLatency,
188
- cost_savings_percent: 0,
417
+ cost_usd: totalCost,
189
418
  model_used: 'verifier',
190
419
  reason: validationResult.reason
191
420
  };
@@ -203,9 +432,10 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
203
432
  await runManager?.handleText(errorLog);
204
433
  console.log(errorLog);
205
434
  const verifierModel = await this.getVerifierModel();
435
+ const verifierInfo = this.getModelInfo(verifierModel);
206
436
  const verifierMessage = await verifierModel.invoke(messages, options);
207
437
  this.verifierCount++;
208
- const fallbackCompleteLog = ` ✅ Verifier fallback completed successfully\n 💰 Cost: Full verifier cost (fallback due to error)\n`;
438
+ const fallbackCompleteLog = ` ✅ Verifier fallback completed successfully\n Model used: ${verifierInfo}\n 💰 Cost: Full verifier cost (fallback due to error)\n`;
209
439
  await runManager?.handleText(fallbackCompleteLog);
210
440
  console.log(fallbackCompleteLog);
211
441
  // Add flow metadata to message for n8n UI visibility (logs only, not in response text)
@@ -226,6 +456,101 @@ class CascadeChatModel extends chat_models_1.BaseChatModel {
226
456
  };
227
457
  }
228
458
  }
459
+ /**
460
+ * Streaming implementation for real-time cascade feedback
461
+ * Streams drafter response, then quality checks, then optionally streams verifier
462
+ */
463
+ async *_streamResponseChunks(messages, options, runManager) {
464
+ try {
465
+ // Step 1: Stream drafter response
466
+ const drafterInfo = this.getModelInfo(this.drafterModel);
467
+ await runManager?.handleText(`🎯 CascadeFlow (Streaming): Trying drafter model: ${drafterInfo}\n`);
468
+ console.log(`🎯 CascadeFlow (Streaming): Trying drafter model: ${drafterInfo}`);
469
+ const drafterStartTime = Date.now();
470
+ let fullDrafterContent = '';
471
+ let lastChunk = null;
472
+ // Stream all drafter chunks to user in real-time
473
+ const drafterStream = await this.drafterModel.stream(messages, options);
474
+ for await (const chunk of drafterStream) {
475
+ fullDrafterContent += chunk.content;
476
+ // Convert AIMessageChunk to ChatGenerationChunk
477
+ const generationChunk = new outputs_1.ChatGenerationChunk({
478
+ text: chunk.content.toString(),
479
+ message: chunk,
480
+ });
481
+ lastChunk = generationChunk;
482
+ yield generationChunk; // Stream to user immediately
483
+ }
484
+ const drafterLatency = Date.now() - drafterStartTime;
485
+ this.drafterCount++;
486
+ // Step 2: Check for tool calls (after streaming complete)
487
+ if (lastChunk && this.hasToolCalls(lastChunk.message)) {
488
+ const toolCallsCount = this.getToolCallsCount(lastChunk.message);
489
+ const toolLog = `\n🔧 Tool calls detected (${toolCallsCount}) - cascade complete\n`;
490
+ await runManager?.handleText(toolLog);
491
+ console.log(toolLog);
492
+ return; // Done streaming
493
+ }
494
+ // Step 3: Quality check (after streaming complete)
495
+ const queryText = messages.map(m => m.content.toString()).join(' ');
496
+ await runManager?.handleText(`\n📊 Running quality check...\n`);
497
+ let validationResult;
498
+ if (this.qualityValidator) {
499
+ try {
500
+ validationResult = await this.qualityValidator.validate(fullDrafterContent, queryText);
501
+ await runManager?.handleText(` Confidence: ${validationResult.confidence.toFixed(2)} (threshold: ${this.qualityThreshold})\n`);
502
+ }
503
+ catch (e) {
504
+ validationResult = this.simpleQualityCheck(fullDrafterContent);
505
+ }
506
+ }
507
+ else {
508
+ validationResult = this.simpleQualityCheck(fullDrafterContent);
509
+ }
510
+ // Step 4: If quality sufficient, we're done
511
+ if (validationResult.passed) {
512
+ await runManager?.handleText(`✅ Quality check passed - cascade complete (drafter accepted)\n`);
513
+ console.log(`✅ Streaming: Drafter accepted (${drafterLatency}ms)`);
514
+ return; // Done streaming
515
+ }
516
+ // Step 5: Quality insufficient - escalate to verifier and stream its response
517
+ await runManager?.handleText(`\n⚠️ Quality check failed - escalating to verifier...\n`);
518
+ console.log(`⚠️ Streaming: Escalating to verifier (confidence ${validationResult.confidence.toFixed(2)} < ${this.qualityThreshold})`);
519
+ const verifierModel = await this.getVerifierModel();
520
+ const verifierInfo = this.getModelInfo(verifierModel);
521
+ await runManager?.handleText(`🔄 Streaming verifier response from ${verifierInfo}...\n`);
522
+ const verifierStartTime = Date.now();
523
+ const verifierStream = await verifierModel.stream(messages, options);
524
+ this.verifierCount++;
525
+ // Stream verifier response
526
+ for await (const chunk of verifierStream) {
527
+ // Convert AIMessageChunk to ChatGenerationChunk
528
+ yield new outputs_1.ChatGenerationChunk({
529
+ text: chunk.content.toString(),
530
+ message: chunk,
531
+ });
532
+ }
533
+ const verifierLatency = Date.now() - verifierStartTime;
534
+ await runManager?.handleText(`\n✅ Verifier streaming complete (${verifierLatency}ms)\n`);
535
+ console.log(`✅ Streaming: Verifier complete (${verifierLatency}ms)`);
536
+ }
537
+ catch (error) {
538
+ // Fallback to verifier on error
539
+ const errorMsg = error instanceof Error ? error.message : String(error);
540
+ await runManager?.handleText(`\n❌ Drafter error - falling back to verifier: ${errorMsg}\n`);
541
+ console.log(`❌ Streaming: Drafter error, using verifier fallback`);
542
+ const verifierModel = await this.getVerifierModel();
543
+ const verifierStream = await verifierModel.stream(messages, options);
544
+ this.verifierCount++;
545
+ for await (const chunk of verifierStream) {
546
+ // Convert AIMessageChunk to ChatGenerationChunk
547
+ yield new outputs_1.ChatGenerationChunk({
548
+ text: chunk.content.toString(),
549
+ message: chunk,
550
+ });
551
+ }
552
+ }
553
+ }
229
554
  }
230
555
  class LmChatCascadeFlow {
231
556
  constructor() {
@@ -288,12 +613,36 @@ class LmChatCascadeFlow {
288
613
  },
289
614
  description: 'Minimum quality score (0-1) to accept drafter response. Lower = more cost savings, higher = better quality.',
290
615
  },
616
+ {
617
+ displayName: 'Enable Semantic Validation',
618
+ name: 'useSemanticValidation',
619
+ type: 'boolean',
620
+ default: true,
621
+ description: 'Whether to use ML-based semantic similarity validation for better quality detection',
622
+ },
623
+ {
624
+ displayName: 'Enable Alignment Scoring',
625
+ name: 'useAlignmentScoring',
626
+ type: 'boolean',
627
+ default: true,
628
+ description: 'Whether to score query-response alignment for improved validation accuracy',
629
+ },
630
+ {
631
+ displayName: 'Enable Complexity Routing',
632
+ name: 'useComplexityRouting',
633
+ type: 'boolean',
634
+ default: true,
635
+ description: 'Whether to route queries directly to the verifier based on detected complexity',
636
+ },
291
637
  ],
292
638
  };
293
639
  }
294
640
  async supplyData() {
295
641
  // Get parameters
296
642
  const qualityThreshold = this.getNodeParameter('qualityThreshold', 0, 0.64);
643
+ const useSemanticValidation = this.getNodeParameter('useSemanticValidation', 0, true);
644
+ const useAlignmentScoring = this.getNodeParameter('useAlignmentScoring', 0, true);
645
+ const useComplexityRouting = this.getNodeParameter('useComplexityRouting', 0, true);
297
646
  // Get the drafter model immediately (at index 1 - bottom port, labeled "Drafter")
298
647
  const drafterData = await this.getInputConnectionData('ai_languageModel', 1);
299
648
  const drafterModel = (Array.isArray(drafterData) ? drafterData[0] : drafterData);
@@ -320,8 +669,11 @@ class LmChatCascadeFlow {
320
669
  console.log(` ├─ TOP port (labeled "Verifier") → VERIFIER model: lazy-loaded (will fetch only if needed)`);
321
670
  console.log(` └─ BOTTOM port (labeled "Drafter") → DRAFTER model: ${getDrafterInfo()}`);
322
671
  console.log(` Quality threshold: ${qualityThreshold}`);
323
- // Create and return the cascade model with lazy verifier
324
- const cascadeModel = new CascadeChatModel(drafterModel, verifierModelGetter, qualityThreshold);
672
+ console.log(` Semantic validation: ${useSemanticValidation ? 'enabled' : 'disabled'}`);
673
+ console.log(` Alignment scoring: ${useAlignmentScoring ? 'enabled' : 'disabled'}`);
674
+ console.log(` Complexity routing: ${useComplexityRouting ? 'enabled' : 'disabled'}`);
675
+ // Create and return the cascade model with lazy verifier and advanced features
676
+ const cascadeModel = new CascadeChatModel(drafterModel, verifierModelGetter, qualityThreshold, useSemanticValidation, useAlignmentScoring, useComplexityRouting);
325
677
  return {
326
678
  response: cascadeModel,
327
679
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LmChatCascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":";;;AAOA,+CAAsE;AAEtE,6EAA4E;AAK5E,gEAAgE;AAChE,IAAI,gBAAqB,CAAC;AAC1B,IAAI,sBAA2B,CAAC;AAChC,IAAI,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjD,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IAChD,sBAAsB,GAAG,WAAW,CAAC,sBAAsB,CAAC;AAC9D,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,0DAA0D;IAC1D,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,gBAAiB,SAAQ,2BAAa;IAiB1C,YACE,YAA2B,EAC3B,mBAAiD,EACjD,mBAA2B,GAAG;QAE9B,KAAK,CAAC,EAAE,CAAC,CAAC;QAjBZ,gBAAgB;QACR,gBAAW,GAAW,CAAC,CAAC;QACxB,iBAAY,GAAW,CAAC,CAAC;QACzB,iBAAY,GAAW,CAAC,CAAC;QACzB,kBAAa,GAAW,CAAC,CAAC;QAchC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,4EAA4E;QAC5E,IAAI,gBAAgB,IAAI,sBAAsB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;oBAC3C,GAAG,sBAAsB;oBACzB,aAAa,EAAE,gBAAgB;iBAChC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;gBAChF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACnH,MAAM,iBAAiB,GAAI,IAAI,CAAC,aAAqB,CAAC,SAAS,IAAK,IAAI,CAAC,aAAqB,CAAC,KAAK,IAAI,SAAS,CAAC;YAClH,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,KAAK,iBAAiB,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,YAAoB;QAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAEnD,mDAAmD;QACnD,IAAI,UAAU,GAAG,IAAI,CAAC;QAEtB,4CAA4C;QAC5C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,gCAAgC;QAChC,MAAM,kBAAkB,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACtG,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,oCAAoC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,GAAG;YAC1F,CAAC,CAAC,oCAAoC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAE5F,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,QAAuB,EACvB,OAAkC,EAClC,UAAqC;QAErC,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACrH,MAAM,gBAAgB,GAAI,IAAI,CAAC,YAAoB,CAAC,SAAS,IAAK,IAAI,CAAC,YAAoB,CAAC,KAAK,IAAI,SAAS,CAAC;YAC/G,MAAM,WAAW,GAAG,GAAG,gBAAgB,KAAK,gBAAgB,GAAG,CAAC;YAChE,MAAM,UAAU,EAAE,UAAU,CAAC,4DAA4D,WAAW,IAAI,CAAC,CAAC;YAC1G,OAAO,CAAC,GAAG,CAAC,4DAA4D,WAAW,EAAE,CAAC,CAAC;YACvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;YAErD,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,yEAAyE;YACzE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEvD,IAAI,gBAAqB,CAAC;YAE1B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,yCAAyC;gBACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpE,IAAI,CAAC;oBACH,gBAAgB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;oBACjF,MAAM,UAAU,GAAG,wCAAwC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,gBAAgB,CAAC,MAAM,IAAI,CAAC;oBACzI,MAAM,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAExB,IAAI,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;wBAC7C,MAAM,YAAY,GAAG,oBAAoB,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;wBAChG,MAAM,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;wBAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,uDAAuD,CAAC,IAAI,CAAC;oBAC9E,MAAM,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACzD,MAAM,SAAS,GAAG,0CAA0C,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvG,MAAM,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAED,4DAA4D;YAC5D,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBAC5B,wBAAwB;gBACxB,MAAM,oBAAoB,GAAG,MAAM,CAAC,CAAC,uCAAuC;gBAC5E,MAAM,qBAAqB,GAAG,MAAM,CAAC,CAAC,uCAAuC;gBAC7E,MAAM,OAAO,GAAG,CAAC,CAAC,qBAAqB,GAAG,oBAAoB,CAAC,GAAG,qBAAqB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE1G,MAAM,OAAO,GAAG,sPAAsP,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,wBAAwB,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,cAAc,4BAA4B,OAAO,sCAAsC,IAAI,CAAC,YAAY,aAAa,IAAI,CAAC,aAAa,aAAa,CAAC;gBAEhjB,MAAM,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAErB,uFAAuF;gBACvF,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;oBACrC,cAAsB,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBACjD,CAAC;gBACA,cAAsB,CAAC,iBAAiB,CAAC,WAAW,GAAG;oBACtD,IAAI,EAAE,kBAAkB;oBACxB,UAAU,EAAE,gBAAgB,CAAC,UAAU;oBACvC,aAAa,EAAE,gBAAgB,CAAC,KAAK;oBACrC,UAAU,EAAE,cAAc;oBAC1B,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC;oBACzC,UAAU,EAAE,SAAS;iBACtB,CAAC;gBAEF,OAAO;oBACL,WAAW,EAAE,CAAC;4BACZ,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE;4BACvC,OAAO,EAAE,cAAc;yBACxB,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,0CAA0C;YAC1C,MAAM,WAAW,GAAG,sSAAsS,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,4BAA4B,gBAAgB,CAAC,MAAM,yBAAyB,cAAc,uCAAuC,CAAC;YAE7f,MAAM,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;YAEvD,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;YACtD,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEvG,MAAM,aAAa,GAAG,8DAA8D,eAAe,yBAAyB,YAAY,gBAAgB,cAAc,kBAAkB,eAAe,+EAA+E,IAAI,CAAC,YAAY,aAAa,cAAc,OAAO,IAAI,CAAC,aAAa,aAAa,CAAC;YAEzW,MAAM,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAE3B,uFAAuF;YACvF,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;gBACtC,eAAuB,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAClD,CAAC;YACA,eAAuB,CAAC,iBAAiB,CAAC,WAAW,GAAG;gBACvD,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,kBAAkB,EAAE,cAAc;gBAClC,mBAAmB,EAAE,eAAe;gBACpC,gBAAgB,EAAE,YAAY;gBAC9B,oBAAoB,EAAE,CAAC;gBACvB,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,gBAAgB,CAAC,MAAM;aAChC,CAAC;YAEF,OAAO;gBACL,WAAW,EAAE,CAAC;wBACZ,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;wBACxC,OAAO,EAAE,eAAe;qBACzB,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,4QAA4Q,QAAQ,qCAAqC,CAAC;YAE3U,MAAM,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,MAAM,mBAAmB,GAAG,yGAAyG,CAAC;YAEtI,MAAM,UAAU,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAEjC,uFAAuF;YACvF,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;gBACtC,eAAuB,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAClD,CAAC;YACA,eAAuB,CAAC,iBAAiB,CAAC,WAAW,GAAG;gBACvD,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,QAAQ;gBACf,oBAAoB,EAAE,CAAC;gBACvB,UAAU,EAAE,UAAU;aACvB,CAAC;YAEF,OAAO;gBACL,WAAW,EAAE,CAAC;wBACZ,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;wBACxC,OAAO,EAAE,eAAe;qBACzB,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAa,iBAAiB;IAA9B;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,yIAAyI;YACtJ,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;aACpB;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACb,EAAE,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;iBACvC;gBACD,SAAS,EAAE;oBACT,oBAAoB,EAAE;wBACpB;4BACE,GAAG,EAAE,0CAA0C;yBAChD;qBACF;iBACF;aACF;YACD,yCAAyC;YACzC,sFAAsF;YACtF,iGAAiG;YACjG,wEAAwE;YACxE,2FAA2F;YAC3F,MAAM,EAAE;gBACN;oBACE,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,kBAAyB;oBAC/B,cAAc,EAAE,CAAC;oBACjB,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,kBAAyB;oBAC/B,cAAc,EAAE,CAAC;oBACjB,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,2DAA2D;YAC3D,+EAA+E;YAC/E,OAAO,EAAE,CAAC,kBAAyB,CAAC;YACpC,WAAW,EAAE,CAAC,OAAO,CAAC;YACtB,UAAU,EAAE;gBACV;oBACE,WAAW,EAAE,mBAAmB;oBAChC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE;wBACX,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,CAAC;wBACX,eAAe,EAAE,CAAC;qBACnB;oBACD,WAAW,EAAE,6GAA6G;iBAC3H;aACF;SACF,CAAC;IAwDJ,CAAC;IAtDC,KAAK,CAAC,UAAU;QACd,iBAAiB;QACjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,IAAI,CAAW,CAAC;QAEtF,kFAAkF;QAClF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAyB,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAkB,CAAC;QAElG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,iCAAkB,CAC1B,IAAI,CAAC,OAAO,EAAE,EACd,sGAAsG,CACvG,CAAC;QACJ,CAAC;QAED,qHAAqH;QACrH,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;YACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAyB,EAAE,CAAC,CAAC,CAAC;YACrF,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAkB,CAAC;YAEtG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,iCAAkB,CAC1B,IAAI,CAAC,OAAO,EAAE,EACd,sGAAsG,CACvG,CAAC;YACJ,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAEF,iCAAiC;QACjC,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,MAAM,IAAI,GAAG,OAAO,YAAY,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/F,MAAM,SAAS,GAAI,YAAoB,CAAC,SAAS,IAAK,YAAoB,CAAC,KAAK,IAAI,SAAS,CAAC;YAC9F,OAAO,GAAG,IAAI,KAAK,SAAS,GAAG,CAAC;QAClC,CAAC,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,0DAA0D,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,yBAAyB,gBAAgB,EAAE,CAAC,CAAC;QAEzD,yDAAyD;QACzD,MAAM,YAAY,GAAG,IAAI,gBAAgB,CACvC,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,CACjB,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,YAAY;SACvB,CAAC;IACJ,CAAC;CACF;AArHD,8CAqHC"}
1
+ {"version":3,"file":"LmChatCascadeFlow.node.js","sourceRoot":"","sources":["../../../nodes/LmChatCascadeFlow/LmChatCascadeFlow.node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cascadeflow/n8n-nodes-cascadeflow",
3
- "version": "0.5.4",
3
+ "version": "0.6.0",
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",
@@ -56,6 +56,6 @@
56
56
  },
57
57
  "dependencies": {
58
58
  "@langchain/core": "^0.3.0",
59
- "@cascadeflow/core": "^5.0.3"
59
+ "@cascadeflow/core": "^0.6.0"
60
60
  }
61
61
  }