Ë
    uPêj$T ã            H       ó  — U d dl 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mZmZmZmZ d dlZd dlmZ d dlZd dlmZ d dlmZ d d	l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) d dl*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 erd dl.m7Z7 ne8Z7d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?­ d dl@mAZA d dlBmCZCmDZD erd dlEmFZF d dlGmHZI neZIddlJmKZK  e)«       ZL e+«       ZMeeNd<   deee8eOf      dz  d ePfd!„ZQ	 dxd"e8fd#„ZR	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dyd$e8e2z  d%e8d&eSe1   dz  d'e8dz  d(eTdz  d)e/dz  d*eUe8eOf   dz  d+ePdz  d,e8dz  d-e0dz  d.ePdz  d/ePdz  d0ePdz  d1eVdz  d2ed3   d4e5dz  dee6   dz  d5eVdz  d6ed7   dz  d8e8dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4eKz  f4d>„ZXd?e'dz  d@ePd ePfdA„ZYd%e8d=e8dz  d@ePd ePfdB„ZZedCeUe8ef   dDePd edE   fdF„«       Z[eD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dzd$e8e2z  d%e8d&eSe1   dz  d'e8dz  d(eTdz  d)e/dz  d*eUe8eOf   dz  d+ePdz  d,e8dz  d-e0dz  d.ePdz  d/ePdz  d0ePdz  d1eVdz  d2ed3   dGe\dH   eUz  dz  d4e5dz  dee6   dz  d5eVdz  d6ed7   dz  d8e8dz  dIe8dz  dJe8dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4eKz  f:dK„«       Z]dLe8dMe8d=e8dz  dCee8eOf   dNe8dz  d e8fdO„Z^d$e8e2z  d%e8d=e8dz  dPe"dz  dCeUe8ef   dQeUe8eOf   d@ePd e_e8e2z  e8e8dz  f   fdR„Z`dSZaeeNdT<   d%e8d e_e8ePf   fdU„ZbdCeUe8eOf   d ePfdV„ZcdWZdeeNdX<   d%e8d e8fdY„Zed%e8d=e8dz  dZeAdQeUe8eOf   d e_e8e8dz  f   f
d[„Zfd$e8e2z  dee6   dz  dCeUe8ef   dQeUe8eOf   d e_e8e2z  ee6   dz  f   f
d\„Zgdee6   dz  d$e8e2z  d%e8d&eSe1   dz  d'e8dz  d(eTdz  d)e/dz  d*eUe8eOf   dz  d+ePdz  d,e8dz  d-e0dz  d.ePdz  d/ePdz  d0ePdz  d1eVdz  d2ed4e5dz  d5eVdz  d6ed7   dz  d8e8dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  dCeUe8eOf   d]ePd edz  f8d^„Zhdee6   dz  d$e8e2z  d%e8d?e'dz  d@ePd&eSe1   dz  d'e8dz  d(eTdz  d)e/dz  d*eUe8eOf   dz  d+ePdz  d,e8dz  d-e0dz  d.ePdz  d/ePdz  d0ePdz  d1eVdz  d2ed4e5dz  d5eVdz  d6ed7   dz  d8e8dz  dIe8dz  dJe8dz  dGe\e   eUz  dz  d_eSe8   dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  dCeUe8eOf   d]ePd e4eeOeOe4f   z  dz  fDd`„ZieD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d{d$e8e2z  d%e8d&eSe1   dz  d'e8dz  d(eTdz  d)e/dz  d*eUe8eOf   dz  d+ePdz  d,e8dz  d-e0dz  d.ePdz  d/ePdz  d0ePdz  d1eVdz  d2ed3   dGe\dH   eUz  dz  d4e5dz  dee6   dz  d5eVdz  d6ed7   dz  d8e8dz  dIe8dz  dJe8dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d_eSe8   dz  d=e8dz  f:da„«       ZjeD	 	 	 	 	 d|dbe8d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d ekfdc„«       ZleD	 	 	 	 	 d|dbe8d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d ekeeOeOekf   z  fdd„«       ZmeD	 	 	 	 	 d|dbe8d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4fde„«       ZneD	 	 	 	 	 d|dbe8d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4eeOeOe4f   z  fdf„«       ZoeD	 	 	 	 	 	 	 	 d}dbe8dge8dz  dhe8dz  d&eSe8   dz  dieTdjedk   d9eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d eUfdl„«       ZpeD	 	 	 	 	 	 	 	 d}dbe8dge8dz  dhe8dz  d&eSe8   dz  dieTdjedk   d9eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d eUeeOeOeUf   z  fdm„«       ZqeD	 	 	 	 	 d|dbe8d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4fdn„«       ZreD	 	 	 	 	 d|dbe8d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4eeOeOe4f   z  fdo„«       ZseD	 	 	 	 	 	 	 d~d$e8e2z  d%e8d'e8dz  d,e8dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4fdp„«       ZteD	 	 	 	 	 	 	 d~d$e8e2z  d%e8d'e8dz  d,e8dz  d9eUe8eOf   dz  d:eUe8eOf   dz  d;eUe8eOf   dz  d<eVej®                  z  dz  d=e8dz  d e4eeOeOe4f   z  fdq„«       ZudCeUd eUfdr„ZveD	 	 	 dd%e8dsdtdue8dz  dve8dz  d<eVdz  f
dw„«       Zwy)€é    N)Ú	CoroutineÚ	GeneratorÚIterableÚMapping)Úcontextmanager)Úpartial)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚOptionalÚcast)Ú	BaseModel)Úverbose_logger)Ú%LiteLLMResponsesTransformationHandler)Úrequest_timeout)ÚCARRY_UNMATCHED_MESSAGE_POINTS)Úrun_async_function)ÚLogging)Ú*update_responses_input_with_model_file_idsÚ*update_responses_tools_with_model_file_ids)ÚBaseResponsesAPIConfig)ÚBaseLLMHTTPHandler)Ú&LiteLLMCompletionTransformationHandler)ÚResponsesAPIRequestUtils)ÚPromptObjectÚ	ReasoningÚResponseIncludableÚResponseInputParamÚ!ResponsesAPIOptionalRequestParamsÚResponsesAPIResponseÚ
ToolChoiceÚ	ToolParam)ÚResponseText)Úget_litellm_params)Úinfer_openai_data_residency)Úget_secret_str)Ú*)ÚGenericLiteLLMParams)ÚProviderConfigManagerÚclient)Ú	WebSocket)ÚToolé   )Ú!BaseResponsesAPIStreamingIteratorÚ)litellm_completion_transformation_handlerÚtoolsÚreturnc                 ó,   — | syt        d„ | D «       «      S )z;Return True if any tool in the list has type 'file_search'.Fc              3   óh   K  — | ]*  }t        |t        «      xr |j                  d «      dk(  –— Œ, y­w)ÚtypeÚfile_searchN)Ú
isinstanceÚdictÚget)Ú.0Úts     ú[/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/responses/main.pyú	<genexpr>z(_has_file_search_tool.<locals>.<genexpr>K   s,   è ø€ ÒUÈ!Œz˜!œTÓ"ÒE q§u¡u¨V£}¸Ñ'EÓEÑUùs   ‚02)Úany©r1   s    r<   Ú_has_file_search_toolr@   G   s   € áØÜÑUÈuÔUÓUÐUó    Úmock_responsec                 óÆ   — t        d+i i dd“dd“dd“dd“d	d “d
d “dd “dd “dd“dddddd| g dœgdœg“dd“dd “dd d dœ“dd“dd“ddd dii“d!d"“g dd#d$d%d&id'i d(d)œd i d*œ¥¤ŽS ),NÚidÚ5resp_67ccd2bed1ec8190b14f964abc0542670bb6a6b452d3795bÚobjectÚresponseÚ
created_ati¾ÒÌgÚstatusÚ	completedÚerrorÚincomplete_detailsÚinstructionsÚmax_output_tokensÚmodelzgpt-4.1-2025-04-14ÚoutputÚmessageÚ4msg_67ccd2bf17f0819081ff3bb2cf6508e60bb6a6b452d3795bÚ	assistantÚoutput_text)r5   ÚtextÚannotations)r5   rD   rI   ÚroleÚcontentÚparallel_tool_callsTÚprevious_response_idÚ	reasoning)ÚeffortÚsummaryÚstoreÚtemperatureg      ð?rU   Úformatr5   Útool_choiceÚautoÚdisabledé$   Úcached_tokensr   éW   é{   )Úinput_tokensÚinput_tokens_detailsÚoutput_tokensÚoutput_tokens_detailsÚtotal_tokens)r1   Útop_pÚ
truncationÚusageÚuserÚmetadata© )r!   ©rB   s    r<   Úmock_responses_api_responsert   N   sP  € ô  ñ .ð,
ØÐIð,
à�jð,
ð ˜*ð,
ð �kð	,
ð
 �Tð,
ð ! $ð,
ð ˜Dð,
ð   ð,
ð Ð)ð,
ð à%ØPØ)Ø'ð %2Ø$1Ø+-ñð ñðð,
ð2 " 4ð3,
ð4 # Dð5,
ð6  D°TÑ:ð7,
ð8 �Tð9,
ð: ˜3ð;,
ð< �X ¨Ð/Ð0ð=,
ð> ˜6ð?,
ð@ ØØ$à "Ø)8¸!Ð(<Ø!#Ø)+Ø #ñð ØòW,
ñ.ð .rA   ÚinputrO   ÚincluderM   rN   Úpromptrq   rY   rZ   r[   r^   Ú
backgroundÚstreamr_   rU   r$   ra   rm   rn   )rb   rc   rp   Úextra_headersÚextra_queryÚ
extra_bodyÚtimeoutÚcustom_llm_providerc              ‹   óà  K  — ddl m} |j                  |«      \  }}|j                  d«      xs! |j                  di «      j                  d«      }d}d}|j                  d«      } | r,t	        | t
        «      rt        j                  | |¬«      \  }}}!}!|j                  |||j                  d«      |||j                  |«      ¬	«      ƒ d{  –—† \  }"}#|j                  |"«      }$|$s|r|$|z   nd}%i d
