§
    }ŠtjL  ã                   ó  — U d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ d	d
lmZ d	dlmZmZmZmZ d	dlmZmZ d	dlmZ d	dlmZ dZde› d�ZdZ ed¦  «        Z ed¦  «        Z  ed¦  «        Z! ed¦  «        Z"h d£Z#dhZ$dddœZ%e&e'e'f         e(d<   dgZ)ddd œZ*e&e'e+e'e'f         f         e(d!<    ed"¬#¦  «        Z,d$e'fd%„Z-d&ed$e'fd'„Z.d(e
d)e	d*e/e'         d$e/e+e/e'         ef                  fd+„Z0d&efd,„Z1d&ed$e2fd-„Z3dd.œd&ed/e4e'         dz  d$e/e'         fd0„Z5d1e/e+e/e'         ef                  d$e&e'e+e'e'f         f         fd2„Z6d*e/e'         d&ed$e'fd3„Z7d$e'fd4„Z8d5ed6e2d$dfd7„Z9d8ed9e'd6e2d$efd:„Z:d;ed9e'd<ed6e2d$ef
d=„Z;d>e2d?e2d@edz  d$e/e         fdA„Z<e, =                    dB¦  «        d`dC„¦   «         Z>e, =                    dDdEdFg¬G¦  «        	 dadHed$dfdI„¦   «         Z?e, =                    dJg dK¢¬G¦  «        edLdLddLfdMee' edNdL¬O¦  «        f         d>ee2 edPdQ¬#¦  «        f         d?ee2 edRdSdT¬#¦  «        f         d@eedz   edU¬#¦  «        f         d6ee2 edVdW¬#¦  «        f         d$dfdX„¦   «         Z@e, =                    dYg dZ¢¬G¦  «        	 	 	 	 dbdMee'dz   ed[dL¬O¦  «        f         d>ee2 edPd\¬#¦  «        f         d?ee2 edRdSd]¬#¦  «        f         d@eedz   ed^¬#¦  «        f         d$df
d_„¦   «         ZAdS )cz5Contains commands to manage skills for AI assistants.é    N)ÚPath)Ú	Annotated)ÚCommandÚContextÚGroup)ÚCLIErroré   )Údisable_progress_barsé   )Ú_skills)ÚTokenOptÚ_has_local_formatting_optionÚ
get_hf_apiÚtyper_factory)ÚArgumentÚOption)Úout)ÚDEFAULT_SKILL_IDað  Hugging Face Hub CLI (`hf`) for downloading, uploading, and managing models, datasets, spaces, buckets, repos, papers, jobs, and more on the Hugging Face Hub. Use when: handling authentication; managing local cache; managing Hugging Face Buckets; running or scheduling jobs on Hugging Face infrastructure; managing Hugging Face repos; discussions and pull requests; browsing models, datasets and spaces; reading, searching, or browsing academic papers; managing collections; querying datasets; configuring spaces; setting up webhooks; or deploying and managing HF Inference Endpoints. Make sure to use this skill whenever the user mentions 'hf', 'huggingface', 'Hugging Face', 'huggingface-cli', or 'hugging face cli', or wants to do anything related to the Hugging Face ecosystem and to AI and ML in general. Also use for cloud storage needs like training checkpoints, data pipelines, or agent traces. Use even if the user doesn't explicitly ask for a CLI command. Replaces the deprecated `huggingface-cli`.z---
name: hf-cli
description: "a?  "
---

Install: `curl -LsSf https://hf.co/cli/install.sh | bash -s`.

The Hugging Face Hub CLI tool `hf` is available. IMPORTANT: The `hf` command replaces the deprecated `huggingface-cli` command.

Use `hf --help` to view available functions. Note that auth commands are now all under `hf auth` e.g. `hf auth whoami`.
up  
## Mounting repos as local filesystems

To mount Hub repositories or buckets as local filesystems â€” no download, no copy, no waiting â€” use `hf-mount`. Files are fetched on demand. GitHub: https://github.com/huggingface/hf-mount

Install: `curl -fsSL https://raw.githubusercontent.com/huggingface/hf-mount/main/install.sh | sh`

Some command examples:
- `hf-mount start repo openai-community/gpt2 /tmp/gpt2` â€” mount a repo (read-only)
- `hf-mount start --hf-token $HF_TOKEN bucket myuser/my-bucket /tmp/data` â€” mount a bucket (read-write)
- `hf-mount status` / `hf-mount stop /tmp/data` â€” list or unmount

## Tips

