@n8n/ai-utilities 0.2.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 (105) hide show
  1. package/LICENSE.md +88 -0
  2. package/README.md +468 -0
  3. package/dist/adapters/langchain-chat-model.d.ts +20 -0
  4. package/dist/adapters/langchain-chat-model.js +180 -0
  5. package/dist/adapters/langchain-chat-model.js.map +1 -0
  6. package/dist/adapters/langchain-history.d.ts +12 -0
  7. package/dist/adapters/langchain-history.js +27 -0
  8. package/dist/adapters/langchain-history.js.map +1 -0
  9. package/dist/adapters/langchain-memory.d.ts +11 -0
  10. package/dist/adapters/langchain-memory.js +36 -0
  11. package/dist/adapters/langchain-memory.js.map +1 -0
  12. package/dist/build.tsbuildinfo +1 -0
  13. package/dist/chat-model/base.d.ts +15 -0
  14. package/dist/chat-model/base.js +25 -0
  15. package/dist/chat-model/base.js.map +1 -0
  16. package/dist/converters/message.d.ts +5 -0
  17. package/dist/converters/message.js +365 -0
  18. package/dist/converters/message.js.map +1 -0
  19. package/dist/converters/tool.d.ts +5 -0
  20. package/dist/converters/tool.js +59 -0
  21. package/dist/converters/tool.js.map +1 -0
  22. package/dist/guards.d.ts +8 -0
  23. package/dist/guards.js +27 -0
  24. package/dist/guards.js.map +1 -0
  25. package/dist/index.d.ts +28 -0
  26. package/dist/index.js +56 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/memory/base-chat-history.d.ts +8 -0
  29. package/dist/memory/base-chat-history.js +12 -0
  30. package/dist/memory/base-chat-history.js.map +1 -0
  31. package/dist/memory/base-chat-memory.d.ts +8 -0
  32. package/dist/memory/base-chat-memory.js +7 -0
  33. package/dist/memory/base-chat-memory.js.map +1 -0
  34. package/dist/memory/windowed-chat-memory.d.ts +14 -0
  35. package/dist/memory/windowed-chat-memory.js +38 -0
  36. package/dist/memory/windowed-chat-memory.js.map +1 -0
  37. package/dist/suppliers/supplyMemory.d.ts +6 -0
  38. package/dist/suppliers/supplyMemory.js +14 -0
  39. package/dist/suppliers/supplyMemory.js.map +1 -0
  40. package/dist/suppliers/supplyModel.d.ts +15 -0
  41. package/dist/suppliers/supplyModel.js +78 -0
  42. package/dist/suppliers/supplyModel.js.map +1 -0
  43. package/dist/types/chat-model.d.ts +26 -0
  44. package/dist/types/chat-model.js +3 -0
  45. package/dist/types/chat-model.js.map +1 -0
  46. package/dist/types/json.d.ts +5 -0
  47. package/dist/types/json.js +3 -0
  48. package/dist/types/json.js.map +1 -0
  49. package/dist/types/memory.d.ts +13 -0
  50. package/dist/types/memory.js +3 -0
  51. package/dist/types/memory.js.map +1 -0
  52. package/dist/types/message.d.ts +49 -0
  53. package/dist/types/message.js +3 -0
  54. package/dist/types/message.js.map +1 -0
  55. package/dist/types/openai.d.ts +39 -0
  56. package/dist/types/openai.js +3 -0
  57. package/dist/types/openai.js.map +1 -0
  58. package/dist/types/output.d.ts +37 -0
  59. package/dist/types/output.js +3 -0
  60. package/dist/types/output.js.map +1 -0
  61. package/dist/types/tool.d.ts +28 -0
  62. package/dist/types/tool.js +3 -0
  63. package/dist/types/tool.js.map +1 -0
  64. package/dist/utils/embeddings-input-validation.d.ts +3 -0
  65. package/dist/utils/embeddings-input-validation.js +28 -0
  66. package/dist/utils/embeddings-input-validation.js.map +1 -0
  67. package/dist/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.d.ts +1 -0
  68. package/dist/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js +30 -0
  69. package/dist/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -0
  70. package/dist/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +3 -0
  71. package/dist/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js +28 -0
  72. package/dist/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -0
  73. package/dist/utils/helpers.d.ts +3 -0
  74. package/dist/utils/helpers.js +53 -0
  75. package/dist/utils/helpers.js.map +1 -0
  76. package/dist/utils/http-proxy-agent.d.ts +10 -0
  77. package/dist/utils/http-proxy-agent.js +48 -0
  78. package/dist/utils/http-proxy-agent.js.map +1 -0
  79. package/dist/utils/log-ai-event.d.ts +2 -0
  80. package/dist/utils/log-ai-event.js +13 -0
  81. package/dist/utils/log-ai-event.js.map +1 -0
  82. package/dist/utils/log-wrapper.d.ts +28 -0
  83. package/dist/utils/log-wrapper.js +329 -0
  84. package/dist/utils/log-wrapper.js.map +1 -0
  85. package/dist/utils/n8n-binary-loader.d.ts +18 -0
  86. package/dist/utils/n8n-binary-loader.js +159 -0
  87. package/dist/utils/n8n-binary-loader.js.map +1 -0
  88. package/dist/utils/n8n-json-loader.d.ts +11 -0
  89. package/dist/utils/n8n-json-loader.js +66 -0
  90. package/dist/utils/n8n-json-loader.js.map +1 -0
  91. package/dist/utils/n8n-llm-tracing.d.ts +46 -0
  92. package/dist/utils/n8n-llm-tracing.js +157 -0
  93. package/dist/utils/n8n-llm-tracing.js.map +1 -0
  94. package/dist/utils/sse.d.ts +8 -0
  95. package/dist/utils/sse.js +107 -0
  96. package/dist/utils/sse.js.map +1 -0
  97. package/dist/utils/tokenizer/cl100k_base.json +1 -0
  98. package/dist/utils/tokenizer/o200k_base.json +1 -0
  99. package/dist/utils/tokenizer/tiktoken.d.ts +4 -0
  100. package/dist/utils/tokenizer/tiktoken.js +40 -0
  101. package/dist/utils/tokenizer/tiktoken.js.map +1 -0
  102. package/dist/utils/tokenizer/token-estimator.d.ts +4 -0
  103. package/dist/utils/tokenizer/token-estimator.js +98 -0
  104. package/dist/utils/tokenizer/token-estimator.js.map +1 -0
  105. package/package.json +51 -0
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMetadataFiltersValues = getMetadataFiltersValues;
4
+ exports.hasLongSequentialRepeat = hasLongSequentialRepeat;
5
+ function getMetadataFiltersValues(ctx, itemIndex) {
6
+ const options = ctx.getNodeParameter('options', itemIndex, {});
7
+ if (options.metadata) {
8
+ const { metadataValues: metadata } = options.metadata;
9
+ if (metadata.length > 0) {
10
+ return metadata.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});
11
+ }
12
+ }
13
+ if (options.searchFilterJson) {
14
+ return ctx.getNodeParameter('options.searchFilterJson', itemIndex, '', {
15
+ ensureType: 'object',
16
+ });
17
+ }
18
+ return undefined;
19
+ }
20
+ function hasLongSequentialRepeat(text, threshold = 1000) {
21
+ try {
22
+ if (text === null ||
23
+ typeof text !== 'string' ||
24
+ text.length === 0 ||
25
+ threshold <= 0 ||
26
+ text.length < threshold) {
27
+ return false;
28
+ }
29
+ const iterator = text[Symbol.iterator]();
30
+ let prev = iterator.next();
31
+ if (prev.done) {
32
+ return false;
33
+ }
34
+ let count = 1;
35
+ for (const char of iterator) {
36
+ if (char === prev.value) {
37
+ count++;
38
+ if (count >= threshold) {
39
+ return true;
40
+ }
41
+ }
42
+ else {
43
+ count = 1;
44
+ prev = { value: char, done: false };
45
+ }
46
+ }
47
+ return false;
48
+ }
49
+ catch (error) {
50
+ return false;
51
+ }
52
+ }
53
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;AAEA,4DAyBC;AASD,0DAsCC;AAxED,SAAgB,wBAAwB,CACvC,GAA6C,EAC7C,SAAiB;IAEjB,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAK5C,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,SAAS,EAAE,EAAE,EAAE;YACtE,UAAU,EAAE,QAAQ;SACpB,CAA0B,CAAC;IAC7B,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AASD,SAAgB,uBAAuB,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;IACrE,IAAI,CAAC;QAEJ,IACC,IAAI,KAAK,IAAI;YACb,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,CAAC,MAAM,KAAK,CAAC;YACjB,SAAS,IAAI,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,SAAS,EACtB,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,KAAK,GAAG,CAAC,CAAC;gBACV,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEhB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { HttpsProxyAgent } from 'https-proxy-agent';
2
+ import { Agent, ProxyAgent } from 'undici';
3
+ export interface AgentTimeoutOptions {
4
+ headersTimeout?: number;
5
+ bodyTimeout?: number;
6
+ connectTimeout?: number;
7
+ }
8
+ export declare function getProxyAgent(targetUrl?: string, timeoutOptions?: AgentTimeoutOptions): Agent | ProxyAgent | undefined;
9
+ export declare function proxyFetch(input: RequestInfo | URL, init?: RequestInit, timeoutOptions?: AgentTimeoutOptions): Promise<Response>;
10
+ export declare function getNodeProxyAgent(targetUrl?: string): HttpsProxyAgent<string> | undefined;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getProxyAgent = getProxyAgent;
7
+ exports.proxyFetch = proxyFetch;
8
+ exports.getNodeProxyAgent = getNodeProxyAgent;
9
+ const https_proxy_agent_1 = require("https-proxy-agent");
10
+ const proxy_from_env_1 = __importDefault(require("proxy-from-env"));
11
+ const undici_1 = require("undici");
12
+ const DEFAULT_TIMEOUT = parseInt(process.env.N8N_AI_TIMEOUT_MAX ?? '3600000', 10);
13
+ function getProxyUrlFromEnv(targetUrl) {
14
+ return proxy_from_env_1.default.getProxyForUrl(targetUrl ?? 'https://example.nonexistent/');
15
+ }
16
+ function getProxyAgent(targetUrl, timeoutOptions) {
17
+ const proxyUrl = getProxyUrlFromEnv(targetUrl);
18
+ const agentOptions = {
19
+ headersTimeout: timeoutOptions?.headersTimeout ?? DEFAULT_TIMEOUT,
20
+ bodyTimeout: timeoutOptions?.bodyTimeout ?? DEFAULT_TIMEOUT,
21
+ ...(timeoutOptions?.connectTimeout !== undefined && {
22
+ connectTimeout: timeoutOptions.connectTimeout,
23
+ }),
24
+ };
25
+ if (!proxyUrl) {
26
+ if (timeoutOptions) {
27
+ return new undici_1.Agent(agentOptions);
28
+ }
29
+ return undefined;
30
+ }
31
+ return new undici_1.ProxyAgent({ uri: proxyUrl, ...agentOptions });
32
+ }
33
+ async function proxyFetch(input, init, timeoutOptions) {
34
+ const targetUrl = input instanceof Request ? input.url : input.toString();
35
+ const dispatcher = getProxyAgent(targetUrl, timeoutOptions);
36
+ return await fetch(input, {
37
+ ...init,
38
+ dispatcher,
39
+ });
40
+ }
41
+ function getNodeProxyAgent(targetUrl) {
42
+ const proxyUrl = getProxyUrlFromEnv(targetUrl);
43
+ if (!proxyUrl) {
44
+ return undefined;
45
+ }
46
+ return new https_proxy_agent_1.HttpsProxyAgent(proxyUrl);
47
+ }
48
+ //# sourceMappingURL=http-proxy-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-proxy-agent.js","sourceRoot":"","sources":["../../src/utils/http-proxy-agent.ts"],"names":[],"mappings":";;;;;AAiDA,sCAmBC;AAUD,gCAaC;AASD,8CAQC;AA5GD,yDAAoD;AACpD,oEAA0C;AAC1C,mCAA2C;AAe3C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,EAAE,EAAE,CAAC,CAAC;AAalF,SAAS,kBAAkB,CAAC,SAAkB;IAC7C,OAAO,wBAAY,CAAC,cAAc,CAAC,SAAS,IAAI,8BAA8B,CAAC,CAAC;AACjF,CAAC;AAiBD,SAAgB,aAAa,CAAC,SAAkB,EAAE,cAAoC;IACrF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG;QACpB,cAAc,EAAE,cAAc,EAAE,cAAc,IAAI,eAAe;QACjE,WAAW,EAAE,cAAc,EAAE,WAAW,IAAI,eAAe;QAC3D,GAAG,CAAC,cAAc,EAAE,cAAc,KAAK,SAAS,IAAI;YACnD,cAAc,EAAE,cAAc,CAAC,cAAc;SAC7C,CAAC;KACF,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,cAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,mBAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAC3D,CAAC;AAUM,KAAK,UAAU,UAAU,CAC/B,KAAwB,EACxB,IAAkB,EAClB,cAAoC;IAEpC,MAAM,SAAS,GAAG,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE5D,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE;QACzB,GAAG,IAAI;QAEP,UAAU;KACV,CAAC,CAAC;AACJ,CAAC;AASD,SAAgB,iBAAiB,CAAC,SAAkB;IACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,mCAAe,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { AiEvent, IDataObject, IExecuteFunctions, ISupplyDataFunctions } from 'n8n-workflow';
2
+ export declare function logAiEvent(executeFunctions: IExecuteFunctions | ISupplyDataFunctions, event: AiEvent, data?: IDataObject): void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logAiEvent = logAiEvent;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ function logAiEvent(executeFunctions, event, data) {
6
+ try {
7
+ executeFunctions.logAiEvent(event, data ? (0, n8n_workflow_1.jsonStringify)(data) : undefined);
8
+ }
9
+ catch (error) {
10
+ executeFunctions.logger.debug(`Error logging AI event: ${event}`);
11
+ }
12
+ }
13
+ //# sourceMappingURL=log-ai-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-ai-event.js","sourceRoot":"","sources":["../../src/utils/log-ai-event.ts"],"names":[],"mappings":";;AAGA,gCAUC;AAZD,+CAA6C;AAE7C,SAAgB,UAAU,CACzB,gBAA0D,EAC1D,KAAc,EACd,IAAkB;IAElB,IAAI,CAAC;QACJ,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { BaseDocumentLoader } from '@langchain/classic/dist/document_loaders/base';
2
+ import type { BaseChatMemory } from '@langchain/community/memory/chat_memory';
3
+ import type { BaseChatMessageHistory } from '@langchain/core/chat_history';
4
+ import type { Document } from '@langchain/core/documents';
5
+ import { Embeddings } from '@langchain/core/embeddings';
6
+ import { BaseRetriever } from '@langchain/core/retrievers';
7
+ import { BaseDocumentCompressor } from '@langchain/core/retrievers/document_compressors';
8
+ import type { StructuredTool, Tool } from '@langchain/core/tools';
9
+ import { VectorStore } from '@langchain/core/vectorstores';
10
+ import { TextSplitter } from '@langchain/textsplitters';
11
+ import type { IExecuteFunctions, ISupplyDataFunctions, NodeConnectionType } from 'n8n-workflow';
12
+ import { N8nBinaryLoader } from './n8n-binary-loader';
13
+ import { N8nJsonLoader } from './n8n-json-loader';
14
+ export declare function callMethodAsync<T>(this: T, parameters: {
15
+ executeFunctions: IExecuteFunctions | ISupplyDataFunctions;
16
+ connectionType: NodeConnectionType;
17
+ currentNodeRunIndex: number;
18
+ method: (...args: any[]) => Promise<unknown>;
19
+ arguments: unknown[];
20
+ }): Promise<unknown>;
21
+ export declare function callMethodSync<T>(this: T, parameters: {
22
+ executeFunctions: IExecuteFunctions;
23
+ connectionType: NodeConnectionType;
24
+ currentNodeRunIndex: number;
25
+ method: (...args: any[]) => T;
26
+ arguments: unknown[];
27
+ }): unknown;
28
+ export declare function logWrapper<T extends Tool | StructuredTool | BaseChatMemory | BaseChatMessageHistory | BaseRetriever | BaseDocumentCompressor | Embeddings | Document[] | Document | BaseDocumentLoader | TextSplitter | VectorStore | N8nBinaryLoader | N8nJsonLoader>(originalInstance: T, executeFunctions: IExecuteFunctions | ISupplyDataFunctions): T;
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callMethodAsync = callMethodAsync;
4
+ exports.callMethodSync = callMethodSync;
5
+ exports.logWrapper = logWrapper;
6
+ const embeddings_1 = require("@langchain/core/embeddings");
7
+ const retrievers_1 = require("@langchain/core/retrievers");
8
+ const document_compressors_1 = require("@langchain/core/retrievers/document_compressors");
9
+ const vectorstores_1 = require("@langchain/core/vectorstores");
10
+ const textsplitters_1 = require("@langchain/textsplitters");
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ const guards_1 = require("../guards");
13
+ const embeddings_input_validation_1 = require("./embeddings-input-validation");
14
+ const log_ai_event_1 = require("./log-ai-event");
15
+ const n8n_binary_loader_1 = require("./n8n-binary-loader");
16
+ const n8n_json_loader_1 = require("./n8n-json-loader");
17
+ async function callMethodAsync(parameters) {
18
+ try {
19
+ return await parameters.method.call(this, ...parameters.arguments);
20
+ }
21
+ catch (e) {
22
+ const connectedNode = parameters.executeFunctions.getNode();
23
+ const error = new n8n_workflow_1.NodeOperationError(connectedNode, e, {
24
+ functionality: 'configuration-node',
25
+ });
26
+ const metadata = (0, n8n_workflow_1.parseErrorMetadata)(error);
27
+ parameters.executeFunctions.addOutputData(parameters.connectionType, parameters.currentNodeRunIndex, error, metadata);
28
+ if (error.message) {
29
+ if (!error.description) {
30
+ error.description = error.message;
31
+ }
32
+ throw error;
33
+ }
34
+ throw new n8n_workflow_1.NodeOperationError(connectedNode, `Error on node "${connectedNode.name}" which is connected via input "${parameters.connectionType}"`, { functionality: 'configuration-node' });
35
+ }
36
+ }
37
+ function callMethodSync(parameters) {
38
+ try {
39
+ return parameters.method.call(this, ...parameters.arguments);
40
+ }
41
+ catch (e) {
42
+ const connectedNode = parameters.executeFunctions.getNode();
43
+ const error = new n8n_workflow_1.NodeOperationError(connectedNode, e);
44
+ parameters.executeFunctions.addOutputData(parameters.connectionType, parameters.currentNodeRunIndex, error);
45
+ throw new n8n_workflow_1.NodeOperationError(connectedNode, `Error on node "${connectedNode.name}" which is connected via input "${parameters.connectionType}"`, { functionality: 'configuration-node' });
46
+ }
47
+ }
48
+ function logWrapper(originalInstance, executeFunctions) {
49
+ return new Proxy(originalInstance, {
50
+ get: (target, prop) => {
51
+ let connectionType;
52
+ if ((0, guards_1.isBaseChatMemory)(originalInstance)) {
53
+ if (prop === 'loadMemoryVariables' && 'loadMemoryVariables' in target) {
54
+ return async (values) => {
55
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
56
+ const { index } = executeFunctions.addInputData(connectionType, [
57
+ [{ json: { action: 'loadMemoryVariables', values } }],
58
+ ]);
59
+ const response = (await callMethodAsync.call(target, {
60
+ executeFunctions,
61
+ connectionType,
62
+ currentNodeRunIndex: index,
63
+ method: target[prop],
64
+ arguments: [values],
65
+ }));
66
+ const chatHistory = response?.chat_history ?? response;
67
+ executeFunctions.addOutputData(connectionType, index, [
68
+ [{ json: { action: 'loadMemoryVariables', chatHistory } }],
69
+ ]);
70
+ return response;
71
+ };
72
+ }
73
+ else if (prop === 'saveContext' && 'saveContext' in target) {
74
+ return async (input, output) => {
75
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
76
+ const { index } = executeFunctions.addInputData(connectionType, [
77
+ [{ json: { action: 'saveContext', input, output } }],
78
+ ]);
79
+ const response = (await callMethodAsync.call(target, {
80
+ executeFunctions,
81
+ connectionType,
82
+ currentNodeRunIndex: index,
83
+ method: target[prop],
84
+ arguments: [input, output],
85
+ }));
86
+ const chatHistory = await target.chatHistory.getMessages();
87
+ executeFunctions.addOutputData(connectionType, index, [
88
+ [{ json: { action: 'saveContext', chatHistory } }],
89
+ ]);
90
+ return response;
91
+ };
92
+ }
93
+ }
94
+ if ((0, guards_1.isBaseChatMessageHistory)(originalInstance)) {
95
+ if (prop === 'getMessages' && 'getMessages' in target) {
96
+ return async () => {
97
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
98
+ const { index } = executeFunctions.addInputData(connectionType, [
99
+ [{ json: { action: 'getMessages' } }],
100
+ ]);
101
+ const response = (await callMethodAsync.call(target, {
102
+ executeFunctions,
103
+ connectionType,
104
+ currentNodeRunIndex: index,
105
+ method: target[prop],
106
+ arguments: [],
107
+ }));
108
+ const payload = { action: 'getMessages', response };
109
+ executeFunctions.addOutputData(connectionType, index, [[{ json: payload }]]);
110
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-messages-retrieved-from-memory', { response });
111
+ return response;
112
+ };
113
+ }
114
+ else if (prop === 'addMessage' && 'addMessage' in target) {
115
+ return async (message) => {
116
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
117
+ const payload = { action: 'addMessage', message };
118
+ const { index } = executeFunctions.addInputData(connectionType, [[{ json: payload }]]);
119
+ await callMethodAsync.call(target, {
120
+ executeFunctions,
121
+ connectionType,
122
+ currentNodeRunIndex: index,
123
+ method: target[prop],
124
+ arguments: [message],
125
+ });
126
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-message-added-to-memory', { message });
127
+ executeFunctions.addOutputData(connectionType, index, [[{ json: payload }]]);
128
+ };
129
+ }
130
+ }
131
+ if (originalInstance instanceof retrievers_1.BaseRetriever) {
132
+ if (prop === 'getRelevantDocuments' && 'getRelevantDocuments' in target) {
133
+ return async (query, config) => {
134
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiRetriever;
135
+ const { index } = executeFunctions.addInputData(connectionType, [
136
+ [{ json: { query, config } }],
137
+ ]);
138
+ const response = (await callMethodAsync.call(target, {
139
+ executeFunctions,
140
+ connectionType,
141
+ currentNodeRunIndex: index,
142
+ method: target[prop],
143
+ arguments: [query, config],
144
+ }));
145
+ const executionId = response[0]?.metadata?.executionId;
146
+ const workflowId = response[0]?.metadata?.workflowId;
147
+ const metadata = {};
148
+ if (executionId && workflowId) {
149
+ metadata.subExecution = {
150
+ executionId,
151
+ workflowId,
152
+ };
153
+ }
154
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-documents-retrieved', { query });
155
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]], metadata);
156
+ return response;
157
+ };
158
+ }
159
+ }
160
+ if (originalInstance instanceof embeddings_1.Embeddings) {
161
+ if (prop === 'embedDocuments' && 'embedDocuments' in target) {
162
+ return async (documents) => {
163
+ const validatedDocuments = (0, embeddings_input_validation_1.validateEmbedDocumentsInput)(documents, executeFunctions.getNode());
164
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiEmbedding;
165
+ const { index } = executeFunctions.addInputData(connectionType, [
166
+ [{ json: { documents: validatedDocuments } }],
167
+ ]);
168
+ const response = (await callMethodAsync.call(target, {
169
+ executeFunctions,
170
+ connectionType,
171
+ currentNodeRunIndex: index,
172
+ method: target[prop],
173
+ arguments: [validatedDocuments],
174
+ }));
175
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-document-embedded');
176
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
177
+ return response;
178
+ };
179
+ }
180
+ if (prop === 'embedQuery' && 'embedQuery' in target) {
181
+ return async (query) => {
182
+ const validatedQuery = (0, embeddings_input_validation_1.validateEmbedQueryInput)(query, executeFunctions.getNode());
183
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiEmbedding;
184
+ const { index } = executeFunctions.addInputData(connectionType, [
185
+ [{ json: { query: validatedQuery } }],
186
+ ]);
187
+ const response = (await callMethodAsync.call(target, {
188
+ executeFunctions,
189
+ connectionType,
190
+ currentNodeRunIndex: index,
191
+ method: target[prop],
192
+ arguments: [validatedQuery],
193
+ }));
194
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-query-embedded');
195
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
196
+ return response;
197
+ };
198
+ }
199
+ }
200
+ if (originalInstance instanceof document_compressors_1.BaseDocumentCompressor) {
201
+ if (prop === 'compressDocuments' && 'compressDocuments' in target) {
202
+ return async (documents, query) => {
203
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiReranker;
204
+ const { index } = executeFunctions.addInputData(connectionType, [
205
+ [{ json: { query, documents } }],
206
+ ]);
207
+ const response = (await callMethodAsync.call(target, {
208
+ executeFunctions,
209
+ connectionType,
210
+ currentNodeRunIndex: index,
211
+ method: target[prop],
212
+ arguments: [(0, n8n_workflow_1.deepCopy)(documents), query],
213
+ }));
214
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-document-reranked', { query });
215
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
216
+ return response;
217
+ };
218
+ }
219
+ }
220
+ if (originalInstance instanceof n8n_json_loader_1.N8nJsonLoader ||
221
+ originalInstance instanceof n8n_binary_loader_1.N8nBinaryLoader) {
222
+ if (prop === 'processAll' && 'processAll' in target) {
223
+ return async (items) => {
224
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiDocument;
225
+ const { index } = executeFunctions.addInputData(connectionType, [items]);
226
+ const response = (await callMethodAsync.call(target, {
227
+ executeFunctions,
228
+ connectionType,
229
+ currentNodeRunIndex: index,
230
+ method: target[prop],
231
+ arguments: [items],
232
+ }));
233
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
234
+ return response;
235
+ };
236
+ }
237
+ if (prop === 'processItem' && 'processItem' in target) {
238
+ return async (item, itemIndex) => {
239
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiDocument;
240
+ const { index } = executeFunctions.addInputData(connectionType, [[item]]);
241
+ const response = (await callMethodAsync.call(target, {
242
+ executeFunctions,
243
+ connectionType,
244
+ currentNodeRunIndex: index,
245
+ method: target[prop],
246
+ arguments: [item, itemIndex],
247
+ }));
248
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-document-processed');
249
+ executeFunctions.addOutputData(connectionType, index, [
250
+ [{ json: { response }, pairedItem: { item: itemIndex } }],
251
+ ]);
252
+ return response;
253
+ };
254
+ }
255
+ }
256
+ if (originalInstance instanceof textsplitters_1.TextSplitter) {
257
+ if (prop === 'splitText' && 'splitText' in target) {
258
+ return async (text) => {
259
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiTextSplitter;
260
+ const { index } = executeFunctions.addInputData(connectionType, [
261
+ [{ json: { textSplitter: text } }],
262
+ ]);
263
+ const response = (await callMethodAsync.call(target, {
264
+ executeFunctions,
265
+ connectionType,
266
+ currentNodeRunIndex: index,
267
+ method: target[prop],
268
+ arguments: [text],
269
+ }));
270
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-text-split');
271
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
272
+ return response;
273
+ };
274
+ }
275
+ }
276
+ if ((0, guards_1.isToolsInstance)(originalInstance)) {
277
+ if (prop === '_call' && '_call' in target) {
278
+ return async (query) => {
279
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiTool;
280
+ const inputData = { query };
281
+ if (target.metadata?.isFromToolkit) {
282
+ inputData.tool = {
283
+ name: target.name,
284
+ description: target.description,
285
+ };
286
+ }
287
+ const { index } = executeFunctions.addInputData(connectionType, [
288
+ [{ json: inputData }],
289
+ ]);
290
+ const response = (await callMethodAsync.call(target, {
291
+ executeFunctions,
292
+ connectionType,
293
+ currentNodeRunIndex: index,
294
+ method: target[prop],
295
+ arguments: [query],
296
+ }));
297
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-tool-called', { ...inputData, response });
298
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
299
+ if (typeof response === 'string')
300
+ return response;
301
+ return JSON.stringify(response);
302
+ };
303
+ }
304
+ }
305
+ if (originalInstance instanceof vectorstores_1.VectorStore) {
306
+ if (prop === 'similaritySearch' && 'similaritySearch' in target) {
307
+ return async (query, k, filter, _callbacks) => {
308
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiVectorStore;
309
+ const { index } = executeFunctions.addInputData(connectionType, [
310
+ [{ json: { query, k, filter } }],
311
+ ]);
312
+ const response = (await callMethodAsync.call(target, {
313
+ executeFunctions,
314
+ connectionType,
315
+ currentNodeRunIndex: index,
316
+ method: target[prop],
317
+ arguments: [query, k, filter, _callbacks],
318
+ }));
319
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-vector-store-searched', { query });
320
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
321
+ return response;
322
+ };
323
+ }
324
+ }
325
+ return target[prop];
326
+ },
327
+ });
328
+ }
329
+ //# sourceMappingURL=log-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-wrapper.js","sourceRoot":"","sources":["../../src/utils/log-wrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Document } from '@langchain/core/documents';
2
+ import type { TextSplitter } from '@langchain/textsplitters';
3
+ import type { IExecuteFunctions, INodeExecutionData, ISupplyDataFunctions } from 'n8n-workflow';
4
+ export declare class N8nBinaryLoader {
5
+ private context;
6
+ private optionsPrefix;
7
+ private binaryDataKey;
8
+ private textSplitter?;
9
+ constructor(context: IExecuteFunctions | ISupplyDataFunctions, optionsPrefix?: string, binaryDataKey?: string, textSplitter?: TextSplitter | undefined);
10
+ processAll(items?: INodeExecutionData[]): Promise<Document[]>;
11
+ private validateMimeType;
12
+ private getFilePathOrBlob;
13
+ private getLoader;
14
+ private loadDocuments;
15
+ private cleanupTmpFileIfNeeded;
16
+ processItem(item: INodeExecutionData, itemIndex: number): Promise<Document[]>;
17
+ processItemByKey(item: INodeExecutionData, itemIndex: number, binaryKey: string): Promise<Document[]>;
18
+ }