+
    jHàj)>  ã                  óè  € R t ^ RIHt ^ RIt^ RIt^ RIHt R R ltR R ltR R	 lt	R
 R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltRXR R lltR R ltR  R! ltR" R# ltR$ R% ltR&^/R' R( lltR) R* ltR+ R, ltR- R. ltR/R0]RY]! R1R2R3R47      3RZ]! R5R6R77      3R[]! ]^(R8R97      333R:R;]	R\]! R<R=7      3R]]! R5R>R77      3R^]! R5R?R77      333R@RA]R\]! R1R2RBR47      333RCRD]R\]! R1R2RER47      3R_]! R2RFRG7      3R`]! R5RHR77      3Ra]! R5RIR77      3Rb]! RRJRG7      3Rc]! ]^ RKR97      333RLRM]Rd3RNRO]Re]! RPR=7      333RQRR]
R\]! RSR=7      333RTRU]Rd33tRV RW lt R# )fz-CLI subcommand: ``hermes pets <subcommand>``.)ÚannotationsN)Úis_truthy_valuec               ó    € V ^8„  d   QhRRRR/# )é   ÚmsgÚstrÚreturnÚNone© )Úformats   "Ú4/home/ubuntu/.hermes/hermes-agent/hermes_cli/pets.pyÚ__annotate__r      s   € ÷  ñ  ˆcð  �dñ  ó    c                ó<   € \        V \        P                  R 7       R# ))ÚfileN)ÚprintÚsysÚstderr)r   s   &r   Ú_errr      s   € Ü	ˆ#”C—J‘J×r   c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr
   )r   s   "r   r   r      s   € ÷ %ñ %�sñ %r   c                óÎ  € ^ RI Hp V P                  '       do   VP                  4       pV'       g   \	        R4       ^ # \	        R\        V4       R24       V F)  p\	        RVP                  R RVP                   24       K+  	  ^ # ^ RIH	pH
p  V! 4       pT P                  ;'       g    RP                  4       P                  4       pT'       dP   T U	u. uFC  q˜T	P                  P                  4       9   g!   Y‰P                  P                  4       9   g   KA  T	NKE  	  pp	T P                  ;'       g    ^ p
T
^ 8”  d   TR
T
 MTpTP                  4        Uu0 uF  qÌP                  kK  	  pp\	        R\        T4       RT'       d   R\!        T4      ,           MR R24       T FO  pTP                  T9   d   RMRp\	        RT RTP                  R RTP                   RTP"                   R2	4       KQ  	  T
'       d0   \        T4      T
8”  d    \	        R\        T4      T
,
           R24       \	        R4       ^ #   T d   p\        R	T 24        R
p?^# R
p?ii ; iu up	i u upi )z@List gallery pets (or only installed ones with ``--installed``).©Ústorez0No pets installed. Try: hermes pets install bobazInstalled pets (z):ú  ú<24Ú ©ÚManifestErrorÚfetch_manifestõ   âœ— NÚ u   petdex gallery â€” z pet(s)z
 matching Ú:u   âœ“z<28z  (Ú)u     â€¦ z* more (use --limit 0 or --query to filter)z-
