"use client";
import { useEffect, useMemo } from "react";
import { useSentinel } from "./hooks/useSentinel";
import HeroCanvas from "./components/HeroCanvas";
import SystemModules from "./components/SystemModules";
import AgentTrustMonitor from "./components/AgentTrustMonitor";
import SimCanvas from "./components/SimCanvas";
import ExecutionLog from "./components/ExecutionLog";
import ArchitecturePipeline from "./components/ArchitecturePipeline";
import MetricsGrid from "./components/MetricsGrid";
import GPUClusterPanel from "./components/GPUClusterPanel";
import type { TaskType, AutoPolicy } from "./lib/types";
export default function Page() {
const s = useSentinel();
useEffect(() => {
void s.resetEpisode();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const adversarialAgents = useMemo(() => new Set(
s.events
.filter(e => e.outcome === "poisoned" || e.outcome === "blocked")
.map(e => e.specialist)
.filter((x): x is string => !!x)
), [s.events]);
const totalReward = s.info?.total_reward ?? 0;
return (
<>
{/* NAV */}
{/* HERO */}
A multi-agent reinforcement learning system where an orchestrator
learns to detect deception, assign trust, and optimize decisions in
real-time adversarial environments.
Train AI to Trust —
and Survive Adversaries
Each module operates as an independent inference layer within the trust-calibration pipeline. All components communicate via the orchestration bus.
Real-time orchestrator view. Agent trust scores update per-step. Red indicates flagged adversarial behaviour.
Data flows unidirectionally through the trust-calibrated RL loop. Each stage emits telemetry to the monitoring bus.
Averaged across evaluation episodes. Adversarial injection ratio fixed at 20%. Baseline: naive averaging orchestrator without trust calibration.