+
    ~j                        ^ 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Ht ^ RIHt ^ RIt^RIHt ^RIHt ^RIHtHt ^R	IHt ^R
IHt ^RIHt R R lt ! R R4      t ! R R4      t R# )    )annotationsN)Callable)DistributionPackageNotFoundError)Any)utils)channel)	DEV_LEVELlogger)Plugin)AgentServer)protoc                    V ^8  d   QhRRRR/# )   	main_filepathlib.Pathreturnzlist[pathlib.Path] )formats   "o/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/cli/watcher.py__annotate__r      s     & &\ &6H &    c                f  a . oR  V3R llpV! R4      '       g	   V! R4       \         P                   F?  pV! VP                  4      '       d   K  V! VP                  P                  RR4      4       KA  	  V P	                  4       .pS EF#  pVP                  R4      pV'       g   K  \        P                  ! V4      pVP                  R/ 4      pVP                  RR	4      '       g   Ka  VP                  R
4      pV'       g   K|  VP                  R4      '       g   K  \        P                  P                  V4      p	\        P                  P                  V	P                  4      p
\        P                  P!                  V
4      p\"        P$                  ! V4      pVP'                  V4       EK&  	  V# )c                    V ^8  d   QhRRRR/# )r   namestrr   boolr   )r   s   "r   r   +_find_watchable_paths.<locals>.__annotate__   s      s t r   c                |   <  \         P                  ! V 4      pSP                  V4       R #   \         d     R# i ; i)TF)r   	from_nameappendr   )r   distpackagess   & r   _try_add'_find_watchable_paths.<locals>._try_add   s9    	))$/DOOD!# 		s   ', ;;zlivekit.agentszlivekit-agents.-zdirect_url.jsondir_infoeditableFurlzfile://)r   registered_pluginspackagereplaceabsolute	read_textjsonloadsget
startswithurllibparseurlparseunquotepathrequesturl2pathnamepathlibPathr!   )r   r$   pluginpathspkgdurl	durl_jsonr(   r8   
parsed_urlfile_url_path
local_path	file_pathr#   s   &            @r   _find_watchable_pathsrF      sD   #%H  $%%!"++''V^^++C56 , "+!3!3!5 6E}}./$(JJt$4	==R0<<
E**(}}U3Dt	22#\\2248
 & 4 4Z__ E#^^88G
