import type { FC } from 'react' import type { NodePanelProps } from '../../types' import type { AgentNodeType } from './types' import Field from '../_base/components/field' import { AgentStrategy } from '../_base/components/agent-strategy' import useConfig from './use-config' import { useTranslation } from 'react-i18next' import OutputVars, { VarItem } from '../_base/components/output-vars' import type { StrategyParamItem } from '@/app/components/plugins/types' import type { CredentialFormSchema } from '@/app/components/header/account-setting/model-provider-page/declarations' const i18nPrefix = 'workflow.nodes.agent' function strategyParamToCredientialForm(param: StrategyParamItem): CredentialFormSchema { return { ...param as any, variable: param.name, show_on: [], } } const AgentPanel: FC> = (props) => { const { inputs, setInputs, currentStrategy } = useConfig(props.id, props.data) const { t } = useTranslation() return
{ setInputs({ ...inputs, agent_strategy_provider_name: strategy?.agent_strategy_provider_name, agent_strategy_name: strategy?.agent_strategy_name, agent_parameters: strategy?.agent_parameters, agent_strategy_label: strategy?.agent_strategy_label, output_schema: strategy!.agent_output_schema, }) }} formSchema={currentStrategy?.parameters?.map(strategyParamToCredientialForm) || []} formValue={inputs.agent_parameters || {}} onFormValueChange={value => setInputs({ ...inputs, agent_parameters: value, })} />
{inputs.output_schema && Object.entries(inputs.output_schema).map(([name, schema]) => ( ))}
} export default AgentPanel