+
    5mjE                       ^ RI Ht ^ RI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Ht ^PtRt]]]]3,          tR R ltR	 R
 ltR R lt]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       t ]! RR7       ! R R 4      4       t!]! RR7       ! R! R"4      4       t"]! RR7       ! R# R$4      4       t#R%]$! 4       R&]$! 4       /R' R( llt%R) R* lt&R+ R, lt'R- R. lt(R/ R0 lt)R1R2/R3 R4 llt*R5 R6 lt+R7 R8 lt,R9 R: lt-R; R< lt.R= R> lt/R? R@ lt0RA RB lt1RC RD lt2RE RF lt3RG RH lt4RI RJ lt5RK RL lt6R2# )M    )annotations)CallableMappingSequence)	dataclassfieldreplace)AccountSnapshotHealthStatus)	WINDOW_5H	WINDOW_7Dbreached_windowsg     f@c               (    V ^8  d   QhRRRRRRRR/# )   _kindstr_tool_slugreturnNone )formats   "X/home/user/overdeck-private-tests/workstation-ai-broad2/modules/systray/ui/view_model.py__annotate__r      s(      s 3 s t     c                    R # Nr   )r   r   r   s   &&&r   _noop_dismiss_alertr          
r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r   )r   s   "r   r   r      s!      S   r   c                    R # r   r   )r   r   s   &&r   _noop_toggle_lockr"      r   r   c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   r   _actionr   r   r   )r   s   "r   r   r      s(       S 3 4 r   c                    R # r   r   )r   r   r$   s   &&&r   _noop_gatewayr&      r   r   T)frozenc                      ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   R]R&   ]! ]R7      tR]R&   RtR]R&   Rt	R]R&   Rt
R# )AccountInputr   toolslugalias
str | Noneplanbool
is_defaultAccountSnapshot | Nonesnapshotfloat | None
checked_atfrozenset[str]busy_actions)default_factoryzMapping[str, int]account_capsFlockednativegateway_stater   N)__name__
__module____qualname____firstlineno____annotations__r   dictr8   r9   r;   __static_attributes__r   r   r   r)   r)      sS    
I
IJ
$$  &+D&AL#AFD!M3!r   r)   c                  6    ] tR t^)t$ R]R&   R]R&   R]R&   RtR# )ProviderInputr   r*   labelztuple[AccountInput, ...]accountsr   Nr<   r=   r>   r?   r@   rB   r   r   r   rD   rD   )   s    
IJ&&r   rD   c                  b    ] tR t^0t$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
tR]R&   RtR
# )
QuotaBarVMr   window_labelfloatfractionintleft_pctpercent_text
reset_textlevelN
int | Nonecap_stop_at_pctr   )r<   r=   r>   r?   r@   rS   rB   r   r   r   rI   rI   0   s,    OMOJ"&OZ&r   rI   c                      ] tR t^;t$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   RtR]R&   RtR]R&   RtR# )	AccountVMr   r*   r+   r,   	plan_textr/   r0   healthhealth_text	attentionzQuotaBarVM | Noneprimary	secondarychecked_textr-   primary_actionprimary_action_labelr5   r6   Fr9   r:   r;   r   N)r<   r=   r>   r?   r@   r9   r;   rB   r   r   r   rU   rU   ;   sd    
I
IJNKO    FD!M3!r   rU   c                  ~    ] tR t^Ot$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   ]R R l4       tRtR# )AlertVMr   kindr*   r+   
title_textdetail_textr-   actionaction_labelaction_slugc                   V ^8  d   QhRR/# )r   r   AlertKeyr   )r   s   "r   r   AlertVM.__annotate__[   s     / /x /r   c                	H    V P                   V P                  V P                  3# r   )ra   r*   r+   )selfs   &r   dismissal_keyAlertVM.dismissal_keyZ   s    yy$))TYY..r   r   N)r<   r=   r>   r?   r@   propertyrl   rB   r   r   r   r`   r`   O   s@    
I
I
IO/ /r   r`   c                  ,    ] tR t^_t$ R]R&   R]R&   RtR# )SummaryLineVMr   	text_left
text_rightr   NrG   r   r   r   rp   rp   _   s    NOr   rp   c                  @    ] tR t^et$ R]R&   R]R&   R]R&   R]R&   RtR	# )
AlertsTabVMtuple[AlertVM, ...]alertsztuple[SummaryLineVM, ...]healthy_linesr   empty_headingempty_detailr   NrG   r   r   r   rt   rt   e   s    ,,r   rt   c                  @    ] tR t^mt$ R]R&   R]R&   R]R&   R]R&   RtR# )	TabVMr   idrE   rM   badge_countbadge_levelr   NrG   r   r   r   r{   r{   m   s    GJr   r{   c                  6    ] tR t^ut$ R]R&   R]R&   R]R&   RtR# )ProviderTabVMr   r*   ztuple[AccountVM, ...]rF   	add_labelr   NrG   r   r   r   r   r   u   s    
I##Nr   r   c                  l    ] tR t^|t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R]R&   ]! 4       tR]R&   RtR# )DashboardVMztuple[TabVM, ...]tabsrt   rv   ztuple[ProviderTabVM, ...]	providersr   
active_tabztuple[tuple[str, str], ...]	add_toolsrefresh_textr5   busy_add_toolsr   N)r<   r=   r>   r?   r@   	frozensetr   rB   r   r   r   r   r   |   s1    
((O**%.[NN0r   r   c                      ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   ]tR]R&   ]tR]R&   ]	t
R]R&   RtR# )DashboardCallbackszCallable[[str, str], None]on_set_defaultz(Callable[[str | None, str | None], None]	on_reload	on_repair	on_rename	on_removezCallable[[str], None]on_addzCallable[[], None]on_open_settingson_set_limitson_tab_changedzCallable[[str, str, str], None]on_dismiss_alerton_toggle_lock
on_gatewayr   N)r<   r=   r>   r?   r@   r   r   r"   r   r&   r   rB   r   r   r   r   r      sZ    ..77))))))!!((--))8K5K1BN.B2?J/?r   r   r   dismissed_alert_keysc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r   r   Sequence[ProviderInput]nowrK   last_used_tabr-   warning_threshold_pctrM   r   r5   r   zfrozenset[AlertKey]r   r   r   )r   s   "r   r   r      sY     ` `&` 
` 	`
 ` #` .` `r   c                 a . p. p. p. p	. p
