+
    ~j"                       ^ RI Ht ^ RIt^ RIt^ RIHtHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ RIHtHtHt ^ RIHtHtHt ^ R	IHt ^R
IHt ^RIHtHt ^RIHt ^RIHtH t H!t! ^RI"H#t#H$t$H%t% ] ! R R4      4       t&] ! R R4      4       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(,          t/]! R4      t0] ! R  R!4      4       t1] ! R" R#4      4       t2] ! R$ R%4      4       t3 ! R& R']]Ph                  ]/]0,          ,          ]]0,          4      t5R# ))    )annotationsN)ABCabstractmethod)AsyncIterable	Awaitable)	dataclass)TracebackType)GenericLiteralTypeVar)	BaseModel
ConfigDictField)rtc)logger)	NOT_GIVEN
NotGivenOr)is_given)ChatContextChatItemFunctionCall)Tool
ToolChoiceToolContextc                      ] tR t^tRtR# )InputSpeechStartedEvent N__name__
__module____qualname____firstlineno____static_attributes__r       p/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/llm/realtime.pyr   r          r$   r   c                  "    ] tR t^t$ R]R&   RtR# )InputSpeechStoppedEventbooluser_transcription_enabledr   Nr   r    r!   r"   __annotations__r#   r   r$   r%   r(   r(      s     $$r$   r(   c                  @    ] tR t^ t$ R]R&   R]R&   R]R&   R]R&   R	tR
# )MessageGenerationstr
message_idzAsyncIterable[str]text_streamzAsyncIterable[rtc.AudioFrame]audio_streamz)Awaitable[list[Literal['text', 'audio']]]
modalitiesr   Nr+   r   r$   r%   r.   r.       s    O##//99r$   r.   c                  F    ] tR t^(t$ R]R&   R]R&   R]R&    RtR]R	&   R
tR# )GenerationCreatedEventz AsyncIterable[MessageGeneration]message_streamzAsyncIterable[FunctionCall]function_streamr)   user_initiatedN
str | Noneresponse_idr   )r   r    r!   r"   r,   r:   r#   r   r$   r%   r5   r5   (   s$    4400N"K"Wr$   r5   c                  t    ] tR t^2t$ ]! RR7      tRtR]R&   R]R&   R]R	&   ]! R
RR7      t	R]R&   R]R&   Rt
R# )RealtimeModelErrorT)arbitrary_types_allowedrealtime_model_errorzLiteral['realtime_model_error']typefloat	timestampr/   label.)exclude	Exceptionerrorr)   recoverabler   N)r   r    r!   r"   r   model_configr?   r,   r   rE   r#   r   r$   r%   r<   r<   2   s9    d;L,BD
)BJS$/E9/r$   r<   c                      ] tR t^;t$ R]R&    R]R&    R]R&    R]R&    R]R&    R]R&    RtR]R	&    RtR]R
&    RtR]R&    RtR]R&    Rt	R]R&   Rt
R# )RealtimeCapabilitiesr)   message_truncationturn_detectionuser_transcriptionauto_tool_reply_generationaudio_outputmanual_function_callsFmutable_chat_contextmutable_instructionsmutable_toolsper_response_tool_choicesupports_sayr   N)r   r    r!   r"   r,   rP   rQ   rR   rS   rT   r#   r   r$   r%   rI   rI   ;   s~    RZA $$X=P!&$&=!&$&=M46%*d*HL$r$   rI   c                  .   a  ] tR t^YtR V 3R lltRtV ;t# )RealtimeErrorc                    V ^8  d   QhRRRR/# )   messager/   returnNoner   )formats   "r%   __annotate__RealtimeError.__annotate__Z   s     " " " "r$   c                	&   < \         SV `  V4       R # N)super__init__)selfrY   	__class__s   &&r%   rb   RealtimeError.__init__Z   s    !r$   r   )r   r    r!   r"   rb   r#   __classcell__rd   s   @r%   rV   rV   Y   s    " "r$   rV   c                      ] tR t^^tR R lt]R R l4       t]R R l4       t]R R l4       t]R	 R
 l4       t	]
