+
    Oj+                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	 ^ RI
HtHt ^ RIHtHt ^ RIHtHtHtHt ^ RIHtHtHt ^ R	IHtHt ^ R
IHtHt ^ RIH t H!t!H"t" ^ RI#H$t$  ! R R]4      t% ! R R]4      t&]! RR7       ! R R4      4       t' ! R R]4      t( ! R R]4      t)]! RR7       ! R R4      4       t* ! R R4      t+ ! R R4      t, ! R R 4      t- ! R! R"4      t. ! R# R$4      t/ ! R% R&4      t0R# )'    )annotationsN)Path)IterableIterator)	dataclassreplace)AnyProtocol)AccountAccountRegistryAccountRegistryKindAuthorityMode)AuthorityConfigurationErrorgateway_health_snapshotresolve_authority_endpoint)DeviceAuthPromptDeviceAuthSession)DeviceAuthOperation	FlowEvent)AccountHealthClientAccountSnapshotHealthStatus)HealthSnapshotStorec                  B    ] tR t^t]R R l4       t]R R l4       tRtR# )LifecyclePromptc                   V ^8  d   QhRR/#    returnstr )formats   "K/home/user/overdeck-private-tests/subrouter-s5-systray/provider_services.py__annotate__LifecyclePrompt.__annotate__   s    S    c                	    R # Nr!   selfs   &r#   urlLifecyclePrompt.url   s    r&   c                   V ^8  d   QhRR/# r   r!   )r"   s   "r#   r$   r%      s    ""#"r&   c                	    R # r(   r!   r)   s   &r#   raw_textLifecyclePrompt.raw_text   s    "r&   r!   N)__name__
__module____qualname____firstlineno__propertyr+   r/   __static_attributes__r!   r&   r#   r   r      s     " "r&   r   c                  ,    ] tR t^t]R R l4       tRtR# )LifecycleSessionc                   V ^8  d   QhRR/# )r   r   zsubprocess.Popen[Any]r!   )r"   s   "r#   r$   LifecycleSession.__annotate__!   s    33.3r&   c                	    R # r(   r!   r)   s   &r#   processLifecycleSession.process    s    03r&   r!   N)r1   r2   r3   r4   r5   r<   r6   r!   r&   r#   r8   r8      s    3 3r&   r8   T)frozenc                      ] tR t^$t$ R]R&   RtR]R&   RtR]R&   RtR]R	&   RtR
]R&   Rt	R]R&   Rt
R]R&   RtR]R&   RtR# )LifecycleEventr    kindNzAccount | Noneaccount
str | NonemessagezException | Noneerrorz)DeviceAuthPrompt | LifecyclePrompt | Nonepromptz+DeviceAuthSession | LifecycleSession | Nonesession	collisionzlist[tuple[str, str]] | Noneexisting_accountsr!   )r1   r2   r3   r4   __annotations__rB   rD   rE   rF   rG   rH   rI   r6   r!   r&   r#   r@   r@   $   sR    
I"G^"GZ"E"8<F5<;?G8? $I~$6:3:r&   r@   c                  F    ] tR t^0tRRRR/R R lltR R ltR R	 ltR
tR# )AccountLifecycle
login_hintNslugc               (    V ^8  d   QhRRRRRRRR/# r   aliasr    rM   rC   rN   r   Iterator[LifecycleEvent]r!   )r"   s   "r#   r$   AccountLifecycle.__annotate__1   s2     ' '' 	'
 ' 
"'r&   c               	    R # r(   r!   r*   rQ   rM   rN   s   &&$$r#   addAccountLifecycle.add1   s     $'r&   c                    V ^8  d   QhRRRR/# r   rB   r   r   rR   r!   )r"   s   "r#   r$   rS   9   s    OOgO2JOr&   c                	    R # r(   r!   )r*   rB   s   &&r#   reauthenticateAccountLifecycle.reauthenticate9   s    Cr&   c               $    V ^8  d   QhRRRRRR/# r   rG   r8   coder    r   Noner!   )r"   s   "r#   r$   rS   ;   s    LL#3L3L4Lr&   c                	    R # r(   r!   r*   rG   r_   s   &&&r#   submit_codeAccountLifecycle.submit_code;   s    r&   r!   )r1   r2   r3   r4   rV   r[   rc   r6   r!   r&   r#   rL   rL   0   s'    ' "&	'
  ' PLLr&   rL   c                  &    ] tR t^>tRR R lltRtR# )AccountHealthProviderc               $    V ^8  d   QhRRRRRR/# r   rB   r   timeout_secsfloatr   r   r!   )r"   s   "r#   r$   "AccountHealthProvider.__annotate__?   s    YYWYEY_Yr&   c                	    R # r(   r!   r*   rB   ri   s   &&&r#   fetchAccountHealthProvider.fetch?   s    VYr&   r!   Ng      $@)r1   r2   r3   r4   rn   r6   r!   r&   r#   rf   rf   >   s    YYr&   rf   c                  @    ] tR t^Bt$ R]R&   R]R&   R]R&   R]R&   R	tR
# )ProviderServicesr   toolr   registryrL   	lifecyclerf   healthr!   N)r1   r2   r3   r4   rJ   r6   r!   r&   r#   rr   rr   B   s    
!!r&   rr   c                  \    ] tR t^JtR R ltRRRR/R R lltR R	 lt]R
 R l4       tRt	R# )CodexLifecycleAdapterc                    V ^8  d   QhRRRR/# )r   	operationr   r   r`   r!   )r"   s   "r#   r$   "CodexLifecycleAdapter.__annotate__K   s     $ $"5 $$ $r&   c                	    Wn         R # r(   
