+
    jHàj¤   ã                  ó<  € R t ^ RIHt ^ RIt^ RIt^ RIHtHtHtH	t	 ^ RI
Ht ^ RIt^ RIHt ]'       d   ^ RItM ! R R4      t]! 4       t^tRtR	tR
tRtRtRtRtRt]tRtRt^xt]t^tRt RRRR/t!Rt"Rt#Rt$Rt%Rt&Rt'Rt(Rt)Rt*^<t+R t,R!t-R"t.R#t/R$t0R%t1R&t2R't3R(t4R)t5R*]! 4       Pl                   2t7^xt8R+t9]9 R,2t:R-t;R.t<]9 R/2t=R0t>R1t?R2t@^xtAR3tBR4tCR5tDR6tER7tFR8tGR9tH ! R: R;]I4      tJR< R= ltK]K! R>4      tL]K! R?4      tM]K! R@4      tN]K! RA4      tO]K! RB4      tP]K! RC4      tQRD RE ltRR# )FzûShared constants, the lazy ``httpx`` proxy and :class:`AuthError` for the auth package.

Pure leaf: imports nothing from ``hermes_cli.auth`` so the per-provider modules
(``auth_nous``, ``auth_codex``, ...) can import it at module scope without cycles.)ÚannotationsN)ÚAnyÚCallableÚDictÚOptional)Úget_version_info)ÚTYPE_CHECKINGc                  ó>   € ] tR t^tR	tR R ltR tR tR tR t	Rt
R# )
Ú
_LazyHttpxc               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNone© )Úformats   "Ú>/home/ubuntu/.hermes/hermes-agent/hermes_cli/auth_constants.pyÚ__annotate__Ú_LazyHttpx.__annotate__   s   € ÷ 	3ñ 	3˜dñ 	3ó    c                	ó4   € \         P                  V R R4       R# )Ú_modN)ÚobjectÚ__setattr__)Úselfs   &r   Ú__init__Ú_LazyHttpx.__init__   s   € Ü×Ñ˜t V¨TÖ2r   c                	ó”   € \         P                  V R 4      pVf.   \        P                  ! R4      p\         P	                  V R V4       V# )r   Úhttpx)r   Ú__getattribute__Ú
_importlibÚimport_moduler   )r   Úmods   & r   Ú_resolveÚ_LazyHttpx._resolve   s@   € Ü×)Ñ)¨$°Ó7ˆCØŠ{Ü ×.Ò.¨wÓ7�Ü×"Ñ" 4¨°Ô5ØˆJr   c                	ó6   € \        V P                  4       V4      # ©N)Úgetattrr"   ©r   Únames   &&r   Ú__getattr__Ú_LazyHttpx.__getattr__$   s   € Ü˜4Ÿ=™=›?¨DÓ1Ð1r   c                	ó:   € \        V P                  4       W4       R # r%   )Úsetattrr"   )r   r(   Úvalues   &&&r   r   Ú_LazyHttpx.__setattr__)   s   € Ü�D—M‘M“O TÖ1r   c                	ó:   € \        V P                  4       V4       R # r%   )Údelattrr"   r'   s   &&r   Ú__delattr__Ú_LazyHttpx.__delattr__,   s   € Ü�D—M‘M“O TÖ*r   r   N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__r   r"   r)   r   r1   Ú__static_attributes__r   r   r   r
   r
      s    † Øˆ	õ	3ò	ò	2ò
	2ö	+r   r
   g      .@zhttps://portal.nousresearch.comz)https://inference-api.nousresearch.com/v1z'https://welcome-api.nousresearch.com/v1z
hermes-cliÚwelcome_claimzinference:invokezbilling:manageÚdevice_codeÚ
invoke_jwtz,urn:ietf:params:oauth:grant-type:device_codezContent-Typez!application/x-www-form-urlencodedÚAcceptzapplication/jsonz%https://chatgpt.com/backend-api/codexzhttps://api.x.ai/v1z$78257093-7e40-4613-99e0-527b14b39113z!group_id profile model.completionz*urn:ietf:params:oauth:grant-type:user_codezhttps://api.minimax.iozhttps://api.minimaxi.comz https://api.minimax.io/anthropicz"https://api.minimaxi.com/anthropiczhttps://portal.qwen.ai/v1zhttps://api.githubcopilot.comzacp://copilotzhttps://ollama.com/v1zhttps://api.actual.inc/v1zhttp://127.0.0.1:8080/v1z#https://api.stepfun.ai/step_plan/v1z$https://api.stepfun.com/step_plan/v1Úapp_EMoamEEZ73f0CkXaXp7hrannz#https://auth.openai.com/oauth/tokenzhermes-cli/zhttps://auth.x.aiz!/.well-known/openid-configurationz$b1a00492-073a-47ea-816f-4c329264a828z>openid profile email offline_access grok-cli:access api:accessz/oauth2/device/codei  Ú f0304373b74a44d2b584a3fb70ca9e56z(https://chat.qwen.ai/api/v1/oauth2/tokenzhttps://openrouter.ai/authz&https://openrouter.ai/api/v1/auth/keysz5https://openrouter.ai/docs/guides/overview/auth/oauthz@https://hermes-agent.nousresearch.com/docs/guides/oauth-over-sshzdummy-lm-api-keyzdummy-actual-local-api-keyÚcodex_rate_limitedc            
      óJ   a € ] tR t^~tRtRRRRRRRRR	R/R
 V 3R llltRtV ;t# )Ú	AuthErrorz,Structured auth error with UX mapping hints.ÚproviderÚ ÚcodeNÚrelogin_requiredFÚretry_afterÚ	retryablec               ó4   € V ^8„  d   QhRRRRRRRRRR	R