R R l4       t]
R R l4       tR R ltR R ltRtR# )RealtimeModelc                    V ^8  d   QhRRRR/# )rX   capabilitiesrI   rZ   r[   r   )r\   s   "r%   r]   RealtimeModel.__annotate___   s     G G(< G Gr$   c               	v    Wn         \        V 4      P                   R \        V 4      P                   2V n        R# ).N)_capabilitiesr?   r    r   _label)rc   rk   s   &$r%   rb   RealtimeModel.__init___   s0    )d../qd1D1D0EFr$   c                   V ^8  d   QhRR/# rX   rZ   r/   r   )r\   s   "r%   r]   rl   d   s      s r$   c                	    R # unknownr   rc   s   &r%   modelRealtimeModel.modelc       r$   c                   V ^8  d   QhRR/# rs   r   )r\   s   "r%   r]   rl   h   s      # r$   c                	    R # ru   r   rw   s   &r%   providerRealtimeModel.providerg   rz   r$   c                   V ^8  d   QhRR/# )rX   rZ   rI   r   )r\   s   "r%   r]   rl   l   s     " "2 "r$   c                	    V P                   # r`   )ro   rw   s   &r%   rk   RealtimeModel.capabilitiesk   s    !!!r$   c                   V ^8  d   QhRR/# rs   r   )r\   s   "r%   r]   rl   p   s      s r$   c                	    V P                   # r`   )rp   rw   s   &r%   rB   RealtimeModel.labelo   s    {{r$   c                   V ^8  d   QhRR/# )rX   rZ   RealtimeSessionr   )r\   s   "r%   r]   rl   t   s    ---r$   c                	    R # r`   r   rw   s   &r%   sessionRealtimeModel.sessions   s    *-r$   c                   V ^8  d   QhRR/# rX   rZ   r[   r   )r\   s   "r%   r]   rl   w       ''d'r$   c                	   "   R # 5ir`   r   rw   s   &r%   acloseRealtimeModel.aclosev        $'   c                   V ^8  d   QhRR/# rX   rZ   ri   r   )r\   s   "r%   r]   rl   y   s      - r$   c                	   "   V # 5ir`   r   rw   s   &r%   
__aenter__RealtimeModel.__aenter__y   s
     r   c               (    V ^8  d   QhRRRRRRRR/# )	rX   exc_typeztype[BaseException] | NoneexczBaseException | Noneexc_tbzTracebackType | NonerZ   r[   r   )r\   s   "r%   r]   rl   |   s2      , " %	
 
r$   c                	B   "   V P                  4       G R j  xL
  R #  L5ir`   )r   )rc   r   r   r   s   &&&&r%   	__aexit__RealtimeModel.__aexit__|   s      kkms   )ro   rp   N)r   r    r!   r"   rb   propertyrx   r}   rk   rB   r   r   r   r   r   r#   r   r$   r%   ri   ri   ^   s    G     " "   - -' ' r$   ri   TEventc                  H    ] tR t^t$ R]R&    R]R&    R]R&   RtR]R&   R	tR# )
InputTranscriptionCompletedr/   item_id
transcriptr)   is_finalNzfloat | None
confidencer   )r   r    r!   r"   r,   r   r#   r   r$   r%   r   r      s$    LO'N#J#Vr$   r   c                      ] tR t^tRtR# )RealtimeSessionReconnectedEventr   Nr   r   r$   r%   r   r      r&   r$   r   c                  ,    ] tR t^t$ R]R&   R]R&   RtR# )RemoteItemAddedEventr9   previous_item_idr   itemr   Nr+   r   r$   r%   r   r      s      
Nr$   r   c                    a  ] tR t^tR V 3R lltR R lt]R R l4       t]]R R l4       4       t	]]R	 R
 l4       4       t
]R R l4       t]R R l4       t]R R l4       t]R]/R R ll4       t]R R l4       t]R R l4       t]R]R]R]/R R ll4       t]R R l4       t]R R l4       t]R  R! l4       t]R"]/R# R$ ll4       t]R% R& l4       tR]R']R]/R( R) lltR* R+ ltR, R- ltR.tV ;t# )/r   c                    V ^8  d   QhRRRR/# )rX   realtime_modelri   rZ   r[   r   )r\   s   "r%   r]   RealtimeSession.__annotate__   s     . .} . .r$   c                	0   < \         SV `  4        Wn        R # r`   )ra   rb   _realtime_model)rc   r   rd   s   &&r%   rb   RealtimeSession.__init__   s    -r$   c                    V ^8  d   QhRRRR/# )rX   acquire_timer@   rZ   r[   r   )r\   s   "r%   r]   r      s     
 
 
$ 
r$   c                   ^RI HpHp V P                  RV! R\        P                  ! 4       VRVP                  4       VP                  4       V! V P                  P                  V P                  P                  R7      R7      4       R# )zIReport connection timing as a RealtimeModelMetrics event with zero usage.)MetadataRealtimeModelMetricsmetrics_collected F)
model_namemodel_provider)
request_idrA   r   connection_reusedinput_token_detailsoutput_token_detailsmetadataN)
metrics.baser   r   emittimeInputTokenDetailsOutputTokenDetailsr   rx   r}   )rc   r   r   r   s   &&  r%   _report_connection_acquired+RealtimeSession._report_connection_acquired   sl    A		 ))+)"'$8$J$J$L%9%L%L%N!#3399#'#7#7#@#@	
r$   c                   V ^8  d   QhRR/# r   r   )r\   s   "r%   r]   r      s     $ $ $r$   c                	    V P                   # r`   r   rw   s   &r%   r   RealtimeSession.realtime_model   s    ###r$   c                   V ^8  d   QhRR/# )rX   rZ   r   r   )r\   s   "r%   r]   r      s    **+*r$   c                	    R # r`   r   rw   s   &r%   chat_ctxRealtimeSession.chat_ctx   s    '*r$   c                   V ^8  d   QhRR/# )rX   rZ   r   r   )r\   s   "r%   r]   r      s    ''{'r$   c                	    R # r`   r   rw   s   &r%   toolsRealtimeSession.tools   s    $'r$   c                    V ^8  d   QhRRRR/# )rX   instructionsr/   rZ   r[   r   )r\   s   "r%   r]   r      s    GGcGdGr$   c                	   "   R # 5ir`   r   )rc   r   s   &&r%   update_instructions#RealtimeSession.update_instructions   s     DGr   c                    V ^8  d   QhRRRR/# )rX   r   r   rZ   r[   r   )r\   s   "r%   r]   r      s      #	r$   c                	   "   R # 5ir`   r   )rc   r   s   &&r%   update_chat_ctxRealtimeSession.update_chat_ctx   s
      r   c                    V ^8  d   QhRRRR/# )rX   r   z
