{"version":3,"file":"index.cjs","names":["BaseClient"],"sources":["../../../src/client/ui-internal/index.ts"],"sourcesContent":["import { BaseClient } from \"../base.js\";\n\nexport class UiClient extends BaseClient {\n  private static promiseCache: Record<string, Promise<unknown> | undefined> =\n    {};\n\n  private static getOrCached<T>(key: string, fn: () => Promise<T>): Promise<T> {\n    if (UiClient.promiseCache[key] != null) {\n      return UiClient.promiseCache[key] as Promise<T>;\n    }\n\n    const promise = fn();\n    UiClient.promiseCache[key] = promise;\n    return promise;\n  }\n\n  async getComponent(assistantId: string, agentName: string): Promise<string> {\n    return UiClient.getOrCached(\n      `${this.apiUrl}-${assistantId}-${agentName}`,\n      async () => {\n        // oxlint-disable-next-line prefer-const -- init is reassigned by onRequest hook\n        let [url, init] = this.prepareFetchOptions(`/ui/${assistantId}`, {\n          headers: {\n            Accept: \"text/html\",\n            \"Content-Type\": \"application/json\",\n          },\n          method: \"POST\",\n          json: { name: agentName },\n        });\n        if (this.onRequest != null) init = await this.onRequest(url, init);\n\n        const response = await this.asyncCaller.fetch(url.toString(), init);\n        return response.text();\n      }\n    );\n  }\n}\n"],"mappings":";;AAEA,IAAa,WAAb,MAAa,iBAAiBA,aAAAA,WAAW;CACvC,OAAe,eACb,EAAE;CAEJ,OAAe,YAAe,KAAa,IAAkC;AAC3E,MAAI,SAAS,aAAa,QAAQ,KAChC,QAAO,SAAS,aAAa;EAG/B,MAAM,UAAU,IAAI;AACpB,WAAS,aAAa,OAAO;AAC7B,SAAO;;CAGT,MAAM,aAAa,aAAqB,WAAoC;AAC1E,SAAO,SAAS,YACd,GAAG,KAAK,OAAO,GAAG,YAAY,GAAG,aACjC,YAAY;GAEV,IAAI,CAAC,KAAK,QAAQ,KAAK,oBAAoB,OAAO,eAAe;IAC/D,SAAS;KACP,QAAQ;KACR,gBAAgB;KACjB;IACD,QAAQ;IACR,MAAM,EAAE,MAAM,WAAW;IAC1B,CAAC;AACF,OAAI,KAAK,aAAa,KAAM,QAAO,MAAM,KAAK,UAAU,KAAK,KAAK;AAGlE,WADiB,MAAM,KAAK,YAAY,MAAM,IAAI,UAAU,EAAE,KAAK,EACnD,MAAM;IAEzB"}