- Use `hf <command> --help` for full options, descriptions, usage, and real-world examples
- Authenticate with `HF_TOKEN` env var (recommended) or with `--token`
- Update the CLI with `hf update` (uses the correct command for the detected install method)
z.agents/skillsz~/.agents/skillsz.claude/skillsz~/.claude/skills>   ú--typeú
--revisionú--quietú--tokenú--formatr   zKOutput format: `--format json` (or `--json`) or `--format table` (default).zXUse a User Access Token. Prefer setting `HF_TOKEN` env var instead of passing `--token`.)r   r   Ú_COMMON_FLAG_HELP_OVERRIDESz&--format [auto|human|agent|json|quiet])r   zOutput format.)z-q / --quietzQuiet output (one ID per line).)r   r   Ú_GLOBAL_COMMON_FLAGSz Manage skills for AI assistants.)ÚhelpÚreturnc                 óÐ   — t          | j        dd¦  «        }|r%dd                     d„ |D ¦   «         ¦  «        z   dz   S t          | j        dd¦  «                             ¦   «         pd	S )
z«Value hint for an option: enum choices inline as ``[a|b|c]``, otherwise the TYPE name.

    e.g. `--sort [downloads|likes|trending_score]` instead of `--sort CHOICE`.
    ÚchoicesNú[ú|c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Ústr)Ú.0Úcs     úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/huggingface_hub/cli/skills.pyú	<genexpr>z_type_hint.<locals>.<genexpr>|   s(   è è € Ð6Ð6¨�c !™fœfÐ6Ð6Ð6Ð6Ð6Ð6ó    ú]ÚnameÚ ÚVALUE)ÚgetattrÚtypeÚjoinÚupper)Úparamr   s     r'   Ú
_type_hintr3   u   so   € õ
 �e”j )¨TÑ2Ô2€GØð =Ø�S—X’XÐ6Ð6¨gÐ6Ñ6Ô6Ñ6Ô6Ñ6¸Ñ<Ð<Ý�5”:˜v rÑ*Ô*×0Ò0Ñ2Ô2Ð=°gÐ=r)   Úcmdc           	      óš  — g }| j         D ]­}|j        r|j        dk    rŒ|j        r|j                             d¦  «        rŒ7t          d„ t          |dg ¦  «        D ¦   «         d¦  «        }|�*t          |¦  «        }|                     |› d|› �¦  «         ŒŒ|j        r|                     |j        ¦  «         Œ®d 	                    |¦  «        S )zMFormat required params: positional as UPPER_CASE, options as ``--name TYPE``.ú--helpÚ_c              3   óD   K  — | ]}|                      d ¦  «        ¯|V — ŒdS )ú--N)Ú
startswith)r%   Úos     r'   r(   z!_format_params.<locals>.<genexpr>ˆ   s3   è è € ÐRÐR ¸q¿|º|ÈDÑ?QÔ?QÐR˜!ÐRÐRÐRÐRÐRÐRr)   ÚoptsNú )
ÚparamsÚrequiredÚhuman_readable_namer+   r:   Únextr.   r3   Úappendr0   )r4   ÚpartsÚpÚ	long_nameÚ	type_names        r'   Ú_format_paramsrG   €   så   € à€EØŒZð 
0ð 
0ˆØŒzð 	˜QÔ2°hÒ>Ð>ØØŒ6ð 	�a”f×'Ò'¨Ñ,Ô,ð 	ØÝÐRÐR¥W¨Q°¸Ñ%;Ô%;ÐRÑRÔRÐTXÑYÔYˆ	ØÐ Ý" 1™œˆIØ�LŠL˜IÐ3Ð3¨	Ð3Ð3Ñ4Ô4Ð4Ð4ØŒVð 	0Ø�LŠL˜Ô.Ñ/Ô/Ð/øØ�8Š8�E‰?Œ?Ðr)   ÚgroupÚctxÚ
path_partsc                 óX  — g }t          | ||d         ¬¦  «        }|                      |¦  «        D ]y}|                      ||¦  «        }|�|j        rŒ"g |¢|‘}t	          |t
          ¦  «        r%|                     t          |||¦  «        ¦  «         Œb|                     ||f¦  «         Œz|S )zXRecursively walk a Click Group, returning (full_path_parts, cmd) for every leaf command.éÿÿÿÿ)ÚparentÚ	info_name)	r   Úlist_commandsÚget_commandÚhiddenÚ
