§
    Ý
@göž  ã                  óÊ  — 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ZddlmZmZmZmZ ddl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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/  G d„ d¦  «        Z0 e	de0¬¦  «        Z1 G d„ dee1         ¦  «        Z2 G d„ d¦  «        Z3 e	de3¬¦  «        Z4 G d„ dee4         ¦  «        Z5d(d„Z6d)d#„Z7d*d'„Z8dS )+é    )ÚannotationsN)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGenericÚTypeVarÚCallableÚIterableÚIteratorÚcast)Ú	AwaitableÚAsyncIterableÚAsyncIteratorÚassert_neveré   )Úis_dictÚis_listÚconsume_sync_iteratorÚconsume_async_iterator)Ú
model_dump)Úconstruct_type)ÚStreamÚAsyncStream)ÚAssistantStreamEvent)ÚRunÚTextÚMessageÚ	ImageFileÚ	TextDeltaÚMessageDeltaÚMessageContentÚMessageContentDelta)ÚRunStepÚToolCallÚRunStepDeltaÚToolCallDeltac                  ód  — e Zd ZU ded<   	 dFd„ZdGd„ZdHd
„ZdId„ZedJd„¦   «         Z	edKd„¦   «         Z
edLd„¦   «         ZedMd„¦   «         ZdFd„ZdFd„ZdNd„ZdOd„ZdPd„ZdQd„ZdFd„ZdRd!„ZdSd$„ZdTd(„ZdSd)„ZdUd,„ZdVd.„ZdUd/„ZdWd2„ZdFd3„ZdXd6„ZdYd8„ZdXd9„ZdZd<„Z d[d>„Z!dZd?„Z"d\dB„Z#dRdC„Z$dIdD„Z%dES )]ÚAssistantEventHandlerzIterable[str]Útext_deltasÚreturnÚNonec                ó  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        i | _        i | _        d | _	        |  
                    ¦   «         | _        |                      ¦   «         | _        d | _        d S ©N)Ú_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    úT/var/www/piapp/venv/lib/python3.11/site-packages/openai/lib/streaming/_assistants.pyÚ__init__zAssistantEventHandler.__init__*   s‚   € Ø;?ˆÔØ:>ˆÔ+Ø?CˆÔ%Ø48ˆÔ%Ø37ˆÔØ15ˆÔ"Ø)-ˆÔØ8:ˆÔ!Ø79ˆÔ Ø:>ˆÔ'à×/Ò/Ñ1Ô1ˆÔØŸšÑ*Ô*ˆŒØ=AˆŒˆˆó    ÚstreamúStream[AssistantStreamEvent]c                ó@   — | j         rt          d¦  «        ‚|| _         d S ©NzyA single event handler cannot be shared between multiple streams; You will need to construct a new event handler instance)r;   ÚRuntimeError©r=   rA   s     r>   Ú_initzAssistantEventHandler._init:   ó1   € ØŒ=ð 	Ýð Lñô ð ð ˆŒˆˆr@   r   c                ó4   — | j                              ¦   «         S r-   )r:   Ú__next__r<   s    r>   rJ   zAssistantEventHandler.__next__B   s   € ØŒ~×&Ò&Ñ(Ô(Ð(r@   úIterator[AssistantStreamEvent]c              #  ó&   K  — | j         D ]}|V — Œd S r-   ©r:   ©r=   Úitems     r>   Ú__iter__zAssistantEventHandler.__iter__E   s,   è è € Ø”Nð 	ð 	ˆDØˆJˆJˆJˆJð	ð 	r@   úAssistantStreamEvent | Nonec                ó   — | j         S r-   ©r.   r<   s    r>   Úcurrent_eventz#AssistantEventHandler.current_eventI   ó   € àÔ"Ð"r@   ú
Run | Nonec                ó   — | j         S r-   )r4   r<   s    r>   Úcurrent_runz!AssistantEventHandler.current_runM   ó   € àÔ!Ð!r@   úRunStep | Nonec                ó8   — | j         sd S | j        | j                  S r-   )r3   r5   r<   s    r>   Úcurrent_run_step_snapshotz/AssistantEventHandler.current_run_step_snapshotQ   ó#   € àÔ)ð 	Ø�4àÔ(¨Ô)CÔDÐDr@   úMessage | Nonec                ó   — | j         S r-   )r7   r<   s    r>   Úcurrent_message_snapshotz.AssistantEventHandler.current_message_snapshotX   ó   € àÔ.Ð.r@   c                óJ   — | j         r| j                              ¦   «          dS dS ©z~
        Close the response and release the connection.

        Automatically called when the context manager exits.
        N)r;   Úcloser<   s    r>   rd   zAssistantEventHandler.close\   s2   € ð Œ=ð 	"ØŒM×ÒÑ!Ô!Ð!Ð!Ð!ð	"ð 	"r@   c                ó$   — t          | ¦  «         dS ©z(Waits until the stream has been consumedN)r   r<   s    r>   Ú