|“d|“d|“d|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“||||dœ¥|¥}&|r�|r�ddlm}' ddlm}( d|'j                  «       j                   dd › �}) |(|||)|"¬ «      ƒ d{  –—† }* |j"                  d4| ||%||*|&||#d!œ|¤Ž}+|+j%                  «       ƒ d{  –—†  |+j&                  �|+j&                  ‚|+S t)        |«      xr |j+                  |¬"«      },|j-                  |&|,¬#«      }-t/        d4| ||%|d$œ|-¤Žƒ d{  –—† }.t1        j2                  d%|.«       |,�r·t	        |.t4        «      �r¦|j7                  |.¬&«      }/|/�r‘|j                  di «      j                  d«      }|j                  d«      } t        j                  | |¬«      \  }}}0}1|j9                  |#|/||||0|1|j                  d'«      |j                  d«      |j                  |«      ¬(«
      ƒ d{  –—† }2|2rñ|j;                  |.|2| ¬)«      }3|j=                  |&|xs d*¬+«      }4g }5|r|j?                  |/|2¬,«      }5 |j@                  d4|3||%|.jB                  d-œ|4¤Žƒ d{  –—† }6|r.|5r,tE        |6d.«      stE        |6d/«      rdd0lm#}7  |7|#|6|5|¬1«      }6|6S t	        |6t4        «      rD|j                  |||||j                  |«      ¬2«      ƒ d{  –—† \  }8}!|jI                  |6|8|2¬3«      }6|6S |.S 7 �Œ7 �Œq7 �ŒA7 �Œà7 �Œ7 Œ›7 Œ0­w)5a}  
    Async version of responses API with MCP integration.

    When MCP tools with server_url="litellm_proxy" are provided, this function will:
    1. Get available tools from the MCP server manager
    2. Insert the tools into the messages/input
    3. Call the standard responses API
    4. If require_approval="never" and tool calls are returned, automatically execute them
    r   ©ÚLiteLLM_Proxy_MCP_HandlerÚuser_api_key_authÚlitellm_metadataNÚsecret_fields)r„   r1   Úlitellm_trace_id)r‚   Úmcp_tools_with_litellm_proxyr…   Úmcp_auth_headerÚmcp_server_auth_headersÚrequest_tagsrv   rM   rN   rw   rq   rY   r[   r^   rx   ry   r_   rU   ra   rm   rn   rp   rz   )r{   r|   r}   r~   )Úuuid)Úcreate_mcp_list_tools_eventsÚmcp_é   )r†   r‚   Úbase_item_idÚpre_processed_mcp_tools)ru   rO   Ú	all_toolsr†   Úmcp_discovery_eventsÚcall_paramsrZ   Útool_server_map)r†   )r’   Úshould_auto_execute)ru   rO   r1   rZ   zInitial response %s)rG   Úlitellm_call_id)
r“   Ú
tool_callsr‚   r‡   rˆ   Úoauth2_headersÚraw_headersr•   r…   r‰   )rG   Útool_resultsÚoriginal_inputF)r’   Úoriginal_stream_setting)r–   r™   )Úfollow_up_inputrO   r�   Úresponse_idÚ	__aiter__Ú__iter__)ÚMCPEnhancedStreamingIterator)r“   Úbase_iteratorÚ
mcp_eventsr‚   )r‚   r†   r‡   rˆ   r‰   )rG   Úmcp_tools_fetchedr™   rr   )%Ú/litellm.responses.mcp.litellm_proxy_mcp_handlerr�   Ú_parse_mcp_toolsr9   r7   r8   r   Ú extract_mcp_headers_from_requestÚ+_process_mcp_tools_without_openai_transformÚ_get_parent_request_tagsÚ_transform_mcp_tools_to_openaiÚlitellm._uuidrŠ   Ú,litellm.responses.mcp.mcp_streaming_iteratorr‹   Úuuid4ÚhexÚ_create_mcp_streaming_responseÚ!_create_initial_response_iteratorÚ_initial_creation_errorÚboolÚ_should_auto_execute_toolsÚ_prepare_initial_call_paramsÚ
aresponsesr   Údebugr!   Ú!_extract_tool_calls_from_responseÚ_execute_tool_callsÚ_create_follow_up_inputÚ_prepare_follow_up_call_paramsÚ_create_tool_execution_eventsÚ_make_follow_up_callrD   Úhasattrr    Ú$_add_mcp_output_elements_to_response)9ru   rO   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   ra   r1   rm   rn   rp   rz   r{   r|   r}   r~   Úkwargsr�   r†   Úother_toolsr‚   r‡   rˆ   r„   Ú_Úoriginal_mcp_toolsr“   Úopenai_toolsr�   r’   rŠ   r‹   rŽ   r‘   Úmcp_streaming_responser”   Úinitial_call_paramsrG   r–   r—   Úraw_headers_from_requestr™   rœ   Úfollow_up_call_paramsÚtool_execution_eventsÚfinal_responser    Úmcp_tools_for_outputs9                                                            r<   Úaresponses_api_with_mcprÊ   ‚   s¶  è ø€ õPð 	"×2Ñ2°5Ó9ñØ$Øð
 Ÿ
