+
    jHàjb	  ã                   ó’   € R t ^ RIHtHt ^ RIHt ] ! R R4      4       t] ! R R4      4       tRRR/R	 R
 llltRRR/R R lllt	R# )z³Streaming-TTS format descriptor, handle and turn-scoped suppression helpers (#60671).

Re-exported from ``gateway.platforms.base``; no imports from it (base imports this module).
)Ú	dataclassÚfield)ÚAnyc                   ó<   a € ] tR t^
t o RtRt^t^tV 3R ltRt	V t
R# )ÚAudioFormatzšDeclared PCM format for a streaming-TTS session: every ``write_streaming_tts``
chunk must be raw little-endian PCM at this rate / channels / sample width.iÀ]  c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )é   Úsample_rateÚchannelsÚsample_width)Úint)ÚformatÚ__classdict__s   "€ÚI/home/ubuntu/.hermes/hermes-agent/gateway/platforms/base_streaming_tts.pyÚ__annotate__ÚAudioFormat.__annotate__
   s,   ø‡ ‚ ñ Ññ ñ Ññ ñ Ñò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r	   r
   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r   
   s!   ø‡ € ñSà€KØ€HØ€L÷ ƒ r   r   c                   óN   a € ] tR t^t o RtRt]! ]R7      tRt	Rt
V 3R ltRtV tR# )ÚStreamingTTSHandlez—Opaque handle returned by ``begin_streaming_tts``; adapters may extend it with
platform state. The base fields are consumer bookkeeping / cancellation.Ú )Údefault_factoryFc                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   # )r   Úchat_idÚaudio_formatÚaudibleÚaborted)Ústrr   Úbool)r   r   s   "€r   r   ÚStreamingTTSHandle.__annotate__   s9   ø‡ ‚ ñ Ññ	 ñ
 ÑBñ ñ Ññ ñ Ñò r   r   N)r   r   r   r   r   r"   r   r   r#   r$   r%   r   r   r   r   s   @r   r   r      s-   ø‡ € ñPà€GÙ %°kÔ B€Lð €GØ€G÷ ƒ r   r   NÚeventc          	      ód   € V ^8„  d   QhR\         R,          R\        R\        R\         R,          /# )r   Úsession_keyNÚturn_markerr)   Úreturn)r&   r   )r   s   "r   r   r   !   s:   € ÷ Kñ K¬¨d­
ð KÄð KÔWZð KÔfiÐlpÕfpñ Kr   c               ó„   € V '       g   R# Vf'   Ve#   \        VRR4      ;'       g    \        VRR4      pVf   R# V  RV 2# )ué   Per-turn streaming-TTS suppression key â€” turn-scoped (not chat-scoped) so
overlapping turns in one chat can't suppress each other's fallback paths.
``turn_marker`` is normally the run generation, else the event's message/update id.NÚ
message_idÚplatform_update_idÚ:)Úgetattr)r+   r,   r)   s   &&$r   Ústreaming_tts_turn_keyr3   !   sQ   € ÷ ÙØÒ˜uÒ0Ü˜e \°4Ó8×fÐf¼GÀEÐK_ÐaeÓ<fˆØÒ&ˆ4ÐJ¨{¨m¸1¸[¸MÐ,JÐJr   c          
      óx   € V ^8„  d   QhR\         \        ,          R\        R,          R\        R\        R\        /# )r   Úcompleted_turnsr+   Nr,   r)   r-   )Úsetr&   r   r'   )r   s   "r   r   r   ,   s=   € ÷ :ñ :¼#¼c½(ð :ÔQTÐW[ÕQ[ð :Ü69ð:ÜLOð:Ü[_ñ:r   c               óJ   € \        WVR7      p\        T;'       d    W@9   4      # )zUPure, turn-scoped auto-TTS suppression decision (testable without the adapter stack).)r)   )r3   r'   )r5   r+   r,   r)   Úturn_keys   &&&$ r   Ú$streaming_tts_should_skip_whole_filer9   ,   s&   € ô & kÀeÔL€HÜ�×8Ð8˜XÑ8Ó9Ð9r   )N)
r   Údataclassesr   r   Útypingr   r   r   r3   r9   r   r   r   Ú<module>r<      sk   ðñ÷
 )Ý ð ÷ð ó ðð ÷ð ó ðñKÐ]a÷ Kð Kñ:ØRV÷:ò :r   