Ë
    îO´jh  ã                  óP  — U d dl mZ d dl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 d dlmZ d dlmZ d dlmZ d dlmZ d	d
lmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZm Z  ddl!m"Z" d	dl#m$Z$m%Z% d	dl&m'Z' d	dl(m)Z) d	dl*m+Z+  ed¬«       G d„ d«      «       Z, G d„ de-«      Z. G d„ de-«      Z/ e«       Z0de1d<    ejd                  «       Z3d2d „Z4d2d!„Z5d3d"„Z6d4d#„Z7 G d$„ d%«      Z8 G d&„ d'«      Z9 G d(„ d)«      Z: G d*„ d+«      Z; G d,„ d-«      Z< G d.„ d/«      Z= G d0„ d1«      Z>y)5é    )ÚannotationsN)ÚTracebackType)ÚAnyÚcast)ÚWeakSet)Údeque)Ú	dataclass)ÚSelfé   )Úomit)Úmaybe_transform)Ú
model_copy)Ú	BaseModel)ÚWebSocketConnectionClosedError)ÚResponseÚResponseStreamEventé   )ÚResponseStreamState)ÚResponsesConnectionÚAsyncResponsesConnection)ÚResponsesClientEvent)ÚResponsesServerEvent)ÚResponsesClientEventParamT)Úfrozenc                  óZ   — e Zd ZU dZded<   ded<   ded<   ded<   ded<   dZd	ed
<   dd„Zy)ÚResponsesWebSocketLimitsaØ  Application-selected limits for the opt-in session, not server limits.

    Byte counts use received message bytes, before parsing. They bound
    buffered event data, not transport framing, decoding, or Python object overhead.
    ``max_response_bytes`` optionally bounds the total event data fed into one
    accumulator; its default of ``None`` leaves response accumulation uncapped.
    Choose values appropriate to your output, including images and tool results.
    ÚintÚ	max_lanesÚmax_events_per_laneÚ
max_eventsÚmax_bytes_per_laneÚ	max_bytesNú
int | NoneÚmax_response_bytesc                ó¶   — t        | «      j                  «       D ]=  \  }}|dk(  r|€Œt        |t        «      rt        |t        «      s|dk  sŒ4t        d«      ‚ y )Nr$   r   z2WebSocket session limits must be positive integers)ÚvarsÚitemsÚ
isinstancer   ÚboolÚ
ValueError)ÚselfÚnameÚvalues      ú~/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/openai/lib/responses_websocket/_session.pyÚ__post_init__z&ResponsesWebSocketLimits.__post_init__.   sZ   € Ü ›:×+Ñ+Ó-ò 	W‰KˆD�%ØÐ+Ò+°°ØÜ˜e¤SÔ)¬Z¸¼tÔ-DÈÐQRË
Ü Ð!UÓVÐVñ		Wó    ©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r$   r/   © r0   r.   r   r      s5   … ñð ƒNØÓØƒOØÓØƒNØ%)Ð˜
Ó)ôWr0   r   c                  ó   — e Zd ZdZy)ÚResponsesWebSocketBufferErrorzDA session or response exceeded an application-selected buffer limit.N)r4   r5   r6   r7   r9   r0   r.   r;   r;   6   s   „ ÚNr0   r;   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚResponsesWebSocketErrorzNA request-scoped protocol error. The original event is available as ``event``.c                ó2   •— t         ‰| �  d«       || _        y )Nz7The Responses WebSocket request returned an error event)ÚsuperÚ__init__Úevent)r+   rA   Ú	__class__s     €r.   r@   z ResponsesWebSocketError.__init__=   s   ø€ Ü‰ÑÐRÔSØˆ�
r0   )rA   r   r2   r3   )r4   r5   r6   r7   r@   Ú__classcell__)rB   s   @r.   r=   r=   :   s   ø„ ÙX÷ñ r0   r=   zWeakSet[object]Ú_claimedc                óŠ   — t         5  | t        v rt        d«      ‚t        j                  | «       d d d «       y # 1 sw Y   y xY w)Nz/This connection already has a WebSocket session)Ú_claim_lockrD   ÚRuntimeErrorÚadd©Ú
connections    r.   Ú_claimrK   F   s:   € Ü	ñ !ØœÑ!ÜÐPÓQÐQÜ�‰�ZÔ ÷!÷ !ñ !ús	   ‡)9¹Ac                ód   — t         5  t        j                  | «       d d d «       y # 1 sw Y   y xY w©N)rF   rD   ÚdiscardrI   s    r.   Ú_releaserO   M   s(   € Ü	ñ %Ü×Ñ˜Ô$÷%÷ %ñ %ús   ‡&¦/c                ór   — t        | t        «      rt        d| «      j                  |«      S t	        | |d «      S )Nzdict[str, Any])r(   Údictr   ÚgetÚgetattr)rA   r,   s     r.   Ú_fieldrT   R   s6   € Ü6@ÀÌÔ6MŒ4Ð  %Ó(×,Ñ,¨TÓ2ÐmÔSZÐ[`ÐbfÐhlÓSmÐmr0   c                ó   — t        | t        «      r| j                  d¬«      n
t        | «      }t	        |j                  d«      dk(  «      }|rd|v r|d   |k7  rt        d«      ‚|�||d<   t        j                  t        |t        «      «      |fS )NT)Úexclude_unsetÚtypezresponse.createÚ	stream_idz-The command stream_id does not match its lane)r(   r   Úto_dictrQ   r)   rR   r*   ÚjsonÚdumpsr   r   )rA   rX   ÚdataÚ	is_creates       r.   Ú_commandr^   V   sŒ   € Ü0:¸5Ä)Ô0Lˆ5�=‰= tˆ=Ô,ÔRVÐW\ÓR]€DÜ�T—X‘X˜fÓ%Ð):Ñ:Ó;€IÙØ˜$Ñ 4¨Ñ#4¸	Ò#AÜÐLÓMÐMØÐ Ø )ˆD�ÑÜ�:‰:”o dÔ,EÓFÓGÈÐRÐRr0   c                  ó   — e Zd Zdd„Zdd„Zy)Ú_Accumulatorc                óJ   — || _         d| _        d | _        d | _        d | _        y )Nr   )ÚlimitÚsizeÚstateÚfinalÚerror)r+   rb   s     r.   r@   z_Accumulator.__init__b   s%   € ØˆŒ
ØˆŒ	Ø9=ˆŒ
Ø&*ˆŒ
Ø'+ˆ�
r0   c           	     óL  — t        |d«      }|dk(  r/d| _        d | _        d | _        t	        t
        t
        ¬«      | _        |dk(  r&d | _        d| _        d | _        t        |«      | _        y | j                  �y |dv }|dv }|rt        |d«      €t        d	«      ‚|s|rS| xj                  |z  c_        | j                  �2| j                  | j                  kD  rd | _        d | _        t        d
