
    /jr                       % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
J	r	JrJr  S SKJr  S SKJr  SSKJr  / S	QrSS
 jrSrS\S'   SS jrSS jr " S S\R2                  5      r " S S\R2                  5      rSS jrg)    )annotationsN)OrderedDict)datedatetimetimetimezone)istraceback)Any   )Plugin)httpxhttpcoreopenai
watchfiles	anthropiczwebsockets.clientzaiohttp.accesslivekitbotocoreaiobotocorezurllib3.connectionpoolz
mcp.clientc                     [          HX  n [        R                  " U 5      nUR                  [        R                  :X  d  M9  UR                  [        R                  5        MZ     g N)NOISY_LOGGERSlogging	getLoggerlevelNOTSETsetLevelWARN)noisy_loggerloggers     G/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/cli/log.py_silence_noisy_loggersr!       s<    %""<0<<7>>)OOGLL) &    )argsasctimecreatedexc_infoexc_textfilenamefuncName	levelnamelevelnolinenomodulemsecsmessagemsgnamepathnameprocessprocessNamerelativeCreated
stack_infothread
threadNametaskNameztuple[str, ...]_RESERVED_ATTRSc                    U R                   R                  5        H>  u  p#U[        ;  d  M  [        US5      (       a  UR	                  S5      (       a  M:  X1U'   M@     g )N
startswith_)__dict__itemsr:   hasattrr<   )recordtargetkeyvalues       r    _merge_record_extrarE   D   sE    oo++-
o%wsL/I/Icnn]`NaNa3K .r"   c                h   [        U R                  [        R                  5      (       a&  [        R
                  " S[        R                  5      nO[        U R                  [        R                  5      (       a&  [        R
                  " S[        R                  5      nOg[        U R                  [        R                  5      (       a&  [        R
                  " S[        R                  5      nO[        SU R                   35      eU R                  (       a  UR                  U R                  5      $ / $ )z.parse the list of fields required by the stylez\$\{(.+?)\}z	\{(.+?)\}z
%\((.+?)\)zInvalid format: )
isinstance_styler   StringTemplateStylerecompile
IGNORECASEStrFormatStylePercentStyle
ValueError_fmtfindall)	formatterformatter_style_patterns     r    _parse_stylerT   J   s    )""G$?$?@@"$**^R]]"K	I$$g&<&<	=	="$**\2=="I	I$$g&:&:	;	;"$**]BMM"J+INN+;<==~~&..y~~>>	r"   c                  `   ^  \ rS rSr " S S\R
                  5      rSU 4S jjrSS jrSr	U =r
