
    i.                        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 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 d dl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)SaveThreadContext)AssistantThreadContextStore)build_listener_matcher)AttachingConversationKwargs)BoltRequest)BoltResponse)CustomListenerMatcher)	BoltError)CustomListener)Listener)ThreadListenerRunner)
Middleware)ListenerMatcher)!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                   t   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ded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f         d ee         fd!Z	 	 	 d$d"eeeee         f         deeeeedef         f                           deee                  dee	         d ef
d#ZdS )%	Assistant_thread_started_listeners!_thread_context_changed_listeners_user_message_listeners_bot_message_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/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/slack_bolt/middleware/assistant/assistant.py__init__zAssistant.__init__'   sA     !$8!!)-&15.'+$&*###    )matchers
middlewarelazyr-   .r.   r/   ).Nc                     j         g  _                              t          |          t          |          r:|d         } j                                                  |                     |S  fd}|S )Nr   listener_or_functionsr-   r.   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr1   c                       | i |S r(    argskwargsfuncs     r*   _wrapperz:Assistant.thread_started.<locals>._inner.<locals>._wrapperV       tT,V,,,r,   )r   appendbuild_listenerr   r9   	functionsr:   all_matchersr/   r.   r)   s   `  r*   _innerz(Assistant.thread_started.<locals>._innerL   s    $*:$$CI*11##*3)) $     4[[- - - - [- Or,   )r   _merge_matchersr   r   r<   r=   r)   r-   r.   r/   r7   r9   rA   r@   s   ` ``   @r*   thread_startedzAssistant.thread_started7   s     )1-/D*++,MxXX#D)) 		7D*11##*.)) $     K	 	 	 	 	 	 	 	  r,   c                     j         g  _                              t          |          t          |          r:|d         } j                                                  |                     |S  fd}|S )Nr   r1   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr1   c                       | i |S r(   r5   r6   s     r*   r:   z8Assistant.user_message.<locals>._inner.<locals>._wrapper}   r;   r,   )r    r<   r=   r   r>   s   `  r*   rA   z&Assistant.user_message.<locals>._inners   s    $*:$$CI(//##*3)) $     4[[- - - - [- Or,   )r    rB   r   r   r<   r=   rC   s   ` ``   @r*   user_messagezAssistant.user_message^   s     '/+-D(++,UW_``#D)) 		7D(//##*.)) $     K	 	 	 	 	 	 	 	  r,   c                     j         g  _                              t          |          t          |          r:|d         } j                                                  |                     |S  fd}|S )Nr   r1   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr1   c                       | i |S r(   r5   r6   s     r*   r:   z7Assistant.bot_message.<locals>._inner.<locals>._wrapper   r;   r,   )r!   r<   r=   r   r>   s   `  r*   rA   z%Assistant.bot_message.<locals>._inner   s    $*:$$CI'..##*3)) $     4[[- - - - [- Or,   )r!   rB   r   r   r<   r=   rC   s   ` ``   @r*   bot_messagezAssistant.bot_message   s     &.*,D'++,TV^__#D)) 		7D'..##*.)) $     K	 	 	 	 	 	 	 	  r,   c                     j         g  _                              t          |          t          |          r:|d         } j                                                  |                     |S  fd}|S )Nr   r1   c                       gng z   }j                                                 |                     t                      fd            }|S )Nr1   c                       | i |S r(   r5   r6   s     r*   r:   zBAssistant.thread_context_changed.<locals>._inner.<locals>._wrapper   r;   r,   )r   r<   r=   r   r>   s   `  r*   rA   z0Assistant.thread_context_changed.<locals>._inner   s    $*:$$CI299##*3)) $     4[[- - - - [- Or,   )r   rB   r   r   r<   r=   rC   s   ` ``   @r*   thread_context_changedz Assistant.thread_context_changed   s     1957D2++,UW_``#D)) 		7D299##*.)) $     K	 	 	 	 	 	 	 	  r,   primary_matchercustom_matchersc                 :    t          | j        |          g|pg z   S )N)r%   r9   )r   r%   )r)   rQ   rR   s      r*   rB   zAssistant._merge_matchers   s+    
 &t}?SSST!r
 	
