Ë
    uPêj²Ä  ã            %       ó  — U d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlZd dlmZmZ d dlmZ 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 d
dlmZ d
dlm Z  d
dl!­ d
dl"­ ddl#m$Z$  e «       Z%e
e&d<    e«       Z'e
e&d<   	 d@ded   dedz  de(e   fd„Z)	 	 	 	 dAded   de	dz  de*dz  de*dz  de*dz  de+e   fd„Z,	 d@ded   dedz  defd„Z-	 	 	 	 	 	 	 	 	 	 	 	 	 dBded   de*de*dz  de*dz  de*dz  d e.e/e*e	f      dz  d!e/e*e	f   dz  d"e/e*e*f   dz  d#e0dz  d$e0dz  d%e*e/e*e*f   z  dz  de	dz  de*dz  de*dz  de*dz  deee	e	ef   z  f d&„Z1	 d@ded   dedz  defd'„Z2	 	 	 	 dAded   d(e*de	dz  de*dz  de*dz  de*dz  deee	e	ef   z  fd)„Z3ded   de4fd*„Z5	 	 	 	 dAded   d+ee6   dz  d"e/dz  d!e7dz  dedz  de4fd,„Z8	 d@ded   d-e*dedz  de4fd.„Z9	 d@ded   d-e*de4fd/„Z:	 	 	 dCded   d-e*d0ed1   d2e*d3e.e;   dz  d"e/dz  de<fd4„Z=	 	 	 dCded   d-e*d0ed1   d2e*d3e.e;   dz  d"e/dz  de<fd5„Z>	 d@ded   d-e*dedz  de(e<   fd6„Z?	 d@ded   d-e*de	dz  de+e<   fd7„Z@dd8œd9eAdz  deBeC   fd:„ZD	 	 	 	 	 	 	 dDded   d-e*d(e*d;e*dz  de*dz  d"e/dz  de*dz  d<eEdz  d eeF   dz  de	dz  deGfd=„ZHdd8œd9eAdz  deIeA   fd>„ZJ	 	 	 	 	 	 	 	 dEded   d-e*d(e*d;e*dz  de*dz  d"e/dz  de*dz  d<eEdz  d eeF   dz  de	dz  d9eAdz  deGfd?„ZKy)Fé    N)Ú	CoroutineÚIterable)Úpartial)ÚAnyÚFinalÚLiteral)ÚAsyncOpenAIÚOpenAI)Ú	Assistant)ÚAssistantDeleted)ÚGenericLiteLLMParams)Úexception_typeÚget_litellm_paramsÚget_llm_providerÚ
get_secretÚsupports_httpx_timeouté   )ÚAzureAssistantsAPI)ÚOpenAIAssistantsAPI)Ú*é   )Úget_optional_params_add_messageÚopenai_assistants_apiÚazure_assistants_apiÚcustom_llm_provider)ÚopenaiÚazureÚclientÚreturnc              ‹   ó¢  K  — t        j                  «       }d|d<   	 t        t        | |fi |¤Ž}t	        j
                  «       }t        |j                  |«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }t        j                  |«      r|ƒ d {  –—† }	|	S |}	|	S 7 Œ)7 Œ# t        $ r}
t        d| |
i |¬«      ‚d }
~
ww xY w­w)NTÚaget_assistantsÚ ©Úmodelr   ©r$   r   Úoriginal_exceptionÚcompletion_kwargsÚextra_kwargs)ÚasyncioÚget_event_loopr   Úget_assistantsÚcontextvarsÚcopy_contextÚrunr   Úrun_in_executorÚiscoroutineÚ	Exceptionr   ©r   r   ÚkwargsÚloopÚfuncÚctxÚfunc_with_contextÚ_Úinit_responseÚresponseÚes              ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/assistants/main.pyr!   r!   &   sê   è ø€ ô
 ×(Ñ(Ó*€Dà $€FÐÑð
äœnÐ.AÀ6ÑTÈVÑTˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üsY   ‚C�A#B. Â B*ÂB. ÂB,Â B. Â%CÂ&B. Â)CÂ*B. Â,B. Â.	CÂ7CÃCÃCÚapi_keyÚapi_baseÚapi_versionc                 ó   — |j                  dd «      }|�t        |t        «      st        d«      ‚t	        d"|||dœ|¤Ž}t        d"i |¤Ž}|j                  xs |j                  dd«      xs d}	|	�:t        |	t        j                  «      r t        | «      du r|	j                  xs d}
|
}	n,|	�&t        |	t        j                  «      st        |	«      }	n|	€d}	d }| dk(  rù|j                  xsB t        j                  xs0 t        j                   d	«      xs t        j                   d
«      xs d}|j"                  xs, t        j"                  xs t        j                   dd «      xs d }|j$                  xs9 t        j$                  xs' t        j&                  xs t        j                   d«      }t(        j+                  |||	|j,                  |||¬«      }�nT| dk(  rý|j                  xs t        j                  xs t/        d«      }|j0                  xs t        j0                  xs t/        d«      }|j$                  xs< t        j$                  xs* t        j2                  xs t/        d«      xs t/        d«      }|j                  di «      }d }|�|j                  dd «      }nt/        d«      }t4        j+                  |||||	|j,                  |||¬«	      }nRt        j6                  j9                  d| › d�d| t        j:                  ddt        j<                  dd¬«      ¬ «      ¬!«      ‚|€Rt        j6                  j9                  d| › d�d| t        j:                  ddt        j<                  dd¬«      ¬ «      ¬!«      ‚|S )#Nr!   zFInvalid value passed in for aget_assistants. Only bool or None allowed©r=   r>   r?   Úrequest_timeoutéX  Fç     À‚@r   ÚOPENAI_BASE_URLÚOPENAI_API_BASEúhttps://api.openai.com/v1ÚOPENAI_ORGANIZATIONÚOPENAI_API_KEY)r>   r=   ÚtimeoutÚmax_retriesÚorganizationr   r!   r   ÚAZURE_API_BASEÚAZURE_API_VERSIONÚAZURE_OPENAI_API_KEYÚAZURE_API_KEYÚ
extra_bodyÚazure_ad_tokenÚAZURE_AD_TOKEN)	r>   r=   r?   rR   rJ   rK   r   r!   Úlitellm_paramsúLiteLLM doesn't support z2 for 'get_assistants'. Only 'openai' is supported.ún/aé�  úUnsupported providerÚcreate_threadú"https://github.com/BerriAI/litellm©ÚmethodÚurl©Ústatus_codeÚcontentÚrequest©Úmessager$   Úllm_providerr:   © )ÚpopÚ
isinstanceÚboolr1   r   r   rJ   ÚgetÚhttpxÚTimeoutr   ÚreadÚfloatr>   ÚlitellmÚosÚgetenvrL   r=   Ú
openai_keyr   r+   rK   r   r?   Ú	azure_keyr   Ú
exceptionsÚBadRequestErrorÚResponseÚRequest)r   r   r=   r>   r?   r3   r!   Úoptional_paramsÚlitellm_params_dictrJ   Úread_timeoutr:   rL   rQ   rR   s                  r<   r+   r+   I   sš  € ð +1¯*©*Ð5FÈÓ*M€OØÐ"¬:°oÄtÔ+LÜÐ`ÓaÐaÜ1Ðx¸'ÈHÐbmÑxÐqwÑx€OÜ!3Ñ!=°fÑ!=Ðð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆà15€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×7Ñ7ØØØØ'×3Ñ3Ø%ØØ+ð 8ó 
Šð 
 Ò	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà%×1Ñ1Òk´W×5HÑ5HÒkÌJÐWjÓLkˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä'×6Ñ6ØØØ#Ø)ØØ'×3Ñ3ØØ+Ø.ð 7ó 

