§
    øžyjû4  ã                  óê  — d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
mZ dZd>d	„Z ed
¬¦  «        d?d„¦   «         Z ed
¬¦  «        d@d„¦   «         ZdAd„ZdBd„ZdCd„ZdDd „Zd!„ Zdd"d#œdEd%„ZdFd)„ZdGd+„ZdHd/„ZdFd0„ZdFd1„ZdFd2„ZdId5„ZdJd9„ZdFd:„Zed;k    rU ej         d<¬=¦  «        Z! ee!¦  «         e! "                    ¦   «         Z# ej$        e# %                    e#¦  «        ¦  «         dS dS )Kuò  ``hermes journey`` â€” what Hermes has learned, on a timeline.

A terminal-native rendition of the desktop Star Map / Memory Graph: a horizontal
timeline bar chart of learned skills and memories over time (oldest at top,
newest at bottom) plus the playable constellation scrubber. Graph assembly,
layout, and the (ported-from-desktop) palette all live in
``agent.learning_graph`` / ``agent.learning_graph_render`` so the CLI, the TUI
``/journey`` overlay, and the desktop panel draw the same data.
é    )ÚannotationsN)Ú	lru_cache)ÚAnyÚOptionalz#E8C463Úreturnúdict[str, Any]c                 ó"   — ddl m}   | ¦   «         S )Nr   ©Úbuild_learning_graph)Úagent.learning_graphr   r
   s    ú8/home/ragecks/.hermes/hermes-agent/hermes_cli/journey.pyÚ_build_payloadr      s#   € Ø9Ð9Ð9Ð9Ð9Ð9àÐÑ!Ô!Ð!ó    é   )ÚmaxsizeÚstrc                 óž   — 	 ddl m}   | ¦   «         }|                     dd¦  «        p|                     dd¦  «        S # t          $ r Y dS w xY w)z@The active skin's primary color (mirrors the TUI theme primary).r   )Úget_active_skinÚ
ui_primaryÚ Úbanner_titlez#FFD700)Úhermes_cli.skin_enginer   Ú	get_colorÚ	Exception)r   Úskins     r   Ú_primary_hexr      sp   € ðØ:Ð:Ð:Ð:Ð:Ð:àˆÑ Ô ˆØ�~Š~˜l¨BÑ/Ô/Ð\°4·>²>À.ÐR[Ñ3\Ô3\Ð\øÝð ð ð Øˆyˆyðøøøs   ‚;> ¾
AÁAúdict[str, str]c                 ó@   — ddl m}   | t          ¦   «         d¬¦  «        S )Nr   ©Úderive_paletteT)Údark)Úagent.learning_graph_renderr    r   r   s    r   Ú_paletter#   )   s-   € à:Ð:Ð:Ð:Ð:Ð:àˆ>�,™.œ.¨tÐ4Ñ4Ô4Ð4r   ÚbaseúOptional[str]ÚalphaÚfloatc                ó¢   — ddl m}m}m} | sd S |dk    r| S  | | |t	          ¦   «         d         ¦  «         || ¦  «        |¦  «        ¦  «        S )Nr   )Ú
hex_to_rgbÚmix_rgbÚ
rgb_to_hexg+‡ÙÎ÷ï?Úbg)r"   r)   r*   r+   r#   )r$   r&   r)   r*   r+   s        r   Ú_fader-   0   sv   € ØKÐKÐKÐKÐKÐKÐKÐKÐKÐKàð ØˆtØ�‚~€~ØˆØˆ:�g�g˜j˜j­©¬°DÔ)9Ñ:Ô:¸J¸JÀtÑ<LÔ<LÈeÑTÔTÑUÔUÐUr   Ústylec                ó`   — t          t          ¦   «                              | ¦  «        |¦  «        S )zLFade the style's base ink toward the background by ``alpha`` (rgba-over-bg).)r-   r#   Úget)r.   r&   s     r   Ú_resolver1   :   s"   € å•‘”—’ Ñ&Ô&¨Ñ.Ô.Ð.r   ÚrowÚlistÚcolorÚboolc                óŽ  — ddl m}  |¦   «         }| D ]±}|d         }|d         }t          |¦  «        dk    r|d         nd}t          |¦  «        dk    r|d         nd }|s|                     |¦  «         Œd|r&|                     |t	          ||¦  «        ¬¦  «         ŒŒ|                     |t          ||¦  «        ¬¦  «         Œ²|S )Nr   ©ÚTextr   é   ç      ð?é   ©r.   )Ú	rich.textr8   ÚlenÚappendr-   r1   )	r2   r4   r8   ÚtextÚrunÚchunkr.   r&   Úoverrides	            r   Ú_row_to_textrD   ?   sæ   € ØÐÐÐÐÐàˆ4‰6Œ6€DØð 
=ð 
=ˆØ�A”ˆØ�A”ˆÝ˜c™(œ( Qš,˜,��A”�¨CˆÝ  ™XœX¨š\˜\�3�q”6�6¨tˆØð 	=Ø�KŠK˜ÑÔÐÐØð 	=Ø�KŠK˜¥U¨8°UÑ%;Ô%;ˆKÑ<Ô<Ð<Ð<à�KŠK˜¥X¨e°UÑ%;Ô%;ˆKÑ<Ô<Ð<Ð<Ø€Kr   ÚwidthúOptional[int]Úheightútuple[int, int]c                ó†   — t          j        d¦  «        }t          d| p|j        ¦  «        t          d|p|j        ¦  «        fS )N)éZ   é   é(   é
   )ÚshutilÚget_terminal_sizeÚmaxÚcolumnsÚlines)rE   rG   Úsizes      r   Ú
