mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(editor): Support partial executions of tool nodes (#14945)
This commit is contained in:
@@ -315,3 +315,22 @@ export function traverseNodeParameters(payload: unknown, collectedArgs: FromAIAr
|
||||
Object.values(payload).forEach((value) => traverseNodeParameters(value, collectedArgs));
|
||||
}
|
||||
}
|
||||
|
||||
export function traverseNodeParametersWithParamNames(
|
||||
payload: unknown,
|
||||
collectedArgs: Map<string, FromAIArgument>,
|
||||
name?: string,
|
||||
) {
|
||||
if (typeof payload === 'string') {
|
||||
const fromAICalls = extractFromAICalls(payload);
|
||||
fromAICalls.forEach((call) => collectedArgs.set(name as string, call));
|
||||
} else if (Array.isArray(payload)) {
|
||||
payload.forEach((item: unknown, index: number) =>
|
||||
traverseNodeParametersWithParamNames(item, collectedArgs, name + `[${index}]`),
|
||||
);
|
||||
} else if (typeof payload === 'object' && payload !== null) {
|
||||
for (const [key, value] of Object.entries(payload)) {
|
||||
traverseNodeParametersWithParamNames(value, collectedArgs, name ? name + '.' + key : key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1556,5 +1556,9 @@ export function isTriggerNode(nodeTypeData: INodeTypeDescription) {
|
||||
export function isExecutable(workflow: Workflow, node: INode, nodeTypeData: INodeTypeDescription) {
|
||||
const outputs = getNodeOutputs(workflow, node, nodeTypeData);
|
||||
const outputNames = getConnectionTypes(outputs);
|
||||
return outputNames.includes(NodeConnectionTypes.Main) || isTriggerNode(nodeTypeData);
|
||||
return (
|
||||
outputNames.includes(NodeConnectionTypes.Main) ||
|
||||
isTriggerNode(nodeTypeData) ||
|
||||
nodeTypeData.usableAsTool === true
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user