"use client"; import {useState} from "react"; import Link from "next/link"; import {Card} from "@/components/ui/card"; import {ConnectionIndicator} from "@/components/wrappers/common/connection-indicator"; import {formatDateLastContact} from "@/utils/date-formatting"; import {AgentWith} from "@/db/schema/08_agent"; import {Activity, ChevronRight, Copy, Check, Fingerprint, Server, Database} from "lucide-react"; import {Badge} from "@/components/ui/badge"; import {truncateWords} from "@/utils/text"; import {useIsMobile} from "@/hooks/use-mobile"; export type agentCardProps = { data: AgentWith; }; export const AgentCard = (props: agentCardProps) => { const {data: agent} = props; const isMobile = useIsMobile(); 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 (

{isMobile ? truncateWords(agent.name, 2) : agent.name}

{agent.version && ( v{agent.version} )}
{agent.id}
{agent.databases?.length ?? 0} DBs
Last Contact
{formatDateLastContact(agent.lastContact)}
); };