import { IAgentForm, IToolNode } from '@/interfaces/database/agent'; import { Handle, NodeProps, Position } from '@xyflow/react'; import { get } from 'lodash'; import { memo, useCallback } from 'react'; import { NodeHandleId } from '../../constant'; import { ToolCard } from '../../form/agent-form/agent-tools'; import { useFindMcpById } from '../../hooks/use-find-mcp-by-id'; import useGraphStore from '../../store'; import { NodeWrapper } from './node-wrapper'; function InnerToolNode({ id, isConnectable = true }: NodeProps) { const { edges, getNode } = useGraphStore((state) => state); const upstreamAgentNodeId = edges.find((x) => x.target === id)?.source; const upstreamAgentNode = getNode(upstreamAgentNodeId); const { findMcpById } = useFindMcpById(); const handleClick = useCallback(() => {}, []); const tools: IAgentForm['tools'] = get( upstreamAgentNode, 'data.form.tools', [], ); const mcpList: IAgentForm['mcp'] = get( upstreamAgentNode, 'data.form.mcp', [], ); return ( ); } export const ToolNode = memo(InnerToolNode);