RRR/# )r   ÚmessageÚstrrB   rD   úOptional[str]rE   ÚboolrF   zOptional[float]rG   zOptional[bool]r   r   r   )r   s   "r   r   ÚAuthError.__annotate__�   sF   € ÷ #ñ #Øð#Ø),ð#Ø9Fð#Øaeð#à$ð#à8Fð#ð 
ñ#r   c               	ób   <€ \         SV `  V4       W n        W0n        W@n        WPn        W`n        R # r%   )Úsuperr   rB   rD   rE   rF   rG   )r   rI   rB   rD   rE   rF   rG   Ú	__class__s   &&$$$$$€r   r   ÚAuthError.__init__�   s/   ø€ ô 	‰Ñ˜Ô!Ø ŒØŒ	Ø 0Ôð 'ÔØ"Žr   )rD   rB   rE   rF   rG   )r3   r4   r5   r6   Ú__doc__r   r8   Ú__classcell__)rP   s   @r   rA   rA   ~   s=   ø† Ù6ð#Ø/1ð#ØIMð#Øhmð#à'+ð#àIM÷#÷ #ð #r   rA   c               ó    € V ^8„  d   QhRRRR/# )r   rB   rJ   r   zCallable[..., AuthError]r   )r   s   "r   r   r   �   s   € ÷ ñ  cð Ð.Fñ r   c                ó&   a € RRR/R V 3R llllpV# )NÚreloginFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rI   rJ   rD   rK   rV   rL   r   rA   r   )r   s   "r   r   Ú-_provider_error_factory.<locals>.__annotate__‘   s/   € ÷ Zñ Z˜ð Z Mð ZÀdð ZÐW`ñ Zr   c               ó    <€ \        V SWR 7      # ))rB   rD   rE   )rA   )rI   rD   rV   rB   s   &&$€r   ÚfactoryÚ(_provider_error_factory.<locals>.factory‘   s   ø€ Ü˜¨8¸$ÔYÐYr   r%   r   )rB   rZ   s   f r   Ú_provider_error_factoryr\   �   s   ø€ ñZÈU÷ Zó Zð €Nr   Únousz	xai-oauthzopenai-codexz
qwen-oauthzminimax-oauthÚ
openrouterc               ó    € V ^8„  d   QhRRRR/# )r   Útokenr   r   zdict[str, Any]r   )r   s   "r   r   r       s   € ÷ 
6ñ 
6˜cð 
6 nñ 
6r   c                óÚ  € \        V \        4      '       d   V P                  R 4      ^8w  d   / # V P                  R 4      ^,          pVR^\	        V4      ^,          ,
          ^,          ,          ,          p \
        P                  ! VP                  R4      4      p\        P                  ! VP                  R4      4      p\        T\        4      '       d   T# / #   \         d    / u # i ; i)Ú.Ú=zutf-8)Ú
