n8n-core 1.99.0 → 1.100.1

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.
@@ -1,10 +1,11 @@
1
- import type { IDataObject, IExecuteResponsePromiseData, INode, IRun, IRunExecutionData, ITaskData, ITaskStartedData, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
1
+ import type { IDataObject, IExecuteResponsePromiseData, INode, IRun, IRunExecutionData, ITaskData, ITaskStartedData, IWorkflowBase, StructuredChunk, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
2
2
  export type ExecutionLifecycleHookHandlers = {
3
3
  nodeExecuteBefore: Array<(this: ExecutionLifecycleHooks, nodeName: string, data: ITaskStartedData) => Promise<void> | void>;
4
4
  nodeExecuteAfter: Array<(this: ExecutionLifecycleHooks, nodeName: string, data: ITaskData, executionData: IRunExecutionData) => Promise<void> | void>;
5
5
  workflowExecuteBefore: Array<(this: ExecutionLifecycleHooks, workflow: Workflow, data?: IRunExecutionData) => Promise<void> | void>;
6
6
  workflowExecuteAfter: Array<(this: ExecutionLifecycleHooks, data: IRun, newStaticData: IDataObject) => Promise<void> | void>;
7
7
  sendResponse: Array<(this: ExecutionLifecycleHooks, response: IExecuteResponsePromiseData) => Promise<void> | void>;
8
+ sendChunk: Array<(this: ExecutionLifecycleHooks, chunk: StructuredChunk) => Promise<void> | void>;
8
9
  nodeFetchedData: Array<(this: ExecutionLifecycleHooks, workflowId: string, node: INode) => Promise<void> | void>;
9
10
  };
10
11
  export type ExecutionLifecycleHookName = keyof ExecutionLifecycleHookHandlers;
@@ -13,6 +13,7 @@ class ExecutionLifecycleHooks {
13
13
  sendResponse: [],
14
14
  workflowExecuteAfter: [],
15
15
  workflowExecuteBefore: [],
16
+ sendChunk: [],
16
17
  };
17
18
  }
18
19
  addHandler(hookName, ...handlers) {
@@ -1 +1 @@
1
- {"version":3,"file":"execution-lifecycle-hooks.js","sourceRoot":"","sources":["../../src/execution-engine/execution-lifecycle-hooks.ts"],"names":[],"mappings":";;;AA8EA,MAAa,uBAAuB;IAUnC,YACU,IAAyB,EACzB,WAAmB,EACnB,YAA2B;QAF3B,SAAI,GAAJ,IAAI,CAAqB;QACzB,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAe;QAZ5B,aAAQ,GAAmC;YACnD,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,qBAAqB,EAAE,EAAE;SACzB,CAAC;IAMC,CAAC;IAEJ,UAAU,CACT,QAAc,EACd,GAAG,QAA6D;QAGhE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAKX,QAAc,EAAE,UAAkB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,YAGR,CAAC;YACnB,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;CACD;AAvCD,0DAuCC"}
1
+ {"version":3,"file":"execution-lifecycle-hooks.js","sourceRoot":"","sources":["../../src/execution-engine/execution-lifecycle-hooks.ts"],"names":[],"mappings":";;;AAkFA,MAAa,uBAAuB;IAWnC,YACU,IAAyB,EACzB,WAAmB,EACnB,YAA2B;QAF3B,SAAI,GAAJ,IAAI,CAAqB;QACzB,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAe;QAb5B,aAAQ,GAAmC;YACnD,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,qBAAqB,EAAE,EAAE;YACzB,SAAS,EAAE,EAAE;SACb,CAAC;IAMC,CAAC;IAEJ,UAAU,CACT,QAAc,EACd,GAAG,QAA6D;QAGhE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAKX,QAAc,EAAE,UAAkB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,YAGR,CAAC;YACnB,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;CACD;AAxCD,0DAwCC"}
@@ -1,4 +1,4 @@
1
- import type { AINodeConnectionType, CallbackManager, CloseFunction, IExecuteData, IExecuteFunctions, IExecuteResponsePromiseData, INode, INodeExecutionData, IRunExecutionData, ITaskDataConnections, IWorkflowExecuteAdditionalData, NodeExecutionHint, Result, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
1
+ import type { AINodeConnectionType, CallbackManager, ChunkType, CloseFunction, IDataObject, IExecuteData, IExecuteFunctions, IExecuteResponsePromiseData, INode, INodeExecutionData, IRunExecutionData, ITaskDataConnections, IWorkflowExecuteAdditionalData, NodeExecutionHint, Result, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
2
2
  import { BaseExecuteContext } from './base-execute-context';
3
3
  export declare class ExecuteContext extends BaseExecuteContext implements IExecuteFunctions {
4
4
  private readonly closeFunctions;
@@ -7,6 +7,7 @@ export declare class ExecuteContext extends BaseExecuteContext implements IExecu
7
7
  readonly getNodeParameter: IExecuteFunctions['getNodeParameter'];
8
8
  readonly hints: NodeExecutionHint[];
9
9
  constructor(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, runExecutionData: IRunExecutionData, runIndex: number, connectionInputData: INodeExecutionData[], inputData: ITaskDataConnections, executeData: IExecuteData, closeFunctions: CloseFunction[], abortSignal?: AbortSignal);
10
+ sendChunk(type: ChunkType, content?: IDataObject | string): Promise<void>;
10
11
  startJob<T = unknown, E = unknown>(jobType: string, settings: unknown, itemIndex: number): Promise<Result<T, E>>;
11
12
  getInputConnectionData(connectionType: AINodeConnectionType, itemIndex: number): Promise<unknown>;
12
13
  getInputData(inputIndex?: number, connectionType?: "main"): INodeExecutionData[];
@@ -38,6 +38,20 @@ class ExecuteContext extends base_execute_context_1.BaseExecuteContext {
38
38
  };
39
39
  this.getNodeParameter = ((parameterName, itemIndex, fallbackValue, options) => this._getNodeParameter(parameterName, itemIndex, fallbackValue, options));
40
40
  }
41
+ async sendChunk(type, content) {
42
+ const node = this.getNode();
43
+ const metadata = {
44
+ nodeId: node.id,
45
+ nodeName: node.name,
46
+ timestamp: Date.now(),
47
+ };
48
+ const message = {
49
+ type,
50
+ content: content ? JSON.stringify(content) : undefined,
51
+ metadata,
52
+ };
53
+ await this.additionalData.hooks?.runHook('sendChunk', [message]);
54
+ }
41
55
  async startJob(jobType, settings, itemIndex) {
42
56
  return await this.additionalData.startRunnerTask(this.additionalData, jobType, settings, this, this.inputData, this.node, this.workflow, this.runExecutionData, this.runIndex, itemIndex, this.node.name, this.connectionInputData, {}, this.mode, (0, n8n_workflow_1.createEnvProviderState)(), this.executeData);
43
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"execute-context.js","sourceRoot":"","sources":["../../../src/execution-engine/node-execution-context/execute-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-context.js","sourceRoot":"","sources":["../../../src/execution-engine/node-execution-context/execute-context.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFileSystemHelperFunctions = void 0;
4
4
  exports.isFilePathBlocked = isFilePathBlocked;
5
+ const backend_common_1 = require("@n8n/backend-common");
5
6
  const di_1 = require("@n8n/di");
6
7
  const n8n_workflow_1 = require("n8n-workflow");
7
8
  const node_fs_1 = require("node:fs");
@@ -24,38 +25,12 @@ function isFilePathBlocked(filePath) {
24
25
  const allowedPaths = getAllowedPaths();
25
26
  const resolvedFilePath = (0, node_path_1.resolve)(filePath);
26
27
  const blockFileAccessToN8nFiles = process.env[constants_1.BLOCK_FILE_ACCESS_TO_N8N_FILES] !== 'false';
27
- if (allowedPaths.length) {
28
- for (const path of allowedPaths) {
29
- if (resolvedFilePath.startsWith(path)) {
30
- return false;
31
- }
32
- }
28
+ const restrictedPaths = blockFileAccessToN8nFiles ? getN8nRestrictedPaths() : [];
29
+ if (restrictedPaths.some((restrictedPath) => (0, backend_common_1.isContainedWithin)(restrictedPath, resolvedFilePath))) {
33
30
  return true;
34
31
  }
35
- if (blockFileAccessToN8nFiles) {
36
- const { n8nFolder, staticCacheDir } = di_1.Container.get(instance_settings_1.InstanceSettings);
37
- const restrictedPaths = [n8nFolder, staticCacheDir];
38
- if (process.env[constants_1.CONFIG_FILES]) {
39
- restrictedPaths.push(...process.env[constants_1.CONFIG_FILES].split(','));
40
- }
41
- if (process.env[constants_1.CUSTOM_EXTENSION_ENV]) {
42
- const customExtensionFolders = process.env[constants_1.CUSTOM_EXTENSION_ENV].split(';');
43
- restrictedPaths.push(...customExtensionFolders);
44
- }
45
- if (process.env[constants_1.BINARY_DATA_STORAGE_PATH]) {
46
- restrictedPaths.push(process.env[constants_1.BINARY_DATA_STORAGE_PATH]);
47
- }
48
- if (process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]) {
49
- restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]);
50
- }
51
- if (process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]) {
52
- restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]);
53
- }
54
- for (const path of restrictedPaths) {
55
- if (resolvedFilePath.startsWith(path)) {
56
- return true;
57
- }
58
- }
32
+ if (allowedPaths.length) {
33
+ return !allowedPaths.some((allowedPath) => (0, backend_common_1.isContainedWithin)(allowedPath, resolvedFilePath));
59
34
  }
60
35
  return false;
61
36
  }
@@ -83,7 +58,7 @@ const getFileSystemHelperFunctions = (node) => ({
83
58
  return (0, node_fs_1.createReadStream)(filePath);
84
59
  },
85
60
  getStoragePath() {
86
- return (0, node_path_1.join)(di_1.Container.get(instance_settings_1.InstanceSettings).n8nFolder, `storage/${node.type}`);
61
+ return (0, backend_common_1.safeJoinPath)(di_1.Container.get(instance_settings_1.InstanceSettings).n8nFolder, `storage/${node.type}`);
87
62
  },
88
63
  async writeContentToFile(filePath, content, flag) {
89
64
  if (isFilePathBlocked(filePath)) {
@@ -95,4 +70,25 @@ const getFileSystemHelperFunctions = (node) => ({
95
70
  },
96
71
  });
97
72
  exports.getFileSystemHelperFunctions = getFileSystemHelperFunctions;
73
+ function getN8nRestrictedPaths() {
74
+ const { n8nFolder, staticCacheDir } = di_1.Container.get(instance_settings_1.InstanceSettings);
75
+ const restrictedPaths = [n8nFolder, staticCacheDir];
76
+ if (process.env[constants_1.CONFIG_FILES]) {
77
+ restrictedPaths.push(...process.env[constants_1.CONFIG_FILES].split(','));
78
+ }
79
+ if (process.env[constants_1.CUSTOM_EXTENSION_ENV]) {
80
+ const customExtensionFolders = process.env[constants_1.CUSTOM_EXTENSION_ENV].split(';');
81
+ restrictedPaths.push(...customExtensionFolders);
82
+ }
83
+ if (process.env[constants_1.BINARY_DATA_STORAGE_PATH]) {
84
+ restrictedPaths.push(process.env[constants_1.BINARY_DATA_STORAGE_PATH]);
85
+ }
86
+ if (process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]) {
87
+ restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_INVITE]);
88
+ }
89
+ if (process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]) {
90
+ restrictedPaths.push(process.env[constants_1.UM_EMAIL_TEMPLATES_PWRESET]);
91
+ }
92
+ return restrictedPaths;
93
+ }
98
94
  //# sourceMappingURL=file-system-helper-functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-system-helper-functions.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/file-system-helper-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-system-helper-functions.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/file-system-helper-functions.ts"],"names":[],"mappings":";;;AA+BA,8CAiBC;AAhDD,wDAAsE;AACtE,gCAAoC;AAEpC,+CAAkD;AAClD,qCAA2C;AAC3C,+CAAgF;AAChF,yCAAoC;AAEpC,2CAQqB;AACrB,2DAAuD;AAEvD,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAuB,CAAC,CAAC;IAClE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,YAAY,GAAG,oBAAoB;SACvC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC;AAEF,SAAgB,iBAAiB,CAAC,QAAgB;IACjD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,0CAA8B,CAAC,KAAK,OAAO,CAAC;IAE1F,MAAM,eAAe,GAAG,yBAAyB,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,IACC,eAAe,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAA,kCAAiB,EAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,EAC5F,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAA,kCAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAEM,MAAM,4BAA4B,GAAG,CAAC,IAAW,EAA6B,EAAE,CAAC,CAAC;IACxF,KAAK,CAAC,gBAAgB,CAAC,QAAQ;QAC9B,IAAI,CAAC;YACJ,MAAM,IAAA,iBAAQ,EAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEhB,MAAM,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAC5B,CAAC;oBACA,IAAI,iCAAkB,CAAC,IAAI,EAAE,KAAK,EAAE;wBACnC,OAAO,EAAE,aAAa,MAAM,CAAC,QAAQ,CAAC,0BAA0B;wBAChE,KAAK,EAAE,SAAS;qBAChB,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC;QACV,CAAC;QACD,IAAI,iBAAiB,CAAC,QAAkB,CAAC,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,qCAAqC,OAAO,EAAE,EAAE;gBAClF,KAAK,EAAE,SAAS;aAChB,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,0BAAgB,EAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,cAAc;QACb,OAAO,IAAA,6BAAY,EAAC,cAAS,CAAC,GAAG,CAAC,oCAAgB,CAAC,CAAC,SAAS,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI;QAC/C,IAAI,iBAAiB,CAAC,QAAkB,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,aAAa,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;gBACrF,KAAK,EAAE,SAAS;aAChB,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,IAAA,oBAAW,EAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;CACD,CAAC,CAAC;AApCU,QAAA,4BAA4B,gCAoCtC;AAKH,SAAS,qBAAqB;IAC7B,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,cAAS,CAAC,GAAG,CAAC,oCAAgB,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAY,CAAC,EAAE,CAAC;QAC/B,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,gCAAoB,CAAC,EAAE,CAAC;QACvC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5E,eAAe,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,oCAAwB,CAAC,EAAE,CAAC;QAC3C,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAwB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,qCAAyB,CAAC,EAAE,CAAC;QAC5C,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAyB,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,sCAA0B,CAAC,EAAE,CAAC;QAC7C,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sCAA0B,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,eAAe,CAAC;AACxB,CAAC"}
@@ -11,30 +11,65 @@ function getNextRunIndex(runExecutionData, nodeName) {
11
11
  function makeHandleToolInvocation(contextFactory, node, nodeType, runExecutionData) {
12
12
  let runIndex = getNextRunIndex(runExecutionData, node.name);
13
13
  return async (toolArgs) => {
14
- const localRunIndex = runIndex++;
15
- const context = contextFactory(localRunIndex);
16
- context.addInputData(n8n_workflow_1.NodeConnectionTypes.AiTool, [[{ json: toolArgs }]]);
17
- try {
18
- const result = await nodeType.execute?.call(context);
19
- const mappedResults = result?.[0]?.flatMap((item) => item.json);
20
- let response = mappedResults;
21
- if (result?.some((x) => x.some((y) => y.binary))) {
22
- if (!mappedResults || mappedResults.flatMap((x) => Object.keys(x ?? {})).length === 0) {
23
- response =
24
- 'Error: The Tool attempted to return binary data, which is not supported in Agents';
14
+ let maxTries = 1;
15
+ if (node.retryOnFail === true) {
16
+ maxTries = Math.min(5, Math.max(2, node.maxTries ?? 3));
17
+ }
18
+ let waitBetweenTries = 0;
19
+ if (node.retryOnFail === true) {
20
+ waitBetweenTries = Math.min(5000, Math.max(0, node.waitBetweenTries ?? 1000));
21
+ }
22
+ let lastError;
23
+ for (let tryIndex = 0; tryIndex < maxTries; tryIndex++) {
24
+ const localRunIndex = runIndex++;
25
+ const context = contextFactory(localRunIndex);
26
+ const abortSignal = context.getExecutionCancelSignal?.();
27
+ if (abortSignal?.aborted) {
28
+ return 'Error during node execution: Execution was cancelled';
29
+ }
30
+ if (tryIndex !== 0) {
31
+ lastError = undefined;
32
+ if (waitBetweenTries !== 0) {
33
+ try {
34
+ await (0, n8n_workflow_1.sleepWithAbort)(waitBetweenTries, abortSignal);
35
+ }
36
+ catch (abortError) {
37
+ return 'Error during node execution: Execution was cancelled';
38
+ }
25
39
  }
26
- else {
27
- context.logger.warn(`Response from Tool '${node.name}' included binary data, which is not supported in Agents. The binary data was omitted from the response.`);
40
+ }
41
+ context.addInputData(n8n_workflow_1.NodeConnectionTypes.AiTool, [[{ json: toolArgs }]]);
42
+ try {
43
+ const result = await nodeType.execute?.call(context);
44
+ const mappedResults = result?.[0]?.flatMap((item) => item.json);
45
+ let response = mappedResults;
46
+ if (result?.some((x) => x.some((y) => y.binary))) {
47
+ if (!mappedResults || mappedResults.flatMap((x) => Object.keys(x ?? {})).length === 0) {
48
+ response =
49
+ 'Error: The Tool attempted to return binary data, which is not supported in Agents';
50
+ }
51
+ else {
52
+ context.logger.warn(`Response from Tool '${node.name}' included binary data, which is not supported in Agents. The binary data was omitted from the response.`);
53
+ }
54
+ }
55
+ context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, [
56
+ [{ json: { response } }],
57
+ ]);
58
+ return JSON.stringify(response);
59
+ }
60
+ catch (error) {
61
+ if (abortSignal?.aborted) {
62
+ return 'Error during node execution: Execution was cancelled';
63
+ }
64
+ const nodeError = new n8n_workflow_1.NodeOperationError(node, error);
65
+ context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, nodeError);
66
+ lastError = nodeError;
67
+ if (tryIndex === maxTries - 1) {
68
+ return 'Error during node execution: ' + (nodeError.description ?? nodeError.message);
28
69
  }
29
70
  }
30
- context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, [[{ json: { response } }]]);
31
- return JSON.stringify(response);
32
- }
33
- catch (error) {
34
- const nodeError = new n8n_workflow_1.NodeOperationError(node, error);
35
- context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, nodeError);
36
- return 'Error during node execution: ' + (nodeError.description ?? nodeError.message);
37
71
  }
72
+ return 'Error during node execution : ' + (lastError?.description ?? lastError?.message);
38
73
  };
39
74
  }
40
75
  function validateInputConfiguration(context, connectionType, nodeInputs, connectedNodes) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-input-connection-data.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/get-input-connection-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-input-connection-data.js","sourceRoot":"","sources":["../../../../src/execution-engine/node-execution-context/utils/get-input-connection-data.ts"],"names":[],"mappings":";;AAsCA,4DAqGC;AAsCD,wDAuIC;AApSD,+CAOsB;AAEtB,+DAAyD;AAGzD,0FAAqF;AAErF,SAAS,eAAe,CAAC,gBAAmC,EAAE,QAAgB;IAC7E,OAAO,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAgB,wBAAwB,CACvC,cAA0D,EAC1D,IAAW,EACX,QAAmB,EACnB,gBAAmC;IAQnC,IAAI,QAAQ,GAAG,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,OAAO,KAAK,EAAE,QAAqB,EAAE,EAAE;QACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/B,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,SAAyC,CAAC;QAE9C,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;YAExD,MAAM,aAAa,GAAG,QAAQ,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAG9C,MAAM,WAAW,GAAG,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;YAGzD,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBAC1B,OAAO,sDAAsD,CAAC;YAC/D,CAAC;YAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAEpB,SAAS,GAAG,SAAS,CAAC;gBACtB,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACJ,MAAM,IAAA,6BAAc,EAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;oBACrD,CAAC;oBAAC,OAAO,UAAU,EAAE,CAAC;wBACrB,OAAO,sDAAsD,CAAC;oBAC/D,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,CAAC,YAAY,CAAC,kCAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAEzE,IAAI,CAAC;gBAEJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAuC,CAAC,CAAC;gBAGrF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,IAAI,QAAQ,GAAkC,aAAa,CAAC;gBAG5D,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBAClD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvF,QAAQ;4BACP,mFAAmF,CAAC;oBACtF,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,MAAM,CAAC,IAAI,CAClB,uBAAuB,IAAI,CAAC,IAAI,0GAA0G,CAC1I,CAAC;oBACH,CAAC;gBACF,CAAC;gBAGD,OAAO,CAAC,aAAa,CAAC,kCAAmB,CAAC,MAAM,EAAE,aAAa,EAAE;oBAChE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;iBACxB,CAAC,CAAC;gBAGH,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEhB,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC1B,OAAO,sDAAsD,CAAC;gBAC/D,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,iCAAkB,CAAC,IAAI,EAAE,KAAc,CAAC,CAAC;gBAC/D,OAAO,CAAC,aAAa,CAAC,kCAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;gBAE5E,SAAS,GAAG,SAAS,CAAC;gBAGtB,IAAI,QAAQ,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC;oBAC/B,OAAO,+BAA+B,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;gBACvF,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,gCAAgC,GAAG,CAAC,SAAS,EAAE,WAAW,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAClC,OAA4D,EAC5D,cAAkC,EAClC,UAAqC,EACrC,cAAuB;IAEvB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAGvE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAEjC,IACC,WAAW,CAAC,MAAM,KAAK,CAAC;gBACxB,WAAW,CAAC,MAAM,IAAI,KAAK;gBAC3B,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;gBACnC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,WAAW;qBACT,EAAE,CAAC,KAAK,CAAC;oBACV,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;qBAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACrB,EACA,CAAC;gBACF,MAAM,IAAI,iCAAkB,CAC3B,UAAU,EACV,KAAK,kBAAkB,EAAE,WAAW,IAAI,cAAc,yCAAyC,CAC/F,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAE3C,QAAkB,EAClB,gBAAmC,EACnC,cAAsB,EACtB,mBAAyC,EACzC,eAAqC,EACrC,cAA8C,EAC9C,WAAyB,EACzB,IAAyB,EACzB,cAA+B,EAC/B,cAAoC,EACpC,SAAiB,EACjB,WAAyB;IAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAE7F,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,wBAAS,CAAC,kCAAkC,EAAE;YACvD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE;SACpD,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CACpB,WAAW,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAClF,CAAC,CACD,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9D,0BAA0B,CAAC,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAGtF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAGD,IACC,cAAc,KAAK,SAAS;QAC5B,cAAc,KAAK,CAAC;QACpB,cAAc,CAAC,MAAM,GAAG,cAAc,EACrC,CAAC;QACF,MAAM,IAAI,iCAAkB,CAC3B,UAAU,EACV,QAAQ,cAAc,IAAI,cAAc,2CAA2C,CACnF,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAC/D,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,WAAW,CACzB,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,SAA+B,EAAE,EAAE,CAC5E,IAAI,uCAAiB,CACpB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,IAAI,EACJ,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,CACV,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,kCAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChF,MAAM,UAAU,GAAG,IAAA,sCAAgB,EAAC;oBACnC,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,iBAAiB;oBAC3B,oBAAoB,EAAE,wBAAwB,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,EAC5B,aAAa,EACb,iBAAiB,EACjB,gBAAgB,CAChB;iBACD,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,+BAAgB,CAAC,kDAAkD,EAAE;oBAC9E,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE;iBACvC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAChE,IAAI,CAAC;gBACJ,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC/E,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;oBAC9B,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC/C,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEhB,IAAI,KAAK,YAAY,iCAAkB,EAAE,CAAC;oBACzC,IAAI,KAAK,CAAC,aAAa,KAAK,oBAAoB;wBAAE,MAAM,KAAK,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACP,KAAK,GAAG,IAAI,iCAAkB,CAAC,aAAa,EAAE,KAAK,EAAE;wBACpD,SAAS;qBACT,CAAC,CAAC;gBACJ,CAAC;gBAED,IAAI,mBAAmB,GAAG,CAAC,CAAC;gBAC5B,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzE,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBACnF,CAAC;gBAGD,MAAM,OAAO,CAAC,yBAAyB,CACtC,OAAO,EACP,KAAK,EACL,cAAc,EACd,UAAU,CAAC,IAAI,EACf,mBAAmB,CACnB,CAAC;gBAGF,MAAM,IAAI,iCAAkB,CAAC,aAAa,EAAE,qBAAqB,aAAa,CAAC,IAAI,EAAE,EAAE;oBACtF,SAAS;oBACT,aAAa,EAAE,oBAAoB;oBAEnC,WAAW,EAAE,KAAK,CAAC,OAAO;iBAC1B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/F,CAAC"}
@@ -47,6 +47,7 @@ const p_cancelable_1 = __importDefault(require("p-cancelable"));
47
47
  const error_reporter_1 = require("../errors/error-reporter");
48
48
  const workflow_has_issues_error_1 = require("../errors/workflow-has-issues.error");
49
49
  const NodeExecuteFunctions = __importStar(require("../node-execute-functions"));
50
+ const is_json_compatible_1 = require("../utils/is-json-compatible");
50
51
  const node_execution_context_1 = require("./node-execution-context");
51
52
  const partial_execution_utils_1 = require("./partial-execution-utils");
52
53
  const routing_node_1 = require("./routing-node");
@@ -698,6 +699,21 @@ class WorkflowExecute {
698
699
  ? await nodeType.execute(context)
699
700
  : await nodeType.execute.call(context);
700
701
  }
702
+ const jsonCompatibleResult = (0, is_json_compatible_1.isJsonCompatible)(data);
703
+ if (!jsonCompatibleResult.isValid) {
704
+ di_1.Container.get(error_reporter_1.ErrorReporter).error(new n8n_workflow_1.UnexpectedError('node execution output incorrect data'), {
705
+ extra: {
706
+ nodeName: node.name,
707
+ nodeType: node.type,
708
+ nodeVersion: node.typeVersion,
709
+ workflowId: workflow.id,
710
+ workflowName: workflow.name ?? 'Unnamed workflow',
711
+ executionId: this.additionalData.executionId ?? 'unsaved-execution',
712
+ errorPath: jsonCompatibleResult.errorPath,
713
+ errorMessage: jsonCompatibleResult.errorMessage,
714
+ },
715
+ });
716
+ }
701
717
  const closeFunctionsResults = await Promise.allSettled(closeFunctions.map(async (fn) => await fn()));
702
718
  const closingErrors = closeFunctionsResults
703
719
  .filter((result) => result.status === 'rejected')
@@ -1023,6 +1039,9 @@ class WorkflowExecute {
1023
1039
  if (executionError !== undefined) {
1024
1040
  taskData.error = executionError;
1025
1041
  taskData.executionStatus = 'error';
1042
+ await hooks?.runHook('sendChunk', [
1043
+ { type: 'error', content: executionError.description },
1044
+ ]);
1026
1045
  if (executionData.node.continueOnFail === true ||
1027
1046
  ['continueRegularOutput', 'continueErrorOutput'].includes(executionData.node.onError || '')) {
1028
1047
  if (executionData.data.hasOwnProperty('main') && executionData.data.main.length > 0) {