+
    –°³j;  ã                   óœ  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
 ^ RIHtHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ RIHt ^R	IHtHt ^R
IHt ^RIHt ]P>                  ! ] 4      t!Rt"Rt#Rt$Rt%]R>,          t&]	! RR7       ! R R4      4       t']	! RR7       ! R R4      4       t(R?R R llt)R?R R llt*R@R R llt+R R lt,R?R R llt-]P\                  ! R 4      t/R?R! R" llt0R# R$ lt1R% R& lt2R' R( lt3R) R* lt4R+ R, lt5R- R. lt6R/ R0 lt7R1 R2 lt8R3 R4 lt9]P\                  ! R54      t:R6 R7 lt;R8 R9 lt<R: R; lt=R< R= lt>R# )AzNInternal helpers for Hugging Face marketplace skill installation and upgrades.N)ÚCallable)Ú	dataclassÚreplace)ÚPathÚPurePosixPath)ÚAnyÚLiteral)Ú__version__Ú	constants)Ú
BucketFile)ÚCLIError)Údisable_progress_barsÚlogging)Ú
get_hf_api)Úoutzhf-clizhuggingface/skillsúmarketplace.jsonz.hf-skill-manifest.jsonT)Úfrozenc                   ó0   a € ] tR t^$t o RtV 3R ltRtV tR# )ÚMarketplaceSkillNc                óL   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ R,          ;R&   # )é   ÚnameÚ	repo_pathNÚdescription©Ústr)ÚformatÚ__classdict__s   "€Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/huggingface_hub/cli/_skills.pyÚ__annotate__ÚMarketplaceSkill.__annotate__$   s,   ø‡ ‚ á
�Iñ ñ �Nñ ñ �t•Ñ"ò	 ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r   $   s   ø‡ € ð #€K÷	 ƒ r!   r   c                   ó0   a € ] tR t^+t o RtV 3R ltRtV tR# )ÚSkillUpdateInfoNc                óX   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[ R,          ;R&   # )r   r   Ú	skill_dirÚstatusNÚdetail)r   r   ÚSkillUpdateStatus)r   r   s   "€r   r   ÚSkillUpdateInfo.__annotate__+   s9   ø‡ ‚ á
�Iñ ñ �Oñ ñ Ññ	 ñ
 �$�JÑò r!   r"   )r#   r$   r%   r&   r0   r'   r(   r)   r*   s   @r   r,   r,   +   s   ø‡ € ð
 €F÷ ƒ r!   r,   c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   Ú
skill_nameÚdestination_rootÚforceÚreturn©r   r   Úbool)r   s   "r   r   r   3   s.   € ÷ Uñ Uœ#ð U´ð U¼dð UÌtñ Ur!   c           	     óò   € \        4       p\        4       ;_uu_ 4        \        V4      p\        W@4      pVf   \	        RV  R\
         R24      h\        W5WR7      uuRRR4       #   + '       g   i     R# ; i)z3Resolve a marketplace skill by name and install it.NúSkill 'z' not found in zD. Try `hf skills add` to install `hf-cli` or use a known skill name.©r6   )r   r   Ú_load_marketplace_skillsÚ_select_marketplace_skillr   ÚDEFAULT_SKILLS_BUCKET_IDÚ_install_marketplace_skill)r4   r5   r6   ÚapiÚmarketplace_skillsÚskills   &&&   r   Ú	add_skillrD   3   sr   € ä