list[Tool]rZ   r[   r   )r\   s   "r%   r]   r      s    @@
@t@r$   c                	   "   R # 5ir`   r   )rc   r   s   &&r%   update_toolsRealtimeSession.update_tools   s     =@r   tool_choicec                    V ^8  d   QhRRRR/# )rX   r   zNotGivenOr[ToolChoice | None]rZ   r[   r   )r\   s   "r%   r]   r      s    dd-Jd[_dr$   c               	    R # r`   r   )rc   r   s   &$r%   update_optionsRealtimeSession.update_options   s    adr$   c                    V ^8  d   QhRRRR/# )rX   framezrtc.AudioFramerZ   r[   r   )r\   s   "r%   r]   r          <<<4<r$   c                	    R # r`   r   rc   r   s   &&r%   
push_audioRealtimeSession.push_audio       9<r$   c                    V ^8  d   QhRRRR/# )rX   r   zrtc.VideoFramerZ   r[   r   )r\   s   "r%   r]   r      r   r$   c                	    R # r`   r   r   s   &&r%   
push_videoRealtimeSession.push_video   r   r$   r   r   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   NotGivenOr[str]r   zNotGivenOr[ToolChoice]r   NotGivenOr[list[Tool]]rZ   &asyncio.Future[GenerationCreatedEvent]r   )r\   s   "r%   r]   r      s4     5 5 &5 ,	5
 &5 
