ó
    ýÞ jP  ã                  ó¾   • S r SSKJr  SSKrSSKJrJr  SSKJrJ	r	  SSK
JrJr  SSK
Jr  Sr S     SS	 j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)a  Converts between AIMessage output formats, governed by `output_version`.

`output_version` is an attribute on ChatOpenAI.

Supported values are `None`, `'v0'`, and `'responses/v1'`.

`'v0'` corresponds to the format as of `ChatOpenAI` v0.3. For the Responses API, it
stores reasoning and tool outputs in `AIMessage.additional_kwargs`:

```python
AIMessage(
    content=[
        {"type": "text", "text": "Hello, world!", "annotations": [{"type": "foo"}]}
    ],
    additional_kwargs={
        "reasoning": {
            "type": "reasoning",
            "id": "rs_123",
            "summary": [{"type": "summary_text", "text": "Reasoning summary"}],
        },
        "tool_outputs": [
            {
                "type": "web_search_call",
                "id": "websearch_123",
                "status": "completed",
            }
        ],
        "refusal": "I cannot assist with that.",
    },
    response_metadata={"id": "resp_123"},
    id="msg_123",
)
```

`'responses/v1'` is only applicable to the Responses API. It retains information
about response item sequencing and accommodates multiple reasoning items by
representing these items in the content sequence:

```python
AIMessage(
    content=[
        {
            "type": "reasoning",
            "summary": [{"type": "summary_text", "text": "Reasoning summary"}],
            "id": "rs_123",
        },
        {
            "type": "text",
            "text": "Hello, world!",
            "annotations": [{"type": "foo"}],
            "id": "msg_123",
        },
        {"type": "refusal", "refusal": "I cannot assist with that."},
        {"type": "web_search_call", "id": "websearch_123", "status": "completed"},
    ],
    response_metadata={"id": "resp_123"},
    id="resp_123",
)
```

There are other, small improvements as well-- e.g., we store message IDs on text
content blocks, rather than on the AIMessage.id, which now stores the response ID.