_term_sizerT   Q   s?   € ÝÔ# HÑ-Ô-€DÝˆr�5Ð(˜DœLÑ)Ô)­3¨r°6Ð3G¸T¼ZÑ+HÔ+HÐHÐHr   c          	     ó4
  ‡‡ — ddl m} ddlmŠ  ddlm} |                     | ¦  «        }|                     | ¦  «        }|                     | ¦  «        }	| 	                    | ¦  «        }
t          d|dz
  ¦  «        }t          d|dz
  t          |	¦  «        z
  ¦  «        }|                     | |||¬	¦  «        }t          |                      d
g ¦  «        ¦  «        }g } ‰ ¦   «         }|                     d‰r
dt          › �nd ¬¦  «         |                     d‰rdnd ¬¦  «         |                     |¦  «          ‰ d¦  «        }t!          |¦  «        D ]u\  }}|r|                     d¦  «         |                     |d         dz   ‰rt#          |d         d¦  «        nd ¬¦  «         |                     |d         ‰rdnd ¬¦  «         Œv|                     |¦  «         |r² ‰ d¦  «        }t!          |¦  «        D ]‚\  }}|r|                     d¦  «         |                     |d         dz   ‰r#t%          |                     d¦  «        d¦  «        nd ¬¦  «         |                     |d         ‰rdnd ¬¦  «         Œƒ|                     |¦  «         |                      ‰ d¦  «        ¦  «         |d         D ]<}t'          |‰¦  «        }|                     d¦  «         |                     |¦  «         Œ= ‰ d¦  «        }|                     |
d         ‰rdnd ¬¦  «         t          d|t          |
d         ¦  «        z
  t          |
d         ¦  «        z
  ¦  «        }|                     d|z  ¦  «         |                     |