Install one with: hermes pets install <slug>)Ú	agent.petr   Ú	installedÚinstalled_petsr   ÚlenÚslugÚdisplay_nameÚagent.pet.manifestr   r    r   ÚqueryÚstripÚlowerÚlimitÚreprÚkind)Úargsr   ÚpetsÚpetr   r    ÚentriesÚexcr,   Úer/   ÚshownÚpr&   ÚentryÚmarks   &               r   Ú	_cmd_listr<      s  € åà‡~‡~€~Ø×#Ñ#Ó%ˆßÜÐDÔEÙÜÐ ¤ T£ ¨2Ð.Ô/ÛˆCÜ�B�s—x‘x �n A c×&6Ñ&6Ð%7Ð8Ö9ñ áç@ðÙ Ó"ˆð
 �Z‰Z×Ð˜2×$Ñ$Ó&×,Ñ,Ó.€EßÙ%Ód™g˜°!·&±&·,±,³.Ô)@ÀEÏ^É^×MaÑMaÓMcÑDc—1�1™gˆÐdà�J‰J�OˆO˜!€EØ$ qœyˆG�F�U‰O¨g€EØ!&×!5Ñ!5Ô!7Ó8Ñ!7˜A—”Ñ!7€IÐ8ä	Ð¤ G£˜~¨W×SX°\ÄDÈÃKÖ5OÐ^`Ð4aÐabÐ
cÔdÛˆØŸ
™
 iÔ/‰u°SˆÜ��4�&˜˜%Ÿ*™* SÐ)¨¨5×+=Ñ+=Ð*>¸cÀ%Ç*Á*ÀÈQÐOÖPñ ÷ ”�W“ Ô%Ü�”s˜7“| eÕ+Ð,Ð,VÐWÔXÜ	Ð
:Ô;Ùøð' ô Üˆt�C�5ˆ\ÔÝûðüò eùò 9s*   ÂH: Ã>IÄIÅI"È:IÉIÉIc               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   7   s   € ÷ ñ ˜#ñ r   c                óæ  € ^ RI Hp ^ RIHp V P                  P                  4       p VP                  W0P                  R7      p\        RTP                   RTP                   24       T P                  '       g   \        4       '       g*   \        T4       \        RTP                   R	T R
24       ^ # \        RT 24       ^ #   TP                  T3 d   p\        RT 24        Rp?^# Rp?ii ; i)é    r   )r   )Úforceu   âœ— install failed: Nu   âœ“ installed u    â†’ u   âœ“ z) is now the active pet (display.pet.slug=ú
, enabled)z*  Make it active with: hermes pets select )r%   r   r+   r   r)   r-   Úinstall_petr@   ÚPetStoreErrorr   r   r*   Ú	directoryÚselectÚ_has_active_petÚ_set_active)r2   r   r   r)   r4   r6   s   &     r   Ú_cmd_installrH   7   sÚ   € ÝÝ0à�9‰9�?‰?Ó€DðØ×Ñ ¯J©JÐÓ7ˆô
 
ˆN˜3×+Ñ+Ð,¨E°#·-±-°Ð
AÔBà‡{‡{€{œ/×+Ò+Ü�DÔÜ��S×%Ñ%Ð&Ð&OÐPTÈvÐU_Ð`Ôañ ô 	Ð:¸4¸&ÐAÔBÙøð ×Ñ Ð/ô ÜÐ# C 5Ð)Ô*Ýûðús   ¨C ÃC0ÃC+Ã+C0c               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   L   s   € ÷ ñ ˜ñ r   c                ó²   € ^ RI Hp V P                  P                  4       pVP	                  V4      '       d   \        RV 24       ^ # \        RV R24       ^# )r?   r   u   âœ“ removed õ   âœ— 'z' is not installed)r%   r   r)   r-   Ú
remove_petr   r   )r2   r   r)   s   &  r   Ú_cmd_removerM   L   sM   € Ýà�9‰9�?‰?Ó€DØ×Ñ˜×ÒÜ�˜T˜FÐ#Ô$ÙÜˆ5��Ð(Ð	)Ô*Ùr   c               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   W   s   € ÷ ñ ˜ñ r   c                ó   € ^ RI Hp V P                  ;'       g    RP                  4       pV'       g;   VP	                  4       pV'       g   \        R4       ^# \        V4      pV'       g   ^# VP                  V4      pVe   VP                  '       g   \        RV RV 24       ^# \        V4       \        RVP                   RV R24       ^ # )	r?   r   r"   u7   âœ— no pets installed â€” run: hermes pets install bobarK   u0   ' is not installed â€” run: hermes pets install u   âœ“ active pet set to z (display.pet.slug=rA   )r%   r   r)   r-   r'   r   Ú_interactive_pickÚload_petÚexistsrG   r   r*   )r2   r   r)   r3   r4   s   &    r   Ú_cmd_selectrS   W   s¬   € Ýà�I‰I�OˆO˜×"Ñ"Ó$€DßØ×#Ñ#Ó%ˆßÜÐJÔKÙÜ  Ó&ˆßÙà
�.‰.˜Ó
€CØ
‚{˜#Ÿ*Ÿ*˜*Üˆu�T�FÐJÈ4È&ÐQÔRÙä�ÔÜ	Ð" 3×#3Ñ#3Ð"4Ð4GÈÀvÈZÐ
XÔYÙr   c               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   n   s   € ÷ ñ �cñ r   c                ó2   € \        R 4       \        R4       ^ # )Fu,   âœ“ pet disabled (display.pet.enabled=false))Ú_set_enabledr   )r2   s   &r   Ú_cmd_offrW   n   s   € Ü�ÔÜ	Ð
8Ô9Ùr   c               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   t   s   € ÷ ñ ˜ñ r   c                ó„   € \        V P                  4      w  rV'       d   \        RV 24       ^# \        RVR R24       ^ # )uA   Persist ``display.pet.scale`` â€” one knob resizes every surface.r!   u   âœ“ pet scale set to Úgz (display.pet.scale))Úset_pet_scaleÚfactorr   r   )r2   ÚscaleÚerrs   &  r   Ú
_cmd_scaler_   t   s>   € ä˜tŸ{™{Ó+�J€Eß
Üˆt�C�5ˆ\ÔÙÜ	Ð! %¨ Ð*>Ð
?Ô@Ùr   c               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   ~   s   € ÷ Oñ O�sñ Or   c                ó|
  a€ ^ RI p^ RIp^ RIHp ^ RIHpHpHpHpH	p ^ RI
Hp	 \        4       p
V P                  ;'       g    RP                  4       ;'       g&    \        V
P!                  RR4      ;'       g    R4      pVP#                  V4      pVf   \%        R4       ^# V P&                  ;'       g&    \        V
P!                  RR	4      ;'       g    R	4      p\)        V P*                  ;'       g    V
P!                  R
V4      ;'       g    T4      pV! WêP!                  R^ 4      4      pV	! VP,                  WÞVR7      pVP.                  '       g   \%        RVP&                   R24       ^# V P0                  ;'       g    RP                  4       P3                  4       pV'       d   V.pM`V P4                  '       d8   V UUu. uF(  pTV Uu0 uF  pVP6                  kK  	  up9   g   K&  VNK*  	  pppMVP8                  P6                  .pVP&                  R8H  p\;        RVR,          \;        ^VP=                  V^ ,          4      ;'       g    ^4      ,          4      pVP?                  R4      P@                  pV'       d   TM6\;        ^\C        VPD                  VP*                  ,          4      ^,          4      pR\;        ^ VV,
          ^,
          4      ,          o\F        PH                  pVPK                  R4       VPM                  4        ^ p \O        VPP                   RVP&                   R24       ^ p V EFG  p\S        VP=                  V4      ;'       g    ^4       EF  pVPU                  VV4      pV'       d‹   S'       d+   RPW                  V3R lVPY                  R4       4       4      pV'       d   VPK                  RV R24       VPK                  V4       VPK                  R4       VP[                  R4      ^,           pMQVPK                  R4       VPK                  VPP                   RV R24       VPK                  SV,           R,           4       VPM                  4        VP]                  V4       EK  	  EKJ  	  V^,          pV P^                  '       g   EKm  V\a        V4      8¼  g   EK€   TPK                  R4       TPK                  R4       TPM                  4        ^ # u upi u uppi   \b         d     LLi ; i  TPK                  R4       TPK                  R4       TPM                  4        i ; i) z£Animate the active (or named) pet in the terminal via the shared PetRenderer
(kitty/iTerm2/sixel when supported, else truecolor half-block fallback). Ctrl+C stops.Nr   )ÚDEFAULT_SCALEÚLOOP_MSÚ
STATE_ROWSÚPetStateÚresolve_cols)Úbuild_rendererr"   r)   u4   âœ— no pet to show â€” run: hermes pets install bobaÚrender_modeÚautor]   Úunicode_cols)Úconfigured_moder]   rj   uE   âœ— cannot render here (no TTY / graphics disabled). Effective mode: Ú.Úunicodegš™™™™™©?g     @�@r   z[?25lu
    â€” mode=z  (Ctrl+C to stop)Ú
c              3  ó6   <"  € T F  pSV,           x € K  	  R # 5i©Nr
   )Ú.0ÚlnÚindents   & €r   Ú	<genexpr>Ú_cmd_show.<locals>.<genexpr>·   s   øé € Ð/ZÑFYÀ°¸·²ÓFYùs   ƒz[ÚFz[0m
z[2J[3J[Hz [z]
z[?25h)éP   é   )2ÚshutilÚtimer%   r   Úagent.pet.constantsrb   rc   rd   re   rf   Úagent.pet.renderrg   Ú_pet_configr)   r-   r   ÚgetÚresolve_active_petr   ÚmodeÚfloatr]   ÚspritesheetÚ	availableÚstater.   ÚcycleÚvalueÚIDLEÚmaxÚframe_countÚget_terminal_sizeÚcolumnsr   Úframe_wr   ÚstdoutÚwriteÚflushr   r*   ÚrangeÚframeÚjoinÚsplitÚcountÚsleepÚoncer(   ÚKeyboardInterrupt) r2   ry   rz   r   rb   rc   rd   re   rf   rg   Úcfgr)   r4   Úmode_cfgr]   ÚcolsÚrendererÚ	requestedÚstatesÚsr7   Ú
is_unicodeÚframe_delayÚ	term_colsÚsprite_colsÚoutÚ
prev_linesÚloopsr„   ÚiÚencodedrs   s    &                              @r   Ú	_cmd_showr¨   ~   s  ø€ ó Ûåß^Õ^Ý/ä
‹-€CØ�I‰I�OˆO˜×"Ñ"Ó$×FÐF¬¨C¯G©G°F¸BÓ,?×,EÐ,EÀ2Ó(F€DØ
×
"Ñ
" 4Ó
(€CØ
‚{ÜÐCÔDÙà�y‰y×IÐIœC §¡¨°vÓ >× HÐ HÀ&ÓI€HÜ�$—*‘*×PÐP §¡¨°Ó ?×PÐPÀ=ÓQ€EÙ˜Ÿw™w ~°qÓ9Ó:€Dá˜cŸo™o¸xÐcgÔh€HØ××ÐÜÐTÐU]×UbÑUbÐTcÐcdÐeÔfÙð —‘×!Ð!˜r×(Ñ(Ó*×0Ñ0Ó2€IßØ�‰Ø	��ˆÙ'ÔL™Z˜¨1Á(Ó0KÁ(¸Q°·´Á(Ñ0KÑ+K—!�!™ZˆÑLˆà—-‘-×%Ñ%Ð&ˆà—‘ )Ñ+€JÜ�d˜W vÕ-´°Q¸×8LÑ8LÈVÐTUÍYÓ8W×8\Ð8\Ð[\Ó1]Õ]Ó^€Kð ×(Ñ(¨Ó2×:Ñ:€Iß$‘$¬#¨a´°X×5EÑ5EÈÏÉÕ5VÓ1WÐ[\Õ1\Ó*]€KØ”3�q˜) kÕ1°AÕ5Ó6Õ6€Fä
�*‰*€CØ‡I�IˆkÔØ‡I�I„KØ€JðÜ�×!Ñ!Ð" *¨X¯]©]¨OÐ;MÐNÔOØˆØÜ�Ü˜x×3Ñ3°EÓ:×?Ð?¸a×@�AØ&Ÿn™n¨U°AÓ6�Gß!ß!Ø&*§i¡iÔ/ZÀgÇmÁmÐTXÔFYÓ/ZÓ&Z˜Gß%ØŸI™I¨¨j¨\¸Ð&;Ô<ØŸ	™	 'Ô*ØŸ	™	 +Ô.à%,§]¡]°4Ó%8¸1Õ%<™
àŸ	™	Ð"8Ô9ØŸ	™	 S×%5Ñ%5Ð$6°b¸¸¸sÐ"CÔDØŸ	™	 &¨7Õ"2°TÕ"9Ô:Ø—I‘I”KØ—J‘J˜{×+ô! Añ  ð$ �Q�JˆEØ�y�y‹y˜U¤c¨&£k×1Øð 	�	‰	�+ÔØ�	‰	�+ÔØ�	‰	ŒÙùòa 1LùÓLøôT ô Ùðûð 	�	‰	�+ÔØ�	‰	�+ÔØ�	‰	�úsb   Ç
S0ÇS+Ç!S0Ç*S0ÌA
S6 Í,S6 Î1S6 Î9C$S6 Ò#S6 Ò6T Ó+S0Ó6TÔT ÔTÔT Ô4T;c               ó   € V ^8„  d   QhRR/# r   r
   )r   s   "r   r   r   Ð   s   € ÷ (ñ (˜ñ (r   c           	     óü  € ^ RI Hp ^ RIHpHp \        4       p\        V4      p\        VP                  RR4      ;'       g    R4      p\        VP                  RR4      ;'       g    R4      pVP                  4       pVP                  V4      p	\        R4       \        RVP                  4        24       \        R	\        V4       R
RP                  R V 4       4      ;'       g    R R24       \        RV 24       \        RT;'       g    R 24       \        RV	'       d   V	P                  MR 24       \        RV 24       \        RV! 4        24       \        RV! V4       24       Rp
V'       g   \        R4       Rp
M6V	f   \        R4       Rp
M$V'       g   \        RV	P                  ,           4        ^ RIp\        V
'       d   V'       d   RMR4       ^ #   \"         d    \        R4       Rp
 L9i ; i) zBReport install state, active pet, config, and terminal capability.r   )Údetect_terminal_graphicsÚresolve_moder)   r"   rh   ri   zpetdex doctorz  pets dir:        z  installed:       z (z, c              3  ó8   "  € T F  qP                   x € K  	  R # 5irp   ©r)   )rq   r9   s   & r   rt   Ú_cmd_doctor.<locals>.<genexpr>ß   s   é € Ð6LÁtÀ!·v¶vÃtùs   ‚Únoner$   z  display.pet.enabled:     z  display.pet.slug:        z(unset)z  active (resolved):       z(none)z  display.pet.render_mode: z  detected graphics:       z  effective mode (TTY):    Tu6     â†’ no pets installed. Run: hermes pets install bobaFNu;     â†’ active pet unresolved. Run: hermes pets select <slug>u7     â†’ pet display is disabled. Run: hermes pets select uC     âœ— Pillow not importable â€” sprite decoding will be unavailableu     âœ“ readyz-  (run the suggestions above to finish setup))r%   r   r|   r«   r¬   r}   Ú_pet_enabledr   r~   r'   r   r   Úpets_dirr(   r’   r)   ÚPILÚImportError)r2   r   r«   r¬   r˜   ÚenabledÚconfigured_slugr™   r3   ÚactiveÚokr³   s   &           r   Ú_cmd_doctorr¹   Ð   s½  € åßGä
‹-€CÜ˜3Ó€GÜ˜#Ÿ'™' &¨"Ó-×3Ð3°Ó4€OÜ�3—7‘7˜=¨&Ó1×;Ð;°VÓ<€Hà×ÑÓ!€DØ×%Ñ% oÓ6€Fä	ˆ/ÔÜ	Ð §¡Ó 0Ð1Ð
2Ô3Ü	Ð¤ D£	˜{¨"¨T¯Y©YÑ6LÁtÓ6LÓ-L×-VÐ-VÐPVÐ,WÐWXÐ
YÔZÜ	Ð'¨ yÐ
1Ô2Ü	Ð'¨×(DÐ(D¸9Ð'EÐ
FÔGÜ	Ð'·v¨¯ªÀ8Ð'LÐ
MÔNÜ	Ð'¨ zÐ
2Ô3Ü	Ð'Ñ(@Ó(BÐ'CÐ
DÔEÜ	Ð'©°XÓ(>Ð'?Ð
@ÔAà	€BßÜÐFÔGØ‰Ø	ŠÜÐKÔLØ‰ßÜÐGÈ&Ï+É+ÕUÔVðÛô
 
Ÿ2§'‰-Ð/^Ô_Ùøô ô ÜÐSÔTØŠðús   Æ=G  Ç G;Ç:G;c               ó   € V ^8„  d   QhRR/# )r   r   Údictr
   )r   s   "r   r   r   ý   s   € ÷ 0ñ 0�Tñ 0r   c                 óæ   € ^ RI Hp  V ! 4       p\        VP                  R4      \        4      '       d   VP                  R/ 4      M/ pVP                  R/ 4      p\        V\        4      '       d   V# / # )r?   )Úload_configÚdisplayr4   )Úhermes_cli.configr½   Ú
isinstancer~   r»   )r½   r˜   r¾   r4   s       r   r}   r}   ý   s[   € Ý-á
‹-€CÜ(2°3·7±7¸9Ó3EÄt×(LÒ(Lˆc�g‰g�i Ô$ÐRT€GØ
�+‰+�e˜RÓ
 €CÜ˜S¤$×'Ò'ˆ3Ð/¨RÐ/r   c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr
   )r   s   "r   r   r     s   € ÷ 7ñ 7˜ñ 7r   c                 óp   € \        4       p \        V 4      ;'       d    \        V P                  R 4      4      # r®   )r}   r±   rÂ   r~   ©r˜   s    r   rF   rF     s)   € Ü
‹-€CÜ˜Ó×6Ð6¤ c§g¡g¨f£oÓ!6Ð6r   c               ó    € V ^8„  d   QhRRRR/# )r   r˜   r»   r   rÂ   r
   )r   s   "r   r   r     s   € ÷ >ñ >�dð >˜tñ >r   c                ó:   € \        V P                  R 4      RR7      # )rµ   F)Údefault)r   r~   rÄ   s   &r   r±   r±     s   € Ü˜3Ÿ7™7 9Ó-°uÔ=Ð=r   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	when_slugz
str | Noner   rÂ   r
   )r   s   "r   r   r     s   € ÷ ñ  *ð À$ñ r   c                ó&  € ^ RI HpHp V! 4       pVP                  R/ 4      P                  R/ 4      pV eC   \	        V\
        4      '       d+   \        VP                  RR4      ;'       g    R4      V 8w  d   R# VP                  V4       V! V4       R# )zÝWrite ``display.pet.*`` keys and save config; returns whether anything was written.

With ``when_slug`` the write only happens when the configured slug equals it (remove/rename
must never disturb a different active pet).
)r½   Úsave_configr¾   r4   r)   r"   FT)	r¿   r½   rË   Ú
setdefaultrÀ   r»   r   r~   Úupdate)rÉ   Úvaluesr½   rË   r˜   r4   s   &,    r   Ú_update_pet_configrÏ     sy   € ÷ ;á
‹-€CØ
�.‰.˜ BÓ
'×
2Ñ
2°5¸"Ó
=€CØÒ¤j°´d×&;Ò&;¼sÀ3Ç7Á7È6ÐSUÓCV×C\ÐC\ÐZ\Ó?]ÐajÔ?jÙØ‡J�JˆvÔÙ�ÔÙr   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r   r   r	   r
   )r   s   "r   r   r      s   € ÷ 0ñ 0�cð 0˜dñ 0r   c                ó    € \        V R R7       R# )T)r)   rµ   N©rÏ   r®   s   &r   rG   rG      s   € Ü˜D¨$×/r   c               ó    € V ^8„  d   QhRRRR/# )r   rµ   rÂ   r   r	   r
   )r   s   "r   r   r   $  s   € ÷ (ñ (˜$ð ( 4ñ (r   c                ó   € \        V R 7       R# )©rµ   NrÒ   rÕ   s   &r   rV   rV   $  s
   € Ü˜w×'r   c               ó    € V ^8„  d   QhRRRR/# )r   r†   zfloat | strr   ztuple[float, str | None]r
   )r   s   "r   r   r   (  s   € ÷ ñ ˜ð Ð)Añ r   c                ó’   € ^ RI Hp  V! \        V 4      4      p\        TR7       TR3#   \        \        3 d    RRT : R23u # i ; i)zÉSet ``display.pet.scale`` (clamped). Returns ``(applied, error)``; *error* is set (and
