{"version":3,"sources":["../../../src/adapters/vertexai/utils.ts"],"names":["processContentResponse","response","candidates","flatMap","candidate","content","parts","filter","part","text","map","join","getTokenCount","usageMetadata","totalTokenCount","Infinity","registerVertexAI","Serializer","register","VertexAI","toPlain","value","project","getPropStrict","location","fromPlain","createModel","client","modelId","schema","params","modelParams","model","schemaJson","isString","JSON","parse","generationConfig","responseSchema","responseMimeType","getGenerativeModel"],"mappings":";;;;;;;;;AA2BO,SAASA,uBAAuBC,QAAiC,EAAA;AACtE,EACEA,OAAAA,QAAAA,CAASC,YACLC,OAAQ,CAAA,CAACC,cACTA,SAAUC,CAAAA,OAAAA,CAAQC,KAAMC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,IAAI,CAAA,CAAEC,IAAI,CAACF,IAAAA,KAASA,KAAKC,IAAI,CAAA,CAE5EE,CAAAA,IAAAA,EAAU,IAAA,OAAA;AAEjB;AARgBX,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAUT,SAASY,cAAcX,QAAiC,EAAA;AAC7D,EAAOA,OAAAA,QAAAA,CAASY,eAAeC,eAAmBC,IAAAA,QAAAA;AACpD;AAFgBH,MAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA;AAIT,SAASI,gBAAAA,GAAAA;AACdC,EAAAA,yBAAAA,CAAWC,SAASC,iBAAU,EAAA;AAC5BC,IAAAA,OAAAA,0BAAUC,KAAW,MAAA;MACnBC,OAASC,EAAAA,wBAAAA,CAAcF,OAAO,SAAA,CAAA;MAC9BG,QAAUD,EAAAA,wBAAAA,CAAcF,OAAO,UAAA;KAFxB,CAAA,EAAA,SAAA,CAAA;AAITI,IAAAA,SAAAA,0BAAYJ,KAAAA,KAAAA;AACV,MAAA,OAAO,IAAIF,iBAAS,CAAA;AAAEG,QAAAA,OAAAA,EAASD,KAAMC,CAAAA,OAAAA;AAASE,QAAAA,QAAAA,EAAUH,KAAMG,CAAAA;OAAS,CAAA;KAD9D,EAAA,WAAA;GAGb,CAAA;AACF;AAVgBR,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAYT,SAASU,WACdC,CAAAA,MAAAA,EACAC,OACAC,EAAAA,MAAAA,EACAC,MAAe,EAAA;AAEf,EAAA,MAAMC,WAA2B,GAAA;IAAEC,KAAOJ,EAAAA,OAAAA;IAAS,GAAGE;AAAO,GAAA;AAC7D,EAAA,IAAID,MAAQ,EAAA;AACV,IAAA,MAAMI,aAAaC,eAASL,CAAAA,MAAAA,IAAUM,IAAKC,CAAAA,KAAAA,CAAMP,MAAAA,CAAUA,GAAAA,MAAAA;AAC3DE,IAAAA,WAAAA,CAAYM,gBAAmB,GAAA;AAC7B,MAAA,GAAGN,WAAYM,CAAAA,gBAAAA;MACfC,cAAgBL,EAAAA,UAAAA;MAChBM,gBAAkB,EAAA;AACpB,KAAA;AACF;AACA,EAAOZ,OAAAA,MAAAA,CAAOa,mBAAmBT,WAAAA,CAAAA;AACnC;AAhBgBL,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isString } from \"remeda\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport {\n  VertexAI,\n  GenerativeModel,\n  ModelParams,\n  BaseModelParams as Params,\n} from \"@google-cloud/vertexai\";\nimport { getPropStrict } from \"@/internals/helpers/object.js\";\nimport { GenerateContentResponse } from \"@google-cloud/vertexai\";\n\nexport function processContentResponse(response: GenerateContentResponse): string {\n  return (\n    response.candidates\n      ?.flatMap((candidate) =>\n        candidate.content.parts.filter((part) => part.text).map((part) => part.text!),\n      )\n      .join() || \"Empty\"\n  );\n}\n\nexport function getTokenCount(response: GenerateContentResponse): number {\n  return response.usageMetadata?.totalTokenCount ?? Infinity;\n}\n\nexport function registerVertexAI() {\n  Serializer.register(VertexAI, {\n    toPlain: (value) => ({\n      project: getPropStrict(value, \"project\"),\n      location: getPropStrict(value, \"location\"),\n    }),\n    fromPlain: (value) => {\n      return new VertexAI({ project: value.project, location: value.location });\n    },\n  });\n}\n\nexport function createModel(\n  client: VertexAI,\n  modelId: string,\n  schema?: string | Record<string, any>,\n  params?: Params,\n): GenerativeModel {\n  const modelParams: ModelParams = { model: modelId, ...params };\n  if (schema) {\n    const schemaJson = isString(schema) ? JSON.parse(schema) : schema;\n    modelParams.generationConfig = {\n      ...modelParams.generationConfig,\n      responseSchema: schemaJson,\n      responseMimeType: \"application/json\",\n    };\n  }\n  return client.getGenerativeModel(modelParams);\n}\n"]}