
    h                     f    d dl mZmZ d dlmZ dedefdZdddeeeef      d	eed      defd
Z	y)    )LiteralOptional)AgentActionxmlreturnc                 l    ddddddd}|j                         D ]  \  }}| j                  ||      }  | S )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       d/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain/agents/format_scratchpad/xml.py_escaper      sP     (**,L #((* &
dkk$%&J    minimal)escape_formatintermediate_stepsr   c          	      .   d}| D ]  \  }}|dk(  rHt        |j                        }t        t        |j                              }t        t        |            }n,|j                  }t        |j                        }t        |      }|d| d| d| dz  } |S )aU  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	

 Jr   N)
typingr   r   langchain_core.agentsr   r   r   listtupler    r   r   <module>r%      s]    $ -  $ 3<U;#345 GI./ 		r   