isinstancer   ÚextendÚ_collect_leaf_commandsrB   )rH   rI   rJ   ÚleavesÚsub_ctxr+   r4   Ú
child_paths           r'   rT   rT   ‘   sÁ   € à.0€FÝ�e C°:¸b´>ÐBÑBÔB€GØ×#Ò# GÑ,Ô,ð -ð -ˆØ×Ò ¨Ñ.Ô.ˆØˆ;˜#œ*ˆ;ØØ(�zÐ( 4Ð(ˆ
Ý�c�5Ñ!Ô!ð 	-Ø�MŠMÕ0°°g¸zÑJÔJÑKÔKÐKÐKà�MŠM˜: sÐ+Ñ,Ô,Ð,Ð,Ø€Mr)   c              #   ó,  K  — | j         D ]‰}|j        s|j        dk    rŒ|j        r|j                             d¦  «        rŒ7d}d}t          |dg ¦  «        D ]3}|                     d¦  «        r|p|}Œ|                     d¦  «        r|}Œ4|r|||fV — ŒŠdS )zKYield (param, long_name, short_name) for each optional, non-internal param.r6   r7   Nr<   r9   ú-)r>   r?   r@   r+   r:   r.   )r4   rD   rE   Ú
short_nameÚopts        r'   Ú_iter_optional_paramsr\   ¡   sÚ   è è € àŒZð +ð +ˆØŒ:ð 	˜Ô.°(Ò:Ð:ØØŒ6ð 	�a”f×'Ò'¨Ñ,Ô,ð 	ØØˆ	Øˆ
Ý˜1˜f bÑ)Ô)ð 	!ð 	!ˆCØ�~Š~˜dÑ#Ô#ð !Ø%Ð,¨�	�	Ø—’ Ñ$Ô$ð !Ø �
øØð 	+Ø�Y 
Ð*Ð*Ð*Ð*øð+ð +r)   c                 óZ   — | j                              d¦  «        rdS t          | ¦  «         S )zVReturn True if the leaf command accepts the global '--format' / '--json' / '-q' flags.Úignore_unknown_optionsF)Úcontext_settingsÚgetr   )r4   s    r'   Ú_accepts_global_format_flagsra   ³   s2   € à
Ô×ÒÐ 8Ñ9Ô9ð ØˆuÝ+¨CÑ0Ô0Ð0Ð0r)   ©Úexcluderc   c                óP  ‡— g }t          | ¦  «        D ]]\  }}}‰r|‰v rŒt          |dd¦  «        r|                     |¦  «         Œ4t          |¦  «        }|                     |› d|› �¦  «         Œ^t	          | ¦  «        r&|                     ˆfd„t          D ¦   «         ¦  «         |S )a  Return long-form flag names (--foo) for optional, non-internal params.

    Boolean flags are bare ('--dry-run').  Value-taking options include a type hint ('--include TEXT', '--max-workers INTEGER').
    Synthetic global formatting flags are appended for commands that accept them.
    Úis_flagFr=   c              3   óX   •K  — | ]$}‰r|                      ¦   «         d          ‰v ° |V — Œ%dS )r   N)Úsplit)r%   Úflagrc   s     €r'   r(   z"_get_flag_names.<locals>.<genexpr>Ê   sF   øè è € ÐrÐr˜dÈ'ÐrÐVZ×V`ÒV`ÑVbÔVbÐcdÔVeÐipÐVpÐVp�TÐVpÐVpÐVpÐVpÐrÐrr)   )r\   r.   rB   r3   ra   rS   Ú_GLOBAL_FORMAT_INLINE_FLAGS)r4   rc   ÚflagsrD   rE   Ú_shortrF   s    `     r'   Ú_get_flag_namesrl   º   sÒ   ø€ ð €EÝ 5°cÑ :Ô :ð 5ð 5Ñˆˆ9�fØð 	�y GÐ+Ð+ØÝ�1�i Ñ'Ô'ð 	5Ø�LŠL˜Ñ#Ô#Ð#Ð#å" 1™œˆIØ�LŠL˜IÐ3Ð3¨	Ð3Ð3Ñ4Ô4Ð4Ð4Ý# CÑ(Ô(ð sØ�ŠÐrÐrÐrÐrÕ&AÐrÑrÔrÑrÔrÐrØ€Lr)   Úleaf_commandsc                 óÂ  — i }| D ]‹\  }}t          |¦  «        D ]v\  }}}|t          vrŒ||vs|r`d||         d         vrP|r|› d|› �n|}t          |dd¦  «        pd                     d¦  «        d                              ¦   «         }||f||<   ŒwŒŒt          d„ | D ¦   «         ¦  «        r5t                               ¦   «         D ]\  }}	|                     ||	¦  «         Œ|S )z0Collect display info for flags in the allowlist.z / r   r   Nr,   ú
