feat(core): Implement partial execution for all tool nodes (#15168)

This commit is contained in:
Benjamin Schroth
2025-05-12 12:31:17 +02:00
committed by GitHub
parent d12c7ee87f
commit 8b467e3f56
39 changed files with 1129 additions and 279 deletions

View File

@@ -1492,6 +1492,7 @@ export interface INodePropertyOptions {
description?: string;
routing?: INodePropertyRouting;
outputConnectionType?: NodeConnectionType;
inputSchema?: any;
}
export interface INodeListSearchItems extends INodePropertyOptions {
@@ -2309,6 +2310,7 @@ export interface IWorkflowExecutionDataProcess {
name: string;
data?: ITaskData;
};
agentRequest?: AiAgentRequest;
}
export interface ExecuteWorkflowOptions {
@@ -2348,6 +2350,14 @@ type AiEventPayload = {
nodeType?: string;
};
// Used to transport an agent request for partial execution
export interface AiAgentRequest {
query: string | INodeParameters;
tool: {
name: string;
};
}
export interface IWorkflowExecuteAdditionalData {
credentialsHelper: ICredentialsHelper;
executeWorkflow: (

View File

@@ -1558,7 +1558,7 @@ export function isExecutable(workflow: Workflow, node: INode, nodeTypeData: INod
const outputNames = getConnectionTypes(outputs);
return (
outputNames.includes(NodeConnectionTypes.Main) ||
isTriggerNode(nodeTypeData) ||
nodeTypeData.usableAsTool === true
outputNames.includes(NodeConnectionTypes.AiTool) ||
isTriggerNode(nodeTypeData)
);
}