«      ‚| j                  �6|r4| j                  j                  t        t        t        |d¬«      «      «       |rët        t        t        |d«      «      | _        |dk(  r(| j                  �| j                  j                   | _        n�| j                  �„t#        | j                  dd «      €mt        | j                  «      | _        t%        | j                  j&                  «      D �cg c]  }| j                  j&                  |   ‘Œ c}| j                  _        d | _        d| _        y y c c}w )NrW   úresponse.createdr   )Úinput_toolsÚtext_formatrf   >   úresponse.output_item.donerh   úresponse.completed>   úresponse.failedrl   úresponse.incompleteÚresponsez,Terminal WebSocket event is missing responsez1Response accumulation exceeded max_response_bytesT)Údeeprl   Úoutput)rT   rc   re   rf   r   r   rd   r=   r*   rb   r;   Úhandle_eventr   r   r   r   Ú_completed_responserS   ÚsortedÚ_completed_outputrq   )r+   rA   rc   ÚkindÚ
compatibleÚterminalÚindexs          r.   rH   z_Accumulator.addi   sÚ  € Ü�e˜VÓ$ˆØÐ%Ò%ØˆDŒIØˆDŒJØˆDŒJÜ,¼Ì4ÔPˆDŒJØ�7Š?ØˆDŒJØˆDŒIØˆDŒJÜ0°Ó7ˆDŒJØØ�:‰:Ð!Øð
 ð 
ð 
ˆ
ð
 Ð[Ð[ˆÙœ˜u jÓ1Ð9ÜÐKÓLÐLÙ™Ø�IŠI˜Ñ�IØ�z‰zÐ%¨$¯)©)°d·j±jÒ*@Ø!�”
Ø!�”
Ü3Ð4gÓhÐhØ�:‰:Ð!¡jà�J‰J×#Ñ#¤DÔ)<¼jÈÐUYÔ>ZÓ$[Ô\ÙÜœh¬¨u°jÓ(AÓBˆDŒJØÐ+Ò+°·
±
Ð0FØ!ŸZ™Z×;Ñ;�•
Ø—‘Ð'¬G°D·J±JÀÈ$Ó,OÐ,WÜ'¨¯
©
Ó3�”
äEKÈDÏJÉJ×LhÑLhÓEiö%Ø<A�D—J‘J×0Ñ0°Ó7ò%�—
‘
Ô!ð ˆDŒJØˆD�Ið ùò%s   Ç H!N)rb   r#   r2   r3   ©rA   r   rc   r   r2   r3   )r4   r5   r6   r@   rH   r9   r0   r.   r`   r`   a   s   „ ó,ô.r0   r`   c                  ó   — e Zd Zdd„Zy)Ú
_LaneStatec                óÖ   — || _         t        «       | _        d| _        d| _        d| _        d | _        d| _        d| _        t        j                  «       | _        t        |«      | _        y ©Nr   F)rX   r   Úqueuerc   ÚclosedÚ	in_flightÚclosed_connectionÚreceived_generationÚconsumed_generationÚasyncioÚEventÚwaker`   Úaccumulator)r+   rX   rb   s      r.   r@   z_LaneState.__init__›   sY   € Ø"ˆŒÜ>C»gˆŒ
ØˆŒ	ØˆŒØˆŒØ04ˆÔØ#$ˆÔ Ø#$ˆÔ Ü—M‘M“OˆŒ	Ü'¨Ó.ˆÕr0   N)rX   ú
str | Nonerb   r#   r2   r3   )r4   r5   r6   r@   r9   r0   r.   r|   r|   š   s   „ ô
/r0   r|   c                  óZ   — e Zd Z	 	 	 	 	 	 d
d„Zdd„Zdd„Zdd„Zdd„Zddd„Zdd„Z	dd	„Z
y)Ú_Routerc                óÄ   — || _         || _        t        j                  «       | _        i | _        d| _        d| _        d| _        d | _	        | j                  d «      | _        y r~   )rJ   ÚlimitsÚ	threadingÚ	ConditionÚ	conditionÚlanesÚeventsrc   Úendedrf   ÚregisterÚdefault)r+   r�   rJ   s      r.   r@   z_Router.__init__©   sU   € ð %ˆŒØˆŒÜ"×,Ñ,Ó.ˆŒØ35ˆŒ
ØˆŒØˆŒ	ØˆŒ
Ø+/ˆŒ
Ø—}‘} TÓ*ˆ�r0   c                óî  — |�1t        |t        «      rt        j                  d|«      €t	        d«      ‚| j
                  5  | j                  rt        d«      ‚|| j                  v rt	        d«      ‚t        | j                  «      | j                  j                  k\  rt        d«      ‚t        || j                  j                  «      }|| j                  |<   |€|| _        |cd d d «       S # 1 sw Y   y xY w)Nz[A-Za-z0-9_.-]{1,256}uX   stream_id must be None or 1â€“256 ASCII letters, digits, underscores, hyphens or periodszThe WebSocket session has endedz0A lane with this stream_id is already registeredzThe session exceeded max_lanes)r(   ÚstrÚreÚ	fullmatchr*   r�   r“   rG   r‘   Úlenr�   r   r;   r|   r$   r•   ©r+   rX   Úlanes      r.   r”   z_Router.register¶   sÑ   € ØÐ Ü˜9¤cÔ*¬b¯l©lÐ;SÐU^Ó._Ð.gäÐwÓxÐxØ�^‰^ñ 	Ø�zŠzÜ"Ð#DÓEÐEØ˜DŸJ™JÑ&Ü Ð!SÓTÐTÜ�4—:‘:‹ $§+¡+×"7Ñ"7Ò7Ü3Ð4TÓUÐUÜ˜i¨¯©×)GÑ)GÓHˆDØ$(ˆD�J‰J�yÑ!ØÐ Ø#�”Ø÷	÷ 	ò 	ús   Á B!C+Ã+C4c                ó6  — | j                   5  |j                  r
	 d d d «       y d|_        | j                  j                  |_        | xj
                  t        |j                  «      z  c_        | xj                  |j                  z  c_        |j                  j                  «        d|_        t        | j                  j                  «      |_        |j                  j                  «        | j                   j!                  «        d d d «       y # 1 sw Y   y xY w)NTr   )r�   r€   rJ   Ú_connectionr‚   r’   rš   r   rc   Úclearr`   r�   r$   rˆ   r‡   ÚsetÚ