05r$   c               	    R # r`   r   )rc   r   r   r   s   &$$$r%   generate_replyRealtimeSession.generate_reply   s     25r$   c                   V ^8  d   QhRR/# r   r   )r\   s   "r%   r]   r      r   r$   c                	    R # r`   r   rw   s   &r%   commit_audioRealtimeSession.commit_audio   s    $'r$   c                   V ^8  d   QhRR/# r   r   )r\   s   "r%   r]   r      s    &&T&r$   c                	    R # r`   r   rw   s   &r%   clear_audioRealtimeSession.clear_audio   s    #&r$   c                   V ^8  d   QhRR/# r   r   )r\   s   "r%   r]   r      s    $$4$r$   c                	    R # r`   r   rw   s   &r%   	interruptRealtimeSession.interrupt   s    !$r$   audio_transcriptc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rX   r0   r/   r3   zlist[Literal['text', 'audio']]audio_end_msintr  r   rZ   r[   r   )r\   s   "r%   r]   r      s>        3	
  * 
r$   c               	    R # r`   r   )rc   r0   r3   r  r  s   &$$$$r%   truncateRealtimeSession.truncate   s     r$   c                   V ^8  d   QhRR/# r   r   )r\   s   "r%   r]   r     r   r$   c                	   "   R # 5ir`   r   rw   s   &r%   r   RealtimeSession.aclose  r   r   r   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r   r   zNotGivenOr[ChatContext]r   r   rZ   r[   r   )r\   s   "r%   r]   r     s4     ? ? &? *	?
 &? 
?r$   c               	  "   \        V4      '       d    V P                  V4      G R j  xL
  \        V4      '       d    V P                  V4      G R j  xL
  \        V4      '       d    V P                  V4      G R j  xL
  R # R #  L^  \         d    \        P                  ! R4        Li ; i L\  \         d    \        P                  ! R4        L}i ; i LZ  \         d    \        P                  ! R4        R # i ; i5i)Nz!failed to update the instructionszfailed to update the chat_ctxzfailed to update the tools)r   r   rV   r   	exceptionr   r   )rc   r   r   r   s   &$$$r%   _update_sessionRealtimeSession._update_session  s      L!!F..|<<< HB**8444 E???''...  =  F  !DEF
 5  B  !@AB
 /  ?  !=>?s   DB
 BB
 D B3 B1B3 D+C ?C C DB
 
!B.+D-B..D1B3 3!CDCDC !D=D DDc                   V ^8  d   QhRR/# r   r   )r\   s   "r%   r]   r     s      T r$   c                    R# )z1notifies the model that user activity has startedNr   rw   s   &r%   start_user_activity#RealtimeSession.start_user_activity  s    r$   c                    V ^8  d   QhRRRR/# )rX   textzstr | AsyncIterable[str]rZ   r   r   )r\   s   "r%   r]   r   "  s     
 
&
 
0
r$   c                	D    \        \        V 4      P                   R 24      h)z2 does not implement say(). use a TTS model instead)NotImplementedErrorr?   r   )rc   r  s   &&r%   sayRealtimeSession.say"  s'     "Dz""##UV
 	
r$   r   )r   r    r!   r"   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r   r  r  r  r#   rf   rg   s   @r%   r   r      ss   . .
( $ $ *  *'  'G G  @ @dYd d< << <5 )25 /8	5
 )25 5 ' ' & & $ $  -6  ' '? )2? -6	?
 )2?2
 
r$   r   )input_speech_startedinput_speech_stopped#input_audio_transcription_completedgeneration_createdsession_reconnectedr   remote_item_addedrE   )6
__future__r   asyncior   abcr   r   collections.abcr   r   dataclassesr   typesr	   typingr
   r   r   pydanticr   r   r   livekitr   logr   r   r   utilsr   chat_contextr   r   r   tool_contextr   r   r   r   r(   r.   r5   r<   rI   rD   rV   ri   
EventTypesr   r   r   r   EventEmitterr   r   r$   r%   <module>r3     sr   "   # 4 !  , , 1 1   )  = = 7 7 	 	 	 % % % : : : X X X    :"I "
$ $N 	
 
	 W W W 	 	 	   

c3++J,?@'&/ 
r$   