until_donez AssistantEventHandler.until_donee   s   € å˜dÑ#Ô#Ð#Ð#Ð#r@   r   c                ód   — |                       ¦   «          | j        st          d¦  «        ‚| j        S )úBWait for the stream to finish and returns the completed Run objectúNo final run object found)rg   r4   rE   r<   s    r>   Úget_final_runz#AssistantEventHandler.get_final_runi   s5   € à�ŠÑÔÐàÔ!ð 	<ÝÐ:Ñ;Ô;Ð;àÔ!Ð!r@   úlist[RunStep]c                óœ   — |                       ¦   «          | j        st          d¦  «        ‚d„ | j                             ¦   «         D ¦   «         S )úEWait for the stream to finish and returns the steps taken in this runúNo run steps foundc                ó   — g | ]}|‘ŒS © rq   ©Ú.0Ústeps     r>   ú
<listcomp>z=AssistantEventHandler.get_final_run_steps.<locals>.<listcomp>y   ó   € ÐDÐDÐD˜�ÐDÐDÐDr@   )rg   r5   rE   Úvaluesr<   s    r>   Úget_final_run_stepsz)AssistantEventHandler.get_final_run_stepsr   sO   € à�ŠÑÔÐàÔ(ð 	5ÝÐ3Ñ4Ô4Ð4àDÐD Ô!:×!AÒ!AÑ!CÔ!CÐDÑDÔDÐDr@   úlist[Message]c                óœ   — |                       ¦   «          | j        st          d¦  «        ‚d„ | j                             ¦   «         D ¦   «         S )úJWait for the stream to finish and returns the messages emitted in this runúNo messages foundc                ó   — g | ]}|‘ŒS rq   rq   ©rs   Úmessages     r>   ru   z<AssistantEventHandler.get_final_messages.<locals>.<listcomp>‚   ó   € ÐIÐIÐI˜G�ÐIÐIÐIr@   )rg   r6   rE   rw   r<   s    r>   Úget_final_messagesz(AssistantEventHandler.get_final_messages{   sO   € à�ŠÑÔÐàÔ'ð 	4ÝÐ2Ñ3Ô3Ð3àIÐI tÔ'?×'FÒ'FÑ'HÔ'HÐIÑIÔIÐIr@   úIterator[str]c              #  ó°   K  — | D ]P}|j         dk    rŒ|j        j        j        pg D ].}|j        dk    r!|j        r|j        j        r|j        j        V — Œ/ŒQd S ©Núthread.message.deltaÚtext©ÚeventÚdataÚdeltaÚcontentÚtyper†   Úvalue©r=   rˆ   Úcontent_deltas      r>   r8   z%AssistantEventHandler.__text_deltas__„   s…   è è € Øð 	3ð 	3ˆEØŒ{Ð4Ò4Ð4Øà!&¤Ô!1Ô!9Ð!?¸Rð 3ð 3�Ø Ô%¨Ò/Ð/°MÔ4FÐ/È=ÔK]ÔKcÐ/Ø'Ô,Ô2Ð2Ð2Ð2øð3ð		3ð 	3r@   c                ó   — dS ©zšFires when the stream has finished.

        This happens if the stream is read to completion
        or if an exception occurs during iteration.
        Nrq   r<   s    r>   Úon_endzAssistantEventHandler.on_end�   ó   € € € r@   rˆ   c                ó   — dS ©z2Callback that is fired for every Server-Sent-EventNrq   ©r=   rˆ   s     r>   Úon_eventzAssistantEventHandler.on_event–   r“   r@   Úrun_stepr#   c                ó   — dS ©z1Callback that is fired when a run step is createdNrq   ©r=   r˜   s     r>   Úon_run_step_createdz)AssistantEventHandler.on_run_step_created™   r“   r@   rŠ   r%   Úsnapshotc                ó   — dS ©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
            )
        ],
        Nrq   ©r=   rŠ   r�   s      r>   Úon_run_step_deltaz'AssistantEventHandler.on_run_step_deltaœ   r“   r@   c                ó   — dS ©z3Callback that is fired when a run step is completedNrq   r›   s     r>   Úon_run_step_donez&AssistantEventHandler.on_run_step_done·   r“   r@   Ú	tool_callr$   c                ó   — dS ©z2Callback that is fired when a tool call is createdNrq   ©r=   r¥   s     r>   Úon_tool_call_createdz*AssistantEventHandler.on_tool_call_createdº   r“   r@   r&   c                ó   — dS ©z<Callback that is fired when a tool call delta is encounteredNrq   r    s      r>   Úon_tool_call_deltaz(AssistantEventHandler.on_tool_call_delta½   r“   r@   c                ó   — dS r«   rq   r¨   s     r>   Úon_tool_call_donez'AssistantEventHandler.on_tool_call_doneÀ   r“   r@   Ú	exceptionÚ	Exceptionc                ó   — dS ©z4Fired whenever an exception happens during streamingNrq   ©r=   r¯   s     r>   Úon_exceptionz"AssistantEventHandler.on_exceptionÃ   r“   r@   c                ó   — dS ©zFires if the request times outNrq   r<   s    r>   Ú
on_timeoutz AssistantEventHandler.on_timeoutÆ   r“   r@   r   r   c                ó   — dS ©z0Callback that is fired when a message is createdNrq   ©r=   r   s     r>   Úon_message_createdz(AssistantEventHandler.on_message_createdÉ   r“   r@   r    c                ó   — dS ©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'
            ),
        )
        Nrq   r    s      r>   Úon_message_deltaz&AssistantEventHandler.on_message_deltaÌ   r“   r@   c                ó   — dS ©z2Callback that is fired when a message is completedNrq   rº   s     r>   Úon_message_donez%AssistantEventHandler.on_message_doneå   r“   r@   r†   r   c                ó   — dS ©z;Callback that is fired when a text content block is createdNrq   ©r=   r†   s     r>   Úon_text_createdz%AssistantEventHandler.on_text_createdè   r“   r@   r   c                ó   — dS ©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")),
        Nrq   r    s      r>   Úon_text_deltaz#AssistantEventHandler.on_text_deltaë   r“   r@   c                ó   — dS ©z<Callback that is fired when a text content block is finishedNrq   rÄ   s     r>   Úon_text_donez"AssistantEventHandler.on_text_doneù   r“   r@   Ú
image_filer   c                ó   — dS ©z;Callback that is fired when an image file block is finishedNrq   ©r=   rÌ   s     r>   Úon_image_file_donez(AssistantEventHandler.on_image_file_doneü   r“   r@   c                ó  — || _         |                      |¦  «         t          || j        ¬¦  «        \  | _        }| j        �| j        | j        | j        j        <   t          || j        ¬¦  «         |D ]G}| j        €J ‚| j        j        |j	                 }|j
        dk    r|                      |j        ¦  «         ŒH|j        dk    s7|j        dk    s,|j        dk    s!|j        dk    s|j        dk    s|j        d	k    r/|j        | _        | j        r|                      | j        ¦  «         �n×|j        d
k    s!|j        dk    s|j        dk    s|j        dk    r|j        | _        �n�|j        dk    r|                      |j        ¦  «         �nv|j        dk    �rN| j        }|€J ‚|j        j        }|j        ��|j        D �]}|j
        dk    rF|j        r?|j        |j	                 }|j
        dk    sJ ‚|                      |j        |j        ¦  «         |j	        | j        k    r‰| j        �_| j        j
        dk    r |                      | j        j        ¦  «         n/| j        j
        dk    r|                      | j        j        ¦  «         |j	        | _        |j        |j	                 | _        |j        |j	                 | _        �Œ|                      |j        j        |¦  «         �n|j        dk    s|j        dk    rª|j        | _        |j        | j        |j        j        <   | j        �b|j        j        | j                 }|j
        dk    r|                      |j        ¦  «         n%|j
        dk    r|                      |j        ¦  «         |                      |j        ¦  «         �n\|j        dk    r-|j        j        | _        |                      |j        ¦  «         �n$|j        dk    r|j        j        | _        �n|j        dk    �rS| j        |j        j                 }	|j        j        }
|
j        �r|
j        j
        dk    r÷|
j        j        �ë|	j        j
        dk    sJ ‚|
