"use client" import {Card, CardContent, CardHeader, CardTitle} from "@/components/ui/card"; import {Server} from "lucide-react"; import {formatDateLastContact} from "@/utils/date-formatting"; import {AgentCardKey} from "@/features/agents/components/agent-card-key"; import {AgentWithDatabases} from "@/db/schema/08_agent"; import {useQuery} from "@tanstack/react-query"; import {getAgentAction} from "@/features/agents/actions/agents.action"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "@/components/ui/accordion"; import {Separator} from "@/components/ui/separator"; import {Badge} from "@/components/ui/badge"; import {CardsWithPagination} from "@/components/common/cards-with-pagination"; import {AgentDatabaseCard} from "@/features/agents/components/agent-database-card"; import {HealthCheckGraph} from "@/features/database/components/health-grid"; import {HealthcheckLog} from "@/db/schema/15_healthcheck-log"; type AgentContentPageProps = { edgeKey: string; agent: AgentWithDatabases canDeleteDatabases?: boolean } export const AgentContentPage = ({edgeKey, agent: initialAgent, canDeleteDatabases = false}: AgentContentPageProps) => { const {data} = useQuery({ queryKey: ["agent-data", initialAgent.id], queryFn: async () => { const result = await getAgentAction(initialAgent.id); return result?.data; }, initialData: { data: initialAgent, health: [] }, staleTime: 0, gcTime: 0, refetchInterval: 1000, }); const agent = data?.data ?? initialAgent; const agentHealthLogs: HealthcheckLog[] = data?.health ?? []; return (
Databases
{agent.databases.length}

Linked resources

Last contact
{formatDateLastContact(agent.lastContact)}

Status heartbeat

{agent.lastContact && ( )}
Registration & Setup {!agent.lastContact && ( Action Required )}
{agent.databases.length > 0 && (

Managed Databases

Resources currently connected to this agent.

new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime() )} cardItem={AgentDatabaseCard} canDeleteDatabases={canDeleteDatabases} />
)}
) }