c              3   ó:   K  — | ]\  }}t          |¦  «        V — Œd S r#   )ra   )r%   Ú_pathr4   s      r'   r(   z(_compute_common_flags.<locals>.<genexpr>à   s/   è è € Ð
MÐ
M±°¸Õ'¨Ñ,Ô,Ð
MÐ
MÐ
MÐ
MÐ
MÐ
Mr)   )	r\   Ú_COMMON_FLAG_ALLOWLISTr.   rg   ÚstripÚanyr   ÚitemsÚ
setdefault)
rm   Ú	flag_inforq   r4   rD   rE   rZ   ÚdisplayÚ	help_textÚentrys
             r'   Ú_compute_common_flagsr{   Î   s6  € ð -/€Ià#ð <ð <‰
ˆˆsÝ(=¸cÑ(BÔ(Bð 	<ð 	<Ñ$ˆAˆy˜*ØÕ 6Ð6Ð6Øà 	Ð)Ð)¨jÐ)¸UÈ)ÐT]ÔJ^Ð_`ÔJaÐ=aÐ=aØ;EÐT˜ZÐ7Ð7¨IÐ7Ð7Ð7È9�Ý$ Q¨°Ñ5Ô5Ð;¸×BÒBÀ4ÑHÔHÈÔK×QÒQÑSÔS�	Ø(/°Ð';�	˜)Ñ$øð	<õ Ð
MÐ
M¸}Ð
MÑ
MÔ
MÑMÔMð 3Ý 4× :Ò :Ñ <Ô <ð 	3ð 	3ÑˆI�uØ× Ò  ¨EÑ2Ô2Ð2Ð2àÐr)   c                 óD  — |j         pd                     d¦  «        d                              ¦   «         }t          |¦  «        }dg| ¢|r|gng z   }dd                     |¦  «        › d|› �}t          |t          ¬¦  «        }|r|d	d                     |¦  «        › d
�z  }|S )z6Render a single leaf command as a markdown list entry.r,   ro   r   Úhfú- `r=   õ   ` â€” rb   z `[z]`)r   rg   rs   rG   r0   rl   Ú_INLINE_FLAG_EXCLUDE)rJ   r4   ry   r>   rC   rz   rj   s          r'   Ú_render_leafr�   ç   sµ   € à”�˜R×&Ò& tÑ,Ô,¨QÔ/×5Ò5Ñ7Ô7€IÝ˜CÑ Ô €FØÐ�JÐ¨vÐ#= F 8 8¸2Ñ>€EØ4�#—(’(˜5‘/”/Ð4Ð4¨Ð4Ð4€EÝ˜CÕ)=Ð>Ñ>Ô>€EØð +ØÐ*�s—x’x ‘”Ð*Ð*Ð*Ñ*ˆØ€Lr)   c                  ó&  — ddl m}  ddlm} |}t	          |d¬¦  «        }g }g }t          |                     |¦  «        ¦  «        D ]g}|                     ||¦  «        }|�|j        rŒ"t          |t          ¦  «        r|                     ||f¦  «         ŒO|                     |g|f¦  «         Œhg }t          |¦  «        }	|D ]C\  }}
t          |
||g¦  «        }|                     ||f¦  «         |	                     |¦  «         ŒDt          |	¦  «        }t          t                                ¦   «         ¦  «        }|                     d¦  «         |                     d| › d�¦  «         |                     d¦  «         |                     d	¦  «         |                     d¦  «         |D ](\  }}|                     t%          ||¦  «        ¦  «         Œ)t'          |¦  «        }|D ]±\  }}||         }|j        pd                     d
¦  «        d                              ¦   «         }|                     d¦  «         |                     d|› d|› �¦  «         |                     d¦  «         |D ](\  }}|                     t%          ||¦  «        ¦  «         Œ)Œ²|r»|                     d¦  «         |                     d¦  «         |                     d¦  «         t          |                     ¦   «         ¦  «        D ]Z\  }\  }}t0                               ||¦  «        }|r|                     d|› d|› �¦  «         ŒA|                     d|› d�¦  «         Œ[|                     t4                               ¦   «         ¦  «         d
                     |¦  «        S )Nr   )Ú__version__)Úappr}   )rN   r,   z!Generated with `huggingface_hub vz-`. Run `hf skills add --force` to regenerate.z## Commandsro   z### `hf r   z## Common optionsr~   ú`)Úhuggingface_hubrƒ   Úhuggingface_hub.cli.hfr„   r   ÚsortedrO   rP   rQ   rR   r   rB   ÚlistrT   rS   r{   Ú_SKILL_YAML_PREFIXÚ
