§
     �’jd£  ã                  óÖ  — 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mZmZmZ ddl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/m0Z0 d+d„Z1 G d„ d¦  «        Z2 e	de2¬¦  «        Z3 G d„ dee3         ¦  «        Z4 G d„ d¦  «        Z5 e	de5¬¦  «        Z6 G d„ dee6         ¦  «        Z7d,d"„Z8d-d&„Z9d.d*„Z:d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)Útimeout_exceptions)Úconstruct_type)ÚStreamÚAsyncStream)ÚAssistantStreamEvent)ÚRunÚTextÚMessageÚ	ImageFileÚ	TextDeltaÚMessageDeltaÚMessageContentÚMessageContentDelta)ÚRunStepÚToolCallÚRunStepDeltaÚToolCallDeltaÚreturnútuple[type[Exception], ...]c                 ó<   — g t          ¦   «         ¢t          j        ‘R S ©N)r   ÚasyncioÚTimeoutError© ó    úNC:\Projects\DSCons\.venv\Lib\site-packages\openai\lib\streaming\_assistants.pyÚ_timeout_exceptionsr1      s   € Ø8ÕÑ!Ô!Ð8¥7Ô#7Ð8Ð8Ð8r/   c                  ó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_deltasr(   ÚNonec                ó  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        i | _        i | _        d | _	        |  
                    ¦   «         | _        |                      ¦   «         | _        d | _        d S 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__r4   Ú
__stream__Ú	_iteratorÚ_AssistantEventHandler__stream©Úselfs    r0   Ú__init__zAssistantEventHandler.__init__-   s‚   € Ø;?ˆÔØ:>ˆÔ+Ø?CˆÔ%Ø48ˆÔ%Ø37ˆÔØ15ˆÔ"Ø)-ˆÔØ8:ˆÔ!Ø79ˆÔ Ø:>ˆÔ'à×/Ò/Ñ1Ô1ˆÔØŸšÑ*Ô*ˆŒØ=AˆŒˆˆr/   Ú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)rD   ÚRuntimeError©rF   rH   s     r0   Ú_initzAssistantEventHandler._init=   ó1   € ØŒ=ð 	Ýð Lñô ð ð ˆŒˆˆr/   r   c                ó4   — | j                              ¦   «         S r+   )rC   Ú__next__rE   s    r0   rQ   zAssistantEventHandler.__next__E   s   € ØŒ~×&Ò&Ñ(Ô(Ð(r/   úIterator[AssistantStreamEvent]c              #  ó&   K  — | j         D ]}|V — Œd S r+   ©rC   ©rF   Úitems     r0   Ú__iter__zAssistantEventHandler.__iter__H   s,   è è € Ø”Nð 	ð 	ˆDØˆJˆJˆJˆJð	ð 	r/   úAssistantStreamEvent | Nonec                ó   — | j         S r+   ©r7   rE   s    r0   Úcurrent_eventz#AssistantEventHandler.current_eventL   ó   € àÔ"Ð"r/   ú
Run | Nonec                ó   — | j         S r+   )r=   rE   s    r0   Úcurrent_runz!AssistantEventHandler.current_runP   ó   € àÔ!Ð!r/   úRunStep | Nonec                ó8   — | j         sd S | j        | j                  S r+   )r<   r>   rE   s    r0   Úcurrent_run_step_snapshotz/AssistantEventHandler.current_run_step_snapshotT   ó#   € àÔ)ð 	Ø�4àÔ(¨Ô)CÔDÐDr/   úMessage | Nonec                ó   — | j         S r+   )r@   rE   s    r0   Úcurrent_message_snapshotz.AssistantEventHandler.current_message_snapshot[   ó   € àÔ.Ð.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)rD   ÚcloserE   s    r0   rk   zAssistantEventHandler.close_   s2   € ð Œ=ð 	"ØŒM×ÒÑ!Ô!Ð!Ð!Ð!ð	"ð 	"r/   c                ó$   — t          | ¦  «         dS ©z(Waits until the stream has been consumedN)r   rE   s    r0   Ú
until_donez AssistantEventHandler.until_doneh   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)rn   r=   rL   rE   s    r0   Úget_final_runz#AssistantEventHandler.get_final_runl   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 r.   r.   ©Ú.0Ústeps     r0   ú
<listcomp>z=AssistantEventHandler.get_final_run_steps.<locals>.<listcomp>|   ó   € ÐDÐDÐD˜�ÐDÐDÐDr/   )rn   r>   rL   ÚvaluesrE   s    r0   Úget_final_run_stepsz)AssistantEventHandler.get_final_run_stepsu   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 r.   r.   ©ry   Úmessages     r0   r{   z<AssistantEventHandler.get_final_messages.<locals>.<listcomp>…   ó   € ÐIÐIÐI˜G�ÐIÐIÐIr/   )rn   r?   rL   r}   rE   s    r0   Ú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©rF   rŽ   Úcontent_deltas      r0   rA   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.
        Nr.   rE   s    r0   Úon_endzAssistantEventHandler.on_end’   ó   € € € r/   rŽ   c                ó   — dS ©z2Callback that is fired for every Server-Sent-EventNr.   ©rF   rŽ   s     r0   Úon_eventzAssistantEventHandler.on_event™   r™   r/   Úrun_stepr$   c                ó   — dS ©z1Callback that is fired when a run step is createdNr.   ©rF   rž   s     r0   Ú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
            )
        ],
        Nr.   ©rF   r�   r£   s      r0   Úon_run_step_deltaz'AssistantEventHandler.on_run_step_deltaŸ   r™   r/   c                ó   — dS ©z3Callback that is fired when a run step is completedNr.   r¡   s     r0   Ú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 createdNr.   ©rF   r«   s     r0   Ú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 encounteredNr.   r¦   s      r0   Úon_tool_call_deltaz(AssistantEventHandler.on_tool_call_deltaÀ   r™   r/   c                ó   — dS r±   r.   r®   s     r0   Úon_tool_call_donez'AssistantEventHandler.on_tool_call_doneÃ   r™   r/   Ú	exceptionÚ	Exceptionc                ó   — dS ©z4Fired whenever an exception happens during streamingNr.   ©rF   rµ   s     r0   Úon_exceptionz"AssistantEventHandler.on_exceptionÆ   r™   r/   c                ó   — dS ©zFires if the request times outNr.   rE   s    r0   Ú
