+
    D#j4                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIHt  ! R	 R
]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 lt ! R R4      tR# )    )annotationsN)	dataclass)datetime)Enum)Path)CodexAppServer)HealthSnapshotStorec                  "    ] tR t^tRtRtRtRtR# )HealthStatusokbrokenunknown N)__name__
__module____qualname____firstlineno__OKBROKENUNKNOWN__static_attributes__r       ^/home/user/overdeck-private-tests/subrouter-s5-systray-latest/modules/systray/health_client.pyr   r      s    	BFGr   r   T)frozenc                  J    ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR# )
NamedLimitstrkind
str | Nonegroup
int | Nonepercentfloat | None	resets_atboolactiver   N)r   r   r   r   __annotations__r   r   r   r   r   r      s    
ILr   r   c                  P    ] tR t^&t$ RtR]R&   RtR]R&   RtR]R&   RtR]R&   Rt	R# )	ExtraUsageSummaryNr#   usedlimitr   unitdisplayr   )
r   r   r   r   r*   r'   r+   r,   r-   r   r   r   r   r)   r)   &   s*    D,E<D*GZr   r)   c                  P    ] tR t^.t$ RtR]R&   RtR]R&   RtR]R&   RtR]R&   Rt	R# )	SpendSummaryNr#   amountr+   r   currencyr-   r   )
r   r   r   r   r0   r'   r+   r1   r-   r   r   r   r   r/   r/   .   s*    FLE<HjGZr   r/   c                      ] tR t^6t$ R]R&   R]R&   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# )AccountSnapshotr   statusr!   primary_used_pctsecondary_used_pctNr#   primary_reset_atsecondary_reset_at
checked_atr   detailztuple[NamedLimit, ...]named_limitszExtraUsageSummary | Noneextra_usagezSpendSummary | Nonespendr   )r   r   r   r   r'   r7   r8   r9   r:   r;   r<   r=   r   r   r   r   r3   r3   6   s_      ""%)l)'++#J#FJ+-L(-,0K)0!%E%r   r3   c                   V ^8  d   QhRR/#    returnr   r   )formats   "r   __annotate__rC   D   s      * r   c                    \         P                  P                  R R4      P                  \         P                  4       F  p \        T ;'       g    R4      R,          pVP                  4       '       d,   \         P                  ! V\         P                  4      '       g   Kb   VP                  4       pTP                  R8X  d   K  \        T4      u # 	  R#   \         d     K  i ; i)PATH .codexz_tmpjail-shim.shN)osenvirongetsplitpathsepr   is_fileaccessX_OKresolveOSErrornamer   )	directory	candidateresolveds      r   codex_executablerW   D   s    ZZ^^FB/55bjjA	))c*W4	  """))Irww*G*G	 ((*H ==..8} B   		s   !CC$#C$c                  d   ] tR t^St$ RtR]R&   R R lt]R R l4       t]	R R	 l4       t
R'R
R/R R llltR R ltR R ltR R lt]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R(R$ R% ll4       tR&tR# ))AccountHealthClientNzbool | None_scope_availablec                   V ^8  d   QhRR/# r@   rA   Noner   )rB   s   "r   rC    AccountHealthClient.__annotate__V   s     * *$ *r   c                	$    \        4       V n        R # N)r   	_protocol)selfs   &r   __init__AccountHealthClient.__init__V   s    ')r   c                   V ^8  d   QhRR/# r?   r   )rB   s   "r   rC   r^   Z   s     " "z "r   c                 	    \        4       # r`   )rW   r   r   r   _codex_executable%AccountHealthClient._codex_executableY   s    !!r   c                   V ^8  d   QhRR/# )r@   rA   r%   r   )rB   s   "r   rC   r^   ^   s     $ $d $r   c                	   V P                   f   \        P                  ! R4      e   \        P                  ! R4      f   RV n         V P                   #  \        P                  ! . RO\        P
                  \        P
                  ^R7      pVP                  ^ 8H  V n         V P                   # V P                   #   \        \        P                  3 d    RT n          T P                   # i ; i)Nsystemd-run	systemctlFstdoutstderrtimeout)rl   --userzshow-environment)	rZ   shutilwhich
subprocessrunDEVNULL
returncoderR   TimeoutExpired)clsprobes   & r   _user_scope_available)AccountHealthClient._user_scope_available]   s    '||M*2fll;6O6W',$ ###	1&NNC)11)11 !	E ,1+;+;q+@C( ###s###  !:!:; 1+0C(###1s   AB7 7"C'&C'allow_warmupFc               (    V ^8  d   QhRRRRRRRR/# )	r@   
codex_homer   timeout_secsfloatr}   r%   rA   r3   r   )rB   s   "r   rC   r^   o   s8     \ \\ \
 \ 
