diff --git a/admin-compliance/app/sdk/agent/page.tsx b/admin-compliance/app/sdk/agent/page.tsx index 58a8c8e..f400763 100644 --- a/admin-compliance/app/sdk/agent/page.tsx +++ b/admin-compliance/app/sdk/agent/page.tsx @@ -27,6 +27,7 @@ export default function AgentPage() { const [scanLoading, setScanLoading] = useState(false) const [scanError, setScanError] = useState(null) const [scanData, setScanData] = useState(null) + const [scanProgress, setScanProgress] = useState('') const { analyze, answerFollowUp, loading, error, result, history } = useAgentAnalysis() const handleSubmit = async (e: React.FormEvent) => { @@ -39,6 +40,7 @@ export default function AgentPage() { setScanLoading(true) setScanError(null) setScanData(null) + setScanProgress('Scan wird gestartet...') try { // Step 1: Start async scan const startRes = await fetch('/api/sdk/v1/agent/scan', { @@ -57,27 +59,26 @@ export default function AgentPage() { await new Promise(r => setTimeout(r, 5000)) const pollRes = await fetch(`/api/sdk/v1/agent/scan?scan_id=${scan_id}`) if (!pollRes.ok) { attempts++; continue } - const status = await pollRes.json() + const pollData = await pollRes.json() - // Update progress message - if (status.progress) { - setScanError(null) - // Show progress as temporary "error" (will be cleared when done) - setScanData({ _progress: status.progress } as any) + if (pollData.progress) { + setScanProgress(pollData.progress) } - if (status.status === 'completed' && status.result) { - setScanData(status.result) + if (pollData.status === 'completed' && pollData.result) { + setScanData(pollData.result) + setScanProgress('') break } - if (status.status === 'failed') { - throw new Error(status.error || 'Scan fehlgeschlagen') + if (pollData.status === 'failed') { + throw new Error(pollData.error || 'Scan fehlgeschlagen') } attempts++ } if (attempts >= maxAttempts) throw new Error('Scan-Timeout (10 Minuten)') } catch (e) { setScanError(e instanceof Error ? e.message : 'Unbekannter Fehler') + setScanProgress('') } finally { setScanLoading(false) } @@ -141,6 +142,17 @@ export default function AgentPage() { + {/* Scan Progress */} + {scanProgress && tab === 'scan' && ( +
+ + + + + {scanProgress} +
+ )} + {/* Error */} {currentError && (
{currentError}
@@ -158,8 +170,8 @@ export default function AgentPage() { )} - {/* Scan Result */} - {tab === 'scan' && scanData && ( + {/* Scan Result — only render when we have a complete response with services */} + {tab === 'scan' && scanData && scanData.services && (