j        j        D ]Ì}|j	        | j         k    r+|  !                    ||	j        j        |j	                 ¦  «         |j	        | j         k    rc| j        �|                      | j        ¦  «         |j	        | _         |	j        j        |j	                 | _        |  "                    | j        ¦  «         |	j        j        |j	                 | _        ŒÍ|  #                    |j        j        |	¦  «         n§|j        dk    s!|j        dk    s|j        dk    s|j        dk    rC| j        r|                      | j        ¦  «         |  $                    |j        ¦  «         d | _        n8|j        dk    s|j        dk    s|j        dk    rntJ          rtM          |¦  «         d | _         d S ©N)rˆ   r`   )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_eventr7   r6   ÚidÚaccumulate_run_stepr5   r‹   ÚindexrŒ   rÅ   r†   rˆ   r‰   r4   r2   r®   r»   rŠ   rÈ   r/   r0   rË   rÐ   rÌ   r¾   rÁ   r3   rœ   Ústep_detailsr×   r1   r¬   r©   r¡   r¤   r   r   ©r=   rˆ   Únew_contentr�   Úblockr�   Úmessage_deltaÚsnapshot_contentr‹   Ústep_snapshotÚrun_step_deltaÚtool_call_deltas               r>   Ú_emit_sse_eventz%AssistantEventHandler._emit_sse_eventÿ   sw  € Ø#ˆÔØ�Š�eÑÔÐå7GØØ%)Ô%Dð8
ñ 8
ô 8
Ñ4ˆÔ'¨ð Ô*Ð6ØKOÔKjˆDÔ$ TÔ%DÔ%GÑHåØØ#Ô8ð	
ñ 	
ô 	
ð 	
ð
 )ð 	1ð 	1ˆMØÔ2Ð>Ð>Ð>àÔ3Ô;¸MÔ<OÔPˆEØŒz˜VÒ#Ð#Ø×$Ò$ U¤ZÑ0Ô0Ð0øð ŒKÐ1Ò1Ð1ØŒ{Ð4Ò4Ð4ØŒ{Ð2Ò2Ð2ØŒ{Ð1Ò1Ð1ØŒ{Ð:Ò:Ð:ØŒ{Ð5Ò5Ð5à!&¤ˆDÔØÔ&ð @Ø×&Ò& tÔ'>Ñ?Ô?Ð?ùàŒKÐ/Ò/Ð/ØŒ{Ð6Ò6Ð6ØŒ{Ð5Ò5Ð5ØŒ{Ð1Ò1Ð1à!&¤ˆDÔÑØŒ[Ð4Ò4Ð4Ø×#Ò# E¤JÑ/Ô/Ð/Ñ/ØŒ[Ð2Ò2Ñ2ØÔ6ˆHØÐ'Ð'Ð'à!œJÔ,ˆMØÔ$Ñ0Ø%2Ô%:ð Zñ Z�MØ$Ô)¨VÒ3Ð3¸Ô8JÐ3Ø+3Ô+;¸MÔ<OÔ+PÐ(Ø/Ô4¸Ò>Ð>Ð>Ð>Ø×*Ò*¨=Ô+=Ð?OÔ?TÑUÔUÐUð
 %Ô*¨dÔ.QÒQÐQØÔ8ÐDØ#Ô<ÔAÀVÒKÐKØ $× 1Ò 1°$Ô2OÔ2TÑ UÔ UÐ UÐ UØ!%Ô!>Ô!CÀ|Ò!SÐ!SØ $× 7Ò 7¸Ô8UÔ8`Ñ aÔ aÐ aà>KÔ>Q˜Ô;Ø8@Ô8HÈÔI\Ô8]˜Ô5ð 5=Ô4DÀ]ÔEXÔ4Y�DÔ1Ñ1à×!Ò! %¤*Ô"2°HÑ=Ô=Ð=Ñ=ØŒ[Ð6Ò6Ð6¸%¼+ÐIdÒ:dÐ:dØ.3¬jˆDÔ+Ø6;´jˆDÔ$ U¤Z¤]Ñ3àÔ2Ð>Øœ*Ô,¨TÔ-PÔQ�Ø”< 6Ò)Ð)Ø×%Ò% g¤lÑ3Ô3Ð3Ð3Ø”\ \Ò1Ð1Ø×+Ò+¨GÔ,>Ñ?Ô?Ð?à× Ò  ¤Ñ,Ô,Ð,Ñ,ØŒ[Ð5Ò5Ð5Ø).¬¬ˆDÔ&Ø×$Ò$ U¤ZÑ0Ô0Ð0Ñ0ØŒ[Ð9Ò9Ð9Ø).¬¬ˆDÔ&Ñ&ØŒ[Ð3Ò3Ñ3Ø Ô5°e´j´mÔDˆMà"œZÔ-ˆNàÔ+ñkà"Ô/Ô4¸ÒDÐDØ"Ô/Ô:ÐFà$Ô1Ô6¸,ÒFÐFÐFÐFØ'5Ô'BÔ'Mð kð k�OØ&Ô,°Ô0MÒMÐMØ×/Ò/Ø+Ø)Ô6ÔAÀ/ÔBWÔXñô ð ð 'Ô,°Ô0MÒMÐMØÔ2Ð>Ø ×2Ò2°4Ô3JÑKÔKÐKà8GÔ8M˜Ô5Ø2?Ô2LÔ2WÐXgÔXmÔ2n˜Ô/Ø×1Ò1°$Ô2IÑJÔJÐJð /<Ô.HÔ.SÐTcÔTiÔ.j�DÔ+Ð+à×"Ò"Ø”