#LL4	Y' " Lr   c                  ~    ] tR t^AtR R ltR R ltR R ltR R lt]P                  ! ]
R	7      R
 R l4       tRtR# )WatchServerc               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   worker_runnerz+Callable[[AgentServer, proto.CliArgs], Any]serverr   r   r   cli_argsproto.CliArgsloopzasyncio.AbstractEventLoopr   Noner   )r   s   "r   r   WatchServer.__annotate__B   sF     1 1B1 1  	1
  1 (1 
1r   c                	   \         P                  ! 4       w  V n        Vn        W@n        Wn        W0n        WPn        W n        \        P                  R ,          ! 4       V n        RV n        \        P                  R ,          ! 4       V n        R # )NF)socket
socketpair_mp_pchmp_cch	_cli_args_worker_runner
_main_file_loop_serverasyncioFuture_recv_jobs_fut_worker_reloading
_close_fut)selfrJ   rK   r   rL   rN   s   &&&&&&r   __init__WatchServer.__init__B   sd     )/(9(9(;%ho!+#
%nnT24!&!...0r   c                   V ^8  d   QhRR/# r   r   rO   r   )r   s   "r   r   rP   U   s     % %4 %r   c                	  a a"   \        S P                  4      oS F!  p\        P                  ! \        R V 24       K#  	  \
        P                  P                  P                  P                  S P                  4      G Rj  xL
 S n        S P                  P                  S P                  4       4      p\
        P                  ! \        R7      R V V3R ll4       p\         P                  ! V! 4       4      p S P"                  G Rj  xL
  \
        P                  P%                  V4      G Rj  xL
  \
        P                  P%                  V4      G Rj  xL
  S P                  P'                  4       G Rj  xL
  R#  L Lx LS L. L  \
        P                  P%                  T4      G Rj  xL 
  \
        P                  P%                  T4      G Rj  xL 
  S P                  P'                  4       G Rj  xL 
  i ; i5i)z	Watching Nr   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   %WatchServer.run.<locals>.__annotate__^   s     	  	  	 r   c                   <"   \         P                  ! SR S P                  RS P                  S P                  3R\         P
                  P                  4       RS P                  / G Rj  xL
  S P                  4       G Rj  xL
  R#  L L5i)targetargswatch_filtercallbackN)	
watchfilesarun_processrW   rZ   rV   filtersPythonFilter
_on_reloadaclose)r`   watch_pathss   r   	_run_task"WatchServer.run.<locals>._run_task]   s     ))** llDNN3 (//<<>	
    ++-  s$   A&B)B*BB
B
B)rF   rX   r   logr
   r   aioduplex_unix_AsyncDuplexopenrT   _pchrY   create_task_read_ipc_tasklog_exceptionsr[   r_   cancel_and_waitrs   )r`   pthread_ipc_taskru   run_taskrt   s   f    @r   runWatchServer.runU   sf    +DOO<CJJyIcU"34   ))//<<AA$,,OO	

..t/B/B/DE			V	,	  	  
-	  &&y{3	%//!!))++H555))++M:::))""$$$+ P" "5:$ ))++H555))++M:::))""$$$s   A=H E>A5H 8F F F "H .F/&H F!H 7F8H  F H H H #G=+F.,'G=G"G=6G97G==H c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   rP   q   s     - -d -r   c                	   "   V P                   P                  4       '       g   V P                   P                  R 4       R # R # 5iN)r_   done
set_resultr`   s   &r   rs   WatchServer.acloseq   s/     ##%%OO&&t, &s   A Ac                    V ^8  d   QhRRRR/# )r   _zset[watchfiles.main.FileChange]r   rO   r   )r   s   "r   r   rP   u   s     - -"A -d -r   c                	t  "   V P                   '       d   R # RV n          \        P                  ! V P                  \        P
                  ! 4       4      G R j  xL
  \        P                  ! 4       V n        \        P                  ! \        P                  4      ;_uu_ 4        \        P                  ! V P                  RR7      G R j  xL
  R R R 4       V P                  ;P                  ^,          un        R #  L L3  + '       g   i     L9; i  T P                  ;P                  ^,          un        i ; i5i)NTg      ?)timeout)r^   r	   asend_messager|   r   ActiveJobsRequestr[   r\   r]   
contextlibsuppressTimeoutErrorwait_forrV   reload_count)r`   r   s   &&r   rr   WatchServer._on_reloadu   s     !!!!%	-''		53J3J3LMMM").."2D$$W%9%9::&&t':':CHHH ; NN''1,' N I ;: NN''1,'sY   D87D C9A
D !&C=C;C=D %D89D ;C==D	D %D55D8rf   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   rP      s     / /d /r   c                	
  "   . p \         P                  ! V P                  \        P                  4      G Rj  xL
 p\        V\        P                  4      '       d   VP                  V P                  P                  8w  d   K  VP                  p\        P                  ! \        P                  4      ;_uu_ 4        V P                  P                  R4       RRR4       \        V\        P                   4      '       d?   \         P"                  ! V P                  \        P$                  ! VR7      4      G Rj  xL
  \        V\        P&                  4      '       g   EK\  RV n        EKf   EL3  + '       g   i     L; i LG5i)TN)jobsF)r	   arecv_messager|   r   IPC_MESSAGES
