+
    lHàj±  ã                   ó–  € R t ^ RIt^ RIt^ RIHtHt ^ RIHtHt R#t	Rt
R$tR%tR&tR't]P                  ! R4      tR R	 ltR(R
 R lltRRRRRRRRRRRRRRP'                  ]	4       R2/RRRR]! ]4      /RRRRRRP'                  ]4       RRP'                  ]4       R2/RRRR]! ]4      RR////t]P,                  ! RR]R  R!R"7       R# ))a©  Set the Hermes desktop app's accent colour, light/dark mode and layout, or show a picker card.

The renderer applies the values and answers with what it applied, so the model reports what the user
sees: an unknown layout preset, a session that is not on screen and an absent desktop window all come
back as errors. Swatch ids and preset ids are validated again in the renderer, which also knows the
user's own saved layouts.
N)ÚCallableÚOptional)ÚregistryÚ
tool_errorÚthemeÚaccentÚlayoutz^#[0-9a-fA-F]{6}$c                óF   € V ^8„  d   QhR\         R\        \         ,          /# )é   r   Úreturn)Ústrr   )Úformats   "Ú9/home/ubuntu/.hermes/hermes-agent/tools/set_theme_tool.pyÚ__annotate__r      s"   € ÷ [ñ [œ#ð [¤(¬3¥-ñ [ó    c           	      óÆ   € V \         9   g'   V \        8X  g   \        P                  V 4      '       d   R # \        P
                  ! RRRRV : R2R. \         O\        N/RR7      # )NÚsuccessFÚerrorzUnknown accent z&: use a swatch id, 'theme' or #rrggbb.Ú	available©Úensure_ascii)ÚACCENT_SWATCHESÚTHEME_ACCENTÚ_HEXÚmatchÚjsonÚdumps)r   s   &r   Ú_accent_errorr      s`   € Ø”Ô  F¬lÔ$:¼d¿j¹jÈ×>PÒ>PÙÜ�:Š:�y %¨°OÀFÁ:ÐMsÐ2tØ"Ð$D¤oÐ$D´|Ð$DðFØTYô[ð [r   c                óò   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\         \        ,          R\         \        ,          R\         \        \        .\        3,          ,          R\        /# )r
   r   Úmoder   ÚpickerÚcallbackr   )r   r   r   Údict)r   s   "r   r   r   #   s]   € ÷ <ñ <œ8¤C�=ð <´xÄµ}ð <ÔU]Ô^aÕUbð <Ü#¤C�=ð<Ü;CÄHÌdÈVÔUYÈ\ÕDZÕ;[ð<Ügjñ<r   c           
     óô  € Vf   \        R4      # RV 3RV3RV33 UUu/ uFE  w  rV\        V\        4      '       g   K  VP                  4       '       g   K5  WVP                  4       bKG  	  pppVea   V\        9  d#   \        RRP                  \        4       R24      # V'       d   \        R4      # \        P                  ! V! R	V/4      R
R7      # V'       g   \        R4      # RV9   dJ   VR,          \        9  d8   \        P                  ! RR
RRVR,          : R2R\        \        4      /R
R7      # RV9   d   \        VR,          4      ;p'       d   V# \        P                  ! V! V4      R
R7      # u uppi )zQApply the given appearance values, or show one picker card and wait for the pick.z6set_theme is only available in the Hermes desktop app.r   r   r   zpicker must be one of: ú, Ú.zNpicker shows a card for the user to choose; pass picker alone, without values.r    Fr   zNPass at least one of accent, mode or layout, or picker to let the user choose.r   r   zUnknown mode r   )r   Ú
isinstancer   ÚstripÚPICKERSÚjoinr   r   ÚMODESÚlistr   )	r   r   r   r    r!   ÚkeyÚvalueÚvaluesr   s	   &&&&&    r   Úset_theme_toolr/   #   s_  € ð ÒÜÐRÓSÐSØ5=¸vÐ4FÈÐQUÈÐYaÐciÐXjÑ3kô ;Ñ3k¡Z SÜ˜E¤3×'ô !Ø,1¯K©K¯Mô !ˆc—;‘;“=Ò Ñ3k€Fñ ;àÒØœÔ ÜÐ 7¸¿	¹	Ä'Ó8JÐ7KÈ1ÐMÓNÐNßÜÐnÓoÐoÜ�zŠz™( H¨fÐ#5Ó6ÀUÔKÐKßÜÐjÓkÐkØ�Ô˜F 6�N´%Ô7Ü�zŠz˜9 e¨W¸ÀfÈVÅnÑEWÐWXÐ6YÐ[fÔhlÔmrÓhsÐtØ',ô.ð 	.à�6Ô¬°f¸XÕ6FÓ(GÐG˜uÖGØˆÜ�:Š:‘h˜vÓ&°UÔ;Ð;ùó;s   žE4½E4ÁE4ÚnameÚ	set_themeÚdescriptiona+  Change how the Hermes desktop app looks: accent colour, light/dark mode, layout. Pass the values to apply them now; the result says what was applied. Pass picker instead to show the user an accent or layout picker card in the chat and wait for their pick. To reveal ONE pane, use focus_pane instead.Ú
parametersÚtypeÚobjectÚ
propertiesÚstringzA swatch id (r$   zA), 'theme' for the theme's own accent, or a hex colour '#rrggbb'.r   ÚenumzLayout preset id. Simple mode: z. Advanced mode: z!. The user's saved layouts by id.r    zMShow that picker card and wait for the user (up to 5 minutes). Pass it alone.Ú
desktop_uic                 ó‚   € \        RR VP                  R 4      /R Uu/ uF  q"V P                  V4      bK  	  upB # u upi )r!   © )r   r   r   r    )r/   Úget)ÚargsÚkwÚks   &, r   Ú<lambda>r@   ^   sC   € œ~ñ  iØ—‘˜
Ó#ð iÙ@fÓ'gÑ@f¸1¨4¯8©8°A«;ªÑ@fÑ'gò iùÚ'gs   �<u   ðŸŽ¨)r0   ÚtoolsetÚschemaÚhandlerÚemoji)ÚmonoÚgreenÚcyanÚnousÚvioletÚpinkÚredÚorange)ÚlightÚdarkÚsystem)r   r   )zsidebar-leftzsidebar-right)ÚdefaultÚbasicÚfocuszterminal-deckÚquad)NNNNN)Ú__doc__r   ÚreÚtypingr   r   Útools.registryr   r   r   r   r*   r(   ÚSIMPLE_LAYOUTSÚADVANCED_LAYOUTSÚcompiler   r   r/   r)   r+   ÚSET_THEME_SCHEMAÚregisterr;   r   r   Ú<module>r]      s@  ðñó Û 	ß %ç /àV€à€Ø#€Ø
€ð 3€ØIÐ à	‡z‚zÐ&Ó'€õ[÷<ð0 ˆKØð	ð
 Ø�ØØØ˜Ø -°·	±	¸/Ó0JÐ/Kð LEð !Eðð
 �V˜X v©t°E«{Ð;ØØ˜ØÐ"AÀ$Ç)Á)ÈNÓB[ÐA\Ð\mØ#'§9¡9Ð-=Ó#>Ð"?Ð?`ð!bðð
 Ø˜Ø™˜W›ØÐnðð
ððÐ ð@ 	× Ò Ø	ØØñià
÷r   