nothing written) only when *value* isn't a number. Single write path behind ``/pet scale``
and the desktop slider.)Úclamp_scaleg        znot a number: u    â€” try a value like 0.5)r]   N)r{   rØ   r�   Ú	TypeErrorÚ
ValueErrorrÏ   )r†   rØ   r]   s   &  r   r[   r[   (  s\   € õ 0ðHÙœE %›LÓ)ˆô ˜UÕ#Ø�$ˆ;Ðøô	 ”zÐ"ô HØ�n U¡IÐ-FÐGÐGÒGðHús   ˆ) ©AÁAc               ó   € V ^8„  d   QhRR/# )r   r   z#tuple[bool, str | None, str | None]r
   )r   s   "r   r   r   7  s   € ÷ (ñ (Ð?ñ (r   c                 ó¦  € ^ RI Hp  \        4       pT P                  \	        VP                  RR4      ;'       g    R4      4      p\        V4      '       d'   \        R4       RV'       d   VP                  R3# RR3# Vf:   V P                  4       pV'       g   R# V^ ,          p\        VP                  4       M\        R4       RVP                  R3# )zToggle ``display.pet.enabled``.r   r)   r"   FNT)FNuB   no pets installed â€” /pet list to browse, or /pet <slug> to adopt)r%   r   r}   r   r   r~   r±   rV   r*   r'   rG   r)   )r   r˜   r4   r&   s       r   Útoggle_pet_displayrÝ   7  s²   € åä
