UNPKG

n8n-nodes-query-retriever-rerank

Version:

Advanced n8n community node for intelligent document retrieval with multi-step reasoning, reranking, and comprehensive debugging

68 lines (67 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseStrategy = exports.NoneStrategy = exports.MultiStepQueryStrategy = exports.MultiQueryStrategy = exports.SimpleQueryStrategy = exports.StrategyRegistry = void 0; const SimpleQueryStrategy_1 = require("./SimpleQueryStrategy"); const MultiQueryStrategy_1 = require("./MultiQueryStrategy"); const MultiStepQueryStrategy_1 = require("./MultiStepQueryStrategy"); const NoneStrategy_1 = require("./NoneStrategy"); // Strategy registry class StrategyRegistry { // Get strategy instance by name static getStrategy(strategyType) { const strategyFactory = this.strategies.get(strategyType); if (!strategyFactory) { throw new Error(`Unknown strategy type: ${strategyType}. Available strategies: ${Array.from(this.strategies.keys()).join(', ')}`); } return strategyFactory(); } // Register a new strategy static registerStrategy(name, factory) { this.strategies.set(name, factory); } // Get all available strategy names static getAvailableStrategies() { return Array.from(this.strategies.keys()); } // Get strategy info for UI options static getStrategyOptions() { const options = []; for (const [key] of this.strategies) { const strategy = this.getStrategy(key); options.push({ name: this.getStrategyDisplayName(key), value: key, description: strategy.getDescription() }); } return options; } // Convert strategy key to display name static getStrategyDisplayName(key) { switch (key) { case 'simple_query': return 'Simple Query'; case 'multi_query': return 'Multi-Query'; case 'multi_step_query': return 'Multi-Step Query'; case 'none': return 'None'; default: return key; } } } exports.StrategyRegistry = StrategyRegistry; StrategyRegistry.strategies = new Map([ ['simple_query', () => new SimpleQueryStrategy_1.SimpleQueryStrategy()], ['multi_query', () => new MultiQueryStrategy_1.MultiQueryStrategy()], ['multi_step_query', () => new MultiStepQueryStrategy_1.MultiStepQueryStrategy()], ['none', () => new NoneStrategy_1.NoneStrategy()], ]); // Export all strategies for convenience var SimpleQueryStrategy_2 = require("./SimpleQueryStrategy"); Object.defineProperty(exports, "SimpleQueryStrategy", { enumerable: true, get: function () { return SimpleQueryStrategy_2.SimpleQueryStrategy; } }); var MultiQueryStrategy_2 = require("./MultiQueryStrategy"); Object.defineProperty(exports, "MultiQueryStrategy", { enumerable: true, get: function () { return MultiQueryStrategy_2.MultiQueryStrategy; } }); var MultiStepQueryStrategy_2 = require("./MultiStepQueryStrategy"); Object.defineProperty(exports, "MultiStepQueryStrategy", { enumerable: true, get: function () { return MultiStepQueryStrategy_2.MultiStepQueryStrategy; } }); var NoneStrategy_2 = require("./NoneStrategy"); Object.defineProperty(exports, "NoneStrategy", { enumerable: true, get: function () { return NoneStrategy_2.NoneStrategy; } }); var BaseStrategy_1 = require("./BaseStrategy"); Object.defineProperty(exports, "BaseStrategy", { enumerable: true, get: function () { return BaseStrategy_1.BaseStrategy; } });