+
    Q(i                     P    R t ^ RIt^ RIt^RIHt  ! R R]P
                  4      tR# )zHBearer token authentication with persistent storage keyed by server URL.N)get_token_storagec                   p   a  ] tR t^	t o RtRV 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 ltRt	V t
R# )
BearerAutha  Bearer token auth with persistent storage.

Tokens are stored under ``<server_url>/api_key`` in the shared token store.
On first use, pass an api_key to persist it. Subsequent instantiations
without an api_key will load the token from storage automatically.
Nc                4   < V ^8  d   QhRS[ R,          RS[ /# )   api_keyN
server_urlstr)format__classdict__s   "[/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/mcp_skill/auth/bearer.py__annotate__BearerAuth.__annotate__   s     * *d
 *s *    c                `    Wn         V R 2V n        \        4       V n        RV n        RV n        R# )z/api_keyNF)_api_key_storage_keyr   _token_storage_resolved_key_loaded_from_storage)selfr   r   s   &&&r   __init__BearerAuth.__init__   s1    )l(3/1)-$)!r   c                    < V ^8  d   QhRS[ /# )r   returnr	   )r   r   s   "r   r   r      s     " "C "r   c                  a "   S P                   '       d   S P                   # R S n        S P                  '       dW   S P                  P	                  S P
                  S P                  R7      G Rj  xL
  S P                  S n         S P                   # S P                  P                  S P
                  R7      G Rj  xL
 pV'       d   VS n         RS n        S P                   # \        P                  ! 4       pVP                  RV 3R l4      G Rj  xL
 pV'       g   \        R4      hS P                  P	                  S P
                  VR7      G Rj  xL
  VS n         S P                   #  L L L] L5i)F)keyvalueNr   Tc                  6   < \        R S P                   R24      # )zBearer token for z: )inputr   r   s   r   <lambda>)BearerAuth._resolve_key.<locals>.<lambda>*   s    %"3D4E4E3Fb IJr   zNo API key provided.)r   r   r   r   putr   getasyncioget_event_looprun_in_executor
ValueError)r   storedloopentereds   f   r   _resolve_keyBearerAuth._resolve_key   s;    %%%$)!===%%))d.?.?t}})UUU!%D%%%**..43D3D.EE!'D(,D%%%%%%',,J
 
 344!!%%$*;*;7%KKK$!!!% V F

 	LsZ   7E14E1/E)0A
E1:E+;E1AE1E-E15E1E/E1+E1-E1/E1c                   < V ^8  d   QhRR/# )r   r   N )r   r   s   "r   r   r   2   s     * * *r   c                   "   V P                   P                  V P                  R 7      G Rj  xL
  RV n        RV n        R#  L5i)r   NF)r   deleter   r   r   r"   s   &r   _clear_stored_keyBearerAuth._clear_stored_key2   s>     !!((T->->(???!$)! 	@s   *AAAc                4   < V ^8  d   QhRS[ P                  /# )r   request)httpxRequest)r   r   s   "r   r   r   7   s     	+ 	+U]] 	+r   c                 "   V P                  4       G R j  xL
 pRV 2VP                  R&   V5x pVP                  R9   d=   V P                  '       g   V P                  e   V P                  4       G R j  xL
  R # R # R #  Lj L5i)NzBearer Authorization>       )r.   headersstatus_coder   r   r4   )r   r7   r   responses   &&  r   async_auth_flowBearerAuth.async_auth_flow7   s}     %%''-4SE?( =   J.***dmm.G((*** /H / ( +s'   BB=B!B6B7BB)r   r   r   r   r   )N )__name__
__module____qualname____firstlineno____doc__r   r.   r4   rA   __static_attributes____classdictcell__)r   s   @r   r   r   	   s2     * *" "4* *
	+ 	+r   r   )rH   r'   r8   storager   Authr   r1   r   r   <module>rM      s!    N   &7+ 7+r   