d         ‰rdnd ¬¦  «         |                     |¦  «         t+          t-          |dz  ¦  «        ¦  «        } ‰ d¦  «        }|                     d‰rdnd ¬¦  «         |                     |d          pd!‰rt          nd ¬¦  «         |                     d|d"         › d#|› d$|› d%�‰rdnd ¬¦  «         |                     |¦  «         |                     d&g ¦  «        }|rx|                      ‰ d¦  «        ¦  «          ‰ d'‰rdnd ¬¦  «        }|                     |¦  «         d+ˆ ˆfd*„}|d d…         D ]"} ||¦  «        }|                     |¦  «         Œ#|	D ])}|                      ‰ d|z   ‰rdnd ¬¦  «        ¦  «         Œ* ||Ž S ),Nr   )ÚGroupr7   )Úlearning_graph_renderé   r9   é   rM   )ÚcolsÚrowsÚrevealÚnodesu   âœ¦ Journey zbold r<   u&   Â· learned skills & memories over timeÚgrey62ú  z   ÚglyphÚ r.   r:   Úlabelr4   Úgrey54r   ÚgridÚstartr   Úendéd   u   â—· Údateu   â€”Úvisibleú/u    revealed Â· ú%Úlabelsz  charted signalsr   r8   c                ó„  •—  ‰d¦  «        }|                      | d         › d�‰rdnd ¬¦  «         |                      | d         › d�‰r7t          | d         t          |                      dd	¦  «        ¦  «        ¦  «        nd ¬¦  «         |                      t	          | d
         ¦  «        ‰r7t          | d         t          |                      dd	¦  «        ¦  «        ¦  «        nd ¬¦  «         t	          | d         ¦  «        }|                      dt          |¦  «        dk    r|n|d d…         dz   › �‰rdnd ¬¦  «         |S )Nr_   Úkeyra   Úgrey70r<   r`   r.   r&   r:   rb   Úmetaé    é   u   â€¦rc   )r?   r1   r'   r0   r   r>   )Úitemr2   rp   r8   r4   s      €€r   Ú	label_rowz$_frame_renderable.<locals>.label_row›   sI  ø€ Ø�$�t‘*”*ˆCØ�JŠJ˜$˜uœ+Ð(Ð(Ð(¸EÐ0K°°ÀtˆJÑLÔLÐLØ�JŠJ˜$˜wœ-Ð*Ð*Ð*ÐlqÐ2{µ(¸4À¼=Í%ÐPT×PXÒPXÐY`ÐbeÑPfÔPfÑJgÔJgÑ2hÔ2hÐ2hÐw{ˆJÑ|Ô|Ð|Ø�JŠJ•s˜4 œ=Ñ)Ô)ÐkpÐ1zµ¸$¸w¼-ÍÈtÏxÊxÐX_ÐadÑOeÔOeÑIfÔIfÑ1gÔ1gÐ1gÐvzˆJÑ{Ô{Ð{Ý�t˜F”|Ñ$Ô$ˆDØ�JŠJÐL¥C¨¡I¤I°¢O O˜D˜D¸¸c¸r¸c¼ÀUÑ9JÐLÐLÐ`eÐToÐT\ÐT\ÐkoˆJÑpÔpÐpØˆJr   )r   r8   )Úrich.consolerV   r=   r8   ÚagentrW   Úbuild_legendÚcategory_legendÚbuild_summaryÚaxis_labelsrP   r>   Úrender_graphr0   r?   Ú_TITLE_COLORÚ	enumerater1   r-   rD   Úpad_leftÚintÚround)!ÚpayloadrZ   r[   r\   r4   rV   ÚrenderÚlegendÚ
categoriesÚsummaryÚaxisÚinnerÚ
field_rowsÚframeÚcountÚpartsÚtitleÚlegend_lineÚirs   Úcat_lineÚgrowÚlineÚ	axis_lineÚgapÚpctÚfootrl   Úheadingrt   r2   Ú	line_textr8   s!       `                           @r   Ú_frame_renderabler˜   V   sÉ  øø€ Ø"Ð"Ð"Ð"Ð"Ð"ØÐÐÐÐÐà5Ð5Ð5Ð5Ð5Ð5à× Ò  Ñ)Ô)€FØ×'Ò'¨Ñ0Ô0€JØ×"Ò" 7Ñ+Ô+€GØ×Ò˜gÑ&Ô&€Då��D˜1‘HÑÔ€Eå�Q˜˜r™	¥C¨¡L¤LÑ0Ñ1Ô1€JØ×Ò ¨e¸*ÈVÐÑTÔT€EÝ�—’˜G RÑ(Ô(Ñ)Ô)€Eà€EàˆD‰FŒF€EØ	‡L‚L�ÀÐ'PÐ'=­|Ð'=Ð'=Ð'=ÈD€LÑQÔQÐQØ	‡L‚LÐ9ÈUÐA\ÀÀÐX\€LÑ]Ô]Ð]Ø	‡L‚L�ÑÔÐà�$�t‘*”*€KÝ˜VÑ$Ô$ð Mð M‰ˆˆ4Øð 	&Ø×Ò˜uÑ%Ô%Ð%Ø×Ò˜4 œ=¨3Ñ.ÐV[Ð6eµh¸tÀG¼}ÈcÑ6RÔ6RÐ6RÐaeÐÑfÔfÐfØ×Ò˜4 œ=¸EÐ0K°°ÀtÐÑLÔLÐLÐLØ	‡L‚L�ÑÔÐàð Ø�4˜‘:”:ˆÝ  Ñ,Ô,ð 	Nð 	N‰GˆAˆtØð &Ø—’ Ñ%Ô%Ð%Ø�OŠO˜D œM¨CÑ/ÐX]Ð7gµu¸T¿XºXÀgÑ=NÔ=NÐPSÑ7TÔ7TÐ7TÐcgˆOÑhÔhÐhØ�OŠO˜D œM¸UÐ1L°°ÈˆOÑMÔMÐMÐMØ�Š�XÑÔÐà	‡L‚L���b‘”ÑÔÐà�f”ð ð ˆÝ˜D %Ñ(Ô(ˆØ�Š�aÑÔÐØ�Š�TÑÔÐÐð ��T‘
”
€IØ×Ò�T˜'”]°eÐ*E¨(¨(ÀÐÑFÔFÐFÝ
ˆa��˜T 'œ]Ñ+Ô+Ñ+­c°$°u´+Ñ.>Ô.>Ñ>Ñ
?Ô
?€CØ×Ò�S˜3‘YÑÔÐØ×Ò�T˜%”[°EÐ(C¨¨¸tÐÑDÔDÐDØ	‡L‚L�ÑÔÐå
�e�F˜S‘LÑ!Ô!Ñ
"Ô
"€CØˆ4�‰:Œ:€DØ‡K‚K�¨%Ð9˜h˜h°T€KÑ:Ô:Ð:Ø‡K‚K��f”Ð& ¸eÐ.M­l¨lÈ€KÑNÔNÐNØ‡K‚KÐC�e˜IÔ&ÐCÐC¨ÐCÐC¸SÐCÐCÐCÐW\ÐKfÈ8È8Ðbf€KÑgÔgÐgØ	‡L‚L�ÑÔÐà�YŠY�x Ñ$Ô$€FØð Ø�Š�T�T˜"‘X”XÑÔÐØ�$Ð*¸eÐ2M°(°(ÈÐNÑNÔNˆØ�Š�WÑÔÐð	ð 	ð 	ð 	ð 	ð 	ð 	ð ˜2˜A˜2”Jð 	ð 	ˆDØ�)˜D‘/”/ˆCØ�LŠL˜ÑÔÐÐàð Pð Pˆ	Ø�Š�T�T˜$ Ñ*¸eÐ2M°(°(ÈÐNÑNÔNÑOÔOÐOÐOàˆ5�%ˆ=Ðr   F)rE   Úforcer™   c                ó8   — ddl m} |rdddœni } |d|  |dœ|¤ŽS )u  A Rich console. ``force`` emits truecolor ANSI even into a captured
    stream â€” the interactive CLI grabs that output and re-renders it through
    prompt_toolkit (raw escapes to a real terminal would otherwise be
    swallowed). Mirrors the ``ChatConsole`` idiom in ``cli.py``.r   ©ÚConsoleTÚ	truecolor)Úforce_terminalÚcolor_system)Úno_colorrE   © )ru   rœ   )r4   rE   r™   rœ   Úextras        r   Ú_consoler£   ®   sM   € ð
 %Ð$Ð$Ð$Ð$Ð$àEJÐR˜t°[ÐAÐAÐAÐPR€EØˆ7Ð< ˜I¨UÐ<Ð<°eÐ<Ð<Ð<r   Úargsúargparse.Namespacer   c                óz  — ddl m} t          | dd¦  «        r`dd l} |t	          t          | dd¦  «        ¦  «        ¬¦  «                             |                     t          ¦   «         ¦  «        ¦  «         dS t          ¦   «         }t	          t          | dd¦  «        ¦  «         }t          t          | dd ¦  «        t          | dd ¦  «        ¦  «        \  }}t          ||t	          t          | d	d¦  «        ¦  «        ¬
¦  «        }| 
                    d¦  «        s|                     d¦  «         dS t          | dd¦  «        r$t          |||||t          | dd¦  «        ¬¦  «        S t          t          t          | dd¦  «        pd¦  «        dd¦  «        }|                     t          |||||¬¦  «        ¦  «         dS )Nr   r›   ÚjsonFr    )r    rE   rG   Úforce_color)r4   rE   r™   r]   uy   [grey62]No learning yet â€” use Hermes a while and your learned skills and memories will start mapping out here.[/grey62]ÚplayÚfpsé   )rZ   r[   r4   rª   r\   r:   g        ©rZ   r[   r\   r4   )ru   rœ   Úgetattrr§   r5   Ú
print_jsonÚdumpsr   rT   r£   r0   ÚprintÚ_playÚ_clampr'   r˜   )	r¤   rœ   r§   r�   r4   rZ   r[   Úconsoler\   s	            r   Ú	_cmd_showr´   ¹   sÅ  € Ø$Ð$Ð$Ð$Ð$Ð$åˆt�V˜UÑ#Ô#ð Øˆˆˆàˆ��g d¨J¸Ñ>Ô>Ñ?Ô?Ð@Ñ@Ô@×KÒKÈDÏJÊJÕWeÑWgÔWgÑLhÔLhÑiÔiÐiØˆqåÑÔ€GÝ•W˜T :¨uÑ5Ô5Ñ6Ô6Ð6€EÝ�G D¨'°4Ñ8Ô8½'À$ÈÐRVÑ:WÔ:WÑXÔX�J€Dˆ$Ý˜U¨$µd½7À4ÈÐX]Ñ;^Ô;^Ñ6_Ô6_Ð`Ñ`Ô`€Gà�;Š;�wÑÔð Ø�Šð=ñ	
ô 	
ð 	
ð ˆqåˆt�V˜UÑ#Ô#ð hÝ�W˜g¨D°tÀ5ÍgÐVZÐ\aÐceÑNfÔNfÐgÑgÔgÐgå•E�' $¨°#Ñ6Ô6Ð=¸#Ñ>Ô>ÀÀSÑIÔI€FØ‡M‚MÕ# G°$¸TÈ&ÐX]Ð^Ñ^Ô^Ñ_Ô_Ð_Øˆ1r   rª   c               ó  — ddl m} d}dt          dt          d|¦  «        ¦  «        z  }	  || t          d|¦  «        d¬¦  «        5 }	t	          |¦  «        D ]E}
|
|dz
  z  }|	                     t          |||||¬	¦  «        ¦  «         t          j        |¦  «         ŒF|	                     t          |||d|¬	¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   n&# t          $ r |  
                    d
