Ë
    uPêj˜T  ã                   óF  — d dl mZmZmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dl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"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* ddl+m,Z,m-Z-m.Z. er	d dl/m0Z1 e1Z2neZ2 G d„ de«      Z3 G d„ de«      Z4y)é    )ÚCallableÚMappingÚSequence)Ú	UnionType)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚProtocolÚUnionÚget_argsÚ
get_originN)Úfields)Úverbose_logger)Úprocess_response_headers)Ú_safe_convert_created_field©Úencode_url_path_segment)ÚOpenAIResponsesAPIConfig)Úget_secret_str)ÚResponseInputParamÚ!ResponsesAPIOptionalRequestParamsÚResponsesAPIResponseÚResponsesAPIStreamingResponse)ÚDeleteResponseResult)ÚGenericLiteLLMParams)ÚLlmProvidersé   )ÚVolcEngineErrorÚget_volcengine_base_urlÚget_volcengine_headers)ÚLoggingc                   óZ   — e Zd Zedeeej                  f   fd„«       Zdeee	f   de
fd„Zy)Ú_EventModelClassÚreturnc                  ó   — y ©N© ©Úselfs    úu/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/volcengine/responses/transformation.pyÚmodel_fieldsz_EventModelClass.model_fields*   s   € ØBEó    Úobjc                  ó   — y r'   r(   )r*   r.   s     r+   Úmodel_validatez_EventModelClass.model_validate-   s   � r-   N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr   ÚstrÚ
pyd_fieldsÚ	FieldInfor,   Úobjectr   r0   r(   r-   r+   r$   r$   )   s<   „ ØØE˜g c¨:×+?Ñ+?Ð&?Ñ@ÒEó ØEà] '¨#¨v¨+Ñ"6Ð]Ð;XÔ]r-   r$   c                   ó6  ‡ — e Zd ZU g d¢Zee   ed<   edefd„«       Z	dedefd„Z
deded	eej                  z  defd
„Zd	edededz  defd„Zdedz  dedefd„Zdedededefd„Zdedeez  deded	edefˆ fd„Zdedeeef   dedefd„Zdedej<                  dedefd„Z dededed	ede!eef   f
d„Z"dej<                  dede#fd„Z$dededed	ede!eef   f
d„Z%dej<                  dedefd„Z&	 	 	 	 	 d<dededed	ed edz  d!edz  d"ee   dz  d#ed$e'd%   de!eef   fd&„Z(dej<                  dedefd'„Z)dededed	ede!eef   f
d(„Z*dej<                  dedefd)„Z+	 d=dedz  d*edz  d+edz  defd,„Z,e-dej<                  deeef   fd-„«       Z.e-d.edefd/„«       Z/e-d.ede!ed0f   fd1„«       Z0e-d2e1jd                  defd3„«       Z3e-d4eeef   d5edz  deeef   fd6„«       Z4e-d.edefd7„«       Z5e-d8ed.edefd9„«       Z6e-d.ed8ededz  fd:„«       Z7defd;„Z8ˆ xZ9S )>ÚVolcEngineResponsesAPIConfig)ÚinstructionsÚmax_output_tokensÚprevious_response_idÚstoreÚ	reasoningÚstreamÚtemperatureÚtop_pÚtextÚtoolsÚtool_choiceÚmax_tool_callsÚthinkingÚcachingÚ	expire_atÚcontext_managementÚmetadataÚextra_headersÚextra_queryÚ
extra_bodyÚtimeoutÚ_SUPPORTED_OPTIONAL_PARAMSr%   c                 ó"   — t         j                  S r'   )r   Ú
VOLCENGINEr)   s    r+   Úcustom_llm_providerz0VolcEngineResponsesAPIConfig.custom_llm_providerL   s   € ä×&Ñ&Ð&r-   Úmodelc                 ód   — ddgt        | j                  «      z   }d|v r|j                  d«       |S )zU
        Volcengine Responses API: only documented parameters are supported.
        ÚinputrT   rK   )ÚlistrP   Úremove)r*   rT   Ú	supporteds      r+   Úget_supported_openai_paramsz8VolcEngineResponsesAPIConfig.get_supported_openai_paramsP   s:   € ð $ WÐ-´°T×5TÑ5TÓ0UÑUˆ	à˜Ñ"Ø×Ñ˜ZÔ(ØÐr-   Úerror_messageÚstatus_codeÚheadersc                 óˆ   — t        |t        j                  «      r|nt        j                  |xs i «      }t        |||¬«      S )N)r\   Úmessager]   )Ú