notify_all©r+   rœ   s     r.   Údetachz_Router.detachÈ   sÂ   € Ø�^‰^ñ 	(Ø�{Š{Ø÷	(ð 	(ð ˆDŒKØ%)§_¡_×%@Ñ%@ˆDÔ"Ø�KŠKœ3˜tŸz™z›?Ñ*�KØ�IŠI˜Ÿ™Ñ"�IØ�J‰J×ÑÔØˆDŒIÜ+¨D¯K©K×,JÑ,JÓKˆDÔð �I‰I�M‰MŒOØ�N‰N×%Ñ%Ô'÷	(÷ 	(ñ 	(ús   �D¤C"DÄDc                óð   — | j                   5  t        | j                  j                  «       «      D ].  \  }}|j                  sŒ|j
                  |usŒ"| j                  |= Œ0 	 d d d «       y # 1 sw Y   y xY wrM   )r�   Úlistr‘   r'   r€   r‚   )r+   rJ   rX   rœ   s       r.   Úreconnectedz_Router.reconnectedØ   se   € Ø�^‰^ñ 	.Ü#'¨¯
©
×(8Ñ(8Ó(:Ó#;ò .‘�	˜4Ø—;“; 4×#9Ñ#9ÀÒ#Kð Ÿ
™
 9Ñ-ñ	.÷	.÷ 	.ñ 	.ús   �6A,ÁA,ÁA,Á,A5c                ó&  — | j                   5  | j                  r
	 d d d «       y t        |d«      }| j                  j	                  || j
                  «      }|j                  r| j
                  }|j                  r
	 d d d «       y t        |j                  «      | j                  j                  k\  so| j                  | j                  j                  k\  sL|j                  |z   | j                  j                  kD  s&| j                  |z   | j                  j                  kD  rt!        d«      ‚|j                  j#                  ||f«       t        |d«      |j$                  k(  r+t        |d«      dk(  r|xj&                  dz  c_        d|_        |xj                  |z  c_        | xj                  |z  c_        | xj                  dz  c_        |j*                  j-                  «        | j                   j/                  «        d d d «       y # 1 sw Y   y xY w)NrX   z.The session exceeded its buffered event limitsrW   rh   é   T)r�   r“   rT   r‘   rR   r•   r€   rš   r   r�   r   r’   r    rc   r!   r"   r;   ÚappendrX   rƒ   r�   r‡   r    r¡   )r+   rA   rc   rX   rœ   s        r.   Údispatchz_Router.dispatchà   s‡  € Ø�^‰^ñ 	(Ø�zŠzØ÷	(ð 	(ô ˜u kÓ2ˆIØ—:‘:—>‘> )¨T¯\©\Ó:ˆDØ�{Š{Ø—|‘|�Ø�{Š{Ø÷	(ð 	(ô �D—J‘J“ 4§;¡;×#BÑ#BÒBØ—;‘; $§+¡+×"8Ñ"8Ò8Ø—9‘9˜tÑ# d§k¡k×&DÑ&DÒDØ—9‘9˜tÑ# d§k¡k×&;Ñ&;Ò;ä3Ð4dÓeÐeØ�J‰J×Ñ˜u d˜mÔ,Ü�e˜[Ó)¨T¯^©^Ò;ÄÀuÈfÓ@UÐYkÒ@kØ×(Ò(¨AÑ-Õ(Ø!%�”Ø�IŠI˜Ñ�IØ�IŠI˜Ñ�IØ�KŠK˜1Ñ�KØ�I‰I�M‰MŒOØ�N‰N×%Ñ%Ô'÷1	(÷ 	(ñ 	(ús   �H¤AHÂE:HÈHNc                ó   — | j                   5  d| _        | j                  €|| _        | j                  j	                  «       D ]  }|j
                  j                  «        Œ | j                   j                  «        d d d «       y # 1 sw Y   y xY w)NT)r�   r“   rf   r‘   Úvaluesr‡   r    r¡   )r+   rf   rœ   s      r.   Úfinishz_Router.finishû   so   € Ø�^‰^ñ 	(ØˆDŒJØ�z‰zÐ!Ø"�”
ØŸ
™
×)Ñ)Ó+ò  �Ø—	‘	—‘•ð à�N‰N×%Ñ%Ô'÷	(÷ 	(ñ 	(ús   �A.BÂBc                óö  — |j                   rt        d«      ‚|j                  rï|j                  j                  «       \  }}|xj                  |z  c_        | xj                  |z  c_        | xj
                  dz  c_        t        |d«      |j                  k7  r|S 	 |j                  j                  ||«       t        |d«      dk(  r|xj                  dz  c_        d|_        |S t        |d«      dv r|j                  |j                  kD  |_        |S | j                   r#| j                  �| j                  ‚t        d«      ‚y # t        $ r,}||j                  _        d |j                  _        Y d }~Œ»d }~ww xY w)	NzThe WebSocket lane is detachedr¨   rX   rW   rh   T>   rf   rm   rl   rn   zThe WebSocket connection closed)r€   ÚEOFErrorr   Úpopleftrc   r’   rT   rX   rˆ   rH   Ú	Exceptionrf   rd   r„   r�   rƒ   r“   )r+   rœ   rA   rc   Úexcs        r.   Úpopz_Router.pop  sL  € à�;Š;ÜÐ;Ó<Ð<Ø�:Š:ØŸ*™*×,Ñ,Ó.‰KˆE�4Ø�IŠI˜Ñ�IØ�IŠI˜Ñ�IØ�KŠK˜1Ñ�Kô �e˜[Ó)¨T¯^©^Ò;Ø�ð.Ø× Ñ ×$Ñ$ U¨DÔ1ô �e˜VÓ$Ð(:Ò:Ø×(Ò(¨AÑ-Õ(Ø!%�”ð ˆLô ˜˜vÓ&Ð*sÑsØ!%×!9Ñ!9¸D×<TÑ<TÑ!T�”ØˆLØ�:Š:Ø�z‰zÐ%Ø—j‘jÐ ÜÐ<Ó=Ð=Øøô ò .Ø),�× Ñ Ô&Ø)-�× Ñ ×&Ñ&ûð.ús   ÂE Å	E8Å"E3Å3E8c                ó  — | j                   5  | j                  s|j                  rt        d«      ‚|rB|j                  rt        d«      ‚t        | j                  j                  «      |_        d|_        d d d «       y # 1 sw Y   y xY w)Nú+The WebSocket session or lane is not activezGConsume the current response before sending another create on this laneT)	r�   r“   r€   rG   r�   r`   r�   r$   rˆ   )r+   rœ   r]   s      r.   Úpreparez_Router.prepare"  sk   € Ø�^‰^ñ 	&Ø�zŠz˜TŸ[š[Ü"Ð#PÓQÐQÙØ—>’>Ü&Ð'pÓqÐqÜ#/°·±×0NÑ0NÓ#O�Ô Ø!%�”÷	&÷ 	&ñ 	&ús   �A(A>Á>B)r�   r   rJ   z.ResponsesConnection | AsyncResponsesConnectionr2   r3   )rX   Úobjectr2   r|   ©rœ   r|   r2   r3   ©rJ   r·   r2   r3   rz   rM   )rf   úBaseException | Noner2   r3   )rœ   r|   r2   zResponsesServerEvent | None)rœ   r|   r]   r)   r2   r3   )r4   r5   r6   r@   r”   r£   r¦   rª   r­   r³   r¶   r9   r0   r.   r‹   r‹   ¨   sB   „ ð+Ø.ð+Ø<jð+à	ó+óó$(ó .ó(ô6(óô<&r0   r‹   c                  óD   — e Zd ZdZd	d„Zd
d„Zddœdd„Zddœdd„Zdd„Zy)ÚResponsesWebSocketLanea  A routed view of one session. ``close`` detaches it without closing the socket.

    Use a single consumer per lane. Cancel a synchronous wait with ``recv(timeout=...)``;
    a timeout never consumes an event. Different lanes may be consumed concurrently.
    c                ó    — || _         || _        y rM   ©Ú_sessionÚ_state©r+   Úsessionrd   s      r.   r@   zResponsesWebSocketLane.__init__4  ó   € ØˆŒØˆ�r0   c                óp  — | j                   j                  j                  }| j                   j                  | j                  «       t        || j                  j                  «      \  }}| j                   j                  j                  5  | j                   j                  j                  rt        d«      ‚|| j                   j                  j                  urt        d«      ‚| j                   j                  j                  | j                  |«       d d d «       |j                  |«       y # 1 sw Y   ŒxY w)NúFThe WebSocket connection is reconnecting; restore state before sendingz>The WebSocket connection changed; restore state before sending)r¿   rJ   rž   Ú_check_sendrÀ   r^   rX   Ú_connection_lockÚ_is_reconnectingrG   Ú_routerr¶   Úsend©r+   rA   rJ   r\   r]   s        r.   rÊ   zResponsesWebSocketLane.send8  sâ   € à—]‘]×-Ñ-×9Ñ9ˆ