‹,€CÜ	×	 Õ	 Ü5°cÓ:ÐÜ)Ð*<ÓIˆØŠ=ÜØ˜*˜ _Ô5MÐ4Nð OUð Uóð ô *¨#Ð6FÔT÷ 
!×	 ×	 Ó	 ús   �=A%Á%A6	c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   Úcontentr5   r6   r7   r8   )r   s   "r   r   r   A   s/   € ÷ ^ñ ^¤Sð ^¼Dð ^Ìð ^ÔZ^ñ ^r!   c                ó:   a € R V 3R llp\        \        WVR7      # )zXInstall the `hf-cli` skill from locally generated SKILL.md content (no bucket download).c                ó(   € V ^8„  d   QhR\         RR/# ©r   Úinstall_dirr7   N©r   )r   s   "r   r   Ú-install_generated_skill.<locals>.__annotate__D   s   € ÷ 8ñ 8œdð 8 tñ 8r!   c                 ó˜   <€ V P                  R R R7       V R,          P                  SRR7       V \        ,          P                  4        R# )T©ÚparentsÚexist_okúSKILL.mdúutf-8©ÚencodingN)ÚmkdirÚ
write_textÚMANAGED_MARKER_FILENAMEÚtouch)rJ   rF   s   &€r   ÚpopulateÚ)install_generated_skill.<locals>.populateD   s@   ø€ Ø×Ñ $°ÐÔ6Ø	�zÕ	!×-Ñ-¨gÀÐ-ÔHØ	Ô.Õ	.×5Ñ5Ö7r!   ©rY   r6   )Ú_install_skillÚDEFAULT_SKILL_ID)rF   r5   r6   rY   s   f&& r   Úinstall_generated_skillr^   A   s!   ø€ ÷8ð 8ô
 Ô*Ð,<ÐW\Ô]Ð]r!   c          	      ó‚   € V ^8„  d   QhR\         \        ,          R\        R,          R\        R\         \        ,          /# )r   ÚrootsÚselectorNÚhf_cli_contentr7   )Úlistr   r   r,   )r   s   "r   r   r   L   s>   € ÷ rñ rœœd�ð r¬s°T­zð rÔUXð rÔ]aÔbqÕ]rñ rr!   c          	     óœ  € \        V 4      pVej   VP                  4       P                  4       pV Uu. uF%  qUP                  P                  4       V8X  g   K#  VNK'  	  ppV'       g   \	        RV RV R24      h\
        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      pRp/ pV'       dX   \        4       p\        4       ;_uu_ 4        \        V4       U	u/ uF  q™P                  P                  4       V	bK  	  pp	RRR4       V U
u. uF  p
\        WzW‚4      NK  	  up
# u upi u up	i   + '       g   i     L6; iu up
i )zgRe-sync managed skill installs (`hf-cli` is rewritten from `hf_cli_content`, the rest from the bucket).NzNo installed skill matches 'z"'. Install it with `hf skills add z`.c              3   óŒ   "  € T F:  qP                   \        8g  ;'       d    V\        ,          P                  4       x € K<  	  R # 5i©N)r   r]   rW   Úexists)Ú.0Úds   & r   Ú	<genexpr>Ú update_skills.<locals>.<genexpr>V   s5   é € ÐvÑkuÐfgŸF™FÔ&6Ñ6×aÐa¸AÔ@WÕ<W×;_Ñ;_Ó;aÔaÓkuùs
   ‚A $ATF)