isinstanceÚhttpxÚHeadersr   )r*   r[   r\   r]   Útyped_headerss        r+   Úget_error_classz,VolcEngineResponsesAPIConfig.get_error_classZ   s?   € Ü2<¸WÄeÇmÁmÔ2T¡wÔZ_×ZgÑZgÐhoÒhuÐsuÓZvˆÜØ#Ø!Ø!ô
ð 	
r-   Úlitellm_paramsNc                 ó
  — |€t        «       }n%t        |t        «      rt        j                  |«      }|j                  xs* t
        j                  xs t        d«      xs t        d«      }|€t        d«      ‚t        ||¬«      S )zB
        Build auth headers for Volcengine Responses API.
        ÚARK_API_KEYÚVOLCENGINE_API_KEYzUVolcengine API key is required. Set ARK_API_KEY / VOLCENGINE_API_KEY or pass api_key.)Úapi_keyrL   )	r   r`   Údictr0   ri   Úlitellmr   Ú
ValueErrorr!   )r*   r]   rT   re   ri   s        r+   Úvalidate_environmentz1VolcEngineResponsesAPIConfig.validate_environmentb   s…   € ð Ð!Ü1Ó3‰NÜ˜¬Ô-Ü1×@Ñ@ÀÓPˆNð ×"Ñ"ò 4Ü�‰ò4ä˜mÓ,ò4ô Ð2Ó3ð	 	ð ˆ?ÜÐtÓuÐuä%¨gÀWÔMÐMr-   Úapi_basec                 óô   — |xs6 t         j                  xs$ t        d«      xs t        d«      xs
 t        «       }|j	                  d«      }|j                  d«      r|S |j                  d«      r|› d�S |› d�S )z>
        Construct Volcengine Responses API endpoint.
        ÚVOLCENGINE_API_BASEÚARK_API_BASEú/z
/responsesz/api/v3z/api/v3/responses)rk   rn   r   r    ÚrstripÚendswith)r*   rn   re   Úbase_urls       r+   Úget_complete_urlz-VolcEngineResponsesAPIConfig.get_complete_urlw   s�   € ð ò )Ü×Ñò)äÐ3Ó4ò)ô ˜nÓ-ò)ô 'Ó(ð 	ð —?‘? 3Ó'ˆà×Ñ˜\Ô*ØˆOØ×Ñ˜YÔ'Ø�Z˜zÐ*Ð*Ø�Ð,Ð-Ð-r-   Úresponse_api_optional_paramsÚdrop_paramsc                 ó   — t        |«      j                  «       D ��ci c]  \  }}|| j                  v r||“Œ }}}|j                  dd«       d|v r't	        j
                  d«       |j                  dd«       |S c c}}w )z…
        Volcengine Responses API aligns with OpenAI parameters.
        Remove parameters not supported by the public docs.
        rK   NÚparallel_tool_callszKVolcengine Responses API: dropping unsupported 'parallel_tool_calls' param.)rj   ÚitemsrP   Úpopr   Údebug)r*   rw   rT   rx   ÚkeyÚvalueÚparamss          r+   Úmap_openai_paramsz.VolcEngineResponsesAPIConfig.map_openai_params�   sˆ   € ô #Ð#?Ó@×FÑFÓH÷
á��UØ�d×5Ñ5Ñ5ð �‰Jð
ˆñ 
ð 	�
‰
�:˜tÔ$ð ! FÑ*Ü× Ñ Ð!nÔoØ�J‰JÐ,¨dÔ3àˆùó
s   �A:rV   Ú$response_api_optional_request_paramsc                 óÎ  •— t        | j                  «      }|j                  «       D ��ci c]  \  }}||v sŒ||“Œ }	}}|	j                  dd«       |	j                  dd«       t	        |	j                  d«      t        «      rE|	d   j                  «       D ��ci c]  \  }}||v sŒ||“Œ }
}}|
r|
|	d<   n|	j                  dd«       t        ‰| �!  |||	||¬«      S c c}}w c c}}w )zÞ
        Volcengine rejects any undocumented fields (including extra_body). Fail fast
        with clear errors and re-filter with the documented whitelist before delegating
        to the OpenAI base transformer.
        rK   Nrz   rN   )rT   rV   r‚   re   r]   )	ÚsetrP   r{   r|   r`   Úgetrj   ÚsuperÚtransform_responses_api_request)r*   rT   rV   r‚   re   r]   ÚallowedÚkÚvÚsanitized_optionalÚfiltered_bodyÚ	__class__s              €r+   r‡   z<VolcEngineResponsesAPIConfig.transform_responses_api_request©   sþ   ø€ ô ˜T×<Ñ<Ó=ˆà6Z×6`Ñ6`Ó6b×$s©d¨a°ÐfgÐkrÒfr Q¨¡TÐ$sÐÑ$sà×Ñ˜z¨4Ô0Ø×ÑÐ4°dÔ;ô Ð(×,Ñ,¨\Ó:¼DÔAØ5GÈÑ5U×5[Ñ5[Ó5]×#n©T¨Q°ÐabÐfmÒam A q¡DÐ#nˆMÑ#nÙØ3@Ð" <Ò0à"×&Ñ& |°TÔ:ä‰wÑ6ØØØ1CØ)Øð 7ó 
ð 	
ùó %tùó $os   ªC·CÂC!Â%C!Úparsed_chunkÚlogging_objc                 ó‚  — |}t        |t        «      rI|j                  d«      }t        |t        «      r(d|vr$|}t        |«      }t        |«      }g |d<   ||d<   |}t        |t        «      rt        |j                  d«      «      nd}	t	        j
                  |	¬«      }
