Ë
    uPêj8G  ã                   ó  — U d dl Z d dlZd dlZd dlmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZmZ d dlmZmZ d dl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# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ e
rd dl0m0Z0  e«       Z1ee2d<    G d„ ded¬«      Z3 G d„ ded¬«      Z4 G d„ de«      Z5 G d„ de«      Z6 G d„ de«      Z7 G d„ d e«      Z8d!e9d"e8fd#„Z:i d$d%d&d'œ“d(d)d*d'œ“d+d,d-d'œ“d.d/d0d'œ“d1d2d3d'œ“d4d5d6d'œ“d7d8d9d'œ“d:d;d<d'œ“d=d>d?d'œ“d@dAdBd'œ“dCdDdEd'œ“dFdGdHd'œ“dIdJdKd'œ“dLdMdNd'œ“dOdPdQd'œ“dRdSdTd'œ“dUdVdWd'œ“i dXdYdZd'œ“d[d\d]d'œ“d^d_d`d'œ“dadbdcd'œ“dddedfd'œ“dgdhdid'œ“djdkdld'œ“dmdndod'œ“dpdqdrd'œ“dsdtdud'œ“dvdwdxd'œ“dydzd{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'œi¥Z;eee<ee<e<f   f      e2dŽ<    ejz                  d�«      Z>ee2d�<   da?e-dz  e2d‘<   d’e<d"e<fd“„Z@d’e4d"eAe6   fd”„ZBd"eAe6   fd•„ZCe1j‰                  d–d—d˜geAe'   ¬™«      dš„ «       ZEe1j‰                  d›dœd—geAe#   ¬™«      d�efdž„«       ZFe1j‰                  dŸd d—geAe%   ¬™«      d¡„ «       ZGe1j‰                  d¢d—d£g¬¤«      d¥„ «       ZHe1j‰                  d¦d—d˜ge,¬™«      d§„ «       ZIe1j‰                  d¨d—d©geAe<   ¬™«      d"eAe<   fdª„«       ZJe1j‰                  d«d—d©geAe+   ¬™«      d"eAe+   fd¬„«       ZKe1j‰                  d­d—d®ge*¬™«      d"e*fd¯„«       ZLe1j‰                  d°d—d˜g¬¤«      d±„ «       ZMe1j‰                  d²d—ge¬™«      d³„ «       ZNe1j‰                  d´d—ge-¬™«      d"e-fdµ„«       ZOe1j‰                  d¶d—dœgeAe)   ¬™«      d"eAe)   fd·„«       ZPy)¸é    N)Ú	AwaitableÚMappingÚSequence)Úfiles)ÚTYPE_CHECKINGÚFinalÚProtocol)Ú	APIRouterÚHTTPExceptionÚRequest)ÚReadOnlyÚ	TypedDict)Úverbose_logger)ÚBlogPostÚBlogPostsResponseÚGetBlogPostsÚget_blog_posts)ÚCommonProxyErrors)Úget_custom_url)ÚClaudeCodePluginRepository)Ú	AgentCard)ÚMCPPublicServer)ÚModelGroupInfoProxy)ÚAgentCreateInfoÚComplexityScorerDefaultsÚProviderCreateInfoÚPublicModelHubInfoÚSupportedEndpointsResponse)ÚLlmProviders)ÚdatetimeÚrouterc                   ó8   — e Zd ZU ee   ed<   eeeef      ed<   y)Ú_ProviderSupportEntryÚdisplay_nameÚ	endpointsN)Ú__name__Ú
__module__Ú__qualname__r   ÚstrÚ__annotations__r   Úbool© ó    út/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/public_endpoints/public_endpoints.pyr#   r#   ,   s    … Ø˜3‘-ÓØ˜  T 	Ñ*Ñ+Ô+r-   r#   F)Útotalc                   ó(   — e Zd ZU eeeef      ed<   y)Ú_ProvidersFileÚ	providersN)r&   r'   r(   r   r   r)   r#   r*   r,   r-   r.   r1   r1   1   s   … Ø˜ Ð%:Ð :Ñ;Ñ<Ô<r-   r1   c                   ó.   — e Zd ZU ee   ed<   ee   ed<   y)Ú_EndpointProviderEntryÚslugr$   N)r&   r'   r(   r   r)   r*   r,   r-   r.   r4   r4   5   s   … Ø
�3‰-ÓØ˜3‘-Ôr-   r4   c                   óT   — e Zd ZU ee   ed<   ee   ed<   ee   ed<   eee      ed<   y)Ú_EndpointEntryÚkeyÚlabelÚendpointr2   N)r&   r'   r(   r   r)   r*   r   r4   r,   r-   r.   r7   r7   :   s1   … Ø	�#‰ÓØ�C‰=ÓØ�s‰mÓØ˜Ð!7Ñ8Ñ9Ô9r-   r7   c                   óŽ   — e Zd Zedefd„«       Zedefd„«       Zedefd„«       Zed	d„«       Z	ed	d„«       Z
ededz  fd„«       Zy)
Ú
_PluginRowÚreturnc                  ó   — y ©Nr,   ©Úselfs    r.   Úidz_PluginRow.idB   s   € Ør-   c                  ó   — y r?   r,   r@   s    r.   Únamez_PluginRow.nameE   s   € Ør-   c                  ó   — y r?   r,   r@   s    r.   Úenabledz_PluginRow.enabledH   s   € Ø"r-   c                  ó   — y r?   r,   r@   s    r.   Ú
created_atz_PluginRow.created_atK   ó   € Ø/2r-   c                  ó   — y r?   r,   r@   s    r.   Ú
updated_atz_PluginRow.updated_atN   rI   r-   Nc                  ó   — y r?   r,   r@   s    r.   Úmanifest_jsonz_PluginRow.manifest_jsonQ   s   € Ø+.r-   )r=   zdatetime | None)r&   r'   r(   Úpropertyr)   rB   rD   r+   rF   rH   rK   rM   r,   r-   r.   r<   r<   A   sn   „ ØØ�CÒó ØàØ�cÒó ØàØ"˜Ò"ó Ø"àÚ2ó Ø2àÚ2ó Ø2àØ.˜s T™zÒ.ó Ù.r-   r<   c                   ó2   — e Zd Zdeeef   deee      fd„Z	y)Ú_PluginTableActionsÚwherer=   c                 ó   — y r?   r,   )rA   rQ   s     r.   Ú	find_manyz_PluginTableActions.find_manyV   s   � r-   N)
r&   r'   r(   r   r)   r+   r   r   r<   rS   r,   r-   r.   rP   rP   U   s"   „ Ø] '¨#¨t¨)Ñ"4Ð]¸À8ÈJÑCWÑ9XÔ]r-   rP   Úprisma_clientr=   c                 ó,   — t        | «      j                  S r?   )r   Útable)rT   s    r.   Ú_plugin_tablerW   Y   s   € Ü% mÓ4×:Ñ:Ð:r-   Úchat_completionszChat Completionsz/chat/completions)r9   r:   ÚmessagesÚMessagesz	/messagesÚ	responsesÚ	Responsesz
/responsesÚ
embeddingsÚ
Embeddingsz/embeddingsÚimage_generationszImage Generationsz/images/generationsÚaudio_transcriptionszAudio Transcriptionsz/audio/transcriptionsÚaudio_speechzAudio Speechz/audio/speechÚmoderationsÚModerationsz/moderationsÚbatchesÚBatchesz/batchesÚrerankÚRerankz/rerankÚocrÚOCRz/ocrÚsearchÚSearchz/searchÚskillsÚSkillsz/skillsÚinteractionsÚInteractionsz/interactionsÚa2azA2A (Agent Gateway)z/a2a/{agent}/message/sendÚ	containerÚ
Containersz/containersÚcontainer_fileszContainer Filesz/containers/{id}/filesÚcompactÚCompactz/responses/compactr   ÚFilesz/filesÚimage_editszImage Editsz/images/editsÚvector_stores_createzVector Stores (Create)z/vector_storesÚvector_stores_searchzVector Stores (Search)z/vector_stores/{id}/searchÚvector_store_fileszVector Store Filesz/vector_stores/{id}/filesÚvideo_generationszVideo Generationsz/videos/generationsÚ
assistantsÚ
Assistantsz/assistantsÚfine_tuningzFine Tuningz/fine_tuning/jobsÚtext_completionzText Completionz/completionsÚrealtimeÚRealtimez	/realtimeÚcount_tokenszCount Tokensz/utils/token_counterÚimage_variationszImage Variationsz/images/variationsÚgenerateContentzGenerate Contentz/generateContentÚbedrock_invokezBedrock Invokez/bedrock/invokeÚbedrock_conversezBedrock Conversez/bedrock/converseÚ
rag_ingestz
RAG Ingestz/rag/ingestÚ	rag_queryz	RAG Queryz
/rag/queryÚ_ENDPOINT_METADATAz\s*\(`[^`]+`\)\s*$Ú_SLUG_SUFFIX_REÚ_cached_endpointsÚrawc                 óJ   — t         j                  d| «      j                  «       S )NÚ )rŠ   ÚsubÚstrip©rŒ   s    r.   Ú_clean_display_namer’   ¢   s   € Ü×Ñ˜r 3Ó'×-Ñ-Ó/Ð/r-   c                 ó   — | j                  di «      }t        «       }g }|j                  «       D ]@  }|j                  di «      D ])  }||vsŒ|j                  |«       |j	                  |«       Œ+ ŒB g }|D ]Ï  }t
        j                  |«      }|r|d   n|j                  dd«      j                  «       }|r|d   nd|j                  dd«      z   }	|j                  «       D �
�cg c]D  \  }
}|j                  di «      j                  |«      r|
t        |j                  d|
«      «      d	œ‘ŒF }}
}|j	                  |||	|d
œ«       ŒÑ |S c c}}
w )zMTransform raw provider_endpoints_support_backup.json into the response shape.r2   r%   r9   Ú_ú r:   ú/r$   )r5   r$   )r8   r9   r:   r2   )
ÚgetÚsetÚvaluesÚaddÚappendr‰   ÚreplaceÚtitleÚitemsr’   )rŒ   r2   ÚseenÚall_keysÚprovider_datar8   ÚresultÚmetar9   Úpathr5   ÚpdÚ
supportings                r.   Ú_build_endpointsr§   ¦   sZ  € à—w‘w˜{¨BÓ/€Iô  ›E€DØ!#€HØ"×)Ñ)Ó+ò %ˆØ ×$Ñ$ [°"Ó5ò 	%ˆCØ˜$ŠØ—‘˜”Ø—‘ Õ$ñ	%ð%ð +-€FØò _ˆÜ!×%Ñ% cÓ*ˆÙ!%��W’¨3¯;©;°s¸CÓ+@×+FÑ+FÓ+HˆÙ#'ˆt�JÒ¨S°3·;±;¸sÀCÓ3HÑ-Hˆð &ŸO™OÓ-÷4
ñ
 ��bØ�v‰v�k 2Ó&×*Ñ*¨3Ô/ð	 Ü 3°B·F±F¸>È4Ó4PÓ Qóð4
ˆ
ñ 4
ð 	�‰˜c¨E¸tÐR\Ñ]Õ^ð_ð €Mùó4
s   Ã$A	E
c                  ó’   — t        j                  t        d«      j                  d«      j	                  d¬«      «      } t        | «      S )NÚlitellmz&provider_endpoints_support_backup.jsonzutf-8)Úencoding)ÚjsonÚloadsr   ÚjoinpathÚ	read_textr§   r‘   s    r.   Ú_load_endpointsr¯   Æ   s@   € Ü!%§¡ÜˆiÓ×!Ñ!Ð"JÓK×UÑUÐ_fÐUÓgó"€Cô ˜CÓ Ð r-   z/public/model_hubÚpubliczmodel management)ÚtagsÚresponse_modelc               ƒ   ó¤  K  — dd l } ddlm} ddlm}m}m} |€%t        dt        j                  j                  ¬«      ‚g }| j                  � ||| j                  d ¬«      }i }|�q	 |j                  «       ƒ d {  –—† }|D ]R  }|j                  r|j                  n|j                  }	|	sŒ* ||«      }
|
||	<   |j                  sŒD|
||j                  <   ŒT 	 |D ]b  }|j!                  |j"                  «      }|sŒ!|j!                  d«      |_        |j!                  d«      |_        |j!                  d	«      |_        Œd |S 7 ŒÅ# t        $ r Y Œvw xY w­w)
Nr   )Ú_convert_health_check_to_dict)Ú_get_model_group_infoÚ
llm_routerrT   i�  ©Ústatus_codeÚdetail)r¶   Úall_models_strÚmodel_groupÚstatusÚresponse_time_msÚ
checked_at)r©   Ú0litellm.proxy.health_endpoints._health_endpointsr´   Úlitellm.proxy.proxy_serverrµ   r¶   rT   r   r   Úno_llm_routerÚvalueÚpublic_model_groupsÚget_all_latest_health_checksÚmodel_idÚ
model_nameÚ	Exceptionr—   r»   Úhealth_statusÚhealth_response_timeÚhealth_checked_at)r©   r´   rµ   r¶   rT   Úmodel_groupsÚhealth_checks_mapÚlatest_checksÚcheckr8   Úhealth_check_dictr»   Úhealth_infos                r.   Úpublic_model_hubrÑ   Ð   sf  è ø€ ó õ÷ñ ð ÐÜ¨Ô4E×4SÑ4S×4YÑ4YÔZÐZà.0€LØ×"Ñ"Ð.Ù,Ø!Ø"×6Ñ6Øô
ˆð  "ÐØÐ ð
	Ø)6×)SÑ)SÓ)U×#UˆMØ&ò P�Ø(-¯ª�e—n’n¸E×<LÑ<L�ÚÙ(EÀeÓ(LÐ%Ø->Ð% cÑ*Ø×'Ó'Ø>OÐ)¨%×*:Ñ*:Ò;ñPð $ò JˆØ'×+Ñ+¨K×,CÑ,CÓDˆÚØ(3¯©¸Ó(AˆKÔ%Ø/:¯©Ð?QÓ/RˆKÔ,Ø,7¯O©O¸LÓ,IˆKÕ)ðJð Ðð% $Vùô ò 	Ùð	üsO   ‚A#EÁ&E Á9D?Á:/E Â*E ÃE Ã#EÃ9AEÄ?E Å	EÅ
EÅEÅEz/public/agent_hubz[beta] AgentsÚrequestc           
   ƒ   ój  K  — dd l }ddlm} |j                  «       }|j                  €g S |D �cg c]w  }|j                  |j                  «      j                  |j                  «      sAi |j                  xs i ¥dt        t        | j                  «      d|j                  › �¬«      i¥‘Œy c}S c c}w ­w)Nr   )Úglobal_agent_registryÚurlza2a/)Úroute)r©   Ú,litellm.proxy.agent_endpoints.agent_registryrÔ   Úget_public_agent_listÚpublic_agent_groupsÚids_for_agentÚagent_idÚ
isdisjointÚagent_card_paramsr   r)   Úbase_url)rÒ   r©   rÔ   ÚagentsÚagents        r.   Ú
get_agentsrá     s¯   è ø€ ó ÝRà)×?Ñ?ÓA€Fà×"Ñ"Ð*Øˆ	ð öð
 Ø$×2Ñ2°5·>±>ÓB×MÑMÈg×NiÑNiÔjð	
Ø×&Ñ&Ò,¨"ð	
à”>¤# g×&6Ñ&6Ó"7ÀÀeÇnÁnÐEUÐ?VÔWó	
òð ùò ùs   ‚-B3¯A<B.Â+B3z/public/mcp_hubz
[beta] MCPc               ƒ   ó¢   K  — ddl m}  | j                  «       }|D �cg c]%  }t        j                  |j                  «       «      ‘Œ' c}S c c}w ­w)Nr   )Úglobal_mcp_server_manager)Ú9litellm.proxy._experimental.mcp_server.mcp_server_managerrã   Úget_public_mcp_serversr   Úmodel_validateÚ
model_dump)rã   Úpublic_mcp_serversÚservers      r.   Úget_mcp_serversrê     sD   è ø€ õð !:× PÑ PÓ RÐØN`ÖaÀFŒO×*Ñ*¨6×+<Ñ+<Ó+>Õ?ÒaÐaùÒaùs   ‚A�*A
ÁAz/public/skill_hubzClaude Code Marketplace)r±   c               ƒ   ó®  K  — ddl m}  ddlm}m} 	  | «       ƒ d{  –—† }t        |«      j                  ddi¬«      ƒ d{  –—† }g }|D �]G  }|j                  xs i }t        |t        «      rt        j                  |«      n|}|j                   ||j                  |j                  |j                  |j                   rt        |j                   «      nd|j"                  rt        |j"                  «      nd|j%                  di «      |j%                  d	«      |j%                  d
«      |j%                  d«      |j%                  d«      |j%                  d«      |j%                  d«      |j%                  d«      |j%                  d«      ¬«      «       �ŒJ  ||t'        |«      ¬«      S 7 �ŒŒ7 �Œj# t(        $ r}	t+        dt        |	«      ¬«      ‚d}	~	ww xY w­w)u@   Return enabled (public) Claude Code skills â€” no auth required.r   )Ú_get_prisma_client)ÚListPluginsResponseÚPluginListItemNrF   T)rQ   ÚsourceÚdescriptionÚversionÚcategoryÚkeywordsÚauthorÚhomepageÚdomainÚ	namespace)rB   rD   rF   rH   rK   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   )ÚpluginsÚcountéô  r·   )ÚOlitellm.proxy.anthropic_endpoints.claude_code_endpoints.claude_code_marketplacerì   Ú)litellm.types.proxy.claude_code_endpointsrí   rî   rW   rS   rM   Ú
isinstancer)   r«   r¬   r›   rB   rD   rF   rH   rK   r—   ÚlenrÇ   r   )
rì   rí   rî   rT   rø   rž   ÚpluginrŒ   ÚmanifestÚes
             r.   Úpublic_skill_hubr  *  s„  è ø€ õ÷ð
