
    {h                     R    d dl mZmZ d dlmZmZmZ  G d de      Z G d d      Zy)    )ABCabstractmethod)DictListOptionalc                   :    e Zd ZdefdZedefd       ZdefdZy)BaseDynamicContextProvidertitlec                     || _         y N)r
   )selfr
   s     n/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/atomic_agents/context/system_prompt_generator.py__init__z#BaseDynamicContextProvider.__init__   s	    
    returnc                      y r    r   s    r   get_infoz#BaseDynamicContextProvider.get_info	   s    r   c                 "    | j                         S r   )r   r   s    r   __repr__z#BaseDynamicContextProvider.__repr__   s    }}r   N)__name__
__module____qualname__strr   r   r   r   r   r   r   r	   r	      s5    c  #  # r   r	   c                   n    e Zd Z	 	 	 	 d	deee      deee      deee      deeeef      fdZdefdZ	y)
SystemPromptGeneratorN
backgroundstepsoutput_instructionscontext_providersc                     |xs dg| _         |xs g | _        |xs g | _        |xs i | _        | j                  j	                  ddg       y )Nz@This is a conversation with a helpful and friendly AI assistant.z,Always respond using the proper JSON schema.zTAlways use the available additional information and context to enhance the response.)r   r   r    r!   extend)r   r   r   r    r!   s        r   r   zSystemPromptGenerator.__init__   sX     %l)k(l[b
#6#<" !2!8b  ''>f	
r   r   c                 H   d| j                   fd| j                  fd| j                  fg}g }|D ]E  \  }}|s	|j                  d|        |j	                  d |D               |j                  d       G | j
                  r|j                  d       | j
                  j                         D ]U  }|j                         }|s|j                  d|j                          |j                  |       |j                  d       W d	j                  |      j                         S )
NzIDENTITY and PURPOSEzINTERNAL ASSISTANT STEPSzOUTPUT INSTRUCTIONSz# c              3   &   K   | ]	  }d |   yw)z- Nr   ).0items     r   	<genexpr>z8SystemPromptGenerator.generate_prompt.<locals>.<genexpr>1   s     #DDbK#Ds    z# EXTRA INFORMATION AND CONTEXTz## 
)r   r   r    appendr#   r!   valuesr   r
   joinstrip)r   sectionsprompt_partsr
   contentproviderinfos          r   generate_promptz%SystemPromptGenerator.generate_prompt%   s   #T__5'4"D$<$<=
 & 	(NE7##bL1###DG#DD##B'		( !! AB 2299; ,((* ''#hnn-=(>? ''- ''+, yy&,,..r   )NNNN)
r   r   r   r   r   r   r   r	   r   r4   r   r   r   r   r      sr     +/%)37MQ
T#Y'
 S	"
 &d3i0	

 $D.H)H$IJ
&/ /r   r   N)	abcr   r   typingr   r   r   r	   r   r   r   r   <module>r7      s$    # ' '	 	,/ ,/r   