feat(editor): Support partial executions of tool nodes (#14945)

This commit is contained in:
Benjamin Schroth
2025-05-01 08:32:47 +02:00
committed by GitHub
parent 5fa41bd73a
commit 54dcdedece
21 changed files with 1132 additions and 22 deletions

View File

@@ -53,6 +53,7 @@ import {
CHAT_TRIGGER_NODE_TYPE,
DRAG_EVENT_DATA_KEY,
EnterpriseEditionFeature,
FROM_AI_PARAMETERS_MODAL_KEY,
MAIN_HEADER_TABS,
MANUAL_CHAT_TRIGGER_NODE_TYPE,
MODAL_CONFIRM,
@@ -117,6 +118,8 @@ import { LOGS_PANEL_STATE } from '@/components/CanvasChat/types/logs';
import { useWorkflowSaving } from '@/composables/useWorkflowSaving';
import { useBuilderStore } from '@/stores/builder.store';
import { useFoldersStore } from '@/stores/folders.store';
import { useParameterOverridesStore } from '@/stores/parameterOverrides.store';
import { hasFromAiExpressions } from '@/utils/nodes/nodeTransforms';
defineOptions({
name: 'NodeView',
@@ -169,6 +172,7 @@ const ndvStore = useNDVStore();
const templatesStore = useTemplatesStore();
const builderStore = useBuilderStore();
const foldersStore = useFoldersStore();
const parameterOverridesStore = useParameterOverridesStore();
const canvasEventBus = createEventBus<CanvasEventBusEvents>();
@@ -1161,9 +1165,19 @@ async function onRunWorkflowToNode(id: string) {
const node = workflowsStore.getNodeById(id);
if (!node) return;
trackRunWorkflowToNode(node);
if (hasFromAiExpressions(node) && nodeTypesStore.isNodesAsToolNode(node.type)) {
uiStore.openModalWithData({
name: FROM_AI_PARAMETERS_MODAL_KEY,
data: {
nodeName: node.name,
},
});
} else {
trackRunWorkflowToNode(node);
parameterOverridesStore.clearParameterOverrides(workflowsStore.workflowId, node.id);
void runWorkflow({ destinationNode: node.name, source: 'Node.executeNode' });
void runWorkflow({ destinationNode: node.name, source: 'Node.executeNode' });
}
}
function trackRunWorkflowToNode(node: INodeUi) {