|
|
|
|
@ -577,8 +577,20 @@ export const toNodeOutputVars = (
|
|
|
|
|
chatVarList: conversationVariables,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
// Sort nodes in reverse chronological order (most recent first)
|
|
|
|
|
const sortedNodes = [...nodes].sort((a, b) => {
|
|
|
|
|
if (a.data.type === BlockEnum.Start) return 1
|
|
|
|
|
if (b.data.type === BlockEnum.Start) return -1
|
|
|
|
|
if (a.data.type === 'env') return 1
|
|
|
|
|
if (b.data.type === 'env') return -1
|
|
|
|
|
if (a.data.type === 'conversation') return 1
|
|
|
|
|
if (b.data.type === 'conversation') return -1
|
|
|
|
|
// sort nodes by x position
|
|
|
|
|
return (b.position?.x || 0) - (a.position?.x || 0)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const res = [
|
|
|
|
|
...nodes.filter(node => SUPPORT_OUTPUT_VARS_NODE.includes(node?.data?.type)),
|
|
|
|
|
...sortedNodes.filter(node => SUPPORT_OUTPUT_VARS_NODE.includes(node?.data?.type)),
|
|
|
|
|
...(environmentVariables.length > 0 ? [ENV_NODE] : []),
|
|
|
|
|
...((isChatMode && conversationVariables.length > 0) ? [CHAT_VAR_NODE] : []),
|
|
|
|
|
].map((node) => {
|
|
|
|
|
|