. pR pV  EF  p. pRp^ pVP                    EF  p\        VWR7      w  ppVP                  V4       VP                  V4       VP                  e"   Ve   VP                  V8  d   VP                  pVP                  R8X  d   RpVP                  \        V4      4       M[V'       d:   VP                  e,   V	P                  \        VVVP                  VVVR7      4       MV
P                  \        V4      4       VP                  '       g   EK  V^,          pEK  	  VP                  \        VP                  \        V4      RVP                   R2R7      4       VP                  \        VP                  VP                  V\        VVR7      R	7      4       EK  	  \        ;QJ d    . V3R
 l. VOV	O 4       F  NK  	  5M! V3R
 l. VOV	O 4       4      p\         ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      p\        RR\#        V4      \        \#        V4      VR7      R	7      p\%        VV4      w  pp\'        V\        V
4      VVR7      p\)        V.VO5T\        V4      \+        V VV4      \        ;QJ d    . R V  4       F  NK  	  5M! R V  4       4      TVe   R\-        W,
          4       2R7      # RR7      # )NF)r   r   brokenTu   ＋ Add  account)r*   rF   r   )
has_broken)r|   rE   r}   r~   c              3  N   <"   T F  pVP                   S9  g   K  Vx  K  	  R # 5ir   )rl   ).0alertr   s   & r   	<genexpr>%build_dashboard_vm.<locals>.<genexpr>   s)      5E&:: 	5s   %
%c              3  >   "   T F  qP                   R 8H  x  K  	  R# 5i)r   N)ra   )r   r   s   & r   r   r      s     Fve::1v   rv   u
   ⚠ Alerts)rv   rw   rx   ry   c              3  P   "   T F  qP                   VP                  3x  K  	  R # 5ir   )r*   rE   )r   providers   & r   r   r      s     R	H7	s   $&   ⟳ u	   ⟳ never)r   rv   r   r   r   r   r   )rF   _account_vmappendr4   rW   _broken_alertr2   _breach_alert_summary_linerY   r   r*   tuplerE   r{   _badge_levelanylen_empty_statert   r   _active_tab	_ago_text)r   r   r   r   r   r   provider_vmsprovider_tabsbroken_alertsbreach_alertsrw   all_account_vmsnewest_checkedr   account_vmsbroken_on_tabattention_countaccountvmbreachedrv   has_broken_alert
alerts_tabrx   ry   	alerts_vms   &$$$$d                    r   build_dashboard_vmr      s    )+L!#M#%M#%M)+M')O#'N')((G&SLB r"""2&!!-&'*<*<~*M!(!3!3yyH$ $$$]7%;<g..:$$! (( .C	 $$]2%67|||1$7 )8 	]]{+$X^^$4H=	
 	==nn+(]S		