¦  «         Y dS w xY wdS )Nr   )ÚLiveé*   r:   r   é<   F)r³   Úrefresh_per_secondÚscreenr¬   z[grey54]interrupted[/grey54]é‚   )Ú	rich.liver¶   rP   ÚminÚrangeÚupdater˜   ÚtimeÚsleepÚKeyboardInterruptr°   )r³   r�   rZ   r[   r4   rª   r¶   ÚframesÚdelayÚliverŽ   r\   s               r   r±   r±   Ö   s�  € ØÐÐÐÐÐà€FØ•#�a�˜R ™œÑ&Ô&Ñ&€Eð	ØˆT˜'µc¸!¸S±k´kÈ%ÐPÑPÔPð 	cÐTXÝ˜6‘]”]ð "ð "�Ø˜f q™jÑ)�Ø—’Õ-¨g¸DÀtÐTZÐbgÐhÑhÔhÑiÔiÐiÝ”
˜5Ñ!Ô!Ð!Ð!Ø�KŠKÕ)¨'¸À4ÐPSÐ[`ÐaÑaÔaÑbÔbÐbð	cð 	cð 	cñ 	cô 	cð 	cð 	cð 	cð 	cð 	cð 	cøøøð 	cð 	cð 	cð 	cøøõ ð ð ð Ø�ŠÐ4Ñ5Ô5Ð5Øˆsˆsðøøøð ˆ1s6   «C ÁA=CÃC ÃCÃC ÃCÃC ÃC?Ã>C?ÚvÚloÚhic                ó&   — | |k     r|n	| |k    r|n| S ©Nr¡   )rÆ   rÇ   rÈ   s      r   r²   r²   è   s    € Ø�R’�ˆ2ˆ2 1 r¢6 6˜R˜R¨qÐ0r   c                ó4  — ddl m} t          t          t	          | dd¦  «        ¦  «         t          t	          | dd¦  «        ¦  «        ¬¦  «        }t          t          ¦   «                              dg ¦  «        d„ ¬	¦  «        }|s|                     d
¦  «         dS |D ]y}|                     d¦  «        dk    rdnd} ||                     d¦  «        ¦  «        }|                     d|d         › d|› d|                     dd¦  «        › d|› d�	¦  «         ŒzdS )Nr   )Úformat_dater    Fr¨   )r4   r™   r]   c                ó0   — |                       d¦  «        pdS )NÚ	timestampr   )r0   )Úns    r   ú<lambda>z_cmd_list.<locals>.<lambda>ó   s   € ÀAÇEÂEÈ+ÑDVÔDVÐD[ÐZ[€ r   )rn   z![grey62]No learning yet.[/grey62]ÚkindÚmemoryu   â—†u   â—�rÎ   z[grey54]Úidz[/grey54]  ra   rb   r   z
  [grey54]z	[/grey54])	r"   rÌ   r£   r5   r­   Úsortedr   r0   r°   )r¤   rÌ   r³   r]   Únoder`   rh   s          r   Ú	_cmd_listrÖ   ï   s>  € Ø7Ð7Ð7Ð7Ð7Ð7å¥¥g¨d°JÀÑ&FÔ&FÑ!GÔ!GÐGÍtÕT[Ð\`ÐboÐqvÑTwÔTwÑOxÔOxÐyÑyÔy€GÝ•>Ñ#Ô#×'Ò'¨°Ñ4Ô4Ð:[Ð:[Ð\Ñ\Ô\€EØð Ø�ŠÐ9Ñ:Ô:Ð:ØˆqØð rð rˆØŸš &Ñ)Ô)¨XÒ5Ð5��¸5ˆØˆ{˜4Ÿ8š8 KÑ0Ô0Ñ1Ô1ˆØ�ŠÐp  d¤ÐpÐp¸ÐpÐpÀÇÂÈÐRTÑ@UÔ@UÐpÐpÐaeÐpÐpÐpÑqÔqÐqÐqØˆ1r   c                óB  — ddl m}m}  || j        ¦  «        }|                     d¦  «        s(t          d|                     dd¦  «        › �¦  «         dS t          | dd	¦  «        sy	 t          d