_operation)r*   rz   s   &&r#   __init__CodexLifecycleAdapter.__init__K   s    #r&   rM   NrN   c               (    V ^8  d   QhRRRRRRRR/# rP   r!   )r"   s   "r#   r$   r{   N   s2     	/ 	/	/ 		/
 	/ 
"	/r&   c             #  	|   "   ?V P                   P                  WR 7       F  pV P                  V4      x  K  	  R# 5i))rN   N)r~   rV   _translate_event)r*   rQ   rM   rN   events   &&$$ r#   rV   CodexLifecycleAdapter.addN   s7      __(((:E''.. ;s   :<c                    V ^8  d   QhRRRR/# rY   r!   )r"   s   "r#   r$   r{   Y   s     / /g /2J /r&   c              #  	x   "   V P                   P                  V4       F  pV P                  V4      x  K  	  R # 5ir(   )r~   repairr   )r*   rB   r   s   && r#   r[   $CodexLifecycleAdapter.reauthenticateY   s/     __++G4E''.. 5s   8:c                    V ^8  d   QhRRRR/# )r   r   r   r   r@   r!   )r"   s   "r#   r$   r{   ^   s     

 

	 

n 

r&   c                	    \        V P                  V P                  V P                  V P                  V P
                  V P                  V P                  V P                  R 7      # ))rA   rB   rD   rE   rF   rG   rH   rI   )	r@   rA   rB   rD   rE   rF   rG   rH   rI   )r   s   &r#   r   &CodexLifecycleAdapter._translate_event]   sI    MMMM++<<MMoo#55	
 		
r&   r}   )
r1   r2   r3   r4   r   rV   r[   staticmethodr   r6   r!   r&   r#   rx   rx   J   s9    $	/ "&		/
  	// 

 

r&   rx   c                  f    ] tR t^ktRtRRRRRR/R R lltRRR	R/R
 R lltR R ltR R ltRt	R# )AuthorityLifecycleAdapteraI  Lifecycle adapter for an already authority-bound account.

