import type { FC } from 'react' import type { NodeProps } from '../../types' import type { AgentV2NodeType } from './types' import { memo, useMemo } from 'react' import { useTranslation } from 'react-i18next' import { RiRobot2Line, RiToolsFill } from '@remixicon/react' import { Group, GroupLabel } from '../_base/components/group' import { SettingItem } from '../_base/components/setting-item' const strategyLabels: Record = { auto: 'Auto', 'function-calling': 'Function Calling', 'chain-of-thought': 'ReAct (Chain of Thought)', } const AgentV2Node: FC> = ({ id, data }) => { const { t } = useTranslation() const modelName = data.model?.name || '' const modelProvider = data.model?.provider || '' const strategy = data.agent_strategy || 'auto' const enabledTools = useMemo(() => (data.tools || []).filter(t => t.enabled), [data.tools]) const maxIter = data.max_iterations || 10 return (
{modelName || 'Not configured'} {strategyLabels[strategy] || strategy} {enabledTools.length > 0 && ( Tools ({enabledTools.length})}>
{enabledTools.slice(0, 6).map((tool, i) => ( {tool.tool_name} ))} {enabledTools.length > 6 && ( +{enabledTools.length - 6} )}
)} {maxIter !== 10 && ( {maxIter} )}
) } AgentV2Node.displayName = 'AgentV2Node' export default memo(AgentV2Node)