+
    iHàjá>  ã                  ó  € R t ^ RIHt ^ RIt^ RIt^ RIHtHtHtH	t	H
t
Ht ^ RIHt ]P                  ! R]P                  4      t]! R04      t]! R04      tRR=R	R>R
R?RR@RRARRBRRCRRD/tR R ltRt]! 0 REm4      t^t^t^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%RFR( R) llt&R* R+ lt'R, R- lt(R. R/ lt)R0 R1 lt*R2 R3 lt+R4 R5 lt,R6 R7 lt-R8RR9R:/R; R< llt.R# )Ga$  Live session context-window breakdown for UI surfaces.

Estimates system prompt tiers, tool schemas, and conversation history for the
category breakdown. Overall occupancy retains its provider-usage or estimate
provenance; category estimates are not exact tokenizer counts or gate authority.
)ÚannotationsN)ÚAnyÚDictÚListÚOptionalÚSequenceÚTuple©Útz(<available_skills>.*?</available_skills>Údelegate_taskÚconversationÚsystem_promptÚtool_definitionsÚrulesÚskillsÚmcpÚsubagent_definitionsÚmemoryc               ó    € V ^8„  d   QhRRRR/# )é   Úcategory_idÚstrÚreturn© )Úformats   "Ú</home/ubuntu/.hermes/hermes-agent/agent/context_breakdown.pyÚ__annotate__r   2   s   € ÷ 8ñ 8 ð 8¨ñ 8ó    c                ó   € \        R V  24      # )zgateway.context.category.r	   )r   s   &r   Ú_category_labelr   2   s   € ÜÐ(¨¨Ð6Ó7Ð7r   ô   Â·c               ó    € V ^8„  d   QhRRRR/# )r   Útextr   r   Úintr   )r   s   "r   r   r   ;   s   € ÷ 'ñ '˜3ð ' 3ñ 'r   c                ó   € ^ RI Hp V! V 4      # )é    )Úestimate_tokens_rough)Úagent.model_metadatar&   )r"   r&   s   & r   Ú_chars_to_tokensr(   ;   s   € Ý:Ù  Ó&Ð&r   c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer   r   r#   r   )r   s   "r   r   r   @   s   € ÷ Sñ S˜ð S ñ Sr   c                óX   € V '       d"   \        \        P                  ! V R R7      4      # ^ # )F)Úensure_ascii)r(   ÚjsonÚdumps)r*   s   &r   Ú_json_tokensr/   @   s!   € ßFKÔœDŸJšJ u¸5ÔAÓBÐRÐQRÐRr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚsizezOptional[int]r   r   )r   s   "r   r   r   D   s   € ÷ Hñ H˜=ð H¨]ñ Hr   c                óL   € ^ RI Hp V f   R# \        V 4      ^,           V,          # )r%   )ÚCHARS_PER_TOKENN)r'   r3   r#   )r1   r3   s   & r   Ú_bytes_to_tokensr4   D   s!   € Ý4Ø’<ˆ4ÐG¤c¨$£i°!¥m¸Õ%GÐGr   c               ó    € V ^8„  d   QhRRRR/# )r   Ústabler   r   r   )r   s   "r   r   r   I   s   € ÷ #ñ #˜#ð # #ñ #r   c                ób   € \         P                  V 4      pV'       d   VP                  ^ 4      # R# )zDThe live ``<available_skills>`` block inside the stable tier, or ''.Ú )Ú_SKILLS_BLOCK_REÚsearchÚgroup)r6   Úms   & r   Ú_skills_blockr=   I   s'   € ä×Ñ Ó'€Aßˆ1�7‰7�1‹:Ð" Ð"r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚtoolszSequence[dict]r   z)tuple[list[dict], list[dict], list[dict]]r   )r   s   "r   r   r   O   s   € ÷ 	"ñ 	"˜ð 	"Ð+Tñ 	"r   c                ód  € . p. p. pV  F¡  p\        V\        4      '       d   VP                  R 4      MRp\        \        V\        4      '       d   TMTP                  R4      ;'       g    R4      pVP	                  R4      '       d   TMV\
        9   d   TMTpVP                  V4       K£  	  WV3# )ÚfunctionNÚnamer8   Úmcp_)Ú
isinstanceÚdictÚgetr   Ú
startswithÚ_SUBAGENT_TOOL_NAMESÚappend)r?   Úbuiltinr   ÚsubagentÚtoolÚfnrB   Úbuckets   &       r   Ú_split_toolsrO   O   s›   € Ø€GØ€CØ€HÛˆÜ%/°´d×%;Ò%;ˆT�X‰X�jÔ!ÀˆÜœ* R¬×.Ò.‘B°D×=Ñ=¸fÓE×KÐKÈÓLˆØŸ™¨×/Ò/‘ÀÔI]ÔA]±XÐcjˆØ�‰�dÖñ	 ð
 ˜Ð!Ð!r   c               ó    € V ^8„  d   QhRRRR/# )r   Úagentr   r   ztuple[str, str]r   )r   s   "r   r   r   [   s   € ÷ 
