|
@@ -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]
|