o
    ™²h’
  ã                   @   sÎ   d dl mZmZmZ G dd„ deƒZG dd„ deƒZdededefd	d
„ZG dd„ deƒZG dd„ deƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    )Ú	BaseModelÚFieldÚValidationErrorc                   @   ó6   e Zd ZU eddd�Zeed< eddd�Zeed< dS )	ÚFetchNewsParams.zNews search query©ÚdescriptionÚqueryé   úMax results to returnÚmax_resultsN©	Ú__name__Ú
__module__Ú__qualname__r   r	   ÚstrÚ__annotations__r   Úint© r   r   ú:C:\Users\shubh\Videos\agent\agent\modules\tools\schemas.pyr      ó   
 r   c                   @   r   )	ÚFetchArxivParams.zArxiv search queryr   r	   r
   r   r   Nr   r   r   r   r   r      r   r   Ú	tool_nameÚparamsÚreturnc              
      s|   zt ‡ fdd„tjD ƒƒ}|d }| |¡ ¡ W S  ty(   tdˆ › d�ƒd‚ ty= } z
td| ¡ › �ƒ|‚d}~ww )z-Validate tool parameters against their schemac                 3   s    � | ]}|d  ˆ kr|V  qdS )ÚnameNr   )Ú.0Út©r   r   r   Ú	<genexpr>   s   € z%validate_tool_args.<locals>.<genexpr>Ú
parameterszTool z
 not foundNzInvalid parameters: )	ÚnextZtool_registryÚtool_definitionsZmodel_validateZ
model_dumpÚStopIterationÚ
ValueErrorr   Úerrors)r   r   Ztool_defÚmodelÚer   r   r   Úvalidate_tool_args   s   €ÿr(   c                   @   ó>   e Zd ZU dZeddd�Zeed< edddd	d
�Ze	ed< dS )r   zGoogle News search parameters.úSearch termr   r	   é
   é   é2   r   ©ÚgeÚler   r   N©
r   r   r   Ú__doc__r   r	   r   r   r   r   r   r   r   r   r      ó   
 c                   @   r)   )r   zarXiv search parameters.zarXiv queryr   r	   r+   r,   r-   zMax papers to returnr.   r   Nr1   r   r   r   r   r      r3   c                   @   r)   )ÚFetchDDGParamszDuckDuckGo search parameters.r*   r   r	   r+   r,   r-   r   r.   r   Nr1   r   r   r   r   r4   $   r3   r4   c                   @   r)   )ÚFetchTorrentsParamszTorrent search parameters.zBase search termr   r	   r+   r,   r-   r   r.   r   Nr1   r   r   r   r   r5   )   r3   r5   c                   @   r)   )ÚFetchWikiParamszWikipedia search parameters.r*   r   r	   r+   r,   r-   r   r.   r   Nr1   r   r   r   r   r6   /   r3   r6   c                   @   r)   )ÚFetchIMDBParamszIMDB search parameters.r*   r   r	   r+   r,   r-   r   r.   r   Nr1   r   r   r   r   r7   4   r3   r7   c                   @   r)   )ÚFetchYouTubeParamszYouTube search parameters.r*   r   r	   r+   r,   r-   r   r.   r   Nr1   r   r   r   r   r8   9   r3   r8   c                   @   r)   )ÚFetchFinanceParamszFinance data search parameters.zStock ticker symbol(s)r   r	   r+   r,   r-   r   r.   r   Nr1   r   r   r   r   r9   >   r3   r9   N)Zpydanticr   r   r   r   r   r   Údictr(   r4   r5   r6   r7   r8   r9   r   r   r   r   Ú<module>   s    