import React from 'react'; import { motion } from 'framer-motion'; const clamp = (value) => Math.min(Math.max(value || 0, 0), 1); const MetricCard = ({ label, value, tone, hint }) => (
{label} {clamp(value).toFixed(2)}
{hint}
); export const MetricsPanel = ({ metrics, trade, agents }) => { const reward = clamp(metrics?.reward); const grade = clamp(metrics?.grade); const drawdown = clamp(1 - (metrics?.drawdown || 0)); const sharpe = clamp(metrics?.sharpe); const confidences = Object.values(agents || {}).map((agent) => agent?.confidence || 0); const deskSync = confidences.length ? confidences.reduce((sum, confidence) => sum + confidence, 0) / confidences.length : 0; return (
Training Pulse

Desk metrics in motion

{trade?.override ? 'PM override live' : 'Autonomy running'}
); };