{"version":3,"file":"google_vertexai.cjs","names":["_isContentBlock","_isString","iife","_isArray"],"sources":["../../../src/messages/block_translators/google_vertexai.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { _isArray, _isContentBlock, _isString, iife } from \"./utils.js\";\n\nfunction convertToV1FromChatVertexMessage(\n  message: AIMessage\n): Array<ContentBlock.Standard> {\n  // see `/libs/providers/langchain-google-common/src/utils/gemini.ts:partsToMessageContent`\n  function* iterateContent(): Iterable<ContentBlock.Standard> {\n    const content =\n      typeof message.content === \"string\"\n        ? [{ type: \"text\", text: message.content }]\n        : message.content;\n    for (const block of content) {\n      if (_isContentBlock(block, \"reasoning\") && _isString(block.reasoning)) {\n        const signature = iife(() => {\n          const reasoningIndex = content.indexOf(block);\n          if (\n            _isArray(message.additional_kwargs?.signatures) &&\n            reasoningIndex >= 0\n          ) {\n            return message.additional_kwargs.signatures.at(reasoningIndex);\n          }\n          return undefined;\n        });\n        if (_isString(signature)) {\n          yield {\n            type: \"reasoning\",\n            reasoning: block.reasoning,\n            signature,\n          };\n        } else {\n          yield {\n            type: \"reasoning\",\n            reasoning: block.reasoning,\n          };\n        }\n        continue;\n      } else if (\n        _isContentBlock(block, \"thinking\") &&\n        _isString(block.thinking)\n      ) {\n        // Handle thinking blocks (Anthropic-style format used in some Google models)\n        yield {\n          type: \"reasoning\",\n          reasoning: block.thinking,\n          ...(block.signature ? { signature: block.signature } : {}),\n        };\n        continue;\n      } else if (_isContentBlock(block, \"text\") && _isString(block.text)) {\n        yield { type: \"text\", text: block.text };\n        continue;\n      } else if (_isContentBlock(block, \"image_url\")) {\n        if (_isString(block.image_url)) {\n          if (block.image_url.startsWith(\"data:\")) {\n            const dataUrlRegex = /^data:([^;]+);base64,(.+)$/;\n            const match = block.image_url.match(dataUrlRegex);\n            if (match) {\n              yield { type: \"image\", data: match[2], mimeType: match[1] };\n            } else {\n              yield { type: \"image\", url: block.image_url };\n            }\n          } else {\n            yield { type: \"image\", url: block.image_url };\n          }\n        }\n        continue;\n      } else if (\n        _isContentBlock(block, \"media\") &&\n        _isString(block.mimeType) &&\n        _isString(block.data)\n      ) {\n        yield { type: \"file\", mimeType: block.mimeType, data: block.data };\n        continue;\n      }\n      yield { type: \"non_standard\", value: block };\n    }\n  }\n  return Array.from(iterateContent());\n}\n\nexport const ChatVertexTranslator: StandardContentBlockTranslator = {\n  translateContent: convertToV1FromChatVertexMessage,\n  translateContentChunk: convertToV1FromChatVertexMessage,\n};\n"],"mappings":";;AAKA,SAAS,iCACP,SAC8B;CAE9B,UAAU,iBAAkD;EAC1D,MAAM,UACJ,OAAO,QAAQ,YAAY,WACvB,CAAC;GAAE,MAAM;GAAQ,MAAM,QAAQ;GAAS,CAAC,GACzC,QAAQ;AACd,OAAK,MAAM,SAAS,SAAS;AAC3B,OAAIA,cAAAA,gBAAgB,OAAO,YAAY,IAAIC,cAAAA,UAAU,MAAM,UAAU,EAAE;IACrE,MAAM,YAAYC,cAAAA,WAAW;KAC3B,MAAM,iBAAiB,QAAQ,QAAQ,MAAM;AAC7C,SACEC,cAAAA,SAAS,QAAQ,mBAAmB,WAAW,IAC/C,kBAAkB,EAElB,QAAO,QAAQ,kBAAkB,WAAW,GAAG,eAAe;MAGhE;AACF,QAAIF,cAAAA,UAAU,UAAU,CACtB,OAAM;KACJ,MAAM;KACN,WAAW,MAAM;KACjB;KACD;QAED,OAAM;KACJ,MAAM;KACN,WAAW,MAAM;KAClB;AAEH;cAEAD,cAAAA,gBAAgB,OAAO,WAAW,IAClCC,cAAAA,UAAU,MAAM,SAAS,EACzB;AAEA,UAAM;KACJ,MAAM;KACN,WAAW,MAAM;KACjB,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,WAAW,GAAG,EAAE;KAC1D;AACD;cACSD,cAAAA,gBAAgB,OAAO,OAAO,IAAIC,cAAAA,UAAU,MAAM,KAAK,EAAE;AAClE,UAAM;KAAE,MAAM;KAAQ,MAAM,MAAM;KAAM;AACxC;cACSD,cAAAA,gBAAgB,OAAO,YAAY,EAAE;AAC9C,QAAIC,cAAAA,UAAU,MAAM,UAAU,CAC5B,KAAI,MAAM,UAAU,WAAW,QAAQ,EAAE;KAEvC,MAAM,QAAQ,MAAM,UAAU,MADT,6BAC4B;AACjD,SAAI,MACF,OAAM;MAAE,MAAM;MAAS,MAAM,MAAM;MAAI,UAAU,MAAM;MAAI;SAE3D,OAAM;MAAE,MAAM;MAAS,KAAK,MAAM;MAAW;UAG/C,OAAM;KAAE,MAAM;KAAS,KAAK,MAAM;KAAW;AAGjD;cAEAD,cAAAA,gBAAgB,OAAO,QAAQ,IAC/BC,cAAAA,UAAU,MAAM,SAAS,IACzBA,cAAAA,UAAU,MAAM,KAAK,EACrB;AACA,UAAM;KAAE,MAAM;KAAQ,UAAU,MAAM;KAAU,MAAM,MAAM;KAAM;AAClE;;AAEF,SAAM;IAAE,MAAM;IAAgB,OAAO;IAAO;;;AAGhD,QAAO,MAAM,KAAK,gBAAgB,CAAC;;AAGrC,MAAa,uBAAuD;CAClE,kBAAkB;CAClB,uBAAuB;CACxB"}