diff --git a/packages/editor-ui/src/components/Node/NodeCreator/composables/useActions.ts b/packages/editor-ui/src/components/Node/NodeCreator/composables/useActions.ts index 87be1105b7c..d49d24a6ef2 100644 --- a/packages/editor-ui/src/components/Node/NodeCreator/composables/useActions.ts +++ b/packages/editor-ui/src/components/Node/NodeCreator/composables/useActions.ts @@ -44,6 +44,7 @@ import { useExternalHooks } from '@/composables/useExternalHooks'; import { sortNodeCreateElements, transformNodeType } from '../utils'; import { useI18n } from '@/composables/useI18n'; import { useCanvasStore } from '@/stores/canvas.store'; +import { adjustNewlyConnectedNodes } from '@/utils/connectionParameterUtils'; export const useActions = () => { const nodeCreatorStore = useNodeCreatorStore(); @@ -276,6 +277,10 @@ export const useActions = () => { }); } + if (addedNodes.length === 2) { + adjustNewlyConnectedNodes(addedNodes[0], addedNodes[1]); + } + addedNodes.forEach((node, index) => { if (node.type === OPEN_AI_NODE_MESSAGE_ASSISTANT_TYPE) { node.type = OPEN_AI_NODE_TYPE; diff --git a/packages/editor-ui/src/composables/useCanvasOperations.ts b/packages/editor-ui/src/composables/useCanvasOperations.ts index 4b78da01b2a..144f54a962b 100644 --- a/packages/editor-ui/src/composables/useCanvasOperations.ts +++ b/packages/editor-ui/src/composables/useCanvasOperations.ts @@ -96,6 +96,7 @@ import type { useRouter } from 'vue-router'; import { useClipboard } from '@/composables/useClipboard'; import { useUniqueNodeName } from '@/composables/useUniqueNodeName'; import { isPresent } from '../utils/typesUtils'; +import { adjustNewlyConnectedNodes } from '@/utils/connectionParameterUtils'; type AddNodeData = Partial & { type: string; @@ -1104,6 +1105,8 @@ export function useCanvasOperations({ router }: { router: ReturnType; + +export function adjustNewlyConnectedNodes(parent: NodeWithType, child: NodeWithType) { + if (!PROMPT_PROVIDER_NODE_NAMES.includes(child.type) && AI_NODES.includes(parent.type)) { + Object.assign>(child, { + parameters: { promptType: 'define' }, + }); + } + if (PROMPT_PROVIDER_NODE_NAMES.includes(parent.type) && MEMORY_NODE_NAMES.includes(child.type)) { + Object.assign>(child, { + parameters: { sessionIdType: 'customKey' }, + }); + } +}