™
Ð#6Ó7Òv¸6¿:¹:ÐFXÐZ\Ó;]×;aÑ;aÐbuÓ;vÐð #'€OØ@DÐØ—J‘J˜Ó/€MÙœ M´4Ô8ô %×EÑEÐTaÐinÔoñ	
ØØ#ØØð (×SÑSØ+Ø%AØŸ™Ð$6Ó7Ø'Ø 7Ø.×GÑGÈÓOð Tó ÷ 	ñØØð 4×RÑRÐSeÓf€Lñ 7CÁk�| kÒ1ÐX\€IðØ�7ðà˜ðð 	Ð.ðð 	�&ð	ð
 	�Hðð 	Ð2ðð 	�Yðð 	�ðð 	�jðð 	�&ðð 	�{ðð 	�ðð 	�{ðð 	�ðð 	�jðð  	�ð!ð" 	˜ð#ð$ #Ø ØØ2ò+ð, ð-€Kñ4 Ñ.å&õ	
ð !% T§Z¡Z£\×%5Ñ%5°b°qÐ%9Ð$:Ð;ˆÙ,HØ)EØ/Ø%Ø$6ô	-
÷ '
Ðð )aÐ(A×(`Ñ(`ð 
)
ØØØØ)EØ!5Ø#Ø!5Ø+ñ
)
ð ñ
)
Ðð %×FÑFÓH×HÐHØ!×9Ñ9ÐEØ(×@Ñ@Ð@Ø%Ð%ô Ð;Ó<ò ÐAZ×AuÑAuØ%Að Bvó BÐð
 ";×!WÑ!WØÐ5Hð "Xó "Ðô 'ð ØØØØ1ñ	ð
 ñ÷ €Hô ×ÑÐ.°Ô9ò œz¨(Ô4HÕIØ5×WÑWÐaiÐWÓjˆ
âØ &§
¡
Ð+=¸rÓ B× FÑ FÐGZÓ [Ðð #ŸJ™J Ó7ˆMô )×IÑIØ+ØôñØØ'ØØ(ð )B×(UÑ(UØ /Ø%Ø"3Ø /Ø(?Ø-Ø4Ø &§
¡
Ð+<Ó =Ø!'§¡Ð,>Ó!?Ø6×OÑOÐPVÓWð )Vó )÷ #ˆLñ Ø)B×)ZÑ)ZØ%°LÐQVð *[ó *�ð
 0I×/gÑ/gØ +ÀVÂ_Èuð 0hó 0Ð%ð
 )+Ð%ÙØ,E×,cÑ,cØ#-¸Lð -dó -Ð)ð (VÐ'@×'UÑ'Uð (Ø$3ØØ'Ø (§¡ñ	(ð
 ,ñ(÷ "�ñ Ù-Ü  °Ô=ÄÈÐYcÔAdõñ &BØ(7Ø&4Ø#8Ø*;ô	&�Nð2 &Ð%ô#   Ô0DÔEð
 8×cÑcØ*;Ø5QØ(7Ø0GØ%>×%WÑ%WÐX^Ó%_ð dó ÷ ñØ,Øð &?×%cÑ%cØ!/Ø*>Ø%1ð &dó &�Nð
 &Ð%à€Oð	ùð`'
ùð$ 	Iùð$ùð@#ùð<"øð>úsƒ   ‚C
O.ÃOÃB O.Å-OÅ.2O.Æ O!Æ!A#O.ÈO$ÈCO.Ë!O'Ë"A,O.ÍO*ÍA,O.Î;O,Î< O.ÏO.Ï!O.Ï$O.Ï'O.Ï*O.Ï,O.Úresponses_api_provider_configÚuse_chat_completions_apic                 ó   — | du xs |du S )zTWhether the request reaches its provider as a chat completion, not a Responses call.NTrr   )rË   rÌ   s     r<   Ú_bridges_to_chat_completionsrÎ   Š  s   € ð )¨DÐ0ÒTÐ4LÐPTÐ4TÐTrA   c                 ót   — t        | «      }|€yt        t        j                  |d   |¬«      |xs |d   «      S )aÊ  ``_bridges_to_chat_completions`` for callers running before the provider config is resolved.

    Resolving the config is a pure lookup, so this asks the same question the dispatch
    asks rather than restating its condition. Both callers resolve the provider before
    this runs, so the only way to be wrong is a prompt manager that moves the model
    across the bridge boundary, which would leave the deferred points to a pass that
    never comes.
    Tr   ©rO   Úproviderr.   )Ú2_normalize_openai_chat_completions_responses_modelrÎ   r*   Ú!get_provider_responses_api_config)rO   r~   rÌ   Únormalized_models       r<   Ú _will_bridge_to_chat_completionsrÕ   ‘  sP   € ô QÐQVÓWÐØÐ"ØÜ'Ü×?Ñ?Ø" 1Ñ%Ð0Cô	
ð 	!Ò7Ð$4°QÑ$7ó	ð rA   r¾   Úbridged)NNc              #   ó˜   K  — |sd–— yd| t         <   	 d–— | j                  t         d«       y# | j                  t         d«       w xY w­w)a!  Tell the cache-control hook that this layer's messages are not the ones sent upstream.

    A Responses request keeps its system prompt in ``instructions``, which only becomes a
    system message when the chat-completion bridge builds one, so a role-targeted point
    is placed by the bridge's pass rather than this one.

    Only raised for a request that will be bridged. A provider serving Responses natively
    gets no second pass, so this layer is the last one that can place anything and handing
    a point forward there drops it.
    NT)r   Úpop)r¾   rÖ   s     r<   Ú2_prompt_management_sees_a_provisional_message_listrÙ   §  sB   è ø€ ñ ÛØØ-1€FÔ)Ñ*ð9Ûà�
‰
Ô1°4Õ8øˆ�
‰
Ô1°4Õ8üs   ‚A
”/ ˜A
¯AÁA
Útext_formatr   Úservice_tierÚsafety_identifierc              ‹   ó„  K  — t        «       }	 t        j                  «       }d|d<   t        j                  ||¬«      }|�||d<   |€1t        j                  ||j                  dd«      ¬«      \  }}}}||d<   |j                  d	d«      } t        t        dz  |j                  d
d«      «      }!t        t        dz  |j                  dd«      «      }"|}#t        | t        «      rÿ| j                  |!|¬«      rìt        j                  | «      }$t        |t!        ||t#        |j                  d«      «      «      ¬«      5  | j%                  ||$||!|"|j                  dd«      |j                  dd«      |¬«      ƒ d{  –—† \  }}%}&ddd«       t        t        t&        z  t        j(                  | |$%¬«      «      } ||#k7  rt+        |#||||!¬«      }|j-                  d
d«       &|d<   t/        t0        fi d| “d|“d|“d|“d|“d|“d|“d|“d|“d|	“d|
“d |“d!|“d"|“d|“d#|“d$|“d%|“d&|“d'|“d(|“d)|“d*|“d+|“d|“d,|“d-|“|¤Ž}'t3        j4                  «       }(t/        |(j6                  |'«      })|j9                  d|)«      ƒ d{  –—† }*t        j:                  |*«      r|*ƒ d{  –—† }+n|*}+t        |+t<        «      r7t        j>                  |+|j                  d.i «      |¬/«      }+||+j@                  d<   |+€tC        d0|+› �«      ‚|+S 7 �ŒŠ# 1 sw Y   �Œ†xY w7 Œ�7 Œr# tD        $ r},t        jF                  |||,||¬1«      ‚d},~,ww xY w­w)2zS
    Async: Handles responses API requests by reusing the synchronous function
    Tr´   ©rÚ   rU   NrU   Úbase_url©rO   Úapi_baser~   Úlitellm_logging_objÚ	prompt_idÚprompt_variables©rã   Únon_default_paramsrÌ   ©rÖ   Úprompt_labelÚprompt_version©rO   Úmessagesræ   rã   rä   rè   ré   Úrequest_kwargs©rš   Úclient_inputÚmerged_input©Úoriginal_modelÚswapped_modelr~   r¾   rã   Ú_async_prompt_merged_paramsru   rO   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   ra   r1   rm   rn   rp   rz   r{   r|   r}   rÛ   rÜ   rƒ   ©Úresponses_api_responserƒ   r~   z8Got an unexpected None response from the Responses API: ©rO   r~   Úoriginal_exceptionÚcompletion_kwargsÚextra_kwargs)$ÚlocalsÚasyncioÚget_event_loopr   Ú!convert_text_format_to_text_paramÚlitellmÚget_llm_providerr9   r   Ústrr8   r7   ÚLiteLLMLoggingObjÚ"should_run_prompt_management_hooksÚ responses_input_to_chat_messagesrÙ   rÕ   r±   Ú async_get_chat_completion_promptr   Úmerge_prompt_management_inputÚ _resolve_prompt_swapped_providerrØ   r   Ú	responsesÚcontextvarsÚcopy_contextÚrunÚrun_in_executorÚiscoroutiner!   Ú/_update_responses_api_response_id_with_model_idÚ_hidden_paramsÚ
ValueErrorÚ	ExceptionÚexception_type)-ru   rO   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   rÚ   ra   r1   rm   rn   rp   rÛ   rÜ   rz   r{   r|   r}   r~   r¾   Ú
local_varsÚlooprÀ   râ   rã   rä   rñ   rî   rï   Úmerged_optional_paramsÚfuncÚctxÚfunc_with_contextÚinit_responserG   Úes-                                                r<   r´   r´   À  s7  è ø€ ôL ›€JðI
Ü×,Ñ,Ó.ˆØ#ˆˆ|Ñô (×IÑIÐVaÐhlÔmˆØÐà!%ˆJ�vÑð Ð&Ü+2×+CÑ+CØ j§n¡n°ZÀÓ&Fô,Ñ(ˆAÐ" A qð 1DˆJÐ,Ñ-ð &,§Z¡ZÐ0EÀtÓ%LÐÜ¤ d¡
¨F¯J©J°{ÀDÓ,IÓJˆ	Ü"&¤t¨d¡{°F·J±JÐ?QÐSWÓ4XÓ"YÐØ %ˆäØÔ!2ô
à!×DÑDÈyÐmsÐDÔtÜ":×"[Ñ"[Ð\aÓ"bˆLÜCØÜ8ØÐ.´°V·Z±ZÐ@ZÓ5[Ó0\óôñ ð .×NÑNØØ)Ø'-Ø'Ø%5Ø!'§¡¨N¸DÓ!AØ#)§:¡:Ð.>ÀÓ#EØ#)ð Oó 	÷ 	ñ	ØØ Ø*÷ô( ÜÔ(Ñ(Ü(×FÑFØ#(Ø!-Ø!-ôóˆEð ˜Ò&Ü&FØ#1Ø"'Ø(;Ø!Ø'ô'Ð#ð �J‰J�{ DÔ)Ø4JˆFÐ0Ñ1äÜò
áð
ñ ð
ñ ð	
ñ
 &ð
ñ 0ð
ñ ð
ñ ð
ñ !4ð
ñ "6ð
ñ  ð
ñ ð
ñ "ð
ñ ð
ñ $ð
ñ  ð!
ñ" $ð#
ñ$ ð%
ñ& ð'
ñ( "ð)
ñ* ð+
ñ, (ð-
ñ. $ð/
ñ0 "ð1
ñ2 ð3
ñ4 !4ð5
ñ6 &ð7
ñ8 0Øñ;
ˆô@ !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*‰Hà$ˆHô �hÔ 4Ô5Ü/×_Ñ_Ø'/Ø!'§¡Ð,>ÀÓ!CØ$7ôˆHð >QˆH×#Ñ#Ð$9Ñ:àÐÜÐWÐX`ÐWaÐbÓcÐcàˆði	ù÷ñ úðR  Søð +ùô& ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üss   ‚M ŽD,L Ä:=LÅ7LÅ8LÆ DL ÊLÊL Ê LÊ!AL Ì M ÌLÌLÌ		L ÌL Ì	L=ÌL8Ì8L=Ì=M rñ   rò   rã   c                 óX  — t        j                  |¬«      d   }|j                  d«      €|j                  d«      €|S 	 |xs t        j                  | ¬«      d   }||k(  r|S t        j                  d|› d| › d|› d|› d	|› d
|› d|› d�||¬«      ‚# t         j                  $ r |cY S w xY w)N©rO   r.   Úapi_keyrá   zprompt_id 'z' swaps model 'z' -> 'z$', which changes the provider from 'z' to 'z' after credentials for 'z3' were already resolved. Refusing to send them to 'z¡'. Point the request at a model whose provider matches the prompt's metadata.model, or set ignore_prompt_manager_model on the prompt to keep the requested model.)rQ   rO   Úllm_provider)rþ   rÿ   r9   ÚBadRequestError)rñ   rò   r~   r¾   rã   Úswapped_providerÚoriginal_providers          r<   r  r  s  sò   € ô &×6Ñ6¸]ÔKÈAÑNÐØ‡z�z�)ÓÐ$¨¯©°JÓ)?Ð)GØÐð Ø#6Ò#k¼'×:RÑ:RÐYgÔ:hÐijÑ:kÐð Ð,Ò,ØÐÜ
×
!Ñ
!à˜)˜ O°NÐ3CÀ6È-Èð YØ/Ð0°Ð7GÐ6Hð IØ!Ð"Ð"UÐVfÐUgð hUðUð Ø%ô
ð 
øô	 ×"Ñ"ò  ØÒð ús   ¿B ÂB)Â(B)râ   r  c                 ó(  — |j                  dd «      }|�"|j                  «       D ]
  \  }}	|	||<   Œ | ||fS t        t        d z  |j	                  dd «      «      }
t        t
        d z  |j	                  dd «      «      }|}t        j                  | «      }t        |t        «      rß|j                  |
|¬«      rÌt        |t        |||«      ¬«      5  |j                  ||||
||j	                  dd «      |j	                  dd «      |¬«      \  }}}d d d «       t        t        t        z  t        j                  | |¬	«      «      } | |d
<   ||d<   ||k7  rt!        |||||
¬«      }||d<   j                  «       D ]
  \  }}	|	||<   Œ | ||fS # 1 sw Y   Œ|xY w)Nró   rã   rä   rå   rç   rè   ré   rê   rí   ru   rO   rð   r~   )rØ   Úitemsr   r   r9   r8   r   r  r7   r  r  rÙ   rÕ   Úget_chat_completion_promptr   r  r  )ru   rO   r~   râ   r¾   r  rÌ   Úasync_mergedÚkeyÚvaluerã   rä   rñ   rî   rï   r  s                   r<   Ú*_apply_prompt_management_to_responses_callr'  �  sí  € ð 8>·z±zÐB_ÐaeÓ7f€LØÐØ&×,Ñ,Ó.ò 	$‰JˆC�Ø#ˆJ�sŠOð	$à�eÐ0Ð0Ð0äœC $™J¨¯
©
°;ÀÓ(EÓF€IÜ"¤4¨$¡;°·
±
Ð;MÈtÓ0TÓUÐØ!€Nä2×SÑSÐTYÓZ€LäÐ%Ô'8Ô9Ð>Q×>tÑ>tØ°ð ?uô ?ô @ØÜ4°UÐ<OÐQiÓjô
ñ 	ð $×>Ñ>ØØ%Ø#)Ø#Ø!1Ø#ŸZ™Z¨¸Ó=Ø%Ÿz™zÐ*:¸DÓAØ%ð ?ó 	ñ	ØØØ&÷	ô$ ÜÔ$Ñ$Ü$×BÑBØ$Ø)Ø)ôó
ˆð $ˆ
�7ÑØ#ˆ
�7ÑØ�NÒ"Ü"BØ-Ø#Ø$7ØØ#ô#Ðð 1DˆJÐ,Ñ-Ø0×6Ñ6Ó8ò 	$‰JˆC�Ø#ˆJ�sŠOð	$ð �%Ð,Ð,Ð,÷Q	ð 	ús   Ã>FÆFzopenai/chat_completions/Ú/_OPENAI_CHAT_COMPLETIONS_RESPONSES_MODEL_PREFIXc                 ór   — | j                  t        «      s| dfS | t        t        «      d }|s| dfS d|› �dfS )u¤   
    Strip `openai/chat_completions/<name>` â†’ `openai/<name>` and return True when the
    prefix was applied (same effect as use_chat_completions_api=True).
    FNzopenai/T)Ú
