+
    QV-j>'  ã                   ó¬  € R t ^ RIt^ RIt^ RI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 ^RIH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R0R R lltR R ltR/R R lltR R ltR R lt R R lt!R  R! lt"R" R# lt#R$ R% lt$R& R' lt%R( R) lt&R* R+ lt'R, R- lt(R# )1zNInternal helpers for Hugging Face marketplace skill installation and upgrades.N)Ú	dataclassÚreplace)ÚPathÚPurePosixPath)ÚAnyÚLiteral)Ú
BucketFile)ÚCLIError)Údisable_progress_bars)Ú
get_hf_apiz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   "€Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.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!   r+   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   +   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.©r1   )r   r
   Ú_load_marketplace_skillsÚ_select_marketplace_skillr	   ÚDEFAULT_SKILLS_BUCKET_IDÚ_install_marketplace_skill)r/   r0   r1   ÚapiÚmarketplace_skillsÚskills   &&&   r   Ú	add_skillr>   +   sr   € ä
‹,€CÜ	×	 Õ	 Ü5°cÓ:ÐÜ)Ð*<ÓIˆØŠ=ÜØ˜*˜ _Ô5MÐ4Nð OUð Uóð ô *¨#Ð6FÔT÷ 
!×	 ×	 Ó	 ús   �=A%Á%A6	c                óv   € V ^8„  d   QhR\         \        ,          R\        R,          R\         \        ,          /# )r   ÚrootsÚselectorNr2   )Úlistr   r   r'   )r   s   "r   r   r   9   s3   € ÷ fñ fœœd�ð f¬s°T­zð fÄTÌ/ÕEZñ fr   c           
     ó"  € \        V 4      pVej   VP                  4       P                  4       pV Uu. uF%  qDP                  P                  4       V8X  g   K#  VNK'  	  ppV'       g   \	        RV RV R24      h\        4       p\        4       ;_uu_ 4        \        V4       Uu/ uF  qfP                  P                  4       VbK  	  ppV Uu. uF  p\        WXV4      NK  	  upuuRRR4       # u upi u upi u upi   + '       g   i     R# ; i)z;Re-sync managed marketplace skill installs from the bucket.NzNo installed skill matches 'z"'. Install it with `hf skills add z`.)	Ú_iter_unique_skill_dirsÚstripÚlowerr   r	   r   r
   r7   Ú_apply_single_update)	r@   rA   Ú
