Merge branch 'main' into feat/attachments

This commit is contained in:
StyleZhang
2024-08-15 10:57:59 +08:00
76 changed files with 1076 additions and 404 deletions

View File

@ -7,12 +7,16 @@ import {
import type { ValueSelector, Var } from '@/app/components/workflow/types'
type Params = {
onlyLeafNodeVar?: boolean
hideEnv?: boolean
hideChatVar?: boolean
filterVar: (payload: Var, selector: ValueSelector) => boolean
}
const useAvailableVarList = (nodeId: string, {
onlyLeafNodeVar,
filterVar,
hideEnv,
hideChatVar,
}: Params = {
onlyLeafNodeVar: false,
filterVar: () => true,
@ -32,6 +36,8 @@ const useAvailableVarList = (nodeId: string, {
beforeNodes: availableNodes,
isChatMode,
filterVar,
hideEnv,
hideChatVar,
})
return {

View File

@ -23,6 +23,8 @@ const Panel: FC<NodePanelProps<AnswerNodeType>> = ({
const { availableVars, availableNodesWithParent } = useAvailableVarList(id, {
onlyLeafNodeVar: false,
hideChatVar: true,
hideEnv: true,
filterVar,
})

View File

@ -62,30 +62,25 @@ const RunPanel: FC<RunProps> = ({ hideResult, activeTab = 'RESULT', runID, getRe
const formatNodeList = useCallback((list: NodeTracing[]) => {
const allItems = list.reverse()
const result: NodeTracing[] = []
let iterationIndexInfos: {
start: number
end: number
}[] = []
let iterationIndex = 0
allItems.forEach((item) => {
const { node_type, index, execution_metadata } = item
const { node_type, execution_metadata } = item
if (node_type !== BlockEnum.Iteration) {
let isInIteration = false
let isIterationFirstNode = false
iterationIndexInfos.forEach(({ start, end }) => {
if (index >= start && index < end) {
if (index === start)
isIterationFirstNode = true
const isInIteration = !!execution_metadata?.iteration_id
isInIteration = true
}
})
if (isInIteration) {
const iterationDetails = result[result.length - 1].details!
if (isIterationFirstNode)
iterationDetails!.push([item])
const currentIterationIndex = execution_metadata?.iteration_index
const isIterationFirstNode = iterationIndex !== currentIterationIndex || iterationDetails.length === 0
else
if (isIterationFirstNode) {
iterationDetails!.push([item])
iterationIndex = currentIterationIndex!
}
else {
iterationDetails[iterationDetails.length - 1].push(item)
}
return
}
@ -95,26 +90,6 @@ const RunPanel: FC<RunProps> = ({ hideResult, activeTab = 'RESULT', runID, getRe
return
}
const { steps_boundary } = execution_metadata
iterationIndexInfos = []
steps_boundary.forEach((boundary, index) => {
if (index === 0) {
iterationIndexInfos.push({
start: boundary,
end: 0,
})
}
else if (index === steps_boundary.length - 1) {
iterationIndexInfos[iterationIndexInfos.length - 1].end = boundary
}
else {
iterationIndexInfos[iterationIndexInfos.length - 1].end = boundary
iterationIndexInfos.push({
start: boundary,
end: 0,
})
}
})
result.push({
...item,
details: [],

View File

@ -123,7 +123,7 @@ const NodePanel: FC<Props> = ({
<div
className='flex items-center h-[34px] justify-between px-3 bg-gray-100 border-[0.5px] border-gray-200 rounded-lg cursor-pointer'
onClick={handleOnShowIterationDetail}>
<div className='leading-[18px] text-[13px] font-medium text-gray-700'>{t('workflow.nodes.iteration.iteration', { count: nodeInfo.metadata?.iterator_length || (nodeInfo.execution_metadata?.steps_boundary?.length - 1) })}</div>
<div className='leading-[18px] text-[13px] font-medium text-gray-700'>{t('workflow.nodes.iteration.iteration', { count: nodeInfo.metadata?.iterator_length })}</div>
{justShowIterationNavArrow
? (
<RiArrowRightSLine className='w-3.5 h-3.5 text-gray-500' />