startswithr(  Úlen)rO   Ú	remainders     r<   rÒ   rÒ   ×  sO   € ð
 ×ÑÔKÔLØ�eˆ|ÐØœSÔ!PÓQÐSÐT€IÙØ�eˆ|ÐØ�Y�KÐ  $Ð&Ð&rA   c                 ó<   — | j                  dd«      }t        |«      S )zQPop use_chat_completions_api; True when the chat-completions bridge is requested.rÌ   N)rØ   r±   )r¾   Úuse_ccs     r<   Ú _pop_use_chat_completions_api_kwr/  ä  s   € à—J‘JÐ9¸4Ó@€FÜ�‹<ÐrA   z
responses/Ú_RESPONSES_ROUTING_PREFIXc                 óT   — | j                  t        «      s| S | t        t        «      d  S )N)r*  r0  r+  r  s    r<   Ú_strip_responses_routing_prefixr2  í  s*   € Ø×ÑÔ5Ô6ØˆØ”Ô.Ó/Ð1Ð2Ð2rA   Úlitellm_paramsc                 ó¬   — |�|j                   s||_         t        j                  | |¬«      \  }}}}||d<   |�||_        |�||_        t        |«      |fS )N)rO   r3  r~   )r~   rþ   rÿ   r  rá   r2  )rO   r~   r3  r  Úprovider_modelÚresolved_providerÚdynamic_api_keyÚdynamic_api_bases           r<   Ú%_resolve_model_provider_for_responsesr9  ó  s{   € ð Ð&¨~×/QÒ/QØ-@ˆÔ*ô 	× Ñ ØØ%ô	ñØØØØð
 ):€JÐ$Ñ%ØÐ"Ø!0ˆÔØÐ#Ø"2ˆÔÜ*¨>Ó:Ð<MÐMÐMrA   c                 ó¤  — |j                  d«      }t        |j                  d«      t        «      r!|j                  di «      j                  d«      nd }t        t        t
        z  t        | ||¬«      «      } | |d<   |rPt        t        t           d z  t        t        t        t        t        t        f      d z  |«      ||¬«      «      }||d<   | |fS )NÚmodel_file_id_mappingÚ
model_inforD   )ru   Úmodel_idr;  ru   )r1   r=  r;  r1   )r9   r7   r8   r   r   r   r   r   r#   r   ÚlistrF   )ru   r1   r¾   r  r;  Úmodel_info_ids         r<   Ú_apply_managed_file_id_mappingr@    sÑ   € ð $*§:¡:Ð.EÓ#FÐÜ>HÈÏÉÐT`ÓIaÔcgÔ>h�F—J‘J˜|¨RÓ0×4Ñ4°TÔ:Ðnr€MäÜÔ Ñ Ü2ØØ"Ø"7ô	
ó€Eð  €JˆwÑáÜÜ”YÑ $Ñ&Ü6Üœ4¤¤S¬& [Ñ 1Ñ2°TÑ9¸5ÓAØ&Ø&;ôó
ˆð $ˆ
�7Ñà�%ˆ<ÐrA   Ú	_is_asyncc           
      óò   — ddl m} |j                  | ¬«      syi d|“d|“d|“d|“d	|“d
|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d| “||||||||dœ¥|¥}|rt        di |¤ŽS t	        t        fi |¤ŽS )zDReturn a response when MCP gateway handles the call; otherwise None.r   r€   r?   Nru   rO   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   ra   r1   )rm   rn   rp   rz   r{   r|   r}   r~   rr   )r¤   r�   Ú_should_use_litellm_mcp_gatewayrÊ   r   )r1   ru   rO   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   ra   rm   rn   rp   rz   r{   r|   r}   r~   r¾   rA  r�   Úmcp_call_kwargss                                r<   Ú#_responses_try_dispatch_mcp_gatewayrE  -  s<  € õ>ð %×DÑDÈ5ÐDÔQØðØ�ðà�ðð 	�7ðð 	˜ð	ð
 	Ð.ðð 	�&ðð 	�Hðð 	Ð2ðð 	Ð 4ðð 	�Yðð 	�ðð 	�jðð 	�&ðð 	�{ðð 	�ðð  	�{ð!ð" 	�ð#ð$ Ø ØØ&Ø"Ø ØØ2ò3ð4 ð5€Oñ8 Ü&Ñ9¨Ñ9Ð9ÜÔ5ÑI¸ÑIÐIrA   Úallowed_openai_paramsc        !         ó†  — t        | «      r|�|du s|j                  «       ryddlm}! ddh}"i d|“d|“d	|“d
|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“|||||||||dœ	¥|rddini ¥|j	                  «       D �#�$ci c]  \  }#}$|#|"vsŒ|#|$“Œ c}$}#¥}%| r |!d||| dœ|%¤ŽS t        |!f||| dœ|%¤ŽS c c}$}#w )zMReturn a response when emulated file_search handles the call; otherwise None.NTr   )Ú$aresponses_with_emulated_file_searchr•   r´   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   ra   rm   rn   rp   )	rÛ   rÜ   rÚ   rF  rz   r{   r|   r}   r~   rÌ   )ru   rO   r1   rr   )r@   Úsupports_native_file_searchÚ.litellm.responses.file_search.emulated_handlerrH  r"  r   )&r1   ru   rO   rË   rÌ   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   ra   rm   rn   rp   rÛ   rÜ   rÚ   rF  rz   r{   r|   r}   r~   r¾   rA  rH  Ú_internal_skipÚkÚvÚemulated_kwargss&                                         r<   Ú,_responses_try_dispatch_emulated_file_searchrO  s  sº  € ôJ ! Ô'Ø%Ð-Ø# tÑ+Ø,×HÑHÔJàõð /°Ð=€NðØ�7ðà˜ðð 	Ð.ðð 	�&ð	ð
 	�Hðð 	Ð2ðð 	Ð 4ðð 	�Yðð 	�ðð 	�jðð 	�&ðð 	�{ðð 	�ðð 	�{ðð 	�ðð  	�jð!ð" 	�ð#ð$ %Ø.Ø"Ø!6Ø&Ø"Ø ØØ2ò5ñ6 2JÐ&¨Ñ-Èrð7ð8 #ŸL™L›N×
F‘D�A�q¨a°~Ò.Eˆ1ˆa‰4Ó
Fð9€Oñ< Ù3Ðm¸%ÀuÐTYÑmÐ]lÑmÐmÜØ,ðàØØñ	ð
 ñð ùó	 Gs   ÂB=ÂB=c                 ó2	  — t        «       }	 |j                  d«      }|j                  dd«      } |j                  dd«      du }!t        |«      }"|j                  d«      }#t	        j
                  |t        |#t        «      r|#nd¬«      }||d	<   t	        j                  ||¬
«      }|�||d<   t        |«      \  }$}%|$}||d<   |"xs |%}"|€1t        j                  ||j                  dd«      ¬«      \  }&}}&}&||d<   t        | ||||||"¬«      \  } }}t        dAi |¤Ž}'|'j                  r0t        |'j                  t        «      rt!        |'j                  ¬«      S t#        |||'|¬«      \  }}t%        | |||¬«      \  } }t'        dAi d|“d| “d|“d|“d|“d|“d|“d|“d|“d|“d|	“d|
“d|“d |“d!|“d|“d"|“d#|“d$|“d%|“d	|“d&|“d'|“d(|“d|“d)|“d*|!“Ž}(|(�|(S |€d})nt)        j*                  ||¬+«      })|j-                  |«       |	€5d,|v r1t/        «       j1                  |j                  d,«      «      }*|*�|*}	|*|d<   t	        j2                  |«      }+t5        dAi d|“d| “d|“d-|)“d.|"“d|“d|“d|“d|“d|“d|“d|“d|	“d|
“d|“d |“d!|“d|“d"|“d#|“d$|“d%|“d/|“d0|“d1|“d2|“d	|“d&|“d'|“d(|“d|“d)|“d*|!“Ž},|,�|,S t7        |)|"«      r(t9        j:                  dA|| |+||!||||�|nt<        |d3œ
|¤ŽS |j                  d4«      }-t	        j>                  ||)|+|t        |-t@        «      r|-nd¬5«      }.|jC                  |||t        |.«      i |.¥|!| |j                  d6«      tE        ||'jF                  «      d7|v r|d7   n|j                  d«      d8œ¥|¬9«       t	        jH                  | «      } |€tK        d:«      ‚tL        j;                  || |)|.||'||||xs t<        |!|j                  d;«      |)jO                  |||¬<«      |j                  d7i «      |j                  d=«      ¬>«      }/t        |/tP        «      r7t	        jR                  |/|j                  d7i «      |¬?«      }/||/jT                  d<   |/S # tV        $ r}0t        jX                  |||0||¬@«      ‚d}0~0ww xY w)Bzk
    Synchronous version of the Responses API.
    Uses the synchronous HTTP handler to make requests.
    râ   r•   Nr´   FTÚheaders)rz   Úclient_headersrz   rÞ   rU   rO   rß   rà   r~   )ru   rO   r~   râ   r¾   r  rÌ   rs   ©rO   r~   r3  r  )ru   r1   r¾   r  r1   ru   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   ra   rm   rn   rp   r{   r|   r}   r¾   rA  rÐ   Úreasoning_effortrË   rÌ   rÛ   rÜ   rÚ   rF  )
