
    j                     z    d Z ddlZddlZddlmZ ddlmZ ddedede	e   de
eef   dz  d	ef
d
Zdedz  d	efdZy)zEShared helpers for all validators in /root/.claude/hooks/validators/.    N)Path)Anynameokerrorsdetailsreturnc                    | |rdnd||xs i d}|r!t        t        j                  |d             nt        j                  j                  t        j                  |dd             t        j                  j                  d       t        j                  j                  d	t        |       d
       t        |d      D ]+  \  }}t        j                  j                  d| d| d       - |rdS dS )zEWrite a JSON report to stdout in the agreed schema, return exit code.passfail)	validatorstatusr   r   F)ensure_ascii   )r   indentz

zResolve these z% validator-errors before proceeding:
   z  z. 
r   )printjsondumpssysstderrwritelen	enumerate)r   r   r   r   reporties          &/root/.claude/hooks/validators/_lib.pyemit_reportr       s     &F=b	F 
djje45 	

FqIJ

 

>#f+6\]^fa( 	.DAqJJr!Bqc_-	.1    path_argc                     | r | dk7  rt        |       j                  d      S t        j                  j	                         S )z<Read from file path or stdin (when path_arg is '-' or None).-zutf-8)encoding)r   	read_textr   stdinread)r"   s    r   
read_inputr)      s4    HOH~'''9999>>r!   )N)__doc__r   r   pathlibr   typingr   strboollistdictintr    r)    r!   r   <module>r3      sf    K  
  c t T#Y c3hRVAV be (t  r!   