+
    „WÝjDš  ã                  ó  a€ 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt R
 t]tR�tR R lt R R lt!R R lt"Rt#Rt$Rt%Rt&^<t'RR/R R llt(]PR                  ! R4      t*]PR                  ! R4      t+],! 4       t-R R lt.]PR                  ! R4      t/R R lt0R  R! lt1R" R# lt2R$R%R&R'R(R)R*R+R,R-R.R%R/R0R1R2R3R%R4R%R5R6R7R8/t3R9]4R:&   ]3Pk                  4        U Uu/ uF  w  rV Pm                  4       VbK  	  upp t7R; R< lt8R= R> lt9 ! R? R@4      t:]:! RAR&RBRC7      t;RDt<RE RF lt=]P|                  ! ]=RRG7      t?]P|                  ! ]=RDRG7      t@RH RI ltARJ RK ltBRL RM ltC]PR                  ! RN4      tDRO RP ltERQ RR ltFRS RT ltGRžRU RV lltHRW RX ltIRY RZ ltJR[ R\ ltKR] R^ ltLR_ R` ltM ! Ra Rb]N4      tORc tPRdR/Re Rf lltQ]PR                  ! Rg4      tRRh Ri ltSRŸtTR tUR¡tVR¢tWR£tXR¤tYRj Rk ltZRl Rm lt[R¥Rn Ro llt\Rp Rq lt]Rr Rs lt^Rt Ru lt_Rs`Rv]4Rw&   ]PÂ                  ! 4       tb]PÆ                  ! 4       tdRseRx Ry ltfRsgRz R{ lthR| ti^ sjR} R~ ltkR R€ ltlR� R‚ ltmRƒ R„ ltnR¦R… R† lltoR‡ Rˆ ltpR‰ RŠ ltqR‹ RŒ ltrR§R� RŽ llts ! R� R�4      ttR‘ R’ ltuR¨R“ R” lltvR§R•R/R– R— llltw]P|                  ! ]wRBR˜7      txR™ Rš ltyR› Rœ ltzR# u upp i )©a  Classic-CLI rendering helpers: reasoning-tag stripping, ANSI/skin colours, light-mode detection, markdown/final-content rendering, output-history replay, ``_cprint`` and the panel box/wrap helpers.

Split out of ``cli.py``; ``cli`` re-exports every public name and moved bodies late-bind
cli-level names through ``from cli import ...`` at call time so facade monkeypatch seams hold.
)ÚannotationsN)ÚcontextmanagerÚsuppress)Út)ÚTHINK_TAG_NAMES)Úformat_banner_version_label)ÚConsole)ÚText)ÚAnyc                 ó   € ^ RI p V # )z]Late import of the ``cli`` facade: mutable CLI module state (and its test seams) lives there.N©Úclir   s    ÚIC:\Users\johnn\AppData\Local\hermes\hermes-agent\hermes_cli\cli_render.pyÚ_clir      s
   € ãà€Jó    c               ó    € V ^8„  d   QhRRRR/# ©é   ÚtextÚstrÚreturn© )Úformats   "r   Ú__annotate__r   '   s   € ÷ ñ  ð ¨ñ r   c                ó  € ^ RI HpHp T pV F´  p\        P                  ! RV RV R2RV\        P
                  \        P                  ,          R7      p\        P                  ! RV R2RV\        P
                  \        P                  ,          R7      p\        P                  ! RV R2RV\        P                  R7      pK¶  	  V FG  p\        P                  ! R	V R
V R2RV\        P
                  \        P                  ,          R7      pKI  	  \        P                  ! RRV\        P
                  \        P                  ,          R7      p^ RIHpH	p VP	                  RV4      pVP	                  RV4      pVP                  4       # )u¨  Strip reasoning blocks (closed, unterminated, orphan-close) and leaked tool-call XML from display text.

Keep in sync with ``agent.agent_runtime_helpers.strip_think_blocks`` and the stream consumer's think-tag sets.

Also strips tool-call XML blocks some open models leak into visible content (``<tool_call>``,
``<function_calls>``, Gemma-style ``<function name="â€¦">â€¦</function>``). Ported from
openclaw/openclaw#67318.
)Ú_REASONING_TAGSÚ_TOOL_CALL_TAGSÚ<z>.*?</z>\s*Ú ©Úflagsz>.*$z</z<(?:[\w.-]+:)?z\b[^>]*>.*?</(?:[\w.-]+:)?zg(?:(?<=^)|(?<=[\n\r.!?:]))[ \t]*<function\b[^>]*\bname\s*=[^>]*>(?:(?:(?!</function>).)*)</function>\s*)Ú_STRAY_TOOL_CALL_CLOSER_PATTERNÚ_UNTERMINATED_TOOL_CALL_PATTERN)r   r   r   ÚreÚsubÚDOTALLÚ
IGNORECASEÚagent.agent_runtime_helpersr!   r"   Ústrip)r   r   r   ÚcleanedÚtagÚtc_tagr!   r"   s   &       r   Ú_strip_reasoning_tagsr,   '   s0  € ÷ 5Ø€GÛˆÜ—&’&˜A˜c˜U &¨¨¨TÐ2°B¸ÄrÇyÁyÔSU×S`ÑS`ÕG`ÔaˆÜ—&’&˜A˜c˜U $˜¨¨W¼B¿I¹IÌÏÉÕ<UÔVˆÜ—&’&˜B˜s˜e 4˜¨"¨g¼R¿]¹]ÔKŠñ ó "ˆÜ—&’&Ø˜f˜XÐ%?À¸xÀtÐLØ�œrŸy™y¬2¯=©=Õ8ô
Šñ "ô �fŠfØrØ
ˆGœ2Ÿ9™9¤r§}¡}Õ4ô€G÷
 mØ-×1Ñ1°"°gÓ>€GØ-×1Ñ1°"°gÓ>€GØ�=‰=‹?Ðr   c               ó    € V ^8„  d   QhRRRR/# ©r   Úcontentr
   r   r   r   )r   s   "r   r   r   G   s   € ÷ ñ ¨ð °ñ r   c           	     ón  € V f   R# \        V \        4      '       d   V # \        V \        4      '       ds   V  Uu. uFN  p\        V\        4      '       g   K  VP	                  R4      R8X  g   K3  \        VP	                  RR4      4      NKP  	  ppRP                  R V 4       4      # \        V 4      # u upi )Nr   Útyper   Ú
c              3  ó8   "  € T F  q'       g   K  Vx € K  	  R # 5i©Nr   )Ú.0Úps   & r   Ú	<genexpr>Ú-_assistant_content_as_text.<locals>.<genexpr>N   s   é € Ð/¡E˜q«QŸš£Eùs   ‚	�
)Ú
isinstancer   ÚlistÚdictÚgetÚjoin)r/   ÚpartÚpartss   &  r   Ú_assistant_content_as_textr@   G   s—   € Ø‚ÙÜ�'œ3×ÒØˆÜ�'œ4× Ò Ù7>Óx±w¨tÄ*ÈTÔSW×BXÔ*Ð]a×]eÑ]eÐflÓ]mÐqwÑ]wÔ*”�T—X‘X˜f bÓ)Ö*±wˆÐxØ�y‰yÑ/¡EÓ/Ó/Ð/Üˆw‹<Ðùò ys   ¹B2ÁB2Á.B2c               ó    € V ^8„  d   QhRRRR/# r.   r   )r   s   "r   r   r   R   s   € ÷ Fñ F #ð F¨#ñ Fr   c                ó.   € ^ RI HpHp V! V! V 4      4      # )é    )r@   r,   )r   r@   r,   )r/   r@   r,   s   &  r   Ú_assistant_copy_textrD   R   s   € ßEÙ Ñ!;¸GÓ!DÓEÐEr   z[1;38;2;255;215;0mz[1mú[0mr   ÚboldFc               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú	hex_colorr   rF   Úboolr   r   )r   s   "r   r   r   f   s&   € ÷ Iñ I˜Cð I¨$ð I¸3ñ Ir   c          	     óÀ   a € ^ RI HpHp V! S 4      o  V 3R lR
 4       w  rEpRV'       d   RMR RV RV RV R2	#   \        \        3 d    T'       d   Tu # R	u # i ; i)zYConvert '#RRGGBB' to a true-color ANSI escape, remapping dark-tuned colors in light mode.)Ú_ACCENT_ANSI_DEFAULTÚ_maybe_remap_for_light_modec              3  óN   <"  € T F  p\        SW^,            ^4      x € K  	  R# 5i©r   N)Úint)r5   ÚirH   s   & €r   r7   Ú_hex_to_ansi.<locals>.<genexpr>k   s$   øé € ÐB¹	°1”3�y  q¥5Ð)¨2×.Ð.»	ùs   ƒ"%z[z1;r   z38;2;Ú;Úmz[38;2;184;134;11m)é   é   é   )r   rK   rL   Ú