$ñ 
$˜#ð 
$ /ñ 
$r   c                ó  € R ;r\        V RR4      p Ve/   \        V RR4      '       d   VP                  R4      ;'       g    R pVe/   \        V RR4      '       d   VP                  R4      ;'       g    R pW3#   \         d     Y3# i ; i)r8   Ú_memory_storeNÚ_memory_enabledTr   Ú_user_profile_enabledÚuser)ÚgetattrÚformat_for_system_promptÚ	Exception)rQ   Úmemory_blockÚ
user_blockÚstores   &   r   Ú_memory_blocksr]   [   sŸ   € Ø "Ð"€LÜ�E˜?¨DÓ1€EðØÒ¤¨Ð0AÀ4×!HÒ!HØ ×9Ñ9¸(ÓC×IÐIÀrˆLØÒ¤¨Ð0GÈ×!NÒ!NØ×7Ñ7¸Ó?×EÐEÀ2ˆJð Ð#Ð#øô ô ØØÐ#Ð#ðús   ’.A9 Á1A9 Á3A9 Á9B	ÂB	c               ó$   € V ^8„  d   QhRRRRRR/# )r   r"   r   Úblocksr   r   )r   s   "r   r   r   h   s!   € ÷ ñ ˜ð  cð ¨cñ r   c                ól   € V F  pV'       g   K  V P                  VR 4      p K!  	  V P                  4       # )r8   )ÚreplaceÚstrip)r"   r_   Úblocks   &* r   Ú_strip_blocksrd   h   s/   € Ûˆß‰5Ø—<‘<  rÓ*ŠDñ ð �:‰:‹<Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   Úpartsr   r   r   )r   s   "r   r   r   o   s   € ÷ ?ñ ?�#ð ?˜#ñ ?r   c                 óN   € R P                  R V  4       4      P                  4       # )z

c              3  ó8   "  € T F  q'       g   K  Vx € K  	  R # 5i©Nr   )Ú.0Úparts   & r   Ú	<genexpr>Ú_join.<locals>.<genexpr>p   s   é € Ð6© ³—t’t«ùs   ‚	�
)Újoinrb   )rf   s   *r   Ú_joinro   o   s    € Ø�;‰;Ñ6©Ó6Ó6×<Ñ<Ó>Ð>r   c               ó    € V ^8„  d   QhRRRR/# )r   Úcatúdict[str, Any]r   r   r   )r   s   "r   r   r   s   s   € ÷ Gñ G�ð G 3ñ Gr   c                ó€   € \         P                  \        V P                  R 4      ;'       g    R4      R4      ^,          # )Úidr8   )Nu   â–ª)Ú_CATEGORIESrF   r   )rq   s   &r   Ú_glyphrv   s   s-   € Ü�?‰?œ3˜sŸw™w t›}×2Ð2°Ó3°]ÓCÀAÕFÐFr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú
compressorr   r   r   r   )r   s   "r   r   r   w   s   € ÷ tñ t sð t¨sñ tr   c                ó¤   € \        V RR4      p\        V R^ 4      ;'       g    ^ p\        V\        \        34      '       d   V^ 8”  d	   W!8w  d   R# R# )zäDistinguish the built-in preflight display seed from a provider reading.

