Ë
    âß²jÉ
  ã                  óž   — d Z ddlmZ ddlZddlZddlZddlmZ ddhZddhZ	h d	£Z
d
dœ	 	 	 	 	 	 	 	 	 dd„Zd
dœdd„Zdd„Zdd„Zdd„Zdd„Zy)z1Secret input prompts with masked typing feedback.é    )ÚannotationsN)ÚCallableúúúú
>   Ú úúÚ*©Úmaskc               óD  — g } ||«       	  | «       }|t         v r |d«       dj                  |«      S |dk(  r |d«       t        ‚|t        v r |d«       t        ‚|t
        v r|r|j                  «         |d«       Œu|dk(  rŒ{|j                  |«       |r ||«       Œ–)zCRead one secret line while writing a mask character per typed char.z
r	   úz ú)Ú_ENTER_CHARSÚjoinÚKeyboardInterruptÚ
_EOF_CHARSÚEOFErrorÚ_BACKSPACE_CHARSÚpopÚappend)Ú	read_charÚwriteÚpromptr   ÚvalueÚchs         ú=/home/ubuntu/.hermes/hermes-agent/hermes_cli/secret_prompt.pyÚ_collect_masked_inputr       s¥   € ð €EÙ	ˆ&„MØ
Ù‹[ˆØ”ÑÙ�&ŒMØ—7‘7˜5“>Ð!Ø�Š<Ù�&ŒMÜ#Ð#Ø”ÑÙ�&ŒMÜˆNØÔ!Ñ!ÙØ—	‘	”Ù�g”ØØ�Š<ð Ø�‰�RÔÙÙ�$ŒKð- ó    c               óJ  — t        t        j                  «      rt        t        j                  «      st	        j                  | «      S t
        j                  dk(  rt        nt        }	  || |¬«      S # t        t        f$ r ‚ t        $ r t	        j                  | «      cY S w xY w)z½Prompt for a secret while showing masked typing feedback.

    Falls back to ``getpass.getpass`` when stdin/stdout are not interactive or when raw terminal
    handling is unavailable.
    Úntr   )Ú_stream_is_ttyÚsysÚstdinÚstdoutÚgetpassÚosÚnameÚ_masked_secret_prompt_windowsÚ_masked_secret_prompt_posixr   r   Ú	Exception)r   r   Úmaskeds      r   Úmasked_secret_promptr/   /   s}   € ô œ#Ÿ)™)Ô$¬N¼3¿:¹:Ô,FÜ�‰˜vÓ&Ð&Ü.0¯g©g¸ªoÕ*ÔC^€Fð'Ù�f 4Ô(Ð(øÜœxÐ(ò ØÜò 'Ü�‰˜vÓ&Ò&ð'ús   Á(	A2 Á2-B"Â!B"c                óT   — 	 t        | j                  «       «      S # t        $ r Y yw xY w)NF)ÚboolÚisattyr-   )Ústreams    r   r$   r$   @   s*   € ðÜ�F—M‘M“OÓ$Ð$øÜò Ùðús   ‚ ›	'¦'c                ó~   — t         j                  j                  | «       t         j                  j                  «        y )N)r%   r'   r   Úflush)Útexts    r   Ú_writer7   G   s$   € Ü‡J�J×Ñ�TÔÜ‡J�J×ÑÕr!   c               ó>   ‡— dd l Šdˆfd„}t        |t        | |¬«      S )Nr   c                 óR   •— ‰j                  «       } | dv r‰j                  «        y| S )N>   õ   Ã ú r   )Úgetwch)r   Úmsvcrts    €r   r   z0_masked_secret_prompt_windows.<locals>.read_charO   s(   ø€ Ø�]‰]‹_ˆØÐ!Ñ!Ø�M‰MŒOØØˆ	r!   r   )ÚreturnÚstr)r=   r    r7   )r   r   r   r=   s      @r   r+   r+   L   s   ø€ Ûõô ! ¬F°FÀÔFÐFr!   c               ó:  — dd l }dd l}t        j                  j	                  «       }|j                  |«      }	 |j                  |«       t        d„ t        | |¬«      |j                  ||j                  |«       S # |j                  ||j                  |«       w xY w)Nr   c                 ó@   — t         j                  j                  d«      S )Né   )r%   r&   Úread© r!   r   ú<lambda>z-_masked_secret_prompt_posix.<locals>.<lambda>`   s   € ¬S¯Y©Y¯^©^¸AÓ->€ r!   r   )ÚtermiosÚttyr%   r&   ÚfilenoÚ	tcgetattrÚsetrawr    r7   Ú	tcsetattrÚ	TCSADRAIN)r   r   rF   rG   ÚfdÚ	old_attrss         r   r,   r,   Y   s{   € ÛÛÜ	�‰×	Ñ	Ó	€BØ×!Ñ! "Ó%€Ið<Ø�
‰
�2ŒÜ$Ñ%>ÄÈÐUYÔZà×Ñ˜"˜g×/Ñ/°Õ;øˆ×Ñ˜"˜g×/Ñ/°Õ;ús   ¹$A; Á;B)
r   zCallable[[], str]r   zCallable[[str], object]r   r?   r   r?   r>   r?   )r   r?   r   r?   r>   r?   )r>   r1   )r6   r?   r>   ÚNone)Ú__doc__Ú
__future__r   r(   r)   r%   Úcollections.abcr   r   r   r   r    r/   r$   r7   r+   r,   rD   r!   r   ú<module>rS      s„   ðÙ 7å "ã Û 	Û 
Ý $ð ˜&�>Ð Ø�dˆ|€Ú!€
ð _bñØ ðØ)@ðØJMðØX[ðàóð> 69õ 'ó"óó

Gô	<r!   