Ú_iter_unique_skill_dirsÚstripÚlowerr   r   Úanyr   r   r=   Ú_apply_single_update)r`   ra   rb   Ú
skill_dirsÚselector_lowerri   Úneeds_marketplacerA   rB   rC   r.   s   &&$        r   Úupdate_skillsrt   L   s"  € ä(¨Ó/€JØÒØ!Ÿ™Ó)×/Ñ/Ó1ˆÙ!+ÓP¡˜A¯v©v¯|©|«~ÀÑ/O—a�a¡ˆ
ÐPßÜÐ9¸(¸ÐCeÐfnÐeoÐoqÐrÓsÐs÷ ›ÑvÑkuÓvŸŸšÑvÑkuÓvÓvÐØ
€CØ68ÐßÜ‹lˆÜ"×$Õ$ÜIaÐbeÔIfÓ!gÑIfÀ§*¡*×"2Ñ"2Ó"4°eÒ";ÑIfÐÐ!g÷ %ñ gqÓqÑfpÐYbÔ  Ð1CÖTÑfpÑqÐqùò Qùò "h÷ %×$üò rs/   ² D,ÁD,ÃD6Ã##D1ÄD6ÄE	Ä1D6Ä6E	c                ó:   € V ^8„  d   QhR\         \        ,          /# ©r   r7   )rc   r   )r   s   "r   r   r   a   s   € ÷ ñ ¤TÔ*:Õ%;ñ r!   c                 ó  € \        V 4      pVP                  R 4      p\        V\        4      '       g   \	        R4      h. pV Fº  p\        V\
        4      '       g   K  VP                  R4      pVP                  R4      p\        V\        4      '       d   \        V\        4      '       g   Kk  VP                  R4      pTP                  \        T\        V4      \        V\        4      '       d   TMRR7      4       K¼  	  V# )ÚpluginszAInvalid marketplace payload: expected a top-level 'plugins' list.r   Úsourcer   N)r   r   r   )
Ú_load_marketplace_payloadÚgetÚ
isinstancerc   r   Údictr   Úappendr   Ú_normalize_repo_path)rA   Úpayloadrx   ÚskillsÚpluginr   ry   r   s   &       r   r=   r=   a   sÏ   € Ü'¨Ó,€GØ�k‰k˜)Ó$€GÜ�gœt×$Ò$ÜÐZÓ[Ð[à%'€FÛˆÜ˜&¤$×'Ò'ÙØ�z‰z˜&Ó!ˆØ—‘˜HÓ%ˆÜ˜$¤×$Ò$¬J°v¼s×,CÒ,CÙØ—j‘j Ó/ˆØ�‰ÜØÜ.¨vÓ6Ü+5°kÄ3×+GÒ+G™KÈTôö	
ñ ð €Mr!   c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   rC   r5   r6   r7   )r   r   r9   )r   s   "r   r   r   z   s1   € ÷ 
Xñ 
XÔ+;ð 
XÌtð 
XÔ\`ð 
XÔmqñ 
Xr!   c                óJ   a a€ R V V3R llp\        SP                  W$VR7      # )z:Install a marketplace skill into a local skills directory.c                ó(   € V ^8„  d   QhR\         RR/# rI   rK   )r   s   "r   r   Ú0_install_marketplace_skill.<locals>.__annotate__}   s   € ÷ 8ñ 8œdð 8 tñ 8r!   c                 ó¬   <€ V P                  R R R7       \        SS4      p\        SSW4       \        V 4       V \        ,          P                  4        R# )TrN   N)rU   Ú_list_skill_filesÚ_download_skill_filesÚ_validate_installed_skill_dirrW   rX   )rJ   Úbucket_filesrA   rC   s   & €€r   rY   Ú,_install_marketplace_skill.<locals>.populate}   sH   ø€ Ø×Ñ $°ÐÔ6Ü(¨¨eÓ4ˆÜ˜c 5¨,ÔDÜ% kÔ2Ø	Ô.Õ	.×5Ñ5Ö7r!   r[   )r\   r   )rA   rC   r5   r6   rY   s   ff&& r   r@   r@   z   s$   ù€ ÷8ñ 8ô ˜%Ÿ*™*Ð&6ÐQVÔWÐWr!   z[A-Za-z0-9][A-Za-z0-9._-]*c          
      óp   € V ^8„  d   QhR\         R\        R\        \        .R3,          R\        R\        /# )r   r   r5   rY   Nr6   r7   )r   r   r   r9   )r   s   "r   r   r   Š   sE   € ÷ 'ñ 'Ü
ð'äð'ô œ�v˜t�|Õ$ð'ô ð	'ô
 
ñ'r!   c                ó¼  € \         P                  V 4      '       g   \        RV  R24      hVP                  4       P	                  4       pVP                  RRR7       W,          pVP                  4       pV'       d   V'       g   \        RV 24      hV'       dj   \        P                  ! VRVP                   R2R7      ;_uu_ 4       p\        V4      VP                  ,          pV! V4       \        WGR	7       R
R
R
4       V#  V! V4       V#   + '       g   i     T# ; i  \         d/    TP                  4       '       d   \        P                  ! T4       h i ; i)a­  Install a skill into ``destination_root`` by calling ``populate(install_dir)`` to fill it.

Used by both the marketplace install (populate = download from bucket) and the
locally-generated install (populate = write content). When the install already
exists and ``force`` is set, the new content is staged in a sibling tempdir and
atomically swapped in, so the existing install stays intact if ``populate``
fails halfway through.
zInvalid skill name 'ú'.TrN   zSkill already exists: Ú.z	.install-)ÚdirÚprefix)Úexisting_dirÚ
staged_dirN)Ú_VALID_SKILL_NAMEÚ	fullmatchr   Ú
expanduserÚresolverU   rg   ÚFileExistsErrorÚtempfileÚTemporaryDirectoryr   r   Ú_atomic_replace_directoryÚ	ExceptionÚshutilÚrmtree)r   r5   rY   r6   rJ   Úalready_existsÚtmp_dir_strr”   s   &&&&    r   r\   r\   Š   s6  € ô  ×&Ñ& t×,Ò,ÜÐ-¨d¨V°2Ð6Ó7Ð7Ø'×2Ñ2Ó4×<Ñ<Ó>ÐØ×Ñ 4°$ÐÔ7Ø"Õ)€KØ ×'Ñ'Ó)€NçŸeÜÐ 6°{°mÐDÓEÐEçÜ×(Ò(Ð-=ÈÈ+×JZÑJZÐI[Ð[dÐFe×fÕfÐjuÜ˜kÓ*¨[×-=Ñ-=Õ=ˆJÙ�ZÔ Ü%°;ÕV÷ gð ÐðÙ�Ôð
 Ð÷ gÖfð Ðûô ô Ø×Ñ×ÒÜ�MŠM˜+Ô&Øðús   Ã1DÄD" ÄD	Ä" EÅEc                óF   € V ^8„  d   QhR\         \        \        3,          /# rv   )r}   r   r   )r   s   "r   r   r   ´   s   € ÷ ñ ¤d¬3´¨8¥nñ r!   c                 óh  € \         P                  ! 4       ;_uu_ 4       p\        V4      R ,          pV P                  \        \
        V3.RR7       \        P                  ! VP                  RR7      4      pRRR4       \        X\        4      '       g   \        R4      hV#   + '       g   i     L3; i)r   T)Úraise_on_missing_filesrR   rS   Nz4Invalid marketplace payload: expected a JSON object.)rš   r›   r   Údownload_bucket_filesr?   ÚMARKETPLACE_PATHÚjsonÚloadsÚ	read_textr|   r}   r   )rA   Útmp_dirÚ
local_pathÚparseds   &   r   rz   rz   ´   s’   € Ü	×	$Ò	$×	&Ô	&¨'Ü˜'“]Ð%7Õ7ˆ
Ø×!Ñ!Ü$Ü 
Ð+Ð,Ø#'ð 	"ô 	
ô
 —’˜J×0Ñ0¸'Ð0ÓBÓCˆ÷ 
'ô �fœd×#Ò#ÜÐMÓNÐNØ€M÷ 
'×	&ús   žAB!Â!B1	c                ó`   € V ^8„  d   QhR\         \        ,          R\        R\        R,          /# )r   r�   ra   r7   N)rc   r   r   )r   s   "r   r   r   Ã   s.   € ÷ ñ ¤dÔ+;Õ&<ð Ìð ÔP`ÐcgÕPgñ r!   c                 óš   € VP                  4       P                  4       pV  F&  pVP                  P                  4       V8X  g   K$  Vu # 	  R # rf   )rm   rn   r   )r�   ra   rr   rC   s   &&  r   r>   r>   Ã   s@   € Ø—^‘^Ó%×+Ñ+Ó-€NÛˆØ�:‰:×ÑÓ Ö/ØŠLñ ñ r!   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Úpathr7   r   )r   s   "r   r   r   Ë   s   € ÷ ñ œsð ¤sñ r!   c                 ó²   € V P                  4       pVP                  R 4      '       d   VR,          pK"  VP                  R4      pV'       g   \        R4      hV# )z./:r   NNÚ/z-Invalid marketplace entry: empty source path.)rm   Ú
startswithr   )r°   Ú
normalizeds   & r   r   r   Ë   sL   € Ø—‘“€JØ
×
Ñ
 ×