Ø�‰×!Ñ! $§+¡+Ô.ä" 5¨$¯+©+×*?Ñ*?Ó@‰ˆˆiØ�]‰]×%Ñ%×6Ñ6ñ 	BØ�}‰}×'Ñ'×8Ò8Ü"Ð#kÓlÐlØ §¡×!9Ñ!9×!EÑ!EÑEÜ"Ð#cÓdÐdà�M‰M×!Ñ!×)Ñ)¨$¯+©+°yÔA÷	Bð 	�‰˜Õ÷	Bð 	Bús   Â	B	D,Ä,D5N©Útimeoutc               ó¼  — | j                   j                  €t        d«      ‚|€d nt        j                  «       |z   }| j                   j
                  }|j                  5  	 |j                  | j                  «      }|�|cd d d «       S |€d n|t        j                  «       z
  }|�|dk  rt        d«      ‚|j                  j                  |«       Œq# 1 sw Y   y xY w)Nú3Enter the WebSocket session before receiving eventsr   z1Timed out waiting for a Responses WebSocket event)r¿   Ú_threadrG   ÚtimeÚ	monotonicrÉ   r�   r³   rÀ   ÚTimeoutErrorÚwait)r+   rÍ   ÚdeadlineÚrouterrA   Ú	remainings         r.   ÚrecvzResponsesWebSocketLane.recvI  sÐ   € Ø�=‰=× Ñ Ð(ÜÐTÓUÐUØ"˜?‘4´·±Ó0@À7Ñ0JˆØ—‘×&Ñ&ˆØ×Ññ 	1ØØŸ
