'use client' import { useState } from 'react' import type { RAGControlSuggestion } from '../_types' export function useRAGSuggestions(setError: (msg: string | null) => void) { const [ragLoading, setRagLoading] = useState(false) const [ragSuggestions, setRagSuggestions] = useState([]) const [showRagPanel, setShowRagPanel] = useState(false) const [selectedRequirementId, setSelectedRequirementId] = useState('') const suggestControlsFromRAG = async () => { if (!selectedRequirementId) { setError('Bitte eine Anforderungs-ID eingeben.') return } setRagLoading(true) setRagSuggestions([]) try { const res = await fetch('/api/sdk/v1/compliance/ai/suggest-controls', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ requirement_id: selectedRequirementId }), }) if (!res.ok) { const msg = await res.text() throw new Error(msg || `HTTP ${res.status}`) } const data = await res.json() setRagSuggestions(data.suggestions || []) setShowRagPanel(true) } catch (e) { setError(`KI-Vorschlaege fehlgeschlagen: ${e instanceof Error ? e.message : 'Unbekannter Fehler'}`) } finally { setRagLoading(false) } } const removeSuggestion = (controlId: string) => { setRagSuggestions(prev => prev.filter(s => s.control_id !== controlId)) } return { ragLoading, ragSuggestions, showRagPanel, setShowRagPanel, selectedRequirementId, setSelectedRequirementId, suggestControlsFromRAG, removeSuggestion, } }