/* ═══════════════════════════════════════════════════════════════ AgentCard — Status card for each AI agent Shows progress, status, and findings count ═══════════════════════════════════════════════════════════════ */ import { AGENT_STATUS } from '../context/ScanContext'; import './AgentCard.css'; const AGENT_CONFIG = { security: { name: 'Security Agent', icon: '🔍', description: 'Vulnerabilities & threats', colorClass: 'agent-security', barColor: 'cyan', }, performance: { name: 'Performance Agent', icon: '⚡', description: 'Optimization & efficiency', colorClass: 'agent-performance', barColor: 'purple', }, fix: { name: 'Fix Agent', icon: '🔧', description: 'Patches & remediation', colorClass: 'agent-fix', barColor: 'amber', }, }; export default function AgentCard({ agentId, agentState }) { const config = AGENT_CONFIG[agentId]; const { status, progress, findingsCount, filesScanned, message } = agentState; const statusLabel = { [AGENT_STATUS.IDLE]: 'Waiting', [AGENT_STATUS.SCANNING]: 'Scanning', [AGENT_STATUS.COMPLETE]: 'Complete', }; return (
{config.icon}

{config.name}

{config.description}
{statusLabel[status]}
{/* Progress Bar */}
{/* Stats */}
{findingsCount} {agentId === 'fix' ? 'Fixes' : 'Findings'}
{filesScanned} Files
{progress}% Progress
{/* Status Message */} {message && status === AGENT_STATUS.SCANNING && (
{message}
)}
); }