‰ô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCuÐvØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
ð ÐÜ× Ñ ×0Ñ0Ø.Ð/BÐ.CÐCuÐvØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
ð €Oó    c              ‹   óÐ  K  — t        j                  «       }d|d<   |j                  dd «      }	 ||d<   t        t        | |fi |¤Ž}t        j                  «       }t        |j                  |«      }t        || ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }	t        j                  |	«      r|	ƒ d {  –—† }
|
S |	}
|
S 7 Œ)7 Œ# t        $ r}t        || |i |¬«      ‚d }~ww xY w­w)NTÚasync_create_assistantsr$   r   r#   r%   )r)   r*   rf   r   Úcreate_assistantsr,   r-   r.   r   r/   r0   r1   r   )r   r   r3   r4   r$   r5   r6   r7   r8   r9   r:   r;   s               r<   Úacreate_assistantsr~   Á   s  è ø€ ô
 ×(Ñ(Ó*€Dà(,€FÐ$Ñ%Ø—:‘:˜g tÓ,€Eð
Ø!ˆˆxÑäÔ/Ð1DÀeÑVÈvÑVˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸eÐYlÔ'mÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üsY   ‚,C&¯A(C ÂCÂC Â6CÂ7C Â<C&Â=C Ã C&ÃC ÃC Ã	C#ÃCÃC#Ã#C&r$   ÚnameÚdescriptionÚinstructionsÚtoolsÚtool_resourcesÚmetadataÚtemperatureÚtop_pÚresponse_formatc                 ó<  — |j                  dd «      }|�t        |t        «      st        d«      ‚t	        d%|||dœ|¤Ž}t        d%i |¤Ž}|j                  xs |j                  dd«      xs d}|�:t        |t        j                  «      r t        | «      du r|j                  xs d}|}n,|�&t        |t        j                  «      st        |«      }n|€d}|||||||||	|
dœ
}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}d }| d	k(  rú|j                  xsB t        j                  xs0 t!        j"                  d
«      xs t!        j"                  d«      xs d}|j$                  xs, t        j$                  xs t!        j"                  dd «      xs d }|j&                  xs9 t        j&                  xs' t        j(                  xs t!        j"                  d«      }t*        j-                  ||||j.                  ||||¬«      }�nh| dk(  �r|j                  xs t        j                  xs t1        d«      }|j2                  xs t        j2                  xs t1        d«      }|j&                  xs< t        j&                  xs* t        j4                  xs t1        d«      xs t1        d«      }|j                  di «      }d }|�|j                  dd «      }nt1        d«      }t        |t6        «      rd }t8        j-                  ||||||j.                  ||||¬«
      }nRt        j:                  j=                  d| › d�d| t        j>                  ddt        j@                  dd¬ «      ¬!«      ¬"«      ‚|€"t        j:                  jC                  d#|| ¬$«      ‚|S c c}}w )&Nr|   zNInvalid value passed in for async_create_assistants. Only bool or None allowedrA   rB   rC   FrD   )
