+
    kHàjî  ã                  ó�   € R t ^ RIHt ^ RIt^ RIHtHt ^ RIHtH	t	H
t
HtHtHtHt ]P                  ! ]4      tRt ! R R]4      tR# )u  Brave Search (free-tier Data-for-Search API) â€” search only, 2,000 queries/month.

Config: ``web.search_backend`` / ``web.backend: "brave-free"`` (hyphen form kept for
existing user configs). Env: ``BRAVE_SEARCH_API_KEY``. Pair with Firecrawl/Tavily/Exa
for ``web_extract``.
)ÚannotationsN)ÚAnyÚDict)ÚBaseWebSearchProviderÚhttp_get_jsonÚprovider_envÚsearch_failÚ	search_okÚsetup_schemaÚtitled_rowsz.https://api.search.brave.com/res/v1/web/searchc                  óB   € ] tR t^tRtRtRtRtRR R lltR R lt	R	t
R
# )ÚBraveFreeWebSearchProviderzCSearch-only Brave provider using the free-tier Data-for-Search API.z
brave-freeúBrave Search (Free)ÚBRAVE_SEARCH_API_KEYc               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚqueryÚstrÚlimitÚintÚreturnúdict[str, Any]© )Úformats   "ÚD/home/ubuntu/.hermes/hermes-agent/plugins/web/brave_free/provider.pyÚ__annotate__Ú'BraveFreeWebSearchProvider.__annotate__   s!   € ÷ &ñ &˜Cð &¨ð &°Nñ &ó    c                	ó¾  € \        R 4      pV'       g   \        R4      # \        R\        RVR\	        ^\        \        V4      ^4      4      /RVRR/^\        R7      w  rEVe   V# VP                  R
4      ;'       g    / P                  R. 4      ;'       g    . p\        VR	V R4      p\        P                  RV\        V4      \        V4      V4       \        V4      # )r   zBRAVE_SEARCH_API_KEY is not setzBrave SearchÚqÚcountzX-Subscription-TokenÚAcceptzapplication/json)ÚparamsÚheadersÚtimeoutÚloggerNÚwebÚresultsÚdescriptionz5Brave Search '%s': %d results (from %d raw, limit %d))r   r   r   Ú_BRAVE_ENDPOINTÚmaxÚminr   r%   Úgetr   ÚinfoÚlenr	   )Úselfr   r   Úapi_keyÚdataÚfailureÚraw_resultsÚweb_resultss   &&&     r   ÚsearchÚ!BraveFreeWebSearchProvider.search   sÖ   € ÜÐ5Ó6ˆßÜÐ@ÓAÐAÜ%ØœOØ˜ ¬¨Q´´C¸³JÀÓ0CÓ)DÐEØ+¨W°hÐ@RÐSØœvô	
‰ˆð ÒØˆNØ—x‘x “×,Ð,¨"×1Ñ1°)¸RÓ@×FÐFÀBˆÜ! +¨f¨uÐ"5°}ÓEˆÜ�‰ÐKÈUÔTWÐXcÓTdÔfiÐjuÓfvÐx}Ô~Ü˜Ó%Ð%r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   ,   s   € ÷ 
ñ 
 .ñ 
r   c                	ó"   € \        R RRRRR4      # )r   Úfreeu1   Free-tier API key â€” 2k queries/mo, search only.r   z Brave Search API key (free tier)zhttps://brave.com/search/api/)r
   )r/   s   &r   Úget_setup_schemaÚ+BraveFreeWebSearchProvider.get_setup_schema,   s    € ÜØ! 6Ð+^Ø"Ð$FÐHgó
ð 	
r   r   N)é   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚNAMEÚDISPLAY_NAMEÚKEY_ENVr5   r:   Ú__static_attributes__r   r   r   r   r      s#   † ÙMà€DØ(€LØ$€G÷&÷"
ñ 
r   r   )rA   Ú
__future__r   ÚloggingÚtypingr   r   Úplugins.web._commonr   r   r   r   r	   r
   r   Ú	getLoggerr=   r%   r)   r   r   r   r   Ú<module>rK      sI   ðñõ #ã ß ÷ F÷  Fñ  Fà	×	Ò	˜8Ó	$€àB€ô
Ð!6ö 
r   