<Ù%7Ó%9×9ˆÜ,¨]Ó;×EÑEÈYÐX\ÐL]ÐEÓ^×^ˆØˆØó 	ˆFØ×&Ñ&Ò,¨"ˆCÜ*4°S¼#Ô*>”t—z‘z #”ÀCˆHØ�L‰LÙØ—y‘yØŸ™Ø"ŸN™NØ9?×9JÒ9Jœs 6×#4Ñ#4Ô5ÐPTØ9?×9JÒ9Jœs 6×#4Ñ#4Ô5ÐPTØ#Ÿ<™<¨°"Ó5Ø (§¡¨]Ó ;Ø$ŸL™L¨Ó3Ø%Ÿ\™\¨*Ó5Ø%Ÿ\™\¨*Ó5Ø#Ÿ<™<¨Ó1Ø%Ÿ\™\¨*Ó5Ø#Ÿ<™<¨Ó1Ø&Ÿl™l¨;Ó7ôöð	ñ* #¨5¼¸E»
ÔCÐCð1  :ùØ^úô0 ò <Ü¨´C¸³FÔ;Ð;ûð<üsK   ‚G’
F. œF(�$F. ÁF+ÁE%F. Æ'GÆ(F. Æ+F. Æ.	GÆ7GÇGÇGz/public/model_hub/infoc               ƒ   ó¤   K  — dd l } ddlm}m} 	 ddlm} |j                  «       }t        |||| j                  ¬«      S # t        $ r d }Y Œ&w xY w­w)Nr   )Ú_titlerñ   )ÚEnterpriseProxyConfig)Ú
docs_titleÚcustom_docs_descriptionÚlitellm_versionÚuseful_links)
r©   rÀ   r  rñ   Ú%litellm_enterprise.proxy.proxy_serverr  Úget_custom_docs_descriptionrÇ   r   Úpublic_model_groups_links)r©   r  rñ   r  r  s        r.   Úpublic_model_hub_infor  V  s\   è ø€ ó ß:ð'ÝOà"7×"SÑ"SÓ"UÐô ØØ 7ØØ×6Ñ6ô	ð øô ò 'Ø"&Òð'üs%   ‚A�? ¦A¿AÁ
AÁAÁAz/public/providersr2   c               ƒ   ó6   K  — t        d„ t        D «       «      S ­w)zE
    Return a sorted list of all providers supported by LiteLLM.
    c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr?   )rÂ   )Ú.0Úproviders     r.   ú	<genexpr>z*get_supported_providers.<locals>.<genexpr>x  s   è ø€ Ò> X�(—.•.Ñ>ùs   ‚)Úsortedr   r,   r-   r.   Úget_supported_providersr  n  s   è ø€ ô Ñ>´Ô>Ó>Ð>ùs   ‚z/public/providers/fieldsc            	   ƒ   óv  K  — t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t        «      «      «      ddd«      } t        | d«      5 }t        j                  |«      }ddd«       |S # 1 sw Y   S xY w­w)zO
    Return provider metadata required by the dashboard create-model flow.
    ÚproxyÚpublic_endpointsúprovider_create_fields.jsonÚrN)Úosr¤   ÚjoinÚdirnameÚ__file__Úopenr«   Úload)Úprovider_create_fields_pathÚfÚprovider_create_fieldss      r.   Úget_provider_fieldsr#  {  sŠ   è ø€ ô *,¯©¯©Ü
