import { useState } from "react"; import { Plus, Trash2, Server } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription, } from "@/components/ui/dialog"; import { useConfigStore } from "@/stores/configStore"; import type { LLMProviderConfig as ProviderConfig } from "@/types/execution"; export function LLMProviderConfigComponent() { const { llmProviders, addProvider, deleteProvider } = useConfigStore(); const [dialogOpen, setDialogOpen] = useState(false); const [form, setForm] = useState({ provider_id: "", name: "", base_url: "", api_key: "", default_model: "", }); const handleAdd = async () => { if (!form.provider_id || !form.name || !form.base_url || !form.api_key) return; await addProvider(form); setDialogOpen(false); setForm({ provider_id: "", name: "", base_url: "", api_key: "", default_model: "" }); }; return (
LLM Providers Configure API endpoints for LLM models.
{llmProviders.length === 0 ? (

No LLM providers configured. Add one to enable real LLM execution.

) : (
{llmProviders.map((p) => (
{p.name}
{p.base_url} {p.default_model && `- ${p.default_model}`}
))}
)}
Add LLM Provider Configure a new LLM API endpoint.
setForm({ ...form, provider_id: e.target.value })} />
setForm({ ...form, name: e.target.value })} />
setForm({ ...form, base_url: e.target.value })} />
setForm({ ...form, api_key: e.target.value })} />
setForm({ ...form, default_model: e.target.value || null })} />
); }