
    Ki                    N    d Z ddlmZ ddlZddlmZ ddlmZ ddZdddddZ	dS )zFHelpers for loading Hermes .env files consistently across entrypoints.    )annotationsN)Path)load_dotenvpathr   overrideboolreturnNonec               r    	 t          | |d           d S # t          $ r t          | |d           Y d S w xY w)Nzutf-8)dotenv_pathr   encodingzlatin-1)r   UnicodeDecodeError)r   r   s     2/home/ubuntu/hermes-agent/hermes_cli/env_loader.py_load_dotenv_with_fallbackr      s`    Mx'JJJJJJ M M Mx)LLLLLLLMs    66)hermes_homeproject_envr   str | os.PathLike | Noner   
list[Path]c                   g }t          | p(t          j        dt          j                    dz                      }|dz  }|rt          |          nd}|                                r&t          |d           |                    |           |r;|                                r't          ||            |                    |           |S )a[  Load Hermes environment files with user config taking precedence.

    Behavior:
    - `~/.hermes/.env` overrides stale shell-exported values when present.
    - project `.env` acts as a dev fallback and only fills missing values when
      the user env exists.
    - if no user env exists, the project `.env` also overrides stale shell vars.
    HERMES_HOMEz.hermesz.envNT)r   )r   osgetenvhomeexistsr   append)r   r   loaded	home_pathuser_envproject_env_paths         r   load_hermes_dotenvr       s     F[UBImTY[[9=T$U$UVVI6!H,7AtK(((T  "8d;;;;h (,3355 ("#3&jIIII&'''M    )r   r   r   r   r	   r
   )r   r   r   r   r	   r   )
__doc__
__future__r   r   pathlibr   dotenvr   r   r     r!   r   <module>r'      s    L L " " " " " " 				            M M M M -1,0       r!   