‹-€CØ
×
"Ñ
"¤3 s§w¡w¨v°rÓ':×'@Ð'@¸bÓ#AÓ
B€Cä�C×ÒÜ�UÔØ¯#�c×&Ñ&¸Ð=Ð=°4¸Ð=Ð=à
‚{Ø×(Ñ(Ó*ˆ	ßØdÐdØ˜�lˆÜ�C—H‘HÕä�TÔØ�×!Ñ! 4Ð'Ð'r   r/   c               ó    € V ^8„  d   QhRRRR/# )r   r/   r   r   r	   r
   )r   s   "r   r   r   M  s   € ÷ 6ñ 6 ð 6¨Tñ 6r   c           	     óÚ  € ^ RI Hp ^ RIHpHp  V! 4       pTP                  4        Uu0 uF  qfP                  kK  	  ppT ^ 8”  d   TRT  MTp\        R\        T4       R\        T4       R24       T FA  p	T	P                  T9   d   RMR	p
\        R
T
 RT	P                  R RT	P                   24       KC  	  \        R4       R#   T d   p\        RT 24        Rp?R# Rp?ii ; iu upi )zCPrint a slice of the public petdex gallery (CLI/TUI text fallback).r   r   z)(._.) Couldn't reach the petdex gallery: Nu    (^o^)/ petdex gallery â€” first z of r#   u   â—�u   â—‹r   r   r   u(     /pet <slug> to adopt Â· /pet to toggle)
r%   r   r+   r   r    r   r'   r)   r(   r*   )r/   r   r   r    r5   r6   r9   r&   r8   r:   r;   s   $          r   Úprint_pet_galleryrà   M  sä   € åß@ðÙ Ó"ˆð
 "'×!5Ñ!5Ô!7Ó8Ñ!7˜A—”Ñ!7€IÐ8Ø$ qœyˆG�F�U‰O¨g€EÜ	Ð,¬S°«Z¨L¸¼SÀ»\¸NÈ!Ð
LÔMÛˆØŸ
™
 iÔ/‰u°UˆÜ��4�&˜˜%Ÿ*™* SÐ)¨¨5×+=Ñ+=Ð*>Ð?Ö@ñ ô 
Ð
4Ö5øð ô ÜÐ9¸#¸Ð?Ô@Ýûðüò 9s   �C ©C(ÃC%ÃC Ã C%c               ó    € V ^8„  d   QhRRRR/# )r   r)   r   r   rÂ   r
   )r   s   "r   r   r   a  s   € ÷ Fñ F˜3ð F 4ñ Fr   c                ó   € \        V RRR7      # )zFDisable + unset the active pet iff it's ``slug`` (e.g. after removal).r"   F)rÉ   r)   rµ   rÒ   r®   s   &r   Ú_clear_active_ifrã   a  s   € ä¨°2¸uÔEÐEr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úold_slugr   Únew_slugr   rÂ   r
   )r   s   "r   r   r   f  s&   € ÷ Añ A ð A¨sð A°tñ Ar   c                ó:   € V'       d   W8X  d   R# \        WR7      # )z�Repoint the active pet from ``old_slug`` to ``new_slug`` iff it's active (a rename moves
