Ë
    Fü´j™  ã                  óØ  — d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZmZ ddlmZ ddlm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3 d"d„Z4d#d„Z5d$d„Z6 G d„ d«      Z7 e	de7¬«      Z8 G d„ dee8   «      Z9 G d„ d«      Z: e	de:¬«      Z; G d„ dee;   «      Z<	 	 	 	 	 	 d%d „Z=	 	 	 	 	 	 d&d!„Z>y)'é    )ÚannotationsN)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGenericÚTypeVarÚCallableÚIterableÚIteratorÚcast)Ú	AwaitableÚAsyncIterableÚAsyncIteratorÚassert_neveré   )Úaccumulate_deltaé   )Úconsume_sync_iteratorÚconsume_async_iterator)Ú
model_dump)Úrequest_exceptionsÚtimeout_exceptions)Úconstruct_type)ÚStreamÚAsyncStream)ÚAssistantStreamEvent)ÚAPIConnectionError)ÚRunÚTextÚMessageÚ	ImageFileÚ	TextDeltaÚMessageDeltaÚMessageContentÚMessageContentDelta)ÚRunStepÚToolCallÚRunStepDeltaÚToolCallDeltac                 ó<   — g t        «       ¢t        j                  ‘­S ©N)r   ÚasyncioÚTimeoutError© ó    ú^/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/lib/streaming/_assistants.pyÚ_timeout_exceptionsr1      s   € Ø8ÔÓ!Ð8¤7×#7Ñ#7Ñ8Ð8r/   c              #  ó    K  — 	 | E d {  –—†  y 7 Œ# t         $ r1}t        |j                  t        «       «      r|j                  d ‚‚ d }~ww xY w­wr+   ©r   Ú
isinstanceÚ	__cause__r   )ÚstreamÚexcs     r0   Ú_iter_eventsr8   !   sD   è ø€ ðØ×ÒùÜò Ü�c—m‘mÔ%7Ó%9Ô:Ø—-‘- TÐ)Øûðüs0   ‚A„ ‰Š ŽA� ‘	Aš,AÁAÁAc               ó°   K  — 	 | 2 3 d {  –—† }|­–— Œ7 Œ
6 y # t         $ r1}t        |j                  t        «       «      r|j                  d ‚‚ d }~ww xY w­wr+   r3   )r6   Úeventr7   s      r0   Ú_aiter_eventsr;   +   sW   è ø€ ðØ!÷ 	ð 	�%ØŒKð	ø™6øäò Ü�c—m‘mÔ%7Ó%9Ô:Ø—-‘- TÐ)Øûðüs<   ‚A„ †Š‹Ž •— ˜A™	A¢,AÁAÁAc                  óJ  — e Zd ZU ded<   	 d%d„Zd&d„Zd'd„Zd(d„Zed)d„«       Z	ed*d„«       Z
ed+d	„«       Zed,d
„«       Zd%d„Zd%d„Zd-d„Zd.d„Zd/d„Zd0d„Zd%d„Zd1d„Zd2d„Zd3d„Zd2d„Zd4d„Zd5d„Zd4d„Zd6d„Zd%d„Zd7d„Zd8d„Zd7d„Zd9d„Z d:d„Z!d9d „Z"d;d!„Z#d1d"„Z$d(d#„Z%y$)<ÚAssistantEventHandlerzIterable[str]Útext_deltasc                óò   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        i | _        i | _        d | _	        | j                  «       | _        | j                  «       | _        d | _        y r+   )Ú_current_eventÚ_current_message_content_indexÚ_current_message_contentÚ_current_tool_call_indexÚ_current_tool_callÚ+_AssistantEventHandler__current_run_step_idÚ#_AssistantEventHandler__current_runÚ*_AssistantEventHandler__run_step_snapshotsÚ)_AssistantEventHandler__message_snapshotsÚ0_AssistantEventHandler__current_message_snapshotÚ__text_deltas__r>   Ú
__stream__Ú	_iteratorÚ_AssistantEventHandler__stream©Úselfs    r0   Ú__init__zAssistantEventHandler.__init__C   sx   € Ø;?ˆÔØ:>ˆÔ+Ø?CˆÔ%Ø48ˆÔ%Ø37ˆÔØ15ˆÔ"Ø)-ˆÔØ8:ˆÔ!Ø79ˆÔ Ø:>ˆÔ'à×/Ñ/Ó1ˆÔØŸ™Ó*ˆŒØ=Aˆ�r/   c                ó@   — | j                   rt        d«      ‚|| _         y ©NzyA single event handler cannot be shared between multiple streams; You will need to construct a new event handler instance)rM   ÚRuntimeError©rO   r6   s     r0   Ú_initzAssistantEventHandler._initS   ó%   € Ø�=Š=Üð Lóð ð ˆ�r/   c                ó6   — | j                   j                  «       S r+   )rL   Ú__next__rN   s    r0   rX   zAssistantEventHandler.__next__[   s   € Ø�~‰~×&Ñ&Ó(Ð(r/   c              #  ó6   K  — | j                   D ]  }|–— Œ y ­wr+   ©rL   ©rO   Úitems     r0   Ú__iter__zAssistantEventHandler.__iter__^   s   è ø€ Ø—N‘Nò 	ˆDØ‹Jñ	ùs   ‚c                ó   — | j                   S r+   ©r@   rN   s    r0   Úcurrent_eventz#AssistantEventHandler.current_eventb   ó   € à×"Ñ"Ð"r/   c                ó   — | j                   S r+   )rF   rN   s    r0   Úcurrent_runz!AssistantEventHandler.current_runf   ó   € à×!Ñ!Ð!r/   c                óN   — | j                   sy | j                  | j                      S r+   )rE   rG   rN   s    r0   Úcurrent_run_step_snapshotz/AssistantEventHandler.current_run_step_snapshotj   ó%   € à×)Ò)Øà×(Ñ(¨×)CÑ)CÑDÐDr/   c                ó   — | j                   S r+   )rI   rN   s    r0   Úcurrent_message_snapshotz.AssistantEventHandler.current_message_snapshotq   ó   € à×.Ñ.Ð.r/   c                óR   — | j                   r| j                   j                  «        yy©z~
        Close the response and release the connection.

        Automatically called when the context manager exits.
        N)rM   ÚcloserN   s    r0   rm   zAssistantEventHandler.closeu   s    € ð �=Š=Ø�M‰M×ÑÕ!ð r/   c                ó   — t        | «       y©z(Waits until the stream has been consumedN)r   rN   s    r0   Ú