™
 4§;¡;Ó/�ØÐ$Ø ÷		1ñ 	1ð
 %-Ð$4™D¸(ÄTÇ^Á^ÓEUÑ:U�	ØÐ(¨Y¸!ª^Ü&Ð'ZÓ[Ð[Ø× Ñ ×%Ñ% iÔ0ð ÷	1ð 	1ús   Á CÂ	A	CÃCc               óÌ  — |€dnt        j                  «       |z   }| j                  j                  }| j                  j                  j
                  �¼| j                  j                  |k(  r£| j                  j                  |kD  rŠ|€dn t        d|t        j                  «       z
  «      }| j                  |¬«       | j                  j                  j
                  �3| j                  j                  |k(  r| j                  j                  |kD  rŒŠ| j                  j                  j
                  €˜| j                  j                  j                  � | j                  j                  j                  ‚|€dn t        d|t        j                  «       z
  «      }| j                  |¬«       | j                  j                  j
                  €Œ˜| j                  j                  j
                  S )zNConsume this response's remaining events; failed/incomplete are final results.Ng        rÌ   )
rÑ   rÒ   rÀ   r„   rˆ   re   rƒ   ÚmaxrØ   rf   )r+   rÍ   rÕ   Ú
generationr×   s        r.   Úget_final_responsez)ResponsesWebSocketLane.get_final_responseX  sl  € à"˜?‘4´·±Ó0@À7Ñ0JˆØ—[‘[×4Ñ4ˆ
à�K‰K×#Ñ#×)Ñ)Ð5Ø—‘×/Ñ/°:Ò=Ø—‘×/Ñ/°*Ò<à (Ð 0™´c¸#¸xÌ$Ï.É.ÓJZÑ?ZÓ6[ˆIØ�I‰I˜iˆIÔ(ð �K‰K×#Ñ#×)Ñ)Ð5Ø—‘×/Ñ/°:Ò=Ø—‘×/Ñ/°*Ó<ð �k‰k×%Ñ%×+Ñ+Ð3Ø�{‰{×&Ñ&×,Ñ,Ð8Ø—k‘k×-Ñ-×3Ñ3Ð3Ø (Ð 0™´c¸#¸xÌ$Ï.É.ÓJZÑ?ZÓ6[ˆIØ�I‰I˜iˆIÔ(ð	 �k‰k×%Ñ%×+Ñ+Ñ3ð
 �{‰{×&Ñ&×,Ñ,Ð,r0   c                ób   — | j                   j                  j                  | j                  «       y rM   ©r¿   rÉ   r£   rÀ   ©r+   s    r.   ÚclosezResponsesWebSocketLane.closej  ó   € Ø�‰×Ñ×$Ñ$ T§[¡[Õ1r0   )rÂ   ÚResponsesWebSocketSessionrd   r|   r2   r3   ©rA   ú0ResponsesClientEvent | ResponsesClientEventParamr2   r3   )rÍ   úfloat | Noner2   r   )rÍ   rå   r2   r   r1   ©	r4   r5   r6   r7   r@   rÊ   rØ   rÜ   rà   r9   r0   r.   r¼   r¼   -  s+   „ ñóóð" /3õ 1ð =Aõ -ô$2r0   r¼   c                  ób   — e Zd ZdZdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zddd„Zdd„Z	dd	„Z
dd
„Zy)râ   a`  Own one existing connection and route its events with one background reader.

    Enter the session before sending. While active, consume events only through
    its lanes, not the connection's recv/iterator/dispatch_events. Closing the
    session closes its connection; closing a lane does not. Register lanes before
    sending requests. Events for unregistered lanes go to the default lane for
    inspection, without changing its response state. Every registered lane, including
    the default and closed lanes, reserves its ID and max_lanes slot until reconnect.
    Keep a lane open for sequential responses. Reconnect releases closed lanes;
    open lanes remain registered on the new socket.

    Recovery remains the existing connection's opt-in policy. Reconnecting a
    transport does not restore server-side response state or replay lane sends.
    c               ó¨   — || _         t        ||«      | _        d | _        d| _        d| _        t        | | j                  j                  «      | _        y ©NF)rJ   r‹   rÉ   rÐ   Ú_closedÚ_owns_connectionr¼   r•   ©r+   rJ   r�   s      r.   r@   z"ResponsesWebSocketSession.__init__~  sE   € Ø$ˆŒÜ˜v zÓ2ˆŒØ04ˆŒØˆŒØ %ˆÔÜ-¨d°D·L±L×4HÑ4HÓIˆ�r0   c                óR  — | j                   €| j                  rt        d«      ‚t        | j                  «       d| _        t        j                  | j                  dd¬«      | _         	 | j                   j                  «        | S # t        $ r | j                  «        d | _         ‚ w xY w)Nú,A WebSocket session can only be entered onceTúresponses-websocket)Útargetr,   Údaemon)rÐ   rê   rG   rK   rJ   rë   rŽ   ÚThreadÚ_readÚstartr±   Ú_release_connectionrß   s    r.   Ú	__enter__z#ResponsesWebSocketSession.__enter__†  s‘   € Ø�<‰<Ð# t§|¢|ÜÐMÓNÐNÜˆt�‰ÔØ $ˆÔÜ ×'Ñ'¨t¯z©zÐ@UÐ^bÔcˆŒð	Ø�L‰L×ÑÔ ð
 ˆøô	 ò 	Ø×$Ñ$Ô&ØˆDŒLØð	ús   Á(B Â"B&c                óž   — t         5  | j                  r&t        j                  | j                  «       d| _        d d d «       y # 1 sw Y   y xY wré   )rF   rë   rD   rN   rJ   rß   s    r.   rõ   z-ResponsesWebSocketSession._release_connection”  s=   € äñ 	.Ø×$Ò$Ü× Ñ  §¡Ô1Ø(-�Ô%÷	.÷ 	.ñ 	.ús   ‡3AÁAc                óJ   — 	 | j                  «        y # t        $ r |€‚ Y y w xY wrM   ©rà   r±   ©r+   Úexc_typer²   Ú	tracebacks       r.   Ú__exit__z"ResponsesWebSocketSession.__exit__›  s,   € ð	Ø�J‰J�LøÜò 	Øˆ{Øñ ð	ús   ‚ “"¡"Nc                ób   — t        | | j                  j                  |«      «      }|€|| _        |S rM   )r¼   rÉ   r”   r•   r›   s      r.   rœ   zResponsesWebSocketSession.lane¤  s/   € Ü% d¨D¯L©L×,AÑ,AÀ)Ó,LÓMˆØÐØˆDŒLØˆr0   c                óÐ   — | j                   �.| j                  s"| j                  j                  s|j                  rt        d«      ‚| j                  j                  rt        d«      ‚y ©Nrµ   rÅ   )rÐ   rê   rÉ   r“   r€   rG   rJ   rÈ   r¢   s     r.   rÆ   z%ResponsesWebSocketSession._check_sendª  sN   € Ø�<‰<Ð 4§<¢<°4·<±<×3EÒ3EÈÏÊÜÐLÓMÐMØ�?‰?×+Ò+ÜÐgÓhÐhð ,r0   c                óœ  — ddl m}m} 	 	 	 | j                  j	                  «       }| j                  j                  | j                  j                  |«      t        |«      «       ~Œ[# |$ r Y n�|$ r‰}| j                  j                  |«      r4| j                  j                  | j                  j                  «       Y d }~Œ¶| j                  j                  j                  «       }|rt        d|¬«      |‚‚ d }~ww xY wn\# t        $ rP}| j                  j!                  |«       	 | j                  j#                  «        n# t        $ r Y nw xY wY d }~nd }~ww xY w| j                  j!                  «        | j$                  r| j'                  «        y y # | j                  j!                  «        | j$                  r| j'                  «        w w xY w©Nr   )ÚConnectionClosedOKÚConnectionClosedErrorz0WebSocket connection closed with unsent messages)Úunsent_messages)Úwebsockets.exceptionsr  r  rJ   Ú
recv_bytesÚ
_reconnectrÉ   r¦   rž   Ú_send_queueÚdrainr   rª   Úparse_eventrš   r±   r­   rà   rê   rõ   ©r+   r  r  r\   r²   Úunsents         r.   ró   zResponsesWebSocketSession._read°  s  € ßSð	+ØðØŸ?™?×5Ñ5Ó7�Dð —‘×%Ñ% d§o¡o×&AÑ&AÀ$Ó&GÌÈTËÔSØð! øð *ò ÙØ,ò 	Ø—‘×1Ñ1°#Ô6ØŸ™×0Ñ0°·±×1LÑ1LÔMÜ Ø!Ÿ_™_×8Ñ8×>Ñ>Ó@�FÙÜ<ØNÐ`fôà"ð#ð ûð	úð øô ò 	Ø�L‰L×Ñ Ô$ðØ—‘×%Ñ%Õ'øÜò Ùðÿûð		úð �L‰L×ÑÔ!Ø�|Š|Ø×(Ñ(Õ*ð øð �L‰L×ÑÔ!Ø�|Š|Ø×(Ñ(Õ*ð ús�   ŠC> ŒA& ¦A C> Á&C:Á+C> Á-C:Á1A
C5Â;C> Ã 5C5Ã5C:Ã:C> Ã=F Ã>	EÄEÄ#D>Ä=EÄ>	E
ÅEÅ	E
Å
EÅF ÅEÅF Æ9Gc                óÎ  — | j                   r'| j                  �| j                  j                  «       sy d| _         | j                  j	                  «        | j                  €y 	 | j
                  j                  «        | j                  t        j                  «       urR| j                  j                  d¬«       | j                  j                  «       rt        d«      ‚| j                  «        y y # | j                  t        j                  «       urR| j                  j                  d¬«       | j                  j                  «       rt        d«      ‚| j                  «        w w xY w)NTé   rÌ   z7The Responses WebSocket reader did not stop after close)rê   rÐ   Úis_aliverÉ   r­   rJ   rà   rŽ   Úcurrent_threadÚjoinrG   rõ   rß   s    r.   rà   zResponsesWebSocketSession.closeÐ  s  € Ø�<Š<˜TŸ\™\Ð1¸¿¹×9NÑ9NÔ9PØØˆŒØ�‰×ÑÔØ�<‰<ÐØð	+Ø�O‰O×!Ñ!Ô#à�|‰|¤9×#;Ñ#;Ó#=Ñ=Ø—‘×!Ñ!¨!Ð!Ô,Ø—<‘<×(Ñ(Ô*Ü&Ð'`ÓaÐaØ×(Ñ(Õ*ð	 >øˆt�|‰|¤9×#;Ñ#;Ó#=Ñ=Ø—‘×!Ñ!¨!Ð!Ô,Ø—<‘<×(Ñ(Ô*Ü&Ð'`ÓaÐaØ×(Ñ(Õ*ð	 >ús   Á#C0 Ã0A4E$)rJ   r   r�   r   r2   r3   ©r2   r
   r1   ©rû   ztype[BaseException] | Noner²   rº   rü   zTracebackType | Noner2   r3   rM   )rX   r‰   r2   r¼   r¸   )r4   r5   r6   r7   r@   rö   rõ   rý   rœ   rÆ   ró   rà   r9   r0   r.   râ   râ   n  sR   „ ñóJóó.ðØ2ðØ9MðØZnðà	óôóió+ô@+r0   râ   c                  ó8   — e Zd ZdZdd„Zd	d„Zd