splitlinesr�   Údictr   rg   rs   ru   r   r`   Ú_SKILL_TIPSr0   )rƒ   r„   Ú	click_apprI   Ú	top_levelÚgroupsr+   r4   Úgroup_leavesÚall_leaf_commandsrH   rU   Úcommon_flagsÚlinesrJ   Úgroups_dictÚ	group_cmdry   rE   rx   s                       r'   Úbuild_skill_mdr—   ó   sÒ  € à+Ð+Ð+Ð+Ð+Ð+Ø*Ð*Ð*Ð*Ð*Ð*à€IÝ
�) tÐ
,Ñ
,Ô
,€Cà13€IØ&(€FÝ�y×.Ò.¨sÑ3Ô3Ñ4Ô4ð ,ð ,ˆØ×#Ò# C¨Ñ.Ô.ˆØˆ;˜#œ*ˆ;ØÝ�c�5Ñ!Ô!ð 	,Ø�MŠM˜4 ˜+Ñ&Ô&Ð&Ð&à×Ò˜t˜f c˜]Ñ+Ô+Ð+Ð+àFH€LÝ9=¸i¹¼ÐØð )ð )‰ˆˆeÝ'¨¨s°T°FÑ;Ô;ˆØ×Ò˜T 6˜NÑ+Ô+Ð+Ø× Ò  Ñ(Ô(Ð(Ð(å(Ð):Ñ;Ô;€Lõ Õ.×9Ò9Ñ;Ô;Ñ<Ô<€EØ	‡L‚L�ÑÔÐØ	‡L‚LÐo°[ÐoÐoÐoÑpÔpÐpØ	‡L‚L�ÑÔÐØ	‡L‚L�ÑÔÐØ	‡L‚L�ÑÔÐà$ð 4ð 4‰ˆ
�CØ�Š•\ *¨cÑ2Ô2Ñ3Ô3Ð3Ð3å�v‘,”,€KØ$ð 8ð 8‰ˆˆfØ Ô%ˆ	Ø”^Ð) r×0Ò0°Ñ6Ô6°qÔ9×?Ò?ÑAÔAˆ	Ø�Š�RÑÔÐØ�ŠÐ7 Ð7Ð7¨IÐ7Ð7Ñ8Ô8Ð8Ø�Š�RÑÔÐØ%ð 	8ð 	8‰OˆJ˜Ø�LŠL� j°#Ñ6Ô6Ñ7Ô7Ð7Ð7ð	8ð ð 	/Ø�Š�RÑÔÐØ�ŠÐ(Ñ)Ô)Ð)Ø�Š�RÑÔÐÝ/5°l×6HÒ6HÑ6JÔ6JÑ/KÔ/Kð 	/ð 	/Ñ+ˆIÑ+˜ Ý3×7Ò7¸	À9ÑMÔMˆIØð /Ø—’Ð= 7Ð=Ð=°)Ð=Ð=Ñ>Ô>Ð>Ð>à—’Ð- 7Ð-Ð-Ð-Ñ.Ô.Ð.Ð.à	‡L‚L•×'Ò'Ñ)Ô)Ñ*Ô*Ð*à�9Š9�UÑÔÐr)   ÚpathÚforcec                 ó(  — |                       ¦   «         s|                      ¦   «         sdS |st          d| › d�¦  «        ‚|                      ¦   «         r*|                      ¦   «         st	          j        | ¦  «         dS |                      ¦   «          dS )zRRemove existing file/directory/symlink if force is True, otherwise raise an error.NzSkill already exists at z#.
Re-run with --force to overwrite.)ÚexistsÚ
is_symlinkr   Úis_dirÚshutilÚrmtreeÚunlink)r˜   r™   s     r'   Ú_remove_existingr¡   4  s“   € à�KŠK‰MŒMð ˜TŸ_š_Ñ.Ô.ð ØˆØð ^ÝÐ\°$Ð\Ð\Ð\Ñ]Ô]Ð]Ø‡{‚{�}„}ð ˜TŸ_š_Ñ.Ô.ð ÝŒ�dÑÔÐÐÐà�Š‰Œˆˆˆr)   Ú
skills_dirÚ
skill_namec                 óü   — 	 |                      ¦   «         t          k    r#t          j        t	          ¦   «         | |¬¦  «        S t          j        || |¬¦  «        S # t          $ r}t          |› d�¦  «        |‚d}~ww xY w)zPInstall a marketplace skill into a skills directory. Returns the installed path.)r™   z"
Re-run with --force to overwrite.N)rs   r   r   Úinstall_generated_skillr—   Ú	add_skillÚFileExistsErrorr   )r¢   r£   r™   Úexcs       r'   Ú_install_tor©   @  s“   € ðMØ×ÒÑÔÕ!1Ò1Ð1ÝÔ2µ>Ñ3CÔ3CÀZÐW\Ð]Ñ]Ô]Ð]ÝÔ  ¨Z¸uÐEÑEÔEÐEøÝð Mð Mð MÝ˜#ÐBÐBÐBÑCÔCÈÐLøøøøðMøøøs   ‚?A ÁA Á
A;Á#A6Á6A;Úagent_skills_dirÚcentral_skill_pathc                 ó  — |                       ¦   «                              ¦   «         } |                      dd¬¦  «         | |z  }t          ||¦  «         |                     t
          j                             || ¦  «        ¦  «         |S )zMCreate a relative symlink from agent directory to the central skill location.T)ÚparentsÚexist_ok)Ú
expanduserÚresolveÚmkdirr¡   Ú
symlink_toÚosr˜   Úrelpath)rª   r£   r«   r™   Ú	link_paths        r'   Ú_create_symlinkr¶   J  s   € à'×2Ò2Ñ4Ô4×<Ò<Ñ>Ô>ÐØ×Ò 4°$ÐÑ7Ô7Ð7Ø  :Ñ-€Iå�Y Ñ&Ô&Ð&Ø×Ò�œŸšÐ);Ð=MÑNÔNÑOÔOÐOàÐr)   ÚclaudeÚglobal_Údestc                 óþ   — |�:| s|rt          d¦  «        ‚|                     ¦   «                              ¦   «         gS |rt          nt          g}| r#|                     |rt          nt          ¦  «         d„ |D ¦   «         S )Nú4--dest cannot be combined with --claude or --global.c                 óZ   — g | ](}|                      ¦   «                              ¦   «         ‘Œ)S © )r¯   r°   )r%   Úroots     r'   ú
<listcomp>z)_resolve_update_roots.<locals>.<listcomp>d  s.   € Ð:Ð:Ð:¨DˆD�OŠOÑÔ×%Ò%Ñ'Ô'Ð:Ð:Ð:r)   )r   r¯   r°   ÚCENTRAL_GLOBALÚCENTRAL_LOCALrB   ÚCLAUDE_GLOBALÚCLAUDE_LOCAL)r·   r¸   r¹   Úrootss       r'   Ú_resolve_update_rootsrÅ   V  s’   € ð ÐØð 	S�Wð 	SÝÐQÑRÔRÐRØ—’Ñ!Ô!×)Ò)Ñ+Ô+Ð,Ð,à+2ÐE�˜½ÐF€EØð AØ�Š gÐ?•]�]µ<Ñ@Ô@Ð@Ø:Ð:°EÐ:Ñ:Ô:Ð:r)   Úpreviewc                  ó<   — t          t          ¦   «         ¦  «         dS )z0Print the generated `hf-cli` SKILL.md to stdout.N)Úprintr—   r½   r)   r'   Úskills_previewrÉ   g  s   € õ 
�.Ñ
Ô
ÑÔÐÐÐr)   z	list | lszhf skills listzhf skills list --format json)ÚexamplesÚtokenc           	      ó  ‡‡— dt           fdt          fdt          fdt          fgŠi Š‰D ]i\  }}t	          j        |g¦  «        D ]N}‰                     |j                             ¦   «         t          ¦   «         ¦  «         
                    |¦  «         ŒOŒjt          | ¬¦  «        }t          ¦   «         5  t	          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   ˆˆfd„|D ¦   «         }t          j        |dd	d	d	d	d
œ¬¦  «         dS )z8List available skills from the Hugging Face marketplace.Úprojectúproject (claude)Úglobalúglobal (claude))rË   Nc                 óR   •‡— g | ]"Š‰j         ‰j        pd dœˆˆfd„‰D ¦   «         ¥‘Œ#S )r,   ©r+   Údescriptionc           	      ó–   •— i | ]E\  }}||‰                      ‰j                             ¦   «         t          ¦   «         ¦  «        v rd nd“ŒFS )Úyesr,   )r`   r+   ÚlowerÚset)r%   Úlabelr7   Ú	installedÚskills      €€r'   ú
<dictcomp>z*skills_list.<locals>.<listcomp>.<dictcomp>Š  s^   ø€ ð ð ð á�E˜1ð  ¨¯ª°u´z×7GÒ7GÑ7IÔ7IÍ3É5Ì5Ñ)QÔ)QÐ QÐ Q�u�uÐWYðð ð r)   rÒ   )r%   rÚ   Úinstall_locationsrÙ   s    @€€r'   r¿   zskills_list.<locals>.<listcomp>†  ss   øø€ ð 
ð 
ð 
ð ð ”JØ Ô,Ð2°ð	
ð 	
ðð ð ð ð à 1ðñ ô ð	
ð
ð 
ð 
r)   r+   Úright)rÍ   rÏ   rÎ   rÐ   )Úid_keyÚ
alignments)rÁ   rÃ   rÀ   rÂ   r   Ú_iter_unique_skill_dirsrv   r+   rÖ   r×   Úaddr   r
   Ú_load_marketplace_skillsr   Útable)	rË   rØ   r¾   Ú	skill_dirÚapiÚskillsÚresultsrÜ   rÙ   s	          @@r'   Úskills_listrè   m  s”  øø€ ð 