r$   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   r   rE   rF   rG   rH   rI   )r>   r=   rJ   rK   rL   Úcreate_assistant_datar   r|   r   rM   rN   rO   rP   rQ   rR   rS   )
r>   r=   rR   r?   rJ   rK   r   r|   r‰   rT   rU   z5 for 'create_assistants'. Only 'openai' is supported.rV   rW   rX   rY   rZ   r[   r^   rb   z-No response returned from 'create_assistants'©rc   r$   rd   re   )"rf   rg   rh   Ú
ValueErrorr   r   rJ   ri   rj   rk   r   rl   rm   Úitemsr>   rn   ro   rp   rL   r=   rq   r   r}   rK   r   r?   rr   r
   r   rs   rt   ru   rv   ÚInternalServerError)r   r$   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   r   r=   r>   r?   r3   r|   rw   rx   rJ   ry   r‰   ÚkÚvr:   rL   rQ   rR   s                               r<   r}   r}   æ   sá  € ð$ 39·*±*Ð=VÐX\Ó2]ÐØÐ*´:Ð>UÔW[Ô3\ÜÐiÓjÐjÜ1Ðx¸'ÈHÐbmÑxÐqwÑx€OÜ!3Ñ!=°fÑ!=Ðð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆð ØØ"Ø$ØØ(ØØ"ØØ*ñÐð /D×.IÑ.IÓ.K×]¡d a¨ÈqÉ}˜Q ™TÐ]ÐÑ]àBF€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×:Ñ:ØØØØ'×3Ñ3Ø%Ø"7ØØ$;ð ;ó 	
Šð 
 Ó	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà%×1Ñ1Òk´W×5HÑ5HÒkÌJÐWjÓLkˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä�fœfÔ%ØˆFä'×9Ñ9ØØØ)Ø#ØØ'×3Ñ3ØØ$;Ø"7Ø.ð :ó 
‰ô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCxÐyØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
ð ÐÜ× Ñ ×4Ñ4ØCØØ,ð 5ó 
ð 	
ð
 €Oùóo ^s   Ã6
NÄNc              ‹   óª  K  — t        j                  «       }d|d<   	 ||d<   t        t        | fi |¤Ž}t	        j
                  «       }t        |j                  |«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }t        j                  |«      r|ƒ d {  –—† }	|	S |}	|	S 7 Œ)7 Œ# t        $ r}
t        d| |
i |¬«      ‚d }
~
ww xY w­w)NTÚasync_delete_assistantsr   r"   r#   r%   )r)   r*   r   Údelete_assistantr,   r-   r.   r   r/   r0   r1   r   r2   s              r<   Úadelete_assistantr“   v  só   è ø€ ô
 ×(Ñ(Ó*€Dà(,€FÐ$Ñ%ð
Ø!ˆˆxÑäÔ.Ð0CÑNÀvÑNˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üsY   ‚C�A'B2 ÂB.ÂB2 Â#B0Â$B2 Â)CÂ*B2 Â-CÂ.B2 Â0B2 Â2	CÂ;CÃCÃCÚassistant_idc                 óÊ  — t        d$|||dœ|¤Ž}t        d$i |¤Ž}|j                  dd «      }	|	�t        |	t        «      st        d«      ‚|j                  xs |j                  dd«      xs d}
|
�:t        |
t        j                  «      r t        | «      du r|
j                  xs d}|}
n,|
�&t        |
t        j                  «      st        |
«      }
n|
€d}
d }| dk(  rú|j                  xsB t        j                  xs0 t        j                   d	«      xs t        j                   d
«      xs d}|j"                  xs, t        j"                  xs t        j                   dd «      xs d }|j$                  xs9 t        j$                  xs' t        j&                  xs t        j                   d«      }t(        j+                  |||
|j,                  ||||	¬«      }�nh| dk(  �r|j                  xs t        j                  xs t/        d«      }|j0                  xs t        j0                  xs t/        d«      }|j$                  xs< t        j$                  xs* t        j2                  xs t/        d«      xs t/        d«      }|j                  di «      }d }|�|j                  dd «      }nt/        d«      }t        |t4        «      rd }t6        j+                  ||||||
|j,                  ||	|¬«
      }nRt        j8                  j;                  d| › d�d| t        j<                  ddt        j>                  dd¬«      ¬ «      ¬!«      ‚|€"t        j8                  jA                  d"d| ¬#«      ‚|S )%NrA   r‘   zNInvalid value passed in for async_delete_assistants. Only bool or None allowedrB   rC   FrD   r   rE   rF   rG   rH   rI   )r>   r=   rJ   rK   rL   r”   r   r‘   r   rM   rN   rO   rP   rQ   rR   rS   )
r”   r>   r=   rR   r?   rJ   rK   r   r‘   rT   rU   z4 for 'delete_assistant'. Only 'openai' is supported.rV   rW   rX   r’   rZ   r[   r^   rb   z,No response returned from 'delete_assistant'rŠ   re   )!r   r   rf   rg   rh   r‹   rJ   ri   rj   rk   r   rl   rm   r>   rn   ro   rp   rL   r=   rq   r   r’   rK   r   r?   rr   r
   r   rs   rt   ru   rv   r�   )r   r”   r   r=   r>   r?   r3   rw   rx   r‘   rJ   ry   r:   rL   rQ   rR   s                   r<   r’   r’   š  sq  € ô 2Ðx¸'ÈHÐbmÑxÐqwÑx€Oä!3Ñ!=°fÑ!=Ðà28·*±*Ð=VÐX\Ó2]ÐØÐ*´:Ð>UÔW[Ô3\ÜÐiÓjÐjð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆàPT€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(Òr¬G×,@Ñ,@ÒrÄBÇIÁIÐNcÐeiÓDjÒrÐnrð 	ð "×)Ñ)Òq¬W¯_©_ÒqÄ×@RÑ@RÒqÔVX×V_ÑV_Ð`pÓVqˆä(×9Ñ9ØØØØ'×3Ñ3Ø%Ø%ØØ$;ð :ó 	