the dir; config must follow). Preserves ``enabled``.F)rÉ   r)   rÒ   )rå   ræ   s   &&r   Ú_rename_active_ifrè   f  s   € ÷ �xÔ+ÙÜ¨Ô@Ð@r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r
   )r   s   "r   r   r   n  s   € ÷ ñ ˜sñ r   c           	     óÀ  € \        R4       \        V ^4       F.  w  r\        RV RVP                  R RVP                   24       K0  	   \	        \        R4      P                  4       ;'       g    R4      ^,
          p^ Tu;8:  d   \        T 4      8  d   M MY,          P                  # \        R
4       R	#   \        \        \        3 d    \        R4        R	# i ; i)z<Minimal numbered picker (avoids curses dep for a tiny list).zInstalled pets:r   z. r   r   zSelect a pet [1]: Ú1u   âœ— cancelledr"   u   âœ— invalid selection)r   Ú	enumerater)   r*   r   Úinputr-   ÚEOFErrorr—   rÚ   r   r(   )r3   r¦   r4   Úidxs   &   r   rP   rP   n  sÀ   € ä	Ð
ÔÜ˜D !Ö$‰ˆÜ��1�#�R˜Ÿ™ �~ Q s×'7Ñ'7Ð&8Ð9Ö:ñ %ðÜ”%Ð,Ó-×3Ñ3Ó5×<Ð<¸Ó=ÀÕAˆð 	ˆCÖ”#�d“)×Ø�y�~‰~ÐÜÐ	 Ô!Ùøô Ô'¬Ð4ô Üˆ_ÔÚðús   Á$B8 Á0B8 Â8!CÃCÚlistzBrowse the petdex galleryÚ?r"   zFilter by slug/name substring)ÚnargsrÇ   ÚhelpÚ
store_truezOnly show installed pets)Úactionró   zMax rows (0 = all))ÚtyperÇ   ró   ÚinstallzInstall a pet from the galleryzPet slug (e.g. boba)©ró   zRe-download even if presentzMake it the active petrE   z)Set the active pet (writes display.pet.*)zPet slug (omit for picker)Úshowz&Animate the active pet in the terminalzPet slug (default: active)z.Single state: idle/run/review/failed/wave/jump)rÇ   ró   zCycle through all stateszPlay once instead of loopingz5Override render mode (kitty/iterm/sixel/unicode/auto)zOverride scale (0 = config)ÚoffzDisable the pet displayr]   z-Resize the pet everywhere (display.pet.scale)u*   Scale factor, e.g. 0.5 (clamped 0.1â€“3.0)ÚremovezDelete an installed petzPet slugÚdoctorz+Check pet setup + terminal graphics supportc               ó    € V ^8„  d   QhRRRR/# )r   Úparentzargparse.ArgumentParserr   r	   r
   )r   s   "r   r   r   ¢  s   € ÷ 	$ñ 	$Ð0ð 	$°Tñ 	$r   c                óú   a € S P                  V 3R lR7       S P                  RR7      p\         FG  w  r#rEVP                  W#R7      pV F  w  rxVP                  ! V/ VB  K  	  VP                  VR7       KI  	  R# )z<Attach ``pets`` subcommands to *parent* (called by main.py).c                ó6   <€ SP                  4       ^ 3^,          # )r?   )Ú
