Ë
    îO´j0.  ã                  ó„  — d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZmZmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZ ddlmZ  e	d«      Z  G d„ de«      Z!e G d„ d«      «       Z" G d„ dee    «      Z#	 	 	 	 	 	 	 	 	 	 	 	 dd„Z$ G d„ de#d   «      Z% G d„ de#ded   z     «      Z&y)é    )ÚannotationsN)ÚTracebackType)ÚTypeVarÚCallableÚSequenceÚ	Awaitable)Údeque)Ú	dataclass)ÚSelfÚProtocolÚoverrideé   )ÚGroupingUpdateÚTranscriptGrouperOptions)ÚTranscriptListenersé   )ÚServerEvent)ÚOpenAIError)ÚTranscriptStateÚ_ReturnTc                  ó   — e Zd Zdd„Zy)Ú_Timerc                 ó   — y ©N© ©Úselfs    úz/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/openai/lib/live/_transcript_grouper.pyÚcancelz_Timer.cancel   s   � ó    N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r   r   r    r   r   r      s   „ Ü!r    r   c                  ó8   — e Zd ZU dZded<   dZded<   dZded	<   y)
Ú_DispatchRunNzasyncio.Task[None] | NoneÚtaskr   ÚintÚwaitersFÚboolÚobserved)r$   r%   r&   r)   Ú__annotations__r+   r-   r   r    r   r(   r(      s!   … à&*€DÐ
#Ó*Ø€GˆSÓØ€HˆdÔr    r(   c                  óH   ‡ — e Zd Zdˆ fd„Zdd„Zd	d„Zd	d„Zd
d„Zdd„Zˆ xZ	S )Ú_BaseTranscriptGrouperc                ó’   •— t         ‰| �  «        t        || j                  «      | _        t        «       | _        d | _        d| _        y )Nr   )	ÚsuperÚ__init__r   Ú_nowÚ_stater	   Ú_updatesÚ_timerÚ_timer_generation)r   ÚoptionsÚ	__class__s     €r   r3   z_BaseTranscriptGrouper.__init__"   s8   ø€ Ü‰ÑÔÜ% g¨t¯y©yÓ9ˆŒÜ/4«wˆŒØ%)ˆŒØ!"ˆÕr    c                ó0   — t        j                  «       dz  S ©Néè  )ÚtimeÚ	monotonicr   s    r   r4   z_BaseTranscriptGrouper._now)   s   € Ü�~‰~Ó $Ñ&Ð&r    c                óŠ   — | xj                   dz  c_         | j                  �"| j                  j                  «        d | _        y y )Nr   )r8   r7   r   r   s    r   Ú_clear_timerz#_BaseTranscriptGrouper._clear_timer,   s9   € Ø×Ò !Ñ#ÕØ�;‰;Ð"Ø�K‰K×ÑÔ ØˆD�Kð #r    c                ó°   ‡ ‡— ‰ j                  «        ‰ j                  j                  «       }|�(‰ j                  Š‰ j	                  |ˆˆ fd„«      ‰ _        y y )Nc                 ó&   •— ‰j                  ‰ «      S r   )Ú_timer_fired)Ú
generationr   s   €€r   ú<lambda>z2_BaseTranscriptGrouper._schedule.<locals>.<lambda>7   s   ø€ ¸$×:KÑ:KÈJÓ:W€ r    )rA   r5   Údelayr8   Ú_call_laterr7   )r   rG   rE   s   ` @r   Ú	_schedulez _BaseTranscriptGrouper._schedule2   sL   ù€ Ø×ÑÔØ—‘×!Ñ!Ó#ˆØÐØ×/Ñ/ˆJØ×*Ñ*¨5Ô2WÓXˆD�Kð r    c                ó   — t         ‚r   ©ÚNotImplementedError©r   Údelay_msÚcallbacks      r   rH   z"_BaseTranscriptGrouper._call_later9   ó   € Ü!Ð!r    c                ó   — t         ‚r   rK   ©r   rE   s     r   rD   z#_BaseTranscriptGrouper._timer_fired<   rP   r    )r9   r   r"   r#   )r"   Úfloatr!   ©rN   r*   rO   zCallable[[], None]r"   r   ©rE   r*   r"   r#   )
r$   r%   r&   r3   r4   rA   rI   rH   rD   Ú__classcell__©r:   s   @r   r0   r0   !   s"   ø„ õ#ó'óóYó"÷"r    r0   c           
     óZ   — t        | €dn| |€dn||€dn||€dn|t        |xs d«      «      S )Niô  iÐ  r=   r   )r   Útuple©Úmin_turn_separation_msÚassistant_silence_msÚbackchannel_max_duration_msÚbackchannel_isolation_msÚadditional_acknowledgmentss        r   Ú_optionsr`   @   sK   € ô $Ø%Ð-‰Ð3IØ$Ð,‰Ð2FØ+Ð3‰Ð9TØ(Ð0‰Ð6NÜÐ(Ò.¨BÓ/óð r    c                  ó¤   ‡ — e Zd ZdZddddddœ	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Ze	dd	„«       Z
e	dd
„«       Zdd„Zˆ xZS )ÚTranscriptGrouperaX  Group public Live transcript events into immutable display segments.

    This is the TypeScript SDK's speaker/backchannel policy: only transcript
    additions and session.closed are consumed. It is not VAD, playback tracking,
    or a lossless transcript; brief overlapping acknowledgments may be suppressed.
    Set backchannel_max_duration_ms=0 to disable suppression.
    additional_acknowledgments extends the built-in phrases using the same timing
    thresholds. Phrases are copied at construction and normalized like transcript
    text: case, hyphens, whitespace, and surrounding punctuation are normalized.

    Use one instance per session. Call close() on disconnect or use a with block;
    the grouper never owns, closes or reconnects your transport. Delayed delivery
    can change grouping because monotonic local time supplies inactivity fallback.

    Callbacks are serialized and run outside the state lock. A timer-triggered
    callback may run on a daemon timer thread. Callback exceptions propagate to
    push/close callers, or to threading.excepthook for timer-triggered callbacks.
    NrZ   c          	     ó~   •— t         ‰| �  t        |||||«      «       t        j                  «       | _        d| _        y )NF)r2   r3   r`   Ú	threadingÚLockÚ_lockÚ_dispatching©r   r[   r\   r]   r^   r_   r:   s         €r   r3   zTranscriptGrouper.__init__d   sA   ø€ ô 	‰ÑÜØ&Ø$Ø+Ø(Ø*óô	
ô —^‘^Ó%ˆŒ
Ø!ˆÕr    c                ó
  — | j                   5  | j                  j                  |«      }|€
	 ddd«       y| j                  j	                  |«       | j                  «        ddd«       | j                  «        y# 1 sw Y   ŒxY w)zâConsume one typed Live event; duplicates and unrelated events are ignored.

        Invalid transcript fields or use after close raise OpenAIError before
        changing state. Empty text does not restart inactivity.
        N)rf   r5   Úpushr6   ÚextendrI   Ú	_dispatch©r   ÚeventÚupdatess      r   rj   zTranscriptGrouper.pushy   sp   € ð �Z‰Zñ 	Ø—k‘k×&Ñ& uÓ-ˆGØˆØ÷	ð 	ð �M‰M× Ñ  Ô)Ø�N‰NÔ÷	ð 	�‰Õ÷	ð 	ús   �A9µ+A9Á9Bc                óî   — | j                   5  | j                  j                  | j                  j	                  d«      «       | j                  «        ddd«       | j                  «        y# 1 sw Y   ŒxY w)zÓFlush/finalize once and cancel timers, without closing the transport.

        Already-running callbacks finish in order, including when close is called
        from a callback. Further push calls fail.
        ÚmanualN)rf   r6   rk   r5   ÚfinishrA   rl   r   s    r   ÚclosezTranscriptGrouper.close‡   sY   € ð �Z‰Zñ 	 Ø�M‰M× Ñ  §¡×!3Ñ!3°HÓ!=Ô>Ø×ÑÔ÷	 ð 	�‰Õ÷	 ð 	 ús   �AA+Á+A4c                ó   — | S r   r   r   s    r   Ú	__enter__zTranscriptGrouper.__enter__’   s   € Øˆr    c                ó$   — | j                  «        y r   ©rs   ©r   Úexc_typeÚexcÚ	tracebacks       r   Ú__exit__zTranscriptGrouper.__exit__•   s   € ð 	�
‰
�r    c                óf   — t        j                  |dz  |«      }d|_        |j                  «        |S )Nr=   T)rd   ÚTimerÚdaemonÚstart)r   rN   rO   Útimers       r   rH   zTranscriptGrouper._call_laterš   s+   € ä—‘ ¨4¡°Ó:ˆØˆŒØ�‰ŒØˆr    c                óX  — | j                   5  || j                  k7  s| j                  j                  r
	 d d d «       y d | _        | j
                  j                  | j                  j                  «       «       | j                  «        d d d «       | j                  «        y # 1 sw Y   ŒxY wr   )
rf   r8   r5   Úclosedr7   r6   rk   ÚtickrI   rl   rR   s     r   rD   zTranscriptGrouper._timer_fired¡   sƒ   € à�Z‰Zñ 	Ø˜T×3Ñ3Ò3°t·{±{×7IÒ7IØ÷	ð 	ð ˆDŒKØ�M‰M× Ñ  §¡×!1Ñ!1Ó!3Ô4Ø�N‰NÔ÷	ð 	�‰Õ÷	ð 	ús   �'B ½A
B Â B)c                óÜ  — | j                   5  | j                  r
	 d d d «       y d| _        d d d «       	 	 | j                   5  | j                  sd| _        	 d d d «       y | j                  j                  «       }d d d «       | j	                  «      D ]
  } ||«       Œ Œk# 1 sw Y   ŒvxY w# 1 sw Y   Œ4xY w# t
        $ r* | j                   5  d| _        d d d «       ‚ # 1 sw Y   ‚ xY ww xY w)NTF)rf   rg   r6   ÚpopleftÚ	_handlersÚBaseException)r   ÚupdateÚhandlers      r   rl   zTranscriptGrouper._dispatch«   sí   € Ø�Z‰Zñ 	%Ø× Ò Ø÷	%ð 	%ð !%ˆDÔ÷	%ð	ØØ—Z‘Zñ 5ØŸ=š=Ø,1˜Ô)Ø÷5ð 5ð "Ÿ]™]×2Ñ2Ó4�F÷	5ð
  $Ÿ~™~¨fÓ5ò $�GÙ˜F•Oð$ð ÷	%ð 	%ú÷5ð 5ûô ò 	Ø—‘ñ *Ø$)�Ô!÷*à÷*àúð	úsW   �B ¤B ´B8 ÁB,ÁB8 ÁB,Á9'B8 Â B)Â,B5Â1B8 Â8C+ÃCÃ	C+ÃC'	Ã#C+©r[   úfloat | Noner\   rŒ   r]   rŒ   r^   rŒ   r_   úSequence[str] | Noner"   r#   ©rn   r   r"   r#   r!   ©r"   r   ©ry   ztype[BaseException] | Nonerz   zBaseException | Noner{   zTracebackType | Noner"   r#   rT   rU   )r$   r%   r&   Ú__doc__r3   rj   rs   ru   r|   r   rH   rD   rl   rV   rW   s   @r   rb   rb   P   s»   ø„ ñð, 04Ø-1Ø48Ø15Ø;?ñ"ð !-ð"ð +ð	"ð
 &2ð"ð #/ð"ð %9ð"ð 
õ"ó*ó	óðØ2ðØ9MðØZnðà	óð
 òó ðð òó ð÷r    rb   c                  óÄ   ‡ — e Zd ZdZddddddœ	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd	„Z	e
dd
„«       Ze
dd„«       Zdd„Zdd„Zdd„Zdd„Zˆ xZS )ÚAsyncTranscriptGroupera  Asyncio counterpart of TranscriptGrouper, sharing exactly the same policy.

    additional_acknowledgments extends the built-in phrases with the same
    normalization and timing thresholds as TranscriptGrouper.

    Use async with, await push(event), and await close(). Register synchronous
    or asynchronous callbacks with on/once. Handlers run sequentially on the
    owning event loop; timer callbacks never run on a worker thread. Exceptions
    from timer-triggered handlers go to the event loop's exception handler.
    NrZ   c          	     óZ   •— t         ‰| �  t        |||||«      «       d | _        d | _        y r   )r2   r3   r`   Ú_loopÚ_dispatch_runrh   s         €r   r3   zAsyncTranscriptGrouper.__init__Ë   s:   ø€ ô 	‰ÑÜØ&Ø$Ø+Ø(Ø*óô	
ð 8<ˆŒ
Ø26ˆÕr    c                óŠ   — t        j                  «       }| j                  €	|| _        |S | j                  |urt        d«      ‚|S )NzBThe async transcript grouper must be used on its owning event loop)ÚasyncioÚget_running_loopr•   r   )r   Úloops     r   Ú	_get_loopz AsyncTranscriptGrouper._get_loopà   sG   € Ü×'Ñ'Ó)ˆØ�:‰:ÐØˆDŒJð ˆð �Z‰Z˜tÑ#ÜÐbÓcÐcØˆr    c              ƒ  óò   K  — | j                  «        | j                  j                  |«      }|€y| j                  j	                  |«       | j                  «        | j                  «       ƒ d{  –—†  y7 Œ­w)zJConsume one event and dispatch its updates; await async handlers in order.N)r›   r5   rj   r6   rk   rI   rl   rm   s      r   rj   zAsyncTranscriptGrouper.pushè   sX   è ø€ à�‰ÔØ—+‘+×"Ñ" 5Ó)ˆØˆ?ØØ�‰×Ñ˜WÔ%Ø�‰ÔØ�n‰nÓ×Òús   ‚A-A7Á/A5Á0A7c              ƒ  óè   K  — | j                  «        | j                  j                  | j                  j	                  d«      «       | j                  «        | j                  «       ƒ d{  –—†  y7 Œ­w)zIFinalize the projection and cancel timers. Idempotent; owns no transport.rq   N)r›   r6   rk   r5   rr   rA   rl   r   s    r   rs   zAsyncTranscriptGrouper.closeò   sM   è ø€ à�‰ÔØ�‰×Ñ˜TŸ[™[×/Ñ/°Ó9Ô:Ø×ÑÔØ�n‰nÓ×Òús   ‚A(A2Á*A0Á+A2c              ƒ  ó.   K  — | j                  «        | S ­wr   )r›   r   s    r   Ú
__aenter__z!AsyncTranscriptGrouper.__aenter__ù   s   è ø€ Ø�‰ÔØˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wr   rw   rx   s       r   Ú	__aexit__z AsyncTranscriptGrouper.__aexit__ý   s   è ø€ ð �j‰j‹l×Òús   ‚–—c                óH   — | j                  «       j                  |dz  |«      S r<   )r›   Ú
call_laterrM   s      r   rH   z"AsyncTranscriptGrouper._call_later  s    € à�~‰~Ó×*Ñ*¨8°d©?¸HÓEÐEr    c                ó  — || j                   k7  s| j                  j                  ry d | _        | j                  j                  | j                  j                  «       «       | j                  «        | j                  «        y r   )	r8   r5   rƒ   r7   r6   rk   r„   rI   Ú_start_dispatchrR   s     r   rD   z#AsyncTranscriptGrouper._timer_fired  s[   € à˜×/Ñ/Ò/°4·;±;×3EÒ3EØØˆŒØ�‰×Ñ˜TŸ[™[×-Ñ-Ó/Ô0Ø�‰ÔØ×ÑÕr    c                óð   — | j                   |u rd | _         |j                  «       ry |j                  «       }|�>|j                  s1|j                  s$| j                  «       j                  d||dœ«       y y y y )NzLive transcript callback failed)ÚmessageÚ	exceptionr)   )r–   Ú	cancelledr¨   r+   r-   r›   Úcall_exception_handler)r   Úrunr)   Úerrors       r   Ú_dispatch_finishedz)AsyncTranscriptGrouper._dispatch_finished  sn   € Ø×Ñ Ñ$Ø!%ˆDÔØ�>‰>ÔØØ—‘Ó ˆØÐ S§[¢[¸¿ºØ�N‰NÓ×3Ñ3Ø=ÈEÐ[_Ñ`õð :F [Ðr    c                óV  ‡ ‡— ‰ j                   Š‰�(‰j                  �‰j                  j                  «       s‰S ‰ j                  sy t	        «       Š‰‰ _         ‰ j                  «       j                  ‰ j                  ‰«      «      ‰_        ‰j                  j                  ˆˆ fd„«       ‰S )Nc                ó(   •— ‰j                  ‰| «      S r   )r­   )r)   r«   r   s    €€r   rF   z8AsyncTranscriptGrouper._start_dispatch.<locals>.<lambda>#  s   ø€ °×0GÑ0GÈÈTÓ0R€ r    )	r–   r)   Údoner6   r(   r›   Úcreate_taskÚ_dispatch_updatesÚadd_done_callback©r   r«   s   `@r   r¥   z&AsyncTranscriptGrouper._start_dispatch  s‚   ù€ Ø× Ñ ˆØˆ?˜sŸx™xÐ3¸C¿H¹H¿M¹M¼OØˆJØ�}Š}ØÜ‹nˆØ ˆÔØ—>‘>Ó#×/Ñ/°×0FÑ0FÀsÓ0KÓLˆŒØ�‰×"Ñ"Ô#RÔSØˆ
r    c              ƒ  óè  K  — | j                   }|�!|j                  t        j                  «       u ry | j	                  «       }|€y |j                  €J ‚|xj
                  dz  c_        	 t        j                  |j                  «      ƒ d {  –—†  d|_        	 |xj
                  dz  c_        y 7 Œ"# t        j                  $ r ‚ t        $ r	 d|_        ‚ w xY w# |xj
                  dz  c_        w xY w­w)Nr   T)
