"use client"; import {useState} from "react"; import Link from "next/link"; import {Card} from "@/components/ui/card"; import {ConnectionCircle} from "@/components/wrappers/common/connection-circle"; import {formatDateLastContact} from "@/utils/date-formatting"; import {AgentWith} from "@/db/schema/08_agent"; import {Activity, ChevronRight, Copy, Check, Fingerprint, Server, Database, ShieldCheck} from "lucide-react"; import {Badge} from "@/components/ui/badge"; export type agentCardProps = { data: AgentWith; }; export const AgentCard = (props: agentCardProps) => { const {data: agent} = props; const [isCopied, setIsCopied] = useState(false); const handleCopy = (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); navigator.clipboard.writeText(agent.id); setIsCopied(true); setTimeout(() => setIsCopied(false), 2000); }; return ( {agent.name} {agent.version && ( v{agent.version} )} {agent.id} {isCopied ? : } {agent.databases?.length ?? 0} DBs Last Contact {formatDateLastContact(agent.lastContact)} ); };