O ` U 5}5}5UU 5}5}5 F
 sFvFsssFvFFK V9IJ	J #/v"GM<M*#!	I )=)%y&-@%R	R%%R	RR% ) 9S1234   r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r)   r   rK   r   rM   r   z tuple[AccountVM, frozenset[str]]r   )r   s   "r   r   r      s,     4 44#(4AD4%4r   c          
        V P                   pVe   \        W0P                  V4      MR pVe   \        WBR7      M	\	        4       p\        V4      w  rgR pR p	V P                  p
Ve   VP                  e@   \        RVP                  VP                  \        V9   VV
P                  \        4      R7      pVP                  eS   \        V P                  R8X  d   RMRVP                  VP                  \        V9   VV
P                  \        4      R7      p	\!        WV4      w  r\#        R/ RV P                  bRV P$                  bR	V P&                  bR
V P(                  ;'       g    RbRV P*                  bRVbRVbRVR8g  ;'       g    \-        V4      bRVbRV	bR\/        V P                  V4      bRVbRVbRV P0                  bRV P2                  bRV P4                  b pW3# )Nfive_hour_threshold_pct5h)r   r   rS   grokmo7dr*   r+   r,   rV   unknownr0   rW   rX   rY   okrZ   r[   r\   r]   r^   r6   r9   r;   r   )r2   _evaluated_snapshotr4   r   r   _healthr8   primary_used_pct
_quota_barprimary_reset_atr   getsecondary_used_pctr*   secondary_reset_atr   _primary_actionrU   r+   r,   r.   r0   r/   _checked_textr6   r9   r;   )r   r   r   r2   	evaluatedr   rW   rX   rZ   r[   capsrd   re   r   s   &$$           r   r   r      s    HJRJ^#H.@.@#FdhI   	R[ 
 "),F!%G#'ID$$0 ))))"h. $ 3G &&2".D++++"h. $ 3I +7vFF	 
\\
\\
 mm
 ,,++)	

 %%
 
  
 D.22DN
 
 
 #7#5#5s;
 
 *
 ))
 ~~
  ++!
B$ <r   c               (    V ^8  d   QhRRRRRRRR/# )r   r2   r
   r4   r3   r   rK   r   r   )r   s   "r   r   r   1  s,      +7>Cr   c                    VR J;'       d    W!,
          \         8*  pV'       dV   V P                  \        P                  J d8   V P                  e*   V P
                  e   \        V \        P                  R7      # V # )N)status)_STALE_AFTER_Sr   r   UNKNOWNr   r   r	   OK)r2   r4   r   freshs   &&& r   r   r   1  sa     d"IIs'7>'IEOO|333%%1''3x88Or   c                    V ^8  d   QhRRRR/# )r   r2   r1   r   tuple[str, str]r   )r   s   "r   r   r   ?  s      ,  r   c                    V e   V P                   \        P                  J d   R# V P                   \        P                  J d   R# R# )N)r   Checking)r   zNeeds repair)r   Healthy)r   r   r   BROKEN)r2   s   &r   r   r   ?  s=    8??l.B.BB$$,---''r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r)   r   r1   rW   r   r   ztuple[str | None, str]r   )r   s   "r   r   r   G  s,      &<FIr   c                    V P                   '       d   R# VR8X  d   R# VeE   VP                  \        P                  J d'   V P                  '       g   V P                   '       g   R# R# )Nr   )N )repair	   Repair…)set_defaultzSet as default)r9   r   r   r   r0   )r   r   rW   s   &&&r   r   r   G  sX     ~~~$$/"""..Or   rS   Nc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r   rJ   r   used_pctrM   reset_atr3   r   r/   r   rK   rS   rR   r   rI   r   )r   s   "r   r   r   X  sN       
  
   r   c          
         \        V4      pV'       d   R pMV\        8  d   RpMRp\        W$4      p^dV,
          p	V	 R2p
\        T V	^d,          T	T
Ve   RV 2MRVVR7      # )crithotr   % leftu   ↺ r   )rJ   rL   rN   rO   rP   rQ   rS   )_bounded_HOT_USED_PCT_reset_deltarI   )rJ   r   r   r   r   rS   boundedrQ   deltarN   rO   s   &&&$$$     r   r   r   X  sz     x G	M	!'EW}HZv&L!C!%*%6T%>B' r   c                    V ^8  d   QhRRRR/# )r   r   r)   r   r`   r   )r   s   "r   r   r   v  s     
 