For backwards compatibility, this module provides functions to convert between the
formats. The functions are used internally by ChatOpenAI.
é    )ÚannotationsN)ÚIterableÚIterator)ÚAnyÚcast)Ú	AIMessageÚis_data_content_block)ÚcontentÚ__openai_function_call_ids__c           	     ó*  • [        U R                  [        5      (       Gaë  / nU R                   GHŠ  n[        U[        5      (       Ga_  UR	                  S5      S:X  aM  UR                  SS5      nU(       a$  UR                  SS5      nUR                  SS5      nX0R                  S'   M|  UR	                  S5      S;   a?  SU R                  ;  a  / U R                  S'   U R                  S   R                  U5        MÐ  UR	                  S5      S:X  av  [        U R                  ;  a  0 U R                  [        '   UR	                  S	5      =n(       a4  UR	                  S5      =n(       a  UU R                  [           U'   GMU  GMX  GM[  UR	                  S5      S
:X  a)  UR	                  S
5      =n(       a  XpR                  S
'   GM™  UR	                  S5      S:X  aN  SU;   a
  US   U l	        UR                  UR                  5        VV	s0 sH  u  p‰US:w  d  M  X‰_M     sn	n5        GMü  [        UR                  5       5      SS1:X  aJ  [        US   [        5      (       a2  US   R                  S5      (       a  UR                  SUS   05        GMe  UR                  U5        GMy  UR                  U5        GM�     X l        [        U R                  [        5      (       a'  U R                  R                  S5      (       a  SU l	        U $  U $ s  sn	nf )z3Mutate an `AIMessage` to the old-style v0.3 format.ÚtypeÚ	reasoningÚindexNÚid)Úweb_search_callÚfile_search_callÚcomputer_callÚcode_interpreter_callÚmcp_callÚmcp_list_toolsÚmcp_approval_requestÚimage_generation_callÚtool_search_callÚtool_search_outputÚapply_patch_callÚapply_patch_call_outputÚtool_outputsÚfunction_callÚcall_idÚrefusalÚtextÚmsg_Úresp_)Ú
isinstancer
   ÚlistÚdictÚgetÚpopÚadditional_kwargsÚappendÚ_FUNCTION_CALL_IDS_MAP_KEYr   ÚitemsÚsetÚkeysÚstrÚ
startswith)
ÚmessageÚhas_reasoningÚnew_contentÚblockÚ_r   Úfunction_call_idr    ÚkÚvs
             Ú^/var/www/html/gaurav/venv/lib/python3.13/site-packages/langchain_openai/chat_models/_compat.pyÚ_convert_to_v03_ai_messager:   Q   s¢  € ô �'—/‘/¤4×(Ò(Ø(*ˆØ—_•_ˆEÜ˜%¤×&Ò&Ø—9‘9˜VÓ$¨Ó3ð Ÿ	™	 '¨4Ó0�AÞ$Ø!ŸI™I d¨DÓ1˜Ø!ŸI™I f¨dÓ3˜Ø=B×-Ñ-¨kÓ:Ø—Y‘Y˜vÓ&ð +ó ð &¨W×-FÑ-FÓFØDF˜×1Ñ1°.ÑAØ×-Ñ-¨nÑ=×DÑDÀUÖKØ—Y‘Y˜vÓ&¨/Ó9ô 2¸×9RÑ9RÓRØPR˜×1Ñ1Ô2LÑMØ#(§9¡9¨YÓ#7Ð7˜Õ7Ø,1¯I©I°d«OÐ;Ð(Õ;ð -ð  ×1Ñ1Ô2LÑMØ#ôò <ò 8ð —i‘i Ó'¨9Ó4Ø$Ÿy™y¨Ó3Ð3�GÕ3ð <C×-Ñ-¨iÔ8Ø—Y‘Y˜vÓ&¨&Ó0à˜u“}Ø%*¨4¡[˜œ
Ø×&Ñ&¸¿¹¼Ô'T¹±°È!ÈtÉ)«¨ª¹Ò'T×Uä˜Ÿ
™
›Ó%¨$°¨Ó8Ü" 5¨¡;´×4Ñ4Ø˜d™×.Ñ.¨v×6Ñ6ð  ×&Ñ&¨°°w±Ð'@×Aà×&Ñ& u×-à×"Ñ" 5×)ñy %ðz &ŒÜ�g—j‘j¤#×&Ñ&¨7¯:©:×+@Ñ+@À×+IÑ+IØˆGŒJð €Nð 	à€Nùó% (Us   ÈLÈLc                ór  • [        U R                  [        5      (       a—  / nU R                   Ht  n[        U[        5      (       aK  UR	                  S5      nUS:X  a  UR                  SUS   S.5        MH  US;   a  MP  UR                  U5        Mc  UR                  U5        Mv     U R                  SU0S9$ U $ )z4Convert a v1 message to the Chat Completions format.r   r!   ©r   r!   )r   Ú	tool_callÚinvalid_tool_callr
   )Úupdate)r$   r
   r%   r&   r'   r*   Ú
model_copy)r1   r3   r4   Ú
block_types       r9   Ú$_convert_from_v1_to_chat_completionsrB   ž   s¨   € ä�'—/‘/¤4×(Ñ(ØˆØ—_”_ˆEÜ˜%¤×&Ñ&Ø"ŸY™Y vÓ.�
Ø Ó'à×&Ñ&°ÀÀfÁÑ'NÖOØÐ#RÓRÙà×&Ñ& uÖ-à×"Ñ" 5Ö)ñ %ð ×!Ñ!¨)°[Ð)AÐ!ÐBÐBà€Nó    c                óæ  • U S   S:X  aÐ  0 nS H  nX ;   d  M
  X   X'   M     SU ;   a]  SU ;   a  U S   US'   SUS'   U S   US'   U R                  S5      =n(       a(  UR                  [        UR                  5       5      5        U$ SUS'   U R                  S5      =n(       a(  UR                  [        UR                  5       5      5        SU ;   a  U S   US	'   U$ U S   S
:X  a  U S   $ [        U 5      $ )zAConvert a v1 `Annotation` to the v0.3 format (for Responses API).r   Úcitation)Ú	end_indexÚstart_indexÚurlÚtitleÚurl_citationÚextrasÚfile_citationÚfilenameÚnon_standard_annotationÚvalue)r'   r?   r&   r,   )Ú
annotationÚnew_annÚfieldÚextra_fieldss       r9   Ú_convert_annotation_from_v1rT   ´   s  € à�&Ñ˜ZÓ'Ø"$ˆÛ1ˆEØÕ"Ø!+Ñ!2�“ñ 2ð �JÓà˜*Ó$Ø#-¨gÑ#6�˜Ñ Ø,ˆG�F‰OØ'¨Ñ.ˆG�E‰Nà)Ÿ~™~¨hÓ7Ð7ˆ|Õ7Ø—‘œt L×$6Ñ$6Ó$8Ó9Ô:ð ˆð .ˆG�F‰Oà)Ÿ~™~¨hÓ7Ð7ˆ|Õ7Ø—‘œt L×$6Ñ$6Ó$8Ó9Ô:à˜*Ó$Ø&0°Ñ&9�˜
Ñ#àˆà�&ÑÐ6Ó6Ø˜'Ñ"Ð"ä�
ÓÐrC   c                ó^   • SU ;   nSU;   nX#:H  =(       a    U(       + =(       d    U S   US   :H  $ )z>Return whether two reasoning fragments share an item identity.r   © )ÚfirstÚsecondÚfirst_has_idÚsecond_has_ids       r9   Ú_same_reasoning_itemr[   ×   s<   € à˜5‘=€LØ˜F‘N€MØÑ(÷ ØÔ×7˜E $™K¨6°$©<Ñ7ðrC   c              #  ó”  #   • Sn[        U 5      nX:  Ga«  X   nUR                  S5      S:w  d  SU;   a  [        U5      v •  US-  nM9  SU;  an  SU;  ah  0 UES/ 0EnSU;   a   UR                  UR	                  S5      5        UR	                  SS5      US'   SU;   a  UR	                  S5      US'   Uv •  US-  nM­   SUR                  SS	5      S
./nUR                  5        VVs0 sH  u  pgUS:w  d  M  Xg_M     nnnSU;   a   UR                  UR	                  S5      5        US-  nX:  aa  X   n	U	R                  S5      S:X  a@  SU	;   a:  [        X95      (       a*  UR                  SU	R                  SS	5      S
.5        US-  nOOX:  a  Ma  [        U5      n
XZS'   U
R	                  SS5      U
S'   U
v •  X:  a  GMª  g g s  snnf 7f)Nr   r   r   Úsummaryé   rK   Úencrypted_contentÚsummary_textÚ r<   )Úlenr'   r&   r?   r(   r,   r[   r*   )ÚblocksÚiÚnr4   Ú
oai_formatr]   r7   r8   ÚcommonÚnext_Úmergeds              r9   Ú_implode_reasoning_blocksrj   à   sà  é € Ø	€AÜˆF‹€Aà
Œ%Ø‘	ˆð �9‰9�VÓ Ó+¨y¸EÓ/AÜ�u“+ÒØ�‰FˆAÙØ Ó%¨)¸5Ó*@à1˜EÐ1 9¨bÑ1ˆJØ˜:Ó%Ø×!Ñ! *§.¡.°Ó":Ô;Ø!+§¡°¸Ó!DˆJ�vÑØ" jÓ0Ø2<·.±.ÐATÓ2U�
Ð.Ñ/ØÒØ�‰FˆAÙàð $¨U¯Y©Y°{ÀBÓ-GÑHð)
ˆð $)§;¡;¤=ÔE¡=™4˜1°A¸Ñ4D“$�!’$¡=ˆÑEØ�vÓØ�M‰M˜&Ÿ*™* XÓ.Ô/à	ˆQ‰ˆØ‹eØ‘IˆEà—	‘	˜&Ó! [Ó0Ø 5Ó(Ü(¨×6Ñ6à—‘Ø+°U·Y±Y¸{ÈBÓ5OÑPôð �Q‘‘àð �eô �f“ˆØ#ˆyÑØŸ™ F¨KÓ8ˆˆv‰ØŠða �%ˆ%ùó4 Fùs%   ‚C%GÃ'GÃ6GÃ<BGÆ-GÇ Gc              #  ó¼	  #   • [        U 5      n U  GH±  nUR                  S5      S:w  a  Uv •  M   [        U 5      nUR                  S5      S:X  Gah  UR                  S5      UR                  S5      :X  GaC  UR                  S5      S:X  a}  SUS   0nSU;   a  US   US	'   UR                  S
5      =n(       a  US:X  a  SUS
'   O?US:X  a  SUS
'   O3UR                  S0 5      R                  S
5      (       a  US   S
   US
'   O SUS'   UR                  S5      S:X  a™  SUS   0nSU;   a  SUS   ;   a  US   S   US'   SU;   a  US   US'   UR                  S
5      =n(       a  US:X  a  SUS
'   O?US:X  a  SUS
'   O3UR                  S0 5      R                  S
5      (       a  US   S
   US
'   O SUS'   GOüUR                  S5      S:X  aÎ  SUS   0nSU;   a  SUS   ;   a  US   S   US'   S H1  nXQ;   a  X   X5'   M  XQR                  S0 5      ;   a  US   U   X5'   M1  M3     SU;   a  US   US'   UR                  S
5      =n(       a  US:X  a  SUS
'   O=US:X  a  SUS
'   O1UR                  S0 5      R                  S
5      (       a  US   S
   US
'   SUS'   GOUR                  S5      S:X  GaE  SUS   0nSU;   a  [        R
                  " US   SS9US'   O#SUR                  S0 5      ;   a  US   S   US'   O UR                  S0 5      R                  S5      =n(       a  XcS'   UR                  S0 5      R                  S 5      =n(       a  XsS '   S!US'   UR                  S0 5      R                  S"5      =n(       a  XƒS"'   UR                  S0 5      R                  S5      =n	(       a  X“S'   SU;   a  US   US'   UR                  S0 5      R                  5        H  u  p«U
S#;  d  M  X³U
'   M     O¾UR                  S5      S$:X  a¨  SUS   0nUR                  S0 5      R                  S 5      =n(       a  XsS '   SU;   a  US   US%'   S$US'   UR                  S0 5      R                  S5      =n	(       a  X“S'   UR                  S0 5      R                  5        H  u  p«U
S&;  d  M  X³U
'   M     O Wv •  GM©  Uv •  Uv •  GM´     g'! [         a    Uv •     g'f = f7f)(aI  Generator that walks through *items* and, whenever it meets the pair.

    {"type": "server_tool_call", "name": "web_search", "id": X, ...}
    {"type": "server_tool_result", "id": X}

merges them into

    {"id": X,
     "output": ...,
     "status": ...,
     "type": "web_search_call"}

keeping every other element untouched.
r   Úserver_tool_callÚserver_tool_resultÚtool_call_idr   ÚnameÚ
web_searchÚargsÚactionÚstatusÚsuccessÚ	completedÚerrorÚfailedrK   r   Úfile_searchÚqueriesÚoutputÚresultsr   Úcode_interpreterÚcode)Úcontainer_idÚoutputsr   Ú
remote_mcp©Ú,Ú:©Ú
separatorsÚ	argumentsÚ	tool_nameÚserver_labelr   Úapproval_request_id)rˆ   r†   r‡   rv   r   Útools)rˆ   rv   N)Úiterr'   ÚnextÚStopIterationÚjsonÚdumpsr,   )r,   ÚcurrentÚnxtÚ	collapsedrs   Úkeyr‡   rˆ   Úapproval_idrv   r7   r8   s               r9   Ú_consolidate_callsr•     sS  é € ô �‹K€EÜˆà�;‰;�vÓÐ"4Ó4ØŠMÙð	Ü�u“+ˆCð �7‰7�6‹?Ð2Ô2°s·w±wØó8
à�[‰[˜Óô8ð �{‰{˜6Ó" lÓ2Ø! 7¨4¡=Ð1�	Ø˜WÓ$ð +2°&©/�I˜hÑ'à ŸW™W XÓ.Ð.�6Õ.Ø Ó*Ø.9˜	 (Ò+Ø 7Ó*Ø.6˜	 (Ñ+øØ—W‘W˜X rÓ*×.Ñ.¨x×8Ñ8Ø*-¨h©-¸Ñ*A�I˜hÒ'àØ$5�	˜&Ñ!à�{‰{˜6Ó" mÓ3Ø! 7¨4¡=Ð1�	Ø˜WÓ$¨°g¸f±oÓ)EØ+2°6©?¸9Ñ+E�I˜iÑ(à˜s“?Ø+.¨x©=�I˜iÑ(Ø ŸW™W XÓ.Ð.�6Õ.Ø Ó*Ø.9˜	 (Ò+Ø 7Ó*Ø.6˜	 (Ñ+øØ—W‘W˜X rÓ*×.Ñ.¨x×8Ñ8Ø*-¨h©-¸Ñ*A�I˜hÒ'àØ$6�	˜&Ó!à—‘˜VÓ$Ð(:Ó:Ø! 7¨4¡=Ð1�	Ø˜WÓ$¨°7¸6±?Ó)BØ(/°©¸Ñ(?�I˜fÑ%Û,�CØ“~Ø)0©˜	›Ø§¡¨H°bÓ 9Ó9Ø)0°Ñ):¸3Ñ)?˜	›áñ -ð ˜s“?Ø+.¨x©=�I˜iÑ(Ø ŸW™W XÓ.Ð.�6Õ.Ø Ó*Ø.9˜	 (Ò+Ø 7Ó*Ø.6˜	 (Ñ+øØ—W‘W˜X rÓ*×.Ñ.¨x×8Ñ8Ø*-¨h©-¸Ñ*A�I˜hÑ'Ø$;�	˜&Ó!à—‘˜VÓ$¨Ô4Ø! 7¨4¡=Ð1�	Ø˜WÓ$Ü-1¯ZªZØ ™°Jñ.�I˜kÒ*ð ! G§K¡K°¸"Ó$=Ó=Ø-4°XÑ->¸{Ñ-K�I˜kÒ*àà '§¡¨H°bÓ 9× =Ñ =¸kÓ JÐJ�9ÕJØ(1˜fÑ%Ø#*§;¡;¨x¸Ó#<×#@Ñ#@ÀÓ#PÐP�<ÕPØ0<˜nÑ-Ø$.�	˜&Ñ!à")§+¡+¨h¸Ó";×"?Ñ"?Ð@UÓ"VÐV�;ÕVØ7BÐ3Ñ4ØŸG™G H¨bÓ1×5Ñ5°gÓ>Ð>�5Õ>Ø).˜gÑ&Ø˜s“?Ø*-¨h©-�I˜hÑ'Ø#ŸK™K¨°"Ó5×;Ñ;Ö=‘D�AØÐ SÕSØ'( !›ò >ð —‘˜VÓ$Ð(8Ó8Ø! 7¨4¡=Ð1�	Ø#*§;¡;¨x¸Ó#<×#@Ñ#@ÀÓ#PÐP�<ÕPØ0<˜nÑ-Ø˜s“?Ø),¨X©�I˜gÑ&Ø$4�	˜&Ñ!ØŸG™G H¨bÓ1×5Ñ5°gÓ>Ð>�5Õ>Ø).˜gÑ&Ø#ŸK™K¨°"Ó5×;Ñ;Ö=‘D�AØÐ 9Õ9Ø'( !›ò >ð à�Oð ŠMØ�Iòu øô ó 	ØŠMÚð	üs5   ‚-S°S»N,SÏ+B9SÒ(SÓSÓSÓSÓSc                óþ  ^• / nU  GHÂ  nSU;  a  M  US   S:X  aE  SU;   a?  [        U5      mUS    Vs/ sH  n[        U5      PM     snTS'   UR                  T5        MZ  US   S:X  aõ  SUS   S.mSU;   a  S	US   ;   a  US   S	   TS'   S
U;   a  US
   TS
'   SU;   a  SUS   ;   a  US   S   TS'   [        U4S jS 5       5      (       aY  U Vs/ sH  oUS   US   :X  d  M  UPM     nnU(       a4  US   nS
T;  a  US
   TS
'   ST;  a  [        R
                  " US   SS9TS'   SU;   a  S H  nXƒS   ;   d  M  US   U   TU'   M     UR                  T5        GMX  US   S:X  a�  UR                  S
5      S:X  az  UR                  S0 5      n	SUS   0mU	R                  S5      n
U
(       a  U
TS'   STS'   SU;   a  US   TS'   U	R                  S5      nU(       a  UTS'   UR                  T5        GMð  US   S:X  aÓ  UR                  S0 5      R                  S
5      S:X  a®  UR                  S0 5      n	SUR                  SS5      0mUR                  S5      n
U
S:X  a  STS'   OU
S:X  a  STS'   OU
(       a  U
TS'   STS'   S TS'   UR                  S!0 5      n[        U[         5      (       a  S"U;   a  US"   TS"'   UR                  T5        GMÌ  [        [        [         U5      5      (       a¡  US   S#:X  a˜  S$U;   a’  [        UR                  S5      [        5      (       an  US   R                  S%5      (       aU  S&US$   S'.mS( H3  nXƒ;   a	  X8   TU'   M  XƒR                  S0 5      ;   d  M(  US   U   TU'   M5     UR                  T5        GM‹  US   S):X  a  S*U;   a  UR                  US*   5        GM±  UR                  U5        GMÅ     [        [        U5      5      n[        [        U5      5      $ s  snf s  snf )+Nr   r!   r   r=   r   r   )r   r   rK   Úitem_idro   r†   c              3  ó*   >#   • U H	  oT;  v •  M     g 7f)NrV   )Ú.0r“   Ú	new_blocks     €r9   Ú	<genexpr>Ú0_convert_from_v1_to_responses.<locals>.<genexpr>º  s   øé € ÐIÑ3H¨C˜iÖ'Ò3Hùs   ƒ)ro   r†   r   rq   r�   r„   )rs   Ú	namespaceÚasyncrl   Útool_searchrs   r   Ú	executionrm   rn   ra   rt   ru   rv   rw   r   Úserverrz   rŠ   ÚimageÚbase64Úig_r   )r   Úresult)r   rs   Únon_standardrO   )r&   rT   r*   ÚanyrŽ   r�   r'   r$   r	   r   r/   r0   r%   rj   r•   )r
   Ú
tool_callsr3   r4   ÚaÚcallÚmatching_tool_callsr=   Ú	extra_keyrK   rs   r    rz   rš   s                @r9   Ú_convert_from_v1_to_responsesr­   ¤  sN  ø€ ð €KÜˆØ˜ÓÙØ�‰=˜FÓ" }¸Ó'=ä˜U›ˆIà8=¸mÒ8Ló(Ù8L°1Ô+¨AÖ.Ñ8Lñ(ˆI�mÑ$ð ×Ñ˜yÖ)Ø�6‰]˜kÓ)Ø!0¸UÀ4¹[ÑIˆIØ˜5Ó  Y°%¸±/Ó%AØ"'¨¡/°)Ñ"<�	˜$‘Ø˜‹Ø$)¨&¡M�	˜&Ñ!Ø˜5Ó  [°E¸(±OÓ%CØ).¨x©¸Ñ)E�	˜+Ñ&ÜÔIÑ3HÓI×IÑIá%/ó'Ù%/˜T¸±:ÀÀtÁÑ3L—D¡Zð $ð 'ö 'Ø 3°AÑ 6�IØ YÓ.Ø,5°fÑ,=˜	 &Ñ)Ø"¨)Ó3Ü15·²Ø% fÑ-¸*ñ2˜	 +Ñ.ð ˜5Ó Û!A�IØ ¨(¡OÕ3Ø/4°X©¸yÑ/I˜	 )Ó,ñ "Bð ×Ñ˜y×)à�6‰]Ð0Ó0°U·Y±Y¸vÓ5FÈ-Ó5WØ—Y‘Y˜x¨Ó,ˆFØ˜u T™{Ð+ˆIØ—Z‘Z Ó)ˆFÞØ&,�	˜(Ñ#Ø 2ˆI�fÑØ˜‹Ø).¨v©�	˜+Ñ&ØŸ
™
 ;Ó/ˆIÞØ)2�	˜+Ñ&Ø×Ñ˜y×)ð �&‰MÐ1Ó1Ø—	‘	˜( BÓ'×+Ñ+¨FÓ3°}ÓDà—Y‘Y˜x¨Ó,ˆFØ˜uŸy™y¨¸Ó<Ð=ˆIØ—Y‘Y˜xÓ(ˆFØ˜Ó"Ø&1�	˜(Ò#Ø˜7Ó"Ø&.�	˜(Ò#ÞØ&,�	˜(Ñ#Ø 4ˆI�fÑØ%-ˆI�kÑ"Ø Ÿ9™9 X¨rÓ2ˆFÜ˜&¤$×'Ñ'¨G°vÓ,=Ø%+¨G¡_�	˜'Ñ"Ø×Ñ˜y×)ô "¤$¤t¨UÓ"3×4Ñ4Ø�f‘ Ó(Ø˜EÓ!Ü˜5Ÿ9™9 T›?¬C×0Ñ0Ø�d‘×&Ñ& u×-Ñ-à!8ÀEÈ(ÁOÑTˆIÛ-�	ØÓ%Ø+0Ñ+;�I˜iÓ(Ø§)¡)¨H°bÓ"9Õ9Ø+0°©?¸9Ñ+E�I˜iÓ(ñ	 .ð
 ×Ñ˜y×)Ø�6‰]˜nÓ,°¸EÓ1AØ×Ñ˜u W™~×.à×Ñ˜u×%ño ôr Ô0°Ó=Ó>€KÜÔ" ;Ó/Ó0Ð0ùòi(ùò's   ³O5ÃO:Ã#O:)F)r1   r   r2   ÚboolÚreturnr   )r1   r   r¯   r   )rP   ztypes.Annotationr¯   údict[str, Any])rW   r°   rX   r°   r¯   r®   )rc   úlist[dict[str, Any]]r¯   úIterable[dict[str, Any]])r,   r²   r¯   zIterator[dict[str, Any]])r
   zlist[types.ContentBlock]r¨   zlist[types.ToolCall]r¯   r±   )Ú__doc__Ú
__future__r   rŽ   Úcollections.abcr   r   Útypingr   r   Úlangchain_core.messagesr   r	   r
   Útypesr+   r:   rB   rT   r[   rj   r•   r­   rV   rC   r9   Ú<module>r¹      s‹   ðñAõF #ã ß .ß ç DÝ 4à;Ð ð
 /4ðIØðIØ'+ðIàõIôZô, ôFô4ônJðZ^1Ø%ð^1Ø3Gð^1àõ^1rC   