import React, { useState } from 'react'; const AgentForm = ({ onGenerate, isLoading, generatedCode, onTestResult }) => { const [formData, setFormData] = useState({ name: '', prompt: '', task: '', provider: 'anthropic', model: 'claude-3-5-sonnet-20241022', stream: false }); const [isExecuting, setIsExecuting] = useState(false); const handleChange = (e) => { const { name, value, type, checked } = e.target; setFormData(prev => { const newData = { ...prev, [name]: type === 'checkbox' ? checked : value }; // Reset model when provider changes if (name === 'provider' && value !== prev.provider) { if (value === 'anthropic') { newData.model = 'claude-3-5-sonnet-20241022'; } else if (value === 'huggingface') { newData.model = 'meta-llama/Meta-Llama-3-8B-Instruct'; } } return newData; }); }; const handleSubmit = (e) => { e.preventDefault(); onGenerate(formData); if (onTestResult) onTestResult(null); }; const handleTestAgent = async () => { if (!generatedCode) return; setIsExecuting(true); if (onTestResult) onTestResult(null); try { const response = await fetch('http://localhost:8000/api/execute', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ code: generatedCode, task: formData.task }), }); const data = await response.json(); if (data.status === 'success') { if (onTestResult) onTestResult(data.output); } else { if (onTestResult) onTestResult(`Error: ${data.detail}`); } } catch (error) { if (onTestResult) onTestResult(`Error: ${error.message}`); } finally { setIsExecuting(false); } }; return (