import type { DaemonClient } from "@getpaseo/client/internal/daemon-client"; type TimelineClient = Pick; type TimelineRequest = Parameters[1]; type TimelinePage = Awaited>; const inFlightByClient = new WeakMap>>(); export function fetchAgentTimelineOnce( client: TimelineClient, agentId: string, request: TimelineRequest, ): Promise { let inFlight = inFlightByClient.get(client); if (!inFlight) { inFlight = new Map(); inFlightByClient.set(client, inFlight); } const key = `${agentId}:${JSON.stringify(request)}`; const existing = inFlight.get(key); if (existing) return existing; const fetch = client.fetchAgentTimeline(agentId, request); inFlight.set(key, fetch); const clear = () => { if (inFlight.get(key) === fetch) inFlight.delete(key); }; void fetch.then(clear, clear); return fetch; }