rO   ru   Úresponses_api_requestr~   rA  ry   rz   r|   r}   rF  Údrop_params©rO   rË   Úresponse_api_optional_paramsrF  rV  r<  rƒ   )r´   r•   r<  Údata_residencyrq   ©r¾   rO   rp   Úoptional_paramsr3  r~   ú2custom_llm_provider is required but passed as Noner+   )rO   ry   r~   Úshared_session)rO   ru   rË   Ú$response_api_optional_request_paramsr~   r3  Úlogging_objrz   r|   r}   rA  r+   Úfake_streamrƒ   r]  rô   rö   rr   )-rú   r9   rØ   r/  r   Úmerge_client_forwarded_headersr7   r8   rý   rÒ   rþ   rÿ   r'  r)   rB   r   rt   r9  r@  rE  r*   rÓ   Úupdater   Ú_map_reasoning_effortÚ)get_requested_response_api_optional_paramrO  rÎ   r0   Úresponse_api_handlerr   Ú!get_optional_params_responses_apir±   Úupdate_from_kwargsr&   rá   Ú,_restore_encrypted_content_item_ids_in_inputr  Úbase_llm_http_handlerÚshould_fake_streamr!   r  r  r  r  )1ru   rO   rv   rM   rN   rw   rq   rY   rZ   r[   r^   rx   ry   r_   rU   rÚ   ra   r1   rm   rn   rp   rÛ   rÜ   rz   r{   r|   r}   rF  r~   r¾   r  râ   r•   rA  rÌ   rR  Ú_stripped_modelÚ_from_chat_completions_prefixrÀ   r3  Ú_mcp_dispatchrË   Ú_mappedrX  Ú_file_search_dispatchÚrequest_drop_paramsÚresponses_api_request_paramsrG   r  s1                                                    r<   r  r  Ì  s  € ôP ›€Jðy
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	Ü#CÀFÓ#KÐ à &§
¡
¨9Ó 5ˆÜ0×OÑOØ'Ü-7¸ÌÔ-M™>ÐSWô
ˆð '4ˆ
�?Ñ#ô (×IÑIÐVaÐhlÔmˆØÐà!%ˆJ�vÑô :lÐlqÓ9rÑ6ˆÐ6ØˆØ#ˆ
�7ÑØ#;Ò#\Ð?\Ð àÐ&Ü+2×+CÑ+CØ j§n¡n°ZÀÓ&Fô,Ñ(ˆAÐ" A qð 1DˆJÐ,Ñ-ä,VØØØ 3Ø 3ØØ!Ø%=ô-
Ñ)ˆˆuÐ)ô !5Ñ >°vÑ >ˆð
 ×'Ò'¬J°~×7SÑ7SÔUXÔ,YÜ.¸^×=YÑ=YÔZÐZä%JØØ 3Ø)Ø!ô	&
Ñ"ˆÐ"ô 6¸EÈÐW]ÐjtÔu‰ˆˆuô
  Cò  
Ùð 
áð 
ñ ð 
ñ ð	 
ñ
 &ð 
ñ 0ð 
ñ ð 
ñ ð 
ñ !4ð 
ñ "6ð 
ñ  ð 
ñ ð 
ñ "ð 
ñ ð 
ñ $ð 
ñ  ð! 
ñ" $ð# 
ñ$ ð% 
ñ& "ð' 
ñ( ð) 
ñ* (ð+ 
ñ, $ð- 
ñ. "ð/ 
ñ0 ð1 
ñ2 !4ð3 
ñ4 ð5 
ñ6  ð7 
ˆð: Ð$Ø Ð ð Ð&Ø,0Ñ)ä,A×,cÑ,cØØ,ô-Ð)ð
 	×Ñ˜&Ô!àÐÐ!3°zÑ!AÜ;Ó=×SÑSÐT^×TbÑTbÐcuÓTvÓwˆGØÐ"Ø#�	Ø*1�
˜;Ñ'ô %×NÑNÈzÓZð 	%ô (Tò "(
Ùð"(
áð"(
ñ ð"(
ñ +Hð	"(
ñ
 &>ð"(
ñ ð"(
ñ &ð"(
ñ 0ð"(
ñ ð"(
ñ ð"(
ñ !4ð"(
ñ "6ð"(
ñ  ð"(
ñ ð"(
ñ "ð"(
ñ  ð!"(
ñ" $ð#"(
ñ$ ð%"(
ñ& $ð'"(
ñ( ð)"(
ñ* "ð+"(
ñ, ð-"(
ñ. &ð/"(
ñ0 0ð1"(
ñ2 $ð3"(
ñ4 #8ð5"(
ñ6 (ð7"(
ñ8 $ð9"(
ñ: "ð;"(
ñ< ð="(
ñ> !4ð?"(
ñ@ ðA"(
ñB  ðC"(
ÐðF !Ð,Ø(Ð(ä'Ð(EÐG_Ô`Ü<×QÑQð ØØØ&BØ$7Ø#ØØ+Ø%Ø#*Ð#6™¼OØ&;ñð ñð ð &,§Z¡Z°Ó%>ÐÜ4L×4nÑ4nØØ*GØ)EØ"7Ü/9Ð:MÌtÔ/TÑ+ÐZ^ô5
Ð$ð 	×.Ñ.ØØØÜ Ð!=Ó>ðØ.ðà'Ø#2Ø$Ÿj™j¨Ó6Ü"=Ð>QÐSa×SjÑSjÓ"kØ;MÐQWÑ;W˜VÐ$6Ò7Ð]c×]gÑ]gÐhrÓ]sòð !4ð 	/ô 	
ô" )×UÑUÐV[Ó\ˆð Ð&ÜÐQÓRÐRä(×=Ñ=ØØØ*GØ1MØ 3Ø)Ø+Ø'Ø!ØÒ.œØØ—:‘:˜hÓ'Ø5×HÑHØ FÐ@Sð Ió ð $ŸZ™ZÐ(:¸BÓ?Ø!Ÿ:™:Ð&6Ó7ð# >ó 
ˆô* �hÔ 4Ô5Ü/×_Ñ_Ø'/Ø!'§¡Ð,>ÀÓ!CØ$7ôˆHð >QˆH×#Ñ#Ð$9Ñ:àˆøÜò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús3   ŒE	Q. ÅBQ. ÇC(Q. Ë3Q. Ë5E8Q. Ñ.	RÑ7RÒRr�   c           
   ‹   ó0  K  — t        «       }	 t        j                  «       }d|d<   t        j                  | ¬«      }	|	j                  d«      xs | } |	j                  d«      xs |}t        t        f| |||||dœ|¤Ž}
t        j                  «       }t        |j                  |
«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)	zz
    Async version of the DELETE Responses API

    DELETE /v1/responses/{response_id} endpoint in the responses API

    TÚadelete_responses©r�   r�   r~   ©r�   r~   rz   r{   r|   r}   Nrö   )rú   rû   rü   r   Ú!_decode_responses_api_response_idr9   r   Údelete_responsesr  r	  r
  r  r  r  rþ   r  ©r�   rz   r{   r|   r}   r~   r¾   r  r  Údecoded_response_idr  r  r  r  rG   r  s                   r<   rs  rs  ò  ó@  è ø€ ô& ›€Jð&
Ü×,Ñ,Ó.ˆØ&*ˆÐ"Ñ#ô 9Q×8rÑ8rØ#ô9
Ðð *×-Ñ-¨mÓ<ÒKÀˆØ1×5Ñ5Ð6KÓLÒcÐPcÐäÜð	
à#Ø 3Ø'Ø#Ø!Øñ	
ð ñ	
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søð +ùô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üóY   ‚DŽB/C+ Â=C'Â>C+ ÃC)ÃC+ Ã"DÃ#C+ Ã&DÃ'C+ Ã)C+ Ã+	DÃ4DÄDÄDc                 óÀ  — t        «       }	 |j                  d«      }|j                  dd«      }	|j                  dd«      du }
t        di |¤Ž}t	        j
                  | ¬«      }|j                  d«      xs | } |j                  d	«      xs |}|€t        d
«      ‚t        j                  d|¬«      }|€t        d|› �«      ‚|j                  |«       |j                  |dd| id|	i|¬«       t        j                  | |||||||xs t        |
|j                  d«      |j                  d«      ¬«      }|S # t        $ r}t        j                   d||||¬«      ‚d}~ww xY w)z€
    Synchronous version of the DELETE Responses API

    DELETE /v1/responses/{response_id} endpoint in the responses API

    râ   r•   Nrs  FTrt  r�   r~   r\  rÐ   z&DELETE responses is not supported for ©r¾   rO   r[  r3  r~   r+   r]  ©r�   r~   rË   r3  r_  rz   r|   r}   rA  r+   r]  rö   rr   )rú   r9   rØ   r)   r   rv  r  r*   rÓ   rb  rg  ri  Údelete_response_api_handlerr   r  rþ   r  ©r�   rz   r{   r|   r}   r~   r¾   r  râ   r•   rA  r3  ry  rË   rG   r  s                   r<   rw  rw  /  óµ  € ô& ›€JðC
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™:Ð&9¸5ÓAÀTÐIˆ	ô !5Ñ >°vÑ >ˆô 9Q×8rÑ8rØ#ô9
Ðð *×-Ñ-¨mÓ<ÒKÀˆØ1×5Ñ5Ð6KÓLÒcÐPcÐàÐ&ÜÐQÓRÐRô "×CÑCØØ,ôð 	&ð )Ð0ÜÐEÐFYÐEZÐ[Ó\Ð\à×Ñ˜&Ô!ð 	×.Ñ.ØØà˜{ðð " ?ðð !4ð 	/ô 
	
ô 0×KÑKØ#Ø 3Ø*GØ)Ø+Ø'Ø!ØÒ.œØØ—:‘:˜hÓ'Ø!Ÿ:™:Ð&6Ó7ð Ló 
ˆð ˆøÜò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
úó   ŒD(D5 Ä5	EÄ>EÅEc           
   ‹   óž  K  — t        «       }	 t        j                  «       }d|d<   t        j                  | ¬«      }	|	j                  d«      xs | } |	j                  d«      xs |}t        t        f| |||||dœ|¤Ž}
