+
    ~j}                    .   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
Ht ^ RIHtHt ^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^R	IHtHt ^R
IHtHtH t H!t!H"t"Ht# ^RI$H%t% ^RI&H't' ^RI(H)t)H*t* ^RI+H,t,H-t-H.t. ^RIH/t/H0t0 ^RI1H2t2 ^RIH3t3 ^RI4H5t5 ^RI6H7t7 ]'       d   ^RI8H9t9H:t: ^RI;H<t< ^RI6H=t= ] ! R R]4      4       t>] ! R R4      4       t?RRRR/R R llt@]P                  ! ]'R7      ]*P                  ! R4      RER  R! ll4       4       tC] ! R" R#4      4       tDRRRR/R$ R% lltE]P                  ! ]'R7      RER& R' ll4       tF] ! R( R)4      4       tGR* R+ ltH]P                  ! ]'R7      R, R- l4       tI] ! R. R/4      4       tJR0 R1 ltK]P                  ! ]'R7      R2 R3 l4       tL] ! R4 R54      4       tMR6 R7 ltN]P                  ! ]'R7      R8 R9 l4       tO] ! R: R;4      4       tPR< R= ltQR>tR R? R@ ltSRA RB ltTRC RD ltUR# )F    )annotationsN)AsyncGeneratorAsyncIterableCallableSequence)	dataclassfield)TYPE_CHECKINGAnyLiteralProtocolruntime_checkable)trace)ValidationError)rtc)llmutils)	ChatChunkChatContextStopResponseToolContext	ToolErrorr   )Instructions)logger)trace_typestracer)USERDATA_TIMED_TRANSCRIPTFlushSentinel
NotGivenOr)aiois_given)	itertools)io)SpeechHandle)_apply_text_transforms)AgentModelSettings)AgentSession)TextTransformsc                  "    ] tR t^*tR R ltRtR# )_ACloseablec                   V ^8  d   QhRR/# )   returnr    )formats   "t/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/voice/generation.py__annotate___ACloseable.__annotate__,   s    &&c&    c                	   "   R # 5iNr/   )selfs   &r1   aclose_ACloseable.aclose,   s     3s   r/   N)__name__
__module____qualname____firstlineno__r8   __static_attributes__r/   r4   r1   r+   r+   *   s    &&r4   r+   c                      ] tR t^/t$ R]R&   R]R&   RtR]R&   ]! ]R7      tR	]R
&   ]! ]	R7      t
R]R&   ]! R R7      tR]R&   ]! ]P                  R7      tR]R&   RtR]R&   RtR# )_LLMGenerationDatazaio.Chan[str | FlushSentinel]text_chzaio.Chan[llm.FunctionCall]function_ch strgenerated_text)default_factoryzlist[llm.FunctionCall]generated_functionszdict[str, Any]generated_extrac                 	.    \         P                  ! R 4      # )item_)r   	shortuuidr/   r4   r1   <lambda>_LLMGenerationData.<lambda>6   s    EOOG,Dr4   idasyncio.Future[None]started_futNfloat | Nonettftr/   )r:   r;   r<   r=   __annotations__rE   r	   listrG   dictrH   rN   asyncioFuturerP   rR   r>   r/   r4   r1   r@   r@   /   sf    **++NC272M/M&+D&AO^A$DEBE(-gnn(MK%MD,r4   r@   modelproviderc               4    V ^8  d   QhRRRRRRRRR	R
RR
RR/# )r-   node
io.LLMNodechat_ctxr   tool_ctxr   model_settingsr'   rX   
str | NonerY   r.   z-tuple[asyncio.Task[bool], _LLMGenerationData]r/   )r0   s   "r1   r2   r2   ;   sP      
  	
 "   3r4   c                  aa	a
 \         P                  \        \        ,          ,          ! 4       o
\         P                  \        P
                  ,          ! 4       o	\        S