Šð 
 Ó	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà%×1Ñ1Òk´W×5HÑ5HÒkÌJÐWjÓLkˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä�fœfÔ%ØˆFä'×8Ñ8Ø%ØØØ)Ø#ØØ'×3Ñ3ØØ$;Ø.ð 9ó 
‰ô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCwÐxØØ,Ü—^‘^ØØ.ÜŸ™Ð-?ÐEiÔjôð	 1ó 	
ð 		
ð ÐÜ× Ñ ×4Ñ4ØBØØ,ð 5ó 
ð 	
ð
 €Orz   c              ‹   ó   K  — t        j                  «       }d|d<   	 t        t        | fi |¤Ž}t	        j
                  «       }t        |j                  |«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }t        j                  |«      r|ƒ d {  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}	t        d| |	i |¬«      ‚d }	~	ww xY w­w)NTÚacreate_threadr"   r#   r%   )r)   r*   r   rY   r,   r-   r.   r   r/   r0   r1   r   )
r   r3   r4   r5   r6   r7   r8   r9   r:   r;   s
             r<   r—   r—     sæ   è ø€ Ü×(Ñ(Ó*€Dà#€FÐÑð
äœmÐ-@ÑKÀFÑKˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üsY   ‚C�A"B- Á?B)Â B- ÂB+ÂB- Â$CÂ%B- Â(CÂ)B- Â+B- Â-	CÂ6CÃCÃCÚmessagesc                 óJ  — |j                  dd«      }t        d!i |¤Ž}t        d!i |¤Ž}|j                  xs |j                  dd«      xs d}	|	�:t	        |	t
        j                  «      r t        | «      du r|	j                  xs d}
|
}	n,|	�&t	        |	t
        j                  «      st        |	«      }	n|	€d}	d}d}d}| dk(  rû|j                  xsB t        j                  xs0 t        j                  d«      xs t        j                  d	«      xs d
}|j                  xs, t        j                  xs t        j                  dd«      xs d}|j                  xs9 t        j                  xs' t        j                   xs t        j                  d«      }t"        j%                  |||||	|j&                  |||¬«	      }|S | dk(  �r|j                  xs t        j                  xs t)        d«      }|j                  xs< t        j                  xs* t        j*                  xs t)        d«      xs t)        d«      }|j,                  xs t        j,                  xs t)        d«      }|j                  di «      }d}|�|j/                  dd«      }nt)        d«      }t	        |t0        «      rd}t2        j%                  |||||||	|j&                  |||¬«      }|S t        j4                  j7                  d| › d�d| t        j8                  ddt        j:                  dd¬«      ¬«      ¬ «      ‚)"aÝ  
    - get the llm provider
    - if openai - route it there
    - pass through relevant params

    ```
    from litellm import create_thread

    create_thread(
        custom_llm_provider="openai",
        ### OPTIONAL ###
        messages =  {
            "role": "user",
            "content": "Hello, what is AI?"
            },
            {
            "role": "user",
            "content": "How does AI work? Explain it in simple terms."
        }]
    )
    ```
    r—   NrB   rC   FrD   r   rE   rF   rG   rH   rI   )	r˜   r„   r>   r=   rJ   rK   rL   r   r—   r   rM   rO   rP   rN   rQ   rR   rS   )r˜   r„   r>   r=   rR   r?   rJ   rK   r   r—   rT   rU   ú1 for 'create_thread'. Only 'openai' is supported.rV   rW   rX   rY   rZ   r[   r^   rb   re   )ri   r   r   rJ   rg   rj   rk   r   rl   rm   r>   rn   ro   rp   rL   r=   rq   r   rY   rK   r   rr   r?   rf   r
   r   rs   rt   ru   rv   )r   r˜   r„   rƒ   r   r3   r—   rw   rx   rJ   ry   r>   r=   r:   rL   r?   rQ   rR   s                     r<   rY   rY   -  sG  € ð< #ŸJ™JÐ'7¸Ó>€NÜ1Ñ;°FÑ;€OÜ!3Ñ!=°fÑ!=Ðð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆà€HØ€Gà"€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×6Ñ6ØØØØØØ'×3Ñ3Ø%ØØ)ð 7ó 

ˆðt €Oð_ 
 Ó	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð #2×"=Ñ"=Ò"wÄ×ATÑATÒ"wÔXbÐcvÓXwˆà+×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä�fœfÔ%ØˆFä'×5Ñ5ØØØØØ)Ø#ØØ'×3Ñ3ØØ)Ø.ð 6ó 
ˆð0 €Oô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCtÐuØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
rz   Ú	thread_idc              ‹   ó¤  K  — t        j                  «       }d|d<   	 t        t        | ||fi |¤Ž}t	        j
                  «       }t        |j                  |«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }	t        j                  |	«      r|	ƒ d {  –—† }