•MÐ"Ø	�\Ð*Ø	•>Ð"Ø	�MÐ*ð	1Ðð &(€IØ(ð Kð K‰ˆˆtÝ Ô8¸$¸Ñ@Ô@ð 	Kð 	KˆIØ× Ò  ¤×!5Ò!5Ñ!7Ô!7½¹¼Ñ?Ô?×CÒCÀEÑJÔJÐJÐJð	Kõ ˜5Ð
!Ñ
!Ô
!€CÝ	Ñ	 Ô	 ð 7ð 7ÝÔ1°#Ñ6Ô6ˆð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð
ð 
ð 
ð 
ð 
ð ð
ñ 
ô 
€Gõ „IØØØ&°'ÈwÐkrÐsÐsðñ ô ð ð ð s   Â1CÃCÃCrá   )zhf skills addz3hf skills add huggingface-gradio --dest=~/my-skillszhf skills add --globalzhf skills add --claudez2hf skills add huggingface-gradio --claude --globalFr+   zMarketplace skill name.)r   Úshow_defaultz--claudezInstall for Claude.z--globalz-gzJInstall globally (user-level) instead of in the current project directory.z=Install into a custom destination (path to skills directory).z--forcez-Overwrite existing skills in the destination.c                 ó\  — |�;|s|rt          d¦  «        ‚t          || |¦  «        }t          d| › d|› �¦  «         dS |rt          nt          }t          || |¦  «        }t          d| › d|› �¦  «         |r6|rt
          nt          }t          || ||¦  «        }	t          d|	› �¦  «         dS dS )a•  Install a Hugging Face skill for an AI assistant.

    The default `hf-cli` skill is generated locally from the installed CLI version;
    other skills are downloaded from the Hugging Face marketplace.
    Default location is in the current directory (.agents/skills) or user-level (~/.agents/skills).
    If `--claude` is specified, the skill is also symlinked into Claude's legacy skills directory.
    Nr»   zInstalled 'z' to z' to central location: zCreated symlink: )r   r©   rÈ   rÀ   rÁ   rÂ   rÃ   r¶   )