r,   save_thread_contextpayloadc                 4     | |d         d                    d S )Nassistant_threadcontextr5   )rT   rU   s     r*   default_thread_context_changedz(Assistant.default_thread_context_changed   s$    G$67	BCCCCCr,   reqrespnextreturnc                   | j         |                     | j                   |j        j        }| j        | j         | j        | j        fD ]f}|b|D ]_}|                    ||          rF|	                    ||          \  }}|r	||c c S >||}|
                    ||d|          c c S `gt          |j                  r|j                                        S  |             d S )N)rZ   r[   assistant_listener)requestresponselistener_namelistener)r   rP   rY   rX   listener_runnerr   r    r!   matchesrun_middlewarerunr   bodyack)	r)   rZ   r[   r\   rd   	listenersrc   middleware_respnext_was_not_calleds	            r*   processzAssistant.process   sQ    19''(KLLL030K*2('	
 	 	I $ )  H''Cd';; ?G?V?V[^ei?V?j?j<)<. %.:'6 6 6 6 6 6 %*6#2D.22$'%)*>%-	  3           :#(CC 	%;??$$$r,   r2   c           	      |   t          |t                    r|g}t          |t                    r|S t          |t                    r|r|ng }|                    dt          | j                             |}|                    d          }|r|ng }g }|D ]g}t          |t                    r|	                    |           -t          |t                    r%|	                    t          |d|                     ht          | j        ||||d|p| j                  S t          dt          |           d          )Nr   F)r9   asyncior#   T)r%   r-   r.   ack_functionlazy_functionsauto_acknowledgementr#   zInvalid listener: z	 detected)
isinstancer   r   listinsertr   r"   popr   r<   r   r   r%   r#   r   type)	r)   r2   r-   r.   r#   r?   rp   listener_matchersmatchers	            r*   r=   zAssistant.build_listener  s    +X66 	<%:$;!+X66 	Y((-t44 	Y'19rJa!<T=V!W!WXXX-I$==++L#+3xxH79# 
 
g77 	%,,W555522 %,,.!($)(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   rD   rH   rL   rP   rB   staticmethodr	   dictrY   r   r   rm   r=   r5   r,   r*   r   r      sB        'X7777'/X'????%d8n5555$T(^4444"#>????'.))))
 $FJ+/+ + + + ''BC	+
 (+ + + +& KO<@48% % % 5#t)!4o!EFG% U8Z#789	%
 tHY/01% % % %T KO<@48% % % 5#t)!4o!EFG% U8Z#789	%
 tHY/01% % % %T KO<@48% % % 5#t)!4o!EFG% U8Z#789	%
 tHY/01% % % %T KO<@48% % % 5#t)!4o!EFG% U8Z#789	%
 tHY/01% % % %N
!#t),
 "%d(;_(L"MN
 
 
 
 D<M DX\ D D D \D#!#)5#=Eb,FV=W#	,	# # # #P QU15(,)Y )Y$Xxh%GH)Y 4oxT	7J&J KLM)Y T*-.	)Y
 f%)Y 
)Y )Y )Y )Y )Y )Yr,   r   )+r~   	functoolsr   r   typingr   r   r   r   &slack_bolt.context.save_thread_contextr	   7slack_bolt.context.assistant.thread_context_store.storer
   $slack_bolt.listener_matcher.builtinsr   3slack_bolt.middleware.attaching_conversation_kwargsr   slack_bolt.request.requestr   slack_bolt.response.responser   slack_bolt.listener_matcherr   slack_bolt.errorr   #slack_bolt.listener.custom_listenerr   slack_bolt.listenerr   !slack_bolt.listener.thread_runnerr   slack_bolt.middlewarer   r    slack_bolt.request.payload_utilsr   r   r   r   r   slack_bolt.util.utilsr   r   r5   r,   r*   <module>r      s                2 2 2 2 2 2 2 2 2 2 2 2 D D D D D D _ _ _ _ _ _ G G G G G G [ [ [ [ [ [ 2 2 2 2 2 2 5 5 5 5 5 5 = = = = = = & & & & & & > > > > > > ( ( ( ( ( ( B B B B B B , , , , , , 7 7 7 7 7 7              ; : : : : :PY PY PY PY PY
 PY PY PY PY PYr,   