\r   c          	     	   \         P                  ! V4      '       g   V P                  W4      # V'       d   \         P                  ! V4      '       d   \	        \
        P                  R R RR7      # \         P                  ! V4       \         P                  ! V4      ;_uu_ 4        V P                  V\        V\         P                  4      4      uuR R R 4       #   + '       g   i     R # ; i)Nzpreparing account datar:   )codex_stateneeds_warmup_probewarmup_in_progressr3   r   r   release_orphaned_claimwarmup_claimmaxWARMUP_TIMEOUT_S)rb   r   r   r}   s   &&&$r   fetchAccountHealthClient.fetcho   s     ''
33;;z88{==jII"$$dD9Q  	**:6%%j11;;z3|[=Y=Y+Z[ 2111s   #*CC)	c               $    V ^8  d   QhRRRRRR/# )r@   r   r   r   r   rA   r3   r   )rB   s   "r   rC   r^      s&     t9 t9 t9U t9 t9r   c                	
  aa V P                  4       pVf   \        \        P                  R R RR7      # VRR.pR pV P	                  4       '       dU   R\
        P                  ! 4        R\        P                  ! 4       P                  R,           2pRR	R
RRRRV 2RRRRRRR.VOp \        P                  ! V\        P                  \        P                  \        P                  R/ \
        P                  CR\        V4      /CRR7      o SP                   e   SP"                  f.   \        \        P                  R R 4      T P%                  ST4       # T P&                  P)                  4       w  rgSP                   P+                  T4       SP                   P+                  T4       SP                   P-                  4        \.        P0                  ! 4       oR TT3R llp\2        P4                  ! TRR7      p	T	P7                  4        \8        P:                  ! 4       T,           p
 T
\8        P:                  ! 4       ,
          pT^ 8:  d.   \        \        P                  R R 4      T P%                  ST4       #  SP=                  TR7      pTf.   \        \        P                  R R 4      T P%                  ST4       # T'       gB   SPA                  4       e.   \        \        P                  R R 4      T P%                  ST4       # K  T P&                  PC                  T4      pTf   EK   TPD                  '       d.   \        \        PF                  R R 4      T P%                  ST4       # \H        PJ                  ! T4      pTP=                  R4      p\M        T\N        4      '       g.   \        \        P                  R R 4      T P%                  ST4       # T PQ                  T4      pRR0TPS                  4       ,          '       g.   \        \        P                  R R 4      T P%                  ST4       # \8        P8                  ! 4       pT PU                  T4      w  ppT PW                  T4      pT PW                  T4      p\        \        PX                  TTT P[                  TT4      T P[                  TT4      R7      T P%                  ST4       #   \         d    \        \        P                  R R 4      u # i ; i  \.        P>                   d1    \        \        P                  R R 4      u T P%                  ST4       # i ; i  T P%                  ST4       i ; i)NzCodex runtime unavailabler   z
app-serverz--stdiozcodex-probe--:N   Nrk   rq   z--scopez	--collectz--quietz--slice=agent.slicez--unit=z-pzMemoryMax=2GzMemoryHigh=1GzTasksMax=512z--T
CODEX_HOME)stdinrn   ro   textenvstart_new_sessionc                   V ^8  d   QhRR/# r\   r   )rB   s   "r   rC   0AccountHealthClient._probe.<locals>.__annotate__   s     ) ) )r   c                    <   SP                   P                  4       p SP                  V 4       V '       d   K6  R#   \        \        3 d    SP                  R4        R# i ; i)TN)rn   readlineputrR   
ValueError)chunk
line_queueprocesss    r   _read_lines/AccountHealthClient._probe.<locals>._read_lines   sQ    ) ' 7 7 9"u-$u", )NN4()s   1; "A! A!)targetdaemonrp   resultprimary	secondary)r7   r8   ).rg   r3   r   r   r{   rI   getpiduuiduuid4hexrt   PopenPIPErJ   r   rR   r   rn   _terminate_processra   request_lineswriteflushqueueQueue	threadingThreadstarttime	monotonicrK   Emptypollparse_rate_limits_responseis_errorr   jsonloads
isinstancedict_rate_limits_payloadkeys_semantic_windows_used_percentr   	_reset_at)rb   r   r   
executableargv
scope_unitinitialize_line	read_liner   reader_threaddeadline	remaininglinereplypayloadr   rate_limitsnowprimary_windowsecondary_windowr   r   r   r   s   &&&                   @@r   r   AccountHealthClient._probe   s   ++-
"$$dD9T  L)4!%
%%''
 (		}Adjjl6F6Fr6J5KLJ%*& !" #D&	E && oo!!ArzzA<ZA"&GF	9}}$(>&|';';T4HH ##GZ8E *.)E)E)G&OMM0MM	*MM!27++-J) ) &,,KMM!~~',6H$t~~'77	>*<+?+?tLT ##GZ8QM%>>)><D <*<+?+?tLD ##GZ8A ||~1.|/C/CT4P< ##GZ8; AA$G=>>>*<+>+>dK, ##GZ8) **T* X.!&$//*<+?+?tL" ##GZ8 #77?"K0;3C3C3EEE*<+?+?tL ##GZ8 iik373I3I+3V0 0,,^< ../?@	& OO%)^^NC%H'+~~6F'L ##GZ8S  	E"<#7#7tDD	EF {{ M*<+?+?tLLJ ##GZ8MML ##GZ8s|   &A$S 6T8 DT8 5S0 T8 8T8  ,T8 ?5T8 5T8 "AT8 /T8 <T8 )BT8 &S-,S-00T5 T8 4T55T8 8Uc               $    V ^8  d   QhRRRRRR/# )r@   
cache_pathr   	snapshotsdict[str, AccountSnapshot]rA   r]   r   )rB   s   "r   rC   r^      s(     J Jd J7Q JVZ Jr   c                	>    \        V^ R7      P                  V4       R# )r   stale_after_sN)r	   r   )rb   r   r   s   &&&r   write_cacheAccountHealthClient.write_cache   s    Ja8>>yIr   c                    V ^8  d   QhRRRR/# )r@   r   r   rA   r   r   )rB   s   "r   rC   r^      s     G GT G.H Gr   c                	8    \        V^ R7      P                  4       # )r   r   )r	   read)rb   r   s   &&r   
read_cacheAccountHealthClient.read_cache   s    ":Q?DDFFr   c                    V ^8  d   QhRRRR/# r@   windowobjectrA   r!   r   )rB   s   "r   rC   r^      s     9 9f 9 9r   c                	    \        V \        4      '       g   R # V P                  R4      p\        V\        4      '       d   V# R # )NusedPercent)r   r   rK   intr   values   & r   r   !AccountHealthClient._used_percent   s7    &$''

