Merge branch 'feat/plugins' into dev/plugin-deploy
commit
da8e1ded55
@ -0,0 +1,50 @@
|
|||||||
|
import { useCallback } from 'react'
|
||||||
|
import produce from 'immer'
|
||||||
|
import type { AgentLogResponse } from '@/types/workflow'
|
||||||
|
import { useWorkflowStore } from '@/app/components/workflow/store'
|
||||||
|
|
||||||
|
export const useWorkflowAgentLog = () => {
|
||||||
|
const workflowStore = useWorkflowStore()
|
||||||
|
|
||||||
|
const handleWorkflowAgentLog = useCallback((params: AgentLogResponse) => {
|
||||||
|
const { data } = params
|
||||||
|
const {
|
||||||
|
workflowRunningData,
|
||||||
|
setWorkflowRunningData,
|
||||||
|
} = workflowStore.getState()
|
||||||
|
|
||||||
|
setWorkflowRunningData(produce(workflowRunningData!, (draft) => {
|
||||||
|
const currentIndex = draft.tracing!.findIndex(item => item.node_id === data.node_id)
|
||||||
|
if (currentIndex > -1) {
|
||||||
|
const current = draft.tracing![currentIndex]
|
||||||
|
|
||||||
|
if (current.execution_metadata) {
|
||||||
|
if (current.execution_metadata.agent_log) {
|
||||||
|
const currentLogIndex = current.execution_metadata.agent_log.findIndex(log => log.id === data.id)
|
||||||
|
if (currentLogIndex > -1) {
|
||||||
|
current.execution_metadata.agent_log[currentLogIndex] = {
|
||||||
|
...current.execution_metadata.agent_log[currentLogIndex],
|
||||||
|
...data,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
current.execution_metadata.agent_log.push(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
current.execution_metadata.agent_log = [data]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
current.execution_metadata = {
|
||||||
|
agent_log: [data],
|
||||||
|
} as any
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}, [workflowStore])
|
||||||
|
|
||||||
|
return {
|
||||||
|
handleWorkflowAgentLog,
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue