Ë
    ¯Ýj�	  ã                  ó  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ  G d	„ d
ee«      Z eh d£«      Zej                   ej"                  ej$                  dœZ ej(                  d«      Z ed¬«       G d„ d«      «       Zddœdd„Zy)ug  Der einzige Befehlsparser des Kerns.

- /start, /help, /status gehÃ¶ren dem Telegram-Plugin (Pairing-Semantik).
  Das Gateway fÃ¤ngt sie nicht ab und leitet sie nie an ein Modell.
- /auto, /codex, /claude ohne Text setzen den Modus des Chats dauerhaft.
- /codex <Text> (bzw. /claude, /auto) gilt nur fÃ¼r diese eine Nachricht.
- Jeder andere /-Befehl ist eine normale Nachricht (heutiges Verhalten:
  das Plugin reicht ihn an Claude weiter), lÃ¤uft also durch die Policy.

Ob ein Absender Modusbefehle geben darf, entscheidet NICHT der Parser,
sondern das Gateway (nur authentifizierte Besitzer, siehe gateway.py).
é    )ÚannotationsN)Ú	dataclass)ÚEnum)ÚOptionalé   )ÚModec                  ó   — e Zd ZdZdZdZdZy)ÚCommandKindÚmessageÚset_modeÚone_shotÚplugin_ownedN)Ú__name__Ú
__module__Ú__qualname__ÚMESSAGEÚSET_MODEÚONE_SHOTÚPLUGIN_OWNED© ó    ú5/home/aria/aria-v3-dev/python/aria_router/commands.pyr
   r
      s   „ Ø€GØ€HØ€HØ!�Lr   r
   >   ú/helpú/startú/status)z/autoz/codexz/claudez^(\S+)(?:\s+([\s\S]*))?$T)Úfrozenc                  óB   — e Zd ZU ded<   dZded<   dZded<   dZd	ed
<   y)ÚParsedCommandr
   ÚkindÚ ÚstrÚtextNzOptional[Mode]ÚmodeúOptional[str]Úcommand)r   r   r   Ú__annotations__r"   r#   r%   r   r   r   r   r   #   s%   … à
ÓØ€Dˆ#ƒNØ€Dˆ.ÓØ!€Gˆ]Ô!r   r   )Úbot_usernamec               ó6  — t        | t        «      st        d«      ‚| j                  «       }|j	                  d«      st        t        j                  | ¬«      S t        j                  |«      }|r|j                  d«      n|}|r|j                  d«      xs dnd}|j                  «       }d|v rE|j                  d«      \  }}}|�.||j                  «       k7  rt        t        j                  | ¬«      S |t        v rt        t        j                  |¬«      S |t        v r`t        |   }	|j                  «       r+t        t        j                   |j                  «       |	|¬	«      S t        t        j"                  |	|¬
«      S t        t        j                  | |¬«      S )NÚINVALID_MESSAGEú/)r"   r   é   r    ú@)r%   )r"   r#   r%   )r#   r%   )r"   r%   )Ú
isinstancer!   Ú
ValueErrorÚstripÚ
startswithr   r
   r   Ú_HEADÚmatchÚgroupÚlowerÚ	partitionÚPLUGIN_OWNED_COMMANDSr   ÚMODE_COMMANDSr   r   )
r   r'   Ústrippedr2   ÚheadÚrestÚnameÚ_Útargetr#   s
             r   Úparse_commandr>   +   sG  € Ü�gœsÔ#ÜÐ*Ó+Ð+Ø�}‰}‹€HØ×Ñ˜sÔ#Üœ[×0Ñ0°wÔ?Ð?Ü�K‰K˜Ó!€EÙ"ˆ5�;‰;�qŒ>¨€DÙ%*ˆE�K‰K˜‹NÒ ™b°€DØ�:‰:‹<€DØ
ˆd�{ØŸ.™.¨Ó-‰ˆˆa�ØÐ#¨°,×2DÑ2DÓ2FÒ(Fä ¤×!4Ñ!4¸7ÔCÐCØÔ$Ñ$Üœ[×5Ñ5¸tÔDÐDØŒ}ÑÜ˜TÑ"ˆØ�:‰:Œ<Ü ¤×!5Ñ!5¸D¿J¹J»LÈtÐ]aÔbÐbÜœ[×1Ñ1¸ÀdÔKÐKÜœ×,Ñ,°7ÀDÔIÐIr   )r   r!   r'   r$   Úreturnr   )Ú__doc__Ú
__future__r   ÚreÚdataclassesr   Úenumr   Útypingr   Úcorer   r!   r
   Ú	frozensetr6   ÚAUTOÚCODEXÚCLAUDEr7   Úcompiler1   r   r>   r   r   r   ú<module>rL      sŽ   ðñõ #ã 	Ý !Ý Ý å ô"�#�tô "ñ "Ò"@ÓAÐ ØŸ)™)¨t¯z©zÀdÇkÁkÑR€Øˆ�
‰
Ð.Ó/€ñ �$Ô÷"ð "ó ð"ð BFö Jr   