ValueErrorÚ
IndexError)rH   rF   rK   rL   ÚrÚgÚbs   f$     r   Ú_hex_to_ansir\   f   so   ø€ çEÙ+¨IÓ6€IðIÜB¹	ÓB‰ˆˆaØŸt‘t¨Ð,¨E°!°°A°a°S¸¸!¸¸AÐ>Ð>øÜœ
Ð#ô Iß'+Ð#ÒHÐ1HÒHðIús   “'; »AÁAÁAÁAz^(1|true|on|yes|y)$z^(0|false|off|no|n)$c               ó    € V ^8„  d   QhRRRR/# )r   Úhex_strr   r   zfloat | Noner   )r   s   "r   r   r   z   s   € ÷ :ñ : ð :¨ñ :r   c                ó*  € T ;'       g    RP                  4       P                  R4      p\        V4      ^8X  d   RP                  R V 4       4      p\        V4      ^8w  g;   \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   R#  \        VR,          ^4      \        VR	,          ^4      \        VR
,          ^4      rCpRT,          RT,          ,           RT,          ,           R,          #   \         d     R# i ; i)zDRec.709 luma in [0, 1] for '#RGB'/'#RRGGBB', or None when malformed.r   Ú#c              3  ó2   "  € T F  q^,          x € K  	  R# 5irN   r   ©r5   Úcs   & r   r7   Ú&_luminance_from_hex.<locals>.<genexpr>~   s   é € Ð%¡1˜a˜—E’E£1ùs   ‚c              3  ó*   "  € T F	  qR 9   x € K  	  R# 5i)Ú0123456789abcdefABCDEFNr   rb   s   & r   r7   rd      s   é € ÐGÁQÀÐ#;Ö;ÃQùs   ‚FTN:rC   r   N:r   é   N:rg   é   Ng¼–�z6Ë?g¥,Cëâæ?g]mÅþ²{²?g     ào@)r(   ÚlstripÚlenr=   ÚallrO   rW   )r^   ÚsrY   rZ   r[   s   &    r   Ú_luminance_from_hexrm   z   sÓ   € à	�ˆ�B×ÑÓ×&Ñ& sÓ+€AÜ
ˆ1ƒv�„{Ø�G‰GÑ%¡1Ó%Ó%ˆÜ
ˆ1ƒv�„{Ÿ#›#ÑGÁQÓGŸ#Ÿ#š#ÑGÁQÓG×GÒGÙðÜ�a˜•f˜b“/¤3 q¨¥v¨r£?´C¸¸#½À³Oˆaˆð �Q�J˜ !�Õ# f¨q¥jÕ0°EÕ9Ð9øô ô Úðús   Â8D ÄDÄDs   \x1b\[\?[0-9;]*cc               ó   € V ^8„  d   QhRR/# )r   r   z
str | Noner   )r   s   "r   r   r   ‹   s   € ÷ Iñ I ñ Ir   c            
     óº  € ^ RI Hp  \        P                  P	                  4       '       d%   \        P
                  P	                  4       '       g   R# \        ;QJ d    R R 4       F  '       g   K   RM	  RM! R R 4       4      '       d   R#  ^ RIp^ RIp^ RI	p\        P                  P                  4       pVP                  V4      p  TP                  T4        \        P
                  P+                  R4       \        P
                  P-                  4        \"        P$                  ! 4       R,           p	R	p
\"        P$                  ! 4       T	8  d�   TP                  T.. . T	\"        P$                  ! 4       ,
          4      w  p pT'       g   KW   \&        P(                  ! T^@4      pT'       g   M"Y«,          p
T P1                  T
4      '       g   K™   \2        P0                  ! R
T
4      pT'       gÓ    \        \        4      ;_uu_ 4        TP                  YBP                   T4       RRR4        \"        P$                  ! 4       R,           p\"        P$                  ! 4       T8  d]   TP                  T.. . T\"        P$                  ! 4       ,
          4      w  p pT'       d    \&        P(                  ! T^@4      '       d   Kt  R# R# R R lpT! TP5                  ^4      4      T! TP5                  ^4      4      T! TP5                  ^4      4      rþpRTR TR TR 2\        \        4      ;_uu_ 4        TP                  YBP                   T4       RRR4        \"        P$                  ! 4       R,           p\"        P$                  ! 4       T8  d\   TP                  T.. . T\"        P$                  ! 4       ,
          4      w  p pT'       d    \&        P(                  ! T^@4      '       d   Kt  # #   \         d     R# i ; i  \         dú     \        \        4      ;_uu_ 4        TP                  YBP                   T4       RRR4       M  + '       g   i     M; i \"        P$                  ! 4       R,           p\"        P$                  ! 4       T8  d]   TP                  T.. . T\"        P$                  ! 4       ,
          4      w  p pT'       d    \&        P(                  ! T^@4      '       d   Kt  R# R#   \         d     R# i ; ii ; i  \         dú     \        \        4      ;_uu_ 4        TP                  YBP                   T4       RRR4       M  + '       g   i     M; i \"        P$                  ! 4       R,           p\"        P$                  ! 4       T8  d]   TP                  T.. . T\"        P$                  ! 4       ,
          4      w  p pT'       d    \&        P(                  ! T^@4      '       d   Kt  R# R#   \         d     R# i ; ii ; i  \.         d     EKD  i ; i  + '       g   i     ELý; i  \         d     R# i ; i  + '       g   i     ELý; i  \         d     # i ; i  \        \        4      ;_uu_ 4        TP                  YBP                   T4       RRR4       M  + '       g   i     M; i \"        P$                  ! 4       R,           p\"        P$                  ! 4       T8  d\   TP                  T.. . T\"        P$                  ! 4       ,
          4      w  p pT'       d    \&        P(                  ! T^@4      '       d   Kt  i i   \         d     i i ; i; i)uE  Terminal background via OSC 11 as "#RRGGBB", or None.

Fenced with a DA1 sentinel (``ESC[c``): terminals answer in order and virtually all
answer DA1, so its reply proves our OSC 11 was processed â€” otherwise a late reply
leaks into prompt_toolkit's stdin as typed text. Skipped over SSH (round-trip too
slow; a late BEL reads as Ctrl+G). A 50 ms drain after TCSAFLUSH catches stragglers.