| j                  ||
«      }|
j                  |«      S )za
        Volcengine may omit required fields; auto-fill them using event model defaults.
        ÚresponseÚoutputÚtypeN)Ú
event_type)r`   rj   r…   r5   r   Úget_event_model_classÚ_fill_missing_fieldsr0   )r*   rT   rŽ   r�   ÚchunkÚrespÚ
resp_itemsÚpatched_chunkÚpatched_respr”   Úevent_pydantic_models              r+   Útransform_streaming_responsez9VolcEngineResponsesAPIConfig.transform_streaming_responseÎ   sº   € ð ˆô �eœTÔ"ØŸ)™) JÓ/ˆDÜ˜$¤Ô%¨(¸$Ñ*>Ø:>�
Ü $ U£�Ü&*¨:Ó&6�Ø)+�˜XÑ&Ø,8�˜jÑ)Ø%�ä6@ÀÌÔ6MœC §	¡	¨&Ó 1Ô2ÐSWˆ
Ü1I×1_Ñ1_ÐkuÔ1vÐà×1Ñ1°%Ð9MÓNˆà#×2Ñ2°=ÓAÐAr-   Úraw_responsec                 ó  — 	 |j                  |j                  di i¬«       | j                  |«      }d|v rt        |d   «      |d<   t        |j                  «      }t        |«      }	 t        j                  |«      }||j                  d<   ||j                  d<   |S # t        $ r" t        |j                  |j                  ¬«      ‚w xY w# t        $ r0 t        j                  d«       t        j                  } |di |¤Ž}Y Œ†w xY w)	NÚcomplete_input_dict)Úoriginal_responseÚadditional_argsÚ
created_at©r_   r\   zOVolcengine Responses API: falling back to model_construct for response parsing.Úadditional_headersr]   r(   )Ú	post_callrC   Ú_parsed_response_bodyr   Ú	Exceptionr   r\   rj   r]   r   r   r0   r   r}   Úmodel_constructÚ_hidden_params)	r*   rT   rž   r�   Úraw_response_jsonÚraw_response_headersÚprocessed_headersr‘   Úconstruct_responses	            r+   Útransform_response_api_responsez<VolcEngineResponsesAPIConfig.transform_response_api_responseë   s"  € ð		cØ×!Ñ!Ø".×"3Ñ"3Ø!6¸Ð ;ð "ô ð (,×'AÑ'AÀ,Ó'OÐØÐ0Ñ0Ü2MÐN_Ð`lÑNmÓ2nÐ! ,Ñ/ô '+¨<×+?Ñ+?Ó&@ÐÜ#;Ð<PÓ#QÐð	?Ü+×:Ñ:Ð;LÓMˆHð 9Jˆ×ÑÐ 4Ñ5Ø-Aˆ×Ñ 	Ñ*Øˆøô ò 	cÜ!¨,×*;Ñ*;È×IaÑIaÔbÐbð	cûô ò 	?Ü× Ñ Ð!rÔsÜMa×MqÑMqÐÙ)Ñ>Ð,=Ñ>ŠHð	?ús   ‚AB Á(C Â+CÃ6DÄDÚresponse_idc                 ó6   — t        |d¬«      }|› d|› �}i }||fS ©Nr°   ©Ú
field_namerr   r   ©r*   r°   rn   re   r]   Úencoded_response_idÚurlÚdatas           r+   Ú%transform_delete_response_api_requestzBVolcEngineResponsesAPIConfig.transform_delete_response_api_request  ó3   € ô &=¸[ÐUbÔ%cÐØ �z Ð#6Ð"7Ð8ˆØˆØ�DˆyÐr-   c                 ó&  — 	 | j                  |«      }	 t        j                  |«      S # t        $ r" t        |j                  |j                  ¬«      ‚w xY w# t        $ r0 t        j                  d«       t
        j                  } |di |¤ŽcY S w xY w)Nr¤   zVVolcengine Responses API: falling back to model_construct for delete response parsing.r(   )