�‰�‰œŸ™Ÿ™¬¯©¯©¼Ó(AÓBÓCØØØ%ó	*Ðô 
Ð)¨3Ó	/ð 5°1Ü(,¯	©	°!«Ð÷5ð "Ð!÷5ð "Ð!üs   ‚B
B9ÂB,Â"
B9Â,B6Â1B9z)/public/complexity_router/scorer_defaultszauto routerc               ƒ   ó:   K  — ddl m} m}m} t	        ||| ¬«      S ­w)zn
    Return the complexity router's shipped heuristic scorer defaults, for the dashboard to prefill with.
    r   ©ÚDEFAULT_DIMENSION_WEIGHTSÚDEFAULT_TIER_BOUNDARIESÚDEFAULT_TOKEN_THRESHOLDS)Útier_boundariesÚtoken_thresholdsÚdimension_weights)Ú0litellm.router_strategy.complexity_router.configr&  r'  r(  r   r%  s      r.   Úget_complexity_scorer_defaultsr-  ’  s(   è ø€ ÷ñ ô $Ø/Ø1Ø3ôð ùs   ‚z/public/litellm_model_cost_mapc               ƒ   ót   K  — ddl } 	 | j                  }|S # t        $ r}t        dd|› d�¬«      ‚d}~ww xY w­w)zv
    Public endpoint to get the LiteLLM model cost map.
    Returns pricing information for all supported models.
    r   Nrú   zInternal Server Error (ú)r·   )r©   Ú
