
    i                      J    d Z ddlmZ ddlmZ ddlmZ e G d d             Zy)z)Normalized provider response dataclasses.    )	dataclass)Any)Messagec                   N    e Zd ZU dZeed<   dZedz  ed<   defdZ	de
fdZd Zy)	ModelResponsez?Represents a provider response with normalized message payload.messageNraw_responsereturnc                 @    t        | j                  j                        S N)boolr   
tool_callsselfs    R/Users/bowang/.openclaw/workspace/ChatDev/runtime/node/agent/providers/response.pyhas_tool_callszModelResponse.has_tool_calls   s    DLL++,,    c                    d| j                   j                  j                  i}t        | j                   j                  t
              rD| j                   j                  D cg c]   }t        |d      r|j                         n|" c}|d<   n| j                   j                  |d<   | j                   j                  r5| j                   j                  D cg c]  }|j                          c}|d<   | j                   j                  r| j                   j                  |d<   | j                   j                  r| j                   j                  |d<   |S c c}w c c}w )z6Return a simple dict representation for compatibility.roleto_dictcontentr   tool_call_idname)r   r   value
isinstancer   listhasattrr   r   to_openai_dictr   r   )r   payloadblockcalls       r   r   zModelResponse.to_dict   s    DLL%%++
 dll**D1UYUaUaUiUi"UiE75)#<%GUi"GI "&!5!5GI<<""GK||G^G^$_G^tT%8%8%:G^$_GL!<<$$&*ll&?&?GN#<<"ll//GFO" %`s   %EEc                 6    | j                   j                         S r   )r	   __str__r   s    r   str_raw_responsezModelResponse.str_raw_response&   s      ((**r   )__name__
__module____qualname____doc__r   __annotations__r	   r   r   r   dictr   r$    r   r   r   r   	   s6    I#L#*#- - &+r   r   N)r(   dataclassesr   typingr   entity.messagesr   r   r+   r   r   <module>r/      s*    / !  # + + +r   