
    *"hjN                    8    d Z ddlmZ ddlZddlmZ ddZddZy)	z%Shared helpers for protocol adapters.    )annotationsN)Anyc                    t        | t              r| j                         }|xs dS 	 t        j                  | | ni d      S # t
        $ r Y yw xY w)zCReturn a JSON object string suitable for OpenAI function arguments.{}F)ensure_ascii)
isinstancestrstripjsondumps	Exception)valuestrippeds     5/root/.hermes/SkillClaw/skillclaw/protocols/common.pyjson_dumps_tool_argsr   	   sQ    %;;=4zz5#4%"5QQ s   A 	AAc                    t        | t              r.	 t        j                  | xs d      }t        |t
              r|S i S t        | t
              r| S i S # t        $ r i cY S w xY w)z9Parse OpenAI function arguments into a tool input object.r   )r   r	   r   loadsr   dict)r   parseds     r   json_loads_tool_inputr      sc    %	ZZ.F $FD1v9r9ud+533  	I	s   A A! A!)r   r   returnr	   )r   r   r   zdict[str, Any])__doc__
__future__r   r   typingr   r   r        r   <module>r      s    + "  4r   