+
    kHàjü  ã                  ó2   € R t ^ RIHt ^ RIt ! R R4      tR# )a¢  Per-session handoff order for Slack slash commands.

Bolt runs slash callbacks concurrently and a slash awaits its name lookups before the handoff, so
a cold ``users.info`` on an earlier slash would let a later one reach the gateway first (two
``/queue`` land in the FIFO swapped). A slash reserves its session's slot before any lookup and
hands over only after the slash ahead of it returned from ``handle_message``.
)ÚannotationsNc                  óF   € ] tR t^tR R ltR R ltR R ltR R ltR	tR
# )ÚSlashHandoffLanesc               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNone© )Úformats   "ÚO/home/ubuntu/.hermes/hermes-agent/plugins/platforms/slack/adapter_slash_lane.pyÚ__annotate__ÚSlashHandoffLanes.__annotate__   s   € ÷ 9ñ 9˜$ñ 9ó    c                	ó   € / V n         R # ©N©Útails)Úselfs   &r   Ú__init__ÚSlashHandoffLanes.__init__   s	   € à68ˆŽ
r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚkeyÚstrr   z8tuple[asyncio.Future[None] | None, asyncio.Future[None]]r	   )r
   s   "r   r   r      s   € ÷ !ñ !˜3ð !Ð#[ñ !r   c                ó¢   € V P                   P                  V4      p\        P                  ! 4       P	                  4       ;V P                   V&   pW#3# )zUTake the session's next slot; returns (slot ahead, this slot). Call before any await.)r   ÚgetÚasyncioÚget_running_loopÚcreate_future©r   r   ÚaheadÚ
handed_offs   &&  r   ÚreserveÚSlashHandoffLanes.reserve   sA   € à—
‘
—‘˜sÓ#ˆÜ'.×'?Ò'?Ó'A×'OÑ'OÓ'QÐQˆ�
‰
�3‰˜*ØÐ Ð r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   ú
str | Noner   úasyncio.Future | Noner    r   r   r	   )r
   s   "r   r   r      s+   € ÷ (ñ (˜:ð (Ð.Cð (ÐQfð (Ðkoñ (r   c                ó–   a aa€ Ve0   VP                  4       '       g   VP                  VVV 3R l4       R# S P                  SS4       R# )z¬Open the slot once this slash is done. Cancelled while waiting: the slash behind it
still waits for the one ahead, or it reaches the gateway before unfinished earlier work.Nc                ó(   <€ SP                  SS4      # r   )Ú_open)Ú_fr    r   r   s   &€€€r   Ú<lambda>Ú+SlashHandoffLanes.release.<locals>.<lambda>   s   ø€ ¨t¯z©z¸#¸zÔ/Jr   )ÚdoneÚadd_done_callbackr(   r   s   ff&fr   ÚreleaseÚSlashHandoffLanes.release   s2   ú€ ð Ò U§Z¡Z§\¢\Ø×#Ñ#Ö$JÖKà�J‰J�s˜JÖ'r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r$   r    r%   r   r   r	   )r
   s   "r   r   r   !   s"   € ÷  ñ  ˜ð  Ð1Fð  È4ñ  r   c                	ó¼   € Ve   VP                  4       '       d   R # VP                  R 4       V P                  P                  V4      VJ d   V P                  V R # R # r   )r,   Ú
set_resultr   r   )r   r   r    s   &&&r   r(   ÚSlashHandoffLanes._open!   sJ   € ØÒ §¡×!2Ò!2ÙØ×Ñ˜dÔ#Ø�:‰:�>‰>˜#Ó *Ó,Ø—
‘
˜3’ñ -r   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r!   r.   r(   Ú__static_attributes__r	   r   r   r   r      s   † õ9õ!õ(÷ ñ  r   r   )Ú__doc__Ú
__future__r   r   r   r	   r   r   Ú<module>r;      s   ðñõ #ã ÷ ó  r   