t        j                  «       }t        |j                  |
«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }n|}t        |t        «      r(t        j                  ||j                  di «      |¬	«      }|S 7 Œ`7 ŒC# t         $ r}t#        j$                  d||||¬
«      ‚d}~ww xY w­w)ax  
    Async: Fetch a response by its ID.

    GET /v1/responses/{response_id} endpoint in the responses API

    Args:
        response_id: The ID of the response to fetch.
        custom_llm_provider: Optional provider name. If not specified, will be decoded from response_id.

    Returns:
        The response object with complete information about the stored response.
    TÚaget_responsesrt  r�   r~   ru  Nrƒ   rô   rö   )rú   rû   rü   r   rv  r9   r   Úget_responsesr  r	  r
  r  r  r7   r!   r  r  rþ   r  rx  s                   r<   r„  r„  ‰  sk  è ø€ ô2 ›€Jð.
Ü×,Ñ,Ó.ˆØ#'ˆÐÑ ô 9Q×8rÑ8rØ#ô9
Ðð *×-Ñ-¨mÓ<ÒKÀˆØ1×5Ñ5Ð6KÓLÒcÐPcÐäÜð	
à#Ø 3Ø'Ø#Ø!Øñ	
ð ñ	
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*‰Hà$ˆHô �hÔ 4Ô5Ü/×_Ñ_Ø'/Ø!'§¡Ð,>ÀÓ!CØ$7ôˆHð
 ˆð  Søð +ùô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsN   ‚EŽB/D" Â=DÂ>D" ÃD ÃA D" ÄEÄD" Ä D" Ä"	E
Ä+EÅE
Å
Ec                 ó0  — t        «       }	 |j                  d«      }|j                  dd«      }	|j                  dd«      du }
t        di |¤Ž}t	        j
                  | ¬«      }|j                  d«      xs | } |j                  d	«      xs |}|€t        d
«      ‚t        j                  d|¬«      }|€t        d|› �«      ‚|j                  |«       |j                  |dd| id|	i|¬«       t        j                  | |||||||xs t        |
|j                  d«      |j                  d«      ¬«      }t        |t        «      r(t	        j                   ||j                  di «      |¬«      }|S # t"        $ r}t%        j&                  d||||¬«      ‚d}~ww xY w)aq  
    Fetch a response by its ID.

    GET /v1/responses/{response_id} endpoint in the responses API

    Args:
        response_id: The ID of the response to fetch.
        custom_llm_provider: Optional provider name. If not specified, will be decoded from response_id.

    Returns:
        The response object with complete information about the stored response.
    râ   r•   Nr„  FTrt  r�   r~   r\  rÐ   z#GET responses is not supported for r}  r+   r]  r~  rƒ   rô   rö   rr   )rú   r9   rØ   r)   r   rv  r  r*   rÓ   rb  rg  ri  r…  r   r7   r!   r  r  rþ   r  r€  s                   r<   r…  r…  Ô  sæ  € ô2 ›€JðK
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™:Ð&6¸Ó>À$ÐFˆ	ô !5Ñ >°vÑ >ˆô 9Q×8rÑ8rØ#ô9
Ðð *×-Ñ-¨mÓ<ÒKÀˆØ1×5Ñ5Ð6KÓLÒcÐPcÐàÐ&ÜÐQÓRÐRô "×CÑCØØ,ôð 	&ð )Ð0ÜÐBÐCVÐBWÐXÓYÐYà×Ñ˜&Ô!ð 	×.Ñ.ØØà˜{ðð " ?ðð !4ð 	/ô 
	
ô )×6Ñ6Ø#Ø 3Ø*GØ)Ø+Ø'Ø!ØÒ.œØØ—:‘:˜hÓ'Ø!Ÿ:™:Ð&6Ó7ð 7ó 
ˆô �hÔ 4Ô5Ü/×_Ñ_Ø'/Ø!'§¡Ð,>ÀÓ!CØ$7ôˆHð ˆøÜò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒE E- Å-	FÅ6FÆFÚafterÚbeforeÚlimitÚorder)ÚascÚdescc	              ‹   ó6  K  — t        «       }
	 t        j                  «       }d|	d<   t        j                  | ¬«      }|j                  d«      xs | } |j                  d«      xs |}t        t        f| ||||||||dœ	|	¤Ž}t        j                  «       }t        |j                  |«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d|||
|	¬«      ‚d}~ww xY w­w)	z&Async: List input items for a responseTÚalist_input_itemsrt  r�   r~   )	r�   r‡  rˆ  rv   r‰  rŠ  rz   r}   r~   Nrö   )rú   rû   rü   r   rv  r9   r   Úlist_input_itemsr  r	  r
  r  r  r  rþ   r  )r�   r‡  rˆ  rv   r‰  rŠ  rz   r}   r~   r¾   r  r  ry  r  r  r  r  rG   r  s                      r<   rŽ  rŽ  <  sB  è ø€ ô ›€Jð&
Ü×,Ñ,Ó.ˆØ&*ˆÐ"Ñ#ä%=×%_Ñ%_ÐlwÔ%xÐØ)×-Ñ-¨mÓ<ÒKÀˆØ1×5Ñ5Ð6KÓLÒcÐPcÐäÜð
à#ØØØØØØ'ØØ 3ñ
ð ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søð +ùô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsY   ‚DŽB2C. Ã C*ÃC. ÃC,Ã C. Ã%DÃ&C. Ã)DÃ*C. Ã,C. Ã.	DÃ7DÄDÄDc	                 óÈ  — t        «       }
	 |	j                  d«      }|	j                  dd«      }|	j                  dd«      du }t        di |	¤Ž}t	        j
                  | ¬«      }|j                  d«      xs | } |j                  d	«      xs |}|€t        d
«      ‚t        j                  d|¬«      }|€t        d|› �«      ‚|
j                  |	«       |j                  |
dd| id|i|¬«       t        j                  | |||||||||||xs t        ||	j                  d«      |	j                  d«      ¬«      }|S # t        $ r}t        j                   d|||
|	¬«      ‚d}~ww xY w)zList input items for a responserâ   r•   NrŽ  FTrt  r�   r~   r\  rÐ   z&list_input_items is not supported for r}  r+   r]  )r�   r~   rË   r3  r_  r‡  rˆ  rv   r‰  rŠ  rz   r}   rA  r+   r]  rö   rr   )rú   r9   rØ   r)   r   rv  r  r*   rÓ   rb  rg  ri  Úlist_responses_input_itemsr   r  rþ   r  )r�   r‡  rˆ  rv   r‰  rŠ  rz   r}   r~   r¾   r  râ   r•   rA  r3  ry  rË   rG   r  s                      r<   r�  r�  t  s­  € ô ›€Jð<
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™:Ð&9¸5ÓAÀTÐIˆ	ä 4Ñ >°vÑ >ˆä%=×%_Ñ%_ÐlwÔ%xÐØ)×-Ñ-¨mÓ<ÒKÀˆØ1×5Ñ5Ð6KÓLÒcÐPcÐàÐ&ÜÐQÓRÐRô "×CÑCØØ,ôð 	&ð )Ð0ÜÐEÐFYÐEZÐ[Ó\Ð\à×Ñ˜&Ô!à×.Ñ.ØØØ*¨KÐ8Ø-¨Ð?Ø 3ð 	/ô 	
ô 0×JÑJØ#Ø 3Ø*GØ)Ø+ØØØØØØ'ØÒ.œØØ—:‘:˜hÓ'Ø!Ÿ:™:Ð&6Ó7ð Kó 
ˆð$ ˆøÜò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒD,D9 Ä9	E!ÅEÅE!c           
   ‹   ó0  K  — t        «       }	 t        j                  «       }d|d<   t        j                  | ¬«      }	|	j                  d«      xs | } |	j                  d«      xs |}t        t        f| |||||dœ|¤Ž}
t        j                  «       }t        |j                  |
«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)	z„
    Async version of the POST Cancel Responses API

    POST /v1/responses/{response_id}/cancel endpoint in the responses API

    TÚacancel_responsesrt  r�   r~   ru  Nrö   )rú   rû   rü   r   rv  r9   r   Úcancel_responsesr  r	  r
  r  r  r  rþ   r  rx  s                   r<   r“  r“  Â  rz  r{  c                 óÀ  — t        «       }	 |j                  d«      }|j                  dd«      }	|j                  dd«      du }
t        di |¤Ž}t	        j
                  | ¬«      }|j                  d«      xs | } |j                  d	«      xs |}|€t        d
«      ‚t        j                  d|¬«      }|€t        d|› �«      ‚|j                  |«       |j                  |dd| id|	i|¬«       t        j                  | |||||||xs t        |
|j                  d«      |j                  d«      ¬«      }|S # t        $ r}t        j                   d||||¬«      ‚d}~ww xY w)zƒ
    Synchronous version of the POST Responses API

    POST /v1/responses/{response_id}/cancel endpoint in the responses API

    râ   r•   Nr“  FTrt  r�   r~   r\  rÐ   z&CANCEL responses is not supported for r}  r+   r]  r~  rö   rr   )rú   r9   rØ   r)   r   rv  r  r*   rÓ   rb  rg  ri  Úcancel_response_api_handlerr   r  rþ   r  r€  s                   r<   r”  r”  ÿ  r�  r‚  c	              ‹   óŠ  K  — t        «       }
	 t        j                  «       }d|	d<   |€1t        j                  ||
j                  dd«      ¬«      \  }}}}||
d<   t        t        f| ||||||||dœ	|	¤Ž}t        j                  «       }t        |j                  |«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }n|}t        |t        «      r(t        j                   ||	j                  di «      |¬	«      }|S 7 Œ`7 ŒC# t"        $ r}t        j$                  ||||
|	¬
«      ‚d}~ww xY w­w)zË
    Async version of the POST Compact Responses API

    POST /v1/responses/compact endpoint in the responses API

    Runs a compaction pass over a conversation, returning encrypted, opaque items.
    TÚacompact_responsesNrß   rà   r~   )	ru   rO   rM   rZ   rz   r{   r|   r}   r~   rƒ   rô   rö   )rú   rû   rü   rþ   rÿ   r9   r   Úcompact_responsesr  r	  r
  r  r  r7   r!   r   r  r  r  )ru   rO   rM   rZ   rz   r{   r|   r}   r~   r¾   r  r  rÀ   r  r  r  r  rG   r  s                      r<   r˜  r˜  Y  sn  è ø€ ô. ›€Jð3
Ü×,Ñ,Ó.ˆØ'+ˆÐ#Ñ$ð Ð&Ü+2×+CÑ+CØ j§n¡n°ZÀÓ&Fô,Ñ(ˆAÐ" A qð 1DˆJÐ,Ñ-äÜð
àØØ%Ø!5Ø'Ø#Ø!ØØ 3ñ
ð ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*‰Hà$ˆHô �hÔ 4Ô5Ü/×_Ñ_Ø'/Ø!'§¡Ð,>ÀÓ!CØ$7ôˆHð ˆð  Søð +ùô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsN   ‚EŽB%D Â3DÂ4D ÃDÃA D ÄEÄD ÄD Ä	E Ä!D;Ä;E Å Ec	                 óæ  — t        «       }
	 |	j                  d«      }|	j                  dd«      }|	j                  dd«      du }t        di |	¤Ž}t	        ||||
