
    'j                         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  G d d          ZdS )    )Optional)	WebClient)AssistantThreadContextStore)"DefaultAssistantThreadContextStore)BoltContext)Say   )has_channel_id_and_thread_ts   )GetThreadContext)SaveThreadContext)	SetStatus)SetSuggestedPrompts)SetTitlec                      e Zd ZU eed<   eed<   eed<   eed<   eed<   dddedede	e         fd	Z
d
efdZed
efd            Zed
efd            Zed
efd            Zed
efd            Zed
efd            Zed
efd            ZdS )AssistantUtilitiespayloadclient
channel_id	thread_tsthread_context_storeN)r   contextc                   || _         |j        | _        |pt          |          | _        t	          | j                   r)| j         d         }|d         | _        |d         | _        d S | j                             d          @| j                             d          &| j         d         | _        | j         d         | _        d S t          d| j          d          )Nassistant_threadr   r   channelz5Cannot instantiate Assistant for this event pattern ())	r   r   r   r   r
   r   r   get
ValueError)selfr   r   r   threads        q/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/slack_bolt/context/assistant/assistant_utilities.py__init__zAssistantUtilities.__init__   s     n$8$g<^_f<g<g!'55 	f\"45F$\2DO#K0DNNN\i((49I9I+9V9V9b"l95DO!\+6DNNN dUYUadddeee    returnc                 &    | j         d uo| j        d uS N)r   r   r   s    r!   is_validzAssistantUtilities.is_valid1   s    d*It~T/IIr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   
set_statuszAssistantUtilities.set_status4   s    dot~FFFr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   	set_titlezAssistantUtilities.set_title8   s    T_dnEEEr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   set_suggested_promptsz(AssistantUtilities.set_suggested_prompts<   s    "4;PPPr#   c                 x     dt           t                   f fd}t           j         j         j        |          S )Nr$   c                  >                                     } | d| dS d S )Nassistant_thread_context)
event_typeevent_payload)get_thread_context)thread_contextr   s    r!   build_metadataz.AssistantUtilities.say.<locals>.build_metadataB   s.    !4466N)&@Sabbb4r#   )r   r   r6   )r   dictr   r   r   r   )r   r6   s   ` r!   sayzAssistantUtilities.say@   sW    	 	 	 	 	 	 	 KOn)	
 
 
 	
r#   c                 N    t          | j        | j        | j        | j                  S r&   )r   r   r   r   r   r'   s    r!   r4   z%AssistantUtilities.get_thread_contextO   s!     94?DN\`\hiiir#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   save_thread_contextz&AssistantUtilities.save_thread_contextS   s     !:DOT^\\\r#   )__name__
__module____qualname__r7   __annotations__r   strr   r   r   r"   boolr(   propertyr   r*   r   r,   r   r.   r   r8   r   r4   r   r;    r#   r!   r   r      s        MMMOOONNN5555 GKf f f f 	f
 ''BCf f f f0J$ J J J J GI G G G XG F8 F F F XF Q': Q Q Q XQ 
S 
 
 
 X
 j$4 j j j Xj ]%6 ] ] ] X] ] ]r#   r   N)typingr   slack_sdk.webr   7slack_bolt.context.assistant.thread_context_store.storer   ?slack_bolt.context.assistant.thread_context_store.default_storer   slack_bolt.context.contextr   slack_bolt.context.sayr   	internalsr
   %get_thread_context.get_thread_contextr   r;   r   r*   r   r.   r   r,   r   r   rC   r#   r!   <module>rL      s%         # # # # # # _ _ _ _ _ _ n n n n n n 3 2 2 2 2 2 & & & & & & 3 3 3 3 3 3 D D D D D D 3 3 3 3 3 3 " " " " " " 7 7 7 7 7 7            C] C] C] C] C] C] C] C] C] C]r#   