S	R 7      o\        P                  ! \        WW#SWE4      4      pVP                  V
3R l4       VP                  V	3R l4       R V3R llpVP                  V4       VS3# ))rA   rB   c                $   < SP                  4       # r6   close)_rA   s   &r1   rL   'perform_llm_inference.<locals>.<lambda>J   s    r4   c                $   < SP                  4       # r6   rc   )re   rB   s   &r1   rL   rf   K   s    ):):)<r4   c                    V ^8  d   QhRRRR/# r-   re   zasyncio.Task[bool]r.   Noner/   )r0   s   "r1   r2   +perform_llm_inference.<locals>.__annotate__M   s     . .& .4 .r4   c                   < SP                   P                  4       '       g   SP                   P                  R 4       R # R # r6   )rP   done
set_result)re   datas   &r1   _cleanup'perform_llm_inference.<locals>._cleanupM   s1    $$&&''- 'r4   )r    ChanrD   r   r   FunctionCallr@   rV   create_task_llm_inference_taskadd_done_callback)r[   r]   r^   r_   rX   rY   llm_taskrp   ro   rB   rA   s   $$$$$$  @@@r1   perform_llm_inferencerx   ;   s     hhs]*+-G((3++,.Kg;GD""DHdE\H 89<=. . x(T>r4   llm_nodec               8    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'   ro   r@   rX   r`   rY   r.   boolr/   )r0   s   "r1   r2   r2   X   sb     v v
vv v "	v
 v v v 
vr4   c                  "   \         P                  ! 4       p\        P                  ! 4       pVP                  P                  R 4       VP                  VP                  rVP                  4       p\        P                  \        P                  ! VP                  RRRRR7      4      \        P                  \        VP                   P#                  4       4      \        P$                  VP&                   Uu. uF  p\)        V4      P*                  NK  	  up\        P,                  VP.                   Uu. uF  p\)        V4      P*                  NK  	  up/pV'       d   W^\        P0                  &   V'       d   Wn\        P2                  &   VP5                  V4       V ! WV4      p\6        P8                  ! V4      '       d   VG R j  xL
 pVP;                  V4       VP=                  4       p\?        V\@        4      '       dD   Wn!        V	PE                  V4       VPG                  \        PH                  VPB                  4       R# \?        V\J        4      '       g   R#  V  R j  xL
  pVPL                  f"   \         P                  ! 4       V,
          Vn&        \?        V\@        4      '       d-   V;PB                  V,          un!        V	PE                  V4       K{  \?        V\N        4      '       Ed   VPP                  '       g   K  VPP                  PR                  '       Ed   VPP                  PR                   F  pVP(                  R8w  d   K  VPU                  VPV                  4      f)   VV8w  d"   VP;                  V4       VP=                  4       p\X        PZ                  ! VP\                   R\_        VP`                  4       2VPb                  VPV                  VPd                  VPf                  ;'       g    / R7      pVP`                  Pi                  V4       V
PE                  V4       K  	  VPP                  Pf                  '       d0   VPj                  Pm                  VPP                  Pf                  4       VPP                  Pn                  '       dV   V;PB                  VPP                  Pn                  ,          un!        V	PE                  VPP                  Pn                  4       EK  EK  \?        V\p        4      '       d   V	PE                  V4       EK  \r        Pt                  ! R\)        V4       24       EK  u upi u upi  EL ELED \?        T\v        4      '       d   TPy                  4       G R j  xL 
  M5  \?        T\v        4      '       d   TPy                  4       G R j  xL 
  i i ; iTPG                  \        PH                  TPB                  4       TPG                  \        Pz                  \        P                  ! TP`                   Uu. uF  pTP}                  RR	0R
7      NK  	  Mu upi up4      4       TPL                  e+   TPG                  \        P~                  TPL                  4       R# 5i)NT)exclude_audioexclude_imageexclude_timestampexclude_metricsFfunctionz/fnc_)rN   call_idname	argumentsextraz&LLM node returned an unexpected type: type
created_at)exclude)@timeperf_counterr   get_current_spanrP   rn   rA   rB   flattenr   ATTR_CHAT_CTXjsondumpsto_dictATTR_FUNCTION_TOOLSrT   function_toolskeysATTR_PROVIDER_TOOLSprovider_toolsr   r:   ATTR_TOOL_SETStoolsetsATTR_GEN_AI_REQUEST_MODELATTR_GEN_AI_PROVIDER_NAMEset_attributesrV   iscoroutineupdate_toolscopy
isinstancerD   rE   send_nowaitset_attributeATTR_RESPONSE_TEXTr   rR   r   delta
tool_callsget_function_toolr   r   rs   rN   lenrG   r   r   r   appendrH   updatecontentr   r   warningr+   r8   ATTR_RESPONSE_FUNCTION_CALLS
model_dumpATTR_RESPONSE_TTFT)r[   r]   r^   r_   ro   rX   rY   
start_timecurrent_spanrA   rB   toolstooltool_setattrsry   tools_snapshotchunkfnc_callfncs   &&&&&&&             r1   ru   ru   V   s     ""$J))+L%<<)9)9[E 	!!4::"""& $	  $
 	''h.E.E.J.J.L)M''(JaJa)bJa$$t**=*=Ja)b""XM^M^$_M^T(^%<%<M^$_E 7<k3347?k334&H^4H8$$!>
 % ZZ\N(C  &H%"";#A#A4CVCVWh..4$# 0	 0	%yy  --/*<	 %%%##u,###E*E9--{{{;;))) % 6 699
2$ %66tyyAI % 7$11%8-2ZZ\N#&#3#3"&''%D4L4L0M/NO$(LL!%&*nn"&**"2"2$ 0077A#//9) !7, ;;$$$((//0A0AB;;&&&''5;;+>+>>'''(;(;< ' E=11##E*<T%[MJY *c$_ "&0	8d h,,//### h,,//### - {==t?R?RS00

GKG_G_`G_S^^V\$:^;G_`	
 yy"";#A#A499Ms   C2Y?4T=Y?1UY?Y?5AY?UBY?V  U U
!U$BV   V  CV  7AV  A
V  B'V  =Y?
UV  )Y?9U<:Y? *V2*V-+V22A%Y?X54AY?c                  :    ] tR t^t$ R]R&   R]R&   RtR]R&   RtR# )	_TTSGenerationDatazaio.Chan[rtc.AudioFrame]audio_chz/asyncio.Future[aio.Chan[io.TimedString] | None]timed_texts_futNrQ   ttfbr/   )r:   r;   r<   r=   rS   r   r>   r/   r4   r1   r   r      s    &&DDD,r4   r   c               4    V ^8  d   QhRRRRRRRRR	R
RR
RR/# )r-   r[   
io.TTSNodeinput"AsyncIterable[str | FlushSentinel]r_   r'   text_transformsSequence[TextTransforms] | NonerX   r`   rY   r.   z-tuple[asyncio.Task[bool], _TTSGenerationData]r/   )r0   s   "r1   r2   r2      sP      
 . "	
 5   3r4   c                  a	a
 \         P                  \        P                  ,          ! 4       o	\        P
                  \         P                  \        P                  ,          R ,          ,          ! 4       o
\        S	S
R7      p\        P                  ! \        WW&W4V4      4      pR V	V
3R llpVP                  V4       Wv3# )N)r   r   c                    V ^8  d   QhRRRR/# ri   r/   )r0   s   "r1   r2   +perform_tts_inference.<locals>.__annotate__   s      - $ r4   c                   < SP                  4       '       d)   SP                  4       ;p'       d   VP                  4        SP                  4        R # r6   )rm   resultrd   )re   timed_text_chr   r   s   & r1   _inference_done.perform_tts_inference.<locals>._inference_done   s;    !!8N8N8P'P}'P!r4   )r    rr   r   
AudioFramerV   rW   r#   TimedStringr   rt   _tts_inference_taskrv   )r[   r   r_   r   rX   rY   ro   tts_taskr   r   r   s   $$$$$$   @@r1   perform_tts_inferencer      s     xx')HnnSXXbnn%=%DEGOxQD""DW_`H  />r4   c               8    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'   ro   r   r   r   rX   r`   rY   r.   r{   r/   )r0   s   "r1   r2   r2      sb     Z Z
Z-Z "Z 	Z
 5Z Z Z 
Zr4   c                  a aaaaaaaaaa"   R oSP                   SP                  uoo\        P                  ! R4      R VVVVV VVVV3	R ll4       p\        P
                  ! V^4      oRoR VV3R llpR VV3R llp	\        P                  ! V! 4       4      p
R	pR p S'       g    V	! 4       pY! W4      G R j  xL
 ,          pK'   \        P                  ! V
4      G R j  xL
  Ve   VP                  4       G R j  xL
  SP                  4       G R j  xL
  V^ 8  #  Ld L? L% L  \        P                  ! T
4      G R j  xL 
  Te   TP                  4       G R j  xL 
  SP                  4       G R j  xL 
  i ; i5i)
Ntts_nodec               $    V ^8  d   QhRRRRRR/# )r-   r   AsyncIterable[str]pushed_durationfloatr.   r/   )r0   s   "r1   r2   )_tts_inference_task.<locals>.__annotate__  s#     + +); +e +X] +r4   c                  <	"   \         P                  ! 4       pS
'       d!   VP                  \        P                  S
4       S'       d!   VP                  \        P
                  S4       S'       d   \        V S4      p S! V S4      p\        P                  ! V4      '       d   VG R j  xL
 pRp\        V\        4      '       g*   SP                  4       '       g   SP                  R 4       V# SP                  4       '       d   SP                  4       pM;\        P                  \         P"                  ,          ! 4       pSP                  V4       V  R j  xL
  pSeo   S	P$                  fa   \&        P(                  ! 4       S,
          S	n        \         P                  ! 4       pVP                  \        P*                  S	P$                  4       Ve   VP,                  P/                  \0        . 4       F  p\        V\         P"                  4      '       g   K%  \3        VP4                  4      '       d   V;P4                  V,          un        \3        VP6                  4      '       d   V;P6                  V,          un        VP9                  V4       K  	  SP9                  V4       WFP:                  ,          pEKh   EL ELgEDiT# 5i)N        )r   r   r   r   r   r   r%   rV   r   r   r   rm   rn   r   r    rr   r#   r   r   r   r   ATTR_RESPONSE_TTFBuserdatagetr   r!   r   end_timer   duration)r   r   r   r   audio_durationr   audio_frametextr   ro   rX   r_   r[   rY   r   r   r   s   &&      r1   _tts_node_inference0_tts_inference_task.<locals>._tts_node_inference  s     --/&&{'L'LeT&&{'L'LhW*5/BE~.x((%~H #(M22"''))**40!!!!+224MHHR^^46M&&}5!) 	3 	3+%$))*; --/*<	$557**;+I+I499U('00445NPRSD!$77#DOO44 OO>O#DMM22 MM_<M%11$7 T   -222N= &	3" s]   AK	'K10K"K'J9(1K(KAKJ?J<J?B8KB$K<J??KFc                   V ^8  d   QhRR/# )r-   r.   rj   r/   )r0   s   "r1   r2   r   2  s      4 r4   c                    <"   S^ ,            Rj  xL
  p \        V \        4      '       d   K"  \        P                  ! 4       o R#  L5D6R# 5i)r   N)r   r   r   r   )r   	input_teer   s    r1   _get_start_time,_tts_inference_task.<locals>._get_start_time2  s>     $Q< 	 	%e]33!..0
	<s*   
AA	AA	AAA		Ac                   V ^8  d   QhRR/# )r-   r.   zAsyncGenerator[str, None]r/   )r0   s   "r1   r2   r   9  s      "; r4   c                   <"   S^,            Rj  xL
  p \        V \        4      '       d    R# V 5x  K*   L%D&RoR# 5i)   NT)r   r   )r   finishedr   s    r1   _input_segment+_tts_inference_task.<locals>._input_segment9  s<     $Q< 	 	%%//K	< s   
>979">9>r   )r   r   r   start_as_current_spanr"   teerV   rt   r    gracefully_cancelr8   )r[   r   r_   ro   r   rX   rY   r   r   r   _start_time_taskr   input_segmentr   r   r   r   r   s   f&fffff      @@@@@r1   r   r      sW      $J $t/C/CHo!!*-+ + .+Z eQ'IH   **?+<= O6:M!*,M%8%XXXO  ##$4555$&&(((   Q  Y5(  ##$4555$&&(((   s   BF D' (D' :D;D' F!D!"F=D#>FD%	FD' !F#F%F'E>EE>E!E>7E:8E>>Fc                  ,    ] tR tRt$ R]R&   R]R&   RtR# )_TextOutputiR  rD   r   rO   first_text_futr/   Nr:   r;   r<   r=   rS   r>   r/   r4   r1   r   r   R  s    
I((r4   r   c               $    V ^8  d   QhRRRRRR/# )r-   text_outputio.TextOutput | Nonesourcer   r.   z&tuple[asyncio.Task[None], _TextOutput]r/   )r0   s   "r1   r2   r2   X  s$      (2D+r4   c                    \        R \        P                  ! 4       R7      p\        P                  ! \	        WV4      4      pW23# )rC   )r   r   )r   rV   rW   rt   _text_forwarding_task)r   r   outtasks   $$  r1   perform_text_forwardingr   X  s7     2gnn.>
?C4[#NOD9r4   c               (    V ^8  d   QhRRRRRRRR/# )	r-   r   r   r   r   r   r   r.   rj   r/   )r0   s   "r1   r2   r2   a  s0        %   
  
	 r4   c                :  "    V  R j  xL
  pV;P                   V,          un         V e   V P                  V4      G R j  xL
  VP                  P                  4       '       d   Kb  VP                  P	                  R 4       K   Lz LED} \        T\        4      '       d   TP                  4       G R j  xL 
  T e   T P                  4        R # R #   \        T\        4      '       d   TP                  4       G R j  xL 
  T e   T P                  4        i i ; i5ir6   )	r   capture_textr   rm   rn   r   r+   r8   flush)r   r   r   r   s   &&& r1   r   r   `  s      ! 	4 	4%HHH&!..u555%%**,,""--d3	4 6 " fk**--/!!" # fk**--/!!" #sl   DC B	BB	3C B!C (C B	C 	C )D4B75D*D<C?=DDc                  H    ] tR tRt$ R]R&   R]R&    RtR]R&   R	 R
 ltRtR# )_AudioOutputiv  zlist[rtc.AudioFrame]audiozasyncio.Future[float]first_frame_futNrQ   started_forwarding_atc                    V ^8  d   QhRRRR/# )r-   evzio.PlaybackStartedEventr.   rj   r/   )r0   s   "r1   r2   _AudioOutput.__annotate__~  s     ; ;+B ;t ;r4   c                	    V P                   P                  4       '       g(   V P                   P                  VP                  4       R # R # r6   )r  rm   rn   r   )r7   r
  s   &&r1   _resolve_first_frame_fut%_AudioOutput._resolve_first_frame_fut~  s4    ##((**  ++BMM: +r4   r/   )r:   r;   r<   r=   rS   r  r  r>   r/   r4   r1   r  r  v  s&    **Q*.<.; ;r4   r  c               $    V ^8  d   QhRRRRRR/# )r-   audio_outputio.AudioOutput
tts_outputAsyncIterable[rtc.AudioFrame]r.   z'tuple[asyncio.Task[None], _AudioOutput]r/   )r0   s   "r1   r2   r2     s(        . -	r4   c                  a a \        . \        P                  ! 4       R 7      oS P                  RSP                  4       SP
                  P                  V V3R l4       \        P                  ! \        S VS4      4      pVS3# ))r  r  playback_startedc                <   < SP                  R SP                  4      # )r  )offr  )re   r  r   s   &r1   rL   *perform_audio_forwarding.<locals>.<lambda>  s    ,""#5s7S7STr4   )	r  rV   rW   onr  r  rv   rt   _audio_forwarding_task)r  r  r   r   s   d$ @r1   perform_audio_forwardingr    sk    
 R1A
BCOO&(D(DE))T 5lJPSTUD9r4   c               (    V ^8  d   QhRRRRRRRR/# )	r-   r  r  r  r  r   r  r.   rj   r/   )r0   s   "r1   r2   r2     s0     , , ,-, 
, 
	,r4   c                  "   R p V P                  4        V  R j  xL
  pVP                  P                  V4       VP                  f   \        P                  ! 4       Vn        VP
                  P                  4       '       ge   V P                  eW   VP                  V P                  8w  d<   Vf8   \        P                  ! VP                  V P                  VP                  R7      pV'       d5   VP                  V4       F  pV P                  V4      G R j  xL
  K  	  EK  V P                  V4      G R j  xL
  EK)   EL% L* LED+T'       d2   TP                  4        F  pT P                  T4      G R j  xL 
  K  	  \        T\        4      '       dL    TP!                  4       G R j  xL 
  M0  \"         d#   p\$        P&                  ! RTR7        R p?MR p?ii ; iT P                  4        R #   \        T\        4      '       dL    TP!                  4       G R j  xL 
  M0  \"         d#   p\$        P&                  ! RTR7        R p?MR p?ii ; iT P                  4        i ; i5i)N)
input_rateoutput_ratenum_channelszerror while closing tts output)exc_info)resumer  r   r  r   r  rm   sample_rater   AudioResamplerr   pushcapture_framer  r   r+   r8   	Exceptionr   error)r  r  r   	resamplerframefes   &&&    r1   r  r    s     ,0I%% 	8 	8%IIU#((0,0IIK) '',,.. ,,8%%)A)AA%..$00 , 8 8!&!3!3	 ".A&44Q777 / #00777+	8& 87+ &. "*"00777 + j+..K ''))) K=JJK 	 j+..K ''))) K=JJK 	s   I,G6 EEEA$G6 A+G6 1(G6 EG6 9E:G6 EG6 G6 	G6 'G6 9E<:	G6 I,F4 -F0.F4 3I,4G!?GI,G!!I,6I)H(!H$"H('I)(I3II)II))I,c                  ,    ] tR tRt$ R]R&   R]R&   RtR# )_ToolOutputi  zlist[ToolExecutionOutput]outputrO   first_tool_started_futr/   Nr   r/   r4   r1   r.  r.    s    %%00r4   r.  c               8    V ^8  d   QhRRRRRRRRR	R
RRRRRR/# )r-   sessionr(   speech_handler$   r^   r   tool_choiceNotGivenOr[llm.ToolChoice]function_streamAsyncIterable[llm.FunctionCall]tool_execution_started_cb!Callable[[llm.FunctionCall], Any]tool_execution_completed_cb$Callable[[ToolExecutionOutput], Any]r.   z&tuple[asyncio.Task[None], _ToolOutput]r/   )r0   s   "r1   r2   r2     s\         	
 , 5  A "F ,r4   c                    \        . \        P                  ! 4       R 7      p\        P                  ! \	        V VVVVVVVR7      RR7      pW3# ))r/  r0  )r2  r3  r^   r4  r6  tool_outputr8  r:  execute_tools_taskr   )r.  rV   rW   rt   _execute_tools_task)	r2  r3  r^   r4  r6  r8  r:  r=  r   s	   $$$$$$$  r1   perform_tool_executionsrA    sW     R@PQK'#+#&?(C		
 "D r4   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-   r2  r(   r3  r$   r^   r   r4  r5  r6  r7  r8  r9  r:  r;  r=  r.  r.   rj   r/   )r0   s   "r1   r2   r2     sq     y yy  y 	y
 ,y 5y  Ay "Fy y 
yr4   c                R  aaaaa"   ^RI Hp ^RIHp	 R VV3R llo. o V  Rj  xL
  p
VR8X  d3   \        P
                  ! RRV
P                  R	SP                  /R
7       KC  VP                  P                  V
P                  4      ;pfk   \        P                  ! RV
P                   R2RV
P                  R	SP                  /R
7       S! \        V
R\        RV
P                   24      R7      4       K  \        V\        P                  \        P                   ,          4      '       gj   \        P
                  ! R\#        V4       2RV
P                  R	SP                  /R
7       S! \        V
R\        RV
P                   24      R7      4       EKt   V
P$                  ;'       g    Rp\&        P(                  ! VVV	! V SV
R7      R7      w  rSP0                  P3                  4       '       g   SP0                  P5                  R4       T! T
4        ^RIHp TP                  / 4      P                  \#        T P:                  4      / 4      pTP                  T
P                  4      ;p'       d_   \        P<                  ! RRT
P                  RT
P$                  R	SP                  /R
7       R R lp\>        P@                  ! TT.TO5/ TB pMV\        P<                  ! RRT
P                  RT
P$                  R	SP                  /R
7       \>        P@                  ! T.TO5/ TB p\B        PD                  ! R4      R TT3R ll4       p\F        PH                  ! T! TT
4      RT
P                   2R 7      pT! TST
R!R"7       SPK                  T4       TPM                  T3R# l4       EK   EL  \*        \,        3 dk   p\        P.                  ! RT
P                   R2RT
P                  RT
P$                  R	SP                  /R
7       S! \        T
RTR7      4        Rp?EK  Rp?ii ; i  \N         dQ   p\        P.                  ! R$RT
P                  R	SP                  /R
7       S! \        T
RTR7      4        Rp?EK_  Rp?ii ; iEDb\F        PP                  ! \F        PR                  ! SR%R!/ 4      G Rj  xL 
  M  \F        PT                   d|    \W        S4      ^ 8  di   S Uu. uF  pTPY                  4       NK  	  Mu upi pp\        P<                  ! R&R'TR	SP                  /R
7       \F        PR                  ! S!  G Rj  xL 
   Mi ; i\Z        P\                  P^                  ! S!  G Rj  xL 
  \W        SP`                  4      ^ 8  d'   \        P<                  ! R(R	SP                  /R
7       R# R#   \Z        P\                  P^                  ! S!  G Rj  xL 
  \W        SP`                  4      ^ 8  d&   \        P<                  ! R(R	SP                  /R
7       i i ; i5i))zUexecute tools, when cancelled, stop executing new tools but wait for the pending ones)_set_activity_task_info)
RunContextc                    V ^8  d   QhRRRR/# )r-   r   ToolExecutionOutputr.   rj   r/   )r0   s   "r1   r2   )_execute_tools_task.<locals>.__annotate__  s     ' '0 'T 'r4   c                N   < S! V 4       SP                   P                  V 4       R # r6   )r/  r   )r   r:  r=  s   &r1   _tool_completed,_execute_tools_task.<locals>._tool_completed  s    #C(!!#&r4   Nnonez=received a tool call with tool_choice set to 'none', ignoringr   	speech_idr   zunknown AI function ``zUnknown function: r   r/  	exceptionzunknown tool type: z Unknown tool type for function: z{})r2  r3  function_call)r   json_argumentscall_ctxztried to call AI function `z` with invalid argumentsr   )_MockToolsContextVarzexecuting mock toolc               (    V ^8  d   QhRRRRRRRR/# )r-   mockr   fnc_argsr   
fnc_kwargsr.   r/   )r0   s   "r1   r2   rH  V  s0     !E !Eh !E3 !EVY !E^a !Er4   c                  "   \         P                  ! V 4      pVP                  P                  4        UUu. uFL  w  rEVP                  \         P
                  P                  \         P
                  P                  39   g   KJ  VNKN  	  ppp\        V4      pVR V pVP                  P                  4        UUu. uFL  w  rEVP                  \         P
                  P                  \         P
                  P                  39   g   KJ  VNKN  	  p	ppVP                  4        U
Uu/ uF  w  rW9   g   K  WbK  	  pp
pVP                  ! V/ VB pVP                  4        \         P                  ! V 4      '       d%   V ! VP                  / VP                  B G R j  xL
 # V ! VP                  / VP                  B # u uppi u uppi u upp
i  L25ir6   )inspect	signature
parametersitemskind	ParameterPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDr   KEYWORD_ONLYbind_partialapply_defaultsiscoroutinefunctionargskwargs)rW  rX  rY  sigr   parampos_param_namesmax_positionaltrimmed_argskw_param_nameskvtrimmed_kwargsbounds   &*,           r1   	_run_mock&_execute_tools_task.<locals>._run_mockV  s    %//5 03~~/C/C/E+/E$zz ' 1 1 A A ' 1 1 G G   !D/E ( + *-_)='/'@ 03~~/C/C/E*/E$zz ' 1 1 > > ' 1 1 G G   !D/E ' * .8-=-=-?*-?TQ1CVDAD-? ' * !$ 0 0, Q. Q,,."66t<<)-uzz)JU\\)J#JJ#'#Du||#DD=+** $KsI   4G
AF6F60G
8AF<F<
G
 