r§   r¨   r   rC   r\   r   r0   r   r}   r©   )r*   rž   r�   r«   Úconstruct_delete_results        r+   Ú&transform_delete_response_api_responsezCVolcEngineResponsesAPIConfig.transform_delete_response_api_response  sŸ   € ð
	cØ'+×'AÑ'AÀ,Ó'OÐð	@Ü'×6Ñ6Ð7HÓIÐIøô ò 	cÜ!¨,×*;Ñ*;È×IaÑIaÔbÐbð	cûô ò 	@Ü× Ñ Øhôô Sg×RvÑRvÐ#Ù*Ñ?Ð->Ñ?Ò?ð	@ús   ‚) ”A ©+AÁ6BÂBc                 ó6   — t        |d¬«      }|› d|› �}i }||fS r²   r   rµ   s           r+   Ú"transform_get_response_api_requestz?VolcEngineResponsesAPIConfig.transform_get_response_api_request.  rº   r-   c                 ó,  — 	 | j                  |«      }t        |j                  «      }t        |«      }t        j                  |«      }||j                  d<   ||j                  d<   |S # t        $ r" t        |j                  |j                  ¬«      ‚w xY w©Nr¤   r¥   r]   ©r§   r¨   r   rC   r\   rj   r]   r   r   r0   rª   ©r*   rž   r�   r«   r¬   r­   r‘   s          r+   Ú#transform_get_response_api_responsez@VolcEngineResponsesAPIConfig.transform_get_response_api_response:  ó›   € ð
	cØ'+×'AÑ'AÀ,Ó'OÐô '+¨<×+?Ñ+?Ó&@ÐÜ#;Ð<PÓ#QÐä.×=Ñ=Ð>OÓPˆØ8Iˆ×ÑÐ 4Ñ5Ø-Aˆ×Ñ 	Ñ*Øˆøô ò 	cÜ!¨,×*;Ñ*;È×IaÑIaÔbÐbð	cúó   ‚A( Á(+BÚafterÚbeforeÚincludeÚlimitÚorder)ÚascÚdescc
                 óœ   — t        |d¬«      }
