n8n-nodes-openrouter-selector 0.3.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.
Files changed (70) hide show
  1. package/README.md +307 -0
  2. package/dist/credentials/OpenRouterApi.credentials.d.ts +10 -0
  3. package/dist/credentials/OpenRouterApi.credentials.d.ts.map +1 -0
  4. package/dist/credentials/OpenRouterApi.credentials.js +38 -0
  5. package/dist/credentials/OpenRouterApi.credentials.js.map +1 -0
  6. package/dist/credentials/SupabaseModelCatalogApi.credentials.d.ts +10 -0
  7. package/dist/credentials/SupabaseModelCatalogApi.credentials.d.ts.map +1 -0
  8. package/dist/credentials/SupabaseModelCatalogApi.credentials.js +51 -0
  9. package/dist/credentials/SupabaseModelCatalogApi.credentials.js.map +1 -0
  10. package/dist/nodes/OpenRouterChatCompletion/OpenRouterChatCompletion.node.d.ts +11 -0
  11. package/dist/nodes/OpenRouterChatCompletion/OpenRouterChatCompletion.node.d.ts.map +1 -0
  12. package/dist/nodes/OpenRouterChatCompletion/OpenRouterChatCompletion.node.js +300 -0
  13. package/dist/nodes/OpenRouterChatCompletion/OpenRouterChatCompletion.node.js.map +1 -0
  14. package/dist/nodes/OpenRouterChatCompletion/openrouter-chat.svg +13 -0
  15. package/dist/nodes/OpenRouterModelSelector/OpenRouterModelSelector.node.d.ts +14 -0
  16. package/dist/nodes/OpenRouterModelSelector/OpenRouterModelSelector.node.d.ts.map +1 -0
  17. package/dist/nodes/OpenRouterModelSelector/OpenRouterModelSelector.node.js +412 -0
  18. package/dist/nodes/OpenRouterModelSelector/OpenRouterModelSelector.node.js.map +1 -0
  19. package/dist/nodes/OpenRouterModelSelector/modelScoring.d.ts +28 -0
  20. package/dist/nodes/OpenRouterModelSelector/modelScoring.d.ts.map +1 -0
  21. package/dist/nodes/OpenRouterModelSelector/modelScoring.js +384 -0
  22. package/dist/nodes/OpenRouterModelSelector/modelScoring.js.map +1 -0
  23. package/dist/nodes/OpenRouterModelSelector/openrouter-selector.svg +37 -0
  24. package/dist/nodes/OpenRouterModelSelector/taskProfiles.d.ts +39 -0
  25. package/dist/nodes/OpenRouterModelSelector/taskProfiles.d.ts.map +1 -0
  26. package/dist/nodes/OpenRouterModelSelector/taskProfiles.js +271 -0
  27. package/dist/nodes/OpenRouterModelSelector/taskProfiles.js.map +1 -0
  28. package/dist/nodes/OpenRouterModelSelector/types.d.ts +217 -0
  29. package/dist/nodes/OpenRouterModelSelector/types.d.ts.map +1 -0
  30. package/dist/nodes/OpenRouterModelSelector/types.js +44 -0
  31. package/dist/nodes/OpenRouterModelSelector/types.js.map +1 -0
  32. package/dist/nodes/OpenRouterSmartChat/OpenRouterSmartChat.node.d.ts +11 -0
  33. package/dist/nodes/OpenRouterSmartChat/OpenRouterSmartChat.node.d.ts.map +1 -0
  34. package/dist/nodes/OpenRouterSmartChat/OpenRouterSmartChat.node.js +657 -0
  35. package/dist/nodes/OpenRouterSmartChat/OpenRouterSmartChat.node.js.map +1 -0
  36. package/dist/nodes/OpenRouterSmartChat/modelScoring.d.ts +28 -0
  37. package/dist/nodes/OpenRouterSmartChat/modelScoring.d.ts.map +1 -0
  38. package/dist/nodes/OpenRouterSmartChat/modelScoring.js +384 -0
  39. package/dist/nodes/OpenRouterSmartChat/modelScoring.js.map +1 -0
  40. package/dist/nodes/OpenRouterSmartChat/openrouter-smart.svg +11 -0
  41. package/dist/nodes/OpenRouterSmartChat/taskProfiles.d.ts +39 -0
  42. package/dist/nodes/OpenRouterSmartChat/taskProfiles.d.ts.map +1 -0
  43. package/dist/nodes/OpenRouterSmartChat/taskProfiles.js +271 -0
  44. package/dist/nodes/OpenRouterSmartChat/taskProfiles.js.map +1 -0
  45. package/dist/nodes/OpenRouterSmartChat/types.d.ts +217 -0
  46. package/dist/nodes/OpenRouterSmartChat/types.d.ts.map +1 -0
  47. package/dist/nodes/OpenRouterSmartChat/types.js +44 -0
  48. package/dist/nodes/OpenRouterSmartChat/types.js.map +1 -0
  49. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterEmbeddings.class.d.ts +48 -0
  50. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterEmbeddings.class.d.ts.map +1 -0
  51. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterEmbeddings.class.js +265 -0
  52. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterEmbeddings.class.js.map +1 -0
  53. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterSmartEmbedding.node.d.ts +16 -0
  54. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterSmartEmbedding.node.d.ts.map +1 -0
  55. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterSmartEmbedding.node.js +177 -0
  56. package/dist/nodes/OpenRouterSmartEmbedding/OpenRouterSmartEmbedding.node.js.map +1 -0
  57. package/dist/nodes/OpenRouterSmartEmbedding/openrouter-embed.svg +22 -0
  58. package/dist/nodes/shared/contentAnalyzer.d.ts +16 -0
  59. package/dist/nodes/shared/contentAnalyzer.d.ts.map +1 -0
  60. package/dist/nodes/shared/contentAnalyzer.js +256 -0
  61. package/dist/nodes/shared/contentAnalyzer.js.map +1 -0
  62. package/dist/nodes/shared/embeddingScoring.d.ts +12 -0
  63. package/dist/nodes/shared/embeddingScoring.d.ts.map +1 -0
  64. package/dist/nodes/shared/embeddingScoring.js +329 -0
  65. package/dist/nodes/shared/embeddingScoring.js.map +1 -0
  66. package/dist/nodes/shared/types.d.ts +131 -0
  67. package/dist/nodes/shared/types.d.ts.map +1 -0
  68. package/dist/nodes/shared/types.js +24 -0
  69. package/dist/nodes/shared/types.js.map +1 -0
  70. package/package.json +67 -0
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Shared Type Definitions for Embedding Extension
3
+ */
4
+ export type Language = 'en' | 'de' | 'zh' | 'multi' | 'unknown';
5
+ export type Domain = 'general' | 'technical' | 'code' | 'legal' | 'medical' | 'financial';
6
+ export interface ContentAnalysis {
7
+ language: Language;
8
+ hasCode: boolean;
9
+ codeRatio: number;
10
+ estimatedTokens: number;
11
+ detectedDomain: Domain;
12
+ confidence: number;
13
+ features: {
14
+ hasCodeBlocks: boolean;
15
+ hasInlineCode: boolean;
16
+ hasTechnicalTerms: boolean;
17
+ hasMultipleLanguages: boolean;
18
+ dominantScriptType: 'latin' | 'cjk' | 'mixed';
19
+ };
20
+ }
21
+ export interface AnalyzerOptions {
22
+ sampleSize?: number;
23
+ codeThreshold?: number;
24
+ detectFeatures?: boolean;
25
+ }
26
+ export type Budget = 'cheap' | 'balanced' | 'premium';
27
+ export type EmbeddingTask = 'rag' | 'code_search' | 'multilingual' | 'classification' | 'clustering' | 'auto';
28
+ export type SelectionMode = 'auto' | 'manual';
29
+ export interface EmbeddingModel {
30
+ model: string;
31
+ provider: string;
32
+ displayName: string;
33
+ dimensions: number;
34
+ maxContext: number;
35
+ pricePerMillion: number;
36
+ supportsInstructions: boolean;
37
+ supportsMatryoshka: boolean;
38
+ matryoshkaDims?: number[];
39
+ languages: string[];
40
+ modality: 'text' | 'text+code' | 'multimodal';
41
+ isActive: boolean;
42
+ }
43
+ export interface EmbeddingBenchmarks {
44
+ model: string;
45
+ mtebOverall: number | null;
46
+ mtebRetrieval: number | null;
47
+ mtebCode: number | null;
48
+ mtebMultilingual: number | null;
49
+ mtebClassification: number | null;
50
+ mtebClustering: number | null;
51
+ mtebSts: number | null;
52
+ mtebReranking: number | null;
53
+ mtebPairClassification: number | null;
54
+ mtebRank: number | null;
55
+ source: string;
56
+ updatedAt: Date;
57
+ }
58
+ export interface EmbeddingModelWithBenchmarks {
59
+ model: EmbeddingModel;
60
+ benchmarks: EmbeddingBenchmarks | null;
61
+ }
62
+ export interface EmbeddingTaskProfile {
63
+ taskName: EmbeddingTask;
64
+ displayName: string;
65
+ benchmarkWeights: {
66
+ mtebRetrieval?: number;
67
+ mtebCode?: number;
68
+ mtebMultilingual?: number;
69
+ mtebClassification?: number;
70
+ mtebClustering?: number;
71
+ mtebSts?: number;
72
+ mtebOverall?: number;
73
+ };
74
+ providerBoosts: {
75
+ qwen?: number;
76
+ google?: number;
77
+ openai?: number;
78
+ voyage?: number;
79
+ cohere?: number;
80
+ mistral?: number;
81
+ };
82
+ minContextLength: number;
83
+ preferMultilingual: boolean;
84
+ preferCode: boolean;
85
+ }
86
+ export interface ScoringFilters {
87
+ minContextLength?: number;
88
+ maxPricePerMillion?: number;
89
+ requiredDimensions?: number;
90
+ providerWhitelist?: string[];
91
+ providerBlacklist?: string[];
92
+ requireMultilingual?: boolean;
93
+ requireCodeOptimization?: boolean;
94
+ }
95
+ export interface ScoredModel {
96
+ modelId: string;
97
+ provider: string;
98
+ displayName: string;
99
+ dimensions: number;
100
+ score: number;
101
+ scoreBreakdown: {
102
+ benchmarkFit: number;
103
+ taskFit: number;
104
+ budgetFit: number;
105
+ capabilityFit: number;
106
+ providerBoost: number;
107
+ };
108
+ reasoning: string;
109
+ pricing: {
110
+ pricePerMillion: number;
111
+ estimatedCostForBatch?: number;
112
+ };
113
+ isManualSelection: boolean;
114
+ }
115
+ export interface OpenRouterEmbeddingResponse {
116
+ object: 'list';
117
+ data: Array<{
118
+ object: 'embedding';
119
+ embedding: number[];
120
+ index: number;
121
+ }>;
122
+ model: string;
123
+ usage: {
124
+ prompt_tokens: number;
125
+ total_tokens: number;
126
+ };
127
+ }
128
+ export declare const BUDGET_PRICE_LIMITS: Record<Budget, number>;
129
+ export declare const SUPPORTED_EMBEDDING_PROVIDERS: readonly ["qwen", "google", "openai", "voyage", "cohere", "mistral", "jina"];
130
+ export type SupportedEmbeddingProvider = (typeof SUPPORTED_EMBEDDING_PROVIDERS)[number];
131
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../nodes/shared/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Shared Type Definitions for Embedding Extension
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SUPPORTED_EMBEDDING_PROVIDERS = exports.BUDGET_PRICE_LIMITS = void 0;
7
+ // =============================================================================
8
+ // Constants
9
+ // =============================================================================
10
+ exports.BUDGET_PRICE_LIMITS = {
11
+ cheap: 0.05,
12
+ balanced: 0.15,
13
+ premium: Infinity,
14
+ };
15
+ exports.SUPPORTED_EMBEDDING_PROVIDERS = [
16
+ 'qwen',
17
+ 'google',
18
+ 'openai',
19
+ 'voyage',
20
+ 'cohere',
21
+ 'mistral',
22
+ 'jina',
23
+ ];
24
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../nodes/shared/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAiKH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEnE,QAAA,mBAAmB,GAA2B;IACzD,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEW,QAAA,6BAA6B,GAAG;IAC3C,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;CACE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "n8n-nodes-openrouter-selector",
3
+ "version": "0.3.0",
4
+ "description": "n8n community node for intelligent OpenRouter model selection based on task, budget, and benchmarks",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "openrouter",
8
+ "llm",
9
+ "model-selection",
10
+ "ai",
11
+ "benchmark",
12
+ "embeddings"
13
+ ],
14
+ "license": "MIT",
15
+ "homepage": "https://github.com/ecolights/n8n-nodes-openrouter-selector",
16
+ "author": {
17
+ "name": "EcoLights",
18
+ "email": "dev@ecolights.de"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/ecolights/n8n-nodes-openrouter-selector.git"
23
+ },
24
+ "scripts": {
25
+ "build": "tsc && gulp build:icons",
26
+ "dev": "tsc --watch",
27
+ "format": "prettier nodes credentials --write",
28
+ "lint": "eslint nodes credentials --ext .ts --fix",
29
+ "lintcheck": "eslint nodes credentials --ext .ts",
30
+ "prepublishOnly": "npm run build"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "n8n": {
36
+ "n8nNodesApiVersion": 1,
37
+ "credentials": [
38
+ "dist/credentials/SupabaseModelCatalogApi.credentials.js",
39
+ "dist/credentials/OpenRouterApi.credentials.js"
40
+ ],
41
+ "nodes": [
42
+ "dist/nodes/OpenRouterModelSelector/OpenRouterModelSelector.node.js",
43
+ "dist/nodes/OpenRouterChatCompletion/OpenRouterChatCompletion.node.js",
44
+ "dist/nodes/OpenRouterSmartChat/OpenRouterSmartChat.node.js",
45
+ "dist/nodes/OpenRouterSmartEmbedding/OpenRouterSmartEmbedding.node.js"
46
+ ]
47
+ },
48
+ "dependencies": {
49
+ "@langchain/core": "^0.3.0"
50
+ },
51
+ "devDependencies": {
52
+ "@types/node": "^20.10.0",
53
+ "@typescript-eslint/parser": "^6.0.0",
54
+ "eslint": "^8.56.0",
55
+ "gulp": "^4.0.2",
56
+ "n8n-workflow": "^1.20.0",
57
+ "prettier": "^3.1.0",
58
+ "typescript": "^5.3.0"
59
+ },
60
+ "peerDependencies": {
61
+ "n8n-workflow": "*"
62
+ },
63
+ "engines": {
64
+ "node": ">=18.10",
65
+ "pnpm": ">=9.1"
66
+ }
67
+ }