on_timeoutz AssistantEventHandler.on_timeoutÉ   r™   r/   r…   r   c                ó   — dS ©z0Callback that is fired when a message is createdNr.   ©rF   r…   s     r0   Ú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'
            ),
        )
        Nr.   r¦   s      r0   Úon_message_deltaz&AssistantEventHandler.on_message_deltaÏ   r™   r/   c                ó   — dS ©z2Callback that is fired when a message is completedNr.   rÀ   s     r0   Ú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 createdNr.   ©rF   rŒ   s     r0   Ú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 equation")),
        Nr.   r¦   s      r0   Úon_text_deltaz#AssistantEventHandler.on_text_deltaî   r™   r/   c                ó   — dS ©z<Callback that is fired when a text content block is finishedNr.   rÊ   s     r0   Ú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 finishedNr.   ©rF   rÑ   s     r0   Ú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Ž   rg   )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)'r7   r�   Úaccumulate_eventr@   r?   ÚidÚaccumulate_run_stepr>   r‘   Úindexr’   rË   rŒ   rŽ   r�   r=   r;   r´   rÁ   r�   rÍ   r8   r9   rÐ   rÕ   rÑ   rÄ   rÇ   r<   r¢   Ústep_detailsrÜ   r:   r²   r¯   r§   rª   r   r   ©rF   rŽ   Únew_contentr•   Úblockr£   Úmessage_deltaÚsnapshot_contentr‘   Ústep_snapshotÚrun_step_deltaÚtool_call_deltas               r0   Ú_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 — Œnf# t          ¦   «         $ r/}|                      ¦   «          |                      |¦  «         ‚ d }~wt          $ r}|                      |¦  «         ‚ d }~ww xY w	 |                      ¦   «          d S # |                      ¦   «          w xY w©NzStream has not been started yet)rD   rL   rë   r1   r½   rº   r¶   r˜   ©rF   rH   rŽ   Úexcs       r0   rB   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   œ; ºB8 »BÁ*A6Á6BÂBÂBÂB8 Â8CN©r(   r5   )rH   rI   r(   r5   ©r(   r   )r(   rR   ©r(   rX   ©r(   r]   ©r(   ra   ©r(   re   ©r(   r   ©r(   rs   ©r(   r   )r(   rˆ   ©rŽ   r   r(   r5   ©rž   r$   r(   r5   ©r�   r&   r£   r$   r(   r5   ©r«   r%   r(   r5   ©r�   r'   r£   r%   r(   r5   ©rµ   r¶   r(   r5   ©r…   r   r(   r5   ©r�   r!   r£   r   r(   r5   ©rŒ   r   r(   r5   ©r�   r    r£   r   r(   r5   ©rÑ   r   r(   r5   )&Ú__name__Ú
