Ë
    µŒjS  ã                   óŒ   — d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
mZmZ ddlmZ ddlmZmZ  G d„ de
«      Z G d	„ d
e«      Zy)z�Util that Searches email messages in Office 365.

Free, but setup is required. See link below.
https://learn.microsoft.com/en-us/graph/auth/
é    )ÚAnyÚDictÚListÚOptionalÚType)ÚCallbackManagerForToolRun)Ú	BaseModelÚ
ConfigDictÚField)ÚO365BaseTool)Ú
UTC_FORMATÚ
clean_bodyc                   óŠ   — e Zd ZU dZ	  edd¬«      Zeed<    ed¬«      Zeed<    ed	d
¬«      Z	e
ed<    edd¬«      Zeed<   y)ÚSearchEmailsInputzInput for SearchEmails Tool.Ú z» If the user wants to search in only one folder, the name of the folder. Default folders are "inbox", "drafts", "sent items", "deleted ttems", but users can search custom folders as well.)ÚdefaultÚdescriptionÚfolderaÚ  The Microsoift Graph v1.0 $search query. Example filters include from:sender, from:sender, to:recipient, subject:subject, recipients:list_of_recipients, body:excitement, importance:high, received>2022-12-01, received<2021-12-01, sent>2022-12-01, sent<2021-12-01, hasAttachments:true  attachment:api-catalog.md, cc:samanthab@contoso.com, bcc:samanthab@contoso.com, body:excitement date range example: received:2023-06-08..2023-06-09  matching example: from:amy OR from:david.)r   Úqueryé
   z(The maximum number of results to return.Úmax_resultsTz”Whether the email body is truncated to meet token number limits. Set to False for searches that will retrieve small messages, otherwise, set to TrueÚtruncateN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚstrÚ__annotations__r   r   Úintr   Úbool© ó    ú}/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/tools/office365/messages_search.pyr   r      sm   … Ù&àMáØð7ô€FˆCó ñ ð&ô€Eˆ3ó ñ ØØ>ô€K�ó ñ Øðô€Hˆdô r"   r   c                   óš   — e Zd ZU dZdZeed<   eZe	e
   ed<   dZeed<    ed¬«      Z	 	 	 	 	 dd
ededededee   dedeeeef      fd„Zy	)ÚO365SearchEmailszKSearch email messages in Office 365.

    Free, but setup is required.
    Úmessages_searchÚnameÚargs_schemazžUse this tool to search for email messages. The input must be a valid Microsoft Graph v1.0 $search query. The output is a JSON list of the requested resource.r   Úforbid)ÚextraNr   r   r   r   Úrun_managerÚtruncate_limitÚreturnc                 óP  — | j                   j                  «       }|dk7  r|j                  |¬«      }|j                  «       j	                  |«      }|j                  ||¬«      }g }	|D �]:  }
i }|
j                  |d<   |r|
j                  d | |d<   nt        |
j                  «      |d<   |
j                  |d<   |
j                  j                  t        «      |d<   g |d<   |
j                  j                  D ]  }|d   j!                  t#        |«      «       Œ! g |d	<   |
j$                  j                  D ]  }|d	   j!                  t#        |«      «       Œ! g |d
<   |
j&                  j                  D ]  }|d
   j!                  t#        |«      «       Œ! |	j!                  |«       �Œ= |	S )Nr   )Úfolder_name)Úlimitr   ÚfromÚbodyÚsubjectÚdateÚtoÚccÚbcc)ÚaccountÚmailboxÚ
get_folderÚqÚsearchÚget_messagesÚsenderÚbody_previewr   r2   r3   ÚmodifiedÚstrftimer   r5   Ú_recipientsÚappendr   r6   r7   )Úselfr   r   r   r   r+   r,   r9   ÚmessagesÚoutput_messagesÚmessageÚoutput_messageÚ	recipients                r#   Ú_runzO365SearchEmails._runI   s”  € ð —,‘,×&Ñ&Ó(ˆð �RŠ<Ø×(Ñ(°VÐ(Ó<ˆGð —	‘	“×"Ñ" 5Ó)ˆØ×'Ñ'¨kÀÐ'ÓGˆð ˆÜˆGØˆNØ%,§^¡^ˆN˜6Ñ"áØ)0×)=Ñ)=¸o¸~Ð)N�˜vÒ&ä)3°G·L±LÓ)A�˜vÑ&à(/¯©ˆN˜9Ñ%à%,×%5Ñ%5×%>Ñ%>¼zÓ%JˆN˜6Ñ"à#%ˆN˜4Ñ Ø$ŸZ™Z×3Ô3�	Ø˜tÑ$×+Ñ+¬C°	«NÕ;ð 4ð $&ˆN˜4Ñ Ø$ŸZ™Z×3Ô3�	Ø˜tÑ$×+Ñ+¬C°	«NÕ;ð 4ð %'ˆN˜5Ñ!Ø$Ÿ[™[×4Ô4�	Ø˜uÑ%×,Ñ,¬S°«^Õ<ð 5ð ×"Ñ" >Ö2ð3  ð6 Ðr"   )r   r   TNé–   )r   r   r   r   r'   r   r   r   r(   r   r	   r   r
   Úmodel_configr   r    r   r   r   r   r   rJ   r!   r"   r#   r%   r%   7   s¯   … ñð
 "€Dˆ#Ó!Ø#4€K��i‘Ó4ð	@ð �ó ñ Øô€Lð ØØØ;?Ø!ñ1àð1ð ð1ð ð	1ð
 ð1ð Ð7Ñ8ð1ð ð1ð 
ˆd�3˜�8‰nÑ	ô1r"   r%   N)r   Útypingr   r   r   r   r   Úlangchain_core.callbacksr   Úpydanticr	   r
   r   Ú(langchain_community.tools.office365.baser   Ú)langchain_community.tools.office365.utilsr   r   r   r%   r!   r"   r#   Ú<module>rR      s<   ðñ÷ 3Õ 2å >ß 1Ñ 1å Aß Lô$˜	ô $ôNC�|õ Cr"   