diff --git a/src/renderer/src/components/Popups/agent/AgentModal.tsx b/src/renderer/src/components/Popups/agent/AgentModal.tsx index 03b527579..d50469939 100644 --- a/src/renderer/src/components/Popups/agent/AgentModal.tsx +++ b/src/renderer/src/components/Popups/agent/AgentModal.tsx @@ -3,14 +3,14 @@ import ClaudeIcon from '@renderer/assets/images/models/claude.png' import { ErrorBoundary } from '@renderer/components/ErrorBoundary' import { TopView } from '@renderer/components/TopView' import { permissionModeCards } from '@renderer/config/agent' -import { agentModelFilter, getModelLogoById } from '@renderer/config/models' import { useAgents } from '@renderer/hooks/agents/useAgents' -import { useApiModels } from '@renderer/hooks/agents/useModels' import { useUpdateAgent } from '@renderer/hooks/agents/useUpdateAgent' +import SelectAgentBaseModelButton from '@renderer/pages/home/components/SelectAgentBaseModelButton' import type { AddAgentForm, AgentEntity, AgentType, + ApiModel, BaseAgentForm, PermissionMode, Tool, @@ -65,7 +65,6 @@ const PopupContainer: React.FC = ({ agent, afterSubmit, resolve }) => { const loadingRef = useRef(false) const { addAgent } = useAgents() const { updateAgent } = useUpdateAgent() - const { models } = useApiModels({ providerType: 'anthropic' }) const isEditing = (agent?: AgentWithTools) => agent !== undefined const [form, setForm] = useState(() => buildAgentForm(agent)) @@ -199,32 +198,26 @@ const PopupContainer: React.FC = ({ agent, afterSubmit, resolve }) => { })) }, []) - const modelOptions = useMemo(() => { - return (models ?? []) - .filter((m) => - agentModelFilter({ - id: m.id, - provider: m.provider || '', - name: m.name, - group: '' - }) - ) - .map((model) => ({ - value: model.id, - label: ( - - - {model.name} - - ) - })) - }, [models]) + // Create a temporary agentBase object for SelectAgentBaseModelButton + const tempAgentBase: AgentEntity = useMemo( + () => ({ + id: agent?.id ?? 'temp-creating', + type: form.type, + name: form.name, + model: form.model, + accessible_paths: form.accessible_paths.length > 0 ? form.accessible_paths : ['/'], + allowed_tools: form.allowed_tools ?? [], + description: form.description, + instructions: form.instructions, + configuration: form.configuration, + created_at: agent?.created_at ?? new Date().toISOString(), + updated_at: agent?.updated_at ?? new Date().toISOString() + }), + [form, agent?.id, agent?.created_at, agent?.updated_at] + ) - const onModelChange = useCallback((value: string) => { - setForm((prev) => ({ - ...prev, - model: value - })) + const handleModelSelect = useCallback(async (model: ApiModel) => { + setForm((prev) => ({ ...prev, model: model.id })) }, []) const onCancel = () => { @@ -336,7 +329,7 @@ const PopupContainer: React.FC = ({ agent, afterSubmit, resolve }) => { afterClose={onClose} transitionName="animation-move-down" centered - width={680} + width={500} footer={null}> @@ -363,17 +356,20 @@ const PopupContainer: React.FC = ({ agent, afterSubmit, resolve }) => { -