
    'jl                         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)AsyncWebClient) AsyncAssistantThreadContextStore)'DefaultAsyncAssistantThreadContextStore)AsyncBoltContext)AsyncSay   )has_channel_id_and_thread_ts   )AsyncGetThreadContext)AsyncSaveThreadContext)AsyncSetStatus)AsyncSetSuggestedPrompts)AsyncSetTitlec                   (   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d
efdZed
efd            Zed
efd            ZdS )AsyncAssistantUtilities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        w/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/slack_bolt/context/assistant/async_assistant_utilities.py__init__z AsyncAssistantUtilities.__init__   s     n$8$l<cdk<l<l!'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 AsyncAssistantUtilities.is_valid4   s    d*It~T/IIr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   
set_statusz"AsyncAssistantUtilities.set_status7   s    dk4?DNKKKr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   	set_titlez!AsyncAssistantUtilities.set_title;   s    T[$/4>JJJr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   set_suggested_promptsz-AsyncAssistantUtilities.set_suggested_prompts?   s    'T_dnUUUr#   c                 P    t          | j        | j        | j        | j                  S )N)r   r   build_metadata)r   r   r   r   _build_message_metadatar'   s    r!   sayzAsyncAssistantUtilities.sayC   s.    KOn7	
 
 
 	
r#   c                 @   K   d|                                   d {V dS )Nassistant_thread_context)
event_typeevent_payload)get_thread_contextr'   s    r!   r1   z/AsyncAssistantUtilities._build_message_metadataL   s9      4#'#:#:#<#<<<<<<<
 
 	
r#   c                 N    t          | j        | j        | j        | j                  S r&   )r   r   r   r   r   r'   s    r!   r7   z*AsyncAssistantUtilities.get_thread_contextR   s#    $T%>QUQ_aeamnnnr#   c                 B    t          | j        | j        | j                  S r&   )r   r   r   r   r'   s    r!   save_thread_contextz+AsyncAssistantUtilities.save_thread_contextV   s    %d&?RVR`aaar#   )__name__
__module____qualname__dict__annotations__r   strr   r   r   r"   boolr(   propertyr   r*   r   r,   r   r.   r   r2   r1   r   r7   r   r:    r#   r!   r   r      s        MMMOOONNN:::: LPf f f f "	f
 ''GHf f f f0J$ J J J J LN L L L XL K= K K K XK V'? V V V XV 
X 
 
 
 X

t 
 
 
 
 o$9 o o o Xo b%; b b b Xb b br#   r   N)typingr   slack_sdk.web.async_clientr   =slack_bolt.context.assistant.thread_context_store.async_storer   Eslack_bolt.context.assistant.thread_context_store.default_async_storer    slack_bolt.context.async_contextr    slack_bolt.context.say.async_sayr   	internalsr
   +get_thread_context.async_get_thread_contextr   -save_thread_context.async_save_thread_contextr   set_status.async_set_statusr   1set_suggested_prompts.async_set_suggested_promptsr   set_title.async_set_titler   r   rC   r#   r!   <module>rP      s4         5 5 5 5 5 5      z y y y y y > = = = = = 5 5 5 5 5 5 3 3 3 3 3 3 O O O O O O R R R R R R 8 8 8 8 8 8 X X X X X X 5 5 5 5 5 5Cb Cb Cb Cb Cb Cb Cb Cb Cb Cbr#   