After the main read + TCSAFLUSH, a short drain window (50 ms) catches late-arriving bytes that slipped
past the flush â€” a race observed on VPS and container terminals under load (#40250).
)Ú_DA1_REPLY_RENc              3  ó`   "  € T F$  p\         P                  P                  V4      x € K&  	  R # 5ir4   )ÚosÚenvironr<   )r5   Úvs   & r   r7   Ú*_query_osc11_background.<locals>.<genexpr>™   s"   é € Ð
RÑ&Q Œ2�:‰:�>‰>˜!×ÐÓ&Qùs   ‚,.TFgš™™™™™©?z]11;?\[cg      ð?r   s0   rgb:([0-9a-fA-F]+)/([0-9a-fA-F]+)/([0-9a-fA-F]+)c               ó    € V ^8„  d   QhRRRR/# )r   ÚhÚbytesr   rO   r   )r   s   "r   r   Ú-_query_osc11_background.<locals>.__annotate__Ã   s   € ÷ 	Añ 	A�Eð 	A˜cñ 	Ar   c                óŽ   € \        V ^4      p\        V 4      ^,          pV'       d   V^ÿ,          ^V,          ^,
          ,          # ^ # )é   )rO   rj   )rw   rt   Úbitss   &  r   ÚnormÚ%_query_osc11_background.<locals>.normÃ   s8   € Ü�A�r“
ˆAÜ�q“6˜A•:ˆDß59�A˜•G ! t¥)¨q¥Õ1Ð@¸qÐ@r   r`   Ú02X)ÚSSH_CONNECTIONÚ
SSH_CLIENTÚSSH_TTY)r   rp   ÚsysÚstdinÚisattyÚstdoutÚanyÚselectÚtermiosÚttyÚfilenoÚ	tcgetattrÚ	ExceptionÚ	setcbreakr   Ú	tcsetattrÚ	TCSAFLUSHÚtimeÚ	monotonicrr   ÚreadÚwriteÚflushÚOSErrorÚsearchr#   Úgroup)rp   rˆ   r‰   rŠ   ÚfdÚoldÚdrain_deadlinerY   Ú_ÚdeadlineÚbufÚchunkrS   r}   rZ   r[   s                   r   Ú_query_osc11_backgroundr    ‹   sg  € õ "Ü�9‰9×Ñ×Ò¤S§Z¡Z×%6Ñ%6×%8Ò%8Ùß
ƒsÑ
RÑ&QÓ
R‡s‡s‚sÑ
RÑ&QÓ
R×RÒRÙðÛÛÛÜ�Y‰Y×ÑÓˆØ×Ñ Ó#ˆð1ð	Ø�M‰M˜"Ôð	ä�J‰J×ÑÐ4Ô5Ü�J‰J×ÑÔô —>’>Ó# cÕ)ˆØˆÜ�nŠnÓ Ô)Ø—m‘m R D¨"¨b°(¼T¿^º^Ó=MÕ2MÓN‰GˆAˆq�!ßÙðÜŸš  B›�÷ ØØ�LˆCØ×#Ñ# C×(Ô(Øä�IŠIÐJÈCÓPˆßØô ”i× Õ Ø×Ñ˜b×"3Ñ"3°SÔ9÷ !ð	Ü!Ÿ^š^Ó-°Õ4ˆNÜ—.’.Ó" ^Ô3Ø Ÿ-™-¨¨¨b°"°nÄtÇ~Â~ÓGWÕ6WÓX‘��1�aß¤§¢¨¨B§¤Ùñ 4õ	Añ �q—w‘w˜q“zÓ"¡D¨¯©°«Ó$4±d¸1¿7¹7À1»:Ó6FˆaˆØ�1�S�'˜!˜C˜  3 Ð(ô ”i× Õ Ø×Ñ˜b×"3Ñ"3°SÔ9÷ !ð	Ü!Ÿ^š^Ó-°Õ4ˆNÜ—.’.Ó" ^Ô3Ø Ÿ-™-¨¨¨b°"°nÄtÇ~Â~ÓGWÕ6WÓX‘��1�aß¤§¢¨¨B§¤Øð 4øô] ô Úðûô
 ô 	ØôH ”i× Õ Ø×Ñ˜b×"3Ñ"3°SÔ9÷ !× × Ð úð	Ü!Ÿ^š^Ó-°Õ4ˆNÜ—.’.Ó" ^Ô3Ø Ÿ-™-¨¨¨b°"°nÄtÇ~Â~ÓGWÕ6WÓX‘��1�aß¤§¢¨¨B§¤Ùñ 4øô ô 	Úð	úð[	ûô ô 	Øô< ”i× Õ Ø×Ñ˜b×"3Ñ"3°SÔ9÷ !× × Ð úð	Ü!Ÿ^š^Ó-°Õ4ˆNÜ—.’.Ó" ^Ô3Ø Ÿ-™-¨¨¨b°"°nÄtÇ~Â~ÓGWÕ6WÓX‘��1�aß¤§¢¨¨B§¤Ùñ 4øô ô 	Úð	úðO	ûô ô Ûðú÷( !× Ð ûô ô 	Úð	ú÷ !× Ð ûô ô 	Ùð	ûô ”i× Õ Ø×Ñ˜b×"3Ñ"3°SÔ9÷ !× × Ð úð	Ü!Ÿ^š^Ó-°Õ4ˆNÜ—.’.Ó" ^Ô3Ø Ÿ-™-¨¨¨b°"°nÄtÇ~Â~ÓGWÕ6WÓX‘��1�aß¤§¢¨¨B§¤Øð 4øô ô 	Ùð	ýso  Â;O' ÃO9 Ã=T  ÄA2Y% ÆY% ÆX Æ'Y% Æ/Y% ÇY% È	XÈ/A0X. Ê X. ËAY% Ì/Y ÍA0YÏYÏ'O6Ï5O6Ï9S=ÐY% ÐQÑQ	ÑA0S* ÓS* Ó*S9Ó8S9Ó<S=Ó=Y% Ô XÔY% Ô#U	Õ	U	ÕA0W1 ×W1 ×1X ×?X ØXØY% ØXØY% ØXØY% ØX+	Ø.X=Ø<X=Ù YÙY"Ù!Y"Ù%]Ù=Z#	Ú	]Ú#Z3Ú.]Ú7A0]	Ü(]	Ý]Ý	]Ý]Ý]Ý]c               ó    € V ^8„  d   QhRRRR/# )r   r™   rO   r   rI   r   )r   s   "r   r   r   ×   s   € ÷ ñ  ð ¨ñ r   c                óž  €  ^ RI pVP                  V 4      pT^,          pY1P                  TP                  ,          ,          '       g   R# Y1P                  TP                  ,          TP
                  ,          TP                  ,          ( ,          T^&   T^ ,          TP                  TP                  ,          TP                  ,          TP                  ,          TP                  ,          ( ,          T^ &   ^T^,          TP                  &    TP                  YP                  T4       R#   \         d     R# i ; i  \         d     R# i ; i)aA  Re-apply raw mode on *fd* when termios drifted back to cooked (POSIX only).

A lost ``run_in_terminal`` cooked_mode() restore makes the kernel line-buffer every
keystroke and the CLI looks dead. Mirrors prompt_toolkit's raw_mode flag surgery in
place. Returns True when healed; False when already raw or not inspectable.
NFT)r‰   rŒ   r�   ÚICANONÚECHOÚIEXTENÚISIGÚIXONÚIXOFFÚICRNLÚINLCRÚIGNCRÚVMINr�   ÚTCSANOW)r™   r‰   ÚattrsÚlflags   &   r   Ú_heal_cooked_mode_driftr°   ×   s  € ðÛØ×!Ñ! "Ó%ˆð �!�H€EØ—^‘^ g§l¡lÕ2×3Ô3ÙØŸ™¨¯©Õ6¸¿¹ÕGÈ'Ï,É,ÕVÐWÕW€Eˆ!�HØ�Q�x˜GŸL™L¨7¯=©=Õ8¸7¿=¹=ÕHÈ7Ï=É=ÕXÐ[b×[hÑ[hÕhÐiÕi€Eˆ!�HØ€Eˆ!…HˆW�\‰\ÑðØ×Ñ˜"Ÿo™o¨uÔ5ñ øô ô Úðûô ô Úðús#   ‚D+ ÄD= Ä+D:Ä9D:Ä=EÅEc               ó   € V ^8„  d   QhRR/# ©r   r   rI   r   )r   s   "r   r   r   ð   s   € ÷ Zñ Z Tñ Zr   c                 ó  € ^ RI Hp HpHpHpHp R F|  p\        P                  P                  V4      ;'       g    RP                  4       P                  4       pVP                  V4      '       d    R# V P                  V4      '       g   K{   R# 	  \        P                  P                  R4      ;'       g    RP                  4       P                  4       pVR8X  d   R# VR8X  d   R# T! \        P                  P                  R4      ;'       g    R4      pVe   VR	8¬  # \        P                  P                  R
4      ;'       g    RP                  4       P                  R4      R,          p	V	P                  4       '       d*   ^ \        V	4      u;8:  d   ^8  d   M M\        V	4      R9   # V! 4       p
V
'       d   V! V
4      pVe   VR	8¬  # \        P                  P                  R4      ;'       g    RP                  4       V9   # )zNThe detection ladder documented above; may raise (caller maps errors to dark).)Ú	_FALSE_REÚ_LIGHT_DEFAULT_TERM_PROGRAMSÚ_TRUE_RErm   r    r   TFÚHERMES_TUI_THEMEÚlightÚdarkÚHERMES_TUI_BACKGROUNDg      à?Ú	COLORFGBGrR   ÚTERM_PROGRAM)ÚHERMES_LIGHTÚHERMES_TUI_LIGHTéÿÿÿÿ>   é   é   )r   r´   rµ   r¶   rm   r    rr   rs   r<   r(   ÚlowerÚmatchÚsplitÚisdigitrO   )r´   rµ   r¶   rm   r    Úvarrt   ÚthemeÚbg_lumÚlastÚbg_colorÚlums               r   Ú_detect_light_mode_uncachedrÌ   ð   s�  € çsÕsÛ3ˆÜ�Z‰Z�^‰^˜CÓ ×&Ð& B×-Ñ-Ó/×5Ñ5Ó7ˆØ�>‰>˜!×ÒÚØ�?‰?˜1×ÔÚñ 4ô �Z‰Z�^‰^Ð.Ó/×5Ð5°2×<Ñ<Ó>×DÑDÓF€EØ�ÔÙØ�„ÙÙ ¤§¡§¡Ð0GÓ!H×!NÐ!NÈBÓO€FØÒØ˜‰}ÐÜ�J‰J�N‰N˜;Ó'×-Ð-¨2×4Ñ4Ó6×<Ñ<¸SÓAÀ"ÕE€DØ‡|�|‡~‚~˜!œs 4›yÖ-¨2×-Ü�4‹y˜GÑ#Ð#Ù&Ó(€HßÙ! (Ó+ˆØŠ?Ø˜#‘:ÐÜ�J‰J�N‰N˜>Ó*×0Ð0¨b×7Ñ7Ó9Ð=YÑYÐYr   z#FFF8DCz#1A1A1Aú#FFD700z#9A6B00ú#FFBF00z#8A5A00ú#B8860Bz#5C4500z#DAA520z#6B4F00z#F1E6CFz#c9d1d9z#24292Fz#EAF7FFz#0F1B26z#F5F5F5z#FFF0D4z#CD7F32z#8A4F1Az#FFEFB5z#3A2A00zdict[str, str]Ú_LIGHT_MODE_REMAPc               ó    € V ^8„  d   QhRRRR/# )r   rH   r   r   r   )r   s   "r   r   r     s   € ÷ Eñ E¨3ð E°3ñ Er   c                ó²   € ^ RI HpHp V! 4       '       g   V # V '       d   V P                  R4      '       g   V # VP	                  V P                  4       V 4      # )zJIn light mode, remap a dark-tuned color to its higher-contrast equivalent.)Ú_LIGHT_MODE_REMAP_UPPERÚ_detect_light_moder`   )r   rÓ   rÔ   Ú
startswithr<   Úupper)rH   rÓ   rÔ   s   &  r   rL   rL     sG   € ç?Ù×ÒØÐß˜I×0Ñ0°×5Ò5ØÐØ"×&Ñ& y§¡Ó'8¸)ÓDÐDr   c               ó   € V ^8„  d   QhRR/# ©r   r   ÚNoner   )r   s   "r   r   r   #  s   € ÷ 8ñ 8 tñ 8r   c                 ó¶   aa€ ^ RI Ho  ^ RIHp  \        T RR4      '       d   R# T P                  oRTT3R llpYn        RT n        R#   \         d     R# i ; i)	zaWrap SkinConfig.get_color so EVERY skin color read goes through the light-mode remap. Idempotent.)rL   )Ú
SkinConfigNÚ!_hermes_light_mode_hook_installedFc                óN   <€ S! WV4      p S! V4      #   \          d    Tu # i ; ir4   )r�   )ÚselfÚkeyÚfallbackÚvaluerL   Ú_orig_get_colors   &&& €€r   Ú_wrapped_get_colorÚ9_install_skin_light_mode_hook.<locals>._wrapped_get_color.  s3   ø€ Ù ¨8Ó4ˆð	Ù.¨uÓ5Ð5øÜô 	ØŠLð	ús   Œ ”$£$T©r   )r   rL   Úhermes_cli.skin_enginerÛ   r�   ÚgetattrÚ	get_colorrÜ   )rÛ   rã   rL   râ   s     @@r   Ú_install_skin_light_mode_hookré   #  s\   ù€ å/ðÝ5ô ˆzÐ>À×FÒFÙØ ×*Ñ*€O÷ð ð .ÔØ37€JÖ0øô ô Úðús   ŠA	 Á	AÁAc                  ób   € ] tR tRtRtRRR/R R llltR R ltR	 R
 ltR R ltR R lt	Rt
R# )Ú_SkinAwareAnsii9  z\Lazy ANSI escape resolved from the skin on first use; ``.reset()`` after a ``/skin`` switch.rF   Fc               ó$   € V ^8„  d   QhRRRRRR/# )r   Úskin_keyr   Úfallback_hexrF   rI   r   )r   s   "r   r   Ú_SkinAwareAnsi.__annotate__<  s!   € ÷ (ñ ( ð (°Cð (Èdñ (r   c               	ó8   € Wn         W n        W0n        R V n        R # r4   )Ú	_skin_keyÚ_fallback_hexÚ_boldÚ_cached)rÞ   rí   rî   rF   s   &&&$r   Ú__init__Ú_SkinAwareAnsi.__init__<  s   € Ø!ŒØ)ÔØŒ
Ø#'ˆŽr   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   rï   B  s   € ÷ ñ ˜ñ r   c                	ój  € ^ RI Hp V P                  fV    ^ RIHp V! V! 4       P                  V P                  V P                  4      V P                  R7      V n        V P                  # V P                  #   \         d2    T! T P                  T P                  R7      T n         T P                  # i ; i)rC   )r\   ©Úget_active_skin©rF   )
r   r\   rô   ræ   rû   rè   rñ   rò   ró   r�   )rÞ   r\   rû   s   &  r   Ú__str__Ú_SkinAwareAnsi.__str__B  s’   € Ý$Ø�<‰<ÒðQÝBÙ+Ù#Ó%×/Ñ/°·±À×@RÑ@RÓSØŸ™ô �”ð �|‰|Ðˆt�|‰|Ðøô ô QÙ+¨D×,>Ñ,>ÀTÇZÁZÔP�•Ø�|‰|ÐðQús   –AA6 Á6.B2Â1B2c               ó    € V ^8„  d   QhRRRR/# ©r   Úotherr   r   r   )r   s   "r   r   rï   O  s   € ÷ !ñ !˜Sð ! Sñ !r   c                	ó&   € \        V 4      V,           # r4   ©r   ©rÞ   r  s   &&r   Ú__add__Ú_SkinAwareAnsi.__add__O  s   € Ü�4‹y˜5Õ Ð r   c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   rï   R  s   € ÷ !ñ !˜cð ! cñ !r   c                	ó&   € V\        V 4      ,           # r4   r  r  s   &&r   Ú__radd__Ú_SkinAwareAnsi.__radd__R  s   € Ø”s˜4“yÕ Ð r   c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   rï   U  s   € ÷ ñ �tñ r   c                ó   € RV n         R# )z1Clear cache so the next access re-reads the skin.N)rô   )rÞ   s   &r   ÚresetÚ_SkinAwareAnsi.resetU  s	   € àˆŽr   )ró   rô   rò   rñ   N)rÍ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rõ   rý   r  r	  r  Ú__static_attributes__r   r   r   rë   rë   9  s0   † Ùfñ(ÐUZ÷ (ð (õõ!õ!÷ñ r   rë   Úresponse_borderTrü   z[2;3mc               ó$   € V ^8„  d   QhRRRRRR/# )r   rl   r   Úsgrr   r   )r   s   "r   r   r   a  s!   € ÷ ñ �ð ˜3ð  3ñ r   c                ó¨   €  \         P                  P                  4       '       d   V V  R2# \        V 4      #   \         d    \        T 4      u # i ; i)zMWrap *s* in an SGR attribute when stdout is a real TTY; plain text otherwise.rE   )rƒ   r†   r…   r   r�   )rl   r  s   &&r   Ú	_tty_wrapr  a  sK   € ðÜ%(§Z¡Z×%6Ñ%6×%8Ò%8�#��q�c˜Ð!ÐD¼cÀ!»fÐDøÜô Ü�1‹vŠðús   ‚#8 ¦8 ­
8 ¸AÁA)r  c               ó   € V ^8„  d   QhRR/# rø   r   )r   s   "r   r   r   o  s   € ÷ ñ �Sñ r   c                 ób   €  ^ RI Hp  V ! 4       P                  RR4      #   \         d     R# i ; i)z@Return the active skin accent color for legacy CLI output lines.rú   Ú	ui_accentrÎ   )ræ   rû   rè   r�   rú   s    r   Ú_accent_hexr  o  s2   € ðÝ:ÙÓ ×*Ñ*¨;¸	ÓBÐBøÜô Úðús   ‚ Ÿ.­.c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   Ú	_RichTextr   )r   s   "r   r   r   x  s   € ÷ +ñ +˜sð + yñ +r   c                óB   € \         P                  ! T ;'       g    R4      # )zMRich Text from ANSI output; literal ``[brackets]`` are not treated as markup.r   )r  Ú	from_ansi)r   s   &r   Ú_rich_text_from_ansir"  x  s   € ä×Ò˜tŸz˜z rÓ*Ð*r   c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   }  s   € ÷ ñ  ð ¨ñ r   c                ó˜  € ^ RI Hp T! T ;'       g    R4      P                  p\        P                  ! RRV\        P
                  R7      p\        P                  ! RRV\        P
                  R7      p\        P                  ! RRV\        P
                  R7      p\        P                  ! RRV4      p\        P                  ! RR	V4      p\        P                  ! R
