import { useQuery } from '@tanstack/react-query'; import { config } from '../../config'; import { useAuthStore } from '../../auth/auth-store'; import { useRefreshInterval } from './use-refresh-interval'; export function useAgentMetrics(agentId: string | null, names: string[], buckets = 60) { const refetchInterval = useRefreshInterval(30_000); return useQuery({ queryKey: ['agent-metrics', agentId, names.join(','), buckets], queryFn: async () => { const token = useAuthStore.getState().accessToken; const params = new URLSearchParams({ names: names.join(','), buckets: String(buckets), }); const res = await fetch(`${config.apiBaseUrl}/agents/${agentId}/metrics?${params}`, { headers: { Authorization: `Bearer ${token}`, 'X-Cameleer-Protocol-Version': '1', }, }); if (!res.ok) throw new Error(`${res.status}`); return res.json() as Promise<{ metrics: Record> }>; }, enabled: !!agentId && names.length > 0, refetchInterval, }); }