=)"5#..u8D8r   c                    V ^8  d   QhRRRR/# )r@   r   r   rA   dict[str, object]r   )rB   s   "r   rC   r^     s      V 0A r   c                	    \        V \        4      '       g   / # V P                  R 4      p\        V\        4      '       d   V# V # )
rateLimits)r   r   rK   )r   nesteds   & r   r   (AccountHealthClient._rate_limits_payload  s9    &$''IL)fd##Mr   c                    V ^8  d   QhRRRR/# )r@   r   r   rA   ztuple[object, object]r   )rB   s   "r   rC   r^     s     0 0'8 0=R 0r   c                	|   V P                  R 4      V P                  R4      3p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   V# RpRp\        WRR7       F  w  rVVR8X  d   TpK  VR	8X  g   K  TpK  	  W43# )
r   r   c              3  L   "   T F  p\         P                  V4      x  K  	  R # 5ir`   )rY   _window_duration_mins).0r   s   & r   	<genexpr>8AccountHealthClient._semantic_windows.<locals>.<genexpr>  s"     eZdPV-CCFKKZds   "$c              3  (   "   T F  qR J x  K
  	  R # 5ir`   r   )r   durations   & r   r   r     s     :	H4	s   FTN)stricti,  i`'  )rK   tupleallzip)r   
positional	durationsr   r   r   r   s   &      r   r   %AccountHealthClient._semantic_windows  s    !ooi0+//+2NO
EeZdeEEeZdee	3:	:333:	::: #J$ GF3!'V##) 	 !H
 //r   c                    V ^8  d   QhRRRR/# r   r   )rB   s   "r   rC   r^     s      f  r   c                	    \        V \        4      '       g   R # V P                  R4      p\        V\        4      '       g   \        V\        \
        34      '       g   R # \	        V4      # )NwindowDurationMins)r   r   rK   r%   r   r   r   s   & r   r   )AccountHealthClient._window_duration_mins  sK    &$''