R	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RR	V4      p\        P                  ! RRV4      pVP                  R4      # )z;Best-effort markdown marker removal for plain-text display.)r"  r   z^\s{0,3}(?:[-_]\s*){3,}$r   z^\s{0,3}(?:\*\s*){3}\s*$z^\s{0,3}#{1,6}\s+z(```+|~~~+)z	`([^`]*)`z\1z!\[([^\]]*)\]\([^\)]*\)z\[([^\]]+)\]\([^\)]*\)z\*\*\*([^*]+)\*\*\*z(?<!\w)___([^_]+)___(?!\w)z\*\*([^*]+)\*\*z(?<!\w)__([^_]+)__(?!\w)z\*([^\s*][^*]*?[^\s*])\*z(?<!\w)_([^_]+)_(?!\w)z~~([^~]+)~~z\n{3,}ú

r2   )r   r"  Úplainr#   r$   Ú	MULTILINEr(   )r   r"  r&  s   &  r   Ú_strip_markdown_syntaxr(  }  sU  € å(Ù  § ¨Ó,×2Ñ2€Eä�FŠFÐ.°°EÄÇÁÔN€EÜ�FŠFÐ.°°EÄÇÁÔN€EÜ�FŠFÐ'¨¨U¼"¿,¹,ÔG€Eä�FŠF�> 2 uÓ-€EÜ�FŠF�< ¨Ó.€EÜ�FŠFÐ-¨u°eÓ<€EÜ�FŠFÐ,¨e°UÓ;€EÜ�FŠFÐ)¨5°%Ó8€EÜ�FŠFÐ0°%¸Ó?€EÜ�FŠFÐ% u¨eÓ4€EÜ�FŠFÐ.°°uÓ=€Eä�FŠFÐ.°°uÓ=€EÜ�FŠFÐ,¨e°UÓ;€EÜ�FŠF�> 5¨%Ó0€EÜ�FŠF�9˜f eÓ,€EØ�;‰;�tÓÐr   z)(?i)(?:\b[a-z]:\\|\\\\)[^\s`]*\\\.[^\s`]*c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   ™  s   € ÷ 	Añ 	A°cð 	A¸cñ 	Ar   c                óN   € ^ RI Hp RV 9  d   V # R R lpVP                  W 4      # )z`Double the ``\`` before hidden dirs in Windows paths: CommonMark reads ``\.`` as an escaped dot.)Ú!_WINDOWS_PATH_WITH_DOT_SEGMENT_REz\.c               ó    € V ^8„  d   QhRRRR/# )r   rÃ   zre.Match[str]r   r   r   )r   s   "r   r   ÚA_preserve_windows_dot_segments_for_markdown.<locals>.__annotate__Ÿ  s   € ÷ Cñ C˜ð C¨#ñ Cr   c                óP   € \         P                  ! R RV P                  ^ 4      4      # )z(?<!\\)\\(?=\.)z\\\\)r#   r$   r˜   )rÃ   s   &r   Ú_protectÚ=_preserve_windows_dot_segments_for_markdown.<locals>._protectŸ  s   € Ü�vŠvÐ(¨'°5·;±;¸q³>ÓBÐBr   )r   r+  r$   )r   r+  r/  s   &  r   Ú+_preserve_windows_dot_segments_for_markdownr1  ™  s+   € å5Ø�DÔØˆõCð -×0Ñ0°Ó@Ð@r   c               ó   € V ^8„  d   QhRR/# ©r   r   rO   r   )r   s   "r   r   r   ¥  s   € ÷ ñ ˜3ñ r   c                 óh   €  \         P                  ! R4      P                  #   \         d     ^P# i ; i)éP   ©r5  é   )ÚshutilÚget_terminal_sizeÚcolumnsr�   r   r   r   Ú_terminal_columnsr;  ¥  s0   € ðÜ×'Ò'¨Ó1×9Ñ9Ð9øÜô Úðús   ‚" ¢1°1c               ó   € V ^8„  d   QhRR/# r3  r   )r   s   "r   r   r   ¬  s   € ÷ ?ñ ? sñ ?r   c                 ób   € ^ RI Hp Hp \        ^V! 4       \	        V 4      ,
          ^,
          4      # )zODisplay cells inside the streamed response box (small margin for resize races).©Ú_STREAM_PADr;  )r   r?  r;  Úmaxrj   r>  s     r   Ú_terminal_width_for_streamingrA  ¬  s%   € ç2ÜˆrÑ$Ó&¬¨[Ó)9Õ9¸AÕ=Ó>Ð>r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   Úmoder   )r   s   "r   r   r   ²  s   € ÷ ñ ¨#ð °Sñ r   c                ó”  € ^ RI HpHpHpHpHp ^ RIHp \        ^V! 4       ^,
          4      p\        T;'       g    R4      P                  4       P                  4       p	V	R8X  d   \        V! V! V 4      V4      4      # V	R8X  d   T! T ;'       g    R4      # T! T ;'       g    R4      P                  p
V! V
4      p
V! W¨4      p
V! V
4      # )zGRender final assistant content as markdown, stripped text, or raw text.)r1  r"  r(  r;  Úrealign_markdown_tables)ÚMarkdownÚrenderr(   Úrawr   )r   r1  r"  r(  r;  rE  Úrich.markdownrF  r@  r   r(   rÂ   r  r&  )r   rC  r1  r"  r(  r;  rE  rF  Úpanel_widthÚnormalized_moder&  s   &&         r   Ú_render_final_assistant_contentrL  ²  s¼   € ÷ Zõ  ZÝ&ô �bÑ+Ó-°Õ1Ó2€Kä˜$×*Ð* (Ó+×1Ñ1Ó3×9Ñ9Ó;€OØ˜'Ô!äÑ0Ñ1GÈÓ1MÈ{Ó[Ó\Ð\Ø˜%ÔÙ# D§J J¨BÓ/Ð/ñ ! § ¨Ó,×2Ñ2€EÙ7¸Ó>€EÙ# EÓ7€EÙ�E‹?Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úresponser   Úresultzdict | Noner   r   )r   s   "r   r   r   È  s&   € ÷ 	Cñ 	C¨Cð 	C¸ð 	CÈñ 	Cr   c                óö   € V'       d   VP                  R4      '       g   R# VP                  R4      ;'       g    RpV'       d&   V P                  V4      '       d   V \        V4      R # R\        R4       RV  2# )zkText still to display after a streamed response transform: the suffix, or the whole response when replaced.Úresponse_transformedr   Úpre_transform_responseNr2   zcli.render.response_transformed)r<   rÕ   rj   r   )rN  rO  Úoriginals   && r   Ú_post_stream_transform_outputrT  È  sl   € ç˜Ÿ™Ð$:×;Ò;Ùà�z‰zÐ2Ó3×9Ð9°r€Hß�H×'Ñ'¨×1Ò1Øœ˜H›˜Ð'Ð'à”Ð3Ó4Ð5°R¸°zÐBÐBr   c               ó   € V ^8„  d   QhRR/# r3  r   )r   s   "r   r   r   Ô  s   € ÷ ñ ¨3ñ r   c                ó^   €  \        ^
\        V 4      4      #   \        \        3 d     ^È# i ; i)é
   )r@  rO   Ú	TypeErrorrW   )rá   s   &r   Ú_coerce_output_history_limitrY  Ô  s/   € ðÜ�2”s˜5“zÓ"Ð"øÜ”zÐ"ô Úðús   ‚ —,«,c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   r   Û  s   € ÷ ñ ˜tñ r   c                 ó`   € \        4       P                  P                  4        \        R 4       R # r4   )r   Ú_OUTPUT_HISTORYÚclearÚ_set_chrome_floorr   r   r   Ú_clear_output_historyr_  Û  s   € ÜƒF×Ñ× Ñ Ô"Ü�dÖr   c               ó   € V ^8„  d   QhRR/# r²   r   )r   s   "r   r   r   à  s   € ÷ }ñ } 4ñ }r   c                 ó®   € \        4       P                  ;'       d;    \        4       P                  '       * ;'       d    \        4       P                  '       * # r4   )r   Ú_OUTPUT_HISTORY_ENABLEDÚ_OUTPUT_HISTORY_REPLAYINGÚ_OUTPUT_HISTORY_SUPPRESSEDr   r   r   Ú_output_history_recordingre  à  s8   € Ü‹6×)Ñ)×|Ð|´$³&×2RÑ2RÔ.R×|Ð|Ô[_Ó[a×[|Ñ[|ÔW|Ð|r   c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   r   ä  s   € ÷ -ñ -¨4ñ -r   c                óv   € ^ RI Hp V! 4       '       d&   \        4       P                  P	                  V 4       R# R# )rC   ©re  N)r   re  r   r\  Úappend)Úentryre  s   & r   Ú_record_output_history_entryrk  ä  s)   € Ý-Ù ×"Ò"Ü‹×Ñ×%Ñ% eÖ,ñ #r   c                  ó   € ] tR tRtRtRtRtR# )Ú_PaintedLineiê  z¬A recorded output line tagged with the terminal ``width`` it was painted at: a terminal
