
    i                        U d Z ddlmZ ddlmZ  G d de          Z ed edd	          fd
 edd	          fd edd	          fd edd	          fd edd	          fd edd	          fd edd	          fd edd	          fd ed d!	          fd" ed#d$	          fd% ed&d'	          fd( ed)d*	          fd+ ed,d-	          fd. ed/d0	          fd1 ed2d3	          fd4 ed5d6	          fd7 ed8d9	          fd: ed;d<	          fd= ed>d?	          fd@ edAdB	          fdC edDdE	          fg          Zeeef         edF<   dOdHedIedJefdKZ	dPdMZ
dNS )Qa  
Shared platform registry for Hermes Agent.

Single source of truth for platform metadata consumed by both
skills_config (label display) and tools_config (default toolset
resolution).  Import ``PLATFORMS`` from here instead of maintaining
duplicate dicts in each module.
    )OrderedDict)
NamedTuplec                   (    e Zd ZU dZeed<   eed<   dS )PlatformInfoz%Metadata for a single platform entry.labeldefault_toolsetN)__name__
__module____qualname____doc__str__annotations__     9/home/ubuntu/.hermes/hermes-agent/hermes_cli/platforms.pyr   r      s-         //JJJr   r   cliu   🖥️  CLIz
hermes-clir   r   telegramu   📱 Telegramzhermes-telegramdiscordu   💬 Discordzhermes-discordslacku
   💼 Slackzhermes-slackwhatsappu   📱 WhatsAppzhermes-whatsappsignalu   📡 Signalzhermes-signalbluebubblesu   💙 BlueBubbleszhermes-bluebubblesemailu
   📧 Emailzhermes-emailhomeassistantu   🏠 Home Assistantzhermes-homeassistant
mattermostu   💬 Mattermostzhermes-mattermostmatrixu   💬 Matrixzhermes-matrixdingtalku   💬 DingTalkzhermes-dingtalkfeishuu   🪽 Feishuzhermes-feishuwecomu
   💬 WeComzhermes-wecomwecom_callbacku   💬 WeCom Callbackzhermes-wecom-callbackweixinu   💬 Weixinzhermes-weixinqqbotu
   💬 QQBotzhermes-qqbotyuanbaou   🤖 Yuanbaozhermes-yuanbaowebhooku   🔗 Webhookzhermes-webhook
api_serveru   🌐 API Serverzhermes-api-servercronu   ⏰ Cronzhermes-cron	PLATFORMS keydefaultreturnc                     t                               |           }||j        S 	 ddlm} |                    |           }|r|j        r|j         d|j         n|j        S n# t          $ r Y nw xY w|S )zReturn the display label for a platform key, or *default*.

    Checks the static PLATFORMS dict first, then the plugin platform
    registry for dynamically registered platforms.
    Nr   platform_registry  )r(   getr   gateway.platform_registryr/   emoji	Exception)r*   r+   infor/   entrys        r   platform_labelr7   .   s     ==Dz??????!%%c** 	S6;kRek22U[222u{R	S   Ns   ;A" "
A/.A/OrderedDict[str, PlatformInfo]c                     t          t                    } 	 ddlm} |                                D ]I}|j        | vr>t          |j        r|j         d|j         n|j        d|j                   | |j        <   Jn# t          $ r Y nw xY w| S )zReturn PLATFORMS merged with any plugin-registered platforms.

    Plugin platforms are appended after builtins.  This is the function
    that tools_config and skills_config should use for platform menus.
    r   r.   r0   zhermes-r   )
r   r(   r2   r/   plugin_entriesnamer   r3   r   r4   )mergedr/   r6   s      r   get_all_platformsr=   B   s     ##F	??????&5577 	 	Ez''%1=B[YU[99EK999ek$:ej$:$:& & &uz"	    Ms   A$A; ;
BBN)r)   )r,   r8   )r   collectionsr   typingr   r   r(   r   r   r7   r=   r   r   r   <module>r@      s     $ # # # # #          :    -8K
||.Uabbbc||/Rcddde||.Rbcccd||,R`aaab||/Rcddde||-Rabbbc||*<Rfgggh||,R`aaab||*?Rhiiij||*;Refffg||-Rabbbc||/Rcddde||-Rabbbc||,R`aaab||*?Rijjjk||-Rabbbc||,R`aaab||.Rbcccd||.Rbcccd||*;Refffg||*Q^___`+9 - -	;sL()   2  c 3    (     r   