|
S |	}
|
S 7 Œ)7 Œ# t        $ r}t        d| |i |¬«      ‚d }~ww xY w­w)NTÚaget_threadr"   r#   r%   )r)   r*   r   Ú
get_threadr,   r-   r.   r   r/   r0   r1   r   ©r   r›   r   r3   r4   r5   r6   r7   r8   r9   r:   r;   s               r<   r�   r�   µ  sì   è ø€ ô ×(Ñ(Ó*€Dà €Fˆ=Ñð
äœjÐ*=¸yÈ&Ñ[ÐTZÑ[ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üóY   ‚C�A$B/ ÂB+ÂB/ Â B-Â!B/ Â&CÂ'B/ Â*CÂ+B/ Â-B/ Â/	CÂ8CÃCÃCc                 óF  — |j                  dd«      }t        d!i |¤Ž}t        d!i |¤Ž}|j                  xs |j	                  dd«      xs d}|�:t        |t        j                  «      r t        | «      du r|j                  xs d}|}n,|�&t        |t        j                  «      st        |«      }n|€d}d}	d}
d}| dk(  rú|j                  xsB t        j                  xs0 t        j                  d«      xs t        j                  d	«      xs d
}	|j                  xs, t        j                  xs t        j                  dd«      xs d}|j                   xs9 t        j                   xs' t        j"                  xs t        j                  d«      }
t$        j'                  ||	|
||j(                  |||¬«      }|S | dk(  �r|j                  xs t        j                  xs t+        d«      }	|j,                  xs t        j,                  xs t+        d«      }|j                   xs< t        j                   xs* t        j.                  xs t+        d«      xs t+        d«      }
|j	                  di «      }d}|�|j                  dd«      }nt+        d«      }t        |t0        «      rd}t2        j'                  ||	|
||||j(                  |||¬«
      }|S t        j4                  j7                  d| › d�d| t        j8                  ddt        j:                  dd¬«      ¬«      ¬ «      ‚)"z(Get the thread object, given a thread_idr�   NrB   rC   FrD   r   rE   rF   rG   rH   rI   )r›   r>   r=   rJ   rK   rL   r   r�   r   rM   rN   rO   rP   rQ   rR   rS   )
r›   r>   r=   rR   r?   rJ   rK   r   r�   rT   rU   z. for 'get_thread'. Only 'openai' is supported.rV   rW   rX   rY   rZ   r[   r^   rb   re   )rf   r   r   rJ   ri   rg   rj   rk   r   rl   rm   r>   rn   ro   rp   rL   r=   rq   r   rž   rK   r   r?   rr   r
   r   rs   rt   ru   rv   )r   r›   r   r3   r�   rw   rx   rJ   ry   r>   r=   r:   rL   r?   rQ   rR   s                   r<   rž   rž   Ù  s>  € ð  Ÿ™ M°4Ó8€KÜ1Ñ;°FÑ;€OÜ!3Ñ!=°fÑ!=Ðà×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆØ€HØ€GØ"€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×3Ñ3ØØØØØ'×3Ñ3Ø%ØØ#ð 4ó 	
ˆðp €Oð] 
 Ó	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà"1×"=Ñ"=Ò"wÄ×ATÑATÒ"wÔXbÐcvÓXwˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä�fœfÔ%ØˆFä'×2Ñ2ØØØØ)Ø#ØØ'×3Ñ3ØØ#Ø.ð 3ó 
ˆð. €Oô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCqÐrØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
rz   Úrole)ÚuserÚ	assistantr`   Úattachmentsc           
   ‹   ó¬  K  — t        j                  «       }d|d<   	 t        t        | ||||||fi |¤Ž}	t	        j
                  «       }
t        |
j                  |	«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }t        j                  |«      r|ƒ d {  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        d| |i |¬«      ‚d }~ww xY w­w)NTÚa_add_messager"   r#   r%   )r)   r*   r   Úadd_messager,   r-   r.   r   r/   r0   r1   r   )r   r›   r¢   r`   r¥   r„   r   r3   r4   r5   r6   r7   r8   r9   r:   r;   s                   r<   r§   r§   I  s  è ø€ ô ×(Ñ(Ó*€Dà"€Fˆ?Ñð#
äÜØØØØØØØñ

ð ñ

ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô
 ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üsY   ‚C�A(B3 ÂB/ÂB3 Â$B1Â%B3 Â*CÂ+B3 Â.CÂ/B3 Â1B3 Â3	CÂ<CÃCÃCc                 ó|  — |j                  dd «      }t        ||||¬«      }	t        d&i |¤Ž}
t        d&i |¤Ž}t	        |	d   |	d   |	d   |	d   | ¬«      }|j
                  xs |j                  dd	«      xs d	}|�:t        |t        j                  «      r t        | «      d