%Ò
%Ø •^Š
Ø×!Ñ! #Ó&€JßÜÐFÓGÐGØÐr!   c                ó(   € V ^8„  d   QhR\         RR/# )r   r.   r7   NrK   )r   s   "r   r   r   Õ   s   € ÷ Qñ Q¬Tð Q°dñ Qr!   c                 ó`   € V R ,          pVP                  4       '       g   \        RV 24      hR# )rQ   z%Installed skill is missing SKILL.md: N)Úis_fileÚRuntimeError)r.   Ú
skill_files   & r   rŠ   rŠ   Õ   s3   € Ø˜ZÕ'€JØ×Ñ×ÒÜÐBÀ:À,ÐOÓPÐPñ  r!   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# )r   rC   r7   )r   rc   r   )r   s   "r   r   r   Û   s    € ÷ 
ñ 
Ô"2ð 
´t¼JÕ7Gñ 
r!   c                ó   € VP                   P                  R4      pV P                  \        VRR7       Uu. uF  p\	        V\
        4      '       g   K  VNK  	  ppV'       g   \        RV R\         R24      hV# u upi )zAList all files under `skill.repo_path` in the marketplace bucket.r²   T)r’   Ú	recursivezPath 'z' not found in bucket 'r�   )r   ÚrstripÚlist_bucket_treer?   r|   r   ÚFileNotFoundError)rA   rC   r’   ÚitemÚfiless   &&   r   rˆ   rˆ   Û   s…   € à�_‰_×#Ñ# CÓ(€Fð ×(Ñ(Ô)AÈ&Ð\`Ð(ÔaóáaˆDÜ�dœJ×'÷ 	ˆÙað 
