ó
    üÞ jÂ  ã                  ól   • S r SSKJr  SSKrSSKrSSKJr  SS jrSS jrSS jr	SS jr
SS	 jrSS
 jrg)z%Message serialization for Google ADK.é    )ÚannotationsN)ÚAnyc                óØ   • U c  / $ [        U S5      (       a  U R                  nO$[        U [        5      (       a  U nO[	        U 5      /$ U Vs/ sH  o"c  M  [	        U5      PM     sn$ s  snf )z8Convert ADK Content/Part objects to serializable format.Úparts)Úhasattrr   Ú
isinstanceÚlistÚ_serialize_part)Úcontentr   Úparts      Úe/var/www/html/gaurav/venv/lib/python3.13/site-packages/langsmith/integrations/google_adk/_messages.pyÚ convert_adk_content_to_langsmithr   
   sb   € à�Øˆ	Üˆw˜× Ñ Ø—‘‰Ü	�GœT×	"Ñ	"Ø‰ä Ó(Ð)Ð)Ù.3ÓH©e dÓ!ŒO˜DÖ!©eÑHÐHùÒHs   ÁA'ÁA'c           	     ó‚  • [        U [        5      (       a  U $ [        U S5      (       aŒ  U R                  (       a{  [	        U R                  SS5      n[	        U R                  SS5      nUbJ  [        U[
        5      (       a%  [        R                  " U5      R                  S5      O
[        U5      nSX2S.$ [        U S	5      (       aA  U R                  (       a0  S
[	        U R                  SS5      [	        U R                  SS5      S.$ [        U S5      (       aK  U R                  (       a:  U R                  nS[	        USS5      [        [	        USS5      =(       d    0 5      S.$ [        U S5      (       aB  U R                  (       a1  U R                  nS[	        USS5      [        [	        USS5      5      S.$ [        U S5      (       a%  U R                  b  S[        U R                  5      S.$ [        U S5      (       a9  U R                  (       a(  U R                  nS[	        USS5      [	        USS5      S.$ [        U S5      (       a9  U R                   (       a(  U R                   nS[	        US S5      [	        US!S5      S".$ [        U S#5      (       a%  U R"                  b  S$[        U R"                  5      S%.$ [        U 5      $ )&zSerialize a single Part.Úinline_dataÚdataNÚ	mime_typezapplication/octet-streamúutf-8Úimage)Útyper   r   Ú	file_dataÚfileÚfile_uri)r   r   r   Úfunction_callÚtool_useÚnameÚunknownÚargs)r   r   ÚinputÚfunction_responseÚtool_resultÚresponse)r   r   r   Útext)r   r"   Úexecutable_codeÚlanguageÚpythonÚcodeÚ )r   r$   r&   Úcode_execution_resultÚoutcomeÚoutput)r   r)   r*   ÚthoughtÚthinking)r   r,   )r   Údictr   r   ÚgetattrÚbytesÚbase64Ú	b64encodeÚdecodeÚstrr   r   r   Ú_safe_serializer"   r#   r(   r+   )r   r   r   ÚencodedÚfcÚfrr&   Úresults           r   r
   r
      si  € ä�$œ×ÑØˆäˆt�]×#Ñ#¨×(8×(8Ü�t×'Ñ'¨°Ó6ˆÜ˜D×,Ñ,¨kÐ;UÓVˆ	ØÑô ˜d¤E×*Ñ*ô × Ò  Ó&×-Ñ-¨gÔ6ä˜“Yð ð
 $¨WÑMÐMäˆt�[×!Ñ! d§n§nàÜ §¡°
¸DÓAÜ  §¡°¸dÓCñ
ð 	
ô ˆt�_×%Ñ%¨$×*<×*<Ø×ÑˆàÜ˜B ¨	Ó2Üœ' " f¨dÓ3×9°rÓ:ñ
ð 	
ô ˆtÐ(×)Ñ)¨d×.D×.DØ×#Ñ#ˆà!Ü˜B ¨	Ó2Ü&¤w¨r°:¸tÓ'DÓEñ
ð 	
ô ˆt�V×Ñ §¡Ñ!6Ø¬¨D¯I©I«Ñ7Ð7äˆtÐ&×'Ñ'¨D×,@×,@Ø×#Ñ#ˆà%Ü  j°(Ó;Ü˜D &¨"Ó-ñ
ð 	
ô ˆtÐ,×-Ñ-°$×2L×2LØ×+Ñ+ˆà+Ü˜v y°)Ó<Ü˜f h°Ó3ñ
ð 	
ô ˆt�Y×Ñ D§L¡LÑ$<Ø"´°D·L±LÓ0AÑBÐBä˜4Ó Ð ó    c                ó  • U b%  [        U [        [        [        [        45      (       a  U $ [        U [
        5      (       a%  [        R                  " U 5      R                  S5      $ [        U [        5      (       a.  U R                  5        VVs0 sH  u  pU[        U5      _M     snn$ [        U [        [        45      (       a  U  Vs/ sH  n[        U5      PM     sn$ [        U S5      (       a   U R                  5       $ [        U S5      (       a9   U R"                  R                  5        VVs0 sH  u  pU[        U5      _M     snn$ [        U 5      $ s  snnf s  snf ! [          a     Nlf = fs  snnf ! [          a     N8f = f)z5Safely serialize an object to JSON-compatible format.r   Ú
model_dumpÚ__dict__)r   r3   ÚintÚfloatÚboolr/   r0   r1   r2   r-   Úitemsr4   r	   Útupler   r;   Ú	Exceptionr<   )ÚobjÚkÚvÚitems       r   r4   r4   W   sJ  € à
�{”j ¤s¬C´¼Ð&=×>Ñ>Øˆ
Ü�#”u×ÑÜ×Ò Ó$×+Ñ+¨GÓ4Ð4Ü�#”t×ÑØ25·)±)´+Ô>±+©$¨!�”? 1Ó%Ò%±+Ò>Ð>Ü�#œœe�}×%Ñ%Ù25Ó6±#¨$” Ö%±#Ñ6Ð6Üˆs�L×!Ñ!ð	Ø—>‘>Ó#Ð#ô ˆs�J×Ñð	Ø69·l±l×6HÑ6HÔ6JÔKÑ6J©d¨a�A” qÓ)Ò)Ñ6JÒKÐKô ˆs‹8€Oùó ?ùâ6øô ó 	Ùð	üó LøÜó 	Ùð	úsB   ÂEÃEÃ0E  ÄE6 Ä/E0ÅE6 Å 
E-Å,E-Å0E6 Å6
FÆFc                óÞ  • / n[        U SS5      nU(       a1  [        USS5      nU(       a  UR                  S[        U5      S.5        [        U SS5      nU(       d  U$ U GH  n[        USS5      nUS	:X  a  S
n[        U5      n/ / / p©nU H‰  nUR	                  S5      nUS:X  a#  UR                  UR	                  SS5      5        M=  US:X  a  U	R                  U5        MV  US:X  a  U
R                  U5        Mo  UR                  [        U5      5        M‹     U	(       a‘  US
:X  a‹  UR                  S
U(       a  SR                  U5      OS[        U	5       VVs/ sHE  u  pÞSU 3SUR	                  SS5      [        R                  " UR	                  S0 5      5      S.S.PMG     snnS.5        GMP  U
(       a  U
 Hv  nUR	                  S5      nUR                  SUR	                  SS5      [        U[        5      (       a  [        R                  " U5      O[        U=(       d    S5      S.5        Mx     GMÖ  UR                  UU(       a  SR                  U5      OSS.5        GM     U$ s  snnf )z7Convert LlmRequest to OpenAI-compatible message format.ÚconfigNÚsystem_instructionÚsystem)Úroler   ÚcontentsrK   ÚuserÚmodelÚ	assistantr   r"   r'   r   r    Ú Úcall_Úfunctionr   r   )r   Ú	arguments)Úidr   rR   )rK   r   Ú
tool_callsr   Útool)rK   r   r   )r.   Úappendr3   r   ÚgetÚjoinÚ	enumerateÚjsonÚdumpsr   r-   )Úllm_requestÚmessagesrH   Úsys_instrL   r   rK   r   Ú
text_partsrU   Útool_resultsr   ÚtÚiÚtcÚtrÚcs                    r   Úconvert_llm_request_to_messagesrg   n   s*  € à%'€Hô �[ (¨DÓ1€FÞÜ˜6Ð#7¸Ó>ˆÞØ�O‰O X¼#¸h»-ÑHÔIä�{ J°Ó5€HÞØˆäˆÜ�w ¨Ó/ˆØ�7‹?ØˆDä0°Ó9ˆØ/1°2°r ˆ
ãˆDØ—‘˜Ó ˆAØ�F‹{Ø×!Ñ! $§(¡(¨6°2Ó"6Ö7Ø�j“Ø×!Ñ! $Ö'Ø�mÓ#Ø×#Ñ# DÖ)à×!Ñ!¤# d£)Ö,ñ ö ˜$ +Ó-Ø�O‰Oà'Þ7A˜sŸx™x¨
Ô3Àtô &/¨zÔ%:ô
#ñ &;™E˜Að %*¨!¨ +Ø$.à(*¯©¨v°rÓ(:Ü-1¯ZªZ¸¿¹¸wÈÓ8KÓ-Lñ)ôñ &;ò
#ñ÷ö" Û"�Ø—F‘F˜9Ó%�Ø—‘à &Ø "§¡ v¨rÓ 2ä-7¸¼4×-@Ñ-@œDŸJšJ qœMÄcÈ!Ï'ÈrÃlñ	öô #ð �O‰Oà Þ7A˜sŸx™x¨
Ô3Àrñ÷ñe ðr €OùóC
#s   ÅAI)c                óf   • [        U SS5      nU(       d  g[        U5      n[        S U 5       5      $ )z-Check if LlmResponse contains function calls.r   NFc              3  óF   #   • U H  oR                  S 5      S:H  v •  M     g7f)r   r   N©rX   ©Ú.0Úps     r   Ú	<genexpr>Ú%has_function_calls.<locals>.<genexpr>¿   s   é € Ð:±E¨q�u‰u�V‹} 
Ö*²Eùó   ‚!©r.   r   Úany)Úllm_responser   r   s      r   Úhas_function_callsrt   ¹   s1   € ä�l I¨tÓ4€GÞØÜ,¨WÓ5€EÜÑ:±EÓ:Ó:Ð:r9   c                ó†   • [        U SS5      =(       d    /  H'  n[        U5      n[        S U 5       5      (       d  M'    g   g)z?Check if LlmRequest contains function responses (tool results).rL   Nc              3  óF   #   • U H  oR                  S 5      S:H  v •  M     g7f)r   r    Nrj   rk   s     r   rn   Ú3has_function_response_in_request.<locals>.<genexpr>Æ   s   é € Ð=±u°!�u‰u�V‹} Ö-²uùrp   TFrq   )r]   r   r   s      r   Ú has_function_response_in_requestrx   Â   sA   € ä˜;¨
°DÓ9×?¸RÒ?ˆÜ0°Ó9ˆÜÑ=±uÓ=×=Ó=Ùñ @ð r9   )r   r   Úreturnúlist[dict[str, Any]])r   r   ry   zdict[str, Any])rC   r   ry   r   )r]   r   ry   rz   )rs   r   ry   r?   )r]   r   ry   r?   )Ú__doc__Ú
__future__r   r0   r[   Útypingr   r   r
   r4   rg   rt   rx   © r9   r   Ú<module>r      s6   ðÙ +å "ã Û Ý ô
Iô=!ô@ô.HôV;õr9   