print_help)Úarþ   s   &€r   Ú<lambda>Úregister_cli.<locals>.<lambda>¤  s   ø€ ¨×(9Ñ(9Ó(;¸QÐ'?ÀÖ'Br   )ÚfuncÚpets_command)Údestrø   N)Úset_defaultsÚadd_subparsersÚ_SUBCOMMANDSÚ
add_parserÚadd_argument)	rþ   ÚsubsÚnameÚ	help_textr  Ú	argumentsÚsubÚflagsÚkwargss	   f        r   Úregister_clir  ¢  sw   ø€ à
×ÑÔBÐÔCØ× Ñ  nÐ Ó5€Dç,8Ñ(ˆ˜Ø�o‰o˜dˆoÓ3ˆÛ&‰MˆEØ×Ò˜eÐ. vÔ.ñ 'à×Ñ˜dÐÖ#ó	 -9r   rp   )r,   )z--installed)z--limitr®   )z--force)z--select)z--state)z--cycle)z--once)z--mode)z--scaler
   )r\   )!Ú__doc__Ú
__future__r   Úargparser   Úutilsr   r   r<   rH   rM   rS   rW   r_   r¨   r¹   r}   rF   r±   rÏ   rG   rV   r[   rÝ   rà   rã   rè   rP   r»   r   r�   r
  r  r
   r   r   Ú<module>r     s"  ðÙ 3å "ã Û 
å !õ õ%õPõ*õõ.õõOõd(õZ0õ7õ
>÷õ"0õ(õõ(ð,6 b÷ 6õ(Fõ
Aõð( Ð(¨)Ø	‘T ¨RÐ6UÔVÐWØ	™4 |Ð:TÔUÐVØ	‘t ¨bÐ7KÔLÐMð6ð ð
 Ð0°,Ø	‘DÐ4Ô5Ð6Ø	‘t <Ð6SÔTÐUØ	™ LÐ7OÔPÐQðAð ð
 Ð:¸KØ	‘D˜s¨BÐ5QÔRÐSðJð ð Ð5°yØ	‘D˜s¨BÐ5QÔRÐSØ	‘t BÐ-]Ô^Ð_Ø	‘t <Ð6PÔQÐRØ	‘d ,Ð5SÔTÐUØ	‘d 4Ð.eÔfÐgØ	‘t °Ð8UÔVÐWðCð ð Ð% x°Ð4ØÐ=¸zØ	‘dÐ LÔMÐNðLð ð Ð(¨+Ø	‘D˜jÔ)Ð*ð8ð ð Ð<¸kÈ2ÐNð;€÷B	$r   