ð ÷
 Ü &¨¨Ð0GÔH`ÐGaÐacÐ dÓeÐeØ€Lùòs   ¶A;ÁA;c                óV   € V ^8„  d   QhR\         R\        \        ,          R\        RR/# )r   rC   rÁ   rJ   r7   N)r   rc   r   r   )r   s   "r   r   r   è   s6   € ÷ Hñ HÔ&6ð H¼tÄJÕ?Oð HÔ^bð HÐgkñ Hr!   c                óÞ  € VP                   P                  R4      pV R2p. pV F�  pVP                  P                  V4      '       g   K&  VP                  \	        V4      R pVP
                  ! \        V4      P                  !  p	V	P                  P                  RRR7       VP                  Wy34       K’  	  V'       g   \        RV R\         R24      hV P                  \        V4       R# )z)Download bucket files into `install_dir`.r²   NTrN   zNo files found under 'z' in bucket 'r�   )r   r½   r°   r³   ÚlenÚjoinpathr   ÚpartsÚparentrU   r~   r¿   r?   r¥   )
rA   rC   rÁ   rJ   r’   Úprefix_with_slashÚdownload_specsÚbucket_fileÚrelativeÚ
local_files
   &&&&      r   r‰   r‰   è   sâ   € à�_‰_×#Ñ# CÓ(€FØ!˜( !˜Ðð AC€NÛˆØ×Ñ×*Ñ*Ð+<×=Ò=ÙØ×#Ñ#¤CÐ(9Ó$:Ð$<Ð=ˆØ ×)Ò)¬=¸Ó+B×+HÑ+HÑIˆ
Ø×Ñ×Ñ¨°tÐÔ<Ø×Ñ˜{Ð7Ö8ñ ÷ ÜÐ"8¸¸ÀÔNfÐMgÐgiÐ jÓkÐkà×ÑÔ6¸ÖGr!   c                ó4   € V ^8„  d   QhR\         R\         RR/# )r   r“   r”   r7   NrK   )r   s   "r   r   r      s!   € ÷ 	ñ 	¬Dð 	¼dð 	Àtñ 	r!   c                 óR  € VP                   V P                   R 2,          p V P                  V4       VP                  V 4       \        P                  ! V4       R#   \
         d@    TP                  4       '       d(   T P                  4       '       g   TP                  T 4       h i ; i)z.backupN)rÇ   r   Úrenamerž   rŸ   r�   rg   )r“   r”   Ú
backup_dirs   && r   rœ   rœ      sŠ   € Ø×"Ñ"¨×(9Ñ(9Ð':¸'Ð%BÕB€JðØ×Ñ˜JÔ'Ø×Ñ˜,Ô'Ü�Š�jÖ!øÜô Ø×Ñ×Ò |×':Ñ':×'<Ò'<Ø×Ñ˜lÔ+Øðús   ¢8A Á B&Á=B&ÂB&c                ó\   € V ^8„  d   QhR\         \        ,          R\         \        ,          /# ©r   r`   r7   )rc   r   )r   s   "r   r   r     s"   € ÷ ñ ¤4¬¥:ð ´$´tµ*ñ r!   c                 ó  € \        4       p. pV  Fú  pVP                  4       P                  4       pVP                  4       '       g   K9  \	        VP                  4       4       F¤  pVP                  P                  R 4      '       d   K&  VP                  4       '       g   VP                  4       '       g   KT  VP                  4       pWQ9   g   VP                  4       '       g   K‚  VP                  V4       VP                  V4       K¦  	  Kü  	  V# )r�   )Úsetr—   r˜   Úis_dirÚsortedÚiterdirr   r³   Ú
is_symlinkÚaddr~   )r`   ÚseenÚ
discoveredÚrootÚchildÚresolveds   &     r   rl   rl     sÆ   € Ü“e€DØ€JÛˆØ�‰Ó ×(Ñ(Ó*ˆØ�{‰{�}Š}ÙÜ˜DŸL™L›NÖ+ˆEØ�z‰z×$Ñ$ S×)Ò)ÙØ—<‘<—>’>¨%×*:Ñ*:×*<Ò*<ÙØ—}‘}“ˆHØÔ x§¡×'8Ò'8ÙØ�H‰H�XÔØ×Ñ˜hÖ'ó ,ñ	 ð Ðr!   c                ój   € V ^8„  d   QhR\         R\        \        \        3,          R\        R\        /# )r   r.   rB   rb   r7   )r   r}   r   r   r,   )r   s   "r   r   r      s7   € ÷ .ñ .Üð.Ü.2´3Ô8HÐ3HÕ.Ið.Ü[^ð.äñ.r!   c           	      ó”  € \        VP                  VR R7      pV\        ,          P                  4       '       g   V# VP                  \        8X  d&    \        W1P                  RR7       \        TRR7      # VP                  VP                  P                  4       4      pVf$   \        VRR	VP                   R
\         R2R7      #  \        WVP                  RR7       \        TRR7      #   \         d"   p\        TR\        T4      R7      u Rp?# Rp?ii ; i  \         d"   p\        TR\        T4      R7      u Rp?# Rp?ii ; i)Ú	unmanaged)r   r.   r/   Tr<   Úsource_unreachable)r/   r0   NÚ
up_to_date)r/   r;   z' is no longer available in r�   )r,   r   rW   rg   r]   r^   rÇ   r�   r   r   r{   rn   r?   r@   )rA   r.   rB   rb   ÚbaseÚexcrC   s   &&&&   r   rp   rp      s(  € ô  	§¡¸)ÈKÔX€DàÔ/Õ/×7Ñ7×9Ò9Øˆà‡~�~Ô)Ô)ð	OÜ# N×4DÑ4DÈDÕQô �t LÔ1Ð1à×"Ñ" 9§>¡>×#7Ñ#7Ó#9Ó:€EØ‚}ÜØØ'Ø˜YŸ^™^Ð,Ð,HÔIaÐHbÐbcÐdô
ð 	
ðKÜ" 3¨y×/?Ñ/?ÀtÕLô �4 Ô-Ð-øô# ô 	OÜ˜4Ð(<ÄSÈÃXÔNÕNûð	Oûô ô KÜ�tÐ$8ÄÀSÃÔJÕJûðKús<   ÁC, ÃD Ã,DÃ7DÄDÄDÄEÄ&EÄ<EÅEz)Generated with `huggingface_hub v([^`]+)`c                ó   € V ^8„  d   QhRR/# ©r   r7   Nr"   )r   s   "r   r   r   F  s   € ÷ Uñ U˜Dñ Ur!   c                 ón   €  \        4        R#   \         d    \        P                  RRR7        R# i ; i)a9  Hint at installing or updating the `hf-cli` skill, at most once every 24 hours.

Only prints a hint: installing or updating stays an explicit user action.

Skipped entirely if `HF_HUB_DISABLE_UPDATE_CHECK` is set. Called at the entry point of
the CLI, so any error is caught and logged to avoid breaking the CLI.
z-Error while checking for hf-cli skill update.T)Úexc_infoN)Ú_check_skill_updater�   ÚloggerÚdebugr"   r!   r   Úcheck_skill_updaterí   F  s0   € ðUÜÖøÜô UÜ�‰ÐDÈtˆ×TðUús   ‚
 Ž"4³4c                ó   € V ^8„  d   QhRR/# rç   r"   )r   s   "r   r   r   T  s   € ÷ "ñ "˜Tñ "r!   c            	      ó$  € \         P                  '       d   R # \        \         P                  4      p V P	                  4       '       d<   \
        P
                  ! 4       V P                  4       P                  ,
          R8  d   R # V P                  P                  RRR7       V P                  4        \        \         P                  \         P                  4      p\        \         P                  \         P                  4      pV'       ge   V'       g]   \         ;QJ d    R R 4       F  '       g   K   RM	  RM! R R 4       4      '       d   R # \"        P$                  ! R\&         R24       R # \         ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   RpM?\         ;QJ d    R	 V 4       F  '       g   K   RM	  RM! R	 V 4       4      '       d   R
