allow overrideconfig from executeflow node to take in variables

This commit is contained in:
Henry 2025-07-25 12:45:07 +01:00
parent 8562d4a563
commit 1be809c55c
1 changed files with 14 additions and 8 deletions

View File

@ -30,7 +30,7 @@ class ExecuteFlow_Agentflow implements INode {
constructor() { constructor() {
this.label = 'Execute Flow' this.label = 'Execute Flow'
this.name = 'executeFlowAgentflow' this.name = 'executeFlowAgentflow'
this.version = 1.0 this.version = 1.1
this.type = 'ExecuteFlow' this.type = 'ExecuteFlow'
this.category = 'Agent Flows' this.category = 'Agent Flows'
this.description = 'Execute another flow' this.description = 'Execute another flow'
@ -62,7 +62,8 @@ class ExecuteFlow_Agentflow implements INode {
name: 'executeFlowOverrideConfig', name: 'executeFlowOverrideConfig',
description: 'Override the config passed to the flow', description: 'Override the config passed to the flow',
type: 'json', type: 'json',
optional: true optional: true,
acceptVariable: true
}, },
{ {
label: 'Base URL', label: 'Base URL',
@ -162,12 +163,17 @@ class ExecuteFlow_Agentflow implements INode {
const flowInput = nodeData.inputs?.executeFlowInput as string const flowInput = nodeData.inputs?.executeFlowInput as string
const returnResponseAs = nodeData.inputs?.executeFlowReturnResponseAs as string const returnResponseAs = nodeData.inputs?.executeFlowReturnResponseAs as string
const _executeFlowUpdateState = nodeData.inputs?.executeFlowUpdateState const _executeFlowUpdateState = nodeData.inputs?.executeFlowUpdateState
const overrideConfig =
typeof nodeData.inputs?.executeFlowOverrideConfig === 'string' && let overrideConfig = nodeData.inputs?.executeFlowOverrideConfig
nodeData.inputs.executeFlowOverrideConfig.startsWith('{') && if (typeof overrideConfig === 'string' && overrideConfig.startsWith('{') && overrideConfig.endsWith('}')) {
nodeData.inputs.executeFlowOverrideConfig.endsWith('}') try {
? JSON.parse(nodeData.inputs.executeFlowOverrideConfig) // Handle escaped square brackets and other common escape sequences
: nodeData.inputs?.executeFlowOverrideConfig const unescapedConfig = overrideConfig.replace(/\\(\[|\])/g, '$1')
overrideConfig = JSON.parse(unescapedConfig)
} catch (parseError) {
throw new Error(`Invalid JSON in executeFlowOverrideConfig: ${parseError.message}`)
}
}
const state = options.agentflowRuntime?.state as ICommonObject const state = options.agentflowRuntime?.state as ICommonObject
const runtimeChatHistory = (options.agentflowRuntime?.chatHistory as BaseMessageLike[]) ?? [] const runtimeChatHistory = (options.agentflowRuntime?.chatHistory as BaseMessageLike[]) ?? []