
    ,j                        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.d/	          fd0 ed1d2	          fd3 ed4d5	          fd6 ed7d8	          fd9 ed:d;	          fd< ed=d>	          fd? ed@dA	          fdB edCdD	          fdE edFdG	          fg          Zeeef         edH<   dQdJedKedLefdMZ	dRdOZ
dPS )Sa  
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whatsapp_cloudu   📱 WhatsApp Business (Cloud)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_registryr0   emoji	Exception)r+   r,   infor0   entrys        r   platform_labelr8   /   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/   r1   zhermes-r   )
r   r)   r3   r0   plugin_entriesnamer   r4   r   r5   )mergedr0   r7   s      r   get_all_platformsr>   C   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-   r9   )r   collectionsr   typingr   r   r)   r   r   r8   r>   r   r   r   <module>rA      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||*J\mnnno||-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()   4  c 3    (     r   