pMR # \"        P$                  ! R\&         R\&         RV R24       R # )NTrN   c              3   ó2   "  € T F  q\         9   x € K  	  R # 5irf   )r	   )rh   Útags   & r   rj   Ú&_check_skill_update.<locals>.<genexpr>d  s   é € Ð;©] c”kÖ!«]ùs   ‚FzThe `zj` skill is not installed. Run `hf skills add -g --claude` to teach your AI agents how to use the `hf` CLI.c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irf   ©Ú_is_skill_outdated©rh   r.   s   & r   rj   rò   m  s   é € Ð
F¹+¨YÔ˜i×(Ð(»+ùó   ‚z-g --claudec              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irf   rô   rö   s   & r   rj   rò   o  s   é € ÐG¹J¨yÔ 	×*Ð*»Jùr÷   z--claudezThe installed `zE` skill was generated by another `hf` version. Run `hf skills update Ú z` to refresh it.i€Q )ÚrcÚdev)r
   ÚHF_HUB_DISABLE_UPDATE_CHECKr   Ú CHECK_FOR_SKILL_UPDATE_DONE_PATHrg   ÚtimeÚstatÚst_mtimerÇ   rU   rX   Ú_installed_hf_cli_dirsÚAGENTS_SKILLS_GLOBAL_PATHÚCLAUDE_SKILLS_GLOBAL_PATHÚAGENTS_SKILLS_LOCAL_PATHÚCLAUDE_SKILLS_LOCAL_PATHro   r   Úhintr]   )Ú