< 
G 
r   c                    \        R V P                  V P                  V P                   RV P                   R2RRRRR7      # )r   /z auth expiredzhealth checks pausedr   r   Nra   r*   r+   rb   rc   rd   re   rf   )r`   r*   r+   )r   s   &r   r   r   v  sD    \\\\ll^1W\\N-@* 	 	r   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r   r   rD   r   r)   r2   r
   r   r5   r   rK   r   rM   r   r`   r   )r   s   "r   r   r     sN     8 888 8 	8 
8 8 8r   c                  . p\         V9   dF   VP                  e8   VP                  \        VP                  4      ^ \         RVP                  34       \
        V9   d[   VP                  eM   VP                  R8X  d   RMRpVP                  \        VP                  4      ^\
        VVP                  34       \        VR R7      w  rrp\        V VP                  V
VVR7      p. p\        W4      pVe   VP                  RV 24       Ve'   Vw  ppVP                  VP                   R	V R
24       \        RVP                  VP                  VP                   RVP                   R^dV,
           RV 2RP                  V4      Ve   RMR Ve   RV^ ,          P                   2MRVe   V^ ,          P                  R7      # R R7      # )Nz	5h windowr   zbilling periodz	7d windowc                (    V ^ ,          V ^,          ) 3# r   r   )ws   &r   <lambda>_breach_alert.<locals>.<lambda>  s    1PQRSPTur   )key)windowr   r   z
resets in z has r   breachr    z
% left of     · switchz
Switch to r   r  )r   r   r   r   r   r   r   r*   r   max_switch_targetr+   r   r,   r`   join)r   r   r2   r   r   r   windowsrE   pct_r
  rJ   r   targetdetail_partsr   target_accounttarget_left_pcts   &&&&$$            r   r   r     s    >@GH!:!:!F223))	
 H!<!<!H$+LLF$: 445++	
 .1>U-V*CF(3F !L'Ej01*0'~334E/9J&QR\\\\ll^1W\\N!C#I;jWKK-!-x47=7Iz&)//!23r&,&8F1INN	 	 ?C	 	r   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   r   rD   exclude_slugr   r
  r   rM   r   rK   r   ztuple[AccountInput, int] | Noner   )r   s   "r   r   r     sD     ( ((( 	(
 ( 
( %(r   c                  R pR p\        V P                  4       EF-  w  rxVP                  V8X  g3   VP                  '       g!   VP                  '       g   VP
                  f   KK  \        VP
                  VP                  V4      p	V	P                  \        P                  Jd   K  \        WR7      '       d   K  V\        8X  d   V	P                  MV	P                  p
V
f   K  V\        8X  d   V	P                  MV	P                  pVe   \        V4      M^ep\        V
4      W3pVe
   W8  g   EK  V^d\        V
4      ,
          3pTpEK0  	  V# )Nr   )	enumeraterF   r+   r0   r9   r2   r   r4   r   r   r   r   r   r   r   r   )r   r  r
  r   r   bestbest_keyindex	candidater   r   	other_pct	other_keyr	  s   &&$$$         r   r  r    s4    -1D,0H%h&7&78NNl*###!!)'	(:(:I<P<PRUV	<??2IUU " &&-- 	
  " ((++ 	
 ,5+@HY'c	!94s~sXh%778DH; 9< Kr   c                    V ^8  d   QhRRRR/# )r   r   rU   r   rp   r   )r   s   "r   r   r     s     H Hi HM Hr   c                   V P                   R 8X  d   RMRpV RV P                   RV P                   2pV P                  '       d   V R2pV P                  '       d   V R2pV P                   R 8X  d   \        VRR7      # V P                  V P                  3 Uu. uF$  pVf   K	  VP                   RVP                   2NK&  	  pp\        VR	P                  V4      R7      # u upi )
r   u   …u   ✓r  r   u    🔒u    ★checking)rq   rr   r  )rW   r*   r+   r9   r0   rp   rZ   r[   rJ   rO   r  )r   markerleftbarpartss   &    r   r   r     s    ii9,U%FXQrwwiq	*D	yyyu~	}}}t}	yyIt
CC JJ--C 	13
Ac../0- 
 
 4FKK4FGGs   C"%C"c               $    V ^8  d   QhRRRRRR/# )r   rv   ru   rF   Sequence[AccountVM]r   r   r   )r   s   "r   r   r     s$     	3 	3	3+>	3	3r   c                    V '       d   R# V'       g   R# \         ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   R# R\        V4      3# )r   c              3  >   "   T F  qP                   R 8H  x  K  	  R# 5i)r   N)rW   )r   r   s   & r   r   _empty_state.<locals>.<genexpr>  s     
