o
    پi
                     @   s   d dl Z d dlZd dlmZmZ d dlmZmZ d dlm	Z	m
Z
 er(d dlmZ e eZG dd deZG dd	 d	eZG d
d deZdS )    N)ABCabstractmethod)TYPE_CHECKINGAny)print_info_onceprint_warning_once)ConversationContextc                   @   s"   e Zd ZedddefddZdS )Toolcontextr   returnc                    s   d S N )selfr
   r   r   O/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/entrypoints/tool.py
get_result   s   zTool.get_resultN)__name__
__module____qualname__r   r   r   r   r   r   r   r	      s    r	   c                   @   8   e Zd Zdd ZdddefddZedefdd	Zd
S )HarmonyBrowserToolc                 C   s   d| _ td}|sd| _ td d S zddlm} ddlm} W n ty2   d| _ td Y d S w |d	|d
}||d| _	t
d d S )NTEXA_API_KEYFz,EXA_API_KEY is not set, browsing is disabledr   )SimpleBrowserTool)
ExaBackendz.gpt_oss is not installed, browsing is disabledweb)sourceapi_key)backendzBrowser tool initialized)enabledosgetenvr   gpt_oss.tools.simple_browserr   $gpt_oss.tools.simple_browser.backendr   ImportErrorbrowser_toolr   )r   exa_api_keyr   r   browser_backendr   r   r   __init__   s"   
zHarmonyBrowserTool.__init__r
   r   r   c                    T   ddl m} t||sJ |jd }g }| j|2 z3 d H W }|| q6 |S Nr   )HarmonyContext)sglang.srt.entrypoints.contextr)   
isinstancemessagesr#   processappendr   r
   r)   last_msgtool_output_msgsmsgr   r   r   r   -      
zHarmonyBrowserTool.get_resultc                 C      | j jS r   )r#   tool_configr   r   r   r   r6   7      zHarmonyBrowserTool.tool_configNr   r   r   r&   r   r   propertyr6   r   r   r   r   r      s
    
r   c                   @   r   )HarmonyPythonToolc                 C   sN   d| _ zddlm} W n ty   d| _ td Y d S w | | _td d S )NTr   )
PythonToolFz6gpt_oss is not installed, code interpreter is disabledz!Code interpreter tool initialized)r   'gpt_oss.tools.python_docker.docker_toolr<   r"   r   python_toolr   )r   r<   r   r   r   r&   >   s   zHarmonyPythonTool.__init__r
   r   r   c                    r'   r(   )r+   r)   r,   r-   r>   r.   r/   r0   r   r   r   r   K   r4   zHarmonyPythonTool.get_resultc                 C   r5   r   )r>   r6   r7   r   r   r   r6   U   r8   zHarmonyPythonTool.tool_configNr9   r   r   r   r   r;   <   s
    
r;   )loggingr   abcr   r   typingr   r   sglang.srt.utilsr   r   r+   r   	getLoggerr   loggerr	   r   r;   r   r   r   r   <module>   s   
%