It never reads a native or authority credential. Repair is delegated to the
local authority service identity through its supported admin CLI. Account
creation remains an explicit migration-coordinator operation so a normal
Add action cannot silently migrate an account.
binaryN	state_dircommand_runnerc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   nativerL   r   zPath | Noner   r   z
Any | Noner   r`   r!   )r"   s   "r#   r$   &AuthorityLifecycleAdapter.__annotate__t   sC     @ @ @ 	@
 @ #@ 
@r&   c               	0   Wn         T;'       g*    \        \        P                  P	                  R R4      4      V n        T;'       g*    \        \        P                  P	                  RR4      4      V n        T;'       g    \        P                  V n	        R# )OVERDECK_SUBROUTER_BINz1/var/lib/overdeck/subrouter/current/bin/subrouterOVERDECK_SUBROUTER_STATE_DIRz!/var/lib/overdeck/subrouter/stateN)
_nativer   osenvironget_binary
_state_dir
subprocessrun_command_runner)r*   r   r   r   r   s   &&$$$r#   r   "AuthorityLifecycleAdapter.__init__t   s}      
 
JJNN(C"
 $ 
 
tJJNN.3(
  .??r&   rM   rN   c               (    V ^8  d   QhRRRRRRRR/# rP   r!   )r"   s   "r#   r$   r      s8     	M 	M	M 		M
 	M 
"	Mr&   c             #  	\   "   V P                   P                  WVR 7       Rj  xL
  R#  L5i))rM   rN   N)r   rV   rU   s   &&$$r#   rV   AuthorityLifecycleAdapter.add   s$      <<##Et#LLLs   !,*,c                    V ^8  d   QhRRRR/# rY   r!   )r"   s   "r#   r$   r      s     )a )ag )a2J )ar&   c              #  	  "   VP                   pVe    VP                  \        P                  8X  d&   V P                  P                  V4       R j  xL
  R # RRRR\        V P                  4      RRR\        V P                  4      RVP                  R	VP                  .pVP                  R
8X  d   VP                  R4       \        RVR7      x   V P                  VRR7      p\!        TR^4      ^ 8w  d   \        RT\        R4      RR7      x  R # \        RTRR7      x  R #  L  \         d&   p\        RT\        R4      RR7      x   R p?R # R p?ii ; i5i)Nz	deck-sudoz-uzoverdeck-subrouterz--zauthority-accountr   z--state-dirz
--providerz--account-idcodexz--device-authstarted)rA   rB   F)checkfailurezGateway repair failed)rA   rB   rE   rD   
returncodesuccesszGateway repair complete)rA   rB   rD   )authority_bindingmoder   NATIVEr   r[   r    r   r   rs   rN   appendr@   r   	ExceptionRuntimeErrorgetattr)r*   rB   bindingargv	completedexcs   &&    r#   r[   (AuthorityLifecycleAdapter.reauthenticate   sL    ++?gllm.B.BB||227;;;  LLLL
 <<7"KK()W==		,,T,?I 9lA.!3 "#:;/	  )WF_``M <,  	 "#:;/	  	s>   AED%B ED' %AE'E2EEEEc               $    V ^8  d   QhRRRRRR/# r^   r!   )r"   s   "r#   r$   r      s"     0 0#3 03 04 0r&   c                	<    V P                   P                  W4       R # r(   )r   rc   rb   s   &&&r#   rc   %AuthorityLifecycleAdapter.submit_code   s      /r&   )r   r   r   r   )
r1   r2   r3   r4   __doc__r   rV   r[   rc   r6   r!   r&   r#   r   r   k   s[    @ #	@
 "&@ &*@.	M "&		M
  	M)aV0 0r&   r   c                  2    ] tR t^tR R ltRR R lltRtR# )CodexHealthAdapterc                    V ^8  d   QhRRRR/# )r   clientr   r   r`   r!   )r"   s   "r#   r$   CodexHealthAdapter.__annotate__   s      2 t r&   c                	    Wn         R # r(   _client)r*   r   s   &&r#   r   CodexHealthAdapter.__init__   s    r&   c               $    V ^8  d   QhRRRRRR/# rh   r!   )r"   s   "r#   r$   r      s!     
 