|› d|
› d�}i }|�||d<   |�||d<   |rdj                  |«      |d<   |�||d	<   |	�|	|d
<   ||fS )Nr°   r³   rr   z/input_itemsrÇ   rÈ   ú,rÉ   rÊ   rË   )r   Újoin)r*   r°   rn   re   r]   rÇ   rÈ   rÉ   rÊ   rË   r¶   r·   r€   s                r+   Ú"transform_list_input_items_requestz?VolcEngineResponsesAPIConfig.transform_list_input_items_requestO  sˆ   € ô &=¸[ÐUbÔ%cÐØ �z Ð#6Ð"7°|ÐDˆØ.0ˆØÐØ#ˆF�7‰OØÐØ%ˆF�8ÑÙØ #§¡¨Ó 1ˆF�9ÑØÐØ#ˆF�7‰OØÐØ#ˆF�7‰OØ�Fˆ{Ðr-   c                 ó‚   — 	 | j                  |«      S # t        $ r" t        |j                  |j                  ¬«      ‚w xY w)Nr¤   )r§   r¨   r   rC   r\   )r*   rž   r�   s      r+   Ú#transform_list_input_items_responsez@VolcEngineResponsesAPIConfig.transform_list_input_items_responsej  sC   € ð
	cØ×-Ñ-¨lÓ;Ð;øÜò 	cÜ!¨,×*;Ñ*;È×IaÑIaÔbÐbð	cús   ‚ “+>c                 ó8   — t        |d¬«      }|› d|› d�}i }||fS )Nr°   r³   rr   z/cancelr   rµ   s           r+   Ú%transform_cancel_response_api_requestzBVolcEngineResponsesAPIConfig.transform_cancel_response_api_requestw  s5   € ô &=¸[ÐUbÔ%cÐØ �z Ð#6Ð"7°wÐ?ˆØˆØ�DˆyÐr-   c                 ó,  — 	 | j                  |«      }t        |j                  «      }t        |«      }t        j                  |«      }||j                  d<   ||j                  d<   |S # t        $ r" t        |j                  |j                  ¬«      ‚w xY wrÁ   rÂ   rÃ   s          r+   Ú&transform_cancel_response_api_responsezCVolcEngineResponsesAPIConfig.transform_cancel_response_api_responseƒ  rÅ   rÆ   r@   rS   c                  ó   — y)ze
        Volcengine Responses API supports native streaming; never fall back to fake stream.
        Fr(   )r*   rT   r@   rS   s       r+   Úshould_fake_streamz/VolcEngineResponsesAPIConfig.should_fake_stream•  s   € ð r-   c                 ó"   — | j                  «       S r'   )Újson)rž   s    r+   r§   z2VolcEngineResponsesAPIConfig._parsed_response_body   s   € à× Ñ Ó"Ð"r-   Ú
annotationc                 ó   — t        | «      S r'   )r   ©rÜ   s    r+   Ú_annotation_originz/VolcEngineResponsesAPIConfig._annotation_origin¤  s   € ä˜*Ó%Ð%r-   .c                 ó   — t        | «      S r'   )r   rÞ   s    r+   Ú_annotation_argsz-VolcEngineResponsesAPIConfig._annotation_args¨  s   € ä˜
Ó#Ð#r-   Úfieldc                 ó   — | j                   }|S r'   rÞ   )râ   rÜ   s     r+   Ú_field_annotationz.VolcEngineResponsesAPIConfig._field_annotation¬  s   € à$)×$4Ñ$4ˆ
ØÐr-   r—   Úevent_modelc                 óö  — t        | t        «      r|€| S t        | «      }t        |di «      xs i }|j                  «       D ]µ  \  }}||v r0t        j                  ||   t        j                  |«      «      ||<   Œ:|j                  }|t        j                  ur|�|||<   Œ`|j                  }|�|t        j                  ur |«       ||<   Œ‹t        j                  t        j                  |«      «      ||<   Œ· |S )zÖ
        Heuristically fill missing required fields with safe defaults based on the
        event model's field annotations. This keeps parsing tolerant of providers that
        omit non-essential fields.
        r,   )r`   rj   Úgetattrr{   r:   Ú_maybe_fill_nestedrä   Údefaultr6   ÚPydanticUndefinedÚdefault_factoryÚ_default_for_annotation)r—   rå   ÚpatchedÚ
fields_mapÚnamerâ   Úfield_defaultrë   s           r+   r–   z1VolcEngineResponsesAPIConfig._fill_missing_fields±  s  € ô ˜%¤Ô&¨+Ð*=ØˆLä˜e›ˆÜ@GÈÐUcÐegÓ@hÒ@nÐlnˆ
à%×+Ñ+Ó-ò 	‰KˆD�%Ø�w‰Ü <× OÑ OØ˜D‘MÔ#?×#QÑ#QÐRWÓ#Xó!�˜‘ð ð %*§M¡MˆMØ¤J×$@Ñ$@Ñ@À]ÐE^Ø -�˜‘ØØ<A×<QÑ<QˆOØÐ*¨Äj×FbÑFbÑ/bÙ /Ó 1�˜‘Øô 9×PÑPÜ,×>Ñ>¸uÓEóˆG�DŠMð%	ð, ˆr-   c                 óò   — t         j                  | «      }t         j                  | «      }| t        u ry| t        u s|t        u rg S |t
        u s|t        u r"t        d„ |D «       «      rg S t        d «      |v ry y )Nr   c              3   óf   K  — | ])  }|t         u xs t        j                  |«      t         u –— Œ+ y ­wr'   )rW   r:   rß   )Ú.0Úargs     r+   ú	<genexpr>zGVolcEngineResponsesAPIConfig._default_for_annotation.<locals>.<genexpr>á  s0   è ø€ ÒqÐeh�Cœ4�KÒ_Ô#?×#RÑ#RÐSVÓ#WÔ[_Ð#_Ó_Ñqùs   ‚/1)	r:   rß   rá   ÚintrW   r   r   Úanyr“   )rÜ   ÚoriginÚargss      r+   rì   z4VolcEngineResponsesAPIConfig._default_for_annotationÖ  sv   € ä4×GÑGÈ