d„Zdd„Zdd„Zy)ÚAsyncResponsesWebSocketLanezKAn async routed lane. Canceling a recv/final-response wait never closes it.c                ó    — || _         || _        y rM   r¾   rÁ   s      r.   r@   z$AsyncResponsesWebSocketLane.__init__ä  rÃ   r0   c              ƒ  ór  K  — | j                   j                  j                  }| j                   j                  | j                  «       t        || j                  j                  «      \  }}| j                   j                  j                  | j                  |«       |j                  |«      ƒ d {  –—†  y 7 Œ­wrM   )
r¿   rJ   rž   rÆ   rÀ   r^   rX   rÉ   r¶   rÊ   rË   s        r.   rÊ   z AsyncResponsesWebSocketLane.sendè  s{   è ø€ à—]‘]×-Ñ-×9Ñ9ˆ
Ø�‰×!Ñ! $§+¡+Ô.Ü" 5¨$¯+©+×*?Ñ*?Ó@‰ˆˆiØ�‰×Ñ×%Ñ% d§k¡k°9Ô=à�o‰o˜dÓ#×#Ò#ús   ‚B-B7Â/B5Â0B7c              ƒ  ó²  K  — | j                   j                  €t        d«      ‚| j                   j                  }	 |j                  5  |j                  | j                  «      }|�|cd d d «       S | j                  j                  j                  «        d d d «       | j                  j                  j                  «       ƒ d {  –—†  ŒŽ# 1 sw Y   Œ6xY w7 Œ­w)NrÏ   )
r¿   Ú_taskrG   rÉ   r�   r³   rÀ   r‡   rŸ   rÔ   )r+   rÖ   rA   s      r.   rØ   z AsyncResponsesWebSocketLane.recvñ  s·   è ø€ Ø�=‰=×ÑÐ&ÜÐTÓUÐUØ—‘×&Ñ&ˆØØ×!Ñ!ñ )ØŸ
™
 4§;¡;Ó/�ØÐ$Ø ÷)ñ )ð —‘× Ñ ×&Ñ&Ô(÷	)ð
 —+‘+×"Ñ"×'Ñ'Ó)×)Ð)ð ÷)ð )úð
 *ús6   ‚ACÁC	Á&
