
    'j?/                        d dl Z d dlmZ d dl mZ d dlmZmZmZ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mZ d dlmZ d dlmZ d dlm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&  G d de          Z'dS )    N)wraps)Logger)ListOptionalUnionCallable	Awaitable)AsyncSaveThreadContext) AsyncAssistantThreadContextStore)AsyncioListenerRunner)build_listener_matcher)AsyncBoltRequest)BoltResponse)	BoltError)AsyncListenerAsyncCustomListener)AsyncMiddleware)AsyncListenerMatcher)!is_assistant_thread_started_event)is_user_message_event_in_assistant_thread)is_assistant_thread_context_changed_event.is_other_message_sub_event_in_assistant_thread(is_bot_message_event_in_assistant_thread)is_used_without_argumentc                      e Zd ZU eee                  ed<   eee                  ed<   eee                  ed<   eee                  ed<   ee         ed<   eej	                 ed<   dddd	d
e
dee         deej	                 fdZdddddeeedef         ef                  deeeef                  deeed                           fdZdddddeeedef         ef                  deeeef                  deeed                           fdZdddddeeedef         ef                  deeeef                  deeed                           fdZdddddeeedef         ef                  deeeef                  deeed                           fdZedeedef         ef         deeedef         ef                  fd            Zededefd            Zdededeg ee         f         d ee         fd!Z	 	 	 d$d"eeeee         f         deeeeedee         f         f                           deee                  dee	         d ef
d#ZdS )%AsyncAssistant_thread_started_listeners_user_message_listeners_bot_message_listeners!_thread_context_changed_listenersthread_context_storebase_logger	assistantN)app_namer!   loggerr$   r%   c                h    || _         || _        || _        d | _        d | _        d | _        d | _        d S N)r$   r!   r"   r   r    r   r   )selfr$   r!   r%   s       p/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/slack_bolt/middleware/assistant/async_assistant.py__init__zAsyncAssistant.__init__$   sA     !$8!!)-&15.'+$&*###    )matchers
middlewarelazyr,   .r-   r.   ).Nc                ,     j         g  _                              t          t          d j                  |          t          |          r:|d         } j                                                  |                     |S  fd}|S )NTfuncasyncior"   r   listener_or_functionsr,   r-   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr3   c                       | i |S r'    argskwargsr1   s     r)   _wrapperz?AsyncAssistant.thread_started.<locals>._inner.<locals>._wrapperZ       tT,V,,,r+   )r   appendbuild_listenerr   r1   	functionsr;   all_matchersr.   r-   r(   s   `  r)   _innerz-AsyncAssistant.thread_started.<locals>._innerP   s    $*:$$CI*11##*3)) $     4[[- - - - [- Or+   )r   _merge_matchersr   r   r"   r   r=   r>   r(   r,   r-   r.   r9   r1   rB   rA   s   ` ``   @r)   thread_startedzAsyncAssistant.thread_started4   s     )1-/D*++"6 ,  
 
 
 $D)) 		7D*11##*.)) $     K	 	 	 	 	 	 	 	  r+   c                ,     j         g  _                              t          t          d j                  |          t          |          r:|d         } j                                                  |                     |S  fd}|S )NTr0   r   r3   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr3   c                       | i |S r'   r7   r8   s     r)   r;   z=AsyncAssistant.user_message.<locals>._inner.<locals>._wrapper   r<   r+   )r   r=   r>   r   r?   s   `  r)   rB   z+AsyncAssistant.user_message.<locals>._inner~   s    $*:$$CI(//##*3)) $     4[[- - - - [- Or+   )r   rC   r   r   r"   r   r=   r>   rD   s   ` ``   @r)   user_messagezAsyncAssistant.user_messageb   s     '/+-D(++"> ,  
 
 
 $D)) 		7D(//##*.)) $     K	 	 	 	 	 	 	 	  r+   c                ,     j         g  _                              t          t          d j                  |          t          |          r:|d         } j                                                  |                     |S  fd}|S )NTr0   r   r3   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr3   c                       | i |S r'   r7   r8   s     r)   r;   z<AsyncAssistant.bot_message.<locals>._inner.<locals>._wrapper   r<   r+   )r   r=   r>   r   r?   s   `  r)   rB   z*AsyncAssistant.bot_message.<locals>._inner   s    $*:$$CI'..##*3)) $     4[[- - - - [- Or+   )r   rC   r   r   r"   r   r=   r>   rD   s   ` ``   @r)   bot_messagezAsyncAssistant.bot_message   s     &.*,D'++"= ,  
 
 
 $D)) 		7D'..##*.)) $     K	 	 	 	 	 	 	 	  r+   c                ,     j         g  _                              t          t          d j                  |          t          |          r:|d         } j                                                  |                     |S  fd}|S )NTr0   r   r3   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr3   c                       | i |S r'   r7   r8   s     r)   r;   zGAsyncAssistant.thread_context_changed.<locals>._inner.<locals>._wrapper   r<   r+   )r    r=   r>   r   r?   s   `  r)   rB   z5AsyncAssistant.thread_context_changed.<locals>._inner   s    $*:$$CI299##*3)) $     4[[- - - - [- Or+   )r    rC   r   r   r"   r   r=   r>   rD   s   ` ``   @r)   thread_context_changedz%AsyncAssistant.thread_context_changed   s     1957D2++"> ,  
 
 
 $D)) 		7D299##*.)) $     K	 	 	 	 	 	 	 	  r+   primary_matchercustom_matchersc                     | g|pg z   S r'   r7   )rR   rS   s     r)   rC   zAsyncAssistant._merge_matchers   s    
   O$9r::r+   save_thread_contextpayloadc                 H   K   |d         d         } | |           d {V  d S )Nassistant_threadcontextr7   )rU   rV   new_contexts      r)   default_thread_context_changedz-AsyncAssistant.default_thread_context_changed   s?      #$67	B!!+...........r+   reqrespnextreturnc                  K   | j         |                     | j                   |j        j        }| j        | j         | j        | j        fD ]K}|G|D ]D}|@|                    ||           d {V r#|	                    ||d|           d {V c c S ELt          |j                  r|j                                         d {V S  |             d {V  d S )N)r\   r]   assistant_listener)requestresponselistener_namelistener)r    rQ   r[   rY   listener_runnerr   r   r   async_matchesrunr   bodyack)r(   r\   r]   r^   rf   	listenersre   s          r)   async_processzAsyncAssistant.async_process   sT      19''(KLLL141L*2('	
 	 	I $ )  H+h6L6LQT[_6L6`6`0`0`0`0`0`0`+%4%8%8$'%)*>%-	 &9 & &                  :#(CC 	+*********dffr+   r4   c           	         t          |t                    r|g}t          |t                    r|S t          |t                    r|r|ng }|}|                    d          }|r|ng }g }|D ]R}t          |t
                    r|                    |           -|                    t          |d|                     St          | j	        ||||d|p| j
                  S t          dt          |           d          )Nr   Tr0   )r$   r,   r-   ack_functionlazy_functionsauto_acknowledgementr"   zInvalid listener: z	 detected)
