{"version":3,"sources":["../src/generative-ai/client.ts"],"sourcesContent":["import { ContentstackHttpClient } from \"../http/client.js\"\nimport type { HttpClientConfig } from \"../http/types.js\"\nimport type { ContentstackRegion } from \"../regions/resolver.js\"\nimport { resolveEndpoints } from \"../regions/resolver.js\"\nimport type { GenerateContentData, GenerateContentResult } from \"./types.js\"\n\nexport interface GenerativeAIClientConfig {\n  region: ContentstackRegion\n  organizationUid: string\n  brandKitUid: string\n  auth: { type: \"oauth\"; accessToken: string } | { type: \"authtoken\"; token: string }\n  httpOptions?: Partial<HttpClientConfig>\n}\n\nexport interface GenerativeAIClient {\n  generate(data: GenerateContentData): Promise<GenerateContentResult>\n}\n\nexport function createGenerativeAIClient(config: GenerativeAIClientConfig): GenerativeAIClient {\n  const endpoints = resolveEndpoints(config.region)\n\n  const headers: Record<string, string> = {\n    organization_uid: config.organizationUid,\n    brand_kit_uid: config.brandKitUid,\n  }\n\n  switch (config.auth.type) {\n    case \"oauth\":\n      headers.authorization = `Bearer ${config.auth.accessToken}`\n      break\n    case \"authtoken\":\n      headers.authtoken = config.auth.token\n      break\n  }\n\n  const http = new ContentstackHttpClient({\n    ...config.httpOptions,\n    baseUrl: config.httpOptions?.baseUrl ?? endpoints.brandKitAI,\n    headers: {\n      ...config.httpOptions?.headers,\n      ...headers,\n    },\n  })\n\n  return {\n    async generate(data: GenerateContentData): Promise<GenerateContentResult> {\n      const body: Record<string, unknown> = { prompt: data.prompt }\n      if (data.voiceProfileUid) {\n        body.voice_profile_uid = data.voiceProfileUid\n      }\n      if (data.useKnowledgeVault !== undefined) {\n        body.knowledge_vault = data.useKnowledgeVault\n      }\n      const response = await http.post<{ data: GenerateContentResult }>(\n        \"/v1/generative-ai/generate\",\n        body,\n      )\n      return response.data.data\n    },\n  }\n}\n"],"mappings":";;;;;;;;AAkBO,SAAS,yBAAyB,QAAsD;AAC7F,QAAM,YAAY,iBAAiB,OAAO,MAAM;AAEhD,QAAM,UAAkC;AAAA,IACtC,kBAAkB,OAAO;AAAA,IACzB,eAAe,OAAO;AAAA,EACxB;AAEA,UAAQ,OAAO,KAAK,MAAM;AAAA,IACxB,KAAK;AACH,cAAQ,gBAAgB,UAAU,OAAO,KAAK,WAAW;AACzD;AAAA,IACF,KAAK;AACH,cAAQ,YAAY,OAAO,KAAK;AAChC;AAAA,EACJ;AAEA,QAAM,OAAO,IAAI,uBAAuB;AAAA,IACtC,GAAG,OAAO;AAAA,IACV,SAAS,OAAO,aAAa,WAAW,UAAU;AAAA,IAClD,SAAS;AAAA,MACP,GAAG,OAAO,aAAa;AAAA,MACvB,GAAG;AAAA,IACL;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,MAAM,SAAS,MAA2D;AACxE,YAAM,OAAgC,EAAE,QAAQ,KAAK,OAAO;AAC5D,UAAI,KAAK,iBAAiB;AACxB,aAAK,oBAAoB,KAAK;AAAA,MAChC;AACA,UAAI,KAAK,sBAAsB,QAAW;AACxC,aAAK,kBAAkB,KAAK;AAAA,MAC9B;AACA,YAAM,WAAW,MAAM,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,MACF;AACA,aAAO,SAAS,KAAK;AAAA,IACvB;AAAA,EACF;AACF;","names":[]}