u r|j                  xs d	}|}n,|�&t        |t        j                  «      st        |«      }n|€d}d }d }d }| dk(  rû|j                  xsB t        j                  xs0 t        j                   d«      xs t        j                   d«      xs d}|j"                  xs, t        j"                  xs t        j                   dd «      xs d }|j$                  xs9 t        j$                  xs' t        j&                  xs t        j                   d«      }t(        j+                  ||||||j,                  |||¬«	      }|S | dk(  �r |j                  xs t        j                  xs t/        d«      }|j0                  xs t        j0                  xs t/        d«      }|j$                  xs< t        j$                  xs* t        j2                  xs t/        d«      xs t/        d«      }|j                  di «      }d }|�|j                  dd «      }nt/        d«      }t4        j+                  ||||||||j,                  |||
¬«      }|S t        j6                  j9                  d| › d�d| t        j:                  dd t        j<                  d!d"¬#«      ¬$«      ¬%«      ‚)'Nr§   )r¢   r`   r¥   r„   r¢   r`   r¥   r„   )r¢   r`   r¥   r„   r   rB   rC   FrD   r   rE   rF   rG   rH   rI   )	r›   Úmessage_datar>   r=   rJ   rK   rL   r   r§   r   rM   rN   rO   rP   rQ   rR   rS   )r›   rª   r>   r=   r?   rR   rJ   rK   r   r§   rT   rU   rš   rV   rW   rX   rY   rZ   r[   r^   rb   re   )rf   ÚMessageDatar   r   r   rJ   ri   rg   rj   rk   r   rl   rm   r>   rn   ro   rp   rL   r=   rq   r   r¨   rK   r   r?   rr   r   rs   rt   ru   rv   )r   r›   r¢   r`   r¥   r„   r   r3   r§   Ú_message_datarx   rw   rª   rJ   ry   r=   r>   r:   rL   r?   rQ   rR   s                         r<   r¨   r¨   |  su  € ð "Ÿ:™: o°tÓ<€MÜ&¨D¸'È{ÐemÔn€MÜ!3Ñ!=°fÑ!=ÐÜ1Ñ;°FÑ;€Oä9Ø˜6Ñ"Ø˜iÑ(Ø! -Ñ0Ø˜zÑ*Ø/ô€Lð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆØ€GØ€HØ%)€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×4Ñ4ØØ%ØØØØ'×3Ñ3Ø%ØØ'ð 5ó 

ˆðp €Oð[ 
 Ó	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà"1×"=Ñ"=Ò"wÄ×ATÑATÒ"wÔXbÐcvÓXwˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä'×3Ñ3ØØ%ØØØ#Ø)ØØ'×3Ñ3ØØ'Ø.ð 4ó 
ˆð2 €Oô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCtÐuØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
rz   c              ‹   ó¤  K  — t        j                  «       }d|d<   	 t        t        | ||fi |¤Ž}t	        j
                  «       }t        |j                  |«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }	t        j                  |	«      r|	ƒ d {  –—† }
|
S |	}
|
S 7 Œ)7 Œ# t        $ r}t        d| |i |¬«      ‚d }~ww xY w­w)NTÚaget_messagesr"   r#   r%   )r)   r*   r   Úget_messagesr,   r-   r.   r   r/   r0   r1   r   rŸ   s               r<   r®   r®   ö  sõ   è ø€ ô ×(Ñ(Ó*€Dà"€Fˆ?Ñð
äÜØØØñ	
ð
 ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô
 ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
ür    c                 ó   — |j                  dd «      }t        d i |¤Ž}t        d i |¤Ž}|j                  xs |j	                  dd«      xs d}|�:t        |t        j                  «      r t        | «      du r|j                  xs d}|}n,|�&t        |t        j                  «      st        |«      }n|€d}d }	d }
d }| dk(  rú|j                  xsB t        j                  xs0 t        j                  d«      xs t        j                  d«      xs d	}|j                  xs, t        j                  xs t        j                  d
d «      xs d }|j                   xs9 t        j                   xs' t        j"                  xs t        j                  d«      }
t$        j'                  |||
||j(                  |||¬«      }	|	S | dk(  rÿ|j                  xs t        j                  xs t+        d«      }|j,                  xs t        j,                  xs t+        d«      }|j                   xs< t        j                   xs* t        j.                  xs t+        d«      xs t+        d«      }
|j	                  di «      }d }|�|j                  dd «      }nt+        d«      }t0        j'                  |||
||||j(                  |||¬«
      }	|	S t        j2                  j5                  d| › d�d| t        j6                  ddt        j8                  dd¬«      ¬«      ¬«      ‚)!Nr®   rB   rC   FrD   r   rE   rF   rG   rH   rI   )r›   r>   r=   rJ   rK   rL   r   r®   r   rM   rN   rO   rP   rQ   rR   rS   )
r›   r>   r=   r?   rR   rJ   rK   r   r®   rT   rU   z0 for 'get_messages'. Only 'openai' is supported.rV   rW   rX   rY   rZ   r[   r^   rb   re   )rf   r   r   rJ   ri   rg   rj   rk   r   rl   rm   r>   rn   ro   rp   rL   r=   rq   r   r¯   rK   r   r?   rr   r   rs   rt   ru   rv   )r   r›   r   r3   r®   rw   rx   rJ   ry   r:   r=   r>   rL   r?   rQ   rR   s                   r<   r¯   r¯   !  s1  € ð "Ÿ:™: o°tÓ<€MÜ1Ñ;°FÑ;€OÜ!3Ñ!=°fÑ!=Ðð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆà59€HØ€GØ€HØ˜hÒ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×5Ñ5ØØØØØ'×3Ñ3Ø%ØØ'ð 6ó 	
ˆðl €OðY 
 Ò	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà"1×"=Ñ"=Ò"wÄ×ATÑATÒ"wÔXbÐcvÓXwˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
Ø%)ˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä'×4Ñ4ØØØØ#Ø)ØØ'×3Ñ3ØØ'Ø.ð 5ó 
ˆð0 €Oô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCsÐtØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
rz   )Úevent_handlerr±   c                 ó(   — d|d<   t        dd| dœ|¤ŽS )NTÚarun_thread©Ústreamr±   re   ©Ú
run_thread©r±   r3   s     r<   Úarun_thread_streamr¹   �  s#   € ð
 !€Fˆ=ÑÜÐI˜T°ÑIÀ&ÑIÐIrz   Úadditional_instructionsrµ   c
              ‹   ó²  K  — t        j                  «       }d|
