+
    jHàj|  ã            
      óÄ   € R t ^ RIHt ^ RIt^ RIHt ^ RIHtHtH	t	H
t
 ^ RIHt ^ RIHt ]P                  ! R4      tRR	.t]RR
 R ll4       tRRRRRRRRRR/R R lltR# )a  Content registrars on ``PluginContext``: plugin skills and Automation Blueprints.

Bound into the class body (``from hermes_cli.plugins_content import ...``), so they are ordinary
``ctx.register_*`` methods and get the same abandoned-load guard as every other registrar.
)ÚannotationsN)ÚPath)ÚAnyÚIterableÚMappingÚOptional)ÚPluginRegistration)Ú_serialized_replacementzhermes_cli.pluginsÚregister_automation_blueprintÚregister_skillc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
é   ÚnameÚstrÚpathr   ÚdescriptionÚfrontmatterzOptional[Mapping[str, Any]]Úreturnr   © )Úformats   "Ú?/home/ubuntu/.hermes/hermes-agent/hermes_cli/plugins_content.pyÚ__annotate__r      s=   € ÷ Mñ MØðMØðMØ.1ðMà,ðMð ñMó    c                óÊ  € ^ RI Hp RV9   d'   \        RV RV P                  P                   R24      hV'       d   VP                  V4      '       g   \        RV R24      h\        V4      pVP                  4       '       g   \        RV 24      hV P                  P                  ;'       g    V P                  P                  pV RV 2pV P                  P                  '       d*   WpP                  P                  9   d   \        R	V R
24      hRTRTRV P                  RTRTR\        T;'       g    / 4      /pV P                  RWpP                  P                  VRV4      # )a1  Register a read-only skill resolvable as ``'<plugin_name>:<name>'`` via ``skill_view()``,
listed by ``skills_list`` and in the system prompt's ``<available_skills>`` while the plugin
is enabled. Not copied into ``~/.hermes/skills/``. Raises ``ValueError`` (``':'``/invalid
chars) or ``FileNotFoundError``.)Ú_NAMESPACE_REÚ:zSkill name 'zG' must not contain ':' (the namespace is derived from the plugin name 'z' automatically).zInvalid skill name 'z'. Must match [a-zA-Z0-9_-]+.zSKILL.md not found at zPlugin skill 'z' is already registeredr   ÚpluginÚ
plugin_keyÚ	bare_namer   r   ÚskillzPlugin %s registered skill: %s)Úagent.skill_utilsr   Ú
ValueErrorÚmanifestr   Úmatchr   ÚexistsÚFileNotFoundErrorÚskill_namespaceÚportableÚ_managerÚ_plugin_skillsÚ	plugin_idÚdictÚ_register_entry)	Úselfr   r   r   r   r   Ú	namespaceÚ	qualifiedÚentrys	   &&&&&    r   r   r      sX  € õ 0Ø
ˆd„{Ü˜<¨ vð .)Ø)-¯©×);Ñ);Ð(<Ð<MðOó Pð 	Pç�}×*Ñ*¨4×0Ò0ÜÐ/°¨vÐ5RÐSÓTÐTô �‹:€DØ�;‰;�=Š=ÜÐ"8¸¸Ð ?Ó@Ð@Ø—‘×-Ñ-×CÐC°·±×1CÑ1C€IØ�+˜Q˜t˜fÐ%€IØ‡}�}××Ð )¯}©}×/KÑ/KÔ"KÜ˜>¨)¨Ð4KÐLÓMÐMà��h 	¨<¸¿¹ÈÐVZØ�{ M´4¸×8IÐ8IÀrÓ3Jð€Eð ×Ñ ¨·M±M×4PÑ4PÐRWØ @À)óMð Mr   ÚcategoryÚgeneralÚslotsÚdeliver_defaultÚoriginÚskillsÚtagsc               óD   € V ^8„  d   QhRRRRRRRRRRRRRR	R
RRRRRRR/# )r   Úkeyr   Útitler   Úschedule_templateÚprompt_templater1   r3   zIterable[Any]r4   r6   zIterable[str]r7   r   zOptional[PluginRegistration]r   )r   s   "r   r   r   6   s{   € ÷ `ñ `Øð`Ø!ð`Ø03ð`ØHKð`àð`à$'ð`à<Ið`ð ð`ð .;ð`ð HUð`ð "ñ	`r   c       	        ó  € ^ RI Hp  V! V P                  P                  WVWEVWxWšR7      pTP                  T P                  P                  9   d8   \
        P                  RT P                  P                  TP                  4       R# T P                  RTP                  T P                  P                  TRTP                  4      #   \         d7   p\
        P                  RT P                  P                  Y4        Rp?R# Rp?ii ; i)a>  Add an Automation Blueprint to this profile's catalog as ``'<plugin_name>:<key>'``
(``/blueprint``, the dashboard/Desktop gallery). Fields mirror
:class:`cron.blueprint_catalog.AutomationBlueprint`; ``slots`` are ``BlueprintSlot`` field
mappings. Malformed input or a duplicate key logs a warning and returns ``None``.)Úbuild_plugin_blueprint)	r:   r   r;   r<   r1   r3   r4   r6   r7   z0Plugin '%s' automation blueprint %r rejected: %sNz9Plugin '%s' automation blueprint %r is already registeredÚautomation_blueprintz-Plugin %s registered automation blueprint: %s)Úcron.blueprint_pluginsr>   r"   r   r!   ÚloggerÚwarningr9   r(   Ú_automation_blueprintsr,   )r-   r9   r:   r   r;   r<   r1   r3   r4   r6   r7   r>   Ú	blueprintÚexcs   &&$$$$$$$$$   r   r
   r
   6   sÙ   € õ >ðÙ*Ø�M‰M×Ñ ¸kØ/Ð[cØÀô
ˆ	ð ‡}�}˜Ÿ™×<Ñ<Ô<Ü�‰ÐRØ—}‘}×)Ñ)¨9¯=©=ô	:áØ×ÑÐ 6¸	¿¹Ø $§¡× DÑ DÀiØ OÐQZ×Q^ÑQ^ó`ð `øô ô Ü�‰ÐIÈ4Ï=É=×K]ÑK]Ð_bÔhÝûðús   ˆ#C ÃDÃ+DÄD)Ú Nr   )Ú__doc__Ú
__future__r   ÚloggingÚpathlibr   Útypingr   r   r   r   Úhermes_cli.plugins_ledgerr   Úhermes_cli.plugins_loaderr	   Ú	getLoggerrA   Ú__all__r   r
   r   r   r   Ú<module>rP      s—   ðñõ #ã Ý ß 3Ó 3å 8Ý =ð 
×	Ò	Ð/Ó	0€à*Ð,<Ð
=€ð öMó ðMð>`à*3ð`àLNð`ð $ð`ð >@ð`ð XZ÷`ñ `r   