
    NdiP                        d Z ddlZddlZddlZddlmZmZ ddlmZ dZd Z	d Z
d'dZd	 Zed
k(  r! ed        e       Zer] eded            eded   dd        eded   dd        eded   dd        eded   dd        eded    d        ed        ed      Z eded            ed ed            ed!ed"    d#        ed$        ed%      Z eded            ed ed            ed!ed"    d#        ed&        e       Z eded            ed ed            ed!ed"    d#       yy)(zHAria Usage Tracker - aggregiert Token-Nutzung aus Claude Code JSONL Logs    N)datetime	timedelta)Pathz/root/.claude/projects/-rootc           	      8   ddddd}d}d}d}	 t        |       5 }|D ](  }|j                         }|s	 t        j                  |      }|j	                  di       }|j	                  di       }	|	ry|dxx   |	j	                  dd      z  cc<   |dxx   |	j	                  d	d      z  cc<   |d
xx   |	j	                  dd      z  cc<   |dxx   |	j	                  dd      z  cc<   |dz  }|j	                  di       }
|
j	                  d      }|r8	 t        j                  |j                  dd            }|||k  r|}|||kD  r|}+ 	 ddd       ||||fS # t        $ r Y w xY w# t        j                  $ r Y `w xY w# 1 sw Y   8xY w# t        $ r Y Fw xY w)z&Parse JSONL und extrahiere Usage-Datenr   inputoutput
cache_readcache_createNmessageusager   input_tokensr	   output_tokensr
   cache_read_input_tokensr   cache_creation_input_tokens   snapshot	timestampZz+00:00)
openstripjsonloadsgetr   fromisoformatreplace	ExceptionJSONDecodeError)filepathtokens	msg_countfirst_tslast_tsflinedmsgr   r   ts_strtss                 /root/aria/scripts/aria-usage.pyparse_jsonlr+      s   AQJFIHG!(^ 	q zz|

4(A%%	2.CGGGR0Ew599^Q+GGx(EIIoq,II(|,		:SUV0WW,~.%))<Y[\2]].!Q	  !uuZ4H%\\+6F!!)!7!7sH8U!VB'/2=+-&"w,*,3	D 9h//  ) ! !++ ;	 	>  sj   F FCE'7EF
F 	E$!E'#E$$E''E>:F=E>>FF
F 	FFc                     	 t        j                  |       }t        j                  |j                        S # t
        $ r Y yw xY w)z!Holt das Erstelldatum einer DateiN)osstatr   fromtimestampst_mtimer   )r   r.   s     r*   get_file_dater1   9   s<    wwx %%dmm44 s   36 	AAc                 `   d}| r!t        j                         t        |       z
  }ddddd}d}d}t        j                  t        j
                  j                  t        d            }|t        j                  t        j
                  j                  t        d            z  }|D ]N  }t        |      }|r|r||k  rt        |      \  }}	}
}|	dkD  s.|dz  }||	z  }|D ]  }||xx   ||   z  cc<    P |d   |d	   z   |d
   z   |d   z   }|||d   |d	   |d
   |d   |t        |dz  d      dS )zCAggregiert Usage ueber alle Sessions, optional nach Tagen gefiltertNdaysr   r   *.jsonlz*/subagents/*.jsonlr   r   r	   r
   r   i@B    )sessionsmessagesr   r   cache_read_tokenscache_create_tokenstotal_tokenstotal_tokens_m)r   nowr   globr-   pathjoinPROJECTS_DIRr1   r+   round)r4   cutofftotal
total_msgssession_countjsonl_filesr   	file_dater    msgsr"   r#   k	total_alls                 r*   aggregate_usagerL   B   sZ   F)"661AqIEJM))BGGLLyABK 499RWW\\,8MNOOK 
&!(+	iI$6*5h*?'h!8QM$J &aF1I%&
& gx053FF~I^^I "gx"<0$^4!	I 5q9	 	    c                     t        j                   t        j                  j                  t        d            } | syt        | t        j                  j                        }t        |      \  }}}}|d   |d   z   |d   z   |d   z   }t        j                  j                  |      ||d   |d   |d   |d   |t        |dz  d	      d
S )z"Holt Usage der aktuellsten Sessionr5   N)keyr   r	   r
   r   i  r   )session_filer8   r   r   r9   r:   r;   total_tokens_k)
r>   r-   r?   r@   rA   maxgetmtimer+   basenamerB   )rG   latestr    rI   r"   r#   rK   s          r*   get_current_session_usagerV   k   s    ))BGGLLyABK "''"2"23F&1&&9#FD(Gw&"22VL5IIFSaLbbI ((0w)#L1%n5!	E 115	 	rM   __main__z=== Aktuelle Session ===z  Messages:     r8   z  Input:        r   ,z tokensz  Output:       r   z  Cache Read:   r9   z  Cache Create: r:   z  Total:        rQ   zk tokensz
=== Heute ===r   r3   z  Sessions: r7   z  Messages: z  Total:    r<   zM tokensz
=== Diese Woche ===   z
=== Gesamt ===)N)__doc__r   r-   r>   r   r   pathlibr   rA   r+   r1   rL   rV   __name__printcurrenttodayweekall_time rM   r*   <module>rc      s   N  	  ( -*0Z&R0 z	
$%')G !4 567 !8 ;7CD !9! <GDE )<!=a @HI )>!? B'JK )9!: ;8DE	
#E	Lz*+
,-	Lz*+
,-	L/01
:;	
!""D	Lj)*
+,	Lj)*
+,	L./0
9:	
 H	L*-.
/0	L*-.
/0	L"234H
=>7 rM   