r+   r·   r¸   r¹   r™   Ú
skill_destÚcentral_pathr«   Úagent_targetrµ   s
             r'   Ú
skills_addrî   ˜  só   € ðZ ÐØð 	S�Wð 	SÝÐQÑRÔRÐRÝ   t¨UÑ3Ô3ˆ
ÝÐ3˜DÐ3Ð3 zÐ3Ð3Ñ4Ô4Ð4Øˆð &-Ð?•>�>µ-€LÝ$ \°4¸Ñ?Ô?ÐÝ	Ð
I˜Ð
IÐ
IÐ5GÐ
IÐ
IÑJÔJÐJàð /Ø(/ÐA•}�}µ\ˆÝ# L°$Ð8JÈEÑRÔRˆ	ÝÐ- )Ð-Ð-Ñ.Ô.Ð.Ð.Ð.ð/ð /r)   Úupdate)zhf skills updatezhf skills update hf-cliz6hf skills update huggingface-gradio --dest=~/my-skillszhf skills update --claudez(Optional installed skill name to update.z#Update skills installed for Claude.z=Use global skills directories instead of the current project.z+Update skills in a custom skills directory.c                 ó  — t          |||¬¦  «        }t          j        || t          ¦   «         ¬¦  «        }|st	          d¦  «         dS |D ]6}|j        rd|j        › d�nd}t	          |j        › d|j        › |› �¦  «         Œ7dS )	z1Update installed Hugging Face marketplace skills.)r·   r¸   r¹   )ÚselectorÚhf_cli_contentzNo installed skills found.Nz (ú)r,   z: )rÅ   r   Úupdate_skillsr—   rÈ   Údetailr+   Ústatus)r+   r·   r¸   r¹   rÄ   rç   Úresultrõ   s           r'   Úskills_updaterø   ×  s±   € õ> "¨¸ÀtÐLÑLÔL€EåÔ# E°DÍÑIYÔIYÐZÑZÔZ€GØð ÝÐ*Ñ+Ô+Ð+Øˆàð 9ð 9ˆØ*0¬-Ð?Ð&�f”mÐ&Ð&Ð&Ð&¸RˆÝ�”Ð7Ð7 ¤Ð7¨vÐ7Ð7Ñ8Ô8Ð8Ð8ð9ð 9r)   )r   Nr#   )NFFN)BÚ__doc__r³   rž   Úpathlibr   Útypingr   Úclickr   r   r   Úhuggingface_hub.errorsr   Úutilsr
   r,   r   Ú