isinstancerJ   ÚcountÚsplitÚlenÚbase64Úurlsafe_b64decodeÚencodeÚjsonÚloadsÚdecodeÚ	ExceptionÚdict)r`   ÚpayloadÚrawÚclaimss   &   r   Ú_decode_jwt_claimsrs       s½   € Ü�eœS×!Ò! U§[¡[°Ó%5¸Ô%:Øˆ	Ø�k‰k˜#Ó˜qÕ!€GØˆs�qœ3˜w›<¨!Õ+Õ+¨qÕ0Õ1Õ1€GðÜ×&Ò& w§~¡~°gÓ'>Ó?ˆÜ—’˜CŸJ™J wÓ/Ó0ˆô   ¬×-Ò-ˆ6Ð5°2Ð5øô ô ØŠ	ðús   Á6A
C ÃC*Ã)C*)SrR   Ú
__future__r   rh   rk   Útypingr   r   r   r   Úhermes_cli.version_infor   Ú	importlibr   r   r   r
   ÚAUTH_STORE_VERSIONÚAUTH_LOCK_TIMEOUT_SECONDSÚDEFAULT_NOUS_PORTAL_URLÚDEFAULT_NOUS_INFERENCE_URLÚDEFAULT_NOUS_WELCOME_URLÚDEFAULT_NOUS_CLIENT_IDÚWELCOME_CLAIM_FLAGÚNOUS_INFERENCE_INVOKE_SCOPEÚNOUS_BILLING_MANAGE_SCOPEÚDEFAULT_NOUS_SCOPEÚNOUS_DEVICE_CODE_SOURCEÚNOUS_AUTH_PATH_INVOKE_JWTÚ!ACCESS_TOKEN_REFRESH_SKEW_SECONDSÚNOUS_INVOKE_JWT_MIN_TTL_SECONDSÚ%DEVICE_AUTH_POLL_INTERVAL_CAP_SECONDSÚDEVICE_CODE_GRANT_TYPEÚ_FORM_JSON_HEADERSÚDEFAULT_CODEX_BASE_URLÚDEFAULT_XAI_OAUTH_BASE_URLÚMINIMAX_OAUTH_CLIENT_IDÚMINIMAX_OAUTH_SCOPEÚMINIMAX_OAUTH_GRANT_TYPEÚMINIMAX_OAUTH_GLOBAL_BASEÚMINIMAX_OAUTH_CN_BASEÚMINIMAX_OAUTH_GLOBAL_INFERENCEÚMINIMAX_OAUTH_CN_INFERENCEÚ"MINIMAX_OAUTH_REFRESH_SKEW_SECONDSÚDEFAULT_QWEN_BASE_URLÚDEFAULT_GITHUB_MODELS_BASE_URLÚDEFAULT_COPILOT_ACP_BASE_URLÚDEFAULT_OLLAMA_CLOUD_BASE_URLÚDEFAULT_ACTUAL_BASE_URLÚDEFAULT_ACTUAL_LOCAL_BASE_URLÚSTEPFUN_STEP_PLAN_INTL_BASE_URLÚSTEPFUN_STEP_PLAN_CN_BASE_URLÚCODEX_OAUTH_CLIENT_IDÚCODEX_OAUTH_TOKEN_URLÚbase_versionÚCODEX_OAUTH_USER_AGENTÚ'CODEX_ACCESS_TOKEN_REFRESH_SKEW_SECONDSÚXAI_OAUTH_ISSUERÚXAI_OAUTH_DISCOVERY_URLÚXAI_OAUTH_CLIENT_IDÚXAI_OAUTH_SCOPEÚXAI_OAUTH_DEVICE_CODE_URLÚ%XAI_ACCESS_TOKEN_REFRESH_SKEW_SECONDSÚQWEN_OAUTH_CLIENT_IDÚQWEN_OAUTH_TOKEN_URLÚ&QWEN_ACCESS_TOKEN_REFRESH_SKEW_SECONDSÚOPENROUTER_AUTH_URLÚOPENROUTER_AUTH_KEYS_URLÚOPENROUTER_OAUTH_DOCS_URLÚOAUTH_OVER_SSH_DOCS_URLÚLMSTUDIO_NOAUTH_PLACEHOLDERÚACTUAL_LOCAL_NOAUTH_PLACEHOLDERÚCODEX_RATE_LIMITED_CODEÚRuntimeErrorrA   r\   Ú	_nous_errÚ_xai_errÚ
_codex_errÚ	_qwen_errÚ_minimax_errÚ_openrouter_errrs   r   r   r   Ú<module>r·      s  ðñVõ
 #ã Û ß 0Ó 0å 4ó
 Ý  çÜ÷+ñ +ñ0 ‹L€Eð Ð Ø Ð ð <Ð ØHÐ ð EÐ Ø%Ð ð %Ð Ø0Ð Ø,Ð Ø0Ð Ø'Ð Ø(Ð Ø$'Ð !Ø"CÐ Ø()Ð %ØGÐ Ø$Ð&IÈ8ÐUgÐhÐ Ø@Ð Ø2Ð Ø@Ð Ø9Ð ØGÐ Ø4Ð Ø2Ð Ø!CÐ ØAÐ Ø%'Ð "Ø3Ð Ø!@Ð Ø.Ð Ø 7Ð Ø5Ð Ø :Ð Ø"GÐ Ø FÐ Ø6Ð Ø=Ð Ø&Ñ'7Ó'9×'FÑ'FÐ&GÐHÐ Ø*-Ð 'Ø&Ð Ø-Ð.Ð.OÐPÐ Ø<Ð ØR€Ø/Ð0Ð0CÐDÐ ð )-Ð %Ø9Ð ØAÐ Ø),Ð &ð 3Ð ØCÐ ØSÐ à\Ð ð 1Ð Ø">Ð ð /Ð ô#�ô #õ$ñ $ FÓ+€	Ù" ;Ó/€Ù$ ^Ó4€
Ù# LÓ1€	Ù& Ó7€Ù)¨,Ó7€÷
6r   