CÁ0$C	Â/CÃCÃCÃ	CÃCc              ƒ  ó,  K  — | j                   j                  }| j                   j                  j                  ��| j                   j                  |k(  r„| j                   j                  |kD  rk| j                  «       ƒ d {  –—†  | j                   j                  j                  �3| j                   j                  |k(  r| j                   j                  |kD  rŒk| j                   j                  j                  €y| j                   j                  j                  � | j                   j                  j                  ‚| j                  «       ƒ d {  –—†  | j                   j                  j                  €Œy| j                   j                  j                  S 7 �Œ7 ŒH­wrM   )rÀ   r„   rˆ   re   rƒ   rØ   rf   )r+   rÛ   s     r.   rÜ   z.AsyncResponsesWebSocketLane.get_final_responseý  s(  è ø€ Ø—[‘[×4Ñ4ˆ
à�K‰K×#Ñ#×)Ñ)Ð5Ø—‘×/Ñ/°:Ò=Ø—‘×/Ñ/°*Ò<à—)‘)“+×Ðð	 �K‰K×#Ñ#×)Ñ)Ð5Ø—‘×/Ñ/°:Ò=Ø—‘×/Ñ/°*Ó<ð �k‰k×%Ñ%×+Ñ+Ð3Ø�{‰{×&Ñ&×,Ñ,Ð8Ø—k‘k×-Ñ-×3Ñ3Ð3Ø—)‘)“+×Ðð �k‰k×%Ñ%×+Ñ+Ñ3ð �{‰{×&Ñ&×,Ñ,Ð,ð ùð ús2   ‚A<FÁ>FÁ?AFÃA3FÅ	FÅ
$FÅ/!FÆFc                ób   — | j                   j                  j                  | j                  «       y rM   rÞ   rß   s    r.   rà   z!AsyncResponsesWebSocketLane.close  rá   r0   N)rÂ   ÚAsyncResponsesWebSocketSessionrd   r|   r2   r3   rã   )r2   r   )r2   r   r1   ræ   r9   r0   r.   r  r  á  s   „ ÙUóó$ó
*ó-ô2r0   r  c                  ób   — e Zd ZdZdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zddd„Zdd„Zdd„Z	dd	„Z
dd
„Zy)r  zOAsync counterpart of ResponsesWebSocketSession, owning the connection lifetime.c               ó¨   — || _         t        ||«      | _        d | _        d | _        d| _        t        | | j                  j                  «      | _        y ré   )rJ   r‹   rÉ   r  Ú_close_taskrê   r  r•   rì   s      r.   r@   z'AsyncResponsesWebSocketSession.__init__  sE   € Ø$ˆŒÜ˜v zÓ2ˆŒØ04ˆŒ
Ø6:ˆÔØˆŒÜ2°4¸¿¹×9MÑ9MÓNˆ�r0   c              ƒ  óÒ   K  — | j                   €| j                  rt        d«      ‚t        | j                  «       t        j                  | j                  «       d¬«      | _         | S ­w)Nrî   rï   ©r,   )r  rê   rG   rK   rJ   r…   Úcreate_taskró   rß   s    r.   Ú
__aenter__z)AsyncResponsesWebSocketSession.__aenter__  sN   è ø€ Ø�:‰:Ð! T§\¢\ÜÐMÓNÐNÜˆt�‰ÔÜ×(Ñ(¨¯©«Ð<QÔRˆŒ
Øˆùs   ‚A%A'c              ƒ  óf   K  — 	 | j                  «       ƒ d {  –—†  y 7 Œ# t        $ r |€‚ Y y w xY w­wrM   rù   rú   s       r.   Ú	__aexit__z(AsyncResponsesWebSocketSession.__aexit__!  s5   è ø€ ð	Ø—*‘*“,×ÒùÜò 	Øˆ{Øñ ð	üs(   ‚1„ —˜ œ1� Ÿ.«1­.®1Nc                ób   — t        | | j                  j                  |«      «      }|€|| _        |S rM   )r  rÉ   r”   r•   r›   s      r.   rœ   z#AsyncResponsesWebSocketSession.lane*  s/   € Ü*¨4°·±×1FÑ1FÀyÓ1QÓRˆØÐØˆDŒLØˆr0   c                óÐ   — | j                   �.| j                  s"| j                  j                  s|j                  rt        d«      ‚| j                  j                  rt        d«      ‚y r   )r  rê   rÉ   r“   r€   rG   rJ   rÈ   r¢   s     r.   rÆ   z*AsyncResponsesWebSocketSession._check_send0  sN   € Ø�:‰:Ð §¢°·±×1CÒ1CÀtÇ{Â{ÜÐLÓMÐMØ�?‰?×+Ò+ÜÐgÓhÐhð ,r0   c              ƒ  óŽ  K  — ddl m}m} 	 	 	 | j                  j	                  «       ƒ d {  –—† }| j                  j                  | j                  j                  |«      t        |«      «       ~Œc7 ŒD# |$ r Y n™|$ r’}| j                  j                  |«      ƒ d {  –—†7  r4| j                  j                  | j                  j                  «       Y d }~ŒÉ| j                  j                  j                  «       }|rt        d|¬«      |‚‚ d }~ww xY wnx# t        j                   $ r ‚ t"        $ rY}| j                  j%                  |«       	 | j                  j'                  «       ƒ d {  –—†7   n# t"        $ r Y nw xY wY d }~nd }~ww xY w| j                  j%                  «        y # | j                  j%                  «        w xY w­wr  )r  r  r  rJ   r  r  rÉ   r¦   rž   r	  r
  r   rª   r  rš   r…   ÚCancelledErrorr±   r­   rà   r  s         r.   ró   z$AsyncResponsesWebSocketSession._read6  sp  è ø€ ßSð	"ØðØ!%§¡×!;Ñ!;Ó!=×=�Dð —‘×%Ñ% d§o¡o×&AÑ&AÀ$Ó&GÌÈTËÔSØð! à=ùØ)ò ÙØ,ò 	Ø!Ÿ_™_×7Ñ7¸Ó<×<Ñ<ØŸ™×0Ñ0°·±×1LÑ1LÔMÜ Ø!Ÿ_™_×8Ñ8×>Ñ>Ó@�FÙÜ<ØNÐ`fôà"ð#ð ûð	úð øô ×%Ñ%ò 	ØÜò 	Ø�L‰L×Ñ Ô$ðØ—o‘o×+Ñ+Ó-×-Ò-øÜò áðÿûð		úð �L‰L×ÑÕ!øˆD�L‰L×ÑÕ!üsÇ   ‚	GŒD ŽA2 «A0¬A2 °A D Á0A2 Á2DÁ7D Á9DÁ=D
ÂBÂ4D
ÃD Ã5D
Ä
DÄD ÄF& ÄFÄ/FÅE/Å(E+Å)E/Å.FÅ/	E;Å8FÅ:E;Å;FÅ>F& ÆFÆF& ÆGÆ&GÇGc              ƒ  ó<  K  — | j                   €cd| _        | j                  j                  «        | j                  €y t        j                  | j                  | j                  «      d¬«      | _         t        j                  | j                   «      ƒ d {  –—†  y 7 Œ­w)NTzresponses-websocket-closer"  )	r   rê   rÉ   r­   r  r…   r#  Ú_closeÚshieldrß   s    r.   rà   z$AsyncResponsesWebSocketSession.closeW  sq   è ø€ Ø×ÑÐ#ØˆDŒLØ�L‰L×ÑÔ!Ø�z‰zÐ!ØÜ&×2Ñ2°4·;±;¸t¿z¹zÓ3JÐQlÔmˆDÔä�n‰n˜T×-Ñ-Ó.×.Ò.ús   ‚BBÂBÂBc              ƒ  ó   K  — 	 |j                  «        	 |ƒ d {  –—†  | j                  j	                  «       ƒ d {  –—†  t        | j                  «       y 7 Œ<# t        j                  $ r Y ŒOw xY w7 Œ5# t        | j                  «       w xY w­wrM   )Úcancelr…   r*  rJ   rà   rO   )r+   Úreaders     r.   r,  z%AsyncResponsesWebSocketSession._closea  ss   è ø€ ð		&Ø�M‰MŒOðØ—�ð —/‘/×'Ñ'Ó)×)Ð)ä�T—_‘_Õ%ð ùÜ×)Ñ)ò áðúð *ùä�T—_‘_Õ%üsX   ‚B„A4 •A šA›A ŸA4 ¼A2½A4 ÁBÁA ÁA/Á,A4 Á.A/Á/A4 Á4BÂB)rJ   r   r�   r   r2   r3   r  r  rM   )rX   r‰   r2   r  r¸   r1   )r0  zasyncio.Task[None]r2   r3   )r4   r5   r6   r7   r@   r$  r&  rœ   rÆ   ró   rà   r,  r9   r0   r.   r  r    sP   „ ÙYóOóðØ2ðØ9MðØZnðà	óôóió"óB/ô
&r0   r  r¹   )rA   r·   r,   r—   r2   r   )rA   rä   rX   r‰   r2   ztuple[str, bool])?Ú
__future__r   r˜   rZ   rÑ   r…   rŽ   Útypesr   Útypingr   r   Úweakrefr   Úcollectionsr   Údataclassesr	   Útyping_extensionsr
   Ú_typesr   Ú_utilsr   Ú_compatr   Ú_modelsr   Ú_exceptionsr   Útypes.responsesr   r   Ústreaming.responsesr   Úresources.responses.responsesr   r   Ú&types.responses.responses_client_eventr   Ú&types.responses.responses_server_eventr   Ú,types.responses.responses_client_event_paramr   r   rG   r;   r=   rD   r8   ÚLockrF   rK   rO   rT   r^   r`   r|   r‹   r¼   râ   r  r  r9   r0   r.   ú<module>rD     s  ðÞ "ã 	Û Û Û Û Ý ß Ý Ý Ý !Ý "å Ý %Ý !Ý  Ý 9ß <Ý 5ß ZÝ JÝ JÝ Uñ �$Ô÷Wð Wó ðWô2O Lô Oô˜lô ñ $›I€ˆ/Ó %Øˆi�n‰nÓ€ó!ó%ó
nóS÷6ñ 6÷r/ñ /÷B&ñ B&÷J>2ñ >2÷Bp+ñ p+÷f+2ñ +2÷\\&ò \&r0   