| @@ -105,32 +105,29 @@ const useOneStepRun = <T>({ | |||
| const availableNodesIncludeParent = getBeforeNodesInSameBranchIncludeParent(id) | |||
| const allOutputVars = toNodeOutputVars(availableNodes, isChatMode, undefined, undefined, conversationVariables) | |||
| const getVar = (valueSelector: ValueSelector): Var | undefined => { | |||
| let res: Var | undefined | |||
| const isSystem = valueSelector[0] === 'sys' | |||
| const targetVar = isSystem ? allOutputVars.find(item => !!item.isStartNode) : allOutputVars.find(v => v.nodeId === valueSelector[0]) | |||
| const targetVar = allOutputVars.find(item => isSystem ? !!item.isStartNode : item.nodeId === valueSelector[0]) | |||
| if (!targetVar) | |||
| return undefined | |||
| if (isSystem) | |||
| return targetVar.vars.find(item => item.variable.split('.')[1] === valueSelector[1]) | |||
| let curr: any = targetVar.vars | |||
| if (!curr) | |||
| return | |||
| for (let i = 1; i < valueSelector.length; i++) { | |||
| const key = valueSelector[i] | |||
| const isLast = i === valueSelector.length - 1 | |||
| valueSelector.slice(1).forEach((key, i) => { | |||
| const isLast = i === valueSelector.length - 2 | |||
| // conversation variable is start with 'conversation.' | |||
| curr = curr?.find((v: any) => v.variable.replace('conversation.', '') === key) | |||
| if (isLast) { | |||
| res = curr | |||
| } | |||
| else { | |||
| if (curr?.type === VarType.object || curr?.type === VarType.file) | |||
| curr = curr.children | |||
| } | |||
| }) | |||
| if (Array.isArray(curr)) | |||
| curr = curr.find((v: any) => v.variable.replace('conversation.', '') === key) | |||
| if (isLast) | |||
| return curr | |||
| else if (curr?.type === VarType.object || curr?.type === VarType.file) | |||
| curr = curr.children | |||
| } | |||
| return res | |||
| return undefined | |||
| } | |||
| const checkValid = checkValidFns[data.type] | |||