isinstanceActiveJobsResponser   rV   r   r   r   r[   InvalidStateErrorr]   r   ReloadJobsRequestr   ReloadJobsResponseReloadedr^   )r`   active_jobsmsgs   &  r   r~   WatchServer._read_ipc_task   s     --dii9K9KLLC#u7788##t~~'B'BB!hh(()B)BCC''2248 D#u6677++DIIu7O7OU`7abbb#u~~..).& M DC cs;   6FE+BF<E.A!F9F:!F!F.E>	9	F)
rV   r_   rY   rX   rT   r|   r]   rZ   r^   rW   N)__name__
__module____qualname____firstlineno__ra   r   rs   rr   r   r   r   r~   __static_attributes__r   r   r   rH   rH   A   s5    1&%8-- (/ )/r   rH   c                  v    ] tR t^tRR R lltR R lt]P                  ! ]R7      R R l4       t	R	 R
 lt
RtR# )WatchClientNc               (    V ^8  d   QhRRRRRRRR/# )	r   workerr   rL   rM   rN   z asyncio.AbstractEventLoop | Noner   rO   r   )r   s   "r   r   WatchClient.__annotate__   s2     " ""  " /	"
 
"r   c                	f    T;'       g    \         P                  ! 4       V n        Wn        W n        R # r   )r[   get_event_looprY   _workerrV   )r`   r   rL   rN   s   &&&&r   ra   WatchClient.__init__   s&     55W335
!r   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r      s     > >t >r   c                	b    V P                   P                  V P                  4       4      V n        R # r   )rY   r}   _run
_main_taskr   s   &r   startWatchClient.start   s    **00=r   rf   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r      s      D r   c                	  "   V P                   P                  '       g   Q h \        P                  P                  P
                  P                  V P                   P                  4      G R j  xL
 V n        \        P                  ! V P                  \        P                  ! 4       4      G R j  xL
    \        P                  ! V P                  \        P                  4      G R j  xL
 p\        T\        P                   4      '       dk   T P"                  P$                  p\        P                  ! T P                  \        P&                  ! Y P                   P(                  R7      4      G R j  xL
  K  \        T\        P*                  4      '       g   K  T P"                  P-                  TP.                  4      G R j  xL
  \        P                  ! T P                  \        P0                  ! 4       4      G R j  xL
  EKQ   EL ELY EL#  \        P                  P                  P                   d     R # i ; i L L~ LD  \        P                  P                  P                   d     R # i ; i5i)N)r   r   )rV   rU   r   rx   ry   rz   r{   _cchr	   r   r   r   r   r   DuplexClosedr   r   r   r   r   r   r   _reload_jobsr   r   )r`   r   r   s   &  r   r   WatchClient._run   s    ~~$$$$$	#ii33@@EEdnnF[F[\\DI''		53J3J3LMMM ' 5 5diiASAS TTC c5#:#:;;<<33D!//		00!%NN4O4O    U%=%=>>,,33CHH===!//		5>>;KLLL+ ]M Uyy,,99 
 >Lyy$$11 		s   I2A
I ,H-A I -H.I 42H &H	'H +BI .H</#I (I ?H> ;I ;I <I I 	H )H95I 6I28H99I >I  I )I/+I2.I//I2c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r      s     ! !d !r   c                	n  "   V P                   '       g   R # V P                   P                  4        \        P                  ! \        P
                  4      ;_uu_ 4        V P                   G R j  xL
  R R R 4       V P                  P                  4       G R j  xL
  R #  L0  + '       g   i     L6; i L5ir   )r   cancelr   r   r[   CancelledErrorr   rs   r   s   &r   rs   WatchClient.aclose   su        !7!788//!! 9 ii    " 98 	!s<   AB5B -B.B 2%B5B3B5B  B0	+	B5)r   rV   rY   r   r   r   )r   r   r   r   ra   r   r   r   r   r   rs   r   r   r   r   r   r      s5    "> ( )8! !r   r   )!
__future__r   r[   r   r0   r;   rR   urllib.parser4   urllib.requestcollections.abcr   importlib.metadatar   r   typingr   rn    r   ipcr	   rw   r
   r   r=   r   r   r   r   rF   rH   r   r   r   r   <module>r      sX    "        $ A     #    &RR/ R/j3! 3!r   