Ë
    ïñþi(  ã                   óü   — d dl 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	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mZmZ d dlmZ d dlmZmZ  G d„ de
e   «      Z G d„ de	«      Ze G d„ d«      «       Zy)é    N)Ú	dataclass)ÚAny)Úuuid4)Ú	BaseModelÚ	RootModelÚValidationError)ÚRequest)ÚResponse)Ústringify_pydantic_error)ÚPydanticJSONResponse)Ú OAuthAuthorizationServerProviderÚRegistrationErrorÚRegistrationErrorCode)ÚClientRegistrationOptions)ÚOAuthClientInformationFullÚOAuthClientMetadatac                   ó   — e Zd ZU eed<   y)ÚRegistrationRequestÚrootN)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__© ó    úa/root/aria/mcps/aria-brain/venv/lib/python3.12/site-packages/mcp/server/auth/handlers/register.pyr   r      s
   … ð Ôr   r   c                   ó(   — e Zd ZU eed<   edz  ed<   y)ÚRegistrationErrorResponseÚerrorNÚerror_description)r   r   r   r   r   Ústrr   r   r   r   r      s   … Ø Ó Ø˜T‘zÔ!r   r   c                   ó>   — e Zd ZU eeeef   ed<   eed<   dedefd„Z	y)ÚRegistrationHandlerÚproviderÚoptionsÚrequestÚreturnc           
   ƒ   óN  K  — 	 |j                  «       ƒ d {  –—† }t        j                  |«      }t        t        «       «      }|j                  €d|_	        d }|j                  dk7  rt        j                  d«      }|j                  €A| j                  j                  �+dj                  | j                  j                  «      |_        n¢|j                  �–| j                  j                   �€t#        |j                  j%                  «       «      }t#        | j                  j                   «      }|j'                  |«      s-t	        t        dd	d
j                  ||z
  «      › �¬«      d¬«      S ddhj'                  t#        |j(                  «      «      st	        t        dd¬«      d¬«      S d|j*                  vrt	        t        dd¬«      d¬«      S t-        t/        j.                  «       «      }	| j                  j0                  �|	| j                  j0                  z   nd }
t3        d$i d|“d|	“d|“d|
“d|j4                  “d|j                  “d|j(                  “d|j*                  “d|j6                  “d|j8                  “d|j:                  “d|j                  “d|j<                  “d|j>                  “d|j@                  “d|jB                  “d |jD                  “d!|jF                  “d"|jH                  “Ž}	 | jJ                  jM                  |«      ƒ d {  –—†  t	        |d#¬«      S 7 �Œ# t        $ r+}t	        t        dt        |«      ¬«      d¬«      cY d }~S d }~ww xY w7 ŒK# tN        $ r6}t	        t        |jP                  |jR                  ¬«      d¬«      cY d }~S d }~ww xY w­w)%NÚinvalid_client_metadata)r   r    i�  )ÚcontentÚstatus_codeÚclient_secret_postÚnoneé    ú z Requested scopes are not valid: z, Úauthorization_codeÚrefresh_tokenz8grant_types must be authorization_code and refresh_tokenÚcodez?response_types must include 'code' for authorization_code grantÚ	client_idÚclient_id_issued_atÚclient_secretÚclient_secret_expires_atÚredirect_urisÚtoken_endpoint_auth_methodÚgrant_typesÚresponse_typesÚclient_nameÚ
client_uriÚlogo_uriÚscopeÚcontactsÚtos_uriÚ
policy_uriÚjwks_uriÚjwksÚsoftware_idÚsoftware_versionéÉ   r   )*Újsonr   Úmodel_validater   r   r   r   r!   r   r8   ÚsecretsÚ	token_hexr>   r%   Údefault_scopesÚjoinÚvalid_scopesÚsetÚsplitÚissubsetr9   r:   ÚintÚtimeÚclient_secret_expiry_secondsr   r7   r;   r<   r=   r?   r@   rA   rB   rC   rD   rE   r$   Úregister_clientr   r   r    )Úselfr&   ÚbodyÚclient_metadataÚvalidation_errorr3   r5   Úrequested_scopesrM   r4   r6   Úclient_infoÚes                r   ÚhandlezRegistrationHandler.handle"   s®  è ø€ ð	à Ÿ™›×'ˆDÜ1×@Ñ@ÀÓFˆOô œ›“Lˆ	ð ×5Ñ5Ð=Ø9MˆOÔ6àˆØ×5Ñ5¸Ò?ä#×-Ñ-¨bÓ1ˆMà× Ñ Ð(¨T¯\©\×-HÑ-HÐ-TØ$'§H¡H¨T¯\©\×-HÑ-HÓ$IˆOÕ!Ø×"Ñ"Ð.°4·<±<×3LÑ3LÐ3XÜ" ?×#8Ñ#8×#>Ñ#>Ó#@ÓAÐÜ˜tŸ|™|×8Ñ8Ó9ˆLØ#×,Ñ,¨\Ô:Ü+Ü5Ø7Ø*LØŸ9™9Ð%5¸Ñ%DÓEÐFð+Hôð
 !$ôð ð % oÐ6×?Ñ?ÄÀO×D_ÑD_Ó@`ÔaÜ'Ü1Ø3Ø&`ôð  ôð ð ˜×7Ñ7Ñ7Ü'Ü1Ø3Ø&gôð  ôð ô "¤$§)¡)£+Ó.Ðð �|‰|×8Ñ8ÐDð   $§,¡,×"KÑ"KÒKàð 	!ô 1ò 
Ùð
á 3ð
ñ (ð
ñ &>ð	
ð *×7Ò7ð
ð (7×'QÒ'Qð
ð (×3Ò3ð
ð +×9Ò9ð
ð (×3Ò3ð
ð '×1Ò1ð
ð %×-Ò-ð
ð "×'Ò'ð
ð %×-Ò-ð
ð $×+Ò+ð
ð  '×1Ò1ð!
ð" %×-Ò-ð#
ð$ !×%Ò%ð%
ð& (×3Ò3ð'
ð( -×=Ò=ð)
ˆð,	à—-‘-×/Ñ/°Ó<×<Ð<ô (°ÈÔMÐMðy (úô ò 	Ü'Ü1Ø3Ü&>Ð?OÓ&Pôð  ôõ ûð	úðj =ùô !ò 	ä'Ü1¸¿¹ÐST×SfÑSfÔgØôõ ûð	üs†   ‚N%„L* —L'˜L* ±KN%Ë7M# ÌM!ÌM# Ì&N%Ì'L* Ì*	MÌ3 MÍMÍN%ÍMÍN%Í!M# Í#	N"Í,+NÎN"ÎN%ÎN"Î"N%N)
r   r   r   r   r   r   r   r	   r
   r\   r   r   r   r#   r#      s/   … à.¨s°C¸¨}Ñ=Ó=Ø&Ó&ðf Gð f°ô fr   r#   ) rI   rR   Údataclassesr   Útypingr   Úuuidr   Úpydanticr   r   r   Ústarlette.requestsr	   Ústarlette.responsesr
   Úmcp.server.auth.errorsr   Úmcp.server.auth.json_responser   Úmcp.server.auth.providerr   r   r   Úmcp.server.auth.settingsr   Úmcp.shared.authr   r   r   r   r#   r   r   r   ú<module>rh      sl   ðÛ Û Ý !Ý Ý ç :Ñ :Ý &Ý (å ;Ý >ß oÑ oÝ >ß Kô˜)Ð$7Ñ8ô ô" 	ô "ð
 ÷jð jó ñjr   