W 
E 
_ 
r&   c                	R    V P                   P                  VP                  VR R7      # )T)ri   allow_warmup)r   rn   account_homerm   s   &&&r#   rn   CodexHealthAdapter.fetch   s+    ||!!  |$ " 
 	
r&   r   Nrp   r1   r2   r3   r4   r   rn   r6   r!   r&   r#   r   r      s    
 
r&   r   c                  >    ] tR t^tR R ltR R ltR	R R lltRtR# )
AuthorityHealthAdapterc                    V ^8  d   QhRRRR/# )r   rt   r   r   r`   r!   )r"   s   "r#   r$   #AuthorityHealthAdapter.__annotate__   s     
 
 
T 
r&   c                	n    VP                   V n        \        VP                   R ,          RR7      V n        R# )zgateway_health_cache.json)stale_after_sNi  )base_dir	_base_dirr   _store)r*   rt   s   &&r#   r   AuthorityHealthAdapter.__init__   s,    !**) ;;7
r&   c                    V ^8  d   QhRRRR/# )r   rB   r   r   r    r!   )r"   s   "r#   r$   r      s     "A "A' "Ac "Ar&   c                	   VP                   pVf   \        R4      h \        V P                  V4      P                  p VP                  P                  4       pRP                  R VP                  VP                  VP                  VP                  VP                  3 4       4      pRP                  VP                  VP                  VVP                   VP"                  V34      p\$        P&                  ! VP)                  R4      4      P+                  4       #   \
         d    Rp Li ; i  \         d    TP                   R2p Li ; i)Nz#authority health requires a binding
unresolved:c              3  8   "   T F  p\        V4      x  K  	  R # 5ir(   )r    ).0values   & r#   	<genexpr>4AuthorityHealthAdapter._cache_key.<locals>.<genexpr>   s!      	&E E

s   z:missing zutf-8)r   
ValueErrorr   r   originr   proxy_grant_reflstatjoinst_devst_inost_sizest_mtime_nsOSErrortray_keyauthority_nameroute_idproviderhashlibsha256encode	hexdigest)r*   rB   r   endpoint_identity
grant_infogrant_identityr   s   &&     r#   
_cache_key!AuthorityHealthAdapter._cache_key   sB   ++?BCC	- :!f 
	B 00668J XX 	& ++%%%%&&**	& 	N 		  &&!    	
 ~~ell734>>@@5 + 	- ,	-  	B ' 7 78AN	Bs#    D A)D, D)(D),E	E	c               $    V ^8  d   QhRRRRRR/# rh   r!   )r"   s   "r#   r$   r      s!     
 
W 
E 
_ 
r&   c                	   \        V P                  WR 7      pV P                  V4      pVP                  \        P
                  8w  d<   V P                  P                  4       pW5V&   V P                  P                  V4       V# V P                  P                  4       P                  V4      pVf   V# \        V\        P
                  VP                   R2R7      # )ri   z; last verified status is stale)statusdetail)r   r   r   r   r   UNKNOWNr   readwriter   r   r   )r*   rB   ri   snapshot	cache_keycachedpreviouss   &&&    r#   rn   AuthorityHealthAdapter.fetch   s    *NNG
 OOG,	??l222[[%%'F (9KKf%O;;##%)))4O''oo&&EF
 	
r&   )r   r   Nrp   )r1   r2   r3   r4   r   r   rn   r6   r!   r&   r#   r   r      s    
"AH
 