d<   	 t        t        | |||||||||	fi |
¤Ž}t	        j
                  «       }t        |j                  |«      }t        d| ¬«      \  }} }}|j                  d |«      ƒ d {  –—† }t        j                  |«      r|ƒ d {  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        d| |i |
¬«      ‚d }~ww xY w­w)NTr³   r"   r#   r%   )r)   r*   r   r·   r,   r-   r.   r   r/   r0   r1   r   )r   r›   r”   rº   r�   r„   r$   rµ   r‚   r   r3   r4   r5   r6   r7   r8   r9   r:   r;   s                      r<   r³   r³   –  s
  è ø€ ô ×(Ñ(Ó*€Dà €Fˆ=Ñð&
äÜØØØØ#ØØØØØØñ
ð ñ
ˆô  !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9Ðä'7¸bÐViÔ'jÑ$ˆÐ  1ð &*×%9Ñ%9¸$Ð@QÓ%R×RˆÜ×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søà*ùô
 ò 
ÜØØ 3Ø Ø Øô
ð 	
ûð
üsY   ‚C�A+B6 ÂB2Â	B6 Â'B4Â(B6 Â-CÂ.B6 Â1CÂ2B6 Â4B6 Â6	CÂ?CÃCÃCc                 ó   — t        dd| dœ|¤ŽS )NTr´   re   r¶   r¸   s     r<   Úrun_thread_streamr½   Ï  s   € ô
 ÐI˜T°ÑIÀ&ÑIÐIrz   c                 ó¢  — |j                  dd«      }t        d!i |¤Ž}t        d!i |¤Ž}|j                  xs |j	                  dd«      xs d}|�:t        |t        j                  «      r t        | «      du r|j                  xs d}|}n,|�&t        |t        j                  «      st        |«      }n|€d}d}| dk(  �r|j                  xsB t        j                  xs0 t        j                  d«      xs t        j                  d	«      xs d
}|j                  xs, t        j                  xs t        j                  dd«      xs d}|j                   xs9 t        j                   xs' t        j"                  xs t        j                  d«      }t$        j'                  ||||||||||||j(                  ||	||
¬«      }|S | dk(  �r:|j                  xs t        j                  xs t+        d«      }|j,                  xs t        j,                  xs t+        d«      }|j                   xs< t        j                   xs* t        j.                  xs t+        d«      xs t+        d«      }|j	                  di «      }d}|�|j                  dd«      }nt+        d«      }t0        j'                  |||||||||�t3        |«      nd|�t3        |«      nd|�t3        |«      nd|�t3        |«      nd||j(                  |	||¬«      }|S t        j4                  j7                  d| › d�d| t        j8                  ddt        j:                  dd¬«      ¬«      ¬ «      ‚)"zRun a given thread + assistant.r³   NrB   rC   FrD   r   rE   rF   rG   rH   rI   )r›   r”   rº   r�   r„   r$   rµ   r‚   r>   r=   rJ   rK   rL   r   r³   r±   r   rM   rN   rO   rP   rQ   rR   rS   )r›   r”   rº   r�   r„   r$   rµ   r‚   r>   r=   r?   rR   rJ   rK   r   r³   rT   rU   z. for 'run_thread'. Only 'openai' is supported.rV   rW   rX   rY   rZ   r[   r^   rb   re   )rf   r   r   rJ   ri   rg   rj   rk   r   rl   rm   r>   rn   ro   rp   rL   r=   rq   r   r·   rK   r   r?   rr   r   Ústrrs   rt   ru   rv   )r   r›   r”   rº   r�   r„   r$   rµ   r‚   r   r±   r3   r³   rw   rx   rJ   ry   r:   r>   rL   r=   r?   rQ   rR   s                           r<   r·   r·   ×  s‚  € ð  Ÿ™ M°4Ó8€KÜ1Ñ;°FÑ;€OÜ!3Ñ!=°fÑ!=Ðð ×%Ñ%ÒR¨¯©Ð4EÀsÓ)KÒRÈs€Gð 	ÐÜ�w¤§¡Ô.Ü"Ð#6Ó7¸5Ñ@à%Ÿl™lÒ1¨cˆØ‰Ø	Ð	¤Z°¼¿¹Ô%GÜ˜“.‰Ø	ˆØˆà€HØ˜hÓ&à×$Ñ$ò +Ü×Ñò+ä�y‰yÐ*Ó+ò+ô �y‰yÐ*Ó+ò+ð +ð 	ð ×(Ñ(ò Ü×#Ñ#òä�y‰yÐ.°Ó5òð ð	 	ð ×#Ñ#ò +Ü�‰ò+ä×!Ñ!ò+ô �y‰yÐ)Ó*ð	 	ô )×3Ñ3ØØ%Ø$;Ø%ØØØØØØØØ'×3Ñ3Ø%ØØ#Ø'ð! 4ó 
ˆðH €Oðe 
 Ó	'Ø"×+Ñ+Ò_¬w×/?Ñ/?Ò_Ä:ÐN^ÓC_ˆà%×1Ñ1Òk´W×5HÑ5HÒkÌJÐWjÓLkˆð ×#Ñ#ò +Ü�‰ò+ä× Ñ ò+ô Ð0Ó1ò+ô ˜/Ó*ð 	ð ,×/Ñ/°¸bÓAˆ
