@n8n/ai-utilities 0.17.1 → 0.19.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 (45) hide show
  1. package/dist/cjs/index.d.ts +4 -2
  2. package/dist/cjs/index.js +18 -15
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/typecheck.tsbuildinfo +1 -1
  5. package/dist/cjs/utils/text-editor.d.ts +3 -22
  6. package/dist/cjs/utils/text-editor.js +11 -22
  7. package/dist/cjs/utils/text-editor.js.map +1 -1
  8. package/dist/cjs/utils/workflow-text-editor.d.ts +35 -0
  9. package/dist/cjs/utils/workflow-text-editor.js +68 -0
  10. package/dist/cjs/utils/workflow-text-editor.js.map +1 -0
  11. package/dist/cjs/web-search/brave-search.d.ts +8 -0
  12. package/dist/cjs/web-search/brave-search.js +52 -0
  13. package/dist/cjs/web-search/brave-search.js.map +1 -0
  14. package/dist/cjs/web-search/index.d.ts +3 -0
  15. package/dist/cjs/web-search/index.js +18 -0
  16. package/dist/cjs/web-search/index.js.map +1 -0
  17. package/dist/cjs/web-search/searxng-search.d.ts +2 -0
  18. package/dist/cjs/web-search/searxng-search.js +49 -0
  19. package/dist/cjs/web-search/searxng-search.js.map +1 -0
  20. package/dist/cjs/web-search/types.d.ts +15 -0
  21. package/dist/cjs/web-search/types.js +13 -0
  22. package/dist/cjs/web-search/types.js.map +1 -0
  23. package/dist/esm/index.d.ts +4 -2
  24. package/dist/esm/index.js +18 -15
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/typecheck.tsbuildinfo +1 -1
  27. package/dist/esm/utils/text-editor.d.ts +3 -22
  28. package/dist/esm/utils/text-editor.js +11 -22
  29. package/dist/esm/utils/text-editor.js.map +1 -1
  30. package/dist/esm/utils/workflow-text-editor.d.ts +35 -0
  31. package/dist/esm/utils/workflow-text-editor.js +58 -0
  32. package/dist/esm/utils/workflow-text-editor.js.map +1 -0
  33. package/dist/esm/web-search/brave-search.d.ts +8 -0
  34. package/dist/esm/web-search/brave-search.js +42 -0
  35. package/dist/esm/web-search/brave-search.js.map +1 -0
  36. package/dist/esm/web-search/index.d.ts +3 -0
  37. package/dist/esm/web-search/index.js +8 -0
  38. package/dist/esm/web-search/index.js.map +1 -0
  39. package/dist/esm/web-search/searxng-search.d.ts +2 -0
  40. package/dist/esm/web-search/searxng-search.js +39 -0
  41. package/dist/esm/web-search/searxng-search.js.map +1 -0
  42. package/dist/esm/web-search/types.d.ts +15 -0
  43. package/dist/esm/web-search/types.js +3 -0
  44. package/dist/esm/web-search/types.js.map +1 -0
  45. package/package.json +30 -10
@@ -20,18 +20,7 @@ export interface InsertCommand {
20
20
  insert_line: number;
21
21
  insert_text: string;
22
22
  }
23
- export interface BatchStrReplaceCommand {
24
- command: 'batch_str_replace';
25
- path: string;
26
- replacements: StrReplacement[];
27
- }
28
23
  export type TextEditorCommand = ViewCommand | CreateCommand | StrReplaceCommand | InsertCommand;
29
- export type TextEditorCommandWithBatch = TextEditorCommand | BatchStrReplaceCommand;
30
- export interface TextEditorToolCall {
31
- name: 'str_replace_based_edit_tool';
32
- args: TextEditorCommand;
33
- id: string;
34
- }
35
24
  export interface TextEditorResult {
36
25
  content: string;
37
26
  }
@@ -48,10 +37,7 @@ export declare class InvalidViewRangeError extends Error {
48
37
  constructor(start: number, end: number, maxLine: number);
49
38
  }
50
39
  export declare class InvalidPathError extends Error {
51
- constructor(path: string, supportedPath?: string, message?: string);
52
- }
53
- export declare class FileExistsError extends Error {
54
- constructor();
40
+ constructor(path: string, supportedPath: string, message?: string);
55
41
  }