|d         ›d�¦  «                             ¦   «          	                    ¦   «         dvrt          d¦  «         dS n'# t          t          f$ r t          d¦  «         Y dS w xY w || j        ¦  «        }t          d|d         › �¦  «         |                     d¦  «        rdndS )Nr   )Údelete_nodeÚnode_detailÚokr_   Úmessageú	not foundr   ÚyesFz	  Delete rb   z? [y/N] )ÚyrÝ   z	  abortedz

  aborted)Úagent.learning_mutationsrØ   rÙ   rÕ   r0   r°   r­   ÚinputÚstripÚlowerÚEOFErrorrÂ   )r¤   rØ   rÙ   ÚdetailÚress        r   Ú_cmd_deleteræ   þ   sV  € ØAÐAÐAÐAÐAÐAÐAÐAàˆ[˜œÑ#Ô#€FØ�:Š:�dÑÔð ÝÐ7�6—:’:˜i¨Ñ5Ô5Ð7Ð7Ñ8Ô8Ð8ØˆqÝ�4˜ Ñ&Ô&ð ð	ÝÐ< ¨¤Ð<Ð<Ð<Ñ=Ô=×CÒCÑEÔE×KÒKÑMÔMÐUaÐaÐaÝ�kÑ"Ô"Ð"Ø�qð bøõ Õ+Ð,ð 	ð 	ð 	Ý�-Ñ Ô Ð Ø�1�1ð	øøøð ˆ+�d”iÑ
 Ô
 €CÝ	Ð
ˆs�9Œ~Ð
Ð
Ñ Ô Ð Ø—’˜‘”Ð$ˆ1ˆ1 1Ð$s   Á(AB9 Â9 CÃCc                ó  — ddl m}m}  || j        ¦  «        }|                     d¦  «        s(t          d|                     dd¦  «        › �¦  «         dS |d         d	k    rd
nd}t          |d         |¬¦  «        }|�0|                     ¦   «         |d                              ¦   «         k    rt          d¦  «         dS  || j        |¦  «        }t          d|d         › �¦  «         |                     d¦  «        rdndS )Nr   )Ú	edit_noderÙ   rÚ   r_   rÛ   rÜ   r   rÑ   Úskillz.mdz.txtÚcontent)Úsuffixz  no changes)rß   rè   rÙ   rÕ   r0   r°   Ú_open_in_editorrá   )r¤   rè   rÙ   rä   rë   Úeditedrå   s          r   Ú	_cmd_editrî     s  € Ø?Ð?Ð?Ð?Ð?Ð?Ð?Ð?àˆ[˜œÑ#Ô#€FØ�:Š:�dÑÔð ÝÐ7�6—:’:˜i¨Ñ5Ô5Ð7Ð7Ñ8Ô8Ð8ØˆqØ˜V”n¨Ò/Ð/ˆUˆU°V€FÝ˜V IÔ.°vÐ>Ñ>Ô>€FØ€~˜Ÿš™œ¨6°)Ô+<×+BÒ+BÑ+DÔ+DÒDÐDÝˆnÑÔÐØˆqØ
ˆ)�D”I˜vÑ
&Ô
&€CÝ	Ð
ˆs�9Œ~Ð
Ð
Ñ Ô Ð Ø—’˜‘”Ð$ˆ1ˆ1 1Ð$r   Úinitialrë   c               óŒ  — dd l }dd l}dd l}|j                             d¦  «        p|j                             d¦  «        pd}|                     d|dd¬¦  «        5 }|                     | ¦  «         |j        }d d d ¦  «         n# 1 swxY w Y   	 |                     g | 	                    ¦   «         ¢|‘¦  «         t          |d¬	¦  «        5 }|                     ¦   «         cd d d ¦  «         	 |                     |¦  «         S # t          $ r Y S w xY w# 1 swxY w Y   nQ# t          $ rD}t          d
|› �¦  «         Y d }~	 |                     |¦  «         d S # t          $ r Y d S w xY wd }~ww xY w	 	 |                     |¦  «         d S # t          $ r Y d S w xY w# 	 |                     |¦  «         w # t          $ r Y w w xY wxY w)Nr   ÚEDITORÚVISUALÚviÚwFzutf-8)rë   ÚdeleteÚencoding)rö   z  editor failed: )ÚosÚ
subprocessÚtempfileÚenvironr0   ÚNamedTemporaryFileÚwriteÚnameÚcallÚsplitÚopenÚreadÚunlinkÚOSErrorr°   )	rï   rë   r÷   rø   rù   ÚeditorÚfhÚpathÚexcs	            r   rì   rì   #  sœ  € Ø€I€I€IØÐÐÐØ€O€O€OàŒZ�^Š^˜HÑ%Ô%ÐI¨¬¯ª¸Ñ)AÔ)AÐIÀT€FØ	×	$Ò	$ S°ÀÐPWÐ	$Ñ	XÔ	Xð Ð\^Ø
�Š�ÑÔÐØŒwˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðØ�ŠÐ/˜&Ÿ,š,™.œ.Ð/¨$Ð/Ñ0Ô0Ð0Ý�$ Ð)Ñ)Ô)ð 	¨RØ—7’7‘9”9ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð	Ø�IŠI�d‰OŒOˆOˆOøÝð 	ð 	ð 	ØˆDð	øøøð	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	øåð ð ð ÝÐ' #Ð'Ð'Ñ(Ô(Ð(Øˆtˆtˆtð	Ø�IŠI�d‰OŒOˆOˆOˆOøÝð 	ð 	ð 	ØˆDˆDð	øøøøøøøðøøøð	ð	Ø�IŠI�d‰OŒOˆOˆOˆOøÝð 	ð 	ð 	ØˆDˆDð	øøøøð	Ø�IŠI�d‰OŒOˆOˆOøÝð 	ð 	ð 	ØˆDð	øøøøøøsÀ   ÁBÂB	ÂB	Â<D  ÃDÃ!D  Ã.DÄ
DÄDÄDÄD  ÄDÄD  ÄF Ä 
E.Ä*E)Ä<F ÅE Å
E&Å%E&Å)E.Å.F Å3F
 Æ