ØˆØÐ!Ø'Ÿ^™^Ð,<¸dÓC‰Nä'Ð(8Ó9ˆNä'×2Ñ2ØØ%Ø$;Ø%ØØØØØ&.Ð&:”S˜”]ÀØ$+Ð$7”C˜”L¸TØ,7Ð,Cœ˜KÔ(ÈØ2@Ð2Lœ3˜~Ô.ÐRVØØ'×3Ñ3ØØ#Ø.ð# 3ó 
ˆð< €Oô × Ñ ×0Ñ0Ø.Ð/BÐ.CÐCqÐrØØ,Ü—^‘^ØØ.ÜŸ™¨_ÐBfÔgôð	 1ó 	
ð 		
rz   )N)NNNN)NNNNNNNNNNNNN)NNN)NNNNNNN)NNNNNNNN)Lr)   r,   ro   Úcollections.abcr   r   Ú	functoolsr   Útypingr   r   r   rj   r   r	   r
   Úopenai.types.beta.assistantr   Ú#openai.types.beta.assistant_deletedr   rn   Úlitellm.types.routerr   Úlitellm.utilsr   r   r   r   r   Úllms.azure.assistantsr   Úllms.openai.openair   Útypes.llms.openaiÚtypes.routerÚutilsr   r   Ú__annotations__r   ÚAsyncCursorPager!   r¿   ÚSyncCursorPager+   r~   ÚlistÚdictrm   r}   r“   r’   ÚThreadr—   ÚOpenAICreateThreadParamsMessageÚ%OpenAICreateThreadParamsToolResourcesrY   r�   rž   Ú
AttachmentÚOpenAIMessager§   r¨   r®   r¯   ÚAssistantEventHandlerÚAsyncAssistantStreamManagerÚAsyncAssistantEventHandlerr¹   rh   ÚAssistantToolParamÚRunr³   ÚAssistantStreamManagerr½   r·   re   rz   r<   ú<module>rÜ      sr  ðô Û Û 	ß /Ý ß &Ñ &ã ß &Ý 1Ý @ã Ý 5÷õ õ 7Ý 4Ü !Ü Ý 2ñ  3Ó4Ð �uÓ 4Ù0Ó2Ð �eÓ 2ð "&ñ 
Ø Ð!2Ñ3ð 
à˜$Ñð 
ð �YÑó	 
ðJ ØØØ"ñuØ Ð!2Ñ3ðuà�$‰Jðuð �4‰Zðuð �D‰jð	uð
 �t‘ðuð �IÑóuðt "&ñ"
Ø Ð!2Ñ3ð"
à˜$Ñð"
ð ó	"
ðP Ø"Ø#Ø)-Ø,0Ø&*Ø $ØØ37ØØØØ"ñMØ Ð!2Ñ3ðMàðMð �‰*ðMð �t‘ð	Mð
 ˜‘*ðMð ��S˜#�X‘Ñ $Ñ&ðMð ˜˜c˜‘N TÑ)ðMð �3˜�8‰n˜tÑ#ðMð ˜‘ðMð �4‰<ðMð ˜4  S ™>Ñ)¨DÑ0ðMð �$‰JðMð �4‰ZðMð �D‰jðMð �t‘ðMð" �˜3  YÐ.Ñ/Ñ/ó#Mðd "&ñ!
Ø Ð!2Ñ3ð!
à˜$Ñð!
ð ó	!
ðN ØØØ"ñnØ Ð!2Ñ3ðnàðnð �$‰Jðnð �4‰Zð	nð
 �D‰jðnð �t‘ðnð ˜	 # sÐ,<Ð"<Ñ=Ñ=ónðh
¨gÐ6GÑ.Hð 
ÐW]ó 
ðB BFØ ØCGØ ñEØ Ð!2Ñ3ðEàÐ6Ñ7¸$Ñ>ðEð �T‰kðEð :¸DÑ@ð	Eð
 �T‰MðEð óEðV "&ñ!
Ø Ð!2Ñ3ð!
àð!
ð ˜$Ñð!
ð
 ó!
ðN ñjØ Ð!2Ñ3ðjàðjð
 ójðj ,0Ø Øñ0
Ø Ð!2Ñ3ð0
àð0
ð Ð%Ñ
&ð0
ð ð	0
ð
 �jÑ! DÑ(ð0
ð �T‰kð0
ð ó0
ðp ,0Ø ØñwØ Ð!2Ñ3ðwàðwð Ð%Ñ
&ðwð ð	wð
 �jÑ! DÑ(ðwð �T‰kðwð ówðz "&ñ(
Ø Ð!2Ñ3ð(
àð(
ð ˜$Ñð(
ð
 �]Ñ#ó(
ð\ ñhØ Ð!2Ñ3ðhàðhð �$‰Jðhð
 �MÑ"óhð\ 37òJà(¨4Ñ/ðJð !Ð!;Ñ<ó	Jð +/Ø#Ø ØØØ15Øñ6
Ø Ð!2Ñ3ð6
àð6
ð ð6
ð ! 4™Zð	6
ð
 ˜‘*ð6
ð �T‰kð6
ð �‰:ð6
ð �4‰Kð6
ð Ð&Ñ'¨$Ñ.ð6
ð �$‰Jð6
ð 	ó6
ðv 37òJà(¨4Ñ/ðJð Ð1Ñ2ó	Jð +/Ø#Ø ØØØ15ØØ26ñ~Ø Ð!2Ñ3ð~àð~ð ð~ð ! 4™Zð	~ð
 ˜‘*ð~ð �T‰kð~ð �‰:ð~ð �4‰Kð~ð Ð&Ñ'¨$Ñ.ð~ð �$‰Jð~ð )¨4Ñ/ð~ð 	ô~rz   