ÓSˆÜ2×CÑCÀJÓOˆàœÑØØœÑ ¬4¡ØˆIØ”U‰?˜f¬	Ñ1äÑqÐlpÔqÔqØ�	Ü�D‹z˜TÑ!Øð r-   r   c                 ó<  — t         j                  || «      }t         j                  |«      }t        | t        «      r|�| }t         j                  ||«      S t        | t        «      r1|r|d   nd}|�&| }|D �cg c]  }t         j                  ||«      ‘Œ c}S | S c c}w )z\
        Recursively fill nested dict/list structures based on the annotated model.
        Nr   )r:   Ú_pick_model_classrá   r`   rj   r–   rW   rè   )r   rÜ   Ú	model_clsrù   Únested_itemsÚelem_annÚnested_elementsrŠ   s           r+   rè   z/VolcEngineResponsesAPIConfig._maybe_fill_nestedé  sœ   € ô
 8×IÑIÈ*ÐV[Ó\ˆ	Ü2×CÑCÀJÓOˆä�eœTÔ" yÐ'<Ø8=ˆLÜ/×DÑDÀ\ÐS\Ó]Ð]ä�eœTÔ"á15 d¨1¢g¸4ˆHØÐ#Ø;@�Ø^mÖnÐYZÔ4×GÑGÈÈ8ÕTÒnÐnàˆùò os   Á7Bc                 ó  — t         j                  | «      }|t        u s|t        u rt         j	                  | «      nd}t        d„ | g|¢­D «       «      }|syt        |t        «      rˆ|}|j                  d«      }|D ]p  }	 t        |d«      }|j                  d«      }	|	€Œ$t         j                  |	«      }
t         j                  |
«      t        u rt         j	                  |
«      }||v r|c S Œr |d   S # t        $ r Y Œƒw xY w)zR
        Choose the best-matching Pydantic model class for a nested dict.
        r(   c              3   ó:   K  — | ]  }t        |d «      sŒ|–— Œ y­w)r,   N)Úhasattr)ró   Ú	candidates     r+   rõ   zAVolcEngineResponsesAPIConfig._pick_model_class.<locals>.<genexpr>  s   è ø€ Òv¨ÔSZÐ[dÐftÕSuœ9Ñvùs   ‚”Nr“   r,   r   )r:   rß   r   r   rá   Útupler`   rj   r…   rç   rä   r
   r¨   )rÜ   r   rø   Ú
union_argsÚ
candidatesÚvalue_itemsÚv_typer  Úcandidate_fieldsÚ
type_fieldÚliteral_annÚliteral_valuess               r+   rû   z.VolcEngineResponsesAPIConfig._pick_model_classþ  s  € ô
 5×GÑGÈ
