diff --git a/components/AIAssist.tsx b/components/AIAssist.tsx index e1637fb..eb73028 100644 --- a/components/AIAssist.tsx +++ b/components/AIAssist.tsx @@ -6,6 +6,7 @@ import { Input } from "@/components/ui/input"; import { Card, CardHeader, CardTitle, CardDescription, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { Select } from "@/components/ui/select"; import useStore from "@/lib/store"; import { translations } from "@/lib/i18n/translations"; import modelAdapter from "@/lib/services/adapter-instance"; @@ -30,7 +31,7 @@ const AGENTS = [ ]; const AIAssist = () => { - const { language, selectedProvider, selectedModels, apiKeys, aiAssistHistory, setAIAssistHistory } = useStore(); + const { language, selectedProvider, selectedModels, setSelectedModel, apiKeys, aiAssistHistory, setAIAssistHistory } = useStore(); const t = translations[language].aiAssist; const common = translations[language].common; @@ -39,6 +40,7 @@ const AIAssist = () => { const [currentAgent, setCurrentAgent] = useState("general"); const [activeTab, setActiveTab] = useState("chat"); const [previewData, setPreviewData] = useState<{ type: string; data: string; language?: string } | null>(null); + const [availableModels, setAvailableModels] = useState([]); const scrollRef = useRef(null); @@ -48,6 +50,20 @@ const AIAssist = () => { } }, [aiAssistHistory]); + useEffect(() => { + const loadModels = async () => { + try { + const models = await modelAdapter.listModels(selectedProvider); + if (models.success && models.data) { + setAvailableModels(models.data[selectedProvider] || []); + } + } catch (e) { + setAvailableModels(modelAdapter.getAvailableModels(selectedProvider)); + } + }; + loadModels(); + }, [selectedProvider]); + const handleSendMessage = async () => { if (!input.trim() || isProcessing) return; @@ -69,10 +85,15 @@ const AIAssist = () => { throw new Error(`Please configure your ${selectedProvider.toUpperCase()} API key in Settings`); } + // Convert history to clean message format for API + const cleanMessages = aiAssistHistory.concat(userMessage).map(m => ({ + role: m.role, + content: String(m.content || "") + })); + // Call model adapter for AI Assist - // Note: We'll implement generateAIAssist in model-adapter.ts next const result = await modelAdapter.generateAIAssist({ - messages: aiAssistHistory.concat(userMessage), + messages: cleanMessages as any, currentAgent }, selectedProvider, selectedModels[selectedProvider]); @@ -203,8 +224,19 @@ const AIAssist = () => {
+