+
    lHàj‘  ã                   ór   € R t ^ RIt^ RIHt ^ RIHt R R ltR R lt]P                  ! R4      t	R	 R
 lt
R# )zYShared path validation helpers for tool implementations (skills, cron, credential files).N)ÚPath)ÚOptionalc                óR   € V ^8„  d   QhR\         R\         R\        \        ,          /# )é   ÚpathÚrootÚreturn)r   r   Ústr)Úformats   "Ú8/home/ubuntu/.hermes/hermes-agent/tools/path_security.pyÚ__annotate__r      s%   € ÷ ñ œdð ¬$ð ´8¼Cµ=ñ ó    c                ó¨   €  V P                  4       P                  VP                  4       4       R#   \        \        3 d   pRT 2u Rp?# Rp?ii ; i)zVError message if *path* does not resolve inside *root* (symlinks and ``..`` followed).z Path escapes allowed directory: N)ÚresolveÚrelative_toÚ
ValueErrorÚOSError)r   r   Úexcs   && r   Úvalidate_within_dirr      sJ   € ð8Ø�‰‹×"Ñ" 4§<¡<£>Ô2ñ øô œÐ ô 8Ø1°#°Ð7Õ7ûð8ús   ‚-1 ±AÁAÁAÁAc                ó0   € V ^8„  d   QhR\         R\        /# ©r   Úpath_strr   ©r	   Úbool)r
   s   "r   r   r      s   € ÷ (ñ (¤cð (¬dñ (r   c                ó2   € R\        V 4      P                  9   # )zFCheap pre-check for a literal ``..`` component before full resolution.z..)r   Úparts©r   s   &r   Úhas_traversal_componentr      s   € à”4˜“>×'Ñ'Ñ'Ð'r   z[\x00-\x1f\x7f\x85\u2028\u2029]c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r
   s   "r   r   r      s   € ÷ 5ñ 5¤Cð 5¬Dñ 5r   c                ó>   € \        \        P                  V 4      4      # )zDTrue when *path_str* contains control characters or line separators.)r   Ú_UNSAFE_PATH_CHARSÚsearchr   s   &r   Úhas_unsafe_path_charsr"      s   € äÔ"×)Ñ)¨(Ó3Ó4Ð4r   )Ú__doc__ÚreÚpathlibr   Útypingr   r   r   Úcompiler    r"   © r   r   Ú<module>r)      s2   ðÙ _ã 	Ý Ý õõ(ð —Z’ZÐ BÓCÐ ÷5r   