_cli_utilsr   r   r   r   Ú
_frameworkr   r   Ú_outputr   r   Ú_SKILL_DESCRIPTIONrŠ   r�   rÁ   rÀ   rÃ   rÂ   rr   r€   r   rŒ   r$   Ú__annotations__ri   r   ÚtupleÚ
skills_clir3   rG   r‰   rT   r\   Úboolra   r×   rl   r{   r�   r—   r¡   r©   r¶   rÅ   ÚcommandrÉ   rè   rî   rø   r½   r)   r'   ú<module>r     s“  ðð <Ð ;Ð ;à 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à +Ð +Ð +Ð +Ð +Ð +à )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YØ (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %ð2ð ð0ð "ðð ð Ð ð€ð& �Ð%Ñ&Ô&€Ø�Ð(Ñ)Ô)€ØˆtÐ$Ñ%Ô%€Ø�Ð'Ñ(Ô(€ð TÐSÐSÐ à!�{Ð ð ^Øið/ð /Ð ˜T # s (œ^ð ð ñ ð  HÐHÐ à.ØBð4ð 4Ð �d˜3  c¨3 h¤Ð/Ô0ð ð ñ ð
 ˆ]Ð BÐCÑCÔC€
ð>˜ð >ð >ð >ð >ð˜ð  Cð ð ð ð ð" %ð ¨gð À4ÈÄ9ð ÐQUÐV[Ð\`ÐadÔ\eÐgnÐ\nÔVoÔQpð ð ð ð ð +˜wð +ð +ð +ð +ð$1 gð 1°$ð 1ð 1ð 1ð 1ð AEð ð ð ˜ð ¨c°#¬h¸©oð ÈÈcÌð ð ð ð ð(Ø˜˜d 3œi¨Ð0Ô1Ô2ðà	ˆ#ˆu�S˜#�XŒÐ
Ôðð ð ð ð2	˜T #œYð 	¨Wð 	¸ð 	ð 	ð 	ð 	ð>˜ð >ð >ð >ð >ðB	˜4ð 	¨ð 	°ð 	ð 	ð 	ð 	ðM˜Dð M¨cð M¸$ð MÀ4ð Mð Mð Mð Mð	 dð 	¸ð 	ÐQUð 	Ð^bð 	Ðgkð 	ð 	ð 	ð 	ð;àð;ð ð;ð �‰+ð	;ð
 
ˆ$„Zð;ð ;ð ;ð ;ð" ×Ò�IÑÔðð ð ñ Ôðð
 ×ÒØàØ&ðð ñ ô ð ð!ð !Øð!à	ð!ð !ð !ñô ð!ðH ×ÒØ	ðð ð ð ñ 	ô 	ð 	ØNSð 	ð 	ð 	ð52/ð 2/Ø
ØØˆÐ/¸eÐDÑDÔDð	Fôð2/ð
 �d˜F˜F :Ð4IÐJÑJÔJÐJÔKð2/ð ØØˆØØØ]ð	
ñ 	
ô 	
ð	ôð2/ð Øˆt‰ØˆØPð	
ñ 	
ô 	
ð	ôð2/ð( ØØˆØØ@ð	
ñ 	
ô 	
ð	ôð)2/ð6 
ð72/ð 2/ð 2/ñ	ô 	ð2/ðj ×ÒØðð ð ð ñ ô ð 	Ø^cð 	ð 	ð'9ð 9Ø
Øˆd‰
ØˆÐ@ÈuÐUÑUÔUð	Wôð9ð
 �d˜F˜F :Ð4YÐZÑZÔZÐZÔ[ð9ð ØØˆØØØPð	
ñ 	
ô 	
ð	ôð9ð Øˆt‰ØˆØ>ð	
ñ 	
ô 	
ð	ôð9ð( 
ð)9ð 9ð 9ñô ð9ð 9ð 9r)   