Engines without the built-in real-usage ledger own their occupancy figure.
A seed never updates that ledger, even if its number later matches real usage.
Úlast_real_prompt_tokensNÚlast_prompt_tokensÚlocal_estimateÚprovider_usage)rW   rD   r#   Úfloat)rx   ÚrealÚshowns   &  r   Úcontext_display_sourcer�   w   sS   € ô �:Ð8¸$Ó?€DÜ�JÐ 4°aÓ8×=Ð=¸A€EÜ)¨$´´e°×=Ò=À%È!Ä)ÐPUÔP]ÐÐsÐcsÐsr   c               ó    € V ^8„  d   QhRRRR/# )r   rx   r   r   rr   r   )r   s   "r   r   r   ‚   s   € ÷ 
Wñ 
W Sð 
W¨^ñ 
Wr   c                ó4  € \        ^ \        V R^ 4      ;'       g    ^ 4      p\        V R^ 4      ;'       g    ^ pV'       d	   V'       g   / # \        W4      p\        V 4      pRVRVR\        ^ \        ^d\	        W,          ^d,          4      4      4      RVRVR8g  /# )	zHCurrent occupancy only; lifetime throughput is never a context fallback.r{   Úcontext_lengthÚcontext_usedÚcontext_maxÚcontext_percentÚcontext_sourceÚcontext_estimatedr}   )ÚmaxrW   Úminr�   Úround)rx   ÚusedÚmaximumÚsources   &   r   Úcontext_usage_fieldsr�   ‚   s™   € äˆq”'˜*Ð&:¸AÓ>×CÐCÀ!ÓD€DÜ�jÐ"2°AÓ6×;Ð;¸!€Gß—wØˆ	ÜˆtÓ€DÜ# JÓ/€FØ˜D -°Øœs 1¤c¨#¬u°Tµ^ÀcÕ5IÓ/JÓ&KÓLØ˜fÐ&9¸6ÐEUÑ;UðWð Wr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rQ   r   ÚmessageszOptional[list[dict]]r   rr   r   )r   s   "r   r   r   �   s(   € ÷ Bñ B¨Sð BÐ<Pð BÐ\jñ Br   c                ód  € ^ RI Hp ^ RIHp ^ RIHp T;'       g    . pV! V 4      pVP                  RR4      ;'       g    Rp\        V4      p\        V 4      w  r‰\        \        Wg4      \        VP                  RR4      ;'       g    RW‰4      4      p
\        \        \        V RR4      ;'       g    . 4      4      w  r¼pR	\        V
4      R
\        V4      R\        VP                  RR4      ;'       g    R4      R\        V4      R\        V4      R\        V4      R\        \        W‰4      4      RV! V4      /p\!        VP#                  4       4      p\        V RR4      pV'       d!   \%        \        VR^ 4      ;'       g    ^ 4      M^ p\        V RR4      pV! VVRR7      pVf   \        V RR4      pV! VV4      pVfK   V'       d!   \%        \        VR^ 4      ;'       g    ^ 4      M^ pV^ 8”  d   TMTpV^ 8”  d   \'        V4      MRpMOV\%        VR,          4      R pV'       d'   V^ ,          P                  R4      R8X  d
   VR,          pV'       d   RMRpV'       d   \)        VV4      pR \*        P-                  4        UUUu. uF>  w  pw  ppVV,          ^ 8”  g   V\.        9   g   K$  R!VR"VR#\1        V4      R$VV,          /NK@  	  upppR%TR&V'       d.   \3        ^ \)        ^d\5        VV,          ^d,          4      4      4      M^ R'TR(TR)VR8g  R*TR+\        V R+R4      ;'       g    R/# u upppi ),zAReturn a Cursor-style context usage breakdown for one live agent.)Úestimate_messages_tokens_rough)Úanchored_context_tokens©Úbuild_system_prompt_partsr6   r8   Úvolatiler?   Nr   r   r   Úcontextr   r   r   r   r   Úcontext_compressorr„   Ú_turn_base_usage_anchorF)Úcharge_stale_thinkingÚ_usage_anchorr{   r|   Ú