¬«      \  }}|€t        d«      ‚t        j                  ||¬	«      }|€t        d
|› �«      ‚|
j                  |	«       t        j                  |
«      }|	j                  d«      }t        j                  |||dt        |t        «      r|nd¬«      }|j                  |
|t        |«      i |¥|t!        ||j"                  «      dœ¥|¬«       t        j$                  | «      } t&        j)                  || ||||||||xs t*        ||	j                  d«      |	j                  d«      ¬«      }t        |t,        «      r(t        j.                  ||	j                  di «      |¬«      }|S # t0        $ r}t3        j4                  ||||
|	¬«      ‚d}~ww xY w)zÑ
    Synchronous version of the POST Compact Responses API

    POST /v1/responses/compact endpoint in the responses API

    Runs a compaction pass over a conversation, returning encrypted, opaque items.
    râ   r•   Nr˜  FTrS  r\  rÐ   z'COMPACT responses is not supported for rV  rW  )r•   rY  r}  r+   r]  )rO   ru   rË   r^  r3  r_  r~   rz   r|   r}   rA  r+   r]  rƒ   rô   rö   rr   )rú   r9   rØ   r)   r9  r  r*   rÓ   rb  r   rd  rf  r7   r±   rg  r8   r&   rá   rh  ri  Úcompact_response_api_handlerr   r!   r  r  rþ   r  )ru   rO   rM   rZ   rz   r{   r|   r}   r~   r¾   r  râ   r•   rA  r3  rË   rX  rp  rq  rG   r  s                        r<   r™  r™  §  sF  € ô. ›€Jð`
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™:Ð&:¸EÓBÀdÐJˆ	ô !5Ñ >°vÑ >ˆä%JØØ 3Ø)Ø!ô	&
Ñ"ˆÐ"ð Ð&ÜÐQÓRÐRô "×CÑCØØ,ôð 	&ð )Ð0ÜÐFÐGZÐF[Ð\Ó]Ð]à×Ñ˜&Ô!ô %×NÑNÈzÓZð 	%ð
 &,§Z¡Z°Ó%>ÐÜ4L×4nÑ4nØØ*GØ)EØ"&Ü/9Ð:MÌtÔ/TÑ+ÐZ^ô5
Ð$ð 	×.Ñ.ØØÜ Ð!=Ó>ðØ.ðà#2Ü"=Ð>QÐSa×SjÑSjÓ"kòð
 !4ð 	/ô 
	
ô )×UÑUÐV[Ó\ˆô )×EÑEØØØ*GØ1MØ)Ø+Ø 3Ø'Ø!ØÒ.œØØ—:‘:˜hÓ'Ø!Ÿ:™:Ð&6Ó7ð Fó 
ˆô" �hÔ 4Ô5Ü/×_Ñ_Ø'/Ø!'§¡Ð,>ÀÓ!CØ$7ôˆHð ˆøÜò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒF;G Ç	G0ÇG+Ç+G0c                 ó¸   — i | j                  d«      xs i ¥}| j                  d«      xs i j                  d«      xs | j                  d«      xs g }|r||d<   |S )Nrƒ   rq   Ú
guardrails)r9   )r¾   rq   r�  s      r<   Ú_build_litellm_metadata_for_wsrž  '  s`   € ØF §
¡
Ð+=Ó >Ò DÀ"ÐF€HØŸ™ JÓ/Ò5°2×:Ñ:¸<ÓHÒjÈFÏJÉJÐWcÓLdÒjÐhj€JÙØ!+ˆ�ÑØ€OrA   Ú	websocketr,   rá   r  c              ‹   ól  K  — |j                  d«      }|j                  dd«      }t        di |¤Ž}t        di |¤Ž}	t        j                  | ||¬«      \  }
}}}t        |
«      }t        ||xs |j                  xs t        j                  «      |	d<   |j                  |||i |	|¬«       d}|�*t        j                  |t        j                  |«      ¬«      }|xs" |j                  xs t        j                  xs d}|xs= |j                  xs/ t        j                  xs t        j                  xs t        d«      }h d	£}|j                  «       D ��ci c]  \  }}||vsŒ||“Œ }}}t!        j"                  d||||||||j                  d
«      t%        |«      |dœ
|¤Žƒ d{  –—†  yc c}}w 7 Œ­w)a  
    Private function to handle the Responses API WebSocket mode.

    For PROXY use only.

    Resolves the LLM provider from ``model``, looks up the matching
    ``BaseResponsesAPIConfig``, and hands off to
    ``BaseLLMHTTPHandler.async_responses_websocket``.
    râ   rp   N)rO   rá   r  rY  rZ  rÐ   ÚOPENAI_API_KEY>	   rO   r  r}   rá   rŸ  rƒ   Úuser_api_key_dictr~   râ   r¢  )
rO   rŸ  r_  rË   rá   r  r}   r¢  rƒ   r~   rr   )r9   r)   r%   rþ   rÿ   r2  r&   rá   rg  r*   rÓ   ÚLlmProvidersr  Ú
openai_keyr'   r"  ri  Úasync_responses_websocketrž  )rO   rŸ  rá   r  r}   r¾   râ   rp   r3  Úlitellm_params_dictr5  Ú_custom_llm_providerr7  r8  Úresolved_modelrË   Úresolved_api_baseÚresolved_api_keyÚ_explicit_keysrL  rM  Úremaining_kwargss                         r<   Ú_aresponses_websocketr­  /  s÷  è ø€ ð$ 5;·J±JÐ?TÓ4UÐØ—*‘*˜V TÓ*€DÜ0Ñ:°6Ñ:€NÜ!3Ñ!=°fÑ!=Ðô 	× Ñ ØØØô	ñØØØØô <¸NÓK€Nä,GØØÒG˜N×3Ñ3ÒG´w×7GÑ7Gó-ÐÐ(Ñ)ð
 ×*Ñ*ØØØØØ*Ø0ð +ô ð DHÐ!ØÐ'Ü(=×(_Ñ(_Ø Ü×)Ñ)Ð*>Ó?ô)
Ð%ð
  0Òf°>×3JÑ3JÒfÌg×N^ÑN^ÒfÐbfÐàò 	,Ø×!Ñ!ò	,ä�?‰?ò	,ô ×Ñò	,ô Ð*Ó+ð ò