56
42
  export declare class FileNotFoundError extends Error {
57
43
  constructor(message?: string);
@@ -66,12 +52,6 @@ export interface BatchReplaceResult {
66
52
  status: 'success' | 'failed' | 'not_attempted';
67
53
  error?: string;
68
54
  }
69
- export declare class BatchReplacementError extends Error {
70
- readonly failedIndex: number;
71
- readonly totalCount: number;
72
- readonly cause: NoMatchFoundError | MultipleMatchesError;
73
- constructor(failedIndex: number, totalCount: number, cause: NoMatchFoundError | MultipleMatchesError);
74
- }
75
55
  export interface TextEditorDocumentOptions {
76
56
  initialText?: string | null;
77
57
  supportedPath?: string;
@@ -100,6 +80,7 @@ export declare class TextEditorDocument {
100
80
  private handleInsert;
101
81
  private countOccurrences;
102
82
  private appendNotAttemptedResults;
103
- private createFileNotFoundError;
83
+ protected createInvalidPathError(path: string, supportedPath: string, message?: string): InvalidPathError;
84
+ protected createFileNotFoundError(): FileNotFoundError;
104
85
  private escapeReplacement;
105
86
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TextEditorDocument = exports.BatchReplacementError = exports.FileNotFoundError = exports.FileExistsError = exports.InvalidPathError = exports.InvalidViewRangeError = exports.InvalidLineNumberError = exports.MultipleMatchesError = exports.NoMatchFoundError = void 0;
3
+ exports.TextEditorDocument = exports.FileNotFoundError = exports.InvalidPathError = exports.InvalidViewRangeError = exports.InvalidLineNumberError = exports.MultipleMatchesError = exports.NoMatchFoundError = void 0;
4
4
  exports.formatTextWithLineNumbers = formatTextWithLineNumbers;
5
5
  exports.findDivergenceContext = findDivergenceContext;
6
6
  exports.parseStrReplacements = parseStrReplacements;
@@ -35,36 +35,19 @@ class InvalidViewRangeError extends Error {
35
35
  }
36
36
  exports.InvalidViewRangeError = InvalidViewRangeError;
37
37
  class InvalidPathError extends Error {
38
- constructor(path, supportedPath = '/workflow.js', message) {
38
+ constructor(path, supportedPath, message) {
39
39
  super(message ?? `Invalid path "${path}". Only ${supportedPath} is supported.`);
40
40
  this.name = 'InvalidPathError';
41
41
  }
42
42
  }
43
43
  exports.InvalidPathError = InvalidPathError;
44
- class FileExistsError extends Error {
45
- constructor() {
46
- super('File already exists. Use text editor tools to modify existing content.');
47
- this.name = 'FileExistsError';
48
- }
49
- }
50
- exports.FileExistsError = FileExistsError;
51
44
  class FileNotFoundError extends Error {
52
- constructor(message = 'No workflow code exists yet. Use create first.') {
45
+ constructor(message = 'No file content exists yet. Use create first.') {
53
46
  super(message);
54
47
  this.name = 'FileNotFoundError';
55
48
  }
56
49
  }
57
50
  exports.FileNotFoundError = FileNotFoundError;
58
- class BatchReplacementError extends Error {
59
- constructor(failedIndex, totalCount, cause) {
60
- super(`Batch replacement failed at index ${failedIndex} of ${totalCount}: ${cause.message}. All changes have been rolled back.`);
61
- this.name = 'BatchReplacementError';
62
- this.failedIndex = failedIndex;
63
- this.totalCount = totalCount;
64
- this.cause = cause;
65
- }
66
- }
67
- exports.BatchReplacementError = BatchReplacementError;
68
51
  const PREVIEW_MAX_LENGTH = 80;
69
52
  const MIN_PREFIX_LENGTH = 10;
70
53
  const CONTEXT_LINES = 3;
@@ -80,6 +63,9 @@ function escapeWhitespace(str) {
80
63
  function isObjectRecord(value) {
81
64
  return typeof value === 'object' && value !== null && !Array.isArray(value);
82
65
  }
66
+ function isUnknownArray(value) {
67
+ return Array.isArray(value);
68
+ }
83
69
  function formatTextWithLineNumbers(text) {
84
70
  const lines = text.split('\n');
85
71
  return lines.map((line, i) => `${i + 1}: ${line}`).join('\n');
@@ -127,7 +113,7 @@ function parseStrReplacements(raw) {
127
113
  throw new Error('replacements must be a JSON array of {old_str, new_str} objects, but received an invalid JSON string.');
128
114
  }
129
115
  }
130
- if (!Array.isArray(parsed)) {
116
+ if (!isUnknownArray(parsed)) {
131
117
  throw new Error('replacements must be an array of {old_str, new_str} objects. Example: {"replacements": [{"old_str": "foo", "new_str": "bar"}]}');
132
118
  }
133
119
  const replacements = [];
@@ -229,7 +215,7 @@ class TextEditorDocument {
229
215
  if (supportedPath === undefined || path === supportedPath) {
230
216
  return;
231
217
  }
232
- throw new InvalidPathError(path, supportedPath, this.options.invalidPathMessage?.(path, supportedPath));
218
+ throw this.createInvalidPathError(path, supportedPath, this.options.invalidPathMessage?.(path, supportedPath));
233
219
  }
234
220
  handleView(command) {
235
221
  if (this.text === null) {
@@ -312,6 +298,9 @@ class TextEditorDocument {
312
298
  });
313
299
  }
314
300
  }
301
+ createInvalidPathError(path, supportedPath, message) {
302
+ return new InvalidPathError(path, supportedPath, message);
303
+ }
315
304
  createFileNotFoundError() {
316
305
  return new FileNotFoundError(this.options.fileNotFoundMessage);
317
306
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text-editor.js","sourceRoot":"","sources":["../../../src/utils/text-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-editor.js","sourceRoot":"","sources":["../../../src/utils/text-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { findDivergenceContext, FileNotFoundError as BaseFileNotFoundError, formatTextWithLineNumbers, InvalidLineNumberError, InvalidPathError as BaseInvalidPathError, InvalidViewRangeError, MultipleMatchesError, NoMatchFoundError, parseStrReplacements, type StrReplacement, TextEditorDocument as BaseTextEditorDocument, type TextEditorCommand, type TextEditorDocumentOptions } from './text-editor';
2
+ export { findDivergenceContext, formatTextWithLineNumbers, InvalidLineNumberError, InvalidViewRangeError, MultipleMatchesError, NoMatchFoundError, parseStrReplacements, };
3
+ export type { BatchReplaceResult, CreateCommand, InsertCommand, StrReplaceCommand, StrReplacement, TextEditorCommand, TextEditorDocumentOptions, TextEditorResult, ViewCommand, } from './text-editor';
4
+ export declare class InvalidPathError extends BaseInvalidPathError {
5
+ constructor(path: string, supportedPath?: string, message?: string);
6
+ }
7
+ export declare class FileNotFoundError extends BaseFileNotFoundError {
8
+ constructor(message?: string);
9
+ }
10
+ export declare class TextEditorDocument extends BaseTextEditorDocument {
11
+ private readonly fileNotFoundMessage;
12
+ constructor(options?: TextEditorDocumentOptions);
13
+ protected createInvalidPathError(path: string, supportedPath: string, message?: string): InvalidPathError;
14
+ protected createFileNotFoundError(): FileNotFoundError;
15
+ }
16
+ export interface BatchStrReplaceCommand {
17
+ command: 'batch_str_replace';
18
+ path: string;
19
+ replacements: StrReplacement[];
20
+ }
21
+ export type TextEditorCommandWithBatch = TextEditorCommand | BatchStrReplaceCommand;
22
+ export interface TextEditorToolCall {
23
+ name: 'str_replace_based_edit_tool';
24
+ args: TextEditorCommand;
25
+ id: string;
26
+ }
27
+ export declare class FileExistsError extends Error {
28
+ constructor();
29
+ }
30
+ export declare class BatchReplacementError extends Error {
31
+ readonly failedIndex: number;
32
+ readonly totalCount: number;
33
+ readonly cause: NoMatchFoundError | MultipleMatchesError;
34
+ constructor(failedIndex: number, totalCount: number, cause: NoMatchFoundError | MultipleMatchesError);
35
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BatchReplacementError = exports.FileExistsError = exports.TextEditorDocument = exports.FileNotFoundError = exports.InvalidPathError = exports.parseStrReplacements = exports.NoMatchFoundError = exports.MultipleMatchesError = exports.InvalidViewRangeError = exports.InvalidLineNumberError = exports.formatTextWithLineNumbers = exports.findDivergenceContext = void 0;
4
+ const text_editor_1 = require("./text-editor");
5
+ Object.defineProperty(exports, "findDivergenceContext", { enumerable: true, get: function () { return text_editor_1.findDivergenceContext; } });
6
+ Object.defineProperty(exports, "formatTextWithLineNumbers", { enumerable: true, get: function () { return text_editor_1.formatTextWithLineNumbers; } });
7
+ Object.defineProperty(exports, "InvalidLineNumberError", { enumerable: true, get: function () { return text_editor_1.InvalidLineNumberError; } });
8
+ Object.defineProperty(exports, "InvalidViewRangeError", { enumerable: true, get: function () { return text_editor_1.InvalidViewRangeError; } });
9
+ Object.defineProperty(exports, "MultipleMatchesError", { enumerable: true, get: function () { return text_editor_1.MultipleMatchesError; } });
10
+ Object.defineProperty(exports, "NoMatchFoundError", { enumerable: true, get: function () { return text_editor_1.NoMatchFoundError; } });
11
+ Object.defineProperty(exports, "parseStrReplacements", { enumerable: true, get: function () { return text_editor_1.parseStrReplacements; } });
12
+ class InvalidPathError extends text_editor_1.InvalidPathError {
13
+ constructor(path, supportedPath = '/workflow.js', message) {
14
+ super(path, supportedPath, message);
15
+ }
16
+ }
17
+ exports.InvalidPathError = InvalidPathError;
18
+ class FileNotFoundError extends text_editor_1.FileNotFoundError {
19
+ constructor(message = 'No workflow code exists yet. Use create first.') {
20
+ super(message);
21
+ }
22
+ }
23
+ exports.FileNotFoundError = FileNotFoundError;
24
+ class TextEditorDocument extends text_editor_1.TextEditorDocument {
25
+ constructor(options = {}) {
26
+ const fileNotFoundMessage = options.fileNotFoundMessage ?? 'No workflow code exists yet. Use create first.';
27
+ super({
28
+ ...options,
29
+ fileNotFoundMessage,
30
+ });
31
+ this.fileNotFoundMessage = fileNotFoundMessage;
32
+ }
33
+ createInvalidPathError(path, supportedPath, message) {
34
+ return new InvalidPathError(path, supportedPath, message);
35
+ }
36
+ createFileNotFoundError() {
37
+ return new FileNotFoundError(this.fileNotFoundMessage);
38
+ }
39
+ }
40
+ exports.TextEditorDocument = TextEditorDocument;
41
+ class FileExistsError extends Error {
42
+ constructor() {
43
+ super('File already exists. Use text editor tools to modify existing content.');
44
+ this.name = 'FileExistsError';
45
+ }
46
+ }
47
+ exports.FileExistsError = FileExistsError;
48
+ class BatchReplacementError extends Error {
49
+ constructor(failedIndex, totalCount, cause) {
50
+ super(`Batch replacement failed at index ${failedIndex} of ${totalCount}: ${cause.message}. All changes have been rolled back.`);
51
+ this.name = 'BatchReplacementError';
52
+ this.failedIndex = failedIndex;
53
+ this.totalCount = totalCount;
54
+ this.cause = cause;
55
+ }
56
+ }
57
+ exports.BatchReplacementError = BatchReplacementError;
58
+ //# sourceMappingURL=workflow-text-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-text-editor.js","sourceRoot":"","sources":["../../../src/utils/workflow-text-editor.ts"],"names":[],"mappings":";;;AAAA,+CAcuB;AAGtB,sGAhBA,mCAAqB,OAgBA;AACrB,0GAfA,uCAAyB,OAeA;AACzB,uGAfA,oCAAsB,OAeA;AACtB,sGAdA,mCAAqB,OAcA;AACrB,qGAdA,kCAAoB,OAcA;AACpB,kGAdA,+BAAiB,OAcA;AACjB,qGAdA,kCAAoB,OAcA;AAerB,MAAa,gBAAiB,SAAQ,8BAAoB;IACzD,YAAY,IAAY,EAAE,aAAa,GAAG,cAAc,EAAE,OAAgB;QACzE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACD;AAJD,4CAIC;AAED,MAAa,iBAAkB,SAAQ,+BAAqB;IAC3D,YAAY,OAAO,GAAG,gDAAgD;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC;CACD;AAJD,8CAIC;AAED,MAAa,kBAAmB,SAAQ,gCAAsB;IAG7D,YAAY,UAAqC,EAAE;QAClD,MAAM,mBAAmB,GACxB,OAAO,CAAC,mBAAmB,IAAI,gDAAgD,CAAC;QACjF,KAAK,CAAC;YACL,GAAG,OAAO;YACV,mBAAmB;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IAChD,CAAC;IAEkB,sBAAsB,CACxC,IAAY,EACZ,aAAqB,EACrB,OAAgB;QAEhB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEkB,uBAAuB;QACzC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxD,CAAC;CACD;AAxBD,gDAwBC;AAgBD,MAAa,eAAgB,SAAQ,KAAK;IACzC;QACC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD;AALD,0CAKC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAK/C,YACC,WAAmB,EACnB,UAAkB,EAClB,KAA+C;QAE/C,KAAK,CACJ,qCAAqC,WAAW,OAAO,UAAU,KAAK,KAAK,CAAC,OAAO,sCAAsC,CACzH,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD;AAlBD,sDAkBC"}
@@ -0,0 +1,8 @@
1
+ import type { WebSearchOptions, WebSearchResponse } from './types';
2
+ export interface BraveSearchOptions extends WebSearchOptions {
3
+ proxyConfig?: {
4
+ apiUrl: string;
5
+ getAuthHeaders: () => Promise<Record<string, string>>;
6
+ };
7
+ }
8
+ export declare function braveSearch(apiKey: string, query: string, options: BraveSearchOptions): Promise<WebSearchResponse>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.braveSearch = braveSearch;
4
+ const BRAVE_SEARCH_PATH = '/res/v1/web/search';
5
+ const BRAVE_SEARCH_URL = `https://api.search.brave.com${BRAVE_SEARCH_PATH}`;
6
+ async function braveSearch(apiKey, query, options) {
7
+ let searchQuery = query;
8
+ if (options.includeDomains?.length) {
9
+ const siteFilter = options.includeDomains.map((d) => `site:${d}`).join(' OR ');
10
+ searchQuery = `${query} (${siteFilter})`;
11
+ }
12
+ if (options.excludeDomains?.length) {
13
+ searchQuery += options.excludeDomains.map((d) => ` -site:${d}`).join('');
14
+ }
15
+ const params = new URLSearchParams({
16
+ q: searchQuery,
17
+ count: String(options.maxResults ?? 5),
18
+ });
19
+ const proxyConfig = options.proxyConfig;
20
+ const baseUrl = proxyConfig ? `${proxyConfig.apiUrl}${BRAVE_SEARCH_PATH}` : BRAVE_SEARCH_URL;
21
+ const proxyHeaders = proxyConfig ? await proxyConfig.getAuthHeaders() : undefined;
22
+ const headers = {
23
+ Accept: 'application/json',
24
+ 'Accept-Encoding': 'gzip',
25
+ ...(proxyHeaders ?? { 'X-Subscription-Token': apiKey }),
26
+ };
27
+ const response = await fetch(`${baseUrl}?${params}`, { headers });
28
+ if (!response.ok) {
29
+ throw new Error(`Brave search failed: ${response.status} ${response.statusText}`);
30
+ }
31
+ const data = (await response.json());
32
+ return {
33
+ query,
34
+ results: (data.web?.results ?? []).map((r) => ({
35
+ title: r.title,
36
+ url: r.url,
37
+ snippet: r.description,
38
+ ...(r.age ? { publishedDate: r.age } : {}),
39
+ })),
40
+ };
41
+ }
42
+ //# sourceMappingURL=brave-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brave-search.js","sourceRoot":"","sources":["../../../src/web-search/brave-search.ts"],"names":[],"mappings":";;AAgCA,kCA+CC;AA7ED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAC/C,MAAM,gBAAgB,GAAG,+BAA+B,iBAAiB,EAAE,CAAC;AA6BrE,KAAK,UAAU,WAAW,CAChC,MAAc,EACd,KAAa,EACb,OAA2B;IAE3B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,WAAW,GAAG,GAAG,KAAK,KAAK,UAAU,GAAG,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACpC,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAClC,CAAC,EAAE,WAAW;QACd,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC7F,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,OAAO,GAA2B;QACvC,MAAM,EAAE,kBAAkB;QAC1B,iBAAiB,EAAE,MAAM;QACzB,GAAG,CAAC,YAAY,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC;KACvD,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA2B,CAAC;IAE/D,OAAO;QACN,KAAK;QACL,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,OAAO,EAAE,CAAC,CAAC,WAAW;YACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;KACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { braveSearch, type BraveSearchOptions } from './brave-search';
2
+ export { searxngSearch } from './searxng-search';
3
+ export type { WebSearchOptions, WebSearchResponse, WebSearchResult } from './types';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.searxngSearch = exports.braveSearch = void 0;
4
+ var brave_search_1 = require("./brave-search");
5
+ Object.defineProperty(exports, "braveSearch", { enumerable: true, get: function () { return brave_search_1.braveSearch; } });
6
+ var searxng_search_1 = require("./searxng-search");
7
+ Object.defineProperty(exports, "searxngSearch", { enumerable: true, get: function () { return searxng_search_1.searxngSearch; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web-search/index.ts"],"names":[],"mappings":";;;AAAA,+CAAsE;AAA7D,2GAAA,WAAW,OAAA;AACpB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
@@ -0,0 +1,2 @@
1
+ import type { WebSearchOptions, WebSearchResponse } from './types';
2
+ export declare function searxngSearch(baseUrl: string, query: string, options: WebSearchOptions): Promise<WebSearchResponse>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.searxngSearch = searxngSearch;
4
+ async function searxngSearch(baseUrl, query, options) {
5
+ let searchQuery = query;
6
+ if (options.includeDomains?.length) {
7
+ const siteFilter = options.includeDomains.map((d) => `site:${d}`).join(' OR ');
8
+ searchQuery = `${query} (${siteFilter})`;
9
+ }
10
+ if (options.excludeDomains?.length) {
11
+ searchQuery += options.excludeDomains.map((d) => ` -site:${d}`).join('');
12
+ }
13
+ const normalizedUrl = baseUrl.replace(/\/+$/, '');
14
+ const params = new URLSearchParams({
15
+ q: searchQuery,
16
+ format: 'json',
17
+ pageno: '1',
18
+ });
19
+ const response = await fetch(`${normalizedUrl}/search?${params}`, {
20
+ headers: {
21
+ Accept: 'application/json',
22
+ },
23
+ });
24
+ if (!response.ok) {
25
+ throw new Error(`SearXNG search failed: ${response.status} ${response.statusText}`);
26
+ }
27
+ const data = (await response.json());
28
+ const maxResults = options.maxResults ?? 5;
29
+ return {
30
+ query,
31
+ results: (data.results ?? []).slice(0, maxResults).map((r) => ({
32
+ title: r.title,
33
+ url: r.url,
34
+ snippet: r.content,
35
+ ...(r.publishedDate ? { publishedDate: r.publishedDate } : {}),
36
+ })),
37
+ };
38
+ }
39
+ //# sourceMappingURL=searxng-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searxng-search.js","sourceRoot":"","sources":["../../../src/web-search/searxng-search.ts"],"names":[],"mappings":";;AAqBA,sCA8CC;AA9CM,KAAK,UAAU,aAAa,CAClC,OAAe,EACf,KAAa,EACb,OAAyB;IAEzB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,WAAW,GAAG,GAAG,KAAK,KAAK,UAAU,GAAG,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACpC,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAClC,CAAC,EAAE,WAAW;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,WAAW,MAAM,EAAE,EAAE;QACjE,OAAO,EAAE;YACR,MAAM,EAAE,kBAAkB;SAC1B;KACD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAE3C,OAAO;QACN,KAAK;QACL,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;KACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface WebSearchResult {
2
+ title: string;
3
+ url: string;
4
+ snippet: string;
5
+ publishedDate?: string;
6
+ }
7
+ export interface WebSearchResponse {
8
+ query: string;
9
+ results: WebSearchResult[];
10
+ }
11
+ export interface WebSearchOptions {
12
+ maxResults?: number;
13
+ includeDomains?: string[];
14
+ excludeDomains?: string[];
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/web-search/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/ai-utilities",
3
- "version": "0.17.1",
3
+ "version": "0.19.0",
4
4
  "description": "Utilities for building AI nodes in n8n",
5
5
  "types": "dist/esm/index.d.ts",
6
6
  "module": "dist/esm/index.js",
@@ -8,6 +8,9 @@
8
8
  "typesVersions": {
9
9
  "*": {
10
10
  "text-editor": [
11
+ "dist/esm/utils/workflow-text-editor.d.ts"
12
+ ],
13
+ "generic-text-editor": [
11
14
  "dist/esm/utils/text-editor.d.ts"
12
15
  ],
13
16
  "node-catalog": [
@@ -18,6 +21,9 @@
18
21
  ],
19
22
  "http-proxy-agent": [
20
23
  "dist/esm/utils/http-proxy-agent.d.ts"
24
+ ],
25
+ "web-search": [
26
+ "dist/esm/web-search/index.d.ts"
21
27
  ]
22
28
  }
23
29
  },
@@ -28,6 +34,11 @@
28
34
  "require": "./dist/cjs/index.js"
29
35
  },
30
36
  "./text-editor": {
37
+ "types": "./dist/esm/utils/workflow-text-editor.d.ts",
38
+ "import": "./dist/esm/utils/workflow-text-editor.js",
39
+ "require": "./dist/cjs/utils/workflow-text-editor.js"
40
+ },
41
+ "./generic-text-editor": {
31
42
  "types": "./dist/esm/utils/text-editor.d.ts",
32
43
  "import": "./dist/esm/utils/text-editor.js",
33
44
  "require": "./dist/cjs/utils/text-editor.js"
@@ -47,6 +58,11 @@
47
58
  "import": "./dist/esm/utils/http-proxy-agent.js",
48
59
  "require": "./dist/cjs/utils/http-proxy-agent.js"
49
60
  },
61
+ "./web-search": {
62
+ "types": "./dist/esm/web-search/index.d.ts",
63
+ "import": "./dist/esm/web-search/index.js",
64
+ "require": "./dist/cjs/web-search/index.js"
65
+ },
50
66
  "./*": "./*"
51
67
  },
52
68
  "files": [
@@ -56,11 +72,14 @@
56
72
  ],
57
73
  "devDependencies": {
58
74
  "@types/json-schema": "^7.0.15",
59
- "jest-mock-extended": "^3.0.4",
75
+ "@vitest/coverage-v8": "4.1.1",
76
+ "vitest": "^4.1.1",
77
+ "vitest-mock-extended": "^3.1.0",
60
78
  "@types/mime-types": "3.0.1",
61
79
  "tsx": "^4.19.3",
62
80
  "axios": "1.16.1",
63
- "n8n-workflow": "2.23.0"
81
+ "@n8n/vitest-config": "1.14.0",
82
+ "n8n-workflow": "2.26.0"
64
83
  },
65
84
  "dependencies": {
66
85
  "zod": "3.25.67",
@@ -77,10 +96,10 @@
77
96
  "@thednp/dommatrix": "^2.0.12",
78
97
  "pdf-parse": "2.4.5",
79
98
  "proxy-from-env": "^1.1.0",
80
- "undici": "^6.21.0",
81
- "@n8n/config": "2.22.0",
82
- "@n8n/typescript-config": "1.4.0",
83
- "@n8n/utils": "1.32.0"
99
+ "undici": "^6.24.0",
100
+ "@n8n/config": "2.24.0",
101
+ "@n8n/typescript-config": "1.5.0",
102
+ "@n8n/utils": "1.34.0"
84
103
  },
85
104
  "peerDependencies": {
86
105
  "n8n-workflow": "*"
@@ -101,13 +120,14 @@
101
120
  "typecheck": "tsc --noEmit",
102
121
  "copy-tokenizer-json": "node scripts/copy-tokenizer-json.js .",
103
122
  "build": "tsc --build tsconfig.build.esm.json tsconfig.build.cjs.json && tsc-alias -p tsconfig.build.esm.json && tsc-alias -p tsconfig.build.cjs.json && pnpm copy-tokenizer-json dist/cjs && pnpm copy-tokenizer-json dist/esm",
123
+ "build:unchecked": "tsc --build tsconfig.build.esm.json tsconfig.build.cjs.json --noCheck && tsc-alias -p tsconfig.build.esm.json && tsc-alias -p tsconfig.build.cjs.json && pnpm copy-tokenizer-json dist/cjs && pnpm copy-tokenizer-json dist/esm",
104
124
  "format": "biome format --write .",
105
125
  "format:check": "biome ci .",
106
126
  "lint": "eslint . --quiet",
107
127
  "lint:fix": "eslint . --fix",
108
128
  "watch": "tsc --build tsconfig.build.esm.json tsconfig.build.cjs.json --watch",
109
- "test": "jest",
110
- "test:unit": "jest",
111
- "test:dev": "jest --watch"
129
+ "test": "vitest run",
130
+ "test:unit": "vitest run",
131
+ "test:dev": "vitest --silent=false"
112
132
  }
113
133
  }