r&   r   c                  2    ] tR tRtR R ltRR R lltRtR# )	DarkAuthorityHealthAdapteri  c               $    V ^8  d   QhRRRRRR/# )r   r   rf   gatewayr   r   r`   r!   )r"   s   "r#   r$   'DarkAuthorityHealthAdapter.__annotate__  s(        %  (  
	 r&   c                	    Wn         W n        R # r(   )r   _gateway)r*   r   r  s   &&&r#   r   #DarkAuthorityHealthAdapter.__init__  s    
 r&   c               $    V ^8  d   QhRRRRRR/# rh   r!   )r"   s   "r#   r$   r	    s!     . .W .E ._ .r&   c                	8   V P                   P                  WR 7      pV P                  P                  WR 7      pVP                  pVP                  '       d:   VP                  '       d   VP                   RVP                   2MVP                  p\	        W5R7      # )r   z; )r   )r   rn   r  r   r   )r*   rB   ri   r   r  r   s   &&&   r#   rn    DarkAuthorityHealthAdapter.fetch  sw    ##G#G--%%g%I====D^^^b(89QWQ^Q^Fv--r&   )r  r   Nrp   r   r!   r&   r#   r  r    s     . .r&   r  c                  P    ] tR tRtR R ltR R ltR R lt]R R	 l4       tR
t	R# )ProviderServiceMapi   c                    V ^8  d   QhRRRR/# )r   	providerszIterable[ProviderServices]r   r`   r!   )r"   s   "r#   r$   ProviderServiceMap.__annotate__!  s     6 6"< 6 6r&   c                	    / V n         V FY  pVP                  V P                   9   d$   \        R VP                  P                   R24      hW P                   VP                  &   K[  	  R# )zduplicate provider for tool ''N)
_providersrs   r   r   )r*   r  r   s   && r#   r   ProviderServiceMap.__init__!  sT    GI!H}}/ #@ATAT@UUV!WXX-5OOHMM* "r&   c                    V ^8  d   QhRRRR/# )r   rs   AccountRegistryKind | strr   rr   r!   )r"   s   "r#   r$   r  (  s      Z Z6 Z;K Zr&   c                	    V P                  V4      p V P                  V,          #   \         d    p\        R TP                   R24      ThRp?ii ; i)zmissing provider for tool 'r  N)_normalize_toolr  KeyErrorLookupErrorr   )r*   rs   
normalizedr   s   &&  r#   for_toolProviderServiceMap.for_tool(  sX    ))$/
	Z??:.. 	Z ;J<L<L;MQOPVYY	Zs   & AAAc                    V ^8  d   QhRRRR/# )r   rB   r   r   rr   r!   )r"   s   "r#   r$   r  /  s     
 
7 
/? 
r&   c                	p   V P                  VP                  4      pVP                  f   V# \        VP                  4      pTpVP                  P
                  \        P                  8X  d   \        VP                  V4      p\        VP                  VP                  \        VP                  4      VR7      # )N)rs   rt   ru   rv   )r   rs   r   r   rt   r   r   SUBROUTER_DARKr  rv   rr   r   ru   )r*   rB   r   gateway_healthrv   s   &&   r#   for_accountProviderServiceMap.for_account/  s    ==.$$,O/0A0AB(6$$))]-I-II/PF&&/0B0BC	
 	
r&   c                    V ^8  d   QhRRRR/# )r   rs   r  r   r   r!   )r"   s   "r#   r$   r  ?  s      I I7 I<O Ir&   c                	    \        V \        4      '       d   V # V P                  4       P                  4       p \        V4      #   \         d   p\	        R T  R24      ThRp?ii ; i)zunknown provider tool 'r  N)
isinstancer   striplowerr   )rs   r  r   s   &  r#   r  "ProviderServiceMap._normalize_tool>  sc    d/00KZZ\'')
	I&z22 	I6tfA>?SH	Is   
A A#AA#)r  N)
r1   r2   r3   r4   r   r   r&  r   r  r6   r!   r&   r#   r  r     s(    6Z
 I Ir&   r  )1
__future__r   r   r   r   pathlibr   collections.abcr   r   dataclassesr   r   typingr	   r
   account_registryr   r   r   r   authority_clientr   r   r   device_authr   r   device_auth_operationr   r   health_clientr   r   r   health_storer   r   r8   r@   rL   rf   rr   rx   r   r   r   r  r  r!   r&   r#   <module>r9     s    "  	   . *   Y Y 
 < @ L L ,#h #4x 4
 $; ; ;Mx MZH Z $" " "
 
BW0 W0t
 
<
 <
~. .$&I &Ir&   