until_donez AssistantEventHandler.until_done~   s
   € ä˜dÕ#r/   c                óh   — | j                  «        | j                  st        d«      ‚| j                  S )úBWait for the stream to finish and returns the completed Run objectúNo final run object found)rp   rF   rS   rN   s    r0   Úget_final_runz#AssistantEventHandler.get_final_run‚   s-   € à�‰Ôà×!Ò!ÜÐ:Ó;Ð;à×!Ñ!Ð!r/   c                óª   — | j                  «        | j                  st        d«      ‚| j                  j                  «       D �cg c]  }|‘Œ c}S c c}w )úEWait for the stream to finish and returns the steps taken in this runúNo run steps found)rp   rG   rS   Úvalues©rO   Ústeps     r0   Úget_final_run_stepsz)AssistantEventHandler.get_final_run_steps‹   sD   € à�‰Ôà×(Ò(ÜÐ3Ó4Ð4à!%×!:Ñ!:×!AÑ!AÓ!CÖD˜’ÒDÐDùÒDó   Á	Ac                óª   — | j                  «        | j                  st        d«      ‚| j                  j                  «       D �cg c]  }|‘Œ c}S c c}w )úJWait for the stream to finish and returns the messages emitted in this runúNo messages found)rp   rH   rS   rx   ©rO   Úmessages     r0   Úget_final_messagesz(AssistantEventHandler.get_final_messages”   sD   € à�‰Ôà×'Ò'ÜÐ2Ó3Ð3à'+×'?Ñ'?×'FÑ'FÓ'HÖI˜G’ÒIÐIùÒIr|   c              #  ó$  K  — | D ]‡  }|j                   dk7  rŒ|j                  j                  j                  xs g D ]N  }|j                  dk(  sŒ|j
                  sŒ |j
                  j                  sŒ7|j
                  j                  –— ŒP Œ‰ y ­w©Núthread.message.deltaÚtext©r:   ÚdataÚdeltaÚcontentÚtyper†   Úvalue©rO   r:   Úcontent_deltas      r0   rJ   z%AssistantEventHandler.__text_deltas__�   s   è ø€ Øò 	3ˆEØ�{‰{Ð4Ò4Øà!&§¡×!1Ñ!1×!9Ñ!9Ò!?¸Rò 3�Ø ×%Ñ%¨Ó/°M×4FÓ4FÈ=×K]ÑK]×KcÓKcØ'×,Ñ,×2Ñ2Ó2ñ3ñ		3ùs   ‚ABÁBÁBÁ3Bc                 ó   — y©zšFires when the stream has finished.

        This happens if the stream is read to completion
        or if an exception occurs during iteration.
        Nr.   rN   s    r0   Úon_endzAssistantEventHandler.on_end¨   ó   � r/   c                 ó   — y©z2Callback that is fired for every Server-Sent-EventNr.   ©rO   r:   s     r0   Úon_eventzAssistantEventHandler.on_event¯   r’   r/   c                 ó   — y©z1Callback that is fired when a run step is createdNr.   ©rO   Úrun_steps     r0   Úon_run_step_createdz)AssistantEventHandler.on_run_step_created²   r’   r/   c                 ó   — y©aX  Callback that is fired whenever a run step delta is returned from the API

        The first argument is just the delta as sent by the API and the second argument
        is the accumulated snapshot of the run step. For example, a tool calls event may
        look like this:

        # delta
        tool_calls=[
            RunStepDeltaToolCallsCodeInterpreter(
                index=0,
                type='code_interpreter',
                id=None,
                code_interpreter=CodeInterpreter(input=' sympy', outputs=None)
            )
        ]
        # snapshot
        tool_calls=[
            CodeToolCall(
                id='call_wKayJlcYV12NiadiZuJXxcfx',
                code_interpreter=CodeInterpreter(input='from sympy', outputs=[]),
                type='code_interpreter',
                index=0
            )
        ],
        Nr.   ©rO   r‰   Úsnapshots      r0   Úon_run_step_deltaz'AssistantEventHandler.on_run_step_deltaµ   r’   r/   c                 ó   — y©z3Callback that is fired when a run step is completedNr.   r™   s     r0   Úon_run_step_donez&AssistantEventHandler.on_run_step_doneÐ   r’   r/   c                 ó   — y©z2Callback that is fired when a tool call is createdNr.   ©rO   Ú	tool_calls     r0   Úon_tool_call_createdz*AssistantEventHandler.on_tool_call_createdÓ   r’   r/   c                 ó   — y©z<Callback that is fired when a tool call delta is encounteredNr.   rž   s      r0   Úon_tool_call_deltaz(AssistantEventHandler.on_tool_call_deltaÖ   r’   r/   c                 ó   — yrª   r.   r¦   s     r0   Úon_tool_call_donez'AssistantEventHandler.on_tool_call_doneÙ   r’   r/   c                 ó   — y©z4Fired whenever an exception happens during streamingNr.   ©rO   Ú	exceptions     r0   Úon_exceptionz"AssistantEventHandler.on_exceptionÜ   r’   r/   c                 ó   — y©zFires if the request times outNr.   rN   s    r0   Ú
on_timeoutz AssistantEventHandler.on_timeoutß   r’   r/   c                 ó   — y©z0Callback that is fired when a message is createdNr.   r€   s     r0   Úon_message_createdz(AssistantEventHandler.on_message_createdâ   r’   r/   c                 ó   — y©ax  Callback that is fired whenever a message delta is returned from the API

        The first argument is just the delta as sent by the API and the second argument
        is the accumulated snapshot of the message. For example, a text content event may
        look like this:

        # delta
        MessageDeltaText(
            index=0,
            type='text',
            text=Text(
                value=' Jane'
            ),
        )
        # snapshot
        MessageContentText(
            index=0,
            type='text',
            text=Text(
                value='Certainly, Jane'
            ),
        )
        Nr.   rž   s      r0   Úon_message_deltaz&AssistantEventHandler.on_message_deltaå   r’   r/   c                 ó   — y©z2Callback that is fired when a message is completedNr.   r€   s     r0   Úon_message_donez%AssistantEventHandler.on_message_doneþ   r’   r/   c                 ó   — y©z;Callback that is fired when a text content block is createdNr.   ©rO   r†   s     r0   Úon_text_createdz%AssistantEventHandler.on_text_created  r’   r/   c                 ó   — y)aŠ  Callback that is fired whenever a text content delta is returned
        by the API.

        The first argument is just the delta as sent by the API and the second argument
        is the accumulated snapshot of the text. For example:

        on_text_delta(TextDelta(value="The"), Text(value="The")),
        on_text_delta(TextDelta(value=" solution"), Text(value="The solution")),
        on_text_delta(TextDelta(value=" to"), Text(value="The solution to")),
        on_text_delta(TextDelta(value=" the"), Text(value="The solution to the")),
        on_text_delta(TextDelta(value=" equation"), Text(value="The solution to the equation")),
        Nr.   rž   s      r0   Úon_text_deltaz#AssistantEventHandler.on_text_delta  r’   r/   c                 ó   — y©z<Callback that is fired when a text content block is finishedNr.   rÁ   s     r0   Úon_text_donez"AssistantEventHandler.on_text_done  r’   r/   c                 ó   — y©z;Callback that is fired when an image file block is finishedNr.   ©rO   Ú