$ )	JsonFormatter[   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )JsonFormatter.JsonEncoder\   c                  > [        U[        [        [        45      (       a  UR	                  5       $ [        U5      (       a3  SR                  [        R                  " U5      5      R                  5       $ [        U5      [        L d'  [        U[        5      (       d  [        U5      [        L a  [        U5      $  [        TU ]9  U5      $ ! [         a      [        U5      s $ ! [         a      g f = ff = f)N )rG   r   r   r   	isoformatr	   join	traceback	format_tbstriptype	Exceptionstrsuperdefault	TypeError)selfo	__class__s     r    rf   !JsonFormatter.JsonEncoder.default]   s    !dHd344{{}$Qwwy22156<<>>aI%Ay)A)AT!WPT_1v wq))   q6M     s0   :C	 	
C3
C!C3!
C/+C3.C//C3 )ri   r
   returnr
   )__name__
__module____qualname____firstlineno__rf   __static_attributes____classcell__rj   s   @r    JsonEncoderrY   \   s    	  	 r"   ru   c                F   > [         TU ]  " U0 UD6  [        U 5      U l        g r   )re   __init__rT   _required_fieldsrh   r#   kwargsrj   s      r    rw   JsonFormatter.__init__n   s"    $)&) ,T 2r"   c                   0 nUR                   US'   UR                  US'   [        UR                  [        5      (       a  UR                  nSUl        OUR                  5       Ul        SU R                  ;   a   U R                  XR                  5      Ul
        UR                  (       a4  UR                  S5      (       d  U R                  UR                  5      US'   UR                  S5      (       d   UR                  (       a  UR                  US'   UR                  (       a4  UR                  S5      (       d  U R!                  UR                  5      US'   [#        5       nU R                   H   nUR$                  R                  U5      X4'   M"     UR'                  U5        [)        X5        [*        R,                  " UR.                  [0        R2                  S9US'   [4        R6                  " U[8        R:                  S	S
9$ )z+Formats a log record and serializes to jsonr   r1   r\   r$   r&   r6   )tz	timestampFclsensure_ascii)r*   r1   rG   r0   dictr/   
getMessagerx   
formatTimedatefmtr$   r&   getformatExceptionr'   r6   formatStackr   r>   updaterE   r   fromtimestampr%   r   utcjsondumpsrV   ru   )rh   rA   message_dict
log_recordfields        r    formatJsonFormatter.formatr   s   ') & 0 0W%{{Vfjj$''!::LFN#..0FN---!__V\\BFN??<#3#3J#?#?'+';';FOO'LL$
++'-L$\%5%5l%C%C)-)9)9&:K:K)LL&%0]
**E & 3 3E :J + 	,'F/"*"8"8HLL"Y
;zz*-*C*CRWXXr"   )rx   r#   r
   rz   r
   rm   NonerA   logging.LogRecordrm   rd   )rn   ro   rp   rq   r   JSONEncoderru   rw   r   rr   rs   rt   s   @r    rV   rV   [   s&     d&&  $3 Y  Yr"   rV   c                  J   ^  \ rS rSrSU 4S jjr\SS j5       rSS jrSrU =r	$ )	ColoredFormatter   c                0  > [         TU ]  " U0 UD6  U R                  S5      U R                  S5      U R                  S5      U R                  S5      U R                  S5      U R                  S5      U R                  S5      U R                  S5      U R                  S	S5      S
.	U l        U R                  S   U R                  S   U R                  S   U R                  S   U R                  S   U R                  S   S.U l        [        U 5      U l        g )Nr          !   "   #   $   Z      )		esc_resetesc_red	esc_green
esc_yellowesc_blue
esc_purpleesc_cyanesc_grayesc_bold_redr   r   r   r   r   r   )DEBUGINFOWARNINGERRORCRITICALDEV)re   rw   _esc
_esc_codes_level_colorsrT   rx   ry   s      r    rw   ColoredFormatter.__init__   s    $)&)1yy}2))B-		"))B-		"		" IIa,

 __Z0OOK0|4__Y/7??<0
 !-T 2r"   c                >    SSR                  S U 5       5      -   S-   $ )Nz[;c              3  8   #    U  H  n[        U5      v   M     g 7fr   )rd   ).0codes     r    	<genexpr>(ColoredFormatter._esc.<locals>.<genexpr>   s     !>#d))s   m)r^   )r   codess     r    r   ColoredFormatter._esc   s!    !>!>>>DDr"   c                   0 n[        X5        0 nU R                   H   nUR                  R                  U5      X4'   M"     U R                  R                  UR
                  S5      US'   SUS'   UR                  U R                  5        U R                   H  nXB;   d  M
  X$	 M     U(       a'  [        R                  " U[        R                  SS9US'   U R                  R                  U-  nXPR                  S   -   $ )z Formats a log record with colorsr\   esc_levelcolorextraFr   r   )rE   rx   r>   r   r   r*   r   r   r   r   rV   ru   rH   rP   )rh   rA   r   r#   r   r0   s         r    formatMessageColoredFormatter.formatMessage   s     !#F***E //--e4DK + "&!3!3!7!78H8H"!MWDOO$**E~L +  JJu-2K2KZ_`DMkk%__[111r"   )r   r   rx   r   )r   intrm   rd   r   )
rn   ro   rp   rq   rw   classmethodr   r   rr   rs   rt   s   @r    r   r      s(    32 E E2 2r"   r   c                l  ^  [         R                  " 5       n[         R                  " [        R                  5      nU(       a0  U(       a  [        S5      nO[        S5      nUR                  U5        O[        5       nUR                  U5        UR                  U5        UR                  T 5        [        5         SSKJn  UR                  [         R                  :X  a  UR                  T 5        SU 4S jjn[        R                    H  n	U" U	5        M     [        R"                  R%                  SU5        g )Nzj%(asctime)s - %(esc_levelcolor)s%(levelname)-4s%(esc_reset)s %(name)s - %(message)s %(esc_gray)s%(extra)szi%(asctime)s - %(esc_levelcolor)s%(levelname)-4s%(esc_reset)s %(name)s - %(message)s %(esc_gray)s%(extra)sr   )r   c                   > U R                   bE  U R                   R                  [        R                  :X  a  U R                   R	                  T5        g g g r   )r   r   r   r   r   )plugin	log_levels    r    _configure_plugin_logger/setup_logging.<locals>._configure_plugin_logger   s=    ==$)<)<)NMM""9- *O$r"   plugin_registered)r   r   rm   r   )r   r   StreamHandlersysstdoutr   setFormatterrV   
addHandlerr   r!   logr   r   r   r   registered_pluginsemitteron)
r   devmodeconsoleroothandlercolored_formatterjson_formatterr   r   r   s
   `         r    setup_loggingr      s    D##CJJ/G 0}! !1{! 	./ '^,OOGMM)||w~~%	". ++ ( , NN)+CDr"   )rm   r   )rA   r   rB   zdict[Any, Any]rm   r   )rR   zlogging.Formatterrm   z	list[str])r   rd   r   boolr   r   rm   r   )
__future__r   r   r   rJ   r   r_   collectionsr   r   r   r   r   inspectr	   typingr
   r   r   r   r!   r:   __annotations__rE   rT   	FormatterrV   r   r   rl   r"   r    <module>r      s{    "   	 
  # 3 3    *$ 6 "7YG%% 7Yt42w(( 42n'Er"   