"use client"; import { useEffect, useState } from "react"; import { fetchGroups, fetchSignals, Group, Signal, formatRelativeTime, getSignalIcon, getSeverityColor, } from "../lib/api"; function GroupAgentCard({ group, signals, index }: { group: Group; signals: Signal[]; index: number }) { const recentSignals = signals.slice(0, 3); const latestTimestamp = signals[0]?.metadata?.timestamp; const criticalCount = signals.filter( (s) => s.metadata.severity === "critical" || s.metadata.severity === "high" ).length; const isActive = group.signal_count > 0; const statusLabel = isActive ? "ACTIVE" : "IDLE"; const statusBg = isActive ? "rgba(16, 185, 129, 0.1)" : "rgba(168, 140, 251, 0.1)"; const statusColor = isActive ? "#10b981" : "#a88cfb"; const gradients = [ ["#a88cfb", "#00daf3"], ["#432390", "#a88cfb"], ["#ee7d77", "#ffb300"], ["#00daf3", "#a88cfb"], ]; const [colorA, colorB] = gradients[index % gradients.length]; return (
LENS: {group.lens?.toUpperCase() || "UNKNOWN"} · {group.signal_count} signals
Latest Signal
{recentSignals[0]?.document || "No signals yet"}
Total Signals
{group.signal_count}
High Priority
0 ? "#ff6f78" : "#10b981" }} > {criticalCount > 0 ? `${criticalCount} alerts` : "all clear"}
Signal Stream
terminalno signals yet_
) : ( recentSignals.map((sig, idx) => ({sig.metadata.type}: {" "} {sig.document.slice(0, 60)} {sig.document.length > 60 ? "…" : ""}
)) )}_
No monitored groups yet.
Connect Telegram groups to see agents here.