__module__Ú__qualname__Ú__annotations__rG   rN   rQ   rW   Úpropertyr[   r_   rc   rg   rk   rn   rr   r~   r‡   rA   r˜   r�   r¢   r§   rª   r¯   r²   r´   rº   r½   rÁ   rÄ   rÇ   rË   rÍ   rÐ   rÕ   rë   rB   r.   r/   r0   r3   r3      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/   r3   Ú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(   r5   c               ó0   — d | _         || _        || _        d S r+   )Ú_AssistantStreamManager__streamÚ&_AssistantStreamManager__event_handlerÚ$_AssistantStreamManager__api_request©rF   r  r  s      r0   rG   zAssistantStreamManager.__init__¶  s"   € ð >BˆŒØ,ˆÔØ(ˆÔÐÐr/   c                ó€   — |                       ¦   «         | _        | j                             | j        ¦  «         | j        S r+   )r  r  r  rN   rE   s    r0   Ú	__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  rk   ©rF   r  rï   r  s       r0   Ú__exit__zAssistantStreamManager.__exit__Å  s.   € ð Œ=Ð$ØŒM×ÒÑ!Ô!Ð!Ð!Ð!ð %Ð$r/   N)r  r  r  r	  r(   r5   )r(   r	  ©r  r  rï   r  r  r  r(   r5   )r  r  r  Ú__doc__rG   r  r  r.   r/   r0   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]r4   r(   r5   c                ó  — d | _         d | _        d | _        d | _        d | _        d | _        d | _        i | _        i | _        d | _	        |  
                    ¦   «         | _        |                      ¦   «         | _        d | _        d S r+   )r7   r8   r9   r:   r;   Ú0_AsyncAssistantEventHandler__current_run_step_idÚ(_AsyncAssistantEventHandler__current_runÚ/_AsyncAssistantEventHandler__run_step_snapshotsÚ._AsyncAssistantEventHandler__message_snapshotsÚ5_AsyncAssistantEventHandler__current_message_snapshotrA   r4   rB   rC   Ú#_AsyncAssistantEventHandler__streamrE   s    r0   rG   z#AsyncAssistantEventHandler.__init__Ý  s‚   € Ø;?ˆÔØ:>ˆÔ+Ø?CˆÔ%Ø48ˆÔ%Ø37ˆÔØ15ˆÔ"Ø)-ˆÔØ8:ˆÔ!Ø79ˆÔ Ø:>ˆÔ'à×/Ò/Ñ1Ô1ˆÔØŸšÑ*Ô*ˆŒØBFˆŒˆˆr/   rH   ú!AsyncStream[AssistantStreamEvent]c                ó@   — | j         rt          d¦  «        ‚|| _         d S rK   )r)  rL   rM   s     r0   rN   z AsyncAssistantEventHandler._inití  rO   r/   r   c              ƒ  óD   K  — | j                              ¦   «         ƒ d {V —†S r+   )rC   Ú	__anext__rE   s    r0   r-  z$AsyncAssistantEventHandler.__anext__õ  s,   è è € Ø”^×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/r/   ú#AsyncIterator[AssistantStreamEvent]c               ó4   K  — | j         2 3 d {V —†}|W V — Œ6 d S r+   rT   rU   s     r0   Ú	__aiter__z$AsyncAssistantEventHandler.__aiter__ø  sF   è è € Øœ.ð 	ð 	ð 	ð 	ð 	ð 	ð 	�$ØˆJˆJˆJˆJˆJð )˜.˜.s   Šc              ƒ  óZ   K  — | j         r!| j                              ¦   «         ƒ d{V —† dS dS rj   )r)  rk   rE   s    r0   rk   z AsyncAssistantEventHandler.closeü  sH   è è € ð Œ=ð 	(Ø”-×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð	(ð 	(r/   rX   c                ó   — | j         S r+   rZ   rE   s    r0   r[   z(AsyncAssistantEventHandler.current_event  r\   r/   r]   c                ó   — | j         S r+   )r%  rE   s    r0   r_   z&AsyncAssistantEventHandler.current_run	  r`   r/   ra   c                ó8   — | j         sd S | j        | j                  S r+   )r$  r&  rE   s    r0   rc   z4AsyncAssistantEventHandler.current_run_step_snapshot  rd   r/   re   c                ó   — | j         S r+   )r(  rE   s    r0   rg   z3AsyncAssistantEventHandler.current_message_snapshot  rh   r/   c              ƒ  ó4   K  — t          | ¦  «        ƒ d{V —† dS rm   )r   rE   s    r0   rn   z%AsyncAssistantEventHandler.until_done  s,   è è € å$ TÑ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*r/   r   c              ƒ  ót   K  — |                       ¦   «         ƒ d{V —† | j        st          d¦  «        ‚| j        S )rp   Nrq   )rn   r%  rL   rE   s    r0   rr   z(AsyncAssistantEventHandler.get_final_run  sK   è è € à�oŠoÑÔÐÐÐÐÐÐÐàÔ!ð 	<ÝÐ:Ñ;Ô;Ð;àÔ!Ð!r/   rs   c              ƒ  ó¬   K  — |                       ¦   «         ƒ d{V —† | j        st          d¦  «        ‚d„ | j                             ¦   «         D ¦   «         S )ru   Nrv   c                ó   — g | ]}|‘ŒS r.   r.   rx   s     r0   r{   zBAsyncAssistantEventHandler.get_final_run_steps.<locals>.<listcomp>,  r|   r/   )rn   r&  rL   r}   rE   s    r0   r~   z.AsyncAssistantEventHandler.get_final_run_steps%  se   è è € à�oŠoÑÔÐÐÐÐÐÐÐàÔ(ð 	5ÝÐ3Ñ4Ô4Ð4àDÐD Ô!:×!AÒ!AÑ!CÔ!CÐDÑDÔDÐDr/   r   c              ƒ  ó¬   K  — |                       ¦   «         ƒ d{V —† | j        st          d¦  «        ‚d„ | j                             ¦   «         D ¦   «         S )r�   Nr‚   c                ó   — g | ]}|‘ŒS r.   r.   r„   s     r0   r{   zAAsyncAssistantEventHandler.get_final_messages.<locals>.<listcomp>5  r†   r/   )rn   r'  rL   r}   rE   s    r0   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      r0   rA   z*AsyncAssistantEventHandler.__text_deltas__7  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—   r.   rE   s    r0   r˜   z!AsyncAssistantEventHandler.on_endB  ó
   è è € € € r/   rŽ   c              ƒ  ó
   K  — dS r›   r.   rœ   s     r0   r�   z#AsyncAssistantEventHandler.on_eventI  r?  r/   rž   r$   c              ƒ  ó
   K  — dS r    r.   r¡   s     r0   r¢   z.AsyncAssistantEventHandler.on_run_step_createdL  r?  r/   r�   r&   r£   c              ƒ  ó
   K  — dS r¥   r.   r¦   s      r0   r§   z,AsyncAssistantEventHandler.on_run_step_deltaO  r?  r/   c              ƒ  ó
   K  — dS r©   r.   r¡   s     r0   rª   z+AsyncAssistantEventHandler.on_run_step_donej  r?  r/   r«   r%   c              ƒ  ó
   K  — dS r­   r.   r®   s     r0   r¯   z/AsyncAssistantEventHandler.on_tool_call_createdm  r?  r/   r'   c              ƒ  ó
   K  — dS r±   r.   r¦   s      r0   r²   z-AsyncAssistantEventHandler.on_tool_call_deltap  r?  r/   c              ƒ  ó
   K  — dS r±   r.   r®   s     r0   r´   z,AsyncAssistantEventHandler.on_tool_call_dones  r?  r/   rµ   r¶   c              ƒ  ó
   K  — dS r¸   r.   r¹   s     r0   rº   z'AsyncAssistantEventHandler.on_exceptionv  r?  r/   c              ƒ  ó
   K  — dS r¼   r.   rE   s    r0   r½   z%AsyncAssistantEventHandler.on_timeouty  r?  r/   r…   r   c              ƒ  ó
   K  — dS r¿   r.   rÀ   s     r0   rÁ   z-AsyncAssistantEventHandler.on_message_created|  r?  r/   r!   c              ƒ  ó
   K  — dS rÃ   r.   r¦   s      r0   rÄ   z+AsyncAssistantEventHandler.on_message_delta  r?  r/   c              ƒ  ó
   K  — dS rÆ   r.   rÀ   s     r0   rÇ   z*AsyncAssistantEventHandler.on_message_done˜  r?  r/   rŒ   r   c              ƒ  ó
   K  — dS rÉ   r.   rÊ   s     r0   rË   z*AsyncAssistantEventHandler.on_text_created›  r?  r/   r    c              ƒ  ó
   K  — 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")),
        Nr.   r¦   s      r0   rÍ   z(AsyncAssistantEventHandler.on_text_deltaž  r?  r/   c              ƒ  ó
   K  — dS rÏ   r.   rÊ   s     r0   rÐ   z'AsyncAssistantEventHandler.on_text_done¬  r?  r/   rÑ   r   c              ƒ  ó
   K  — dS rÓ   r.   rÔ   s     r0   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×   )'r7   r�   rÞ   r(  r'  rß   rà   r&  r‘   rá   r’   rË   rŒ   rŽ   r�   r%  r;   r´   rÁ   r�   rÍ   r8   r9   rÐ   rÕ   rÑ   rÄ   rÇ   r$  r¢   râ   rÜ   r:   r²   r¯   r§   rª   r   r   rã   s               r0   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 nx# t          ¦   «         $ 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)  rL   rë   r1   r½   rº   r¶   r˜   rî   s       r0   rB   z%AsyncAssistantEventHandler.__stream__C  s�  è è € Ø”ˆØð 	BÝÐ@ÑAÔAÐAð	 Ø%ð ð ð ð ð ð ð �eØ×*Ò*¨5Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1à�����ð  &˜vøõ #Ñ$Ô$ð 	ð 	ð 	Ø—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×#Ò# CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØøøøøÝð 	ð 	ð 	Ø×#Ò# CÑ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Øøøøøð	øøøð  &ð —+’+‘-”-ÐÐÐÐÐÐÐÐÐø�$—+’+‘-”-ÐÐÐÐÐÐÐÐøøøs?   œA žA¤#A ÁC ÁB=Á6BÂB=ÂB8Â8B=Â=C ÃC9Nrð   )rH   r*  r(   r5   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   rN   r-  r0  rk   r  r[   r_   rc   rg   rn   rr   r~   r‡   rA   r˜   r�   r¢   r§   rª   r¯   r²   r´   rº   r½   rÁ   rÄ   rÇ   rË   rÍ   rÐ   rÕ   rë   rB   r.   r/   r0   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  rR  r(   r5   c               ó0   — d | _         || _        || _        d S r+   )Ú$_AsyncAssistantStreamManager__streamÚ+_AsyncAssistantStreamManager__event_handlerÚ)_AsyncAssistantStreamManager__api_requestr  s      r0   rG   z$AsyncAssistantStreamManager.__init__g  s#   € ð CGˆŒØ,ˆÔØ(ˆÔÐÐr/   c              ƒ  óv   K  — | j         ƒ d {V —†| _        | j                             | j        ¦  «         | j        S r+   )rY  rW  rX  rN   rE   s    r0   Ú
__aenter__z&AsyncAssistantStreamManager.__aenter__q  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+   )rW  rk   r  s       r0   Ú	__aexit__z%AsyncAssistantStreamManager.__aexit__v  sD   è è € ð Œ=Ð$Ø”-×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð %Ð$r/   N)r  rU  r  rR  r(   r5   )r(   rR  r  )r  r  r  r   rG   r[  r]  r.   r/   r0   rT  rT  [  sZ   € € € € € ð	ð 	ð)ð )ð )ð )ð$ð $ð $ð $ð
(ð (ð (ð (ð (ð (r/   rT  rŽ   r   rØ   údict[str, RunStep]r5   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        r0   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/   rg   re   ú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`  TFra  rd  )rŽ   r�   rL   r�   r‘   rá   rf  r   r   r"   r   r   Ú
IndexErrorÚinsertÚappend)rŽ   rg   rä   r�   r•   rå   rg  s          r0   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)ry   Úxs     r0   ú	<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)Úitemsrp  rq  rr  rs  r   rf  r   ÚallÚextendÚ	TypeErrorÚKeyErrorrL   rj  rk  )	rm  r�   ÚkeyÚdelta_valueÚ	acc_valueÚdelta_entryrá   rï   Ú	acc_entrys	            r0   rf  rf  ×  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(   r5   )rŽ   r   rg   re   r(   rh  )rm  r`  r�   r`  r(   r`  );Ú
__future__r   r,   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   r   Ú_utilsr   r   r   r   Ú_compatr   Ú_httpx2r   Ú_modelsr   Ú
_streamingr   r   Ú
types.betar   Útypes.beta.threadsr   r   r   r   r    r!   r"   r#   Útypes.beta.threads.runsr$   r%   r&   r'   r1   r3   r	  r  r"  rR  rT  rà   rÞ   rf  r.   r/   r0   ú<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ð9ð 9ð 9ð 9ð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/   