model_costrÇ   r   )r©   Ú_model_cost_mapr  s      r.   Úget_litellm_model_cost_mapr2  ¨  sL   è ø€ ó ð
Ø!(×!3Ñ!3ˆØÐøÜò 
ÜØØ,¨Q¨C¨qÐ1ô
ð 	
ûð
üs   ‚8ˆ •8–	5Ÿ0°5µ8z/public/litellm_blog_postsc               ƒ   ó*  K  — 	 t        t        j                  ¬«      } | dd D �cg c]  }t        di |¤Ž‘Œ }}t        |¬«      S # t        $ r=}t	        j
                  dt        |«      «       t        j                  «       } Y d}~Œhd}~ww xY wc c}w ­w)z³
    Public endpoint to get the latest LiteLLM blog posts.

    Fetches from GitHub with a 1-hour in-process cache.
    Falls back to the bundled local backup on any failure.
    )rÕ   z?LiteLLM: get_litellm_blog_posts endpoint fallback triggered: %sNé   )Úpostsr,   )r   r©   Úblog_posts_urlrÇ   r   Úwarningr)   r   Úload_local_blog_postsr   r   )Ú
posts_datar  Úpr5  s       r.   Úget_litellm_blog_postsr;  ½  sƒ   è ø€ ð:Ü#¬×(>Ñ(>Ô?ˆ
ð
 ,6°b°q¨>Ö: a”H‘M˜q“MÐ:€EÐ:Ü 5Ô)Ð)øô ò :Ü×ÑÐ`ÔbeÐfgÓbhÔiÜ!×7Ñ7Ó9�
ûð:üò ;ùs7   ‚B„A žB¥B·BÁ	BÁ3BÂBÂBÂBz/public/endpointsc               ƒ   óJ   K  — t         €t        t        «       ¬«      a t         S ­w)zÑ
    Return the list of LiteLLM proxy endpoints and which providers support each one.

    Reads from the bundled local backup file. Result is cached in-process for
    the lifetime of the server process.
    )r%   )r‹   r   r¯   r,   r-   r.   Úget_supported_endpointsr=  Ó  s"   è ø€ ô Ð Ü6ÄÓARÔSÐÜÐùs   ‚!#z/public/agents/fieldsc            	   ƒ   ó¦  K  — t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t        «      «      «      dd«      } t         j                  j                  | d«      }t         j                  j                  | d«      }t        |d«      5 }t        j                  |«      }ddd«       t        |d«      5 }t        j                  |«      }ddd«       D �ci c]  }|d   |“Œ
 }}D ]‡  }|j                  d«      }	|	r`|	|v r\||	   }