isinstancer   r   listpopr   r=   r   r   r$   r"   r   type)	r(   r4   r,   r-   r"   r@   rn   listener_matchersmatchers	            r)   r>   zAsyncAssistant.build_listener  sT    +X66 	<%:$;!+];; 	Y((-t44 	Y'19rJ-I$==++L#+3xxH<># 
 
g';<< 	%,,W5555%,,.!($((3      '*%)(%)';4+;    W6K1L1LWWWXXXr+   )NNN)__name__
__module____qualname__r   r   r   __annotations__r   loggingr   strr*   r   r   boolr   r   rE   rI   rM   rQ   staticmethodrC   r
   dictr[   r   r   r	   rl   r>   r7   r+   r)   r   r      sn        '](;<<<<%d=&9::::$T-%89999'/]0C'DDDD"#CDDDD'.))))
 $KO+/+ + + + ''GH	+
 (+ + + +& PTAE48, , , 5#t)!46J!JKL, U8_#<=>	,
 tHY/01, , , ,b PTAE48, , , 5#t)!46J!JKL, U8_#<=>	,
 tHY/01, , , ,b PTAE48, , , 5#t)!46J!JKL, U8_#<=>	,
 tHY/01, , , ,b PTAE48, , , 5#t)!46J!JKL, U8_#<=>	,
 tHY/01, , , ,\ ;xT	24HHI;!%d(;=Q(Q"RS; ; ; \; /BX /cg / / / \/  	
 r9\223 
,	   F ae6:(,(Y (Y$]Hd8n%LM(Y 4&:HS)TX/EY<Z&Z [\](Y T/23	(Y
 f%(Y 
(Y (Y (Y (Y (Y (Yr+   r   )(r{   	functoolsr   r   typingr   r   r   r   r	   @slack_bolt.context.save_thread_context.async_save_thread_contextr
   =slack_bolt.context.assistant.thread_context_store.async_storer   "slack_bolt.listener.asyncio_runnerr   $slack_bolt.listener_matcher.builtinsr    slack_bolt.request.async_requestr   slack_bolt.responser   slack_bolt.errorr   "slack_bolt.listener.async_listenerr   r   &slack_bolt.middleware.async_middlewarer   2slack_bolt.listener_matcher.async_listener_matcherr    slack_bolt.request.payload_utilsr   r   r   r   r   slack_bolt.util.utilsr   r   r7   r+   r)   <module>r      s                = = = = = = = = = = = = = = c c c c c c j j j j j j D D D D D D G G G G G G = = = = = = , , , , , , & & & & & & Q Q Q Q Q Q Q Q B B B B B B S S S S S S              ; : : : : :eY eY eY eY eY_ eY eY eY eY eYr+   