base_countÚroleÚ	assistant:é   NNÚprovider_usage_plus_estimater}   Ú
categoriesÚcolorrt   ÚlabelÚtokensr†   r‡   r…   rˆ   r‰   Úestimated_totalÚmodel)r'   r”   Úagent.usage_anchorr•   Úagent.system_promptr—   rF   r=   r]   ro   rd   rO   ÚlistrW   r(   r/   ÚsumÚvaluesr#   r�   r‹   ru   ÚitemsÚ_ALWAYS_REPORTEDr   rŠ   rŒ   )rQ   r’   r”   r•   r—   rf   r6   Úskills_indexrZ   r[   Úsystem_prompt_textÚbuiltin_toolsÚ	mcp_toolsÚsubagent_toolsÚtokens_by_idr§   Úcompr†   Úanchorr…   Úmeasured_usedr�   Údeltar   r¤   Ú_glyph_s   &&                        r   Ú!compute_session_context_breakdownr»   �   s  € åCÝ:Ý=à�~ˆ~˜2€HÙ% eÓ,€EØ�Y‰Y�x Ó$×*Ð*¨€FÜ  Ó(€LÜ-¨eÓ4Ñ€LÜÜ�fÓ+¬]¸5¿9¹9ÀZÐQSÓ;T×;ZÐ;ZÐXZÐ\hÓ-uóÐô 0<¼DÄÈÐPWÐY]ÓA^×AdÐAdÐbdÓ<eÓ/fÑ,€M˜nàÔ)Ð*<Ó=ØœL¨Ó7ØÔ! %§)¡)¨I°rÓ":×"@Ð"@¸bÓAØÔ" <Ó0ØŒ|˜IÓ&Ø¤¨^Ó <ØÔ"¤5¨Ó#BÓCØÑ6°xÓ@ð	€Lô ˜,×-Ñ-Ó/Ó0€Oä�5Ð.°Ó5€DßBF”#”g˜dÐ$4°aÓ8×=Ð=¸AÔ>ÈA€Kô �UÐ5°tÓ<€FÙ*¨8°VÐSXÔY€LØÒÜ˜ °Ó6ˆÙ.¨x¸Ó@ˆØÒßLPœœG DÐ*>ÀÓB×GÐGÀaÔHÐVWˆØ(5¸Ô(9‘}¸ˆØ1>ÀÔ1BÔ'¨Ô-ÐHX‰àœ˜V LÕ1Ó2Ð3Ð4ˆß�U˜1•X—\‘\ &Ó)¨[Ô8Ø˜"•IˆEß38Ñ/Ð>NˆçÜ˜<¨Ó5ˆð 	ä1<×1BÑ1BÔ1Dõ
á1DÑ-�Ñ-˜e WØ˜KÕ(¨1Ô,°Ô?OÑ0Oô |ˆW�e˜T ;°¼ÈÓ9UÐW_ÐamÐnyÕazÓ{Ù1Dó
ð
 	�{Ø×Xcœ3˜q¤# c¬5°ÀÕ1KÈcÕ1QÓ+RÓ"SÔTÐijØ˜Ø˜&Ø˜VÐ'7Ñ7Ø˜?Ø”˜ ¨Ó,×2Ð2°ðð ùô
s   Ê!L+
Ê,L+
c               ó    € V ^8„  d   QhRRRR/# )r   rQ   r   r   rr   r   )r   s   "r   r   r   Ô   s   € ÷ ñ  3ð ¨>ñ r   c                óª  € ^ RI HpHp ^ RIHp \        V! V 4      P                  RR4      ;'       g    R4      p\        \        V RR4      ;'       g    . 4      pRV'       d	   V! V4      M.  Uu. uFU  pRVP                  RR4      R	\        VP                  R
4      4      ;'       g    ^ R\        VP                  R4      4      /NKW  	  upRV'       d	   V! V4      M.  Uu. uF`  pRVP                  RR4      R\        VP                  R^ 4      ;'       g    ^ 4      R\        VP                  R4      4      ;'       g    ^ /NKb  	  up/# u upi u upi )uÖ   Expanded per-skill / per-toolset cost listing for ``/context all``.

Reuses the ``hermes prompt-size`` attribution (index-line bytes from the
live skills block; schema bytes via the registry's toolâ†’toolset map).
)Ú_compute_skills_breakdownÚ_compute_toolsets_breakdownr–   r6   r8   r?   Nr   rB   Úindex_tokensÚindex_line_bytesÚskill_md_tokensÚskill_md_bytesÚtoolsetsÚtoolsetÚ
tool_countÚschema_tokensÚ
json_bytes)Úhermes_cli.prompt_sizer¾   r¿   rª   r—   r=   rF   r«   rW   r4   r#   )rQ   r¾   r¿   r—   Úskills_blockr?   Úentryr;   s   &       r   Úcompute_context_detailsrÌ   Ô   s^  € ÷ ^Ý=ä Ñ!:¸5Ó!A×!EÑ!EÀhÐPRÓ!S×!YÐ!YÐWYÓZ€LÜ”˜ ¨Ó.×4Ð4°"Ó5€Eà÷ FRÑ3°LÔAÐWYÐYó
ñ Z�ð	 ˜Ÿ	™	 &¨"Ó-ØÔ 0°·±Ð;MÓ1NÓ O× TÐ TÐSTØ!Ô#3°E·I±IÐ>NÓ4OÓ#Póñ
 Zñ
ð 	÷ AFÑ5°eÔ<È2ÐMó
ñ N�ð	 ˜5Ÿ9™9 Y°Ó3Øœc %§)¡)¨L¸!Ó"<×"AÐ"AÀÓBØÔ!1°%·)±)¸LÓ2IÓ!J×!OÐ!OÈaóñ
 Nñ
ðð ùò
ùò
s   Á/8EÂ("EÃ!5E
Ä'E
Ä?E
c               ó    € V ^8„  d   QhRRRR/# ©r   Úpayloadrr   r   ú	list[str]r   )r   s   "r   r   r   ø   s   € ÷ iñ i ð i°Iñ ir   c           	     ó¬  € \        V P                  R4      ;'       g    ^ 4      p\        \        ,          p. pV^ 8”  d™   V P                  R4      ;'       g    .  Ft  p\        VP                  R4      ;'       g    ^ 4      p\	        WQ,          V,          4      ;'       g    V^ 8”  d   ^M^ pVP                  \        V4      .V,          4       Kv  	  VRV pVP                  \        .V\        V4      ,
          ,          4       \        \        4       Uu. uF3  pRP                  W7\        ,          V^,           \        ,           4      NK5  	  up# u upi )z€Glyph grid: 100 cells, one per percent of the context window; categories
fill in declaration order, the remainder is free space.r†   r£   r¦   NÚ )r#   rF   Ú_GRID_COLUMNSÚ
_GRID_ROWSrŒ   Úextendrv   Ú_FREE_GLYPHÚlenÚrangern   )rÏ   r†   Útotal_cellsÚcellsrq   r¦   ÚnÚrows   &       r   Úrender_context_gridrÝ   ø   s  € ô �g—k‘k -Ó0×5Ð5°AÓ6€KÜ¤*Õ,€KØ€EØ�Q„Ø—;‘;˜|Ó,×2Ð2°Ò2ˆCÜ˜Ÿ™ Ó*×/Ð/¨aÓ0ˆFä�fÕ*¨[Õ8Ó9×UÐUÀ6ÈAÄ:¹aÐSTˆAØ�L‰Lœ& ›+˜¨Õ*Ö+ñ	 3ð
 �l�{Ð#ˆØ	‡L�L”+� +´°E³
Õ":Õ;Ô<ÜV[Ô\fÔVgÓhÑVgÈsˆC�H‰H�U¤Õ.°°aµ¼=Õ/HÐIÖJÑVgÑhÐhùÒhs   Ä9Ec               ó    € V ^8„  d   QhRRRR/# rÎ   r   )r   s   "r   r   r   	  s   € ÷ ñ ¨>ð ¸iñ r   c                ó€  € V P                  R4      ;'       g    . p\        V P                  R4      ;'       g    ^ 4      p\        V P                  R4      ;'       g    ^ 4      pT;'       g    Tp\        R4      .pV'       g   . VO\        R4      N# \        R4      p\        \	        V4      .R V 4       O5!  pV F«  p\        VP                  R4      ;'       g    ^ 4      \        VP                  R	4      ;'       g    VP                  R
4      ;'       g    R4      r©TP                  \        R\        V4      V
RV 2 V	R V'       d   W”,          ^d,          MRR R7      4       K­  	  V^ 8”  dL   \        ^ W#,
          4      pVP                  \        R\        VRV 2 VR W²,          ^d,          R R7      4       V# )zCRender the 'Estimated usage by category' table as plain-text lines.r£   r†   r§   zgateway.context.category_headerzgateway.context.no_data_yetzgateway.context.free_spacec              3  ó|   "  € T F2  p\        \        VP                  R 4      ;'       g    R4      4      x € K4  	  R# 5i)r¥   r8   N)r×   r   rF   )rj   rq   s   & r   rl   Ú0render_context_category_lines.<locals>.<genexpr>  s.   é € Ð"ZÉzÈ¤3¤s¨3¯7©7°7Ó+;×+AÐ+A¸rÓ'B×#CÐ#CËzùs   ‚&<©<r¦   r¥   rt   r8   zgateway.context.category_rowÚ<z>9,g        z>5.1f)Úglyphr¥   r¦   Úpct)	rF   r#   r
   rŠ   r×   r   rI   rv   rÖ   )rÏ   r£   r†   r§   ÚdenomÚlinesÚ
free_labelÚwidthrq   r¦   r¥   Úfrees   &           r   Úrender_context_category_linesrê   	  s   € à—‘˜\Ó*×0Ð0¨b€JÜ�g—k‘k -Ó0×5Ð5°AÓ6€KÜ˜'Ÿ+™+Ð&7Ó8×=Ð=¸AÓ>€OØ×*Ð*˜?€EäÐ0Ó1Ð2€EßØ9�Ð9œÐ7Ó8Ð9Ð9ÜÐ/Ó0€JÜ”�J“Ð[Ñ"ZÉzÓ"ZÓ[€EÛˆÜ˜CŸG™G HÓ-×2Ð2°Ó3´S¸¿¹ÀÓ9I×9`Ð9`ÈSÏWÉWÐUYË]×9`Ð9`Ð^`Ó5a�Ø�‰”QÐ5¼VÀC»[ÐSXÐYZÐ[`ÐZaÐXaÐRbØ!'¨ Ïe°fµnÀsÖ6JÐY\Ð]bÐ5côfö 	gñ ð �Q„Ü�1�kÕ3Ó4ˆØ�‰”QÐ5¼[ÐS]Ð^_Ð`eÐ_fÐ]fÐRgØ!% c 
°DÕ4FÈÕ4LÈUÐ3SôVô 	Wà€Lr   c               ó    € V ^8„  d   QhRRRR/# )r   r;   rr   r   r   r   )r   s   "r   r   r      s   € ÷ 5ñ 5˜ð 5¨3ñ 5r   c                óV   € \        R V R,          R V R,          R V R,          R R7      # )zgateway.context.toolset_rowrÅ   z<24rÆ   z>3rÇ   ú>8,)rÅ   Úcountr¦   r	   )r;   s   &r   Ú_toolset_rowrï      s:   € ÜÐ*°u¸YÕ7GÈÐ6LÐX]Ð^jÕXkÐlnÐWoØ˜_Õ-¨cÐ2ô5ð 5r   c               ó    € V ^8„  d   QhRRRR/# )r   rË   rr   r   r   r   )r   s   "r   r   r   %  s   € ÷ }ñ }�nð }¨ñ }r   c                ó  € \        V P                  R 4      ;'       g    R4      p\        V4      ^8”  d   VR,          R,           pV P                  R4      pVe   RVR 2M\        R4      R p\        R	VR
 V R,          R VR7      # )rB   r8   :Né   Nu   â€¦rÂ   Ú~rí   zgateway.context.not_availablez>8zgateway.context.skill_rowz<28rÀ   z>6,)rB   rÀ   Ú	md_tokens)r   rF   r×   r
   )rË   rB   ÚmdÚmd_strs   &   r   Ú
_skill_rowr÷   %  s‡   € Üˆu�y‰y˜Ó ×&Ð& BÓ'€DÜ
ˆ4ƒy�2„~Ø�C�y˜5Õ ˆØ	�‰Ð$Ó	%€BØš^ˆq��C�‰\´AÐ6UÓ4VÐWYÐ3Z€FÜÐ(°$°s°ÈeÐTbÕNcÐdgÐMhÐu{Ô|Ð|r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ræ   rÐ   Útitler   Úrowszlist[dict[str, Any]]r   ÚNoner   )r   s   "r   r   r   .  s/   € ÷ 	\ñ 	\�)ð 	\ Cð 	\Ð/Cð 	\ÈTñ 	\r   c                ó@  a€ V'       g   R# V '       d   V P                  R4       V P                  V4       V P                  V3R lVR\          4       4       \        V4      \        8”  d3   V P                  \	        R\        V4      \        ,
          R7      4       R# R# )zMAppend a titled, display-capped table (blank-separated from a preceding one).Nr8   c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5iri   r   )rj   rÜ   Úfmts   & €r   rl   Ú_table.<locals>.<genexpr>5  s   øé € ÐAÑ%@˜c‘�S—�Ó%@ùs   ƒzgateway.context.and_more)rî   )rI   rÕ   Ú_DETAILS_TABLE_LIMITr×   r
   )ræ   rù   rú   rþ   s   &&&fr   Ú_tabler  .  so   ø€ çÙßØ�‰�RÔØ	‡L�L�ÔØ	‡L�LÔA TÐ*?Ô+?Ñ%@ÓAÔAÜ
ˆ4ƒyÔ'Ô'Ø�‰”QÐ1¼¸T»ÔEYÕ9YÔZÖ[ñ (r   c               ó    € V ^8„  d   QhRRRR/# )r   Údetailsrr   r   rÐ   r   )r   s   "r   r   r   :  s   € ÷ ñ ¨.ð ¸Yñ r   c                óÚ   € . p\        T\        R4      V P                  R4      ;'       g    . \        4       \        T\        R4      V P                  R4      ;'       g    . \        4       V# )zDRender the expanded ``/context all`` per-skill / per-toolset tables.zgateway.context.toolsets_titlerÄ   zgateway.context.skills_titler   )r  r
   rF   rï   r÷   )r  ræ   s   & r   Úrender_context_details_linesr  :  sY   € à€EÜ
ˆ5”!Ð4Ó5°w·{±{À:Ó7N×7TÐ7TÐRTÔVbÔcÜ
ˆ5”!Ð2Ó3°W·[±[ÀÓ5J×5PÐ5PÈbÔR\Ô]Ø€Lr   r  ÚgridTc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rÏ   rr   r  zOptional[dict[str, Any]]r  Úboolr   rÐ   r   )r   s   "r   r   r   B  s2   € ÷ ñ Øðð &ðð ð	ð
 ñr   c               ó   € V'       d   . \        V 4      ORNM. pVP                  \        V 4      4       \        V P	                  R4      ;'       g    ^ 4      pV^ 8”  d×   \        V P	                  R4      ;'       g    ^ 4      \        V P	                  R4      ;'       g    ^ 4      reV P	                  R4      '       d   RMRpVP                  R\        RWuR VR VR	7      .4       V P	                  R
4      pV'       d8   V\        9   d   \        RV 24      MTp	VP                  \        RV	R7      4       Vf   VP                  R\        R4      .4       V# \        V4      ;p
'       d   VP                  R.V
O4       V# )z‡Full /context view. ``grid`` prepends the glyph grid (CLI; the gateway
keeps its own gauge); ``details`` appends the expanded listings.r8   r†   r…   r‡   r‰   ró   zgateway.context.window_lineÚ,)Úmarkr�   rŠ   rä   rˆ   zgateway.context.source.zgateway.context.source_line)r�   zgateway.context.hint_all)	rÝ   rÕ   rê   r#   rF   r
   Ú_CONTEXT_SOURCESrI   r  )rÏ   r  r  ræ   r†   r�   rä   r  r�   Úsource_labelÚdetail_liness   &$$        r   Úrender_context_breakdown_linesr  B  sY  € ÷ ?CÐ:Ô,¨WÓ5Ð:°rÑ:È€EØ	‡L�LÔ.¨wÓ7Ô8ä�g—k‘k -Ó0×5Ð5°AÓ6€KØ�Q„Ü˜Ÿ™ NÓ3×8Ð8°qÓ9¼3¸w¿{¹{ÐK\Ó?]×?bÐ?bÐabÓ;cˆcØ—k‘kÐ"5×6Ò6‰s¸BˆØ�‰�bœ!Ð9ÀÐSTÈXÐ_jÐklÐ^mÐtwÔxÐyÔzØ—‘Ð-Ó.ˆßØDJÔN^ÔD^œ1Ð6°v°hÐ?Ô@ÐdjˆLØ�L‰LœÐ8ÀÔNÔOà‚Ø�‰�bœ!Ð6Ó7Ð8Ô9ð €Lô 6°gÓ>Ð	>ˆÖ	>Ø�‰�bÐ(˜<Ð(Ô)Ø€Lr   )zvar(--context-usage-system)u   â– )zvar(--context-usage-tools)u   â–£)zvar(--context-usage-rules)u   â–©)zvar(--context-usage-skills)u   â–¤)zvar(--context-usage-mcp)u   â–¥)zvar(--context-usage-subagents)u   â–¦)zvar(--context-usage-memory)u   â–§)z!var(--context-usage-conversation)u   â–¨>   r|   r}   r¢   ri   )/Ú__doc__Ú
__future__r   r-   ÚreÚtypingr   r   r   r   r   r   Ú
agent.i18nr
   ÚcompileÚDOTALLr9   Ú	frozensetrH   r¯   ru   r   rÖ   r  rÓ   rÔ   r   r(   r/   r4   r=   rO   r]   rd   ro   rv   r�   r�   r»   rÌ   rÝ   rê   rï   r÷   r  r  r  r   r   r   Ú<module>r     s9  ðñõ #ã Û 	ß =× =å à—:’:ÐIÈ2Ï9É9ÓUÐ Ù  /Ð!2Ó3Ð ñ" ˜nÐ-Ó.Ð ð
 Ð;ØÐ=ØÐ2ØÐ4Ø	Ð.ØÐEØÐ4ØÐ@ð	€õ8à€ÙÒaÓbÐ Ø€Ø€
ØÐ õ'õ
SõHõ
#õ	"õ
$õõ?õGõtõ
W÷BõJõHiõ"õ.5õ
}õ	\õðð )-ðð ÷	ñ r   