ÓSˆàIOÔSXÉÐ\bÔfoÑ\oÔ(×9Ñ9¸*ÔEÐuwð 	ô Ñv°zÐ6OÀJÑ6OÔvÓvˆ
áØô �eœTÔ"Ø7<ˆKØ'ŸO™O¨FÓ3ˆFØ'ò �	ðÜKRÐS\Ð^lÓKmÐ$Ø!1×!5Ñ!5°fÓ!=�JØ!Ð)Ø Ü">×"PÑ"PÐQ[Ó"\�KÜ3×FÑFÀ{ÓSÔW^Ñ^Ü)E×)VÑ)VÐWbÓ)c˜Ø! ^Ñ3Ø#,Ò,øðð ˜!‰}Ðøô	 !ò Ùðús   Á?C3ÂA
C3Ã3	C?Ã>C?c                  ó   — y)z>VolcEngine does not support native WebSocket for Responses APIFr(   r)   s    r+   Úsupports_native_websocketz6VolcEngineResponsesAPIConfig.supports_native_websocket!  s   € àr-   )NNNé   rÍ   r'   ):r1   r2   r3   rP   rW   r5   Ú__annotations__r4   r   rS   rZ   rö   rj   ra   rb   r   rd   r   rm   rv   r   Úboolr�   r   r‡   r   r8   ÚLiteLLMLoggingObjr   r�   ÚResponser   r¯   r  r¹   r   r½   r¿   rÄ   r
   rÑ   rÓ   rÕ   r×   rÙ   Ústaticmethodr§   rß   rá   r6   r7   rä   r–   rì   rè   rû   r  Ú__classcell__)r�   s   @r+   r:   r:   0   s6  ø… ò-Ð  S¡	ó ð6 ð' \ò 'ó ð'ð°ð ¸ó ð
¨Sð 
¸sð 
ÈTÐTY×TaÑTaÑMað 
Ðfuó 
ðN¨Dð N¸ð NÐNbÐeiÑNið NÐnró Nð*.à˜‘*ð.ð ð.ð 
ó	.ð0à&Gðð ðð ð	ð
 
óð4#
àð#
ð Ð'Ñ'ð#
ð /3ð	#
ð
 -ð#
ð ð#
ð 
õ#
ðJBàðBð ˜c 6˜kÑ*ðBð 'ð	Bð
 
'óBð:àðð —n‘nðð 'ð	ð
 
óðD
àð
ð ð
ð -ð	
ð
 ð
ð 
ˆs�DˆyÑ	ó
ð@à—n‘nð@ð 'ð@ð 
ó	@ð*
àð
ð ð
ð -ð	
ð
 ð
ð 
ˆs�DˆyÑ	ó
ðà—n‘nðð 'ðð 
ó	ð6 !Ø!Ø$(ØØ(.ñàðð ðð -ð	ð
 ðð �T‰zðð �d‘
ðð �c‘˜TÑ!ðð ðð �}Ñ%ðð 
ˆs�DˆyÑ	óð6cà—n‘nðcð 'ðcð 
ó	cð
àð
ð ð
ð -ð	
ð
 ð
ð 
ˆs�DˆyÑ	ó
ðà—n‘nðð 'ðð 
ó	ð, +/ñ		à�T‰zð	ð �t‘ð	ð ! 4™Zð		ð
 
ó	ð ð#¨E¯N©Nð #¸tÀCÈÀKÑ?Pò #ó ð#ð ð& vð &°&ò &ó ð&ð ð$ Vð $°°f¸c°kÑ0Bò $ó ð$ð ð ×!5Ñ!5ð ¸&ò ó ðð ð" G¨C°¨KÑ$8ð "ÀvÐPTÁ}ð "ÐY`ÐadÐflÐalÑYmò "ó ð"ðH ð¨Fð °vò ó ðð$ ð &ð °fð Àò ó ðð( ð  fð  °Vð  ÀÈÁò  ó ð ðD¨4÷ r-   r:   )5Úcollections.abcr   r   r   Útypesr   Útypingr   r   r	   r
   r   r   r   r   ra   Úpydanticr   r6   rk   Úlitellm._loggingr   Ú'litellm.litellm_core_utils.core_helpersr   ÚFlitellm.litellm_core_utils.llm_response_utils.convert_dict_to_responser   Ú$litellm.litellm_core_utils.url_utilsr   Ú,litellm.llms.openai.responses.transformationr   Úlitellm.secret_managers.mainr   Úlitellm.types.llms.openair   r   r   r   Úlitellm.types.responses.mainr   Úlitellm.types.routerr   Úlitellm.types.utilsr   Úcommon_utilsr   r    r!   Ú*litellm.litellm_core_utils.litellm_loggingr"   Ú_LiteLLMLoggingObjr  r$   r:   r(   r-   r+   ú<module>r'     s‡   ðß 7Ñ 7Ý ß \× \Ó \ã Ý )ã Ý +Ý Lõõ IÝ QÝ 7÷ó õ >Ý 5Ý ,÷ñ ñ ÝXà*ÑàÐô^�xô ^ôsÐ#;õ sr-   