stamp_pathÚglobal_dirsÚ
local_dirsÚscopes       r   rê   rê   T  sx  € Ü×,×,Ð,Ùô ”i×@Ñ@ÓA€JØ×Ñ×Ò¤§	¢	£¨j¯o©oÓ.?×.HÑ.HÕ HÈIÔUÙØ×Ñ×Ñ D°4ÐÔ8Ø×ÑÔä(¬×)LÑ)LÌi×NqÑNqÓr€KÜ'¬	×(JÑ(JÌI×LnÑLnÓo€JçŸzç‹3Ñ;©]Ó;�3�3Š3Ñ;©]Ó;×;Ò;ÙÜ�ŠØÔ$Ð%ð &@ð @ô	
ñ 	÷ ƒsÑ
F¹+Ó
F‡s‡s‚sÑ
F¹+Ó
F×FÒFØ‰ß	‹ÑG¹JÓG��ŠÑG¹JÓG×	GÒ	GØ‰áÜ‡H‚HØ
Ô*Ð+ð ,"Ü"2Ð!3°1°U°GÐ;Kð	Mör!   c                óF   € V ^8„  d   QhR\         R\        \         ,          /# rÒ   )r   rc   )r   s   "r   r   r   y  s"   € ÷ Rñ R¤4ð R¬D´­Jñ Rr!   c                  óü   € V  Uu. uF+  qP                  4       \        ,          P                  4       NK-  	  pp\        P	                  V4       Uu. uF  q3P                  4       '       g   K  VNK  	  up# u upi u upi rf   )r—   r]   r˜   r}   ÚfromkeysrÕ   )r`   rÜ   Údirsr.   s   *   r   r  r  y  s^   € ÙINÓOÉÀ�_‰_ÓÔ!1Õ1×:Ñ:Ö<É€DÐOÜ'+§}¡}°TÔ':ÓQÑ':˜)×>NÑ>N×>P�IˆIÑ':ÑQÐQùò PùÚQs   …1A4ÁA9Á+A9c                ó0   € V ^8„  d   QhR\         R\        /# )r   r.   r7   )r   r9   )r   s   "r   r   r   ~  s   € ÷ :ñ :¤$ð :¬4ñ :r!   c                óÌ   €  V R,          P                  RR7      p\        P                  T4      pTRJ ;'       g    TP	                  ^4      \
        8g  #   \         d     R# i ; i)zNWhether the installed `hf-cli` SKILL.md was generated by another `hf` version.rQ   rR   rS   FN)r©   ÚOSErrorÚ_GENERATED_VERSION_REÚsearchÚgroupr	   )r.   rF   Úmatchs   &  r   rõ   rõ   ~  sd   € ðØ˜zÕ)×4Ñ4¸gÐ4ÓFˆô "×(Ñ(¨Ó1€EØ�Dˆ=×9Ð9˜EŸK™K¨›N¬kÑ9Ð9øô ô Úðús   ‚A ÁA#Á"A#)rã   rá   râ   )Frf   )?Ú__doc__r§   Úrerž   rš   rþ   Úcollections.abcr   Údataclassesr   r   Úpathlibr   r   Útypingr   r   Úhuggingface_hubr	   r
   Úhuggingface_hub._bucketsr   Úhuggingface_hub.errorsr   Úutilsr   r   Ú
_cli_utilsr   Ú_outputr   Ú
get_loggerr#   rë   r]   r?   r¦   rW   r1   r   r,   rD   r^   rt   r=   r@   Úcompiler•   r\   rz   r>   r   rŠ   rˆ   r‰   rœ   rl   rp   r  rí   rê   r  rõ   r"   r!   r   Ú<module>r$     s7  ðÙ Tã Û 	Û Û Û Ý $ß *ß 'ß ç 2Ý /Ý +ç 2Ý "Ý ð 
×	Ò	˜HÓ	%€àÐ Ø/Ð Ø%Ð ð
 4Ð àÐKÕLÐ ñ �$Ô÷#ð #ó ð#ñ �$Ô÷ð ó ð÷U÷^÷rõ*÷2
Xð —J’JÐ<Ó=Ð ÷'õTõõõQõ
õHõ0	õõ(.ðF Ÿ
š
Ð#OÓPÐ õUõ"õJR÷
:r!   