Closes #019 - Live Python Machine Learning Pipeline Integration

This commit is contained in:
Antigravity Agent
2026-06-14 13:07:55 +02:00
parent 02cedd6ee6
commit 9c5cd78801
6 changed files with 920 additions and 4 deletions

View File

@@ -123,6 +123,7 @@ export default function CryptoDemo() {
const [trackers, setTrackers] = useState<TrackersMap>({});
const [ensemblePredictions, setEnsemblePredictions] = useState<any>(null);
const [loadingEnsemble, setLoadingEnsemble] = useState(false);
const [isShieldActive, setIsShieldActive] = useState(true);
// Safely load counters and forecasts from localStorage on client mount
useEffect(() => {
@@ -178,6 +179,7 @@ export default function CryptoDemo() {
if (res.ok) {
const data = await res.json();
setEnsemblePredictions(data.predictions || null);
setIsShieldActive(data.isShieldActive !== undefined ? data.isShieldActive : true);
}
} catch (err) {
console.error("Failed to load ensemble predictions:", err);
@@ -545,10 +547,17 @@ export default function CryptoDemo() {
</h2>
</div>
<div className="flex flex-wrap items-center gap-3">
<span className="inline-flex items-center gap-1.5 px-3 py-2.5 rounded-xl text-xs font-bold bg-amber-500/10 text-amber-400 border border-amber-500/20 shadow-[0_0_15px_rgba(245,158,11,0.15)] h-11">
<ShieldAlert className="w-4 h-4 text-amber-400" />
<span>SYSTEM-AUTARK (OFFLINE-CORE)</span>
</span>
{isShieldActive ? (
<span className="inline-flex items-center gap-1.5 px-3 py-2.5 rounded-xl text-xs font-bold bg-amber-500/10 text-amber-400 border border-amber-500/20 shadow-[0_0_15px_rgba(245,158,11,0.15)] h-11 animate-pulse">
<ShieldAlert className="w-4 h-4 text-amber-400" />
<span>SYSTEM-AUTARK (OFFLINE-CORE)</span>
</span>
) : (
<span className="inline-flex items-center gap-1.5 px-3 py-2.5 rounded-xl text-xs font-bold bg-emerald-500/10 text-emerald-400 border border-emerald-500/20 shadow-[0_0_15px_rgba(16,185,129,0.15)] h-11">
<span className="w-2 h-2 rounded-full bg-emerald-500 animate-ping" />
<span>LIVE-API ENDPUNKT</span>
</span>
)}
<button
onClick={() => setIsMathModalOpen(true)}