skill_dirsÚselector_lowerÚdr;   r=   r<   r)   s	   &&       r   Úupdate_skillsrK   9   së   € ä(¨Ó/€JØÒØ!Ÿ™Ó)×/Ñ/Ó1ˆÙ!+ÓP¡˜A¯v©v¯|©|«~ÀÑ/O—a�a¡ˆ
ÐPßÜÐ9¸(¸ÐCeÐfnÐeoÐoqÐrÓsÐsä
‹,€CÜ	×	 Õ	 ÜE]Ð^aÔEbÓcÑEb¸EŸj™j×.Ñ.Ó0°%Ò7ÑEbÐÐcÙZdÓeÑZdÈYÔ$ SÐ5GÖHÑZdÑe÷ 
!Ò	 ùò Qùò dùÚe÷ 
!×	 Ð	 ús5   ² C.ÁC.ÂC=Â##C3ÃC=ÃC8Ã!C=Ã3
C=Ã=D	c                ó:   € V ^8„  d   QhR\         \        ,          /# ©r   r2   )rB   r   )r   s   "r   r   r   H   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Ú
isinstancerB   r	   Údictr   Úappendr   Ú_normalize_repo_path)r;   ÚpayloadrO   ÚskillsÚpluginr   rP   r   s   &       r   r7   r7   H   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   r=   r0   r1   r2   )r   r   r3   )r   s   "r   r   r   a   s+   € ÷ ñ Ô+;ð Ìtð Ô\`ð Ômqñ r   c                ó�  € VP                  4       P                  4       pVP                  RRR7       W!P                  ,          pVP	                  4       pV'       d   V'       g   \        RV 24      hV'       do   \        P                  ! VRVP                   R2R7      ;_uu_ 4       p\        V4      VP                  ,          p\        WVR7       \        WGR7       R	R	R	4       V#  \        WVR7       V#   + '       g   i     T# ; i  \         d/    TP	                  4       '       d   \        P                  ! T4       h i ; i)
z:Install a marketplace skill into a local skills directory.T©ÚparentsÚexist_okzSkill already exists: Ú.z	.install-)ÚdirÚprefix)r=   Úinstall_dir)Úexisting_dirÚ
staged_dirN)Ú
expanduserÚresolveÚmkdirr   ÚexistsÚFileExistsErrorÚtempfileÚTemporaryDirectoryr   Ú_populate_install_dirÚ_atomic_replace_directoryÚ	ExceptionÚshutilÚrmtree)r;   r=   r0   r1   rb   Úalready_existsÚtmp_dir_strrd   s   &&&&    r   r:   r:   a   s  € à'×2Ñ2Ó4×<Ñ<Ó>ÐØ×Ñ 4°$ÐÔ7Ø"§Z¡ZÕ/€KØ ×'Ñ'Ó)€NçŸeÜÐ 6°{°mÐDÓEÐEçô ×(Ò(Ð-=ÈÈ+×JZÑJZÐI[Ð[dÐFe×fÕfÐjuÜ˜kÓ*¨[×-=Ñ-=Õ=ˆJÜ! #À
ÕKÜ%°;ÕV÷ gð ÐðÜ˜c¸KÕHð
 Ð÷ gÖfð Ðûô ô Ø×Ñ×ÒÜ�MŠM˜+Ô&Øðús   Â(6C8Ã)D Ã8D		Ä EÄ-Ec                óF   € V ^8„  d   QhR\         \        \        3,          /# rM   )rT   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_fileszutf-8)ÚencodingNz4Invalid marketplace payload: expected a JSON object.)rj   rk   r   Údownload_bucket_filesr9   ÚMARKETPLACE_PATHÚjsonÚloadsÚ	read_textrS   rT   r	   )r;   Útmp_dirÚ
local_pathÚparseds   &   r   rQ   rQ   }   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   rX   rA   r2   N)rB   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 # ©N)rE   rF   r   )rX   rA   rI   r=   s   &&  r   r8   r8   Œ   s@   € Ø—^‘^Ó%×+Ñ+Ó-€NÛˆØ�:‰:×ÑÓ Ö/ØŠLñ ñ r   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Úpathr2   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.)rE   Ú
startswithr	   )rƒ   Ú
normalizeds   & r   rV   rV   ”   sL   € Ø—‘“€JØ
×
Ñ
 ×
