+
    ~j                        ^ RI Ht ^ RIt^ RIHt ^ RIHt ^RIHtH	t	H
t
HtHt ] ! R R4      4       t ! R R	4      tR# )
    )annotationsN)deepcopy)	dataclass)AgentMetrics
LLMMetricsRealtimeModelMetrics
STTMetrics
TTSMetricsc                  z   ] tR t^
t$ Rt^ tR]R&   ^ tR]R&   ^ tR]R&   ^ t	R]R&   ^ t
R]R&   ^ tR]R&   ^ tR]R	&   ^ tR]R
&   ^ tR]R&   ^ tR]R&   ^ tR]R&   ^ tR]R&   ^ tR]R&   RtR]R&   RtR]R&   R R lt]R R l4       t]P0                  R R l4       t]R R l4       t]P0                  R R l4       tRtR# ) UsageSummaryzl
.. deprecated::
    Use :class:`LLMModelUsage`, :class:`TTSModelUsage`, or :class:`STTModelUsage` instead.
intllm_prompt_tokensllm_prompt_cached_tokensllm_input_audio_tokensllm_input_cached_audio_tokensllm_input_text_tokensllm_input_cached_text_tokensllm_input_image_tokensllm_input_cached_image_tokensllm_completion_tokensllm_output_audio_tokensllm_output_image_tokensllm_output_text_tokenstts_characters_countg        floattts_audio_durationstt_audio_durationc                   V ^8  d   QhRR/#    returnNone )formats   "{/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/metrics/usage_collector.py__annotate__UsageSummary.__annotate__!   s     
 
t 
    c                	@    \         P                  ! R \        ^R7       R# )zpUsageSummary is deprecated. Use LLMModelUsage, TTSModelUsage, or STTModelUsage from metrics.model_usage instead.
stacklevelN)warningswarnDeprecationWarningselfs   &r%   __post_init__UsageSummary.__post_init__!   s    A		
r(   c                   V ^8  d   QhRR/# r    r!   r   r#   )r$   s   "r%   r&   r'   +   s     & &# &r(   c                	    V P                   # Nr   r/   s   &r%   llm_input_tokensUsageSummary.llm_input_tokens*   s    %%%r(   c                    V ^8  d   QhRRRR/# r    valuer   r!   r"   r#   )r$   s   "r%   r&   r'   /   s     ' 'c 'd 'r(   c                	    Wn         R # r6   r7   r0   r<   s   &&r%   r8   r9   .   s    !&r(   c                   V ^8  d   QhRR/# r4   r#   )r$   s   "r%   r&   r'   3   s     * *3 *r(   c                	    V P                   # r6   r   r/   s   &r%   llm_output_tokensUsageSummary.llm_output_tokens2   s    )))r(   c                    V ^8  d   QhRRRR/# r;   r#   )r$   s   "r%   r&   r'   7   s     + +s +t +r(   c                	    Wn         R # r6   rA   r>   s   &&r%   rB   rC   6   s    %*"r(   )r   r   N)__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   propertyr8   setterrB   __static_attributes__r#   r(   r%   r   r   
   s   
 s$%c%"#C#)*!3*!"3"() #)"#C#)*!3*!"3"#$S$#$S$"#C# !#! ## ##
 & & ' ' * * + +r(   r   c                  J    ] tR t^;tRtR R ltR R ltR R ltR R	 ltR
t	R# )UsageCollectorz?
.. deprecated::
    Use :class:`ModelUsageCollector` instead.
c                   V ^8  d   QhRR/# r   r#   )r$   s   "r%   r&   UsageCollector.__annotate__A   s     ' '$ 'r(   c                	^    \         P                  ! R \        ^R7       \        4       V n        R# )zWUsageCollector is deprecated. Use ModelUsageCollector from metrics.model_usage instead.r*   N)r,   r-   r.   r   _summaryr/   s   &r%   __init__UsageCollector.__init__A   s$    +		
 %r(   c                    V ^8  d   QhRRRR/# r    metricsr   r!   r"   r#   )r$   s   "r%   r&   rR   J   s        r(   c                	(    V P                  V4       R # r6   )collectr0   rY   s   &&r%   __call__UsageCollector.__call__J   s    Wr(   c                    V ^8  d   QhRRRR/# rX   r#   )r$   s   "r%   r&   rR   M   s     'G 'G| 'G 'Gr(   c                	   \        V\        4      '       d   V P                  ;P                  VP                  ,          un        V P                  ;P
                  VP                  ,          un        V P                  ;P                  VP                  ,          un        R# \        V\        4      '       Ed   V P                  ;P                  VP                  ,          un        V P                  ;P
                  VP                  P                  ,          un        V P                  ;P                  VP                  P                  ,          un        V P                  ;P                  VP                  P                   '       d!   VP                  P                   P                  M^ ,          un        V P                  ;P"                  VP                  P$                  ,          un        V P                  ;P&                  VP                  P                   '       d!   VP                  P                   P$                  M^ ,          un        V P                  ;P(                  VP                  P*                  ,          un        V P                  ;P,                  VP                  P                   '       d!   VP                  P                   P*                  M^ ,          un        V P                  ;P.                  VP0                  P                  ,          un        V P                  ;P2                  VP0                  P$                  ,          un        V P                  ;P4                  VP0                  P*                  ,          un        V P                  ;P                  VP6                  ,          un        R# \        V\8        4      '       d]   V P                  ;P:                  VP<                  ,          un        V P                  ;P>                  VP@                  ,          un        R# \        V\B        4      '       d0   V P                  ;PD                  VP@                  ,          un"        R# R# )r   N)#
isinstancer   rT   r   prompt_tokensr   prompt_cached_tokensr   completion_tokensr   input_tokensinput_token_detailscached_tokensr   text_tokensr   cached_tokens_detailsr   image_tokensr   r   audio_tokensr   r   output_token_detailsr   r   output_tokensr
   r   characters_countr   audio_durationr	   r   r\   s   &&r%   r[   UsageCollector.collectM   s   gz**MM++w/D/DD+MM22g6R6RR2MM//73L3LL/!566MM++w/C/CC+MM22g6Q6Q6_6__2MM//73N3N3Z3ZZ/MM66..DDD ++AAMM6
 MM00G4O4O4\4\\0MM77..DDD ++AANN7
 MM00G4O4O4\4\\0MM77..DDD ++AANN7 MM00G4P4P4\4\\0MM11W5Q5Q5^5^^1MM11W5Q5Q5^5^^1MM//73H3HH/,,MM..'2J2JJ.MM,,0F0FF,,,MM,,0F0FF, -r(   c                   V ^8  d   QhRR/# )r    r!   r   r#   )r$   s   "r%   r&   rR   v   s     ' '\ 'r(   c                	,    \        V P                  4      # r6   )r   rT   r/   s   &r%   get_summaryUsageCollector.get_summaryv   s    &&r(   )rT   N)
rF   rG   rH   rI   rJ   rU   r]   r[   rs   rN   r#   r(   r%   rP   rP   ;   s"    
''GR' 'r(   rP   )
__future__r   r,   copyr   dataclassesr   baser   r   r   r	   r
   r   rP   r#   r(   r%   <module>ry      s;    "   ! X X -+ -+ -+`<' <'r(   