Ô Øñô ð ð ð
 ŒKÐ6Ò6Ð6ØŒ{Ð9Ò9Ð9ØŒ{Ð7Ò7Ð7ØŒ{Ð6Ò6Ð6àÔ&ð @Ø×&Ò& tÔ'>Ñ?Ô?Ð?à×!Ò! %¤*Ñ-Ô-Ð-Ø)-ˆDÔ&Ð&ØŒ[Ð,Ò,Ð,°´Ð?[Ò0[Ð0[Ð_dÔ_jÐnuÒ_uÐ_uàõ ð $Ý˜UÑ#Ô#Ð#à"ˆÔÐÐr@   c              #  ó¶  K  — | j         }|st          d¦  «        ‚	 |D ]}|                      |¦  «         |V — Œnp# t          j        t
          j        f$ r/}|                      ¦   «          |                      |¦  «         ‚ d }~wt          $ r}|                      |¦  «         ‚ d }~ww xY w	 |  
                    ¦   «          d S # |  
                    ¦   «          w xY w©NzStream has not been started yet)r;   rE   ræ   ÚhttpxÚTimeoutExceptionÚasyncioÚTimeoutErrorr·   r´   r°   r’   ©r=   rA   rˆ   Úexcs       r>   r9   z AssistantEventHandler.__stream__�  s  è è € Ø”ˆØð 	BÝÐ@ÑAÔAÐAð	Øð ð �Ø×$Ò$ UÑ+Ô+Ð+à����ðøõ Ô&­Ô(<Ð=ð 	ð 	ð 	Ø�OŠOÑÔÐØ×Ò˜cÑ"Ô"Ð"ØøøøøÝð 	ð 	ð 	Ø×Ò˜cÑ"Ô"Ð"Øøøøøð	øøøðð �KŠK‰MŒMˆMˆMˆMøˆD�KŠK‰MŒMˆMˆMøøøs2   œ; ºC »B(Á*B Â B(ÂB#Â#B(Â(C ÃCN©r*   r+   )rA   rB   r*   r+   ©r*   r   )r*   rK   ©r*   rQ   ©r*   rV   ©r*   rZ   ©r*   r^   ©r*   r   ©r*   rl   ©r*   ry   )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   r*   r+   )&Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r?   rG   rJ   rP   ÚpropertyrT   rX   r\   r`   rd   rg   rk   rx   r�   r8   r’   r—   rœ   r¡   r¤   r©   r¬   r®   r´   r·   r»   r¾   rÁ   rÅ   rÈ   rË   rÐ   ræ   r9   rq   r@   r>   r(   r(      s,  € € € € € € ØÐÐÑð
ðBð Bð Bð Bð ð ð ð ð)ð )ð )ð )ðð ð ð ð ð#ð #ð #ñ „Xð#ð ð"ð "ð "ñ „Xð"ð ðEð Eð Eñ „XðEð ð/ð /ð /ñ „Xð/ð"ð "ð "ð "ð$ð $ð $ð $ð"ð "ð "ð "ðEð Eð Eð EðJð Jð Jð Jð3ð 3ð 3ð 3ðð ð ð ðAð Að Að Að@ð @ð @ð @ðð ð ð ð6Bð Bð Bð BðAð Að Að AðKð Kð Kð KðKð Kð Kð KðCð Cð Cð Cð-ð -ð -ð -ð?ð ?ð ?ð ?ðð ð ð ð2Að Að Að AðJð Jð Jð Jðð ð ð ðKð Kð Kð KðJð Jð Jð JðO#ð O#ð O#ð O#ðbð ð ð ð ð r@   r(   ÚAssistantEventHandlerT)Úboundc                  ó*   — e Zd ZdZdd„Zdd	„Zdd„ZdS )Ú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:
            ...
    ```
    Úapi_requestú*Callable[[], Stream[AssistantStreamEvent]]Úevent_handlerr  r*   r+   c               ó0   — d | _         || _        || _        d S r-   )Ú_AssistantStreamManager__streamÚ&_AssistantStreamManager__event_handlerÚ$_AssistantStreamManager__api_request©r=   r  r  s      r>   r?   zAssistantStreamManager.__init__³  s"   € ð >BˆŒØ,ˆÔØ(ˆÔÐÐr@   c                ó€   — |                       ¦   «         | _        | j                             | j        ¦  «         | j        S r-   )r  r  r  rG   r<   s    r>   Ú	__enter__z AssistantStreamManager.__enter__½  s7   € Ø×*Ò*Ñ,Ô,ˆŒØÔ×"Ò" 4¤=Ñ1Ô1Ð1ØÔ#Ð#r@   Úexc_typeútype[BaseException] | Nonerî   úBaseException | NoneÚexc_tbúTracebackType | Nonec                óJ   — | j         �| j                              ¦   «          d S d S r-   )r  rd   ©r=   r  rî   r  s       r>   Ú__exit__zAssistantStreamManager.__exit__Â  s.   € ð Œ=Ð$ØŒM×ÒÑ!Ô!Ð!Ð!Ð!ð %Ð$r@   N)r  r  r  r  r*   r+   )r*   r  ©r  r  rî   r  r  r  r*   r+   )r  r  r  Ú__doc__r?   r  r  rq   r@   r>   r  r  ¨  sZ   € € € € € ðð ð)ð )ð )ð )ð$ð $ð $ð $ð
"ð "ð "ð "ð "ð "r@   r  c                  ód  — e Zd ZU ded<   	 dFd„ZdGd„ZdHd
„ZdId„ZdFd„Ze	dJd„¦   «         Z
e	dKd„¦   «         Ze	dLd„¦   «         Ze	dMd„¦   «         ZdFd„ZdNd„ZdOd„ZdPd„ZdQd„ZdFd„ZdRd!„ZdSd$„ZdTd(„ZdSd)„ZdUd,„ZdVd.„ZdUd/„ZdWd2„ZdFd3„ZdXd6„ZdYd8„ZdXd9„ZdZd<„Z d[d>„Z!dZd?„Z"d\dB„Z#dRdC„Z$dIdD„Z%dES )]ÚAsyncAssistantEventHandlerzAsyncIterable[str]r)   r*   r+   c                ó  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        i | _        i | _        d | _	        |  
                    ¦   «         | _        |                      ¦   «         | _        d | _        d S r-   )r.   r/   r0   r1   r2   Ú0_AsyncAssistantEventHandler__current_run_step_idÚ(_AsyncAssistantEventHandler__current_runÚ/_AsyncAssistantEventHandler__run_step_snapshotsÚ._AsyncAssistantEventHandler__message_snapshotsÚ5_AsyncAssistantEventHandler__current_message_snapshotr8   r)   r9   r:   Ú#_AsyncAssistantEventHandler__streamr<   s    r>   r?   z#AsyncAssistantEventHandler.__init__Ú  s‚   € Ø;?ˆÔØ:>ˆÔ+Ø?CˆÔ%Ø48ˆÔ%Ø37ˆÔØ15ˆÔ"Ø)-ˆÔØ8:ˆÔ!Ø79ˆÔ Ø:>ˆÔ'à×/Ò/Ñ1Ô1ˆÔØŸšÑ*Ô*ˆŒØBFˆŒˆˆr@   rA   ú!AsyncStream[AssistantStreamEvent]c                ó@   — | j         rt          d¦  «        ‚|| _         d S rD   )r(  rE   rF   s     r>   rG   z AsyncAssistantEventHandler._initê  rH   r@   r   c              ƒ  óD   K  — | j                              ¦   «         ƒ d {V —†S r-   )r:   Ú	__anext__r<   s    r>   r,  z$AsyncAssistantEventHandler.__anext__ò  s,   è è € Ø”^×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/r@   ú#AsyncIterator[AssistantStreamEvent]c               ó4   K  — | j         2 3 d {V —†}|W V — Œ6 d S r-   rM   rN   s     r>   Ú	__aiter__z$AsyncAssistantEventHandler.__aiter__õ  sF   è è € Øœ.ð 	ð 	ð 	ð 	ð 	ð 	ð 	�$ØˆJˆJˆJˆJˆJð )˜.˜.s   Šc              ƒ  óZ   K  — | j         r!| j                              ¦   «         ƒ d{V —† dS dS rc   )r(  rd   r<   s    r>   rd   z AsyncAssistantEventHandler.closeù  sH   è è € ð Œ=ð 	(Ø”-×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð	(ð 	(r@   rQ   c                ó   — | j         S r-   rS   r<   s    r>   rT   z(AsyncAssistantEventHandler.current_event  rU   r@   rV   c                ó   — | j         S r-   )r$  r<   s    r>   rX   z&AsyncAssistantEventHandler.current_run  rY   r@   rZ   c                ó8   — | j         sd S | j        | j                  S r-   )r#  r%  r<   s    r>   r\   z4AsyncAssistantEventHandler.current_run_step_snapshot
  r]   r@   r^   c                ó   — | j         S r-   )r'  r<   s    r>   r`   z3AsyncAssistantEventHandler.current_message_snapshot  ra   r@   c              ƒ  ó4   K  — t          | ¦  «        ƒ d{V —† dS rf   )r   r<   s    r>   rg   z%AsyncAssistantEventHandler.until_done  s,   è è € å$ TÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*r@   r   c              ƒ  ót   K  — |                       ¦   «         ƒ d{V —† | j        st          d¦  «        ‚| j        S )ri   Nrj   )rg   r$  rE   r<   s    r>   rk   z(AsyncAssistantEventHandler.get_final_run  sK   è è € à�oŠoÑÔÐÐÐÐÐÐÐàÔ!ð 	<ÝÐ:Ñ;Ô;Ð;àÔ!Ð!r@   rl   c              ƒ  ó¬   K  — |                       ¦   «         ƒ d{V —† | j        st          d¦  «        ‚d„ | j                             ¦   «         D ¦   «         S )rn   Nro   c                ó   — g | ]}|‘ŒS rq   rq   rr   s     r>   ru   zBAsyncAssistantEventHandler.get_final_run_steps.<locals>.<listcomp>)  rv   r@   )rg   r%  rE   rw   r<   s    r>   rx   z.AsyncAssistantEventHandler.get_final_run_steps"  se   è è € à�oŠoÑÔÐÐÐÐÐÐÐàÔ(ð 	5ÝÐ3Ñ4Ô4Ð4àDÐD Ô!:×!AÒ!AÑ!CÔ!CÐDÑDÔDÐDr@   ry   c              ƒ  ó¬   K  — |                       ¦   «         ƒ d{V —† | j        st          d¦  «        ‚d„ | j                             ¦   «         D ¦   «         S )r{   Nr|   c                ó   — g | ]}|‘ŒS rq   rq   r~   s     r>   ru   zAAsyncAssistantEventHandler.get_final_messages.<locals>.<listcomp>2  r€   r@   )rg   r&  rE   rw   r<   s    r>   r�   z-AsyncAssistantEventHandler.get_final_messages+  se   è è € à�oŠoÑÔÐÐÐÐÐÐÐàÔ'ð 	4ÝÐ2Ñ3Ô3Ð3àIÐI tÔ'?×'FÒ'FÑ'HÔ'HÐIÑIÔIÐIr@   úAsyncIterator[str]c               ó¾   K  — | 2 3 d {V —†}|j         dk    rŒ|j        j        j        pg D ]/}|j        dk    r"|j        r|j        j        r|j        j        W V — Œ0ŒW6 d S r„   r‡   rŽ   s      r>   r8   z*AsyncAssistantEventHandler.__text_deltas__4  s    è è € Øð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3�%ØŒ{Ð4Ò4Ð4Øà!&¤Ô!1Ô!9Ð!?¸Rð 3ð 3�Ø Ô%¨Ò/Ð/°MÔ4FÐ/È=ÔK]ÔKcÐ/Ø'Ô,Ô2Ð2Ð2Ð2Ð2øð3ð	  ˜4˜4s   …Ac              ƒ  ó
   K  — dS r‘   rq   r<   s    r>   r’   z!AsyncAssistantEventHandler.on_end?  ó
   è è € € € r@   rˆ   c              ƒ  ó
   K  — dS r•   rq   r–   s     r>   r—   z#AsyncAssistantEventHandler.on_eventF  r>  r@   r˜   r#   c              ƒ  ó
   K  — dS rš   rq   r›   s     r>   rœ   z.AsyncAssistantEventHandler.on_run_step_createdI  r>  r@   rŠ   r%   r�   c              ƒ  ó
   K  — dS rŸ   rq   r    s      r>   r¡   z,AsyncAssistantEventHandler.on_run_step_deltaL  r>  r@   c              ƒ  ó
   K  — dS r£   rq   r›   s     r>   r¤   z+AsyncAssistantEventHandler.on_run_step_doneg  r>  r@   r¥   r$   c              ƒ  ó
   K  — dS r§   rq   r¨   s     r>   r©   z/AsyncAssistantEventHandler.on_tool_call_createdj  r>  r@   r&   c              ƒ  ó
   K  — dS r«   rq   r    s      r>   r¬   z-AsyncAssistantEventHandler.on_tool_call_deltam  r>  r@   c              ƒ  ó
   K  — dS r«   rq   r¨   s     r>   r®   z,AsyncAssistantEventHandler.on_tool_call_donep  r>  r@   r¯   r°   c              ƒ  ó
   K  — dS r²   rq   r³   s     r>   r´   z'AsyncAssistantEventHandler.on_exceptions  r>  r@   c              ƒ  ó
   K  — dS r¶   rq   r<   s    r>   r·   z%AsyncAssistantEventHandler.on_timeoutv  r>  r@   r   r   c              ƒ  ó
   K  — dS r¹   rq   rº   s     r>   r»   z-AsyncAssistantEventHandler.on_message_createdy  r>  r@   r    c              ƒ  ó
   K  — dS r½   rq   r    s      r>   r¾   z+AsyncAssistantEventHandler.on_message_delta|  r>  r@   c              ƒ  ó
   K  — dS rÀ   rq   rº   s     r>   rÁ   z*AsyncAssistantEventHandler.on_message_done•  r>  r@   r†   r   c              ƒ  ó
   K  — dS rÃ   rq   rÄ   s     r>   rÅ   z*AsyncAssistantEventHandler.on_text_created˜  r>  r@   r   c              ƒ  ó
   K  — dS rÇ   rq   r    s      r>   rÈ   z(AsyncAssistantEventHandler.on_text_delta›  r>  r@   c              ƒ  ó
   K  — dS rÊ   rq   rÄ   s     r>   rË   z'AsyncAssistantEventHandler.on_text_done©  r>  r@   rÌ   r   c              ƒ  ó
   K  — dS rÎ   rq   rÏ   s     r>   rÐ   z-AsyncAssistantEventHandler.on_image_file_done¬  r>  r@   c              ƒ  óö  K  — || _         |                      |¦  «        ƒ d {V —† t          || j        ¬¦  «        \  | _        }| j        �| j        | j        | j        j        <   t          || j        ¬¦  «         |D ]M}| j        €J ‚| j        j        |j	                 }|j
        dk    r |                      |j        ¦  «        ƒ d {V —† ŒN|j        dk    s7|j        dk    s,|j        dk    s!|j        dk    s|j        dk    s|j        d	k    r5|j        | _        | j        r |                      | j        ¦  «        ƒ d {V —† �n2|j        d
k    s!|j        dk    s|j        dk    s|j        dk    r|j        | _        �nø|j        dk    r"|                      |j        ¦  «        ƒ d {V —† �nË|j        dk    �rf| j        }|€J ‚|j        j        }|j        ��|j        D �]}|j
        dk    rL|j        rE|j        |j	                 }|j
        dk    sJ ‚|                      |j        |j        ¦  «        ƒ d {V —† |j	        | j        k    r•| j        �k| j        j
        dk    r&|                      | j        j        ¦  «        ƒ d {V —† n5| j        j
        dk    r%|                      | j        j        ¦  «        ƒ d {V —† |j	        | _        |j        |j	                 | _        |j        |j	                 | _        �Œ|                      |j        j        |¦  «        ƒ d {V —† �nY|j        dk    s|j        dk    r¼|j        | _        |j        | j        |j        j        <   | j        �n|j        j        | j                 }|j
        dk    r!|                      |j        ¦  «        ƒ d {V —† n+|j
        dk    r |                      |j        ¦  «        ƒ d {V —† |                      |j        ¦  «        ƒ d {V —† �n‡|j        dk    r3|j        j        | _        |                      |j        ¦  «        ƒ d {V —† �nI|j        dk    r|j        j        | _        �n+|j        dk    �rl| j        |j        j                 }	|j        j        }
|
j        �r|
j        j
        dk    �r	|
j        j        �ý|	j        j
        dk    sJ ‚|
j        j        D ]Þ}|j	        | j         k    r1|  !                    ||	j        j        |j	                 ¦  «        ƒ d {V —† |j	        | j         k    ro| j        � |                      | j        ¦  «        ƒ d {V —† |j	        | _         |	j        j        |j	                 | _        |  "                    | j        ¦  «        ƒ d {V —† |	j        j        |j	                 | _        Œß|  #                    |j        j        |	¦  «        ƒ d {V —† n³|j        dk    s!|j        dk    s|j        dk    s|j        dk    rO| j        r |                      | j        ¦  «        ƒ d {V —† |  $                    |j        ¦  «        ƒ d {V —† d | _        n8|j        dk    s|j        dk    s|j        dk    rntJ          rtM          |¦  «         d | _         d S rÒ   )'r.   r—   rÙ   r'  r&  rÚ   rÛ   r%  r‹   rÜ   rŒ   rÅ   r†   rˆ   r‰   r$  r2   r®   r»   rŠ   rÈ   r/   r0   rË   rÐ   rÌ   r¾   rÁ   r#  rœ   rÝ   r×   r1   r¬   r©   r¡   r¤   r   r   rÞ   s               r>   ræ   z*AsyncAssistantEventHandler._emit_sse_event¯  s×  è è € Ø#ˆÔØ�mŠm˜EÑ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"å7GØØ%)Ô%Dð8
ñ 8
ô 8
Ñ4ˆÔ'¨ð Ô*Ð6ØKOÔKjˆDÔ$ TÔ%DÔ%GÑHåØØ#Ô8ð	
ñ 	
ô 	
ð 	
ð
 )ð 	7ð 	7ˆMØÔ2Ð>Ð>Ð>àÔ3Ô;¸MÔ<OÔPˆEØŒz˜VÒ#Ð#Ø×*Ò*¨5¬:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6øð ŒKÐ1Ò1Ð1ØŒ{Ð4Ò4Ð4ØŒ{Ð2Ò2Ð2ØŒ{Ð1Ò1Ð1ØŒ{Ð:Ò:Ð:ØŒ{Ð5Ò5Ð5à!&¤ˆDÔØÔ&ð FØ×,Ò,¨TÔ-DÑEÔEÐEÐEÐEÐEÐEÐEÐEùàŒKÐ/Ò/Ð/ØŒ{Ð6Ò6Ð6ØŒ{Ð5Ò5Ð5ØŒ{Ð1Ò1Ð1à!&¤ˆDÔÑØŒ[Ð4Ò4Ð4Ø×)Ò)¨%¬*Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ñ5ØŒ[Ð2Ò2Ñ2ØÔ6ˆHØÐ'Ð'Ð'à!œJÔ,ˆMØÔ$Ñ0Ø%2Ô%:ð Zñ Z�MØ$Ô)¨VÒ3Ð3¸Ô8JÐ3Ø+3Ô+;¸MÔ<OÔ+PÐ(Ø/Ô4¸Ò>Ð>Ð>Ð>Ø"×0Ò0°Ô1CÐEUÔEZÑ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[ð
 %Ô*¨dÔ.QÒQÐQØÔ8ÐDØ#Ô<ÔAÀVÒKÐKØ&*×&7Ò&7¸Ô8UÔ8ZÑ&[Ô&[Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ø!%Ô!>Ô!CÀ|Ò!SÐ!SØ&*×&=Ò&=¸dÔ>[Ô>fÑ&gÔ&gÐ gÐ gÐ gÐ gÐ gÐ gÐ gà>KÔ>Q˜Ô;Ø8@Ô8HÈÔI\Ô8]˜Ô5ð 5=Ô4DÀ]ÔEXÔ4Y�DÔ1Ñ1à×'Ò'¨¬
Ô(8¸(ÑCÔCÐCÐCÐCÐCÐCÐCÐCÑCØŒ[Ð6Ò6Ð6¸%¼+ÐIdÒ:dÐ:dØ.3¬jˆDÔ+Ø6;´jˆDÔ$ U¤Z¤]Ñ3àÔ2Ð>Øœ*Ô,¨TÔ-PÔQ�Ø”< 6Ò)Ð)Ø×+Ò+¨G¬LÑ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø”\ \Ò1Ð1Ø×1Ò1°'Ô2DÑEÔEÐEÐEÐEÐEÐEÐEÐEà×&Ò& u¤zÑ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ñ2ØŒ[Ð5Ò5Ð5Ø).¬¬ˆDÔ&Ø×*Ò*¨5¬:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ñ6ØŒ[Ð9Ò9Ð9Ø).¬¬ˆDÔ&Ñ&ØŒ[Ð3Ò3Ñ3Ø Ô5°e´j´mÔDˆMà"œZÔ-ˆNàÔ+ñkà"Ô/Ô4¸ÒDÑDØ"Ô/Ô:ÐFà$Ô1Ô6¸,ÒFÐFÐFÐFØ'5Ô'BÔ'Mð kð k�OØ&Ô,°Ô0MÒMÐMØ"×5Ò5Ø+Ø)Ô6ÔAÀ/ÔBWÔXñô ð ð ð ð ð ð ð ð 'Ô,°Ô0MÒMÐMØÔ2Ð>Ø"&×"8Ò"8¸Ô9PÑ"QÔ"QÐQÐQÐQÐQÐQÐQÐQà8GÔ8M˜Ô5Ø2?Ô2LÔ2WÐXgÔXmÔ2n˜Ô/Ø"×7Ò7¸Ô8OÑPÔPÐPÐPÐPÐPÐPÐPÐPð /<Ô.HÔ.SÐTcÔTiÔ.j�DÔ+Ð+à×(Ò(Ø”
Ô Øñô ð ð ð ð ð ð ð ð ð
 ŒKÐ6Ò6Ð6ØŒ{Ð9Ò9Ð9ØŒ{Ð7Ò7Ð7ØŒ{Ð6Ò6Ð6àÔ&ð FØ×,Ò,¨TÔ-DÑEÔEÐEÐEÐEÐEÐEÐEÐEà×'Ò'¨¬
Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø)-ˆDÔ&Ð&ØŒ[Ð,Ò,Ð,°´Ð?[Ò0[Ð0[Ð_dÔ_jÐnuÒ_uÐ_uàõ ð $Ý˜UÑ#Ô#Ð#à"ˆÔÐÐr@   c               ó  K  — | j         }|st          d¦  «        ‚	 |2 3 d {V —†}|                      |¦  «        ƒ d {V —† |W V — Œ(6 n‚# t          j        t
          j        f$ r;}|                      ¦   «         ƒ d {V —† |                      |¦  «        ƒ d {V —† ‚ d }~wt          $ r!}|                      |¦  «        ƒ d {V —† ‚ d }~ww xY w	 |  
                    ¦   «         ƒ d {V —† d S # |  
                    ¦   «         ƒ d {V —† w xY wrè   )r(  rE   ræ   ré   rê   rë   rì   r·   r´   r°   r’   rí   s       r>   r9   z%AsyncAssistantEventHandler.__stream__@  s•  è è € Ø”ˆØð 	BÝÐ@ÑAÔAÐAð	 Ø%ð ð ð ð ð ð ð �eØ×*Ò*¨5Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1à�����ð  &˜vøõ Ô&­Ô(<Ð=ð 	ð 	ð 	Ø—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×#Ò# CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØøøøøÝð 	ð 	ð 	Ø×#Ò# CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Øøøøøð	øøøð  &ð —+’+‘-”-ÐÐÐÐÐÐÐÐÐø�$—+’+‘-”-ÐÐÐÐÐÐÐÐøøøs?   œA žA¤#A ÁC' ÁCÁ#6BÂCÂ&CÃCÃC' Ã'DNrï   )rA   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?   rG   r,  r/  rd   r  rT   rX   r\   r`   rg   rk   rx   r�   r8   r’   r—   rœ   r¡   r¤   r©   r¬   r®   r´   r·   r»   r¾   rÁ   rÅ   rÈ   rË   rÐ   ræ   r9   rq   r@   r>   r!  r!  Ì  s,  € € € € € € Ø#Ð#Ð#Ñ#ð
ðGð Gð Gð Gð ð ð ð ð0ð 0ð 0ð 0ðð ð ð ð(ð (ð (ð (ð ð#ð #ð #ñ „Xð#ð ð"ð "ð "ñ „Xð"ð ðEð Eð Eñ „XðEð ð/ð /ð /ñ „Xð/ð+ð +ð +ð +ð"ð "ð "ð "ðEð Eð Eð EðJð Jð Jð Jð3ð 3ð 3ð 3ðð ð ð ðAð Að Að Að@ð @ð @ð @ðð ð ð ð6Bð Bð Bð BðAð Að Að AðKð Kð Kð KðKð Kð Kð KðCð Cð Cð Cð-ð -ð -ð -ð?ð ?ð ?ð ?ðð ð ð ð2Að Að Að AðJð Jð Jð Jðð ð ð ðKð Kð Kð KðJð Jð Jð JðO#ð O#ð O#ð O#ðb ð  ð  ð  ð  ð  r@   r!  ÚAsyncAssistantEventHandlerTc                  ó*   — e Zd ZdZdd„Zdd	„Zdd„ZdS )Ú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:
            ...
    ```
    r  ú,Awaitable[AsyncStream[AssistantStreamEvent]]r  rQ  r*   r+   c               ó0   — d | _         || _        || _        d S r-   )Ú$_AsyncAssistantStreamManager__streamÚ+_AsyncAssistantStreamManager__event_handlerÚ)_AsyncAssistantStreamManager__api_requestr  s      r>   r?   z$AsyncAssistantStreamManager.__init__d  s#   € ð CGˆŒØ,ˆÔØ(ˆÔÐÐr@   c              ƒ  óv   K  — | j         ƒ d {V —†| _        | j                             | j        ¦  «         | j        S r-   )rX  rV  rW  rG   r<   s    r>   Ú
__aenter__z&AsyncAssistantStreamManager.__aenter__n  sD   è è € Ø"Ô0Ð0Ð0Ð0Ð0Ð0Ð0ˆŒØÔ×"Ò" 4¤=Ñ1Ô1Ð1ØÔ#Ð#r@   r  r  rî   r  r  r  c              ƒ  óZ   K  — | j         �!| j                              ¦   «         ƒ d {V —† d S d S r-   )rV  rd   r  s       r>   Ú	__aexit__z%AsyncAssistantStreamManager.__aexit__s  sD   è è € ð Œ=Ð$Ø”-×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð %Ð$r@   N)r  rT  r  rQ  r*   r+   )r*   rQ  r  )r  r  r  r  r?   rZ  r\  rq   r@   r>   rS  rS  X  sZ   € € € € € ð	ð 	ð)ð )ð )ð )ð$ð $ð $ð $ð
(ð (ð (ð (ð (ð (r@   rS  rˆ   r   rÓ   údict[str, RunStep]r*   r+   c                ó˜  — | j         dk    r| j        || j        j        <   d S | j         dk    r�| j        }||j                 }|j        r‚t	          t          dt          |dd¬¦  «        ¦  «        t          dt          |j        dd¬¦  «        ¦  «        ¦  «        }t          t          t          t          |¬¦  «        ¦  «        ||j        <   d S )NrÕ   rÖ   údict[object, object]TF©Úexclude_unsetÚwarnings©Útype_r�   )	rˆ   r‰   rÚ   rŠ   Úaccumulate_deltar   r   r#   r   )rˆ   rÓ   r‰   r�   Úmergeds        r>   rÛ   rÛ   }  sØ   € ð
 „{Ð/Ò/Ð/Ø,1¬JÐ˜5œ:œ=Ñ)Øˆà„{Ð-Ò-Ð-ØŒzˆØ% d¤gÔ.ˆàŒ:ð 	iÝ%ÝØ*Ý˜x°tÀeÐLÑLÔLñô õ Ø*Ý˜tœz¸ÈÐNÑNÔNñô ñ	ô 	ˆFõ /3µ7½NÕQXÐ`fÐ<gÑ<gÔ<gÑ.hÔ.hÐ˜xœ{Ñ+àˆ4r@   r`   r^   ú0tuple[Message | None, list[MessageContentDelta]]c                ó.  — | j         dk    r	| j        g fS g }| j         dk    r|g fS |st          d¦  «        ‚| j        }|j        j        �rH|j        j        D �]:}	 |j        |j                 }t          t          dt          |dd¬¦  «        ¦  «        t          dt          |dd¬¦  «        ¦  «        ¦  «        }t          t          t          t          t          t          ¦  «        |¬¦  «        ¦  «        |j        |j        <   Œ¬# t          $ rƒ |j                             |j        t          t          t          t          t          t          ¦  «        t          |dd¬¦  «        ¬¦  «        ¦  «        ¦  «         |                     |¦  «         Y �Œ8w xY w||fS )	zIReturns a tuple of message snapshot and newly created text message deltasrÔ   r…   z5Encountered a message delta with no previous snapshotr_  TFr`  rc  )rˆ   r‰   rE   rŠ   r‹   rÜ   re  r   r   r!   r   r   Ú
IndexErrorÚinsertÚappend)rˆ   r`   rß   r‰   r�   rà   rf  s          r>   rÙ   rÙ   š  sÛ  € ð „{Ð.Ò.Ð.ØŒz˜2ˆ~Ðà-/€Kà„{Ð,Ò,Ð,Ø'¨Ð+Ð+à#ð TÝÐRÑSÔSÐSàŒ:€DØ„zÔñ #Ø!œZÔ/ð "	ñ "	ˆMð!Ø0Ô8¸Ô9LÔM�õ *ÝØ.Ý" 5¸ÀuÐMÑMÔMñô õ Ø.Ý" =ÀÈuÐUÑUÔUñô ñ	ô 	�õ IMÝ"Ý"å"¥3­Ñ7Ô7Ø$ðñ ô ñIô IÐ(Ô0°Ô1DÑEÐEøõ1 ð 2ð 2ð 2Ø(Ô0×7Ò7Ø!Ô'ÝÝ&Ý&å"&¥s­NÑ";Ô";Ý",¨]È$ÐY^Ð"_Ñ"_Ô"_ðñ ô ñô ñ
ô 
ð 
ð ×"Ò" =Ñ1Ô1Ð1Ð1Ñ1ð2øøøðB $ [Ð0Ð0s   ÁDÄB	FÆFÚaccr_  rŠ   c                ó8  — |                      ¦   «         D �]\  }}|| vr|| |<   Œ| |         }|€|| |<   Œ |dk    s|dk    r|| |<   Œ2t          |t          ¦  «        rt          |t          ¦  «        r||z  }�n›t          |t          t          f¦  «        r#t          |t          t          f¦  «        r||z  }�n\t          |¦  «        r!t          |¦  «        rt          ||¦  «        }�n,t          |¦  «        �rt          |¦  «        �rt          d„ |D ¦   «         ¦  «        r| 	                    |¦  «         �Œ"|D ]Ù}t          |¦  «        st          d|› �¦  «        ‚	 |d         }n%# t          $ r}t          d|› �¦  «        |‚d }~ww xY wt          |t          ¦  «        st          d|› �¦  «        ‚	 ||         }t          |¦  «        st          d¦  «        ‚t          ||¦  «        ||<   Œ´# t          $ r |                     ||¦  «         Y ŒÖw xY w|| |<   �Œ| S )NrÜ   rŒ   c              3  óZ   K  — | ]&}t          |t          t          t          f¦  «        V — Œ'd S r-   )Ú
isinstanceÚstrÚintÚfloat)rs   Úxs     r>   ú	<genexpr>z#accumulate_delta.<locals>.<genexpr>ò  s3   è è € ÐGÐG¸•:˜a¥#¥s­EÐ!2Ñ3Ô3ÐGÐGÐGÐGÐGÐGr@   z1Unexpected list delta entry is not a dictionary: z2Expected list delta entry to have an `index` key; z>Unexpected, list delta entry `index` value is not an integer; znot handled yet)Úitemsro  rp  rq  rr  r   re  r   ÚallÚextendÚ	TypeErrorÚKeyErrorrE   ri  rj  )	rl  rŠ   ÚkeyÚdelta_valueÚ	acc_valueÚdelta_entryrÜ   rî   Ú	acc_entrys	            r>   re  re  Ô  s­  € Ø!ŸKšK™MœMð 7ñ 7Ñˆˆ[Ø�cˆ>ˆ>Ø"ˆC�‰HØà˜”Hˆ	ØÐØ"ˆC�‰HØð �'Š>ˆ>˜S Fš]˜]Ø"ˆC�‰HØå�i¥Ñ%Ô%ð !	P­*°[Å#Ñ*FÔ*Fð !	PØ˜Ñ$ˆI‰IÝ˜	¥C­ <Ñ0Ô0ð 	PµZÀÍcÕSXÈ\Ñ5ZÔ5Zð 	PØ˜Ñ$ˆI‰IÝ�YÑÔð 	P¥G¨KÑ$8Ô$8ð 	PÝ(¨°KÑ@Ô@ˆI‰IÝ�YÑÔñ 	P¥G¨KÑ$8Ô$8ñ 	Põ ÐGÐG¸YÐGÑGÔGÑGÔGð Ø× Ò  Ñ-Ô-Ð-Ùà*ð Pð P�Ý˜{Ñ+Ô+ð gÝ#Ð$eÐXcÐ$eÐ$eÑfÔfÐfðtØ'¨Ô0�E�EøÝð tð tð tÝ&Ð'iÐ\gÐ'iÐ'iÑjÔjÐpsÐsøøøøðtøøøõ " %­Ñ-Ô-ð nÝ#Ð$lÐejÐ$lÐ$lÑmÔmÐmðPØ )¨%Ô 0�Iõ # 9Ñ-Ô-ð ;Ý'Ð(9Ñ:Ô:Ð:å'7¸	À;Ñ'OÔ'O�I˜eÑ$Ð$øõ "ð 9ð 9ð 9Ø×$Ò$ U¨KÑ8Ô8Ð8Ð8Ð8ð9øøøð ˆˆC‰‰à€Js*   ÅE&Å&
FÅ0FÆFÆ3G-Ç- HÈH)rˆ   r   rÓ   r]  r*   r+   )rˆ   r   r`   r^   r*   rg  )rl  r_  rŠ   r_  r*   r_  )9Ú
__future__r   rë   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   r   ré   Ú_utilsr   r   r   r   Ú_compatr   Ú_modelsr   Ú
_streamingr   r   Ú
types.betar   Útypes.beta.threadsr   r   r   r   r   r    r!   r"   Útypes.beta.threads.runsr#   r$   r%   r&   r(   r  r  r!  rQ  rS  rÛ   rÙ   re  rq   r@   r>   ú<module>rŠ     sÕ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sà €€€à UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø .Ð .Ð .Ð .Ð .Ð .ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð VÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UðFð Fð Fð Fð Fñ Fô Fð FðR !˜Ð!9ÐAVÐWÑWÔWÐ ð!"ð !"ð !"ð !"ð !"˜WÐ%;Ô<ñ !"ô !"ð !"ðHF ð F ð F ð F ð F ñ F ô F ð F ðR &˜gÐ&CÐKeÐfÑfÔfÐ ð"(ð "(ð "(ð "(ð "( 'Ð*EÔ"Fñ "(ô "(ð "(ðJð ð ð ð:71ð 71ð 71ð 71ðt:ð :ð :ð :ð :ð :r@   