Ë
    ÿ`gj™	  ã                  óÊ   — d Z ddlmZ ddlZ ej                  d«      Z ej                  d«      Z ej                  d«      Z ej                  d«      ZdZ	dd	„Z
ddd
„Zdd„Zy)zISanitize user prompt text leaked from terminal / paste control sequences.é    )ÚannotationsNz(^|[\s\n>:\]\)])\[200~z\[201~(?=$|[\s\n<\[\(\):;.,!?])z(^|[\s\n>:\]\)])00~z01~(?=$|[\s\n<\[\(\):;.,!?])z~[[ec                óB  — | s| S | j                  dd«      j                  dd«      j                  dd«      j                  dd«      } t        j                  d| «      } t        j                  d| «      } t        j                  d| «      } t
        j                  d| «      } | S )aÅ  Strip leaked bracketed-paste wrapper markers from user-visible text.

    Defensive normalization for cases where terminal/prompt_toolkit parsing
    fails and bracketed-paste markers end up in the buffer as literal text.

    Canonical wrappers are stripped unconditionally. Degraded visible forms like
    ``[200~`` / ``[201~`` and ``00~`` / ``01~`` are removed only at boundaries
    so embedded literals such as ``literal[200~tag`` stay intact.
    z[200~Ú z[201~z^[[200~z^[[201~z\1)ÚreplaceÚ_BRACKETED_PASTE_BOUNDARY_STARTÚsubÚ_BRACKETED_PASTE_BOUNDARY_ENDÚ_BRACKETED_PASTE_DEGRADED_STARTÚ_BRACKETED_PASTE_DEGRADED_END)Útexts    úL/root/.hermes/venv/lib/python3.12/site-packages/hermes_cli/input_sanitize.pyÚ%strip_leaked_bracketed_paste_wrappersr      s”   € ñ Øˆð 	‰[ "Ó%ß	‰˜bÓ	!ß	‰˜BÓ	ß	‰˜BÓ	ð	 	ô +×.Ñ.¨u°dÓ;€DÜ(×,Ñ,¨R°Ó6€DÜ*×.Ñ.¨u°dÓ;€DÜ(×,Ñ,¨R°Ó6€DØ€Kó    c                óR  — | s| S t         }t        | «      }d}|t        |«      k\  rJ| |t        |«      z
  | |k(  r6|dz  }|t        |«      z  }|t        |«      k\  r| |t        |«      z
  | |k(  rŒ6||k  r| S |}|dk\  r| |dz
  | dk(  r|dz  }n|dk\  r| |dz
     dk(  r|dz  }| d| S )zFDrop a trailing run of the desktop ~[[e corruption signature (#62557).r   é   é   z[eú[N)Ú_DESKTOP_PASTE_ARTIFACTÚlen)r   Úmin_repeatsÚmarkerÚindexÚrepeat_countÚstarts         r   Ú!collapse_repeated_input_artifactsr   *   sÞ   € áØˆä$€FÜ‹I€EØ€LØ
”3v“;Ò
 4¨´°F³Ñ(;¸eÐ#DÈÒ#NØ˜ÑˆØ”V“Ñˆð ”3v“;Ò
 4¨´°F³Ñ(;¸eÐ#DÈÓ#Nð kÒ!Øˆà€EØ‚zd˜5 1™9 uÐ-°Ò5Ø‰
‰Ø	!Š˜˜U Q™Y™¨3Ò.Ø‰
ˆØˆ<Ðr   c                óV   — t        | t        «      r| s| S t        | «      }t        |«      S )zFNormalize user-authored prompt text before persistence or model input.)Ú
isinstanceÚstrr   r   )r   Úcleaneds     r   Úsanitize_user_prompt_textr    A   s(   € ädœCÔ ©ØˆÜ3°DÓ9€GÜ,¨WÓ5Ð5r   )r   r   Úreturnr   )é   )r   r   r   Úintr!   r   )Ú__doc__Ú
__future__r   ÚreÚcompiler   r	   r
   r   r   r   r   r    © r   r   ú<module>r)      sm   ðÙ Oå "ã 	à", "§*¡*Ð-FÓ"GÐ Ø * §
¡
Ð+MÓ NÐ Ø", "§*¡*Ð-CÓ"DÐ Ø * §
¡
Ð+JÓ KÐ ð !Ð óô4ô.6r   