Ë
    ãß²jÊ  ã                  óX   — d Z ddlmZ ddlZddlZ ej
                  d«      ZdZdZdd„Z	y)	zÛPath-component helpers shared by execution environment backends. Kept separate from the
base class so lazy backend imports do not depend on newly added exports from a large module
cached earlier in a long-lived process.é    )ÚannotationsNz[^A-Za-z0-9._-]é€   é   c                ó„  — t        | t        «      r| nd}|syt        j                  d|«      }||k(  r)t	        |«      t
        k  r|dvr|j                  d«      s|S t        j                  |j                  d«      «      j                  «       dt         }|dt
        t        z
  dz
   j                  d	«      }|xs d
› d|› �S )a  Bind-mountable directory name for *task_id*'s sandbox. Already-safe names are returned
    verbatim (preserving existing sandbox locations); rewritten names carry a digest because
    substitution alone is not injective: ``a:b`` and ``a_b`` must not share state.Ú ÚdefaultÚ_>   ú..ú.)r   Ú zutf-8Né   z._ÚtaskÚ-)Ú
isinstanceÚstrÚ_SANDBOX_DIR_UNSAFE_REÚsubÚlenÚ_SANDBOX_DIR_MAX_LENÚendswithÚhashlibÚsha256ÚencodeÚ	hexdigestÚ_SANDBOX_DIR_HASH_LENÚstrip)Útask_idÚvalueÚcleanedÚdigestÚstems        úB/home/ubuntu/.hermes/hermes-agent/tools/environments/path_utils.pyÚsanitize_task_id_for_pathr#      s»   € ô " '¬3Ô/‰G°R€EÙØä$×(Ñ(¨¨eÓ4€GØ�5ÒœS ›ZÔ+?Ò?Ø˜[Ñ(°·±À
Ô1KØˆä�^‰^˜EŸL™L¨Ó1Ó2×<Ñ<Ó>Ð?UÔ@UÐV€FØÐEÔ)Ô,AÑAÀAÑEÐF×LÑLÈTÓR€DØŠn�fÐ˜Q˜v˜hÐ'Ð'ó    )r   r   Úreturnr   )
Ú__doc__Ú
__future__r   r   ÚreÚcompiler   r   r   r#   © r$   r"   ú<module>r+      s:   ðñ+õ #ã Û 	ð $˜Ÿ™Ð$6Ó7Ð ØÐ ØÐ ô(r$   