diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts index a1fa623185..5648db6793 100644 --- a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts +++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts @@ -101,16 +101,18 @@ type Params = OneStepRunParams const useLastRun = ({ ...oneStepRunParams }: Params) => { + const blockType = oneStepRunParams.data.type const { handleSyncWorkflowDraft } = useNodesSyncDraft() const { getData: getDataForCheckMore, - } = useGetDataForCheckMoreHooks(oneStepRunParams.data.type)(oneStepRunParams.id, oneStepRunParams.data) + } = useGetDataForCheckMoreHooks(blockType)(oneStepRunParams.id, oneStepRunParams.data) const { id, data, } = oneStepRunParams const oneStepRunRes = useOneStepRun({ ...oneStepRunParams, + iteratorInputKey: blockType === BlockEnum.Iteration ? `${id}.input_selector` : '', moreDataForCheckValid: getDataForCheckMore(), }) @@ -125,12 +127,13 @@ const useLastRun = ({ setRunInputData, showSingleRun, runResult, + iterationRunResult, } = oneStepRunRes const { nodeInfo, ...singleRunParams - } = useSingleRunFormParamsHooks(data.type)({ + } = useSingleRunFormParamsHooks(blockType)({ id, payload: data, runInputData, @@ -140,6 +143,7 @@ const useLastRun = ({ toVarInputs, varSelectorsToVarInputs, runResult, + iterationRunResult, }) const callRunApi = async (data: Record) => { diff --git a/web/app/components/workflow/nodes/agent/use-single-run-form-params.ts b/web/app/components/workflow/nodes/agent/use-single-run-form-params.ts index 6580315625..8e33de2aab 100644 --- a/web/app/components/workflow/nodes/agent/use-single-run-form-params.ts +++ b/web/app/components/workflow/nodes/agent/use-single-run-form-params.ts @@ -6,6 +6,8 @@ import type { AgentNodeType } from './types' import { useTranslation } from 'react-i18next' import type { Props as FormProps } from '@/app/components/workflow/nodes/_base/components/before-run-form/form' import { useStrategyInfo } from './use-config' +import type { NodeTracing } from '@/types/workflow' +import formatTracing from '@/app/components/workflow/run/utils/format-log' const i18nPrefix = 'workflow.nodes.agent' @@ -17,6 +19,7 @@ type Params = { getInputVars: (textList: string[]) => InputVar[] setRunInputData: (data: Record) => void toVarInputs: (variables: Variable[]) => InputVar[] + runResult: NodeTracing } const useSingleRunFormParams = ({ id, @@ -24,6 +27,7 @@ const useSingleRunFormParams = ({ runInputData, getInputVars, setRunInputData, + runResult, }: Params) => { const { t } = useTranslation() const { inputs } = useNodeCrud(id, payload) @@ -68,8 +72,15 @@ const useSingleRunFormParams = ({ return forms }, [runInputData, setRunInputData, t, varInputs]) + const nodeInfo = useMemo(() => { + if (!runResult) + return + return formatTracing([runResult], t)[0] + }, [runResult, t]) + return { forms, + nodeInfo, } } diff --git a/web/app/components/workflow/nodes/iteration/use-single-run-form-params.ts b/web/app/components/workflow/nodes/iteration/use-single-run-form-params.ts index 8db10c11cf..4381b9884d 100644 --- a/web/app/components/workflow/nodes/iteration/use-single-run-form-params.ts +++ b/web/app/components/workflow/nodes/iteration/use-single-run-form-params.ts @@ -6,6 +6,8 @@ import { useTranslation } from 'react-i18next' import { useIsNodeInIteration, useWorkflow } from '../../hooks' import { getNodeInfoById, getNodeUsedVarPassToServerKey, getNodeUsedVars, isSystemVar } from '../_base/components/variable/utils' import { InputVarType } from '@/app/components/workflow/types' +import formatTracing from '@/app/components/workflow/run/utils/format-log' +import type { NodeTracing } from '@/types/workflow' const i18nPrefix = 'workflow.nodes.iteration' const DELIMITER = '@@@@@' @@ -18,12 +20,14 @@ type Params = { getInputVars: (textList: string[]) => InputVar[] setRunInputData: (data: Record) => void toVarInputs: (variables: Variable[]) => InputVar[] + iterationRunResult: NodeTracing[] } const useSingleRunFormParams = ({ id, runInputData, toVarInputs, setRunInputData, + iterationRunResult, }: Params) => { const { t } = useTranslation() const { isNodeInIteration } = useIsNodeInIteration(id) @@ -124,8 +128,10 @@ const useSingleRunFormParams = ({ ] }, [inputVarValues, iterator, iteratorInputKey, setInputVarValues, setIterator, t, usedOutVars]) + const nodeInfo = formatTracing(iterationRunResult, t)[0] return { forms, + nodeInfo, } }