FÆFÆGÆF3Æ2GÆ3
G Æ=GÆ?G Ç GÚparentúargparse.ArgumentParserÚNonec                óZ  — |                       dt          ddd¬¦  «         |                       ddd¬	¦  «         |                       d
t          dd¬¦  «         |                       dt          d d¬¦  «         |                       dt          d d¬¦  «         |                       ddd¬	¦  «         |                       ddt          j        ¬	¦  «         |                       ddd¬	¦  «         |                      t          ¬¦  «         |                      d¬¦  «        }|                     dd¬¦  «        }|                      dd¬¦  «         |                      ddt          j        ¬	¦  «         |                     t          ¬¦  «         |                     dd¬¦  «        }|                      d d!¬¦  «         |                      d"d#dd$¬	¦  «         |                     t          ¬¦  «         |                     d%d&¬¦  «        }|                      d d!¬¦  «         |                     t          ¬¦  «         d S )'Nz--revealr:   z0..1z=Render the timeline built up to this point (0=oldest, 1=now).)ÚtypeÚdefaultÚmetavarÚhelpz--playÚ
store_truez0Animate the build-up over time (Ctrl-C to stop).)Úactionr  z--fpsr«   z4Animation frames per second for --play (default 12).)r  r  r  z--widthz!Override render width in columns.z--heightzOverride render height in rows.z
--no-colorzDisable color output.z--force-colorz--jsonz-Print the raw graph payload as JSON and exit.)ÚfuncÚjourney_action)Údestr3   z List node ids (for delete/edit).)r  )r  rõ   z7Delete a learned skill (archived) or memory by node id.rÕ   zDNode id (skill name or memory:<source>:<index>; see `journey list`).z-yz--yeszSkip the confirmation prompt.Úeditz5Edit a learned skill or memory by node id in $EDITOR.)Úadd_argumentr'   r   ÚargparseÚSUPPRESSÚset_defaultsr´   Úadd_subparsersÚ
add_parserrÖ   ræ   rî   )r  ÚsubÚp_listÚp_delÚp_edits        r   Úregister_clir   :  s@  € Ø
×ÒØÝØØØLð ñ ô ð ð ×Ò˜¨Ð<nÐÑoÔoÐoØ
×Ò˜¥c°2Ð<rÐÑsÔsÐsØ
×Ò˜	­°TÐ@cÐÑdÔdÐdØ
×Ò˜
­°dÐAbÐÑcÔcÐcØ
×Ò˜¨\Ð@WÐÑXÔXÐXà
×Ò˜°Å8ÔCTÐÑUÔUÐUØ
×Ò˜¨Ð<kÐÑlÔlÐlØ
×Ò�YÐÑ'Ô'Ð'à
×
Ò
Ð%5Ð
Ñ
6Ô
6€Cà�^Š^˜FÐ)Kˆ^ÑLÔL€FØ
×Ò˜¨\ÐÑ:Ô:Ð:Ø
×Ò˜°Å8ÔCTÐÑUÔUÐUØ
×Ò�YÐÑ'Ô'Ð'à�NŠN˜8Ð*cˆNÑdÔd€EØ	×Ò�vÐ$jÐÑkÔkÐkØ	×Ò�t˜W¨\Ð@_ÐÑ`Ô`Ð`Ø	×Ò�KÐÑ(Ô(Ð(à�^Š^˜FÐ)`ˆ^ÑaÔa€FØ
×Ò˜Ð%kÐÑlÔlÐlØ
×Ò�YÐÑ'Ô'Ð'Ð'Ð'r   c                ó    — t          | ¦  «        S rÊ   )r´   )r¤   s    r   Úcmd_journeyr"  ]  s   € Ý�T‰?Œ?Ðr   Ú__main__zhermes journey)Úprog)r   r   )r   r   )r   r   )r$   r%   r&   r'   r   r%   )r.   r   r&   r'   r   r%   )r2   r3   r4   r5   )rE   rF   rG   rF   r   rH   )r4   r5   rE   rF   r™   r5   )r¤   r¥   r   r   )rª   r   r   r   )rÆ   r'   rÇ   r'   rÈ   r'   r   r'   )rï   r   rë   r   r   r%   )r  r	  r   r
  )&Ú__doc__Ú
__future__r   r  rN   ÚsysrÀ   Ú	functoolsr   Útypingr   r   r|   r   r   r#   r-   r1   rD   rT   r˜   r£   r´   r±   r²   rÖ   ræ   rî   rì   r   r"  Ú__name__ÚArgumentParserÚ_pÚ
parse_argsÚ_aÚexitr  r¡   r   r   ú<module>r0     s•  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à€ð"ð "ð "ð "ð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔð5ð 5ð 5ñ Ôð5ðVð Vð Vð Vð/ð /ð /ð /ð
ð ð ð ð$Ið Ið Ið Ið
Uð Uð Uðp 59Èð =ð =ð =ð =ð =ð =ðð ð ð ð:ð ð ð ð$1ð 1ð 1ð 1ðð ð ð ð%ð %ð %ð %ð(%ð %ð %ð %ð"ð ð ð ð. (ð  (ð  (ð  (ðFð ð ð ð ˆzÒÐØ	 ˆÔ	 Ð&6Ð	7Ñ	7Ô	7€BØ€L�ÑÔÐØ	�Š‰Œ€BØ€C„HˆR�WŠW�R‰[Œ[ÑÔÐÐÐð	 Ðr   