
    @h                     l    S SK JrJr  S SKJr  S\S\4S jrSS.S\\\\4      S	\\S      S\4S
 jjr	g)    )LiteralOptional)AgentActionxmlreturnc                 l    SSSSSSS.nUR                  5        H  u  p#U R                  X#5      n M     U $ )z-Replace XML tags with custom safe delimiters.z[[tool]]z	[[/tool]]z[[tool_input]]z[[/tool_input]]z[[observation]]z[[/observation]])<tool>z</tool>z<tool_input>z</tool_input>z<observation></observation>)itemsreplace)r   replacementsorigrepls       ^/var/www/html/shao/venv/lib/python3.13/site-packages/langchain/agents/format_scratchpad/xml.py_escaper      sG     (**,L #((*
kk$% +J    minimal)escape_formatintermediate_stepsr   c          	      2   SnU  H  u  p4US:X  aH  [        UR                  5      n[        [        UR                  5      5      n[        [        U5      5      nO,UR                  n[        UR                  5      n[        U5      nUSU SU SU S3-  nM     U$ )a5  Format the intermediate steps as XML.

Args:
    intermediate_steps: The intermediate steps.
    escape_format: The escaping format to use. Currently only 'minimal' is
        supported, which replaces XML tags with custom delimiters to prevent
        conflicts.

Returns:
    The intermediate steps as XML.
 r   r	   z</tool><tool_input>z</tool_input><observation>r
   )r   toolstr
tool_input)r   r   logactionobservationr   r   observation_s           r   
format_xmlr      s      C1I%6;;'D V%6%6!78J"3{#34L;;DV../J{+LTF-j\(nF	
  2 Jr   N)
typingr   r   langchain_core.agentsr   r   r   listtupler    r   r   <module>r%      s]    $ -  $ 3<U;#345 GI./ 		r   