import { useState } from "react"; import { useAgents } from "../hooks/useAgents"; import { StatusBadge } from "../components/StatusBadge"; import { formatCents } from "../lib/utils"; import { useCompany } from "../context/CompanyContext"; import { agentsApi } from "../api/agents"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; export function Agents() { const { selectedCompanyId } = useCompany(); const { data: agents, loading, error, reload } = useAgents(selectedCompanyId); const [actionError, setActionError] = useState(null); async function invoke(agentId: string) { setActionError(null); try { await agentsApi.invoke(agentId); reload(); } catch (err) { setActionError(err instanceof Error ? err.message : "Failed to invoke agent"); } } async function pause(agentId: string) { setActionError(null); try { await agentsApi.pause(agentId); reload(); } catch (err) { setActionError(err instanceof Error ? err.message : "Failed to pause agent"); } } async function resume(agentId: string) { setActionError(null); try { await agentsApi.resume(agentId); reload(); } catch (err) { setActionError(err instanceof Error ? err.message : "Failed to resume agent"); } } if (!selectedCompanyId) { return

Select a company first.

; } return (

Agents

{loading &&

Loading...

} {error &&

{error.message}

} {actionError &&

{actionError}

} {agents && agents.length === 0 &&

No agents yet.

} {agents && agents.length > 0 && (
{agents.map((agent) => (

{agent.name}

{agent.role} {agent.title ? ` - ${agent.title}` : ""}

{formatCents(agent.spentMonthlyCents)} / {formatCents(agent.budgetMonthlyCents)}
))}
)}
); }