%Ò
%Ø •^Š
Ø×!Ñ! #Ó&€JßÜÐFÓGÐGØÐr   c                ó4   € V ^8„  d   QhR\         R\        RR/# )r   r=   rb   r2   N)r   r   )r   s   "r   r   r   ž   s"   € ÷ 4ñ 4Ô&6ð 4ÄTð 4Èdñ 4r   c                 ó¦   € VP                  R R R7       \        W4      p\        WW24       \        V4       V\        ,          P                  4        R# )Tr\   N)rg   Ú_list_skill_filesÚ_download_skill_filesÚ_validate_installed_skill_dirÚMANAGED_MARKER_FILENAMEÚtouch)r;   r=   rb   Úbucket_filess   &&& r   rl   rl   ž   sC   € Ø×Ñ˜d¨TÐÔ2Ü$ SÓ0€LÜ˜# lÔ@Ü! +Ô.ØÔ*Õ*×1Ñ1Ö3r   c                ó(   € V ^8„  d   QhR\         RR/# )r   r)   r2   N©r   )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# )zSKILL.mdz%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   r=   r2   )r   rB   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)ra   Ú	recursivezPath 'z' not found in bucket 'ú'.)r   ÚrstripÚlist_bucket_treer9   rS   r   ÚFileNotFoundError)r;   r=   ra   Ú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   r=   rž   rb   r2   N)r   rB   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…   NTr\   zNo files found under 'z' in bucket 'r™   )r   rš   rƒ   r†   ÚlenÚjoinpathr   ÚpartsÚparentrg   rU   rœ   r9   rw   )
r;   r=   rž   rb   ra   Ú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   rc   rd   r2   Nr‘   )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   Úrenamero   rp   rn   rh   )rc   rd   Ú
backup_dirs   && r   rm   rm   Ñ   sŠ   € Ø×"Ñ"¨×(9Ñ(9Ð':¸'Ð%BÕB€JðØ×Ñ˜JÔ'Ø×Ñ˜,Ô'Ü�Š�jÖ!øÜô Ø×Ñ×Ò |×':Ñ':×'<Ò'<Ø×Ñ˜lÔ+Øðús   ¢8A Á B&Á=B&ÂB&c                ó\   € V ^8„  d   QhR\         \        ,          R\         \        ,          /# )r   r@   r2   )rB   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_   )Úsetre   rf   Úis_dirÚsortedÚiterdirr   r†   Ú
is_symlinkÚaddrU   )r@   ÚseenÚ
discoveredÚrootÚchildÚresolveds   &     r   rD   rD   Ý   sÆ   € Ü“e€DØ€JÛˆØ�‰Ó ×(Ñ(Ó*ˆØ�{‰{�}Š}ÙÜ˜DŸL™L›NÖ+ˆEØ�z‰z×$Ñ$ S×)Ò)ÙØ—<‘<—>’>¨%×*:Ñ*:×*<Ò*<ÙØ—}‘}“ˆHØÔ x§¡×'8Ò'8ÙØ�H‰H�XÔØ×Ñ˜hÖ'ó ,ñ	 ð Ðr   c                ó^   € V ^8„  d   QhR\         R\        \        \        3,          R\        /# )r   r)   r<   r2   )r   rT   r   r   r'   )r   s   "r   r   r   ñ   s-   € ÷ .ñ .¬ð .Ä4ÌÔM]ÐH]ÕC^ð .Ôcrñ .r   c           	      óÂ  € \        VP                  VR R7      pV\        ,          P                  4       '       g   V# 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)Ú	unmanaged)r   r)   r*   NÚsource_unreachabler5   z' is no longer available in r_   )r*   r+   Tr6   Ú
up_to_date)r*   )r'   r   r�   rh   rR   rF   r   r9   r:   r¤   rn   r   )r;   r)   r<   Úbaser=   Úexcs   &&&   r   rG   rG   ñ   sÍ   € Ü 	§¡¸)ÈKÔX€DàÔ/Õ/×7Ñ7×9Ò9Øˆà×"Ñ" 9§>¡>×#7Ñ#7Ó#9Ó:€EØ‚}ÜØØ'Ø˜YŸ^™^Ð,Ð,HÔIaÐHbÐbcÐdô
ð 	
ðKÜ" 3¨y×/?Ñ/?ÀtÕLô �4 Ô-Ð-øô ô KÜ�tÐ$8ÄÀSÃÔJÕJûðKús   ÂB2 Â2CÂ=CÃCÃC)r¿   r½   r¾   )Fr�   ))Ú__doc__ry   ro   rj   Údataclassesr   r   Úpathlibr   r   Útypingr   r   Úhuggingface_hub._bucketsr   Úhuggingface_hub.errorsr	   Úutilsr
   Ú
_cli_utilsr   r9   rx   r�   r,   r   r'   r>   rK   r7   r:   rQ   r8   rV   rl   rŒ   rŠ   r‹   rm   rD   rG   r   r   r   Ú<module>rÊ      sÎ   ðÙ Tã Û Û ß *ß 'ß å /Ý +å )Ý "ð 0Ð Ø%Ð ð
 4Ð àÐKÕLÐ ñ �$Ô÷#ð #ó ð#ñ �$Ô÷ð ó ð÷U÷fõ÷2õ8õõõ4õQõ
õHõ0	õ÷(.r   