that does not reflow keeps the rows it wrapped into then, whatever the width is now.Nr   )r  r  r  r  r  Úwidthr  r   r   r   rm  rm  ê  s   † ñ\à„Er   rm  c                 ó   € ^ RI Hp  V ! 4       p Ve%   VP                  P                  4       P                  # \
        P                  ! \        P                  P                  4       4      P                  #   \        \        \        3 d     R# i ; i)zDThe width the terminal soft-wraps a print at right now, or ``None``.©Úget_app_or_noneN)Úprompt_toolkit.applicationrq  ÚoutputÚget_sizer:  rr   r9  rƒ   Ú
__stdout__r‹   ÚAttributeErrorr–   rW   ©rq  Úapps     r   Ú_painted_columnsry  ð  sm   € å:Ù
Ó
€CðØŠ?Ø—:‘:×&Ñ&Ó(×0Ñ0Ð0Ü×#Ò#¤C§N¡N×$9Ñ$9Ó$;Ó<×DÑDÐDøÜœG¤ZÐ0ô Úðús   �'A3 ·;A3 Á3BÂBÚforcec               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   rz  rI   r   rÙ   r   )r   s   "r   r   r   ü  s!   € ÷ -ñ - ð -°ð -Àñ -r   c               óD  € ^ RI Hp V'       g   V! 4       '       d…   \        4       p. p\        V 4      P	                  RR4      P                  R4       F%  p\        V4      pW5n        VP                  V4       K'  	  \        4       P                  P                  V4       R# R# )z¢Record ``text`` as painted now. ``force`` skips the recording check when the caller
made it at print-request time (the print itself was deferred to the app loop).rh  Úr   r2   N)r   re  ry  r   ÚreplacerÄ   rm  rn  ri  r   r\  Úextend)r   rz  re  rn  ÚlinesÚlines   &$    r   Ú_record_output_historyr‚  ü  s€   € õ .ßÑ)×+Ò+Ü Ó"ˆØˆô ˜“I×%Ñ% d¨BÓ/×5Ñ5°dÖ;ˆDÜ Ó%ˆDØŒJØ�L‰L˜Öñ <ô 	‹×Ñ×%Ñ% eÖ,ñ ,r   zC\x1b(?:\[[0-?]*[ -/]*[@-~]|\][^\x07\x1b]*(?:\x07|\x1b\\)|[@-Z\\-_])c               ó$   € V ^8„  d   QhRRRRRR/# )r   r�  r   ÚcellsrO   r   r   )r   s   "r   r   r     s!   € ÷ ñ ˜3ð  sð ¨sñ r   c                ó”  € ^ RI Hp . ^ rC. \        P                  V 4      ORN F’  pV'       d   VP	                  4       M
\        V 4      pWV  F+  pV^ 8”  d   W! V4      ,          pK  VP                  V4       K-  	  V'       g   Kc  VP                  VP                  4       4       VP                  4       pK”  	  RP                  V4      # )z```line`` without its first ``cells`` visible cells; escape sequences are kept for their styling.)Ú
get_cwidthNr   )
Úprompt_toolkit.utilsr†  Ú_ANSI_SEQUENCE_REÚfinditerÚstartrj   ri  r˜   Úendr=   )r�  r„  r†  ÚoutÚposrÃ   r‹  Úchs   &&      r   Ú_ansi_drop_cellsr�    s¡   € å/Ø�1ˆØ:Ô$×-Ñ-¨dÓ3Ð:°TÓ:ˆß$ˆe�k‰kŒm¬#¨d«)ˆØ˜3“-ˆBØ�qŒyØ˜ B›Õ'’à—
‘
˜2–ñ	  ÷
 ‰5Ø�J‰J�u—{‘{“}Ô%Ø—)‘)“+ŠCñ ;ð �7‰7�3‹<Ðr   c               ó   € V ^8„  d   QhRR/# )r   r   zbool | Noner   )r   s   "r   r   r   2  s   € ÷ ñ ˜;ñ r   c                 óü  a€ \         P                  oSP                  RR4      P                  4       p V P	                  \
        4      '       d   R# V P	                  \        4      '       d   R# \        ;QJ d#    V3R l\         4       F  '       g   K   RM	  RM! V3R l\         4       4      '       d   R# \        ;QJ d#    V3R l\         4       F  '       g   K   RM	  RM! V3R l\         4       4      '       d   R# \        ;QJ d#    V3R l\         4       F  '       g   K   RM	  RM! V3R l\         4       4      '       g   SP                  R4      \        9   d   R# SP                  R	4      R
8X  d   R# R# )u�  Whether the terminal re-wraps the rows it shows when its width changes: ``True``
(tmux, GNU screen, VTE, kitty, iTerm2, Terminal.app, WezTerm, Alacritty, Windows Terminal â€”
a shrink pushes the rows that grew into scrollback), ``False`` (xterm, st, urxvt, mosh, the
Linux console keep every row in place, truncated) or ``None`` when nothing says (xterm or
iTerm2 over ssh both look like ``TERM=xterm-256color``).ÚTERMr   TFc              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir4   ©r<   ©r5   ÚnameÚenvs   & €r   r7   Ú$_terminal_reflows.<locals>.<genexpr>>  s   øé € Ð
6Ñ%5˜Tˆ3�7‰7�4�=ˆ=Ó%5ùó   ƒ!c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir4   r”  r•  s   & €r   r7   r˜  @  s   øé € Ð
4¡^˜Tˆ3�7‰7�4�=ˆ=£^ùr™  c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir4   r”  r•  s   & €r   r7   r˜  B  s   øé € Ð
1¡[˜Tˆ3�7‰7�4�=ˆ=£[ùr™  r¼   ÚLC_TERMINALÚiTerm2N)rr   rs   r<   rÂ   rÕ   Ú_REFLOW_TERM_PREFIXESÚ_NO_REFLOW_TERM_PREFIXESr‡   Ú_MULTIPLEXER_ENVÚ_NO_REFLOW_ENVÚ_REFLOW_ENVÚ_REFLOW_TERM_PROGRAMS)Útermr—  s    @r   Ú_terminal_reflowsr¥  2  sã   ø€ ô �*‰*€CØ�7‰7�6˜2Ó×$Ñ$Ó&€DØ‡�Ô,×-Ò-ÙØ‡�Ô/×0Ò0Ùß
ƒsÔ
6Õ%5Ó
6‡s‡s‚sÔ
6Õ%5Ó
6×6Ò6Ùß
ƒsÔ
4¥^Ó
4‡s‡s‚sÔ
4¥^Ó
4×4Ò4Ùß
ƒsÔ
1¥[Ó
1‡s‡s‚sÔ
1¥[Ó
1×1Ò1°S·W±W¸^Ó5LÔPeÔ5eÙØ
‡w�wˆ}Ó Ô)ÙÙr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r�  r   r:  rO   r   r   )r   s   "r   r   r   I  s&   € ÷ Jñ J�Sð J 3ð J¨3ñ Jr   c                óŠ   € ^ RI HpHpHp V! V! V! V 4      4      4      pV'       d   V^ 8”  d   \	        ^V) V,          ) 4      # ^# )zCRows ``line`` fills when the terminal soft-wraps it at ``columns``.)ÚANSIÚfragment_list_widthÚto_formatted_text)Úprompt_toolkit.formatted_textr¨  r©  rª  r@  )r�  r:  r¨  r©  rª  rn  s   &&    r   Ú
_line_rowsr¬  I  s@   € çZÑZÙÑ 1±$°t³*Ó =Ó>€Eß+2°wÀ´{Œ3ˆq�U�F˜gÕ%Ð&Ó'ÐIÈÐIr   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   r€  ú	list[str]Úmax_rowsrO   r:  ÚpaintedrI   r   r   )r   s   "r   r   r   P  s1   € ÷ ñ  	ð °Sð À3ð ÐQUð Ðajñ r   c           	     ód  € . ^ rT\        V 4       F�  pWQ8¼  d    M†V'       d   \        VRR4      MR;'       g    Tp\        Wg4      pWX,           V8”  d1   VP                  \	        WhW,
          ,
          V,          4      4        MWX,          pVP                  V4       K�  	  VP                  4        V# )u#  Newest ``lines`` filling ``max_rows`` rows, soft-wrapped at ``columns`` â€” or, with
``painted``, at the width each was painted at, as a terminal that does not reflow still
shows it. The oldest one may only partly fit: its bottom rows are kept, the rows above
them are already in scrollback.rn  N)Úreversedrç   r¬  ri  r�  Úreverse)	r€  r¯  r:  r°  ÚkeptÚusedr�  ÚcolsÚheights	   &&&&     r   Ú_output_tail_fittingr¸  P  s”   € ð
 �Qˆ$Ü˜–ˆØÔÙß07”˜˜g tÔ,¸T×MÐMÀgˆÜ˜DÓ'ˆØ�=˜8Ô#Ø�K‰KÔ(¨¸(½/Õ0JÈdÕ/RÓSÔTÙØ�ˆØ�‰�DÖñ  ð 	‡L�L„NØ€Kr   c               ó   € V ^8„  d   QhRR/# )r   r   r®  r   )r   s   "r   r   r   d  s   € ÷ ñ ˜yñ r   c                 ó*  € . p \        \        4       P                  4       F]  pV.p\        V4      '       d/    V! 4       p\        T\        4      '       d   TP                  4       pV P                  R V 4       4       K_  	  V #   \         d     Kq  i ; i)zOThe recorded output as the lines a replay paints (callable entries render now).c              3  óh   "  € T F(  p\        V\        4      '       d   TM
