+
    kHàj‰  ã                   óÚ   € R t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
HtHtHtHt ^ RIHt ^ RIHt ]P&                  ! ]4      t]! R	R
4      tR R ltR R ltRtR tR R ltR# )zHSignal plugin registration: configured/validate checks and ``register``.N)ÚPlatformConfig)Úenv_is_connected)Úconfig_connected_extra)ÚNOT_EXPLICITÚStandaloneSendPolicy)ÚMAX_MESSAGE_LENGTHÚSignalAdapterÚcheck_signal_requirementsÚvalidate_signal_config)Úinteractive_setup)Ústandalone_sendÚSIGNAL_HTTP_URLÚSIGNAL_ACCOUNTc                ó0   € V ^8„  d   QhR\         R\        /# ©é   ÚconfigÚreturn©r   Úbool)Úformats   "ÚF/home/ubuntu/.hermes/hermes-agent/plugins/platforms/signal/register.pyÚ__annotate__r      s   € ÷ Eñ Eœ.ð E¬Tñ Eó    c                ó>   € \        V 4      ;'       g    \        V 4      # )zäURL + account from config/scoped env, else ``.env``: a plain CLI process never loads ``.env``
into the environment, and the old static setup row read it, so a ``.env``-only profile stays
"configured" in ``hermes gateway setup``.)r
   Ú_env_configured©r   s   &r   Ú_is_connectedr      s   € ô " &Ó)×DÐD¬_¸VÓ-DÐDr   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r      s   € ÷ ñ œ^ð ´ñ r   c                óV   € \        V 4      '       d   R# \        P                  R4       R# )zU``validate_config``: same warning the core instantiation path logged before the move.Tz8Signal: SIGNAL_HTTP_URL or SIGNAL_ACCOUNT not configuredF)r
   ÚloggerÚwarningr   s   &r   Ú_validate_configr"      s    € ä˜f×%Ò%ÙÜ
‡N�NÐMÔNÙr   us  You are on Signal. Standard markdown (**bold**, *italic*, ~~strike~~, # headers, `code`) auto-converts to Signal formatting; bullets render as â€¢. No tables â€” use bullets or labeled lines. You can send files natively: write MEDIA:/absolute/path/to/file in your response. Images (.png, .jpg, .webp) send as photos, other files as documents; ![alt](url) sends as photos.c                 ó¶   € V P                  4       pVP                  R 4      '       g   R# V\        R 4      R P                  4       pV'       d   R V 2R3# \        # )zgroup:N)ÚstripÚ
startswithÚlenr   )ÚrefÚstrippedÚgroup_ids   &  r   Ú_parse_send_targetr*   +   sS   € à�y‰y‹{€HØ×Ñ˜x×(Ò(ÙØœ˜H›˜Ð'×-Ñ-Ó/€Hß*2ˆf�X�JÐ Ð&ÐD¼ÐDr   c                ó   € V ^8„  d   QhRR/# )r   r   N© )r   s   "r   r   r   4   s   € ÷ ñ �Tñ r   c                ó€  € ^RI Hp V P                  ! R)/ R\        bR\	        RRRRR7      bRRbR	RbR
\
        bRRbRRbRR*bR\        bR\        bR\        bRRR.bR\        R4      bRRbR\        bRRbR\        bR\        bRR bR!RbR"RbR#\        bR$R%bR&VP                  bR'VP                  bVP                   B  R(# )+u:   Plugin entry point â€” called by the Hermes plugin system.)Úgateway_envÚtarget_ref_syntax_fnr   ÚSignalT)ÚlabelÚmediaÚempty_list_between_chunksÚtext_directÚnameÚsignalr1   Úadapter_factoryÚdashboard_descriptionz)Connect through a signal-cli REST bridge.Údocs_urlz0https://github.com/bbernhard/signal-cli-rest-apiÚdashboard_env_varsr   r   Úcheck_fnÚvalidate_configÚis_connectedÚrequired_envÚconfig_connected_fnÚhttp_urlÚinstall_hintz$Signal: runtime requirements not metÚsetup_fnÚcron_deliver_env_varÚSIGNAL_HOME_CHANNELÚstandalone_sender_fnÚmax_message_lengthÚemojiu   ðŸ“¡Úpii_safeÚallow_update_commandÚplatform_hintÚdisplay_tierÚlowÚenv_overridesÚenv_enable_credentialsNr,   )r   r   ÚSIGNAL_ALLOWED_USERS)Ú r.   Úregister_platformr*   r   r   r	   r"   r   r   r   r   r   Ú_PLATFORM_HINTÚENV_OVERRIDESÚENV_ENABLE_CREDENTIALSÚAUTHZ)Úctxr.   s   & r   ÚregisterrW   4   sC  € åØ×Òò Ý/ðô -°8À4ÐcgØ9=õ?ðñ
 ðñ
 &ðõ
 8Eðñ Jðñ Dðñ Yðõ +ðõ =Mðõ #ðð 3DÐEUÑ1Vðô 3°:Ô>ðñ <ðõ GXðñ 3ðõ  -ð!õ  BTð!ñ" ð#ñ"  $ð#ñ" ;?ð#õ$ %ð%ñ& ð'ð( "×/Ò/ð)ð*  +×AÒAÀ[×EVÑEVô+r   )Ú__doc__ÚloggingÚgateway.configr   Úgateway.platforms._sharedr   r   Úgateway.platforms.send_targetsr   r   Ú plugins.platforms.signal.adapterr   r   r	   r
   Úplugins.platforms.signal.setupr   Ú#plugins.platforms.signal.standaloner   Ú	getLoggerÚ__name__r    r   r   r"   rR   r*   rW   r,   r   r   Ú<module>rb      sh   ðÙ Nã å )Ý 6Ý <ß M÷Zó Zå <Ý ?à	×	Ò	˜8Ó	$€á"Ð#4Ð6FÓG€õEõðhð òE÷r   