n8n-core 1.111.0 → 1.112.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.
@@ -20,3 +20,4 @@ export * from './node-execution-context/utils/execution-metadata';
20
20
  export * from './workflow-execute';
21
21
  export { ExecutionLifecycleHooks } from './execution-lifecycle-hooks';
22
22
  export { ExternalSecretsProxy, type IExternalSecretsManager } from './external-secrets-proxy';
23
+ export { isEngineRequest } from './requests-response';
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ExternalSecretsProxy = exports.ExecutionLifecycleHooks = void 0;
17
+ exports.isEngineRequest = exports.ExternalSecretsProxy = exports.ExecutionLifecycleHooks = void 0;
18
18
  __exportStar(require("./active-workflows"), exports);
19
19
  __exportStar(require("./routing-node"), exports);
20
20
  __exportStar(require("./node-execution-context"), exports);
@@ -25,4 +25,6 @@ var execution_lifecycle_hooks_1 = require("./execution-lifecycle-hooks");
25
25
  Object.defineProperty(exports, "ExecutionLifecycleHooks", { enumerable: true, get: function () { return execution_lifecycle_hooks_1.ExecutionLifecycleHooks; } });
26
26
  var external_secrets_proxy_1 = require("./external-secrets-proxy");
27
27
  Object.defineProperty(exports, "ExternalSecretsProxy", { enumerable: true, get: function () { return external_secrets_proxy_1.ExternalSecretsProxy; } });