g }|
j                  d	g «      D ](  }|j                  «       }d
|d<   |j                  |«       Œ* |j                  d	g «      |z   |d	<   |j                  dd«       Œ‰ |S # 1 sw Y   ŒÔxY w# 1 sw Y   Œ¶xY wc c}w ­w)zí
    Return agent type metadata required by the dashboard create-agent flow.

    If an agent has `inherit_credentials_from_provider`, the provider's credential
    fields are automatically appended to the agent's credential_fields.
    r  r  zagent_create_fields.jsonr  r  Nr  Ú!inherit_credentials_from_providerÚcredential_fieldsTÚinclude_in_litellm_params)r  r¤   r  r  r  r  r«   r  r—   Úcopyr›   Úpop)Ú	base_pathÚagent_create_fields_pathr   r!  Úagent_create_fieldsr"  r:  Úprovider_maprà   Úinherit_fromr  Úinherited_fieldsÚfieldÚ
field_copys                 r.   Úget_agent_fieldsrL  å  s­  è ø€ ô —w‘w—|‘|Ü
�‰�‰œŸ™Ÿ™¬¯©¯©¼Ó(AÓBÓCØØó€Iô ')§g¡g§l¡l°9Ð>XÓ&YÐÜ)+¯©¯©°iÐA^Ó)_Ðä	Ð&¨Ó	,ð 2°Ü%)§Y¡Y¨q£\Ð÷2ô 
Ð)¨3Ó	/ð 5°1Ü(,¯	©	°!«Ð÷5ð 6LÖL°˜1˜Z™=¨!Ñ+ÐL€LÐLð %ò =ˆØ—y‘yÐ!DÓEˆÙ˜L¨LÑ8Ø# LÑ1ˆHà!ÐØ!Ÿ™Ð&9¸2Ó>ò 4�Ø"ŸZ™Z›\�
Ø:>�
Ð6Ñ7Ø ×'Ñ'¨
Õ3ð4ð
 */¯©Ð3FÈÓ)KÐN^Ñ)^ˆEÐ%Ñ&à�	‰	Ð5°tÕ<ð=ð Ð÷32ð 2ú÷5ð 5üò MùsC   ‚C	GÃF4Ã!GÃ5G ÄGÄGÄ$BGÆ4F=Æ9GÇ G	ÇG)Qr«   r  ÚreÚcollections.abcr   r   r   Úimportlib.resourcesr   Útypingr   r   r	   Úfastapir
   r   r   Útyping_extensionsr   r   r©   Úlitellm._loggingr   Ú)litellm.litellm_core_utils.get_blog_postsr   r   r   r   Úlitellm.proxy._typesr   Úlitellm.proxy.utilsr   Ú'litellm.repositories.table_repositoriesr   Úlitellm.types.agentsr   Úlitellm.types.mcpr   ÚClitellm.types.proxy.management_endpoints.model_management_endpointsr   Ú5litellm.types.proxy.public_endpoints.public_endpointsr   r   r   r   r   Úlitellm.types.utilsr   r    r!   r*   r#   r1   r4   r7   r<   rP   ÚobjectrW   r‰   r)   ÚcompilerŠ   r‹   r’   Úlistr§   r¯   r—   rÑ   rá   rê   r  r  r  r#  r-  r2  r;  r=  rL  r,   r-   r.   ú<module>r`     s�  ðÜ Û 	Û 	ß 8Ñ 8Ý %ß 1Ñ 1ç 5Ñ 5ß 1ã Ý +÷ó õõ /Ý NÝ *Ý -õ÷õ õ -áÝ!á“€ˆÓ ô,˜I¨Uõ ,ô