5Hb99	!Hr   TFu   All good ✓)r   r   )zNo accounts yetu/   Use ＋ Add account below to connect a provider)r   _empty_detail)rv   rF   s   &&r   r   r     sK     SS
s
5H
5sss
5H
555=222r   c                    V ^8  d   QhRRRR/# )r   rF   r+  r   r   r   )r   s   "r   r   r     s      / C r   c           	     |   \        V 4      pV^8X  d   V R2MV R2.pR F  pV  UUu. uFG  pVP                  VP                  3 F(  pVf   K	  VP                  V8X  g   K  VP                  NK*  	  KI  	  pppV'       g   Kb  VP                  RV R\        V4       R24       K  	  RP                  V4      # u uppi )   r   z	 accountszlowest r  r   r  )r   r   r   )r   rZ   r[   rJ   rN   r   minr  )rF   countr)  rJ   r   r(  valuess   &      r   r/  r/    s    ME#(A:wheWI3FGE* 


BLL1  $'#3#3|#C CLL1  	 
 6LL7<.#f+fEF + ;;u
s   !B8B8!B8c               $    V ^8  d   QhRRRRRR/# )r   r4  rM   r   r/   r   r   r   )r   s   "r   r   r     s!       D S r   c               ,    V'       d   R # V ^ 8  d   R# R# )errwarnr   r   )r4  r   s   &$r   r   r     s    qyr   c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   rv   ru   r   r-   r   r   r   )r   s   "r   r   r     s0      &  		r   c                    V'       d   R # V  Uu0 uF  q3P                   kK  	  ppVe	   W$9   d   V# V '       d   V ^ ,          P                   # R # u upi )rv   )r*   )r   rv   r   r   provider_idss   &&&  r   r   r     sL    
 2;<)hMM)L< ]%B|    =s   Ac               $    V ^8  d   QhRRRRRR/# )r   r4   r3   r   rK   r   r   r   )r   s   "r   r   r   ,  s!      l  3 r   c                ^    V f   R# W,
          pR\        V4       2pV\        8  d   V R2pV# )Nznever refreshedr   z (stale))r   r   )r4   r   agetexts   &&  r   r   r   ,  s=     

C)C.!"D
^x Kr   c                    V ^8  d   QhRRRR/# )r   age_secondsrK   r   r   r   )r   s   "r   r   r   6  s     & &5 &S &r   c                    \        ^ \        V 4      4      pV^<8  d   V R2# VR8  d   V^<,           R2# VR8  d   VR,           R2# VR,           R2# )r   zs ago  zm agoQ zh agozd ago)r  rM   )rB  secondss   & r   r   r   6  sk    !S%&G|%  ~R-&&T/"%((u%%r   c               $    V ^8  d   QhRRRRRR/# )r   r   r3   r   rK   r   r-   r   )r   s   "r   r   r   A  s!      < e 
 r   c                P   V f   R # \        W,
          4      pV^ 8:  d   R # VR8  d    \        ^V^;,           ^<,          4      pV R2# VR8  d.   VR,          pVR,          ^<,          pV^ 8X  d   V R2# V RV R2# VR,          pVR,          R,          pV^ 8X  d   V R2# V RV R2# )NrD  mrE  hd)rM   r  )r   r   rF  minuteshoursdayss   &&    r   r   r   A  s    (.!G!|~a'B,2-.!}4T>b(a<WA;'!$$eDu_%EzqzV1UG1r   c                    V ^8  d   QhRRRR/# )r   r   rM   r   r   )r   s   "r   r   r   W  s     & &s &s &r   c                .    \        ^ \        ^dV 4      4      # r  )r  r3  )r   s   &r   r   r   W  s    q#c8$%%r   )7
__future__r   collections.abcr   r   r   dataclassesr   r   r	   health_clientr
   r   limit_warningr   r   r   r   r   r   r   rh   r   r"   r&   r)   rD   rI   rU   r`   rp   rt   r{   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r/  r   r   r   r   r   r   r   r   r   <module>rV     s   " 7 7 1 1 7 @ @c3 $" " " $' ' ' $' ' ' $" " "& $/ / / $  
 $   $   $   $1 1 1 $@ @ @` &/[` 1:`F4n" #'<
8v(VH"	3&,&r   