+
    ~j}/                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
HtHtHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^ RI	Ht ]'       d   ^RIHt Rt] ! R R4      4       t] ! R R]4      4       t ! R R4      t ] ! R R]4      4       t! ! R R4      t" ! R R4      t# ! R R]#4      t$ ! R R]#4      t%]] ]&.R3,          t']]"]&.R3,          t(R# )    )annotationsN)Callable)	dataclass)AsyncIteratorOptionalDictList)
DataStream)ffi_pb2)room_pb2)	FfiClient)
split_utf8)TYPE_CHECKING)LocalParticipanti:  c                  T    ] tR t^%t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR# )BaseStreamInfostr	stream_id	mime_typetopicint	timestampzOptional[int]sizeOptional[Dict[str, str]]
attributes N__name__
__module____qualname____firstlineno____annotations____static_attributes__r       l/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/rtc/data_stream.pyr   r   %   s"    NNJN
((r$   r   c                  "    ] tR t^/t$ R]R&   RtR# )TextStreamInfoz	List[str]attachmentsr   Nr   r   r$   r%   r'   r'   /   s    r$   r'   c                  t    ] tR t^4tR R ltR R ltR R ltR R ltR	 R
 lt]	R R l4       t
R R ltRtR# )TextStreamReaderc                    V ^8  d   QhRRRR/# )   headerproto_DataStream.HeaderreturnNoner   )formats   "r%   __annotate__TextStreamReader.__annotate__5   s"     T T'T 
Tr$   c                	8   Wn         \        VP                  VP                  VP                  VP
                  VP                  \        VP                  4      \        VP                  P                  4      R 7      V n        \        P                  ! 4       V n        R# )r   r   r   r   r   r   r(   N)_headerr'   r   r   r   r   total_lengthdictr   listtext_headerattached_stream_ids_infoasyncioQueue_queue)selfr-   s   &&r%   __init__TextStreamReader.__init__5   ss     #&&&&,,&&$$F--.V//CCD

 ELMMOr$   c                   V ^8  d   QhRR/# r,   chunkzproto_DataStream.Chunkr   )r1   s   "r%   r2   r3   E        % %,B %r$   c                	X   "   V P                   P                  V4      G R j  xL
  R #  L5iNr?   putr@   rE   s   &&r%   _on_chunk_update!TextStreamReader._on_chunk_updateE        kkooe$$$   *(*c                   V ^8  d   QhRR/# r,   trailerzproto_DataStream.Trailerr   )r1   s   "r%   r2   r3   H        $ $.F $r$   c                	  "   V P                   P                  ;'       g    / V P                   n        V P                   P                  P                  VP                  4       V P                  P	                  R 4      G R j  xL
  R #  L5irH   infor   updater?   rJ   r@   rR   s   &&r%   _on_stream_close!TextStreamReader._on_stream_closeH   W     #yy3399r				##G$6$67kkood###   A=B?B Bc                   V ^8  d   QhRR/# )r,   r/   zAsyncIterator[str]r   )r1   s   "r%   r2   r3   M   s      - r$   c                	    V # rH   r   r@   s   &r%   	__aiter__TextStreamReader.__aiter__M       r$   c                   V ^8  d   QhRR/# r,   r/   r   r   )r1   s   "r%   r2   r3   P   s       r$   c                	   "   V P                   P                  4       G R j  xL
 pVf   \        hVP                  P	                  4       pV#  L*5irH   )r?   getStopAsyncIterationcontentdecode)r@   item
decodedStrs   &  r%   	__anext__TextStreamReader.__anext__P   s@     [[__&&<$$\\((*
	 's   AA+Ac                   V ^8  d   QhRR/# r,   r/   r'   r   )r1   s   "r%   r2   r3   X         n r$   c                	    V P                   # rH   r<   r_   s   &r%   rV   TextStreamReader.infoW       zzr$   c                   V ^8  d   QhRR/# rd   r   )r1   s   "r%   r2   r3   [   s       r$   c                	D   "   R pV   Rj  xL
  pW,          pK   LDT# 5i) Nr   )r@   final_stringrE   s   &  r%   read_allTextStreamReader.read_all[   s.      	" 	"%!L	"4s      r6   r<   r?   N)r   r   r    r!   rA   rL   rY   r`   rl   propertyrV   ry   r#   r   r$   r%   r*   r*   4   s:    T %$
   r$   r*   c                  "    ] tR t^bt$ R]R&   RtR# )ByteStreamInfor   namer   Nr   r   r$   r%   r~   r~   b   s    
Ir$   r~   c                  l    ] tR t^gtRR R lltR R ltR R ltR R ltR	 R
 lt]	R R l4       t
RtR# )ByteStreamReaderc               $    V ^8  d   QhRRRRRR/# )r,   r-   r.   capacityr   r/   r0   r   )r1   s   "r%   r2   ByteStreamReader.__annotate__h   s'     \ \6 \# \d \r$   c           
     	(   Wn         \        VP                  VP                  VP                  VP
                  VP                  \        VP                  4      VP                  P                  R 7      V n        \        P                  ! V4      V n        R# )r   r   r   r   r   r   r   N)r6   r~   r   r   r   r   r7   r8   r   byte_headerr   r<   r=   r>   r?   )r@   r-   r   s   &&&r%   rA   ByteStreamReader.__init__h   sp    #&&&&,,&&$$F--.##((

 ELMMRZD[r$   c                   V ^8  d   QhRR/# rD   r   )r1   s   "r%   r2   r   u   rF   r$   c                	X   "   V P                   P                  V4      G R j  xL
  R #  L5irH   rI   rK   s   &&r%   rL   !ByteStreamReader._on_chunk_updateu   rN   rO   c                   V ^8  d   QhRR/# rQ   r   )r1   s   "r%   r2   r   x   rS   r$   c                	  "   V P                   P                  ;'       g    / V P                   n        V P                   P                  P                  VP                  4       V P                  P	                  R 4      G R j  xL
  R #  L5irH   rU   rX   s   &&r%   rY   !ByteStreamReader._on_stream_closex   r[   r\   c                   V ^8  d   QhRR/# )r,   r/   zAsyncIterator[bytes]r   )r1   s   "r%   r2   r   }   s      / r$   c                	    V # rH   r   r_   s   &r%   r`   ByteStreamReader.__aiter__}   rb   r$   c                   V ^8  d   QhRR/# )r,   r/   bytesr   )r1   s   "r%   r2   r      s       r$   c                	~   "   V P                   P                  4       G R j  xL
 pVf   \        hVP                  #  L5irH   )r?   rf   rg   rh   )r@   rj   s   & r%   rl   ByteStreamReader.__anext__   s2     [[__&&<$$||	 's   =;=c                   V ^8  d   QhRR/# r,   r/   r~   r   )r1   s   "r%   r2   r      rp   r$   c                	    V P                   # rH   rr   r_   s   &r%   rV   ByteStreamReader.info   rt   r$   r{   N)r   )r   r   r    r!   rA   rL   rY   r`   rl   r|   rV   r#   r   r$   r%   r   r   g   s0    \%$
  r$   r   c                  j    ] tR t^tR/ RRRRR3R R lltR tR R ltR R	 ltR
RRR/R R lltRt	R# )BaseStreamWriterrw   Nc               8    V ^8  d   QhRRRRRRRRR	R
RRRRRR/# )r,   local_participantr   r   r   r   r   r   
str | None
total_size
int | Noner   destination_identitiesOptional[List[str]]sender_identityr   )r1   s   "r%   r2   BaseStreamWriter.__annotate__   sZ      +  -	
    !4 $r$   c	           	     	   Wn         Vf   \        \        P                  ! 4       4      p\	        \
        P
                  P                  4       P                  4       R,          4      p	\        P                  ! VV	VVVVR7      V n
        ^ V n        Wpn        T;'       g    V P                   P                  V n        RV n        R # )Ni  )r   r   r   r   r   r7   F)_local_participantr   uuiduuid4r   datetimenowr   proto_DataStreamHeaderr6   _next_chunk_index_destination_identitiesidentity_sender_identity_closed)
r@   r   r   r   r   r   r   r   r   r   s
   &&&&&&&&& r%   rA   BaseStreamWriter.__init__   s     #4DJJL)I))--/99;dBC	'..!#
 '('=$ / S S43J3J3S3Sr$   c           	     	  a"   \         P                  ! \        P                  ! V P                  V P
                  P                  P                  V P                  V P                  R 7      R7      p\        P                  P                  P                  4       p \        P                  P                  V4      oVP                  V3R l4      G Rj  xL
 p\        P                  P                  P!                  V4       VP"                  P$                  '       d    \'        VP"                  P$                  4      hR#  Lj  \        P                  P                  P!                  T4       i ; i5i))r-   local_participant_handler   r   )send_stream_headerc                ^   < V P                   P                  SP                   P                  8H  # rH   )r   async_ideresps   &r%   <lambda>/BaseStreamWriter._send_header.<locals>.<lambda>   s"    !..774;R;R;[;[[r$   N)	proto_ffi
FfiRequest
proto_roomSendStreamHeaderRequestr6   r   _ffi_handlehandler   r   r   instancequeue	subscriberequestwait_forunsubscriber   errorConnectionError)r@   reqr   cbr   s   &   @r%   _send_headerBaseStreamWriter._send_header   s    "")AA||)-)@)@)L)L)S)S'+'C'C $ 5 5	 
 ""((224	8%%--c2D+0>>[, &B $$007  &&&!""7"7"="=>> '& $$007s7   BE*7D< D:D< AE*!E*:D< <+E''E*c                   V ^8  d   QhRR/# rD   r   )r1   s   "r%   r2   r      s     > >'= >r$   c           	     	  a"   V P                   '       d   \        R V 24      h\        P                  ! \        P
                  ! VV P                  P                  P                  V P                  P                  V P                  R7      R7      p\        P                  P                  P                  4       p \        P                  P                  V4      oVP!                  V3R l4      G Rj  xL
 p\        P                  P                  P#                  V4       VP$                  P&                  '       d    \)        VP$                  P&                  4      hR#  Lj  \        P                  P                  P#                  T4       i ; i5i)z*Cannot send chunk after stream is closed: )rE   r   r   r   )send_stream_chunkc                ^   < V P                   P                  SP                   P                  8H  # rH   )r   r   r   s   &r%   r   .BaseStreamWriter._send_chunk.<locals>.<lambda>   s"    !--66$:P:P:Y:YYr$   N)r   RuntimeErrorr   r   r   SendStreamChunkRequestr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r@   rE   r   r   r   r   s   &&   @r%   _send_chunkBaseStreamWriter._send_chunk   s)    <<<!KE7STT""(??)-)@)@)L)L)S)S $ 7 7 @ @'+'C'C	
 ""((224	8%%--c2D+0>>Y, &B $$007%%%!""6"6"<"<== && $$007s7   B4F
87E /E0E 4AF
9!F
E +FF
c                   V ^8  d   QhRR/# rQ   r   )r1   s   "r%   r2   r      s     @ @+C @r$   c                	  a"   \         P                  ! \        P                  ! VV P                  P
                  P                  V P                  P                  R 7      R7      p\        P                  P                  P                  4       p \        P                  P                  V4      oVP                  V3R l4      G Rj  xL
 p\        P                  P                  P                  V4       VP                  P                   '       d    \#        VP$                  P                   4      hR#  Lj  \        P                  P                  P                  T4       i ; i5i))rR   r   r   )send_stream_trailerc                ^   < V P                   P                  SP                   P                  8H  # rH   )r   r   r   s   &r%   r   0BaseStreamWriter._send_trailer.<locals>.<lambda>   s"    !//88D<T<T<]<]]r$   N)r   r   r   SendStreamTrailerRequestr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r@   rR   r   r   r   r   s   &&   @r%   _send_trailerBaseStreamWriter._send_trailer   s    "" * C C)-)@)@)L)L)S)S $ 7 7 @ @!
 ""((224	8%%--c2D+0>>], &B $$007%%%!""8"8">">?? && $$007s7   B	E7D1 D/D1 	AE!E/D1 1+EEreasonr   c                    V ^8  d   QhRRRR/# )r,   r   r   r   r   r   )r1   s   "r%   r2   r      s     
 
c 
<T 
r$   c               	   "   V P                   '       d   \        R 4      hRV n         V P                  \        P                  ! V P
                  P                  WR7      R7      G Rj  xL
  R#  L5i)zStream already closedT)r   r   r   )rR   N)r   r   r   r   Trailerr6   r   )r@   r   r   s   &$$r%   acloseBaseStreamWriter.aclose   s[     <<<677  $,,,,00 ! 
 	
 	
s   A$A/&A-'A/)r   r   r6   r   r   r   )
r   r   r    r!   rA   r   r   r   r   r#   r   r$   r%   r   r      sG     /1 $!%6:&*8?,>0@*
B 
W[ 
 
r$   r   c                  p   a  ] tR t^tRRR/ RRRRRRRRR	R/R
 V 3R llltR R lt]R R l4       tRtV ;t	# )TextStreamWriterr   rw   r   r   Nr   reply_to_idr   r   c               <    V ^8  d   QhRRRRRRRRR	R
RRRRRRRR/	# )r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r0   r   )r1   s   "r%   r2   TextStreamWriter.__annotate__   sd     "* "*+"* 	"*
 -"* "* "*  "* !4"* $"* 
"*r$   c               	  < \         S	V `  VVVVVR VVR7       \        P                  P                  V P
                  P                  n        V'       d   W`P
                  P                  n        \        V P
                  P                  V P
                  P                  V P
                  P                  V P
                  P                  V P
                  P                  \        V P
                  P                   4      \#        V P
                  P                  P$                  4      R7      V n        \(        P*                  ! 4       V n        R# )z
text/plain)r   r   r   r5   N)superrA   r   OperationTypeCREATEr6   r:   operation_typereply_to_stream_idr'   r   r   r   r   r7   r8   r   r9   r;   r<   r=   Lock_write_lock)
r@   r   r   r   r   r   r   r   r   	__class__s
   &&$$$$$$$r%   rA   TextStreamWriter.__init__   s     	"#9+ 	 		
 3C2P2P2W2W  /:ELL$$7#ll,,ll,,,,$$ll,,**DLL334T\\55IIJ

 #<<>r$   c                   V ^8  d   QhRR/# )r,   textr   r   )r1   s   "r%   r2   r     s     2 2 2r$   c           	     	  "   V P                   ;_uu_4       GR j  xL
  \        V\        4       Fp  pTpV P                  pV ;P                  ^,          un        \        P
                  ! V P                  P                  VVR7      pV P                  V4      G R j  xL
  Kr  	  R R R 4      GR j  xL
  R #  L L L
  + GR j  xL 
 '       g   i     R # ; i5iN)r   chunk_indexrh   )	r   r   STREAM_CHUNK_SIZEr   r   Chunkr6   r   r   )r@   r   rE   rh   r   	chunk_msgs   &&    r%   writeTextStreamWriter.write  s     #####D*;<"44&&!+&,22"ll44 +#	
 &&y111 = $## 2 $###s]   CB6CA<B<B8
B<$C/B:0C8B<:C<C	C
C	C		Cc                   V ^8  d   QhRR/# ro   r   )r1   s   "r%   r2   r   *  rp   r$   c                	    V P                   # rH   rr   r_   s   &r%   rV   TextStreamWriter.info)  rt   r$   r<   r   
r   r   r    r!   rA   r   r|   rV   r#   __classcell__r   s   @r%   r   r      sm    "* 	"*
 02"* !%"* "&"* #'"* 7;"* '+"* "*H2  r$   r   c                  l   a  ] tR tRtRRRRRRRRRR	R
R/R V 3R llltR R lt]R R l4       tRtV ;t	# )ByteStreamWriteri.  r   rw   r   Nr   r   r   zapplication/octet-streamr   c               <    V ^8  d   QhRRRRRRRRRR	R
RRRRRRR/	# )r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r0   r   )r1   s   "r%   r2   ByteStreamWriter.__annotate__/  sd     * *+* 	*
 * -* * * * !4* 
*r$   c          
     	  < \         S	V `  VVVVVVVR 7       W P                  P                  n        \        V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  \        V P                  P                  4      V P                  P                  P                  R7      V n        \        P                  ! 4       V n        R# ))r   r   r   N)r   rA   r6   r   r   r~   r   r   r   r   r7   r8   r   r<   r=   r   r   )
r@   r   r   r   r   r   r   r   r   r   s
   &&$$$$$$$r%   rA   ByteStreamWriter.__init__/  s     	#9 	 	
 )-  %#ll,,ll,,,,$$ll,,**DLL334))..

 #<<>r$   c                   V ^8  d   QhRR/# )r,   datar   r   )r1   s   "r%   r2   r	  P  s     , , ,r$   c           	     	  "   V P                   ;_uu_4       GR j  xL
  \        ^ \        V4      \        4       Uu. uF  q!W"\        ,            NK  	  ppV Fl  p\        P
                  ! V P                  P                  V P                  VR7      pV P                  V4      G R j  xL
  V ;P                  ^,          un        Kn  	  R R R 4      GR j  xL
  R #  Lu upi  L: L  + GR j  xL 
 '       g   i     R # ; i5ir   )
r   rangelenr   r   r   r6   r   r   r   )r@   r  ichunked_datarE   r   s   &&    r%   r   ByteStreamWriter.writeP  s     ####9>q#d)M^9_9_AQ../9_   &,22"ll44 $ 6 6!	
 &&y111&&!+& & $## 2 $###sh   DCDC$CAC$%C 
&!C$DC"DC$"D$C>	*C-+
C>	6C>	8	Dc                   V ^8  d   QhRR/# r   r   )r1   s   "r%   r2   r	  `  rp   r$   c                	    V P                   # rH   rr   r_   s   &r%   rV   ByteStreamWriter.info_  rt   r$   r  r  r  s   @r%   r  r  .  sc    *
 * 04* !%* "&* 4* 7;* *B,  r$   r  ))
__future__r   r=   r   r   collections.abcr   dataclassesr   typingr   r   r   r	   _proto.room_pb2r
   r   _protor   r   r   r   _ffi_clientr   _utilsr   r   participantr   r   r   r'   r*   r~   r   r   r   r  r   TextStreamHandlerByteStreamHandlerr   r$   r%   <module>r"     s    #    $ ! 6 6 ; ( * "    -  ) ) ) ^  + +\ ^  " "Jh
 h
V4' 4n3' 3l .4d:; .4d:; r$   