"use client"; import { Client as LangGraphClient } from "@langchain/langgraph-sdk/client"; import { getLangGraphBaseURL } from "../config"; import { sanitizeRunStreamOptions } from "./stream-mode"; function createCompatibleClient(isMock?: boolean): LangGraphClient { const client = new LangGraphClient({ apiUrl: getLangGraphBaseURL(isMock), }); const originalRunStream = client.runs.stream.bind(client.runs); client.runs.stream = ((threadId, assistantId, payload) => originalRunStream( threadId, assistantId, sanitizeRunStreamOptions(payload), )) as typeof client.runs.stream; const originalJoinStream = client.runs.joinStream.bind(client.runs); client.runs.joinStream = ((threadId, runId, options) => originalJoinStream( threadId, runId, sanitizeRunStreamOptions(options), )) as typeof client.runs.joinStream; return client; } let _singleton: LangGraphClient | null = null; export function getAPIClient(isMock?: boolean): LangGraphClient { _singleton ??= createCompatibleClient(isMock); return _singleton; }