@n8n/ai-utilities 0.19.0 → 0.20.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.
@@ -8,6 +8,7 @@ export declare const SCORE_WEIGHTS: {
8
8
  export declare class CodeBuilderNodeSearchEngine {
9
9
  private readonly nodeTypes;
10
10
  constructor(nodeTypes: Array<INodeTypeDescription | LeanNodeTypeDescription>);
11
+ private fuzzySearchNodes;
11
12
  searchByName(query: string, limit?: number, nodeFilter?: (nodeId: string) => boolean): CodeBuilderNodeSearchResult[];
12
13
  searchByConnectionType(connectionType: NodeConnectionType, limit?: number, nameFilter?: string): CodeBuilderNodeSearchResult[];
13
14
  formatResult(result: CodeBuilderNodeSearchResult): string;
@@ -20,7 +20,6 @@ const NODE_SEARCH_KEYS = [
20
20
  { key: 'displayName', weight: 1.5 },
21
21
  { key: 'name', weight: 1.3 },
22
22
  { key: 'codex.alias', weight: 1.0 },
23
- { key: 'description', weight: 0.7 },
24
23
  ];
25
24
  function getTypeName(nodeName) {
26
25
  if (!nodeName)
@@ -28,6 +27,19 @@ function getTypeName(nodeName) {
28
27
  const lastDotIndex = nodeName.lastIndexOf('.');
29
28
  return lastDotIndex >= 0 ? nodeName.substring(lastDotIndex + 1) : nodeName;
30
29
  }
30
+ function descriptionMatchScore(description, queryLower, queryTerms) {
31
+ if (!description)
32
+ return 0;
33
+ const descriptionLower = description.toLowerCase();
34
+ if (queryTerms.length === 0)
35
+ return descriptionLower.includes(queryLower) ? 1 : 0;
36
+ let matches = 0;
37
+ for (const term of queryTerms) {
38
+ if (descriptionLower.includes(term))
39
+ matches += 1;
40
+ }
41
+ return matches;
42
+ }
31
43
  exports.SCORE_WEIGHTS = {
32
44
  CONNECTION_EXACT: 100,
33
45
  CONNECTION_IN_EXPRESSION: 50,
@@ -38,7 +50,9 @@ function getLatestVersion(version) {
38
50
  function extractSubnodeRequirements(inputs) {
39
51
  if (!inputs)
40
52
  return [];
41
- return Object.entries(inputs).map(([connectionType, config]) => ({
53
+ return Object.entries(inputs)
54
+ .filter((entry) => entry[1] !== null && entry[1] !== undefined)
55
+ .map(([connectionType, config]) => ({
42
56
  connectionType,
43
57
  required: config.required,
44
58
  ...(config.displayOptions && { displayOptions: config.displayOptions }),
@@ -65,31 +79,83 @@ class CodeBuilderNodeSearchEngine {
65
79
  const lean = nodeTypes.map((n) => (isLeanNodeType(n) ? n : (0, lean_node_type_1.toLeanNodeType)(n)));
66
80
  this.nodeTypes = dedupeNodes(lean);
67
81
  }
68
- searchByName(query, limit = 20, nodeFilter) {
69
- const nodeTypes = nodeFilter
70
- ? this.nodeTypes.filter((node) => nodeFilter(node.name))
71
- : this.nodeTypes;
72
- const searchResults = (0, utils_1.sublimeSearch)(query, nodeTypes, NODE_SEARCH_KEYS);
82
+ fuzzySearchNodes(query, candidates, limit) {
73
83
  const queryLower = query.toLowerCase().trim();
84
+ const queryTerms = queryLower.split(/\s+/).filter((t) => t.length > 1);
85
+ const isMultiWord = queryTerms.length > 1;
86
+ let searchResults;
87
+ if (isMultiWord) {
88
+ const scoreMap = new Map();
89
+ for (const term of queryTerms) {
90
+ const termResults = (0, utils_1.sublimeSearch)(term, candidates, NODE_SEARCH_KEYS).slice(0, limit);
91
+ for (const r of termResults) {
92
+ const existing = scoreMap.get(r.item.name);
93
+ if (!existing || r.score > existing.score) {
94
+ scoreMap.set(r.item.name, { item: r.item, score: r.score });
95
+ }
96
+ }
97
+ }
98
+ searchResults = [...scoreMap.values()];
99
+ }
100
+ else {
101
+ searchResults = (0, utils_1.sublimeSearch)(query, candidates, NODE_SEARCH_KEYS);
102
+ }
74
103
  const fuzzyResultNames = new Set(searchResults.map((r) => r.item.name));
75
- const typeNameMatches = nodeTypes
104
+ const remainingDescriptionMatches = limit === undefined ? Number.POSITIVE_INFINITY : Math.max(0, limit - searchResults.length);
105
+ if (remainingDescriptionMatches > 0) {
106
+ const descriptionResults = [];
107
+ for (const item of candidates) {
108
+ if (fuzzyResultNames.has(item.name))
109
+ continue;
110
+ const score = descriptionMatchScore(item.description, queryLower, queryTerms);
111
+ if (score === 0)
112
+ continue;
113
+ descriptionResults.push({ item, score });
114
+ fuzzyResultNames.add(item.name);
115
+ if (descriptionResults.length >= remainingDescriptionMatches)
116
+ break;
117
+ }
118
+ searchResults = [...searchResults, ...descriptionResults];
119
+ }
120
+ const typeNameMatches = candidates
76
121
  .filter((node) => {
77
122
  if (fuzzyResultNames.has(node.name))
78
123
  return false;
79
- return getTypeName(node.name).toLowerCase() === queryLower;
124
+ const typeName = getTypeName(node.name).toLowerCase();
125
+ const displayName = (node.displayName ?? '').toLowerCase();
126
+ if (typeName === queryLower || displayName === queryLower)
127
+ return true;
128
+ return queryTerms.some((term) => typeName === term ||
129
+ typeName.includes(term) ||
130
+ displayName === term ||
131
+ displayName.includes(term));
80
132
  })
81
133
  .map((item) => ({ item, score: 0 }));
82
134
  const allResults = [...searchResults, ...typeNameMatches];
83
135
  allResults.sort((a, b) => {
84
- const exactA = getTypeName(a.item.name).toLowerCase() === queryLower;
85
- const exactB = getTypeName(b.item.name).toLowerCase() === queryLower;
136
+ const typeNameA = getTypeName(a.item.name).toLowerCase();
137
+ const displayNameA = (a.item.displayName ?? '').toLowerCase();
138
+ const typeNameB = getTypeName(b.item.name).toLowerCase();
139
+ const displayNameB = (b.item.displayName ?? '').toLowerCase();
140
+ const exactA = typeNameA === queryLower ||
141
+ displayNameA === queryLower ||
142
+ queryTerms.some((t) => typeNameA === t || displayNameA === t);
143
+ const exactB = typeNameB === queryLower ||
144
+ displayNameB === queryLower ||
145
+ queryTerms.some((t) => typeNameB === t || displayNameB === t);
86
146
  if (exactA && !exactB)
87
147
  return -1;
88
148
  if (!exactA && exactB)
89
149
  return 1;
90
150
  return b.score - a.score;
91
151
  });
92
- return allResults
152
+ return allResults;
153
+ }
154
+ searchByName(query, limit = 20, nodeFilter) {
155
+ const nodeTypes = nodeFilter
156
+ ? this.nodeTypes.filter((node) => nodeFilter(node.name))
157
+ : this.nodeTypes;
158
+ return this.fuzzySearchNodes(query, nodeTypes, limit)
93
159
  .slice(0, limit)
94
160
  .map(({ item, score, }) => {
95
161
  const subnodeRequirements = extractSubnodeRequirements(item.builderHint?.inputs);
@@ -137,7 +203,7 @@ class CodeBuilderNodeSearchEngine {
137
203
  });
138
204
  }
139
205
  const nodeTypesOnly = nodesWithConnectionType.map((result) => result.nodeType);
140
- const nameFilteredResults = (0, utils_1.sublimeSearch)(nameFilter, nodeTypesOnly, NODE_SEARCH_KEYS);
206
+ const nameFilteredResults = this.fuzzySearchNodes(nameFilter, nodeTypesOnly, limit);
141
207
  return nameFilteredResults
142
208
  .slice(0, limit)
143
209
  .map(({ item, score: nameScore }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"search-engine.js","sourceRoot":"","sources":["../../../src/node-catalog/search-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-engine.js","sourceRoot":"","sources":["../../../src/node-catalog/search-engine.ts"],"names":[],"mappings":"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"}