=�Y eõ =ô ˜Yô  ô
:�Yô :ô/�ô /ô(^˜(ô ^ð; ð ;Ð,?ó ;ð9>ØÐ"4ÐBUÑVð9>à˜*°+Ñ>ð9>ð ˜;°LÑAð9>ð ˜L°mÑDð	9>ð
 Ø$Ø)ñð9>ð Ø'Ø+ñð9>ð ˜n¸/ÑJð9>ð ˜]¸ÑGð9>ð ˜°
Ñ;ð9>ð  ˜¨iÑ8ð!9>ð" 
�U¨Ñ/ð#9>ð$ ˜¨iÑ8ð%9>ð& ˜¨iÑ8ð'9>ð( ˜n¸/ÑJð)9>ð* 
Ð*Ð8SÑTð+9>ð, ˜<°]ÑCð-9>ð. Ø"Ø,ññ/9>ð6 ˜Ð0DÑEð79>ð8 �w¨HÑ5ð99>ð: ˜]¸ÑHð;9>ð< Ø)Ø$ñð=9>ðD Ø)Ø0ñðE9>ðL Ø%Ø/ñðM9>ðT Ø$Ø)ñðU9>ð\ ˜L°mÑDð]9>ð^ ˜]Ð8KÑLð_9>ð` Ð!2ÀÑOða9>ðb ˜*°+Ñ>ðc9>ðd ˜nÐ:PÑQðe9>ðf Ð"4ÐBVÑWðg9>ðh Ð!3ÐASÑTði9>ðj Ð 0Ð>OÑPðk9>ðl Ð"4ÐBUÑVðm9>ðn ˜L°mÑDño9>ðp ˜;°LÑAñq9>Ð �E˜' # w¨s°C¨xÑ'8Ð"8Ñ9Ñ:ó 9ðv $˜Ÿ™Ð$9Ó:€�Ó :ð 8<Ð Ð-°Ñ4Ó ;ð0˜Sð 0 Só 0ð˜.ð ¨T°.Ñ-Aó ð@!˜˜nÑ-ó !ð ‡�ØØ
Ð&Ð	'ØÐ+Ñ,ð ó ñ
,óð
,ð^ ‡�ØØ
˜8Ð	$Ø˜	‘?ð ó ð
˜gò óð
ð& ‡�ØØ
˜Ð	!Ø˜Ñ(ð ó ñ
bóð
bð ‡�ØØ
Ð-Ð	.ð ó ñ%<ó	ð%<ðP ‡�ØØ
Ð&Ð	'Ø%ð ó ñ
óð
ð& ‡�ØØ
�KÐ	 Ø˜‘9ð ó ð
? t¨C¡yò ?óð
?ð ‡�ØØ
�KÐ	 ØÐ*Ñ+ð ó ð
" 4Ð(:Ñ#;ò "óð
"ð$ ‡�Ø/Ø
�MÐ	"Ø+ð ó ð
Ð.Fò óð
ð" ‡�Ø$Ø
Ð&Ð	'ð ó ñ
ó	ð
ð" ‡�Ø Ø
ˆØ$ð ó ñ
*óð
*ð" ‡�ØØ
ˆØ-ð ó ð

Ð'Aò 
óð

ð ‡�ØØ
�OÐ	$Ø˜Ñ(ð ó ð
)  _Ñ 5ò )óñ
)r-   