r–   r)   r˜   Úcurrent_taskr¥   r+   Úshieldr-   ÚCancelledErrorrˆ   r´   s     r   rl   z AsyncTranscriptGrouper._dispatch&  sÔ   è ø€ Ø× Ñ ˆØˆ?˜sŸx™x¬7×+?Ñ+?Ó+AÑAØØ×"Ñ"Ó$ˆØˆ;ØØ�x‰xÐ#Ð#Ð#Ø�Š�qÑ�ð	ô —.‘. §¡Ó*×*Ð*ð  ˆC�Là�KŠK˜1ÑŽKð +ùÜ×%Ñ%ò 	ØÜò 	ØˆCŒLØð	ûð �KŠK˜1ÑŽKüsB   ‚A&C2Á)"B0 ÂB.ÂB0 ÂC ÂC2Â.B0 Â0%CÃC ÃC/Ã/C2c              ƒ  ó&  K  — t        j                  «       |_        | j                  rf| j                  j	                  «       }| j                  |«      D ]*  } ||«      }t        j                  |«      sŒ!|ƒ d {  –—†  Œ, | j                  rŒey y 7 Œ­wr   )r˜   r¶   r)   r6   r†   r‡   ÚinspectÚisawaitable)r   r«   r‰   rŠ   Úresults        r   r²   z(AsyncTranscriptGrouper._dispatch_updates=  ss   è ø€ ä×'Ñ'Ó)ˆŒØ�mŠmØ—]‘]×*Ñ*Ó,ˆFØŸ>™>¨&Ó1ò !�Ù  ›�Ü×&Ñ& vÕ.Ø —L‘Lð!ð �m�mð
 !ús   ‚A1BÁ4BÁ9BÁ:BÂBr‹   )r"   zasyncio.AbstractEventLooprŽ   r!   r�   r�   rT   rU   )r«   r(   r)   zasyncio.Task[None]r"   r#   )r"   z_DispatchRun | None)r«   r(   r"   r#   )r$   r%   r&   r‘   r3   r›   rj   rs   rŸ   r¡   r   rH   rD   r­   r¥   rl   r²   rV   rW   s   @r   r“   r“   ¿   sÑ   ø„ ñ	ð 04Ø-1Ø48Ø15Ø;?ñ7ð !-ð7ð +ð	7ð
 &2ð7ð #/ð7ð %9ð7ð 
õ7ó*óóóðØ2ðØ9MðØZnðà	óð
 òFó ðFð òó ðó	ó
ó÷.!r    r“   )r[   rŒ   r\   rŒ   r]   rŒ   r^   rŒ   r_   r�   r"   r   )'Ú
__future__r   r>   r˜   rº   rd   Útypesr   Útypingr   r   r   r   Úcollectionsr	   Údataclassesr
   Útyping_extensionsr   r   r   Ú_typesr   r   Ú
_listenersr   Ú
types.liver   Ú_exceptionsr   Ú_transcript_stater   r   r   r(   r0   r`   rb   r“   r   r    r   ú<module>rÈ      sè   ðÝ "ã Û Û Û Ý ß 9Ó 9Ý Ý !ß 6Ñ 6ç <Ý +Ý %Ý &Ý .á�:Ó€ô"ˆXô "ð ÷ð ó ðô"Ð0°Ñ:ô "ð>Ø(ðà&ðð ".ðð +ð	ð
 !5ðð óô lÐ.¨tÑ4ô lô^F!Ð3°D¸9ÀT¹?Ñ4JÑKõ F!r    