\        V4      x € K*  	  R # 5ir4   )r9   r   )r5   r�  s   & r   r7   Ú(_output_history_lines.<locals>.<genexpr>p  s'   é € Ð]ÑW\Èt¤j°´s×&;Ò&;™dÄÀTÃÔJÓW\ùs   ‚02)	Útupler   r\  Úcallabler�   r9   r   Ú
splitlinesr  )Úrendered_linesrj  r€  s      r   Ú_output_history_linesrÁ  d  sˆ   € à€NÜ”t“v×-Ñ-Ö.ˆØ�ˆÜ�E�?Š?ðÙ›�ô ˜%¤×%Ò%Ø×(Ñ(Ó*�Ø×ÑÑ]ÑW\Ó]Ö]ñ /ð Ðøô ô Úðús   ¸BÂBÂBc               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚlimitrO   r:  r°  rI   r   )r   s   "r   r   r   t  s!   € ÷ 
ñ 
 ð 
¨cð 
¸Dñ 
r   c           
     óê   € \        4       P                  '       g   R# ^ p\        \        4       4       F=  pT\	        YB'       d   \        VRR4      MR;'       g    T4      ,          pW08¼  g   K<   R# 	  V# )z�Rows the whole recorded output fills (counted as ``_output_tail_fitting`` does), or
``None`` when that is ``limit`` rows or more.Nrn  )r   rb  r²  rÁ  r¬  rç   )rÃ  r:  r°  Útotalr�  s   &&&  r   Ú_output_history_rowsrÆ  t  sd   € ô ‹6×)×)Ð)ÙØ€EÜÔ.Ó0Ö1ˆØ”˜DÆ7¤7¨4°¸$Ô#?ÐPT×"`Ð"`ÐY`ÓaÕaˆØŽ>Úñ 2ð €Lr   c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   rÙ   r   )r   s   "r   r   r   �  s   € ÷ ñ ˜ð  ñ r   c                óØ   € ^ RI HpHp  V! V! V 4      4       R#   \         dE    \	        \        4      ;_uu_ 4        \        T 4       RRR4        R#   + '       g   i      R# ; ii ; i)zW``_pt_print(ANSI(text))``, falling back to ``print`` when stdout is not a real console.)Ú_PT_ANSIÚ	_pt_printN)r   rÊ  rË  r�   r   Úprint)r   rÊ  rË  s   &  r   Ú_pt_print_ansirÍ  �  sF   € ç'ðÙ‘(˜4“.Ö!øÜô ä”i× Õ Ü�$ŒK÷ !× × Ô úðús&   Š š"A)¼AÁA)ÁA%ÁA)Á%A)zlist | NoneÚ_HELD_PAINTSc               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   r   ”  s   € ÷ <ñ < $ñ <r   c                ó   € Ve   W3s R # R s R # r4   )Ú_PAINT_GATE)rx  Úgates   &&r   Ú_set_paint_gaterÓ  ”  s   € à!%Ò!1�3�+‚K°t‚Kr   c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   r   ¡  s   € ÷ ñ ˜tñ r   c                ó
   € V s R # r4   ©Ú_CHROME_FLOOR©Úrowss   &r   r^  r^  ¡  s   € à‚Mr   c                 ó   € \         # r4   rÖ  r   r   r   Ú_chrome_floorrÛ  ¦  s   € ÜÐr   c               ó    € V ^8„  d   QhRRRR/# )r   rÙ  rO   r   rÙ   r   )r   s   "r   r   r   °  s   € ÷ "ñ "˜Cð " Dñ "r   c                ó4   € \         \        ^ V 4      ,          s R# )rC   N)Ú_SUSPECT_ROWSr@  rØ  s   &r   Ú_add_suspect_rowsrß  °  s   € ä”S˜˜D“\Õ!‚Mr   c               ó   € V ^8„  d   QhRR/# r3  r   )r   s   "r   r   r   µ  s   € ÷ ñ ˜Cñ r   c                 ó   € \         ^ up s V # ©rC   )rÞ  rØ  s    r   Ú_take_suspect_rowsrã  µ  s   € ä'¨Ð€Dˆ-Ø€Kr   c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   r   »  s   € ÷ ñ �dñ r   c                 óp   € \         ;_uu_ 4        \        f   . sRRR4       R#   + '       g   i     R# ; i)aÄ  Hold ``_cprint`` paints until ``_release_paints``, while a resize awaits its recovery.

A paint erases the prompt chrome from prompt_toolkit's cursor, which is stale once the
terminal re-wrapped the chrome to its new width: rows of the old chrome would stay in the
transcript, where the replay cannot account for them (#95375). On a terminal that does not
reflow, a paint would scroll rows it truncated into scrollback before the refill restores them.
N)Ú_HELD_PAINTS_LOCKrÎ  r   r   r   Ú_hold_paintsrç  »  s$   € ÷ 
Ö	ÜÒØˆL÷ 
×	×	Ò	ús   �$¤5	c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   r   É  s   € ÷ ñ ˜ñ r   c                 ó$  € \         ;_uu_ 4        \        ;'       g    . Rup sRRR4       \        X R R7       F,  w  r\        \        4      ;_uu_ 4        V! 4        RRR4       K.  	  R#   + '       g   i     LP; i  + '       g   i     KV  ; i)zDPaint, in the order they were requested, what ``_hold_paints`` held.Nc                ó   € V ^ ,          # râ  r   )Úitems   &r   Ú<lambda>Ú!_release_paints.<locals>.<lambda>Î  s   € °T¸!¶Wr   )rß   )ræ  rÎ  Úsortedr   r�   )ÚheldÚ_seqÚpaints      r   Ú_release_paintsrò  É  sd   € ÷ 
Ö	Ü)×/Ð/¨R°Ðˆˆl÷ 
ä˜dÑ(<×=‰ˆÜ”i× Õ ÙŒG÷ !Ñ ó >÷ 
×	ú÷ !× Ð ús   �A+ÁA>Á+A;	Á>Bc               ó    € V ^8„  d   QhRRRR/# )r   ÚseqrO   r   rI   r   )r   s   "r   r   r   Ó  s   € ÷ 
ñ 
�Sð 
¨dñ 
r   c                ó  € \         pVe,   V^ ,          VJ d   V^,          ! 4       '       d   \        4        \        ;_uu_ 4        \        f    RRR4       R# \        P	                  W34        RRR4       R#   + '       g   i     R# ; i)u    Queue ``paint`` (requested ``seq``-th) when paints are held â€” or must be, because the
terminal's width changed under ``app`` and its recovery has not run yet.NFT)rÑ  rç  ræ  rÎ  ri  )rô  rñ  rx  rÒ  s   &&& r   Ú_paint_heldrö  Ó  sc   € ô €DØÒ˜D �G s›N¨t°A®w¯yªyÜŒß	Ö	ÜÒØ÷ 
Ñ	ô 	×Ñ˜S˜LÔ)Ø÷	 
×	×	Ò	ús   Á
A9ÁA9Á9B
	c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   à  s   € ÷ eñ e�#ñ er   c                ó  a aa	a
aaaaaaaaa€ ^ RI HoHpHo
HoHo V! 4       o\        \        4      oVVV 3R lpV! VV
V 3R l4      pV! VV 3R l4      o ^ RIH	pH
o  T! 4       oSe   \        SRR4      '       g   \        4        S! 4        R# ^ RIo	 SP                  p S	P!                  4       pTe   YeJ d3   TP#                  4       '       d   \%        STS4      '       g   T! 4        R# TTT 3R	 lpT! T4      oT	TTTTTTT 3R
 lo TP'                  S4       R#   \         d    T! 4         R# i ; i  \         d    Ro Lài ; i  \         d    Rp L¸i ; i  \         d    Rp Lºi ; i  \         d    S! 4         R# i ; i)a  Print ANSI text through prompt_toolkit's renderer (patch_stdout swallows raw ANSI).

From a background thread while an Application runs, a direct print races the input
redraw and gets buried, so those are painted on the app's loop via ``call_soon_threadsafe``.
)rÊ  re  rË  rÍ  r‚  c                ó   <a € VV VV3R  lpV# )c                 ó:   <€ S'       d   S ! SR R7       S! 4        R# )T)rz  Nr   )r‚  rñ  Ú	recordingr   s   €€€€r   Ú_paintÚ)_cprint.<locals>._painted.<locals>._paintí  s   ø€ ßÙ& t°4Õ8ÙŽGr   r   )rñ  rü  r‚  rû  r   s   f €€€r   Ú_paintedÚ_cprint.<locals>._paintedê  s   ù€ ÷	ð 	ð ˆr   c                 ó    <€ S! S ! S4      4      # r4   r   )rÊ  rË  r   s   €€€r   rì  Ú_cprint.<locals>.<lambda>ò  s   ø€ ¡	©(°4«.Ô 9r   c                 ó   <€ S ! S4      # r4   r   )rÍ  r   s   €€r   rì  r  ó  s
   ø€ ¡n°TÔ&:r   )rq  Úrun_in_terminalNÚ_is_runningFc                 óˆ   <€ ^ RI Hp  ^ RIHp ^ RIHp V! SP                  V ! S! S4      4      R.,           V! . 4      4       R# )rC   )rª  )Úprint_formatted_text)ÚStyleN)r   r2   )r«  rª  Úprompt_toolkit.rendererr  Úprompt_toolkit.stylesr  rs  )rª  Ú_paint_formatted_textr  rÊ  rx  r   s      €€€r   Ú
_print_nowÚ_cprint.<locals>._print_now  s4   ø€ ÝCÝYÝ/Ù˜cŸj™jÑ*;¹HÀT»NÓ*KÈzÈlÕ*ZÑ\aÐbdÓ\eÖfr   c            	     óf  <a€ \        S
R R4      '       g
   S! 4        R# \        SS	S
