
    Cj                       % S SK Jr  S SKJr  S SKJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SS	KJr  SS
KJr  SSKJrJr  \ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S S5      5       r\ " S  S!5      5       r\ " S" S#5      5       r \ " S$ S%5      5       r!\ " S& S'5      5       r"\ " S( S)5      5       r#\ " S* S+5      5       r$\\-  \-  \-  \-  \-  \-  \-  \-  \-  \ -  \!-  \"-  \#-  \$-  r%S,\&S-'   g.)/    )annotations)	dataclass)AnyLiteral	TypeAlias   )OutputGuardrailResult)RunContextWrapper)Tool   )RealtimeAgent)RealtimeItem)RealtimeModelAudioEventRealtimeModelEventc                       \ rS rSr% S\S'   Srg)RealtimeEventInfo   r
   context N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       h/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/agents/realtime/events.pyr   r      s    $r   r   c                  @    \ rS rSr% SrS\S'    S\S'    SrS\S	'   S
rg)RealtimeAgentStartEvent   zA new agent has started.r   agentr   infoagent_startzLiteral['agent_start']typer   Nr   r   r   r   __doc__r   r$   r   r   r   r   r   r      s"    "
:#0D
 0r   r   c                  @    \ rS rSr% SrS\S'    S\S'    SrS\S	'   S
rg)RealtimeAgentEndEvent!   zAn agent has ended.r   r!   r   r"   	agent_endzLiteral['agent_end']r$   r   Nr%   r   r   r   r(   r(   !   s"    
:!,D
,r   r(   c                  L    \ rS rSr% SrS\S'    S\S'    S\S'    SrS	\S
'   Srg)RealtimeHandoffEvent.   z)An agent has handed off to another agent.r   
from_agentto_agentr   r"   handoffzLiteral['handoff']r$   r   Nr%   r   r   r   r,   r,   .   s+    3$+
:(D
(r   r,   c                  X    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    SrS\S'   Srg)RealtimeToolStart>   z!An agent is starting a tool call.r   r!   r   toolstr	argumentsr   r"   
tool_startzLiteral['tool_start']r$   r   Nr%   r   r   r   r2   r2   >   s2    +!
J N<
:".D
.r   r2   c                  d    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    S\S'    SrS\S'   Srg)RealtimeToolEndQ   zAn agent has ended a tool call.r   r!   r   r4   r5   r6   r   outputr   r"   tool_endzLiteral['tool_end']r$   r   Nr%   r   r   r   r9   r9   Q   s:    )-
J#N<K&
: *D
*r   r9   c                  d    \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
\S'    SrS\S'   Srg)RealtimeToolApprovalRequiredg   z5A tool call requires human approval before execution.r   r!   r   r4   r5   call_idr6   r   r"   tool_approval_requiredz!Literal['tool_approval_required']r$   r   Nr%   r   r   r   r>   r>   g   s:    ?(
J%L#N<
:.FD
+Fr   r>   c                  @    \ rS rSr% SrS\S'    S\S'    SrS\S	'   S
rg)RealtimeRawModelEvent}   z)Forwards raw events from the model layer.r   datar   r"   raw_model_eventzLiteral['raw_model_event']r$   r   Nr%   r   r   r   rC   rC   }   s"    3
,
:'8D
$8r   rC   c                  L    \ rS rSr% SrS\S'    S\S'    S\S'    S	rS
\S'   Srg)RealtimeAudioEnd   z0Triggered when the agent stops generating audio.r   r"   r5   item_idintcontent_index	audio_endzLiteral['audio_end']r$   r   Nr%   r   r   r   rH   rH      s*    :
:L.:!,D
,r   rH   c                  X    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    SrS\S'   Srg)RealtimeAudio   z:Triggered when the agent generates new audio to be played.r   audior5   rJ   rK   rL   r   r"   zLiteral['audio']r$   r   Nr%   r   r   r   rO   rO      s3    D""/L.:
:$D
$r   rO   c                  L    \ rS rSr% SrS\S'    S\S'    S\S'    S	rS
\S'   Srg)RealtimeAudioInterrupted   zTriggered when the agent is interrupted. Can be listened to by the user to stop audio
playback or give visual indicators to the user.
r   r"   r5   rJ   rK   rL   audio_interruptedzLiteral['audio_interrupted']r$   r   Nr%   r   r   r   rS   rS      s.     :L.:)<D
&<r   rS   c                  @    \ rS rSr% SrS\S'    S\S'    SrS\S'   S	rg
)RealtimeError   zAn error has occurred.r   errorr   r"   zLiteral['error']r$   r   Nr%   r   r   r   rW   rW      s!     J"
:$D
$r   rW   c                  @    \ rS rSr% SrS\S'    S\S'    SrS\S	'   S
rg)RealtimeHistoryUpdated   zGThe history has been updated. Contains the full history of the session.zlist[RealtimeItem]historyr   r"   history_updatedzLiteral['history_updated']r$   r   Nr%   r   r   r   r[   r[      s"    Q*
:'8D
$8r   r[   c                  @    \ rS rSr% SrS\S'    S\S'    SrS\S	'   S
rg)RealtimeHistoryAdded   z)A new item has been added to the history.r   itemr   r"   history_addedzLiteral['history_added']r$   r   Nr%   r   r   r   r`   r`      s"    3
5
:%4D
"4r   r`   c                  L    \ rS rSr% SrS\S'    S\S'    S\S'    S	rS
\S'   Srg)RealtimeGuardrailTripped   z@A guardrail has been tripped and the agent has been interrupted.zlist[OutputGuardrailResult]guardrail_resultsr5   messager   r"   guardrail_trippedzLiteral['guardrail_tripped']r$   r   Nr%   r   r   r   re   re      s*    J224LP
:)<D
&<r   re   c                  4    \ rS rSr% SrS\S'    SrS\S'   Srg	)
"RealtimeInputAudioTimeoutTriggered   zKCalled when the model detects a period of inactivity/silence from the user.r   r"   input_audio_timeout_triggeredz(Literal['input_audio_timeout_triggered']r$   r   Nr%   r   r   r   rk   rk      s    U
:5TD
2Tr   rk   r   RealtimeSessionEventN)'
__future__r   dataclassesr   typingr   r   r   	guardrailr	   run_contextr
   r4   r   r!   r   itemsr   model_eventsr   r   r   r   r(   r,   r2   r9   r>   rC   rH   rO   rS   rW   r[   r`   re   rk   rn   r   r   r   r   <module>rv      sW   " ! * * - +     E % % %
 	1 	1 	1 	- 	- 	- ) ) ) / / /$ + + +* G G G* 	9 	9 	9 - - - % % %$ = = =" 	% 	% 	% 	9 	9 	9 	5 	5 	5 = = = U U U   	
 ##    	 
    )) i " 0r   