/0eT""*US%L*I*I5zr   c               $    V ^8  d   QhRRRRRR/# )r@   r   r   r   r   rA   r#   r   )rB   s   "r   rC   r^   &  s!      & u  r   c                	   \        V \        4      '       g   R # R F@  p\        P                  V P	                  V4      4      pVf   K-  V\        RV4      ,           u # 	  R F  pV P	                  V4      p\        P                  V4      pVe3   VR8  d   VR,          u # VR8  d   V\        RV4      ,           u # Vu # \        V\        4      '       g   Kw  \        P                  V4      pVf   K  Vu # 	  R # )Ng        l    d(	 g     @@i ʚ;)resetSecondsresetsInSecondssecondsUntilResetresetInSeconds)resetsAtresetAt	resetTimeresetTimestamp)r   r   rY   _numeric_valuerK   r   r   _parse_iso_timestamp)r   r   keyr   numericparseds   &&    r   r   AccountHealthClient._reset_at%  s    &$''
C (66vzz#GE Se_,,
 JCJJsOE)88?G"^+"V++]*S'!222%%%,AA%H%!M J r   c                    V ^8  d   QhRRRR/# )r@   r   r   rA   r#   r   )rB   s   "r   rC   r^   D  s     
 
f 
 
r   c                	    \        V \        4      '       d   R # \        V \        \        34      '       d   \        V 4      # \        V \        4      '       d    \        V 4      # R #   \
         d     R # i ; ir`   )r   r%   r   r   r   r   )r   s   &r   r  "AccountHealthClient._numeric_valueC  sb    eT""ec5\**<eS!!U|#   s   
A$ $A32A3c                    V ^8  d   QhRRRR/# )r@   r   r   rA   r#   r   )rB   s   "r   rC   r^   Q  s     	 	C 	L 	r   c                	    V P                  4       pV'       g   R # VP                  R4      '       d	   VR R  R2p \        P                  ! V4      P	                  4       #   \
         d     R # i ; i)NZz+00:00)stripendswithr   fromisoformat	timestampr   )r   
normalizeds   & r   r  (AccountHealthClient._parse_iso_timestampP  sh    [[]
s##&sO,F3J	))*5??AA 		s   #A A.-A.c                    V ^8  d   QhRRRR/# )r@   r   r   rA   r]   r   )rB   s   "r   rC   r^   ]  s        r   c           	     	     \         P                  ! R RRRRV  R2.\         P                  \         P                  ^R7       R#   \        \         P                  3 d     R# i ; i)rl   rq   killz--kill-whom=allz--signal=SIGKILLz.scoperm   N)rt   ru   rv   rR   rx   )r   s   &r   _kill_scopeAccountHealthClient._kill_scope\  sg    	NN%&!l&) "))!)) 223 		s   ?A A"!A"c               $    V ^8  d   QhRRRRRR/# )r@   r   zsubprocess.Popen[str]r   r   rA   r]   r   )rB   s   "r   rC   r^   p  s$     < <&<4><	<r   c                	  a  R  V 3R llp  V! \         P                  4        S P                  RR7       Te   \        P	                  T4       R# R#   \         d      Te   \        P	                  T4       R# R# i ; i  \        \        P                  3 d     T! \         P                  4       M.  \         d!      Te   \        P	                  T4       R# R# i ; i S P                  RR7        L  \        \        P                  3 d!      Te   \        P	                  T4       R# R# i ; ii ; i  Te   \        P	                  T4       i i ; i)c                    V ^8  d   QhRRRR/# )r@   sigr   rA   r]   r   )rB   s   "r   rC   <AccountHealthClient._terminate_process.<locals>.__annotate__s  s     	) 	)s 	)t 	)r   c                   <  \         P                  ! SP                  V 4       R #   \        \        3 d    SP                  T 4        R # i ; ir`   )rI   killpgpidrR   ProcessLookupErrorsend_signal)r-  r   s   &r   _signal_group=AccountHealthClient._terminate_process.<locals>._signal_groups  s=    )		'++s+/0 )##C()s   !& "AANg      ?r   )	signalSIGTERMrR   rY   r(  waitrt   rx   SIGKILL)r   r   r4  s   f& r   r   &AccountHealthClient._terminate_processo  s>   	) 	)	<fnn-
S) %#//
; &   %#//
; &
 Z667 !&..1  %#//
; &LLL-!:!:; %#//
; & %#//
; &s   A B  A=D8 <A==D8  D5B32D53C>D5?D8 D8 CD5"C64D8 6D1D5D8 D8 0D11D55D8 8E)ra   )g      $@r`   )r   r   r   r   rZ   r'   rc   staticmethodrg   classmethodr{   r   r   r   r   r   r   r   r   r   r  r  r(  r   r   r   r   r   rY   rY   S   s   $(k(* " " $ $"\
 #\ \"t9lJG 9 9   0 0    : 
 
 	 	  $ < <r   rY   )
__future__r   r   rI   r   r6  rt   r   r   dataclassesr   r   enumr   pathlibr   rr   r   r   codex_appserverr   health_storer	   r   r   r)   r/   r3   rW   rY   r   r   r   <module>rC     s    "  	      !       * ,4  $   $   $   $
& 
& 
&y< y<r   