image_files     r0   Úon_image_file_donez(AssistantEventHandler.on_image_file_done  r’   r/   c                ó|  — || _         | j                  |«       t        || j                  ¬«      \  | _        }| j                  �-| j                  | j                  | j                  j
                  <   t        || j                  ¬«       |D ]^  }| j                  €J ‚| j                  j                  |j                     }|j                  dk(  sŒD| j                  |j                  «       Œ` |j                  dk(  sK|j                  dk(  s<|j                  dk(  s-|j                  dk(  s|j                  dk(  s|j                  d	k(  rA|j                  | _        | j                   �rÓ| j#                  | j                   «       d | _         y |j                  d
k(  s-|j                  dk(  s|j                  dk(  s|j                  dk(  r|j                  | _        d | _         y |j                  dk(  r#| j%                  |j                  «       d | _         y |j                  dk(  �rÎ| j                  }|€J ‚|j                  j&                  }|j                  ��m|j                  D �]]  }|j                  dk(  r\|j                  rP|j                  |j                     }|j                  dk(  sJ ‚| j)                  |j                  |j                  «       |j                  | j*                  k7  r¸| j,                  �}| j,                  j                  dk(  r&| j/                  | j,                  j                  «       n>| j,                  j                  dk(  r%| j1                  | j,                  j2                  «       |j                  | _        |j                  |j                     | _        |j                  |j                     | _        �Œ` | j5                  |j                  j&                  |«       d | _         y |j                  dk(  s|j                  dk(  rå|j                  | _        |j                  | j                  |j                  j
                  <   | j*                  �x|j                  j                  | j*                     }|j                  dk(  r| j/                  |j                  «       n*|j                  dk(  r| j1                  |j2                  «       | j7                  |j                  «       d | _         y |j                  dk(  r>|j                  j
                  | _        | j;                  |j                  «       d | _         y |j                  dk(  r#|j                  j
                  | _        d | _         y |j                  dk(  �rå| j                  |j                  j
                     }	|j                  j&                  }
|
j<                  �rq|
j<                  j                  dk(  �rW|
j<                  j>                  ��@|	j<                  j                  dk(  sJ ‚|
j<                  j>                  D �]  }|j                  | j@                  k(  r3| jC                  ||	j<                  j>                  |j                     «       |j                  | j@                  k7  r{| j                   �| j#                  | j                   «       |j                  | _         |	j<                  j>                  |j                     | _        | jE                  | j                   «       |	j<                  j>                  |j                     | _        �Œ | jG                  |j                  j&                  |	«       d | _         y |j                  dk(  s-|j                  dk(  s|j                  dk(  s|j                  dk(  rQ| j                   r| j#                  | j                   «       | jI                  |j                  «       d | _        d | _         y |j                  dk(  s|j                  dk(  s|j                  dk(  r		 d | _         y tJ        rtM        |«       d | _         y ©N)r:   ri   )r:   Úrun_step_snapshotsr†   zthread.run.completedzthread.run.cancelledzthread.run.expiredzthread.run.failedzthread.run.requires_actionzthread.run.incompletezthread.run.createdzthread.run.in_progresszthread.run.cancellingzthread.run.queuedúthread.message.createdr…   rË   zthread.message.completedzthread.message.incompleteúthread.run.step.createdzthread.run.step.in_progressúthread.run.step.deltaÚ
tool_callszthread.run.step.completedzthread.run.step.cancelledzthread.run.step.expiredzthread.run.step.failedzthread.createdzthread.message.in_progressÚerror)'r@   r–   Úaccumulate_eventrI   rH   ÚidÚaccumulate_run_steprG   rŠ   Úindexr‹   rÂ   r†   r:   rˆ   rF   rD   r­   r¸   r‰   rÄ   rA   rB   rÇ   rÌ   rË   r»   r¾   rE   r›   Ústep_detailsrÓ   rC   r«   r¨   r    r£   r   r   ©rO   r:   Únew_contentrŽ   ÚblockrŸ   Úmessage_deltaÚsnapshot_contentrŠ   Ústep_snapshotÚrun_step_deltaÚtool_call_deltas               r0   Ú_emit_sse_eventz%AssistantEventHandler._emit_sse_event  s  € Ø#ˆÔØ�‰�eÔä7GØØ%)×%DÑ%Dô8
Ñ4ˆÔ'¨ð ×*Ñ*Ð6ØKO×KjÑKjˆD×$Ñ$ T×%DÑ%D×%GÑ%GÑHäØØ#×8Ñ8õ	
ð
 )ò 	1ˆMØ×2Ñ2Ð>Ð>Ð>à×3Ñ3×;Ñ;¸M×<OÑ<OÑPˆEØ�z‰z˜VÓ#Ø×$Ñ$ U§Z¡ZÕ0ð	1ð �K‰KÐ1Ò1Ø�{‰{Ð4Ò4Ø�{‰{Ð2Ò2Ø�{‰{Ð1Ò1Ø�{‰{Ð:Ò:Ø�{‰{Ð5Ò5à!&§¡ˆDÔØ×&Ó&Ø×&Ñ& t×'>Ñ'>Ô?ð\ #ˆÕðY �K‰KÐ/Ò/Ø�{‰{Ð6Ò6Ø�{‰{Ð5Ò5Ø�{‰{Ð1Ò1à!&§¡ˆDÔðN #ˆÕðM �[‰[Ð4Ò4Ø×#Ñ# E§J¡JÔ/ðJ #ˆÕðI �[‰[Ð2Ó2Ø×6Ñ6ˆHØÐ'Ð'Ð'à!ŸJ™J×,Ñ,ˆMØ×$Ñ$Ñ0Ø%2×%:Ñ%:ó Z�MØ$×)Ñ)¨VÒ3¸×8JÒ8JØ+3×+;Ñ+;¸M×<OÑ<OÑ+PÐ(Ø/×4Ñ4¸Ò>Ð>Ð>Ø×*Ñ*¨=×+=Ñ+=Ð?O×?TÑ?TÔUð
 %×*Ñ*¨d×.QÑ.QÒQØ×8Ñ8ÐDØ#×<Ñ<×AÑAÀVÒKØ $× 1Ñ 1°$×2OÑ2O×2TÑ2TÕ UØ!%×!>Ñ!>×!CÑ!CÀ|Ò!SØ $× 7Ñ 7¸×8UÑ8U×8`Ñ8`Ô aà>K×>QÑ>Q˜Ô;Ø8@×8HÑ8HÈ×I\ÑI\Ñ8]˜Ô5ð 5=×4DÑ4DÀ]×EXÑEXÑ4Y�DÖ1ð)Zð, ×!Ñ! %§*¡*×"2Ñ"2°HÔ=ðP #ˆÕðO �[‰[Ð6Ò6¸%¿+¹+ÐIdÒ:dØ.3¯j©jˆDÔ+Ø6;·j±jˆD×$Ñ$ U§Z¡Z§]¡]Ñ3à×2Ñ2Ð>ØŸ*™*×,Ñ,¨T×-PÑ-PÑQ�Ø—<‘< 6Ò)Ø×%Ñ% g§l¡lÕ3Ø—\‘\ \Ò1Ø×+Ñ+¨G×,>Ñ,>Ô?à× Ñ  §¡Ô,ðx #ˆÕðw �[‰[Ð5Ò5Ø).¯©¯©ˆDÔ&Ø×$Ñ$ U§Z¡ZÔ0ðr #ˆÕðq �[‰[Ð9Ò9Ø).¯©¯©ˆDÔ&ðn #ˆÕðm �[‰[Ð3Ó3Ø ×5Ñ5°e·j±j·m±mÑDˆMà"ŸZ™Z×-Ñ-ˆNà×+Ó+Ø"×/Ñ/×4Ñ4¸ÓDØ"×/Ñ/×:Ñ:ÑFà$×1Ñ1×6Ñ6¸,ÒFÐFÐFØ'5×'BÑ'B×'MÑ'Mó k�OØ&×,Ñ,°×0MÑ0MÒMØ×/Ñ/Ø+Ø)×6Ñ6×AÑAÀ/×BWÑBWÑXôð '×,Ñ,°×0MÑ0MÒMØ×2Ñ2Ð>Ø ×2Ñ2°4×3JÑ3JÔKà8G×8MÑ8M˜Ô5Ø2?×2LÑ2L×2WÑ2WÐXg×XmÑXmÑ2n˜Ô/Ø×1Ñ1°$×2IÑ2IÔJð /<×.HÑ.H×.SÑ.SÐTc×TiÑTiÑ.j�DÖ+ð'kð* ×"Ñ"Ø—
‘
× Ñ Øôð. #ˆÕð% �K‰KÐ6Ò6Ø�{‰{Ð9Ò9Ø�{‰{Ð7Ò7Ø�{‰{Ð6Ò6à×&Ò&Ø×&Ñ& t×'>Ñ'>Ô?à×!Ñ! %§*¡*Ô-Ø)-ˆDÔ&ð #ˆÕð �[‰[Ð,Ò,°·±Ð?[Ò0[Ð_d×_jÑ_jÐnuÒ_uàð #ˆÕõ Ü˜UÔ#à"ˆÕr/   c              #  ó€  K  — | j                   }|st        d«      ‚	 t        |«      D ]  }| j                  |«       |–— Œ 	 | j                  «        y # t	        «       $ r'}| j                  «        | j                  |«       ‚ d }~wt        $ r}| j                  |«       ‚ d }~ww xY w# | j                  «        w xY w­w©NzStream has not been started yet)	rM   rS   r8   râ   r1   rµ   r²   Ú	Exceptionr‘   ©rO   r6   r:   r7   s       r0   rK   z AssistantEventHandler.__stream__©  sª   è ø€ Ø—‘ˆÙÜÐ@ÓAÐAð	Ü% fÓ-ò �Ø×$Ñ$ UÔ+à“ñð �K‰K�Møô #Ó$ò 	Ø�O‰OÔØ×Ñ˜cÔ"ØûÜò 	Ø×Ñ˜cÔ"Øûð	ûð �K‰K�Müs@   ‚B>�%A ÁB>ÁB&Á!"BÂB&ÂB!Â!B&Â&B) Â)B;Â;B>N©ÚreturnÚNone)r6   úStream[AssistantStreamEvent]rè   ré   ©rè   r   )rè   úIterator[AssistantStreamEvent]©rè   zAssistantStreamEvent | None©rè   z
Run | None©rè   zRunStep | None©rè   úMessage | None©rè   r   ©rè   zlist[RunStep]©rè   zlist[Message])rè   zIterator[str]©r:   r   rè   ré   ©rš   r&   rè   ré   ©r‰   r(   rŸ   r&   rè   ré   ©r§   r'   rè   ré   ©r‰   r)   rŸ   r'   rè   ré   ©r±   rå   rè   ré   ©r�   r    rè   ré   ©r‰   r#   rŸ   r    rè   ré   ©r†   r   rè   ré   ©r‰   r"   rŸ   r   rè   ré   ©rË   r!   rè   ré   )&Ú__name__Ú
__module__Ú__qualname__Ú__annotations__rP   rU   rX   r]   Úpropertyr`   rc   rf   ri   rm   rp   rt   r{   r‚   rJ   r‘   r–   r›   r    r£   r¨   r«   r­   r²   rµ   r¸   r»   r¾   rÂ   rÄ   rÇ   rÌ   râ   rK   r.   r/   r0   r=   r=   5   s   … ØÓð
óBó ó)óð ò#ó ð#ð ò"ó ð"ð òEó ðEð ò/ó ð/ó"ó$ó"óEóJó3óóAó@óó6BóAóKóKóCó-ó?óó2AóJóóKóJóO#ôbr/   r=   ÚAssistantEventHandlerT)Úboundc                  óD   — e Zd ZdZ	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)	ÚAssistantStreamManagerzöWrapper over AssistantStreamEventHandler that is returned by `.stream()`
    so that a context manager can be used.

    ```py
    with client.threads.create_and_run_stream(...) as stream:
        for event in stream:
            ...
    ```
    c               ó.   — d | _         || _        || _        y r+   )Ú_AssistantStreamManager__streamÚ&_AssistantStreamManager__event_handlerÚ$_AssistantStreamManager__api_request©rO   Úapi_requestÚevent_handlers      r0   rP   zAssistantStreamManager.__init__Ì  s   € ð >BˆŒØ,ˆÔØ(ˆÕr/   c                óŽ   — | j                  «       | _        | j                  j                  | j                  «       | j                  S r+   )r  r
  r  rU   rN   s    r0   Ú	__enter__z AssistantStreamManager.__enter__Ö  s6   € Ø×*Ñ*Ó,ˆŒØ×Ñ×"Ñ" 4§=¡=Ô1Ø×#Ñ#Ð#r/   c                óR   — | j                   �| j                   j                  «        y y r+   )r
  rm   ©rO   Úexc_typer7   Úexc_tbs       r0   Ú__exit__zAssistantStreamManager.__exit__Û  s#   € ð �=‰=Ð$Ø�M‰M×ÑÕ!ð %r/   N)r  z*Callable[[], Stream[AssistantStreamEvent]]r  r  rè   ré   )rè   r  ©r  ztype[BaseException] | Noner7   zBaseException | Noner  zTracebackType | Nonerè   ré   )r   r  r  Ú__doc__rP   r  r  r.   r/   r0   r  r  Á  sX   „ ñð)à?ð)ð .ð	)ð
 
ó)ó$ð
"à,ð"ð "ð"ð %ð	"ð
 
ô"r/   r  c                  óJ  — e Zd ZU ded<   	 d%d„Zd&d„Zd'd„Zd(d„Zd%d„Ze	d)d„«       Z
e	d*d	„«       Ze	d+d
„«       Ze	d,d„«       Zd%d„Zd-d„Zd.d„Zd/d„Zd0d„Zd%d„Zd1d„Zd2d„Zd3d„Zd2d„Zd4d„Zd5d„Zd4d„Zd6d„Zd%d„Zd7d„Zd8d„Zd7d„Zd9d„Z d:d„Z!d9d „Z"d;d!„Z#d1d"„Z$d(d#„Z%y$)<ÚAsyncAssistantEventHandlerzAsyncIterable[str]r>   c                óò   — d | _         d | _        d | _        d | _        d | _        d | _        d | _        i | _        i | _        d | _	        | j                  «       | _        | j                  «       | _        d | _        y r+   )r@   rA   rB   rC   rD   Ú0_AsyncAssistantEventHandler__current_run_step_idÚ(_AsyncAssistantEventHandler__current_runÚ/_AsyncAssistantEventHandler__run_step_snapshotsÚ._AsyncAssistantEventHandler__message_snapshotsÚ5_AsyncAssistantEventHandler__current_message_snapshotrJ   r>   rK   rL   Ú#_AsyncAssistantEventHandler__streamrN   s    r0   rP   z#AsyncAssistantEventHandler.__init__ó  sx   € Ø;?ˆÔØ:>ˆÔ+Ø?CˆÔ%Ø48ˆÔ%Ø37ˆÔØ15ˆÔ"Ø)-ˆÔØ8:ˆÔ!Ø79ˆÔ Ø:>ˆÔ'à×/Ñ/Ó1ˆÔØŸ™Ó*ˆŒØBFˆ�r/   c                ó@   — | j                   rt        d«      ‚|| _         y rR   )r!  rS   rT   s     r0   rU   z AsyncAssistantEventHandler._init  rV   r/   c              ƒ  óR   K  — | j                   j                  «       ƒ d {  –—† S 7 Œ­wr+   )rL   Ú	__anext__rN   s    r0   r$  z$AsyncAssistantEventHandler.__anext__  s   è ø€ Ø—^‘^×-Ñ-Ó/×/Ð/Ð/ús   ‚' %¡'c               óH   K  — | j                   2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wr+   rZ   r[   s     r0   Ú	__aiter__z$AsyncAssistantEventHandler.__aiter__  s&   è ø€ ØŸ.™.÷ 	ð 	�$ØŒJð	ø™.ùs   ‚"� “” —"ž  "c              ƒ  ón   K  — | j                   r#| j                   j                  «       ƒ d{  –—†  yy7 Œ­wrl   )r!  rm   rN   s    r0   rm   z AsyncAssistantEventHandler.close  s-   è ø€ ð �=Š=Ø—-‘-×%Ñ%Ó'×'Ñ'ð Ø'úó   ‚*5¬3­5c                ó   — | j                   S r+   r_   rN   s    r0   r`   z(AsyncAssistantEventHandler.current_event  ra   r/   c                ó   — | j                   S r+   )r  rN   s    r0   rc   z&AsyncAssistantEventHandler.current_run  rd   r/   c                óN   — | j                   sy | j                  | j                      S r+   )r  r  rN   s    r0   rf   z4AsyncAssistantEventHandler.current_run_step_snapshot#  rg   r/   c                ó   — | j                   S r+   )r   rN   s    r0   ri   z3AsyncAssistantEventHandler.current_message_snapshot*  rj   r/   c              ƒ  ó6   K  — t        | «      ƒ d{  –—†  y7 Œ­wro   )r   rN   s    r0   rp   z%AsyncAssistantEventHandler.until_done.  s   è ø€ ä$ TÓ*×*Ò*ús   ‚‘’c              ƒ  ó„   K  — | j                  «       ƒ d{  –—†  | j                  st        d«      ‚| j                  S 7 Œ'­w)rr   Nrs   )rp   r  rS   rN   s    r0   rt   z(AsyncAssistantEventHandler.get_final_run2  s<   è ø€ à�o‰oÓ×Ðà×!Ò!ÜÐ:Ó;Ð;à×!Ñ!Ð!ð 	 ús   ‚A –>—(A c              ƒ  óÆ   K  — | j                  «       ƒ d{  –—†  | j                  st        d«      ‚| j                  j                  «       D �cg c]  }|‘Œ c}S 7 ŒCc c}w ­w)rv   Nrw   )rp   r  rS   rx   ry   s     r0   r{   z.AsyncAssistantEventHandler.get_final_run_steps;  sV   è ø€ à�o‰oÓ×Ðà×(Ò(ÜÐ3Ó4Ð4à!%×!:Ñ!:×!AÑ!AÓ!CÖD˜’ÒDÐDð 	 úò
 Eùó!   ‚A!–A—7A!Á	AÁA!ÁA!c              ƒ  óÆ   K  — | j                  «       ƒ d{  –—†  | j                  st        d«      ‚| j                  j                  «       D �cg c]  }|‘Œ c}S 7 ŒCc c}w ­w)r~   Nr   )rp   r  rS   rx   r€   s     r0   r‚   z-AsyncAssistantEventHandler.get_final_messagesD  sV   è ø€ à�o‰oÓ×Ðà×'Ò'ÜÐ2Ó3Ð3à'+×'?Ñ'?×'FÑ'FÓ'HÖI˜G’ÒIÐIð 	 úò
 Jùr0  c               ó6  K  — | 2 3 d {  –—† }|j                   dk7  rŒ|j                  j                  j                  xs g D ]O  }|j                  dk(  sŒ|j
                  sŒ |j
                  j                  sŒ7|j
                  j                  ­–— ŒQ Œ�7 Œ‹6 y ­wr„   r‡   r�   s      r0   rJ   z*AsyncAssistantEventHandler.__text_deltas__M  s‡   è ø€ Ø÷ 	3ð 	3�%Ø�{‰{Ð4Ò4Øà!&§¡×!1Ñ!1×!9Ñ!9Ò!?¸Rò 3�Ø ×%Ñ%¨Ó/°M×4FÓ4FÈ=×K]ÑK]×KcÓKcØ'×,Ñ,×2Ñ2Ô2ñ3ð		3ø™4ùs8   ‚B…B‰BŠB�ABÁBÁ"BÁ9BÂBÂBc              ƒ  ó   K  — y­wr�   r.   rN   s    r0   r‘   z!AsyncAssistantEventHandler.on_endX  ó   è ø� ùó   ‚c              ƒ  ó   K  — y­wr”   r.   r•   s     r0   r–   z#AsyncAssistantEventHandler.on_event_  r4  r5  c              ƒ  ó   K  — y­wr˜   r.   r™   s     r0   r›   z.AsyncAssistantEventHandler.on_run_step_createdb  r4  r5  c              ƒ  ó   K  — y­wr�   r.   rž   s      r0   r    z,AsyncAssistantEventHandler.on_run_step_deltae  r4  r5  c              ƒ  ó   K  — y­wr¢   r.   r™   s     r0   r£   z+AsyncAssistantEventHandler.on_run_step_done€  r4  r5  c              ƒ  ó   K  — y­wr¥   r.   r¦   s     r0   r¨   z/AsyncAssistantEventHandler.on_tool_call_createdƒ  r4  r5  c              ƒ  ó   K  — y­wrª   r.   rž   s      r0   r«   z-AsyncAssistantEventHandler.on_tool_call_delta†  r4  r5  c              ƒ  ó   K  — y­wrª   r.   r¦   s     r0   r­   z,AsyncAssistantEventHandler.on_tool_call_done‰  r4  r5  c              ƒ  ó   K  — y­wr¯   r.   r°   s     r0   r²   z'AsyncAssistantEventHandler.on_exceptionŒ  r4  r5  c              ƒ  ó   K  — y­wr´   r.   rN   s    r0   rµ   z%AsyncAssistantEventHandler.on_timeout�  r4  r5  c              ƒ  ó   K  — y­wr·   r.   r€   s     r0   r¸   z-AsyncAssistantEventHandler.on_message_created’  r4  r5  c              ƒ  ó   K  — y­wrº   r.   rž   s      r0   r»   z+AsyncAssistantEventHandler.on_message_delta•  r4  r5  c              ƒ  ó   K  — y­wr½   r.   r€   s     r0   r¾   z*AsyncAssistantEventHandler.on_message_done®  r4  r5  c              ƒ  ó   K  — y­wrÀ   r.   rÁ   s     r0   rÂ   z*AsyncAssistantEventHandler.on_text_created±  r4  r5  c              ƒ  ó   K  — y­w)aŒ  Callback that is fired whenever a text content delta is returned
        by the API.

        The first argument is just the delta as sent by the API and the second argument
        is the accumulated snapshot of the text. For example:

        on_text_delta(TextDelta(value="The"), Text(value="The")),
        on_text_delta(TextDelta(value=" solution"), Text(value="The solution")),
        on_text_delta(TextDelta(value=" to"), Text(value="The solution to")),
        on_text_delta(TextDelta(value=" the"), Text(value="The solution to the")),
        on_text_delta(TextDelta(value=" equation"), Text(value="The solution to the equivalent")),
        Nr.   rž   s      r0   rÄ   z(AsyncAssistantEventHandler.on_text_delta´  r4  r5  c              ƒ  ó   K  — y­wrÆ   r.   rÁ   s     r0   rÇ   z'AsyncAssistantEventHandler.on_text_doneÂ  r4  r5  c              ƒ  ó   K  — y­wrÉ   r.   rÊ   s     r0   rÌ   z-AsyncAssistantEventHandler.on_image_file_doneÅ  r4  r5  c              ƒ  ó  K  — || _         | j                  |«      ƒ d {  –—†  t        || j                  ¬«      \  | _        }| j                  �-| j                  | j                  | j                  j
                  <   t        || j                  ¬«       |D ]f  }| j                  €J ‚| j                  j                  |j                     }|j                  dk(  sŒD| j                  |j                  «      ƒ d {  –—†  Œh |j                  dk(  sK|j                  dk(  s<|j                  dk(  s-|j                  dk(  s|j                  dk(  s|j                  d	k(  rI|j                  | _        | j                   �rS| j#                  | j                   «      ƒ d {  –—†  d | _         y |j                  d
k(  s-|j                  dk(  s|j                  dk(  s|j                  dk(  r|j                  | _        d | _         y |j                  dk(  r+| j%                  |j                  «      ƒ d {  –—†  d | _         y |j                  dk(  �rî| j                  }|€J ‚|j                  j&                  }|j                  ��…|j                  D �]u  }|j                  dk(  rd|j                  rX|j                  |j                     }|j                  dk(  sJ ‚| j)                  |j                  |j                  «      ƒ d {  –—†  |j                  | j*                  k7  rÈ| j,                  ��| j,                  j                  dk(  r.| j/                  | j,                  j                  «      ƒ d {  –—†  nF| j,                  j                  dk(  r-| j1                  | j,                  j2                  «      ƒ d {  –—†  |j                  | _        |j                  |j                     | _        |j                  |j                     | _        �Œx | j5                  |j                  j&                  |«      ƒ d {  –—†  d | _         y |j                  dk(  s|j                  dk(  rý|j                  | _        |j                  | j                  |j                  j
                  <   | j*                  �ˆ|j                  j                  | j*                     }|j                  dk(  r$| j/                  |j                  «      ƒ d {  –—†  n2|j                  dk(  r#| j1                  |j2                  «      ƒ d {  –—†  | j7                  |j                  «      ƒ d {  –—†  d | _         y |j                  dk(  rF|j                  j
                  | _        | j;                  |j                  «      ƒ d {  –—†  d | _         y |j                  dk(  r#|j                  j
                  | _        d | _         y |j                  dk(  �r| j                  |j                  j
                     }	|j                  j&                  }
|
j<                  �r‰|
j<                  j                  dk(  �ro|
j<                  j>                  ��X|	j<                  j                  dk(  sJ ‚|
j<                  j>                  D �]#  }|j                  | j@                  k(  r;| jC                  ||	j<                  j>                  |j                     «      ƒ d {  –—†  |j                  | j@                  k7  r‹| j                   �#| j#                  | j                   «      ƒ d {  –—†  |j                  | _         |	j<                  j>                  |j                     | _        | jE                  | j                   «      ƒ d {  –—†  |	j<                  j>                  |j                     | _        �Œ& | jG                  |j                  j&                  |	«      ƒ d {  –—†  d | _         y |j                  dk(  s-|j                  dk(  s|j                  dk(  s|j                  dk(  ra| j                   r#| j#                  | j                   «      ƒ d {  –—†  | jI                  |j                  «      ƒ d {  –—†  d | _        d | _         y |j                  dk(  s|j                  dk(  s|j                  dk(  r		 d | _         y tJ        rtM        |«       d | _         y 7 �Œ²7 �ŒÝ7 �ŒC7 �Œ·7 �Œì7 �Œ„7 �Œ@7 �ŒÅ7 �Œ7 �ŒÓ7 �Œ³7 �Œa7 �Œ7 �ŒÕ7 �Œ|7 �Œ&7 Œµ7 Œ”­wrÎ   )'r@   r–   rÕ   r   r  rÖ   r×   r  rŠ   rØ   r‹   rÂ   r†   r:   rˆ   r  rD   r­   r¸   r‰   rÄ   rA   rB   rÇ   rÌ   rË   r»   r¾   r  r›   rÙ   rÓ   rC   r«   r¨   r    r£   r   r   rÚ   s               r0   râ   z*AsyncAssistantEventHandler._emit_sse_eventÈ  så  è ø€ Ø#ˆÔØ�m‰m˜EÓ"×"Ð"ä7GØØ%)×%DÑ%Dô8
Ñ4ˆÔ'¨ð ×*Ñ*Ð6ØKO×KjÑKjˆD×$Ñ$ T×%DÑ%D×%GÑ%GÑHäØØ#×8Ñ8õ	
ð
 )ò 	7ˆMØ×2Ñ2Ð>Ð>Ð>à×3Ñ3×;Ñ;¸M×<OÑ<OÑPˆEØ�z‰z˜VÓ#Ø×*Ñ*¨5¯:©:Ó6×6Ñ6ð	7ð �K‰KÐ1Ò1Ø�{‰{Ð4Ò4Ø�{‰{Ð2Ò2Ø�{‰{Ð1Ò1Ø�{‰{Ð:Ò:Ø�{‰{Ð5Ò5à!&§¡ˆDÔØ×&Ó&Ø×,Ñ,¨T×-DÑ-DÓE×EÐEð\ #ˆÕðY �K‰KÐ/Ò/Ø�{‰{Ð6Ò6Ø�{‰{Ð5Ò5Ø�{‰{Ð1Ò1à!&§¡ˆDÔðN #ˆÕðM �[‰[Ð4Ò4Ø×)Ñ)¨%¯*©*Ó5×5Ð5ðJ #ˆÕðI �[‰[Ð2Ó2Ø×6Ñ6ˆHØÐ'Ð'Ð'à!ŸJ™J×,Ñ,ˆMØ×$Ñ$Ñ0Ø%2×%:Ñ%:ó Z�MØ$×)Ñ)¨VÒ3¸×8JÒ8JØ+3×+;Ñ+;¸M×<OÑ<OÑ+PÐ(Ø/×4Ñ4¸Ò>Ð>Ð>Ø"×0Ñ0°×1CÑ1CÐEU×EZÑEZÓ[×[Ð[ð
 %×*Ñ*¨d×.QÑ.QÒQØ×8Ñ8ÐDØ#×<Ñ<×AÑAÀVÒKØ&*×&7Ñ&7¸×8UÑ8U×8ZÑ8ZÓ&[× [Ñ [Ø!%×!>Ñ!>×!CÑ!CÀ|Ò!SØ&*×&=Ñ&=¸d×>[Ñ>[×>fÑ>fÓ&g× gÐ gà>K×>QÑ>Q˜Ô;Ø8@×8HÑ8HÈ×I\ÑI\Ñ8]˜Ô5ð 5=×4DÑ4DÀ]×EXÑEXÑ4Y�DÖ1ð)Zð, ×'Ñ'¨¯
©
×(8Ñ(8¸(ÓC×CÐCðP #ˆÕðO �[‰[Ð6Ò6¸%¿+¹+ÐIdÒ:dØ.3¯j©jˆDÔ+Ø6;·j±jˆD×$Ñ$ U§Z¡Z§]¡]Ñ3à×2Ñ2Ð>ØŸ*™*×,Ñ,¨T×-PÑ-PÑQ�Ø—<‘< 6Ò)Ø×+Ñ+¨G¯L©LÓ9×9Ñ9Ø—\‘\ \Ò1Ø×1Ñ1°'×2DÑ2DÓE×EÐEà×&Ñ& u§z¡zÓ2×2Ð2ðx #ˆÕðw �[‰[Ð5Ò5Ø).¯©¯©ˆDÔ&Ø×*Ñ*¨5¯:©:Ó6×6Ð6ðr #ˆÕðq �[‰[Ð9Ò9Ø).¯©¯©ˆDÔ&ðn #ˆÕðm �[‰[Ð3Ó3Ø ×5Ñ5°e·j±j·m±mÑDˆMà"ŸZ™Z×-Ñ-ˆNà×+Ó+Ø"×/Ñ/×4Ñ4¸ÓDØ"×/Ñ/×:Ñ:ÑFà$×1Ñ1×6Ñ6¸,ÒFÐFÐFØ'5×'BÑ'B×'MÑ'Mó k�OØ&×,Ñ,°×0MÑ0MÒMØ"×5Ñ5Ø+Ø)×6Ñ6×AÑAÀ/×BWÑBWÑXó÷ ð ð '×,Ñ,°×0MÑ0MÒMØ×2Ñ2Ð>Ø"&×"8Ñ"8¸×9PÑ9PÓ"Q×QÐQà8G×8MÑ8M˜Ô5Ø2?×2LÑ2L×2WÑ2WÐXg×XmÑXmÑ2n˜Ô/Ø"×7Ñ7¸×8OÑ8OÓP×PÐPð /<×.HÑ.H×.SÑ.SÐTc×TiÑTiÑ.j�DÖ+ð'kð* ×(Ñ(Ø—
‘
× Ñ Øó÷ ð ð. #ˆÕð% �K‰KÐ6Ò6Ø�{‰{Ð9Ò9Ø�{‰{Ð7Ò7Ø�{‰{Ð6Ò6à×&Ò&Ø×,Ñ,¨T×-DÑ-DÓE×EÐEà×'Ñ'¨¯
©
Ó3×3Ð3Ø)-ˆDÔ&ð #ˆÕð �[‰[Ð,Ò,°·±Ð?[Ò0[Ð_d×_jÑ_jÐnuÒ_uàð #ˆÕõ Ü˜UÔ#à"ˆÕð[ 	#ùð& 7ùð Fùð 6ùð \ùð !\ùà gùð Dùð :ùàEùà2ùð 7ùðùð Rùð Qùð
ùð Føà3úsV  ‚džcŸB8dÃdÃ6cÃ7BdÆcÆBdÈ"cÈ#CdË0cË1A*dÍcÍAdÎ"c"Î#A=dÐ c%Ð!CdÓ%c(Ó&2dÔc+Ô"dÔ;c.Ô<AdÖc1ÖE	dÛc4ÛAdÜ"c7Ü#AdÝ>c:Ý?Adßc=ßA2dá
d á"dá-dá.A#dãdãdãdãdãdã"dã%dã(dã+dã.dã1dã4dã7dã:dã=dä dädc               ó  K  — | j                   }|st        d«      ‚	 t        |«      2 3 d {  –—† }| j                  |«      ƒ d {  –—†  |­–— Œ(7 Œ#7 Œ6 np# t	        «       $ r9}| j                  «       ƒ d {  –—†7   | j                  |«      ƒ d {  –—†7   ‚ d }~wt        $ r }| j                  |«      ƒ d {  –—†7   ‚ d }~ww xY w	 | j                  «       ƒ d {  –—†7   y # | j                  «       ƒ d {  –—†7   w xY w­wrä   )	r!  rS   r;   râ   r1   rµ   r²   rå   r‘   ræ   s       r0   rK   z%AsyncAssistantEventHandler.__stream__Y  sà   è ø€ Ø—‘ˆÙÜÐ@ÓAÐAð	 Ü,¨VÓ4÷ ð �eØ×*Ñ*¨5Ó1×1Ð1à”ðøØ1øñ  5øô #Ó$ò 	Ø—/‘/Ó#×#Ñ#Ø×#Ñ# CÓ(×(Ñ(ØûÜò 	Ø×#Ñ# CÓ(×(Ñ(Øûð	úð  5ð —+‘+“-×Òø�$—+‘+“-×Òüs´   ‚C?�A ¨A¬A­A°A ÁAÁ
A ÁAÁA ÁA ÁC! ÁCÁ#BÁ6A9Á7BÂBÂBÂCÂ#B>Â7B:Â8B>Â>CÃC! ÃC?ÃCÃC?Ã!C<Ã5C8Ã6C<Ã<C?Nrç   )r6   ú!AsyncStream[AssistantStreamEvent]rè   ré   rë   )rè   ú#AsyncIterator[AssistantStreamEvent]rí   rî   rï   rð   rò   ró   rô   )rè   zAsyncIterator[str]rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   )&r   r  r  r  rP   rU   r$  r&  rm   r  r`   rc   rf   ri   rp   rt   r{   r‚   rJ   r‘   r–   r›   r    r£   r¨   r«   r­   r²   rµ   r¸   r»   r¾   rÂ   rÄ   rÇ   rÌ   râ   rK   r.   r/   r0   r  r  å  s   … Ø#Ó#ð
óGó ó0óó(ð ò#ó ð#ð ò"ó ð"ð òEó ðEð ò/ó ð/ó+ó"óEóJó3óóAó@óó6BóAóKóKóCó-ó?óó2AóJóóKóJóO#ôb r/   r  ÚAsyncAssistantEventHandlerTc                  óD   — e Zd ZdZ	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)	ÚAsyncAssistantStreamManagera>  Wrapper over AsyncAssistantStreamEventHandler that is returned by `.stream()`
    so that an async context manager can be used without `await`ing the
    original client call.

    ```py
    async with client.threads.create_and_run_stream(...) as stream:
        async for event in stream:
            ...
    ```
    c               ó.   — d | _         || _        || _        y r+   )Ú$_AsyncAssistantStreamManager__streamÚ+_AsyncAssistantStreamManager__event_handlerÚ)_AsyncAssistantStreamManager__api_requestr  s      r0   rP   z$AsyncAssistantStreamManager.__init__}  s   € ð CGˆŒØ,ˆÔØ(ˆÕr/   c              ƒ  ó¢   K  — | j                   ƒ d {  –—† | _        | j                  j                  | j                  «       | j                  S 7 Œ:­wr+   )rP  rN  rO  rU   rN   s    r0   Ú
__aenter__z&AsyncAssistantStreamManager.__aenter__‡  s?   è ø€ Ø"×0Ñ0×0ˆŒØ×Ñ×"Ñ" 4§=¡=Ô1Ø×#Ñ#Ð#ð 1ús   ‚A’A“;Ac              ƒ  ón   K  — | j                   �#| j                   j                  «       ƒ d {  –—†  y y 7 Œ­wr+   )rN  rm   r  s       r0   Ú	__aexit__z%AsyncAssistantStreamManager.__aexit__Œ  s0   è ø€ ð �=‰=Ð$Ø—-‘-×%Ñ%Ó'×'Ñ'ð %Ø'úr(  N)r  z,Awaitable[AsyncStream[AssistantStreamEvent]]r  rJ  rè   ré   )rè   rJ  r  )r   r  r  r  rP   rR  rT  r.   r/   r0   rL  rL  q  sX   „ ñ	ð)àAð)ð 3ð	)ð
 
ó)ó$ð
(à,ð(ð "ð(ð %ð	(ð
 
ô(r/   rL  c                ó²  — | j                   dk(  r$| j                  || j                  j                  <   y | j                   dk(  r•| j                  }||j                     }|j                  rnt	        t        dt        |dd¬«      «      t        dt        |j                  dd¬«      «      «      }t        t        t        t        |¬«      «      ||j                  <   y )NrÑ   rÒ   údict[object, object]TF©Úexclude_unsetÚwarnings©Útype_rŒ   )	r:   rˆ   rÖ   r‰   r   r   r   r&   r   )r:   rÏ   rˆ   rŸ   Úmergeds        r0   r×   r×   –  s¸   € ð
 ‡{�{Ð/Ò/Ø,1¯J©JÐ˜5Ÿ:™:Ÿ=™=Ñ)Øà‡{�{Ð-Ò-Ø�z‰zˆØ% d§g¡gÑ.ˆà�:Š:Ü%ÜØ*Ü˜x°tÀeÔLóô Ø*Ü˜tŸz™z¸ÈÔNóó	ˆFô /3´7¼NÔQXÐ`fÔ<gÓ.hÐ˜xŸ{™{Ñ+àr/   c                ó*  — | j                   dk(  r| j                  g fS g }| j                   dk7  r|g fS |st        d«      ‚| j                  }|j                  j                  r±|j                  j                  D ]˜  }	 |j                  |j
                     }t        t        dt        |dd¬«      «      t        dt        |dd¬«      «      «      }t        t        t        t        t        t        «      |¬«      «      |j                  |j
                  <   Œš ||fS # t        $ rr |j                  j                  |j
                  t        t        t        t        t        t        «      t        |dd¬«      ¬«      «      «       |j                  |«       Y �Œw xY w)	zIReturns a tuple of message snapshot and newly created text message deltasrÐ   r…   z5Encountered a message delta with no previous snapshotrV  TFrW  rZ  )r:   rˆ   rS   r‰   rŠ   rØ   r   r   r   r$   r   r   Ú
IndexErrorÚinsertÚappend)r:   ri   rÛ   rˆ   rŽ   rÜ   r\  s          r0   rÕ   rÕ   ³  s�  € ð ‡{�{Ð.Ò.Ø�z‰z˜2ˆ~Ðà-/€Kà‡{�{Ð,Ò,Ø'¨Ð+Ð+á#ÜÐRÓSÐSà�:‰:€DØ‡z�z×ÒØ!ŸZ™Z×/Ñ/ò "	ˆMð!Ø0×8Ñ8¸×9LÑ9LÑM�ô *ÜØ.Ü" 5¸ÀuÔMóô Ø.Ü" =ÀÈuÔUóó	�ô IMÜ"Ü"ä"¤3¬Ó7Ø$ôóIÐ(×0Ñ0°×1DÑ1DÒEð7"	ðH $ [Ð0Ð0øôC ò 2Ø(×0Ñ0×7Ñ7Ø!×'Ñ'ÜÜ&Ü&ä"&¤s¬NÓ";Ü",¨]È$ÐY^Ô"_ôóô
ð ×"Ñ" =×1ð2ús   Á<DÄA7FÆF)rè   ztuple[type[Exception], ...])r6   rê   rè   rì   )r6   rH  rè   rI  )r:   r   rÏ   zdict[str, RunStep]rè   ré   )r:   r   ri   rñ   rè   z0tuple[Message | None, list[MessageContentDelta]])?Ú
__future__r   r,   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   r   Ú_deltasr   Ú_utilsr   r   Ú_compatr   Ú_httpx2r   r   Ú_modelsr   Ú
_streamingr   r   Ú
types.betar   Ú_exceptionsr   Útypes.beta.threadsr   r   r    r!   r"   r#   r$   r%   Útypes.beta.threads.runsr&   r'   r(   r)   r1   r8   r;   r=   r  r  r  rJ  rL  r×   rÕ   r.   r/   r0   ú<module>ro     s   ðÝ "ã Ý ß [× [Ó [ß SÓ Så 9ß CÝ !ß =Ý %ß -Ý .Ý -÷	÷ 	ó 	÷ VÓ Uó9óó÷Fñ FñR !Ð!9ÐAVÔWÐ ô!"˜WÐ%;Ñ<ô !"÷HF ñ F ñR &Ð&CÐKeÔfÐ ô"( 'Ð*EÑ"Fô "(ðJàðð +ðð 
ó	ð:71àð71ð -ð71ð 6ô	71r/   