+
    kHàj+  ã                  ó:   € R t ^ RIHt ^ RIHt R R ltR R ltR# )zXSlack slash-command payload decoding: the gateway text and the thread anchor of a slash.)Úannotations)ÚOptionalc               ó    € V ^8„  d   QhRRRR/# )é   ÚcommandÚdictÚreturnÚstr© )Úformats   "ÚR/home/ubuntu/.hermes/hermes-agent/plugins/platforms/slack/adapter_slash_payload.pyÚ__annotate__r      s   € ÷ "ñ " ð "¨ñ "ó    c                ó>  € V P                  R4      ;'       g    RP                  R4      P                  4       p\        V P                  R4      ;'       g    R4      pVR9  d   V'       g   RV 2# RV RV 2# TP                  4       p^ RIHp V! 4       pRVR&   VP                  4       '       d   VP                  4       ^ ,          MRpWe9   dD   V\        V4      R	 P                  4       pWV,          pV'       d   V RV 2P                  4       # T# T;'       g    R
# )a  Gateway message text for a slash payload. Native slashes keep Slack's raw argument
payload verbatim (internal/trailing spacing). ``/hermes`` (or a missing ``command``) maps
``<subcommand> [args]`` via the registry, else free-form text is a regular question.r   Ú Ú/ÚtextÚ )Úslack_subcommand_mapz	/compressÚcompactNz/help>   r   Úhermes)ÚgetÚlstripÚstripr	   Úhermes_cli.commands_platformsr   ÚsplitÚlen)	r   Ú
slash_nameÚraw_textÚlegacy_textr   Úsubcommand_mapÚ
first_wordÚrestÚmappeds	   &        r   Úslash_command_textr$      s  € ð —+‘+˜iÓ(×.Ð.¨B×6Ñ6°sÓ;×AÑAÓC€JÜ�7—;‘;˜vÓ&×,Ð,¨"Ó-€HØ˜Ô'ß'/��:�,ÐÐP°q¸¸ÀAÀhÀZÐ5PÐPØ—.‘.Ó"€KÝBÙ)Ó+€NØ +€N�9ÑØ+6×+<Ñ+<×+>Ò+>�×"Ñ"Ó$ QÖ'ÀB€JØÔ#Øœ3˜z›?Ð,Ð-×3Ñ3Ó5ˆØÕ+ˆß-1�&�˜˜4˜&Ð!×'Ñ'Ó)Ð=°vÐ=Ø×!Ð!˜'Ð!r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   zOptional[str]r
   )r   s   "r   r   r      s   € ÷ ñ ˜Tð  mñ r   c                ó  a € V 3R lR 4       pS .V Uu. uF  p\        V\        4      '       g   K  VNK  	  up,           pR F4  pV F+  pVP                  V4      pV'       g   K  \        V4      u u # 	  K6  	  R# u upi )zÛThread anchor for a slash payload so session-scoped commands (``/model``)
hit the same thread session. Shape varies by surface: top-level or nested
``message``/``container``; ``thread_ts`` preferred over ``message_ts``.c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5i)N)r   )Ú.0Úkr   s   & €r   Ú	<genexpr>Ú"slash_thread_id.<locals>.<genexpr>    s   øé € Ð?Ñ&> ˆg�k‰k˜!�nˆnÓ&>ùs   ƒ!N)ÚmessageÚ	container)Ú	thread_tsÚ
message_ts)Ú
isinstancer   r   r	   )r   ÚnestedÚnÚ
candidatesÚts_keyÚpayloadÚvalues   f      r   Úslash_thread_idr7      ss   ø€ ô @Ñ&>Ó?€FØ�©ÓG© A´:¸aÄ×3FŸa˜a©ÑGÕG€JÛ-ˆÛ!ˆGØ—K‘K Ó'ˆEß‰uÜ˜5“zÔ!ó "ñ .ñ
 ùò Hs
   ”A<±A<N)Ú__doc__Ú
__future__r   Útypingr   r$   r7   r
   r   r   Ú<module>r;      s   ðÙ ^å "å õ"÷(r   