import { getEnvVar } from "../config.js"; export function fetchWithTimeout( url: string, init: RequestInit, timeoutMs?: number, ): Promise { const parsed = timeoutMs ?? Number.parseInt(getEnvVar("AGENTMEMORY_LLM_TIMEOUT_MS") ?? "60000", 10); const ms = Number.isFinite(parsed) && parsed > 0 ? parsed : 60000; const ctl = new AbortController(); const signal = init.signal ? AbortSignal.any([init.signal, ctl.signal]) : ctl.signal; const t = setTimeout(() => ctl.abort(), ms); return fetch(url, { ...init, signal }).finally(() => clearTimeout(t)); }