4      '       d   R# \        \        4      ;_uu_ 4        \        S
RR4      p \        S
RR4      '       g   V ex   V P	                  4       '       gb   ^ RIpS! V	V
VV3R l4      pVe@   VP                  V4      '       g   VP                  V4      '       d   SP                  V4        RRR4       R# S
P                  p\        pVe7   VP                  p\        YCP                  V'       d   VP                  M^ 4      pS
P                  P!                  4       P"                  oVP%                  4        S! 4        VP'                  4        \)        V3R lSP+                  R4       4       4      pS
P                  P!                  4       P"                  S8w  d   \-        V4       Ve   \/        \        ^ WF,
          4      4       S
P1                  4        S
P3                  4        RRR4       R#   + '       g   i     R# ; i)r  FNÚ_running_in_terminal_fÚ_running_in_terminalc                 ó<   <€ \        SS S4      ;'       g    S! 4       # r4   )rö  )Ú	_schedulerx  Ú	paint_nowrô  s   €€€€r   rì  Ú,_cprint.<locals>._schedule.<locals>.<lambda>+  s   ø€ ¬{¸3À	È3Ó/O×/^Ð/^ÑS\ÓS^Ð/^r   c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5ir4   )r¬  )r5   r�  r:  s   & €r   r7   Ú-_cprint.<locals>._schedule.<locals>.<genexpr>:  s   øé € ÐQÑ@P¸œ* T¨7×3Ð3Ó@Pùs   ƒr2   )rç   rö  r   r�   ÚdoneÚinspectÚisawaitableÚiscoroutineÚensure_futureÚrendererr×  Ú_last_screenr@  Ú_min_available_heightr·  rs  rt  r:  Úeraser  ÚsumrÄ   rß  r^  Ú!_request_absolute_cursor_positionÚ_redraw)ÚpendingÚ_inspectÚcoror  ÚfloorÚscreenÚprintedr:  Ú_asyncior  rx  Úpaint_fallbackr  r  rô  r   s          @€€€€€€€€r   r  Ú_cprint.<locals>._schedule  s   ù€ Ü�s˜M¨5×1Ò1ÙÔÙÜ�s˜I s×+Ò+ÙÜ”i× Õ Ü˜cÐ#;¸TÓBˆGÜ�sÐ2°E×:Ò:¸wÒ?RÐ[b×[gÑ[g×[iÒ[ió +Ù&×'^Ó_�ØÒ#¨×)=Ñ)=¸d×)CÒ)CÀx×G[ÑG[Ð\`×GaÒGaØ×*Ñ*¨4Ô0Ø÷ !Ñ ð —|‘|ˆHÜ!ˆEØÒ Ø!×.Ñ.�Ü˜E×#AÑ#A×TZÀ6Ç=Â=Ð`aÓb�Ø—j‘j×)Ñ)Ó+×3Ñ3ˆGØ�N‰NÔÙŒKØ�N‰NÔÜÔQÀÇ
Á
È4Ô@PÓQÓQˆGØ�z‰z×"Ñ"Ó$×,Ñ,°Ô7Ü! 'Ô*ØÒ Ü!¤# a¨­Ó"9Ô:Ø×1Ñ1Ô3Ø�K‰KŒM÷7 !× × Ò ús%   Á:HÂ-HÂ4HÃHÃ'D.HÈH0	)r   rÊ  re  rË  rÍ  r‚  ÚnextÚ
_PAINT_SEQrr  rq  r  r�   rç   rò  ÚasyncioÚloopÚget_running_loopÚ
is_runningrö  Úcall_soon_threadsafe)r   re  rþ  Úpaint_ptrq  r.  Úcurrent_loopr  rÊ  r(  rË  rÍ  r‚  r  rx  r)  r  rû  r  rô  s   f       @@@@@@@@@@@@r   Ú_cprintr4  à  sj  ÿü€ ÷ kÕjÙ)Ó+€IÜ
ŒzÓ
€C÷ñ Ö9Ó:€HÙÕ:Ó;€NðßOð
ÙÓˆð ‚{œ' # }°e×<Ò<ÜÔÙÔÙãðØ�x‰xˆðð
  ×0Ñ0Ó2ˆð ‚|˜Ó,°·±×1BÒ1BÜ˜3 ¨#×.Ò.ÙŒJÙ÷gñ
 ˜Ó$€I÷!ô !ðFØ×!Ñ! )Ö,øôY ô ÙŒ
Úðûô ô ØŠðûô ô ØŠðûô ô ØŠðûôf ô Ù×ðúsZ   ÁD ÁD7 ÂE
 Â"E ÄE0 ÄD4Ä3D4Ä7EÅEÅ
EÅEÅE-Å,E-Å0FÆFc               ó   € V ^8„  d   QhRR/# )r   Únoter   r   )r   s   "r   r   r   H  s   € ÷ ñ ¨Cñ r   c                óä  € \        T;'       g    R4      P                  4       pV'       g   V # \        V \         4      '       d   V '       d   V RV  2# T# \        V \        4      '       d†   \        V 4      p\	        V4       Fb  w  r4\        V\
        4      '       g   K  VP                  R4      R8X  g   K5  VP                  RR4      p/ VCRV'       d   V RV 2MT/CW#&   Vu # 	  RRRV/.VO# V # )zÝPrepend a one-shot note to a user message (str, or content-part list when an image is attached).

For lists the note is folded into the first text part or inserted as a leading one.
Unknown shapes are returned unchanged.
r   r%  r1   r   )r   r(   r9   r:   Ú	enumerater;   r<   )Úmessager6  r?   rP   r>   r   s   &&    r   Ú_prepend_note_to_messager:  H  sâ   € ô ˆt�zˆz�r‹?× Ñ Ó"€DßØˆÜ�'œ3×Òß)0�$��t˜G˜9Ð%Ð:°dÐ:Ü�'œ4× Ò Ü�W“ˆÜ  Ö'‰GˆAÜ˜$¤×%Ô%¨$¯(©(°6Ó*:¸fÖ*DØ—x‘x ¨Ó+�ØR˜dÐR FÇ4¨t¨f°D¸¸Ñ,?ÈTÑR�‘Ø’ñ	 (ð
 ˜ ¨Ð.Ð7°Ð7Ð7Ø€Nr   c               ó   € V ^8„  d   QhRR/# r²   r   )r   s   "r   r   r   ^  s   € ÷ Hñ H˜Dñ Hr   c                 ó†   €  ^ RI Hp  V ! 4       pTRJ;'       d    \        \	        TRR4      4      #   \         d     R# i ; i)zFWhether a prompt_toolkit Application currently owns the live terminal.rp  FNr  )rr  rq  r�   rI   rç   rw  s     r   Ú_pt_app_is_runningr=  ^  sH   € ðÝ>ÙÓˆð �dˆ?×GÐGœt¤G¨C°ÀÓ$FÓGÐGøô ô Úðús   ‚1 ±A ¿A c               ó    € V ^8„  d   QhRRRR/# rÈ  r   )r   s   "r   r   r   h  s   € ÷ ñ ˜Sð ¨$ñ r   c                óZ   € ^ RI HpHp V! 4       '       d   V! V 4       R# \        V 4       R# )zd``print`` unless a prompt_toolkit Application owns the terminal (patch_stdout swallows bare prints).)r4  r=  N)r   r4  r=  rÌ  )r   r4  r=  s   &  r   Ú_cli_visible_printr@  h  s   € ç/Ù×ÒÙ�ŽäˆdŽr   c                  ó6   € ] tR tRtRtR tR t]R 4       tRt	R# )ÚChatConsoleiq  z^Rich Console drop-in routing rendered ANSI through ``_cprint`` so colors survive patch_stdout.c                	óf   € ^ RI Hp V! 4       V n        \        V P                  RRRR7      V n        R# )rC   )ÚStringIOTÚ	truecolorF)ÚfileÚforce_terminalÚcolor_systemÚ	highlightN)ÚiorD  Ú_bufferr   Ú_inner)rÞ   rD  s   & r   rõ   ÚChatConsole.__init__t  s&   € ÝÙ“zˆŒÜ 4§<¡<ÀÐS^ÐjoÔpˆŽr   c                	óÄ  € ^ RI HpHp V P                  P	                  ^ 4       V P                  P                  4        \        P                  ! R4      P                  V P                  n
        V P                  P                  ! V/ VB  VP                  RV P                  P                  4       4      P                  R4      P                  R4       F  pV! V4       K  	  R# )rC   )Ú_OSC_ESCAPE_REr4  r   r2   Nr6  )r   rO  r4  rK  ÚseekÚtruncater8  r9  r:  rL  rn  rÌ  r$   ÚgetvalueÚrstriprÄ   )rÞ   ÚargsÚkwargsrO  r4  r�  s   &*,   r   rÌ  ÚChatConsole.printy  sž   € ß/Ø�‰×Ñ˜!ÔØ�‰×ÑÔÜ"×4Ò4°XÓ>×FÑFˆ�‰ÔØ�‰×Ò˜4Ð* 6Ò*Ø"×&Ñ& r¨4¯<©<×+@Ñ+@Ó+BÓC×JÑJÈ4ÓP×VÑVÐW[Ö\ˆDÙ�DŽMó ]r   c              /  ó   "  € V x € R# 5i)zZNo-op ``console.status`` so slash helpers don't duplicate ``_busy_command()``'s indicator.Nr   )rÞ   Ú_argsÚ_kwargss   &*,r   ÚstatusÚChatConsole.status‚  s   é € ð Œ
ùs   ‚	)rK  rL  N)
r  r  r  r  r  rõ   rÌ  r   rZ  r  r   r   r   rB  rB  q  s$   † Ùhòqò
ð ñó ôr   rB  c               ó   € V ^8„  d   QhRR/# rø   r   )r   s   "r   r   r   ˆ  s   € ÷ -ñ -˜sñ -r   c                 ó$  a€  ^ RI Hp  V ! 4       oV3R lpV! RR4      pV! RR4      pV! RR	4      pS'       d   \        SR
R4      MRR8X  d   RpMS'       d   SP	                  RR4      MRp\        RVR7      p\        P                  P                  R4      R8X  d+   ^ RI	H
p ^ RIHp \        RV! 4       P                  VR7      p	M
\        4       p	\        \         P"                  ! 4       P$                  ^,
          ^X4      p
V
^8  d   RV RV RV R2# V
^,
          pRV