G/G5A G
G3G
zexecuting toolfunction_toolc               $    V ^8  d   QhRRRRRR/# )r-   function_callabler   r   llm.FunctionCallr.   rj   r/   )r0   s   "r1   r2   rH    s$     *, *,'/*,;K*,*,r4   c           	       <"   \         P                  ! 4       pVP                  \        P                  VP
                  \        P                  VP                  \        P                  VP                  /4        V ! 4       G R j  xL
 p\        WR R7      pVP(                  ;p'       dU   VP+                  \        P,                  VP.                  4       VP+                  \        P0                  VP2                  4       S! V4       R #  L  \         d   p\        T\        4      '       d=   \        P                  ! RTP                   RTP                  RSP"                  /R7       MF\        T\$        4      '       g1   \        P&                  ! RRTP                  RSP"                  /R7       \        TR TR7      p R p?EL+R p?ii ; i5i)NrP  z"ToolError while executing tool: %sr   rM  rN  'exception occurred while executing tool)r   r   r   r   ATTR_FUNCTION_TOOL_IDr   ATTR_FUNCTION_TOOL_NAMEr   ATTR_FUNCTION_TOOL_ARGSr   make_tool_outputBaseExceptionr   r   r   r   messagerN   r   rQ  fnc_call_outr   ATTR_FUNCTION_TOOL_OUTPUTr/  ATTR_FUNCTION_TOOL_IS_ERRORis_error)	rw  r   r   valr/  r,  r  rJ  r3  s	   &&     r1   _traceable_fnc_tool0_execute_tools_task.<locals>._traceable_fnc_tool  sn     $)#9#9#;L //'==x?O?O'??'??ASAS_$5$77!18[_!`& (.':'::|:$22'AA<CVCV %22'CC\EZEZ
 $F+; 8( _%a33"NN D !		$.$/1A1A'" ",A|!<!<",, I'18==+}O_O_&`
 "28D\]!^!_sJ   A5G9
D	 DD	 G)AGD	 	GB&G :G GG
func_exec_r?  T)r3  rR  inline_taskc                &   < SP                  V 4      # r6   )remove)r   taskss   &r1   rL   %_execute_tools_task.<locals>.<lambda>  s    ELL4Fr4   rz  return_exceptionsz;waiting for function call to finish before fully cancelling	functionsztools execution completed)1agentrD  eventsrE  r   r(  r   rN   r   r   r   r~  r   r   r   FunctionToolRawFunctionToolr   r   	llm_utilsprepare_function_argumentsr   
ValueErrorrQ  r0  rm   rn   
run_resultrU  current_agentdebug	functoolspartialr   r   rV   rt   r   rv   r'  shieldgatherCancelledErrorr   get_namer   r    cancel_and_waitr/  )r2  r3  r^   r4  r6  r8  r:  r=  rD  rE  r   ru  	json_argsrX  rY  r,  rU  
mock_toolsrW  rs  rw  r  r   namesrJ  r  s   $d$$$$dd                @@r1   r@  r@    sr     /"' ' &(Ed- M	 M	(f$S"HMM#]%5%5  "*!8!8!<!<X]]!KKT+HMM?!<"HMM#]%5%5  $!)#"+.@,P"Q mS-=-=@S@S-STT)$}*=)>?"HMM#]%5%5  $!)#"+.Nx}}o,^"_ $..66$	'0'K'K%#,' '&3&.($, 55::<<22==dC%h/B<2F2J2J22N2R2R../3
 &>>(--8848LL-&'););')9)9!EF )2(9(9)T(cH(cXb(c%LL(&'););')9)9 )2(9(9-(a((aV`(a%--o>*, *, ?*,X **'(98D%hmm_5 (X[_ T"&&'FGAM	v $Z0 
  1(--@XY"HMM#X%7%7#]%5%5   0(4[\ ]^
L     ="HMM#]%5%5   0(4[\ ]^C .^ nnW^^UKdKLLL!! 
)u:>167T]]_7E7LLM!1!1 ..%(((
) ii''///{!!"Q&LL+"M$4$45 ' ii''///{!!"Q&LL+"M$4$45 's   X'S  R
N+R
E,S  N.+'N.S  2#S  FP,(S  +R
.P)?AP$S  $P))S  ,R7AR;S  R2S  9R<:S  ?V<  )U)TAUU
UV< UV< !X'4U75AX'<"X$W!AX$$X'c                  f    ] tR tRt$ R]R&   R]R&   R]R&   R]R	&   R
]R&   ]! RR7      tR]R&   RtR# )rG  i  rx  r   zllm.FunctionCallOutput | Noner  zAgent | None
agent_taskr   
raw_outputBaseException | Noneraw_exceptionT)defaultr{   reply_requiredr/   N)r:   r;   r<   r=   rS   r	   r  r>   r/   r4   r1   rG  rG    s.    //O'' .ND.r4   rG  c               (    V ^8  d   QhRRRRRRRR/# )	r-   r   rx  r/  r   rQ  r  r.   rG  r/   )r0   s   "r1   r2   r2     s2     F F!F+.F;OFFr4   c           	        ^RI Hp \        V\        4      '       d   TpRpVeB   \        P
                  ! V RVR7      p\        V P                  4       VP                  RVVR7      # RpTp\        V\        4      '       gC   \        V\        4      '       g-   \        V\        4      '       g   \        V\        4      '       d   V Uu. uF  p\        Ws4      '       g   K  VNK  	  ppV Uu. uF  p\        Ws4      '       d   K  VNK  	  p	p\        V4      ^8  dS   \        P                  ! RV P                    R2RV P"                  RV/R	7       \        V P                  4       RRVVR7      # \%        \'        V4      R4      pVf   T	M$V	'       g   RM\        V	4      ^8X  d
   V	^ ,          MT	pM\        Wc4      '       d   TpRp\        P
                  ! WRR7      p\        V P                  4       VP                  VRJVVVR
7      # u upi u upi )r   )r&   NrP  )r   r  r  r  r  zAI function `z<` returned multiple AgentTask instances, ignoring the outputr   r/  rN  )r   r  r  r  r  r  )r  r&   r   r  r  make_function_call_outputrG  
model_copyr  rT   set	frozensettupler   r   r(  r   r   nextiter)
r   r/  rQ  r&   base_resultr   fnc_outitemagent_tasksother_outputss
   $$$       r1   r~  r~    s    &-((	99di
 #((*$11#
 	
 DG64  fc""fi((fe$$(.J*T2IttJ*0P&$
48O&P{aLL.jk ("2"2HfE '!,,.!!'  D%t, "\M*%(%71%<q!	 	 
G	#	#55TK $$& --d* E KPs   HH*H
H
zlk.agent_task.instructionsc               (    V ^8  d   QhRRRRRRRR/# )	r-   r]   r   instructionszstr | Instructionsadd_if_missingr{   r.   rj   r/   )r0   s   "r1   r2   r2   9  s,     
 

,>
PT
	
r4   c          	        V P                  \        4      pVew   V P                  V,          P                  R8X  dJ   \        P
                  ! \        RV.V P                  V,          P                  R7      V P                  V&   R# \        R4      hV'       d;   V P                  P                  ^ \        P
                  ! \        RV.R7      4       R# R# )a'  
Update the instruction message in the chat context or insert a new one if missing.

This function looks for an existing instruction message in the chat context using the identifier
'INSTRUCTIONS_MESSAGE_ID'.

Raises:
    ValueError: If an existing instruction message is not of type "message".
Nr  system)rN   roler   r   zEexpected the instructions inside the chat_ctx to be of type 'message')rN   r  r   )	index_by_idINSTRUCTIONS_MESSAGE_IDr^  r   r   ChatMessager   r  insert)r]   r  r  idxs   &$$ r1   update_instructionsr  9  s     

6
7C
>>###y0"%//*%#>>#.99	#HNN3 W  
OO6XP\~^	
 
r4   c               $    V ^8  d   QhRRRRRR/# )r-   r]   r   modalityzLiteral['audio', 'text']r.   rj   r/   )r0   s   "r1   r2   r2   [  s$     ' ''(@'	'r4   c                  V P                  \        4      pVe   V P                  V,          ;pP                  R8X  d   \        ;QJ d&    R VP
                   4       F  '       g   K   RM	  RM! R VP
                   4       4      pV'       g   R # VP                  4       pVP
                   Uu. uF,  p\        V\        4      '       d   VP                  V4      MTNK.  	  upVn        WPP                  V&   R # R # R # u upi )Nr  c              3  B   "   T F  p\        V\        4      x  K  	  R # 5ir6   )r   r   ).0cs   & r1   	<genexpr>.apply_instructions_modality.<locals>.<genexpr>`  s     #VAJq,$?$?s   TF)
r  r  r^  r   anyr   r  r   r   as_modality)r]   r  r  r  has_modality_specificnew_itemr  s   &$     r1   apply_instructions_modalityr  [  s     

6
7C
HNN3$77D==J ##V#V#V#V V$ ??$S[ScSc
Scaz!\'B'BAMM(#ISc
 's K
s   .2C<c                    V ^8  d   QhRRRR/# )r-   r]   r   r.   rj   r/   )r0   s   "r1   r2   r2   l  s      + $ r4   c                |     V P                  \        4      ;p'       d   V P                  P                  V4       K;  R# )TN)	get_by_idr  r^  r  )r]   msgs   & r1   remove_instructionsr  l  s1    
$$%<==3=NN!!#&r4   )NN)V
__future__r   rV   r  r[  r   r   collections.abcr   r   r   r   dataclassesr   r	   typingr
   r   r   r   r   opentelemetryr   pydanticr   livekitr   rC   r   r   r   r   r   r   r   r  llm.chat_contextr   logr   	telemetryr   r   typesr   r   r   r    r!   	utils.aior"   r#   r3  r$   transcription.text_transformsr%   r  r&   r'   agent_sessionr(   r)   r+   r@   rx   log_exceptionsr   ru   r   r   r   r   r   r   r  r  r  r.  rA  r@  rG  r~  r  r  r  r  r/   r4   r1   <module>r     s6   "      M M ( K K  $    ,  + H H ! !  ' A++= '( ' '      6 V$j)v * %vr      8 V$Z %Zz ) ) )
 V$  % * 	; 	; 	; V$, %,^ 1 1 1
6 V$y %yx / / /FR 7 

D'"r4   