28
+ var requests_response_1 = require("./requests-response");
29
+ Object.defineProperty(exports, "isEngineRequest", { enumerable: true, get: function () { return requests_response_1.isEngineRequest; } });
28
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiBA,qDAAmC;AAEnC,iDAA+B;AAC/B,2DAAyC;AACzC,4DAA0C;AAC1C,oFAAkE;AAClE,qDAAmC;AACnC,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAChC,mEAA8F;AAArF,8HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiBA,qDAAmC;AAEnC,iDAA+B;AAC/B,2DAAyC;AACzC,4DAA0C;AAC1C,oFAAkE;AAClE,qDAAmC;AACnC,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAChC,mEAA8F;AAArF,8HAAA,oBAAoB,OAAA;AAC7B,yDAAsD;AAA7C,oHAAA,eAAe,OAAA"}
@@ -1,12 +1,13 @@
1
- import type { AINodeConnectionType, CallbackManager, ChunkType, CloseFunction, IDataObject, IExecuteData, IExecuteFunctions, IExecuteResponsePromiseData, INode, INodeExecutionData, IRunExecutionData, ITaskDataConnections, IWorkflowExecuteAdditionalData, NodeExecutionHint, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
1
+ import type { AINodeConnectionType, CallbackManager, ChunkType, CloseFunction, IDataObject, IExecuteData, IExecuteFunctions, IExecuteResponsePromiseData, INode, INodeExecutionData, IRunExecutionData, ITaskDataConnections, IWorkflowExecuteAdditionalData, NodeExecutionHint, Workflow, WorkflowExecuteMode, EngineResponse } 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;
5
+ subNodeExecutionResults?: EngineResponse | undefined;
5
6
  readonly helpers: IExecuteFunctions['helpers'];
6
7
  readonly nodeHelpers: IExecuteFunctions['nodeHelpers'];
7
8
  readonly getNodeParameter: IExecuteFunctions['getNodeParameter'];
8
9
  readonly hints: NodeExecutionHint[];
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
+ constructor(workflow: Workflow, node: INode, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, runExecutionData: IRunExecutionData, runIndex: number, connectionInputData: INodeExecutionData[], inputData: ITaskDataConnections, executeData: IExecuteData, closeFunctions: CloseFunction[], abortSignal?: AbortSignal, subNodeExecutionResults?: EngineResponse | undefined);
10
11
  isStreaming(): boolean;
11
12
  sendChunk(type: ChunkType, itemIndex: number, content?: IDataObject | string): Promise<void>;
12
13
  getInputConnectionData(connectionType: AINodeConnectionType, itemIndex: number): Promise<unknown>;
@@ -15,9 +15,10 @@ const request_helper_functions_1 = require("./utils/request-helper-functions");
15
15
  const return_json_array_1 = require("./utils/return-json-array");
16
16
  const ssh_tunnel_helper_functions_1 = require("./utils/ssh-tunnel-helper-functions");
17
17
  class ExecuteContext extends base_execute_context_1.BaseExecuteContext {
18
- constructor(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executeData, closeFunctions, abortSignal) {
18
+ constructor(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executeData, closeFunctions, abortSignal, subNodeExecutionResults) {
19
19
  super(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executeData, abortSignal);
20
20
  this.closeFunctions = closeFunctions;
21
+ this.subNodeExecutionResults = subNodeExecutionResults;
21
22
  this.hints = [];
22
23
  this.helpers = {
23
24
  createDeferredPromise: n8n_workflow_1.createDeferredPromise,
@@ -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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"}
@@ -5,9 +5,49 @@ exports.getInputConnectionData = getInputConnectionData;
5
5
  const n8n_workflow_1 = require("n8n-workflow");
6
6
  const create_node_as_tool_1 = require("./create-node-as-tool");
7
7
  const supply_data_context_1 = require("../../node-execution-context/supply-data-context");
8
+ const requests_response_1 = require("../../requests-response");
8
9
  function getNextRunIndex(runExecutionData, nodeName) {
9
10
  return runExecutionData.resultData.runData[nodeName]?.length ?? 0;
10
11
  }
12
+ function containsBinaryData(nodeExecutionResult) {
13
+ if ((0, requests_response_1.isEngineRequest)(nodeExecutionResult)) {
14
+ return false;
15
+ }
16
+ if (nodeExecutionResult === undefined || nodeExecutionResult === null) {
17
+ return false;
18
+ }
19
+ return nodeExecutionResult.some((outputBranch) => outputBranch.some((item) => item.binary));
20
+ }
21
+ function containsDataThatIsUsefulToTheAgent(nodeExecutionResult) {
22
+ if ((0, requests_response_1.isEngineRequest)(nodeExecutionResult)) {
23
+ return false;
24
+ }
25
+ if (nodeExecutionResult === undefined || nodeExecutionResult === null) {
26
+ return false;
27
+ }
28
+ return nodeExecutionResult.some((outputBranch) => outputBranch.some((item) => Object.keys(item.json).length > 0));
29
+ }
30
+ function mapResult(result) {
31
+ let response;
32
+ let nodeHasMixedJsonAndBinaryData = false;
33
+ if (result === undefined) {
34
+ response = undefined;
35
+ }
36
+ else if ((0, requests_response_1.isEngineRequest)(result)) {
37
+ response =
38
+ 'Error: The Tool attempted to return an engine request, which is not supported in Agents';
39
+ }
40
+ else if (containsBinaryData(result) && !containsDataThatIsUsefulToTheAgent(result)) {
41
+ response = 'Error: The Tool attempted to return binary data, which is not supported in Agents';
42
+ }
43
+ else {
44
+ if (containsBinaryData(result)) {
45
+ nodeHasMixedJsonAndBinaryData = true;
46
+ }
47
+ response = result?.[0]?.flatMap((item) => item.json);
48
+ }
49
+ return { response, nodeHasMixedJsonAndBinaryData };
50
+ }
11
51
  function makeHandleToolInvocation(contextFactory, node, nodeType, runExecutionData) {
12
52
  let runIndex = getNextRunIndex(runExecutionData, node.name);
13
53
  return async (toolArgs) => {
@@ -41,16 +81,9 @@ function makeHandleToolInvocation(contextFactory, node, nodeType, runExecutionDa
41
81
  context.addInputData(n8n_workflow_1.NodeConnectionTypes.AiTool, [[{ json: toolArgs }]]);
42
82
  try {
43
83
  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
- }
84
+ const { response, nodeHasMixedJsonAndBinaryData } = mapResult(result);
85
+ if (nodeHasMixedJsonAndBinaryData) {
86
+ 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.`);
54
87
  }
55
88
  context.addOutputData(n8n_workflow_1.NodeConnectionTypes.AiTool, localRunIndex, [
56
89
  [{ json: { response } }],
@@ -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":"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"}
@@ -0,0 +1,23 @@
1
+ import { type IConnection, type IExecuteData, type INode, type INodeExecutionData, type IRunData, type IRunNodeResponse, type ITaskMetadata, type EngineRequest, type Workflow, type EngineResponse } from 'n8n-workflow';
2
+ type NodeToBeExecuted = {
3
+ inputConnectionData: IConnection;
4
+ parentOutputIndex: number;
5
+ parentNode: string;
6
+ parentOutputData: INodeExecutionData[][];
7
+ runIndex: number;
8
+ nodeRunIndex: number;
9
+ metadata?: ITaskMetadata;
10
+ };
11
+ export declare function handleRequest({ workflow, currentNode, request, runIndex, executionData, runData, }: {
12
+ workflow: Workflow;
13
+ currentNode: INode;
14
+ request: EngineRequest;
15
+ runIndex: number;
16
+ executionData: IExecuteData;
17
+ runData: IRunData;
18
+ }): {
19
+ nodesToBeExecuted: NodeToBeExecuted[];
20
+ };
21
+ export declare function isEngineRequest(responseOrRequest: INodeExecutionData[][] | IRunNodeResponse | EngineRequest | null | undefined): responseOrRequest is EngineRequest;
22
+ export declare function makeEngineResponse(): EngineResponse;
23
+ export {};
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleRequest = handleRequest;
4
+ exports.isEngineRequest = isEngineRequest;
5
+ exports.makeEngineResponse = makeEngineResponse;
6
+ const di_1 = require("@n8n/di");
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const error_reporter_1 = require("../errors/error-reporter");
9
+ function prepareRequestedNodesForExecution(workflow, currentNode, request, runIndex, runData) {
10
+ const nodesToBeExecuted = [];
11
+ const subNodeExecutionData = {
12
+ actions: [],
13
+ metadata: request.metadata,
14
+ };
15
+ for (const action of request.actions) {
16
+ const node = workflow.getNode(action.nodeName);
17
+ if (!node) {
18
+ throw new n8n_workflow_1.UnexpectedError(`Workflow does not contain a node with the name of "${action.nodeName}".`);
19
+ }
20
+ node.rewireOutputLogTo = action.type;
21
+ const inputConnectionData = {
22
+ type: action.type,
23
+ node: action.nodeName,
24
+ index: 0,
25
+ };
26
+ const parentNode = currentNode.name;
27
+ const parentOutputData = [
28
+ [
29
+ {
30
+ json: {
31
+ ...action.input,
32
+ toolCallId: action.id,
33
+ },
34
+ },
35
+ ],
36
+ ];
37
+ const parentOutputIndex = 0;
38
+ runData[node.name] ||= [];
39
+ const nodeRunData = runData[node.name];
40
+ const nodeRunIndex = nodeRunData.length;
41
+ nodeRunData.push({
42
+ inputOverride: { ai_tool: parentOutputData },
43
+ source: [],
44
+ executionIndex: 0,
45
+ executionTime: 0,
46
+ startTime: 0,
47
+ });
48
+ nodesToBeExecuted.push({
49
+ inputConnectionData,
50
+ parentOutputIndex,
51
+ parentNode,
52
+ parentOutputData,
53
+ runIndex,
54
+ nodeRunIndex,
55
+ });
56
+ subNodeExecutionData.actions.push({
57
+ action,
58
+ nodeName: action.nodeName,
59
+ runIndex: nodeRunIndex,
60
+ });
61
+ }
62
+ return { nodesToBeExecuted, subNodeExecutionData };
63
+ }
64
+ function prepareRequestingNodeForResuming(workflow, request, executionData) {
65
+ const parentNode = executionData.source?.main?.[0]?.previousNode;
66
+ if (!parentNode) {
67
+ di_1.Container.get(error_reporter_1.ErrorReporter).error(new n8n_workflow_1.UnexpectedError('Cannot find parent node for subnode execution - request will be ignored'), {
68
+ extra: {
69
+ executionNode: executionData.node.name,
70
+ sourceData: executionData.source,
71
+ workflowId: workflow.id,
72
+ requestActions: request.actions.map((a) => ({
73
+ nodeName: a.nodeName,
74
+ actionType: a.actionType,
75
+ id: a.id,
76
+ })),
77
+ },
78
+ });
79
+ return undefined;
80
+ }
81
+ const connectionData = {
82
+ type: 'ai_tool',
83
+ node: executionData.node.name,
84
+ index: 0,
85
+ };
86
+ return { connectionData, parentNode };
87
+ }
88
+ function handleRequest({ workflow, currentNode, request, runIndex, executionData, runData, }) {
89
+ const { nodesToBeExecuted, subNodeExecutionData } = prepareRequestedNodesForExecution(workflow, currentNode, request, runIndex, runData);
90
+ const result = prepareRequestingNodeForResuming(workflow, request, executionData);
91
+ if (!result) {
92
+ return { nodesToBeExecuted: [] };
93
+ }
94
+ nodesToBeExecuted.unshift({
95
+ inputConnectionData: result.connectionData,
96
+ parentOutputIndex: 0,
97
+ parentNode: result.parentNode,
98
+ parentOutputData: executionData.data.main,
99
+ runIndex,
100
+ nodeRunIndex: runIndex,
101
+ metadata: { subNodeExecutionData },
102
+ });
103
+ return { nodesToBeExecuted };
104
+ }
105
+ function isEngineRequest(responseOrRequest) {
106
+ return !!responseOrRequest && 'actions' in responseOrRequest;
107
+ }
108
+ function makeEngineResponse() {
109
+ return { actionResponses: [], metadata: {} };
110
+ }
111
+ //# sourceMappingURL=requests-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests-response.js","sourceRoot":"","sources":["../../src/execution-engine/requests-response.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ExecutionBaseError, IConnection, IExecuteData, INode, INodeExecutionData, IPinData, IRun, IRunData, Workflow, IRunExecutionData, IWorkflowExecuteAdditionalData, WorkflowExecuteMode, StartNodeData, IRunNodeResponse, IWorkflowIssues, AiAgentRequest, IWorkflowExecutionDataProcess } from 'n8n-workflow';
1
+ import type { ExecutionBaseError, IConnection, IExecuteData, INode, INodeExecutionData, IPinData, IRun, IRunData, ITaskMetadata, Workflow, IRunExecutionData, IWorkflowExecuteAdditionalData, WorkflowExecuteMode, StartNodeData, IRunNodeResponse, IWorkflowIssues, AiAgentRequest, IWorkflowExecutionDataProcess, EngineRequest, EngineResponse } from 'n8n-workflow';
2
2
  import PCancelable from 'p-cancelable';
3
3
  export declare class WorkflowExecute {
4
4
  private readonly additionalData;
@@ -14,7 +14,7 @@ export declare class WorkflowExecute {
14
14
  moveNodeMetadata(): void;
15
15
  incomingConnectionIsEmpty(runData: IRunData, inputConnections: IConnection[], runIndex: number): boolean;
16
16
  prepareWaitingToExecution(nodeName: string, numberOfConnections: number, runIndex: number): void;
17
- addNodeToBeExecuted(workflow: Workflow, connectionData: IConnection, outputIndex: number, parentNodeName: string, nodeSuccessData: INodeExecutionData[][], runIndex: number): void;
17
+ addNodeToBeExecuted(workflow: Workflow, connectionData: IConnection, outputIndex: number, parentNodeName: string, nodeSuccessData: INodeExecutionData[][], runIndex: number, newRunIndex?: number, metadata?: ITaskMetadata): void;
18
18
  checkReadyForExecution(workflow: Workflow, inputData?: {
19
19
  startNode?: string;
20
20
  destinationNode?: string;
@@ -30,11 +30,12 @@ export declare class WorkflowExecute {
30
30
  private executePollNode;
31
31
  private executeTriggerNode;
32
32
  private executeDeclarativeNodeInTest;
33
- runNode(workflow: Workflow, executionData: IExecuteData, runExecutionData: IRunExecutionData, runIndex: number, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, abortSignal?: AbortSignal): Promise<IRunNodeResponse>;
33
+ runNode(workflow: Workflow, executionData: IExecuteData, runExecutionData: IRunExecutionData, runIndex: number, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, abortSignal?: AbortSignal, subNodeExecutionResults?: EngineResponse): Promise<IRunNodeResponse | EngineRequest>;
34
34
  private assertExecutionDataExists;
35
35
  private handleWaitingState;
36
36
  private checkForWorkflowIssues;
37
37
  private setupExecution;
38
+ private handleEngineRequest;
38
39
  processRunExecutionData(workflow: Workflow): PCancelable<IRun>;
39
40
  ensureInputData(workflow: Workflow, executionNode: INode, executionData: IExecuteData): boolean;
40
41
  processSuccessExecution(startedAt: Date, workflow: Workflow, executionError?: ExecutionBaseError, closeFunction?: Promise<void>): Promise<IRun>;
@@ -51,6 +51,7 @@ const NodeExecuteFunctions = __importStar(require("../node-execute-functions"));
51
51
  const is_json_compatible_1 = require("../utils/is-json-compatible");
52
52
  const node_execution_context_1 = require("./node-execution-context");
53
53
  const partial_execution_utils_1 = require("./partial-execution-utils");
54
+ const requests_response_1 = require("./requests-response");
54
55
  const routing_node_1 = require("./routing-node");
55
56
  const triggers_and_pollers_1 = require("./triggers-and-pollers");
56
57
  class WorkflowExecute {
@@ -380,11 +381,12 @@ class WorkflowExecute {
380
381
  nodeWaitingSource[runIndex].main.push(null);
381
382
  }
382
383
  }
383
- addNodeToBeExecuted(workflow, connectionData, outputIndex, parentNodeName, nodeSuccessData, runIndex) {
384
+ addNodeToBeExecuted(workflow, connectionData, outputIndex, parentNodeName, nodeSuccessData, runIndex, newRunIndex, metadata) {
384
385
  let stillDataMissing = false;
385
386
  const enqueueFn = workflow.settings.executionOrder === 'v1' ? 'unshift' : 'push';
386
387
  let waitingNodeIndex;
387
- if (workflow.connectionsByDestinationNode[connectionData.node].main.length > 1) {
388
+ const numberOfInputs = workflow.connectionsByDestinationNode[connectionData.node]?.main?.length ?? 0;
389
+ if (numberOfInputs > 1) {
388
390
  let nodeWasWaiting = true;
389
391
  if (!this.runExecutionData.executionData.waitingExecutionSource) {
390
392
  this.runExecutionData.executionData.waitingExecutionSource = {};
@@ -591,6 +593,8 @@ class WorkflowExecute {
591
593
  },
592
594
  ],
593
595
  },
596
+ runIndex: newRunIndex,
597
+ metadata,
594
598
  });
595
599
  }
596
600
  }
@@ -720,18 +724,24 @@ class WorkflowExecute {
720
724
  }
721
725
  }
722
726
  }
723
- async executeNode(workflow, node, nodeType, customOperation, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, abortSignal) {
727
+ async executeNode(workflow, node, nodeType, customOperation, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, abortSignal, subNodeExecutionResults) {
724
728
  const closeFunctions = [];
725
- const context = new node_execution_context_1.ExecuteContext(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, closeFunctions, abortSignal);
726
- let data = null;
729
+ const context = new node_execution_context_1.ExecuteContext(workflow, node, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, closeFunctions, abortSignal, subNodeExecutionResults);
730
+ let data;
727
731
  if (customOperation) {
728
732
  data = await customOperation.call(context);
729
733
  }
730
734
  else if (nodeType.execute) {
731
735
  data =
732
736
  nodeType instanceof n8n_workflow_1.Node
733
- ? await nodeType.execute(context)
734
- : await nodeType.execute.call(context);
737
+ ? await nodeType.execute(context, subNodeExecutionResults)
738
+ : await nodeType.execute.call(context, subNodeExecutionResults);
739
+ }
740
+ else {
741
+ throw new n8n_workflow_1.UnexpectedError("Can't execute node. There is no custom operation and the node has not execute function.");
742
+ }
743
+ if ((0, requests_response_1.isEngineRequest)(data)) {
744
+ return data;
735
745
  }
736
746
  this.reportJsonIncompatibleOutput(data, workflow, node);
737
747
  const closeFunctionsResults = await Promise.allSettled(closeFunctions.map(async (fn) => await fn()));
@@ -784,7 +794,7 @@ class WorkflowExecute {
784
794
  const data = await routingNode.runNode();
785
795
  return { data };
786
796
  }
787
- async runNode(workflow, executionData, runExecutionData, runIndex, additionalData, mode, abortSignal) {
797
+ async runNode(workflow, executionData, runExecutionData, runIndex, additionalData, mode, abortSignal, subNodeExecutionResults) {
788
798
  const { node } = executionData;
789
799
  let inputData = executionData.data;
790
800
  if (node.disabled === true) {
@@ -798,9 +808,8 @@ class WorkflowExecute {
798
808
  }
799
809
  this.rethrowLastNodeError(runExecutionData, node);
800
810
  inputData = this.handleExecuteOnce(node, inputData);
801
- const isDeclarativeNode = nodeType.description.requestDefaults !== undefined;
802
811
  if (nodeType.execute || customOperation) {
803
- return await this.executeNode(workflow, node, nodeType, customOperation, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, abortSignal);
812
+ return await this.executeNode(workflow, node, nodeType, customOperation, additionalData, mode, runExecutionData, runIndex, connectionInputData, inputData, executionData, abortSignal, subNodeExecutionResults);
804
813
  }
805
814
  if (nodeType.poll) {
806
815
  return await this.executePollNode(workflow, node, nodeType, additionalData, mode, inputData);
@@ -808,6 +817,7 @@ class WorkflowExecute {
808
817
  if (nodeType.trigger) {
809
818
  return await this.executeTriggerNode(workflow, node, additionalData, mode, inputData, abortSignal);
810
819
  }
820
+ const isDeclarativeNode = nodeType.description.requestDefaults !== undefined;
811
821
  if (nodeType.webhook && !isDeclarativeNode) {
812
822
  return { data: inputData.main };
813
823
  }
@@ -859,12 +869,26 @@ class WorkflowExecute {
859
869
  }
860
870
  return { startedAt: new Date(), hooks };
861
871
  }
872
+ handleEngineRequest({ workflow, currentNode, request, runIndex, executionData, runData, }) {
873
+ const { nodesToBeExecuted } = (0, requests_response_1.handleRequest)({
874
+ workflow,
875
+ currentNode,
876
+ request,
877
+ runIndex,
878
+ executionData,
879
+ runData,
880
+ });
881
+ for (const nodeData of nodesToBeExecuted) {
882
+ this.addNodeToBeExecuted(workflow, nodeData.inputConnectionData, nodeData.parentOutputIndex, nodeData.parentNode, nodeData.parentOutputData, nodeData.runIndex, nodeData.nodeRunIndex, nodeData.metadata);
883
+ }
884
+ }
862
885
  processRunExecutionData(workflow) {
863
886
  n8n_workflow_1.LoggerProxy.debug('Workflow execution started', { workflowId: workflow.id });
864
887
  const { startedAt, hooks } = this.setupExecution();
865
888
  this.checkForWorkflowIssues(workflow);
866
889
  this.handleWaitingState(workflow);
867
890
  let executionData;
891
+ let subNodeExecutionResults = (0, requests_response_1.makeEngineResponse)();
868
892
  let executionError;
869
893
  let executionNode;
870
894
  let runIndex;
@@ -923,6 +947,7 @@ class WorkflowExecute {
923
947
  if (this.status === 'canceled') {
924
948
  return;
925
949
  }
950
+ subNodeExecutionResults = (0, requests_response_1.makeEngineResponse)();
926
951
  let nodeSuccessData = null;
927
952
  executionError = undefined;
928
953
  executionData =
@@ -953,7 +978,10 @@ class WorkflowExecute {
953
978
  }
954
979
  executionData.data = newTaskDataConnections;
955
980
  runIndex = 0;
956
- if (Object.hasOwn(this.runExecutionData.resultData.runData, executionNode.name)) {
981
+ if (executionData.runIndex !== undefined) {
982
+ runIndex = executionData.runIndex;
983
+ }
984
+ else if (Object.hasOwn(this.runExecutionData.resultData.runData, executionNode.name)) {
957
985
  runIndex = this.runExecutionData.resultData.runData[executionNode.name].length;
958
986
  }
959
987
  currentExecutionTry = `${executionNode.name}:${runIndex}`;
@@ -1000,22 +1028,49 @@ class WorkflowExecute {
1000
1028
  nodeSuccessData = [nodePinData];
1001
1029
  }
1002
1030
  else {
1031
+ if (executionData.metadata?.subNodeExecutionData) {
1032
+ subNodeExecutionResults.metadata =
1033
+ executionData.metadata.subNodeExecutionData.metadata;
1034
+ for (const subNode of executionData.metadata.subNodeExecutionData.actions) {
1035
+ const nodeRunData = this.runExecutionData.resultData.runData[subNode.nodeName];
1036
+ if (nodeRunData && nodeRunData[subNode.runIndex]) {
1037
+ const data = nodeRunData[subNode.runIndex];
1038
+ subNodeExecutionResults.actionResponses.push({
1039
+ data,
1040
+ action: subNode.action,
1041
+ });
1042
+ }
1043
+ }
1044
+ }
1003
1045
  n8n_workflow_1.LoggerProxy.debug(`Running node "${executionNode.name}" started`, {
1004
1046
  node: executionNode.name,
1005
1047
  workflowId: workflow.id,
1006
1048
  });
1007
- let runNodeData = await this.runNode(workflow, executionData, this.runExecutionData, runIndex, this.additionalData, this.mode, this.abortController.signal);
1008
- nodeSuccessData = runNodeData.data;
1009
- let didContinueOnFail = nodeSuccessData?.[0]?.[0]?.json?.error !== undefined;
1010
- while (didContinueOnFail && tryIndex !== maxTries - 1) {
1049
+ let runNodeData = await this.runNode(workflow, executionData, this.runExecutionData, runIndex, this.additionalData, this.mode, this.abortController.signal, subNodeExecutionResults);
1050
+ let nodeFailed = !(0, requests_response_1.isEngineRequest)(runNodeData) &&
1051
+ runNodeData.data?.[0]?.[0]?.json?.error !== undefined;
1052
+ while (nodeFailed && tryIndex !== maxTries - 1) {
1011
1053
  await (0, n8n_workflow_1.sleep)(waitBetweenTries);
1012
1054
  runNodeData = await this.runNode(workflow, executionData, this.runExecutionData, runIndex, this.additionalData, this.mode, this.abortController.signal);
1013
- nodeSuccessData = runNodeData.data;
1014
- didContinueOnFail = nodeSuccessData?.[0]?.[0]?.json?.error !== undefined;
1055
+ nodeFailed =
1056
+ !(0, requests_response_1.isEngineRequest)(runNodeData) &&
1057
+ runNodeData.data?.[0]?.[0]?.json?.error !== undefined;
1015
1058
  tryIndex++;
1016
1059
  }
1060
+ if ((0, requests_response_1.isEngineRequest)(runNodeData)) {
1061
+ this.handleEngineRequest({
1062
+ workflow,
1063
+ currentNode: executionNode,
1064
+ request: runNodeData,
1065
+ runIndex,
1066
+ executionData,
1067
+ runData: this.runExecutionData.resultData.runData,
1068
+ });
1069
+ continue executionLoop;
1070
+ }
1071
+ nodeSuccessData = runNodeData.data;
1017
1072
  if (runNodeData.hints?.length) {
1018
- taskStartedData.hints.push(...runNodeData.hints);
1073
+ taskStartedData.hints.push.apply(taskStartedData.hints, runNodeData.hints);
1019
1074
  }
1020
1075
  if (nodeSuccessData && executionData.node.onError === 'continueErrorOutput') {
1021
1076
  this.handleNodeErrorOutput(workflow, executionData, nodeSuccessData, runIndex);
@@ -1029,6 +1084,9 @@ class WorkflowExecute {
1029
1084
  workflowId: workflow.id,
1030
1085
  });
1031
1086
  nodeSuccessData = this.assignPairedItems(nodeSuccessData, executionData);
1087
+ if (nodeSuccessData) {
1088
+ this.runExecutionData.resultData.lastNodeExecuted = executionData.node.name;
1089
+ }
1032
1090
  if (!nodeSuccessData?.[0]?.[0]) {
1033
1091
  if (executionData.node.alwaysOutputData === true) {
1034
1092
  const pairedItem = [];
@@ -1149,11 +1207,21 @@ class WorkflowExecute {
1149
1207
  main: nodeSuccessData,
1150
1208
  };
1151
1209
  if (executionNode.rewireOutputLogTo) {
1210
+ taskData.inputOverride =
1211
+ this.runExecutionData.resultData.runData[executionNode.name][runIndex]
1212
+ ?.inputOverride || {};
1152
1213
  taskData.data = {
1153
1214
  [executionNode.rewireOutputLogTo]: nodeSuccessData,
1154
1215
  };
1155
1216
  }
1156
- this.runExecutionData.resultData.runData[executionNode.name].push(taskData);
1217
+ const runDataAlreadyExists = !!this.runExecutionData.resultData.runData[executionNode.name][runIndex];
1218
+ if (runDataAlreadyExists) {
1219
+ const currentTaskData = this.runExecutionData.resultData.runData[executionNode.name][runIndex];
1220
+ Object.assign(currentTaskData, taskData);
1221
+ }
1222
+ else {
1223
+ this.runExecutionData.resultData.runData[executionNode.name].push(taskData);
1224
+ }
1157
1225
  if (this.runExecutionData.waitTill) {
1158
1226
  await hooks.runHook('nodeExecuteAfter', [
1159
1227
  executionNode.name,
@@ -1532,13 +1600,7 @@ class WorkflowExecute {
1532
1600
  }
1533
1601
  }
1534
1602
  }
1535
- if (nodeSuccessData === undefined) {
1536
- nodeSuccessData = null;
1537
- }
1538
- else {
1539
- this.runExecutionData.resultData.lastNodeExecuted = executionData.node.name;
1540
- }
1541
- return nodeSuccessData;
1603
+ return nodeSuccessData ?? null;
1542
1604
  }
1543
1605
  updateTaskStatusesToCancelled() {
1544
1606
  Object.keys(this.runExecutionData.resultData.runData).forEach((nodeName) => {