,          pV^,
          pVRV P'                  V4      pV	RV P'                  V4      pRV RV RV RV RV R V R!V R"V RV R V R!V R#V R$2#   \         d    Ro EL~i ; i)%z<Build a compact banner that fits the current terminal width.rú   Nc                ó:   <€ S'       d   SP                  W4      # T# r4   )rè   )rß   ÚdefaultÚ_skins   &&€r   Ú_colorÚ%_build_compact_banner.<locals>._color�  s   ø€ ß05ˆu�‰˜sÓ,ÐB¸7ÐBr   Úbanner_borderrÍ   Úbanner_titlerÎ   Ú
banner_dimrÏ   r–  r_  u   â˜¤ NOUS HERMESÚ
agent_namezHermes Agentzcli.render.banner_tagline)r–  ÚHERMES_FAST_STARTUP_BANNERÚ1)Ú__release_date__)Úget_version_infozcli.render.banner_version)ÚversionÚdatez
[Ú]z	[/] [dim z]- Nous Research[/]
u   â•�z
[bold u   ]â•”u   â•—[/]
[bold u	   ]â•‘[/] [z
[/] [bold u   ]â•‘[/]
[bold u   ]â•‘[/] [dim u   ]â•šu   â•�[/]
)ræ   rû   r�   rç   Úget_brandingr   rr   rs   r<   Ú
hermes_cliri  Úhermes_cli.version_inforj  Úderived_versionr   Úminr8  r9  r:  Úljust)rû   ra  Úborder_colorÚtitle_colorÚ	dim_colorÚ	tiny_lineÚline1Ú_release_daterj  Úversion_lineÚwÚinnerÚbarÚcontent_widthÚline2r`  s                  @r   Ú_build_compact_bannerr€  ˆ  sÃ  ø€ ðÝ:ÙÓ!ˆõCñ ˜/¨9Ó5€LÙ˜¨Ó3€KÙ�| YÓ/€Iç-2Œ��v˜yÔ)¸	ÀiÔOØ%‰	çHM�E×&Ñ& |°^ÔDÐSaˆ	ÜÐ)°	Ô:€Eä	‡z�z‡~�~Ð2Ó3°sÔ:Ý@Ý<äÐ4Ñ>NÓ>P×>`Ñ>`ÐgtÔu‰ä2Ó4ˆäŒF×$Ò$Ó&×.Ñ.°Õ2°BÓ7€AØˆ2„vØ�[�M  9 +¨Y°y°kÐAVÐWÐWà��E€EØ
�!�)€CØ˜A•I€Mà�.�=Ð!×'Ñ'¨Ó6€EØ˜˜-Ð(×.Ñ.¨}Ó=€Eð �<�.  S Eð *Ø�˜i¨ }°A°e°W¸JÀ|Ànð UØ�˜m¨I¨;°a¸°w¸jÈÈð WØ�˜d 3 % xð	1ðøôG ô Ø‹ðús   ƒE> Å>FÆFc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   Útitler   Úcontent_linesr®  Ú	min_widthrO   Ú	max_widthr   r   )r   s   "r   r   r   ¸  s1   € ÷ ñ ˜Cð °	ð Àcð Ð[^ð Ðhkñ r   c           	     ó`  € \         P                  ! R4      P                  p\        \	        V 4      .V Uu. uF  p\	        V4      NK  	  up,           V^,
          .,           4      p\        \        V^,           V^,
          4      V^,
          \        ^V^,
          4      4      pV^,           # u upi )zMStable TUI panel width wide enough for the title and content (incl. borders).)éd   é   )r8  r9  r:  r@  rj   rr  )r‚  rƒ  r„  r…  Ú	term_colsr�  Úlongestr|  s   &&&&    r   Ú_panel_box_widthr‹  ¸  s‰   € ä×(Ò(¨Ó3×;Ñ;€IÜ”3�u“:�,¹Ó!F¹°¤# d¦)¹Ñ!FÕFÈ)ÐVWÍ-ÈÕXÓY€GÜ”�G˜a•K ¨Q¥Ó/°¸QµÄÀBÈ	ÐTUÍÓ@VÓW€EØ�1�9Ðùò "Gs   µB+
Úkeep_wsc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   r   r   rn  rO   Úsubsequent_indentrŒ  rI   r   r®  r   )r   s   "r   r   r   À  s1   € ÷ ñ ˜3ð  sð ¸sð ÐUYð Ðfoñ r   c               óP  € V'       d   \        RRR7      M\        RRR7      pV'       d    V P                  ^4      P                  4       MV . UUu. uF<  p\        P                  ! V3R\        ^V4      RV/VB ;'       g    R. F  pVNK  	  K>  	  pppT;'       g    R.# u uppi )z¬Wrap panel text; ``keep_ws`` preserves whitespace (command/detail previews). Each source
line wraps on its own: a newline inside a row would break the panel's right border.F)Úreplace_whitespaceÚdrop_whitespace)Úbreak_long_wordsÚbreak_on_hyphensrn  rŽ  r   )r;   Ú
expandtabsr¿  ÚtextwrapÚwrapr@  )r   rn  rŽ  rŒ  Úkwr>   ÚrowÚwrappeds   &&&$    r   Ú_wrap_panel_textrš  À  s³   € ÷ CJŒ ¸Õ	>ÌtÐejð  ~Cô  PD€BßCJ §¡°Ó 2× =Ñ =Ô ?ÐQUÐPVÐ Vô yÑ V�tÜ#Ÿ=š=¨Ñn´S¸¸E³]ÐnÐVgÐnÐkmÑn×vÐvÐsuÐrvÒv�3ó Ùvñ Ñ V€Gñ yà�?ˆ?�r�dÐùóys   Á0B"ÂB")rŒ  c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   Úborder_styler   Úcontent_styler   Ú	box_widthrO   r   rÙ   r   )r   s   "r   r   r   Ì  s8   € ÷ yñ y¨Cð yÀð yÈ3ð yÐ[^ð yÐcgñ yr   c                óx   € V P                  VR 3W#P                  \        ^ V^,
          4      4      3VR334       R# )u   â”‚ u    â”‚
N)r  rs  r@  )r€  rœ  r�  r   rž  s   &&&&&r   Ú_append_panel_liner   Ì  s9   € Ø	‡L�L�< Ð(¨=¿*¹*ÄSÈÈIÐXYÍMÓEZÓ:[Ð*\Ð_kÐmuÐ^vÐwÖxr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rœ  r   rž  rO   r   rÙ   r   )r   s   "r   r   r   Ð  s&   € ÷ Fñ F°#ð FÀ#ð FÈ$ñ Fr   c                óV   € V P                  VR RV,          ,           R,           34       R# )u   â”‚Ú u   â”‚
N)ri  )r€  rœ  rž  s   &&&r   Ú_append_blank_panel_liner¤  Ð  s!   € Ø	‡L�L�, ¨¨y­Õ 9¸GÕ CÐDÖEr   )Ú	tool_callÚ
tool_callsÚtool_resultÚfunction_callÚfunction_calls)rG  )	Útmuxr&  zxterm-kittyÚ	alacrittyÚfootzxterm-ghosttyÚweztermÚcontourÚvte)ÚlinuxÚstÚmoshÚvtÚconsÚrxvt)ÚTMUXÚSTY)ÚXTERM_VERSION)ÚVTE_VERSIONÚKITTY_WINDOW_IDÚ
WT_SESSIONÚKONSOLE_VERSIONÚALACRITTY_WINDOW_IDÚWEZTERM_PANEÚGHOSTTY_RESOURCES_DIR)z	iTerm.appÚApple_TerminalÚWezTermÚvscodeÚghosttyÚTabbyÚHyper)Tr4   rå   )é.   éL   ){Ú__conditional_annotations__r  Ú
__future__r   Ú	functoolsÚ	itertoolsrr   r#   r8  rƒ   r•  Ú	threadingr‘   Ú
contextlibr   r   Ú
agent.i18nr   Úagent.think_scrubberr   Úhermes_cli.bannerr   Úrich.consoler   Ú	rich.textr	   r  Útypingr
   r   r   r   r,   r@   rD   rK   Ú_BOLDÚ_RSTr?  Ú_STREAM_PARTIAL_PREVIEW_LENr\   Úcompiler¶   r´   Ú	frozensetrµ   rm   rp   r    r°   rÌ   rÐ   Ú__annotations__ÚitemsrÖ   rÓ   rL   ré   rë   Ú_ACCENTÚ_DIMr  ÚpartialÚ_bÚ_dr  r"  r(  r+  r1  r;  rA  rL  rT  rY  r_  re  rk  r   rm  ry  r‚  rˆ  r�  rž  rŸ  r   r¡  r¢  r£  r¥  r¬  r¸  rÁ  rÆ  rÍ  rÎ  ÚLockræ  Úcountr,  rÑ  rÓ  r×  r^  rÛ  rÞ  rß  rã  rç  rò  rö  r4  r:  r=  r@  rB  r€  r‹  rš  Ú_wrap_panel_text_keep_wsr   r¤  )Úkrt   rÈ  s   00@r   Ú<module>rä     sU  øðôõ #ã Û Û 	Û 	Û Û 
Û Û Û ß /Ý Ý 0Ý 9Ý  Ý 'Ý òð "€ð `€õõ@õFð
 0Ð ð 	€ð €ð €ð !Ð ðI°÷ Ið �:Š:Ð,Ó-€ð �JŠJÐ.Ó/€	ñ  )›{Ð õ:ð —
’
Ð/Ó0€õIõXõ2Zð@ ˆy˜) Y°	¸9ÀiÐQZØˆy˜) Y°	¸9ÀiÐQZØˆy˜) Y°	¸9ÀiÐQZð%Ð �>ó ð 5F×4KÑ4KÔ4MÔNÑ4M©D¨A˜1Ÿ7™7›9 aš<Ñ4MÒNÐ õEõ8÷,ñ ñB Ð*¨I¸DÔ
A€ð €õð ×Ò�y iÔ0€ð ×Ò�y kÔ2€õõ+õ
ð2 %'§J¢JÐ/[Ó$\Ð !õ	Aõõ?÷õ,	Cõõõ
}õ-ô�3ô ò	ð-°u÷ -ð  —J’JÐeÓfÐ õð0+Ð ð IÐ Ø"Ð Ø#€ðO€àiÐ õõ.J÷õ(õ 
õð !€ˆkÓ  Ø—N’NÓ$Ð Ø�_Š_Ó€
ð €õ<ð €õò
ð €õ"õ
õõ÷
õeõPõ,H÷÷ñ õ.-÷`ñÐ\a÷ ð ð %×,Ò,Ð-=ÀtÔLÐ õy÷Fùóu Os   ÄK>