€Nð 17·±³×Z©¨¨1À!È>ÒBY˜q !™tÐZÐÑZä
×
9Ñ
9ð ØØØ'Ø&CØ"Ø ØØ Ÿ*™*Ð%8Ó9Ü7¸Ó?Ø0ñð ñ÷ ñ ùó [ðús$   ‚EF4ÅF,Å#F,Å(>F4Æ&F2Æ'F4)a“  In a peaceful grove beneath a silver moon, a unicorn named Lumina discovered a hidden pool that reflected the stars. As she dipped her horn into the water, the pool began to shimmer, revealing a pathway to a magical realm of endless night skies. Filled with wonder, Lumina whispered a wish for all who dream to find their own hidden magic, and as she glanced back, her hoofprints sparkled like stardust.)NNNNNNNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNNNNNNNNNNN)NNNNNNNNNNNNNNNNNNNNNNNNNNN)NNNNN)NNNé   rŒ  NNN)NNNNNNN)NNN)xrû   r  Úcollections.abcr   r   r   r   Ú
contextlibr   Ú	functoolsr   Útypingr	   r
   r   r   r   r   ÚhttpxÚpydanticr   rþ   Úlitellm._loggingr   ÚIlitellm.completion_extras.litellm_responses_transformation.transformationr   Úlitellm.constantsr   Ú1litellm.integrations.anthropic_cache_control_hookr   Ú#litellm.litellm_core_utils.asyncifyr   Ú*litellm.litellm_core_utils.litellm_loggingr   r  Ú8litellm.litellm_core_utils.prompt_templates.common_utilsr   r   Ú.litellm.llms.base_llm.responses.transformationr   Ú*litellm.llms.custom_httpx.llm_http_handlerr   Ú;litellm.responses.litellm_completion_transformation.handlerr   Úlitellm.responses.utilsr   Úlitellm.types.llms.openair   r   r   r   r    r!   r"   r#   r$   r   Ú-litellm.litellm_core_utils.get_litellm_paramsr%   Ú"litellm.llms.openai.data_residencyr&   Úlitellm.secret_managers.mainr'   Úlitellm.types.responses.mainÚlitellm.types.routerr)   Úlitellm.utilsr*   r+   Úfastapir,   Ú	mcp.typesr-   ÚMCPToolÚstreaming_iteratorr/   ri  r0   Ú__annotations__rF   r±   r@   rt   r>  Úintr8   ÚfloatÚTimeoutrÊ   rÎ   rÕ   rÙ   r5   r´   r  Útupler'  r(  rÒ   r/  r0  r2  r9  r@  rE  rO  r  ÚDeleteResponseResultrs  rw  r„  r…  rŽ  r�  r“  r”  r˜  r™  rž  r­  rr   rA   r<   ú<module>rÑ     s*  ðÜ Û ß CÓ CÝ %Ý ß E× Eã Ý ã Ý +õõ .Ý \Ý BÝ S÷õ RÝ Iõõ =÷	÷ 	ó 	ñ Þ6à€LÝ LÝ JÝ 7Ü *Ý 5÷ñ
 Ý!Þ)à€Gå Añ +Ó,Ð Ù3YÓ3[Ð )¨5Ó [ðV ¨'°#°v°+Ñ*>Ñ!?À$Ñ!Fð VÈ4ó Vð oñ1Øó1ðn 04Ø#Ø$(Ø"&Ø)-Ø'+Ø'+Ø"&ØØ"ØØ $Ø%)Ø%)Ø(,ØØ59Øð /3Ø,0Ø+/Ø,0à&*ñ9EØÐ#Ñ#ðEàðEð Ð$Ñ%¨Ñ,ðEð ˜‘*ð	Eð
 ˜T‘zðEð ˜4ÑðEð �3˜�;Ñ $Ñ&ðEð  ™ðEð  ™*ðEð ˜4ÑðEð �$‰;ðEð �t‘ðEð �4‰KðEð ˜‘ðEð �>Ñ
"ðEð  ˜dÑ"ð!Eð" �IÑ Ñ%ð#Eð$ �4‰<ð%Eð& Ð*Ñ+¨dÑ2ð'Eð( �‰*ð)Eð. ˜˜V˜Ñ$ tÑ+ð/Eð0 �c˜6�kÑ" TÑ)ð1Eð2 �S˜&�[Ñ! DÑ(ð3Eð4 �U—]‘]Ñ" TÑ)ð5Eð8 ˜t™ð9Eð< Ð=Ñ=ó=EðPUØ#9¸DÑ#@ðUØ\`ðUà	óUðØðØ%(¨4¡ZðØKOðà	óð, ð9Ø��c�‰Nð9àð9ð ˆzÑò9ó ð9ð0 ð 04Ø#Ø$(Ø"&Ø)-Ø'+Ø'+Ø"&ØØ"ØØ $Ø%)Ø37Ø%)Ø(,ØØ59ØØ#Ø$(ð /3Ø,0Ø+/Ø,0à&*ñ?o
ØÐ#Ñ#ðo
àðo
ð Ð$Ñ%¨Ñ,ðo
ð ˜‘*ð	o
ð
 ˜T‘zðo
ð ˜4Ñðo
ð �3˜�;Ñ $Ñ&ðo
ð  ™ðo
ð  ™*ðo
ð ˜4Ñðo
ð �$‰;ðo
ð �t‘ðo
ð �4‰Kðo
ð ˜‘ðo
ð �>Ñ
"ðo
ð  �kÑ" TÑ)¨DÑ0ð!o
ð" ˜dÑ"ð#o
ð$ �IÑ Ñ%ð%o
ð& �4‰<ð'o
ð( Ð*Ñ+¨dÑ2ð)o
ð* �‰*ð+o
ð, ˜‘*ð-o
ð. ˜T‘zð/o
ð4 ˜˜V˜Ñ$ tÑ+ð5o
ð6 �c˜6�kÑ" TÑ)ð7o
ð8 �S˜&�[Ñ! DÑ(ð9o
ð: �U—]‘]Ñ" TÑ)ð;o
ð> ˜t™ð?o
ðB Ð=Ñ=òCo
ó ðo
ðdØðàðð ˜t™ðð �C˜�KÑ ð	ð
 �T‰zðð 	óð:@-ØÐ#Ñ#ð@-àð@-ð ˜t™ð@-ð +¨TÑ1ð	@-ð
 ��c�‰Nð@-ð �S˜&�[Ñ!ð@-ð #ð@-ð ˆ3Ð#Ñ# S¨#°©*Ð4Ñ5ó@-ðH :TÐ /°Ó Sð
'¸cð 
'ÀeÈCÐQUÈIÑFVó 
'ð¨T°#°v°+Ñ->ð À4ó ð $0Ð ˜5Ó /ð3¨3ð 3°3ó 3ðNØðNà˜t™ðNð )ðNð �S˜&�[Ñ!ð	Nð
 ˆ3��d‘
ˆ?ÑóNð2ØÐ#Ñ#ðà�IÑ Ñ%ðð ��c�‰Nðð �S˜&�[Ñ!ð	ð
 ˆ3Ð#Ñ# X¨iÑ%8¸4Ñ%?Ð?Ñ@óðBCJà�IÑ Ñ%ðCJð Ð#Ñ#ðCJð ð	CJð
 Ð$Ñ%¨Ñ,ðCJð ˜‘*ðCJð ˜T‘zðCJð ˜4ÑðCJð �3˜�;Ñ $Ñ&ðCJð  ™ðCJð  ™*ðCJð ˜4ÑðCJð �$‰;ðCJð �t‘ðCJð �4‰KðCJð  ˜‘ð!CJð" ð#CJð$ ˜dÑ"ð%CJð& �4‰<ð'CJð( Ð*Ñ+¨dÑ2ð)CJð* �‰*ð+CJð, ˜˜V˜Ñ$ tÑ+ð-CJð. �c˜6�kÑ" TÑ)ð/CJð0 �S˜&�[Ñ! DÑ(ð1CJð2 �U—]‘]Ñ" TÑ)ð3CJð4 ˜t™ð5CJð6 ��f�Ñð7CJð8 ð9CJð: 	ˆ4�Zó;CJðLVà�IÑ Ñ%ðVð Ð#Ñ#ðVð ð	Vð
 $:¸DÑ#@ðVð #ðVð Ð$Ñ%¨Ñ,ðVð ˜‘*ðVð ˜T‘zðVð ˜4ÑðVð �3˜�;Ñ $Ñ&ðVð  ™ðVð  ™*ðVð ˜4ÑðVð �$‰;ðVð  �t‘ð!Vð" �4‰Kð#Vð$ ˜‘ð%Vð& ð'Vð( ˜dÑ"ð)Vð* �4‰<ð+Vð, Ð*Ñ+¨dÑ2ð-Vð. �‰*ð/Vð0 ˜‘*ð1Vð2 ˜T‘zð3Vð4 �i‘ 4Ñ'¨$Ñ.ð5Vð6   ™9 tÑ+ð7Vð8 ˜˜V˜Ñ$ tÑ+ð9Vð: �c˜6�kÑ" TÑ)ð;Vð< �S˜&�[Ñ! DÑ(ð=Vð> �U—]‘]Ñ" TÑ)ð?Vð@ ˜t™ðAVðB ��f�ÑðCVðD ðEVðF ˜I f¨fÐ6JÐ&JÑKÑKÈdÑRóGVðr ð 04Ø#Ø$(Ø"&Ø)-Ø'+Ø'+Ø"&ØØ"ØØ $Ø%)Ø37Ø%)Ø(,ØØ59ØØ#Ø$(ð /3Ø,0Ø+/Ø,0à.2Ø&*ñAb
ØÐ#Ñ#ðb
àðb
ð Ð$Ñ%¨Ñ,ðb
ð ˜‘*ð	b
ð
 ˜T‘zðb
ð ˜4Ñðb
ð �3˜�;Ñ $Ñ&ðb
ð  ™ðb
ð  ™*ðb
ð ˜4Ñðb
ð �$‰;ðb
ð �t‘ðb
ð �4‰Kðb
ð ˜‘ðb
ð �>Ñ
"ðb
ð  �kÑ" TÑ)¨DÑ0ð!b
ð" ˜dÑ"ð#b
ð$ �IÑ Ñ%ð%b
ð& �4‰<ð'b
ð( Ð*Ñ+¨dÑ2ð)b
ð* �‰*ð+b
ð, ˜‘*ð-b
ð. ˜T‘zð/b
ð4 ˜˜V˜Ñ$ tÑ+ð5b
ð6 �c˜6�kÑ" TÑ)ð7b
ð8 �S˜&�[Ñ! DÑ(ð9b
ð: �U—]‘]Ñ" TÑ)ð;b
ð>   ™9 tÑ+ð?b
ð@ ˜t™òAb
ó ðb
ðJ	 ð
 /3Ø,0Ø+/Ø,0à&*ñ9
Øð9
ð ˜˜V˜Ñ$ tÑ+ð	9
ð
 �c˜6�kÑ" TÑ)ð9
ð �S˜&�[Ñ! DÑ(ð9
ð �U—]‘]Ñ" TÑ)ð9
ð ˜t™ð9
ð ò9
ó ð9
ðx ð
 /3Ø,0Ø+/Ø,0à&*ñV
ØðV
ð ˜˜V˜Ñ$ tÑ+ð	V
ð
 �c˜6�kÑ" TÑ)ðV
ð �S˜&�[Ñ! DÑ(ðV
ð �U—]‘]Ñ" TÑ)ðV
ð ˜t™ðV
ð ˜I f¨fÐ6JÐ&JÑKÑKòV
ó ðV
ðr ð
 /3Ø,0Ø+/Ø,0à&*ñG
ØðG
ð ˜˜V˜Ñ$ tÑ+ð	G
ð
 �c˜6�kÑ" TÑ)ðG
ð �S˜&�[Ñ! DÑ(ðG
ð �U—]‘]Ñ" TÑ)ðG
ð ˜t™ðG
ð òG
ó ðG
ðT ð
 /3Ø,0Ø+/Ø,0à&*ñd
Øðd
ð ˜˜V˜Ñ$ tÑ+ð	d
ð
 �c˜6�kÑ" TÑ)ðd
ð �S˜&�[Ñ! DÑ(ðd
ð �U—]‘]Ñ" TÑ)ðd
ð ˜t™ðd
ð ˜I f¨fÐ6JÐ&JÑKÑKòd
ó ðd
ðN ð ØØ $ØØ$*Ø.2Ø,0Ø&*ñ4
Øð4
à�‰:ð4
ð �$‰Jð4
ð �#‰Y˜Ñð	4
ð
 ð4
ð �=Ñ!ð4
ð ˜˜V˜Ñ$ tÑ+ð4
ð �U—]‘]Ñ" TÑ)ð4
ð ˜t™ð4
ð 
ò4
ó ð4
ðn ð ØØ $ØØ$*Ø.2Ø,0Ø&*ñJ
ØðJ
à�‰:ðJ
ð �$‰JðJ
ð �#‰Y˜Ñð	J
ð
 ðJ
ð �=Ñ!ðJ
ð ˜˜V˜Ñ$ tÑ+ðJ
ð �U—]‘]Ñ" TÑ)ðJ
ð ˜t™ðJ
ð 
ˆI�f˜f dÐ*Ñ+Ñ+òJ
ó ðJ
ðZ ð
 /3Ø,0Ø+/Ø,0à&*ñ9
Øð9
ð ˜˜V˜Ñ$ tÑ+ð	9
ð
 �c˜6�kÑ" TÑ)ð9
ð �S˜&�[Ñ! DÑ(ð9
ð �U—]‘]Ñ" TÑ)ð9
ð ˜t™ð9
ð ò9
ó ð9
ðx ð
 /3Ø,0Ø+/Ø,0à&*ñV
ØðV
ð ˜˜V˜Ñ$ tÑ+ð	V
ð
 �c˜6�kÑ" TÑ)ðV
ð �S˜&�[Ñ! DÑ(ðV
ð �U—]‘]Ñ" TÑ)ðV
ð ˜t™ðV
ð ˜I f¨fÐ6JÐ&JÑKÑKòV
ó ðV
ðr ð  $Ø'+ð /3Ø,0Ø+/Ø,0à&*ñJ
ØÐ#Ñ#ðJ
àðJ
ð ˜‘*ðJ
ð  ™*ð	J
ð ˜˜V˜Ñ$ tÑ+ðJ
ð �c˜6�kÑ" TÑ)ðJ
ð �S˜&�[Ñ! DÑ(ðJ
ð �U—]‘]Ñ" TÑ)ðJ
ð ˜t™ðJ
ð òJ
ó ðJ
ðZ ð  $Ø'+ð /3Ø,0Ø+/Ø,0à&*ñw
ØÐ#Ñ#ðw
àðw
ð ˜‘*ðw
ð  ™*ð	w
ð ˜˜V˜Ñ$ tÑ+ðw
ð �c˜6�kÑ" TÑ)ðw
ð �S˜&�[Ñ! DÑ(ðw
ð �U—]‘]Ñ" TÑ)ðw
ð ˜t™ðw
ð ˜I f¨fÐ6JÐ&JÑKÑKòw
ó ðw
ð~¨4ð °Dó ð ð  ØØ ñZØðZàðZð �D‰jðZð �4‰Zð	Zð
 �T‰\òZó ñZrA   