§
    ‰eîi_à  ã                  óh  — U d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZmZmZ d9d„Zd:d;d„Zd<d„Zd<d„Zd<d„Zd=d„Zdaded<   d>d„Zd?d„Zd?d„Zd@d„Zd:dAd„ZdBd „ZdCdDd%„ZdEd&„Zd<d'„Zd>d(„ZdFd*„Z d<d+„Z!d<d,„Z"d<d-„Z#d<d.„Z$d<d/„Z%d<d0„Z&d<d1„Z'd<d2„Z(d<d3„Z)d<d4„Z*d<d5„Z+d<d6„Z,d<d7„Z-d<d8„Z.dS )GzoCLI commands for Honcho integration management.

Handles: hermes honcho setup | status | sessions | map | peer
é    )ÚannotationsN©ÚPath©Úget_hermes_home)Úresolve_active_hostÚresolve_config_pathÚHOSTÚprofile_nameÚstrÚreturnÚboolc                óø  — t          ¦   «         }|sdS |                     di ¦  «        }|                     t          i ¦  «        }t          |                     d¦  «        pt          j                             d¦  «        ¦  «        }|s|sdS t          › d| › �}||v rdS i }dD ]}|                     |¦  «        }|�|||<   Œ|                     d¦  «        p|                     d¦  «        }	|	r|	|d<   | |d	<   |                     d
¦  «        p|                     d
¦  «        pt          |d
<   |                     dd¦  «        |d<   ||                     di ¦  «        |<   t          |¦  «         t          |¦  «         dS )a[  Auto-clone Honcho config for a new profile from the default host block.

    Called during profile creation. If Honcho is configured on the default
    host, creates a new host block for the profile with inherited settings
    and auto-derived workspace/aiPeer.

    Returns True if a host block was created, False if Honcho isn't configured.
    FÚhostsÚapiKeyÚHONCHO_API_KEYú.)Ú
recallModeÚwriteFrequencyÚsessionStrategyÚsessionPeerPrefixÚcontextTokensÚdialecticReasoningLevelÚdialecticDynamicÚdialecticMaxCharsÚmessageMaxCharsÚdialecticMaxInputCharsÚsaveMessagesÚobservationNÚpeerNameÚaiPeerÚ	workspaceÚenabledT)	Ú_read_configÚgetr
   r   ÚosÚenvironÚ
setdefaultÚ_write_configÚ_ensure_peer_exists)
r   Úcfgr   Údefault_blockÚhas_keyÚnew_hostÚ	new_blockÚkeyÚvalÚ	peer_names
             ú;/home/div/.hermes/hermes-agent/plugins/memory/honcho/cli.pyÚclone_honcho_for_profiler4      s«  € õ ‰.Œ.€CØð Øˆuà�GŠG�G˜RÑ Ô €EØ—I’I�d BÑ'Ô'€Mõ �3—7’7˜8Ñ$Ô$ÐH­¬
¯ªÐ7GÑ(HÔ(HÑIÔI€GØð  ð ØˆuåÐ'Ð'˜Ð'Ð'€HØ�5ÐÐØˆuð €IðIð !ð !ˆð ×Ò Ñ$Ô$ˆØˆ?Ø ˆI�c‰Nøð ×!Ò! *Ñ-Ô-ÐD°·²¸Ñ1DÔ1D€IØð *Ø )ˆ	�*Ñð '€IˆhÑØ*×.Ò.¨{Ñ;Ô;Ð[¸s¿wºwÀ{Ñ?SÔ?SÐ[ÕW[€IˆkÑØ(×,Ò,¨Y¸Ñ=Ô=€IˆiÑà,5€C‡N‚N�7˜BÑÔ Ñ)Ý�#ÑÔÐõ ˜Ñ!Ô!Ð!Øˆ4ó    Úhost_keyú
str | Nonec                ó   — 	 ddl m}m} |                     | ¬¦  «        }|j        r|j        s	|j        sdS  ||¦  «        }|                     |j        ¦  «         |j	        r|                     |j	        ¦  «         dS # t          $ r Y dS w xY w)z¼Create the AI peer in Honcho if it doesn't already exist.

    Idempotent -- safe to call multiple times. Returns True if the peer
    was created or already exists, False on failure.
    r   ©ÚHonchoClientConfigÚget_honcho_client©ÚhostFT)Úplugins.memory.honcho.clientr:   r;   Úfrom_global_configr#   Úapi_keyÚbase_urlÚpeerÚai_peerr2   Ú	Exception)r6   r:   r;   ÚhcfgÚclients        r3   r*   r*   I   s¿   € ðØVÐVÐVÐVÐVÐVÐVÐVØ!×4Ò4¸(Ð4ÑCÔCˆØŒ|ð 	 D¤Lð 	°D´Mð 	Ø�5Ø"Ð" 4Ñ(Ô(ˆà�Š�D”LÑ!Ô!Ð!ØŒ>ð 	(Ø�KŠK˜œÑ'Ô'Ð'ØˆtøÝð ð ð Øˆuˆuðøøøs   ‚3A? ·AA? Á?
BÂBÚNonec           	     ód  — t          ¦   «         }t          ¦   «         }|dk    rd|› d�nd}|                     di ¦  «                             |i ¦  «        }|                     d¦  «        du rt	          d|› d	�¦  «         d
S d|d<   |                     d¦  «        �s|                     di ¦  «                             t
          i ¦  «        }dD ]"}|                     |¦  «        }|�	||vr|||<   Œ#|                     d¦  «        p|                     d¦  «        }|r	d|vr||d<   d|v r|                     dd¦  «        d         n|}	|                     d|	¦  «         |                     d|                     d¦  «        p|                     d¦  «        pt
          ¦  «         t          |¦  «         t	          d|› d�¦  «         t          |¦  «        r+t	          d|› d|                     d|¦  «        › d�¦  «         nt	          d|› d�¦  «         t	          dt          ¦   «         › d�¦  «         d
S )z%Enable Honcho for the active profile.Úhermesú[ú] Ú r   r#   Tú  zHoncho is already enabled.
Nr!   )r   r   r   r   r   r   r   r   r   r   r   r    r   é   r"   zHoncho enabled.zPeer 'z' ready.z'Peer creation deferred (no connection).ú  Saved to ú
)
r$   Ú	_host_keyr(   r%   Úprintr
   Úsplitr)   r*   Ú_config_path)
Úargsr+   r=   ÚlabelÚblockr,   r0   r1   r2   rC   s
             r3   Ú
cmd_enablerX   ^   sn  € å
‰.Œ.€CÝ‰;Œ;€DØ  HÒ,Ð,ˆL�ˆLˆLˆLˆL°"€EØ�NŠN˜7 BÑ'Ô'×2Ò2°4¸Ñ<Ô<€Eà‡y‚y�ÑÔ˜tÐ#Ð#ÝÐ6�5Ð6Ð6Ð6Ñ7Ô7Ð7Øˆà€Eˆ)Ñð �9Š9�XÑÔñ fØŸš ¨Ñ,Ô,×0Ò0µ°rÑ:Ô:ˆð3ð 	!ð 	!ˆCð  ×#Ò# CÑ(Ô(ˆCØˆ 3¨eÐ#3Ð#3Ø ��c‘
øØ!×%Ò% jÑ1Ô1ÐH°S·W²W¸ZÑ5HÔ5Hˆ	Øð 	*˜¨5Ð0Ð0Ø )ˆE�*Ñà+.°$¨;¨;�$—*’*˜S !Ñ$Ô$ QÔ'Ð'¸DˆØ×Ò˜ 7Ñ+Ô+Ð+Ø×Ò˜ m×&7Ò&7¸Ñ&DÔ&DÐ&dÈÏÊÐP[ÑH\ÔH\Ð&dÕ`dÑeÔeÐeå�#ÑÔÐÝ	Ð
%ˆuÐ
%Ð
%Ð
%Ñ&Ô&Ð&õ ˜4Ñ Ô ð CÝÐC�5ÐCÐC §	¢	¨(°DÑ 9Ô 9ÐCÐCÐCÑDÔDÐDÐDåÐA�5ÐAÐAÐAÑBÔBÐBå	Ð
*�™œÐ
*Ð
*Ð
*Ñ+Ô+Ð+Ð+Ð+r5   c                ó–  — t          ¦   «         }t          ¦   «         }|dk    rd|› d�nd}|                     di ¦  «                             |i ¦  «        }|r|                     d¦  «        du rt          d|› d	�¦  «         d
S d|d<   t	          |¦  «         t          d|› d�¦  «         t          dt          ¦   «         › d�¦  «         d
S )z&Disable Honcho for the active profile.rI   rJ   rK   rL   r   r#   FrM   zHoncho is already disabled.
NzHoncho disabled.rO   rP   )r$   rQ   r%   rR   r)   rT   )rU   r+   r=   rV   rW   s        r3   Úcmd_disablerZ   ‰   så   € å
‰.Œ.€CÝ‰;Œ;€DØ  HÒ,Ð,ˆL�ˆLˆLˆLˆL°"€EØ�GŠG�G˜RÑ Ô ×$Ò$ T¨2Ñ.Ô.€Eàð �E—I’I˜iÑ(Ô(¨EÐ1Ð1ÝÐ7�5Ð7Ð7Ð7Ñ8Ô8Ð8Øˆà€Eˆ)ÑÝ�#ÑÔÐÝ	Ð
&ˆuÐ
&Ð
&Ð
&Ñ'Ô'Ð'Ý	Ð
*�™œÐ
*Ð
*Ð
*Ñ+Ô+Ð+Ð+Ð+r5   c                ó  — 	 ddl m}  |¦   «         }n+# t          $ r}t          d|› d�¦  «         Y d}~dS d}~ww xY wt	          ¦   «         }|st          d¦  «         dS |                     di ¦  «        }|                     t          i ¦  «        }t          |                     d¦  «        pt          j	                             d	¦  «        ¦  «        }|s|st          d
¦  «         dS d}d}	|D ]L}
|
j
        dk    rŒt          |
j
        ¦  «        r%t          d|
j
        › d|
j
        › �¦  «         |dz  }ŒG|	dz  }	ŒM|rt          d|› d�¦  «         nt          d¦  «         |	rt          d|	› d�¦  «         t          ¦   «          dS )z¼Sync Honcho config to all existing profiles.

    Scans all Hermes profiles and creates host blocks for any that don't
    have one yet. Inherits settings from the default host block.
    r   ©Úlist_profilesz  Could not list profiles: rP   Nz;  No Honcho config found. Run 'hermes honcho setup' first.
r   r   r   zM  Honcho not configured on default profile. Run 'hermes honcho setup' first.
Údefaultz  + z -> hermes.rN   z
  z profile(s) synced.z*  All profiles already have Honcho config.rM   z) profile(s) already configured (skipped).)Úhermes_cli.profilesr]   rD   rR   r$   r%   r
   r   r&   r'   Únamer4   )rU   r]   ÚprofilesÚer+   r   r,   r-   ÚcreatedÚskippedÚps              r3   Úcmd_syncrf   š   sá  € ðØ5Ð5Ð5Ð5Ð5Ð5Ø �=‘?”?ˆˆøÝð ð ð ÝÐ1¨AÐ1Ð1Ð1Ñ2Ô2Ð2Øˆˆˆˆˆøøøøðøøøõ ‰.Œ.€CØð ÝÐLÑMÔMÐMØˆà�GŠG�G˜RÑ Ô €EØ—I’I�d BÑ'Ô'€MÝ�3—7’7˜8Ñ$Ô$ÐH­¬
¯ªÐ7GÑ(HÔ(HÑIÔI€Gàð  ð ÝÐ^Ñ_Ô_Ð_Øˆà€GØ€GØð ð ˆØŒ6�YÒÐØÝ# A¤FÑ+Ô+ð 	ÝÐ4˜œÐ4Ð4¨A¬FÐ4Ð4Ñ5Ô5Ð5Ø�q‰LˆGˆGà�q‰LˆGˆGàð <ÝÐ1�WÐ1Ð1Ð1Ñ2Ô2Ð2Ð2åÐ:Ñ;Ô;Ð;Øð GÝÐE�7ÐEÐEÐEÑFÔFÐFÝ	�G„G€G€G€Gs   ‚ “
;�6¶;Úintc                 ó´  — 	 ddl m}   | ¦   «         }n# t          $ r Y dS w xY wt          ¦   «         }|sdS |                     di ¦  «                             t
          i ¦  «        }t          |                     d¦  «        pt          j                             d¦  «        ¦  «        }|s|sdS d}|D ]'}|j	        dk    rŒt          |j	        ¦  «        r|dz  }Œ(|S )z“Sync Honcho host blocks for all profiles. Returns count of newly created blocks.

    Called from `hermes update` -- no output, no exceptions.
    r   r\   r   r   r   r^   rN   )r_   r]   rD   r$   r%   r
   r   r&   r'   r`   r4   )r]   ra   r+   r,   r-   rc   re   s          r3   Úsync_honcho_profiles_quietri   È   s	  € ð
Ø5Ð5Ð5Ð5Ð5Ð5Ø �=‘?”?ˆˆøÝð ð ð Øˆqˆqðøøøõ ‰.Œ.€CØð Øˆqà—G’G˜G RÑ(Ô(×,Ò,­T°2Ñ6Ô6€MÝ�3—7’7˜8Ñ$Ô$ÐH­¬
¯ªÐ7GÑ(HÔ(HÑIÔI€GØð  ð Øˆqà€GØð ð ˆØŒ6�YÒÐØÝ# A¤FÑ+Ô+ð 	Ø�q‰LˆGøØ€Ns   ‚ “
! !Ú_profile_overridec                 ón   — t           r!t           dv rt          S t          › dt           › �S t          ¦   «         S )zKReturn the active Honcho host key, derived from the current Hermes profile.)r^   Úcustomr   )rj   r
   r   © r5   r3   rQ   rQ   è   s<   € åð -ÝÐ 5Ð5Ð5ÝˆKÝÐ,Ð,Õ*Ð,Ð,Ð,ÝÑ Ô Ð r5   r   c                 ó   — t          ¦   «         S )zLReturn the active Honcho config path for reading (instance-local or global).)r	   rm   r5   r3   rT   rT   ñ   s   € åÑ Ô Ð r5   c                 ó$   — t          ¦   «         dz  S )a  Return the instance-local Honcho config path for writing.

    Always returns $HERMES_HOME/honcho.json so each profile/instance gets
    its own config file.  The global ~/.honcho/config.json is only used as
    a read fallback (via resolve_config_path) for cross-app interop.
    zhoncho.jsonr   rm   r5   r3   Ú_local_config_pathrp   ö   s   € õ ÑÔ˜}Ñ,Ð,r5   Údictc                 ó¼   — t          ¦   «         } |                      ¦   «         r9	 t          j        |                      d¬¦  «        ¦  «        S # t
          $ r Y nw xY wi S )Núutf-8©Úencoding)rT   ÚexistsÚjsonÚloadsÚ	read_textrD   )Úpaths    r3   r$   r$      sc   € Ý‰>Œ>€DØ‡{‚{�}„}ð ð	Ý”:˜dŸnšn°g˜nÑ>Ô>Ñ?Ô?Ð?øÝð 	ð 	ð 	ØˆDð	øøøà€Is   ¤'A Á
AÁAr+   rz   úPath | Nonec                ó¼   — |pt          ¦   «         }|j                             dd¬¦  «         |                     t	          j        | dd¬¦  «        dz   d¬¦  «         d S )	NT)ÚparentsÚexist_oké   F)ÚindentÚensure_asciirP   rs   rt   )rp   ÚparentÚmkdirÚ
write_textrw   Údumps)r+   rz   s     r3   r)   r)   
  so   € ØÐ'Õ%Ñ'Ô'€DØ„K×Ò˜d¨TÐÑ2Ô2Ð2Ø‡O‚OÝŒ
�3˜q¨uÐ5Ñ5Ô5¸Ñ<Øð ñ ô ð ð ð r5   c                ó  — |                       d¦  «        pi                       t          ¦   «         ¦  «        pi                       d¦  «        }|p5|                       dd¦  «        pt          j                              dd¦  «        S )z2Resolve API key with host -> root -> env fallback.r   r   rL   r   )r%   rQ   r&   r'   )r+   r6   s     r3   Ú_resolve_api_keyr‡     sm   € à—’˜Ñ!Ô!Ð' R×,Ò,­Y©[¬[Ñ9Ô9Ð?¸R×DÒDÀXÑNÔN€HØÐT�s—w’w˜x¨Ñ,Ô,ÐTµ´
·²Ð?OÐQSÑ0TÔ0TÐTr5   FrV   r^   Úsecretc                óà  — |rd|› d�nd}t           j                             d| › |› d�¦  «         t           j                             ¦   «          |rjt           j                             ¦   «         rdd l}|                     d¬¦  «        }nat           j                             ¦   «                              ¦   «         }n0t           j                             ¦   «                              ¦   «         }|p|pdS )Nú [ú]rL   rM   ú: r   )Úprompt)	ÚsysÚstdoutÚwriteÚflushÚstdinÚisattyÚgetpassÚreadlineÚstrip)rV   r^   rˆ   Úsuffixr”   r1   s         r3   Ú_promptr˜     sà   € Ø 'Ð/ˆ_�'ˆ_ˆ_ˆ_ˆ_¨R€FÝ„J×ÒÐ+˜%Ð+ Ð+Ð+Ð+Ñ,Ô,Ð,Ý„J×ÒÑÔÐØð +ÝŒ9×ÒÑÔð 	/ØˆNˆNˆNØ—/’/¨�/Ñ,Ô,ˆCˆCõ ”)×$Ò$Ñ&Ô&×,Ò,Ñ.Ô.ˆCˆCåŒi× Ò Ñ"Ô"×(Ò(Ñ*Ô*ˆØÐ!�7�=˜bÐ!r5   c                 óâ  — 	 ddl } dS # t          $ r Y nw xY wt          d¦  «         t          dd¬¦  «        }|                     ¦   «         dvrt          d	¦  «         d
S ddl}t          dd¬¦  «         |                     t          j        ddddgdd¬¦  «        }|j	        dk    rt          d¦  «         dS t          d|j
                             ¦   «         › �¦  «         t          d¦  «         d
S )zNCheck honcho-ai is importable; offer to install if not. Returns True if ready.r   NTz  honcho-ai is not installed.z"Install it now? (honcho-ai>=2.0.1)Úy©r^   ©rš   Úyesz8  Skipping install. Run: pip install 'honcho-ai>=2.0.1'
Fz  Installing honcho-ai...)r‘   z-mÚpipÚinstallzhoncho-ai>=2.0.1)Úcapture_outputÚtextz  Installed.
z  Install failed:
z/  Run manually: pip install 'honcho-ai>=2.0.1'
)ÚhonchoÚImportErrorrR   r˜   ÚlowerÚ
subprocessÚrunrŽ   Ú
executableÚ
returncodeÚstderrr–   )r¢   Úanswerr¥   Úresults       r3   Ú_ensure_sdk_installedr¬   )  s,  € ðØˆˆˆØˆtøÝð ð ð Øˆðøøøõ 
Ð
)Ñ*Ô*Ð*ÝÐ9À3ÐGÑGÔG€FØ‡|‚|�~„~˜\Ð)Ð)ÝÐIÑJÔJÐJØˆuàÐÐÐÝ	Ð
%¨TÐ2Ñ2Ô2Ð2Ø�^Š^Ý	Œ˜˜u iÐ1CÐDØØð ñ ô €Fð
 Ô˜AÒÐÝÐÑÔÐØˆtåÐ; F¤M×$7Ò$7Ñ$9Ô$9Ð;Ð;Ñ<Ô<Ð<ÝÐ@ÑAÔAÐAØˆus   ‚ ˆ
”c                ó0  ‡,— t          ¦   «         Š,t          ¦   «         }t          ¦   «         }t          d¦  «         t          d¦  «         t          d|› �¦  «         ||k    r'|                     ¦   «         rt          d|› d�¦  «         t          ¦   «          t          ¦   «         sdS ‰,                     di ¦  «        }|                     t          ¦   «         i ¦  «        }t          d¦  «         t          d	¦  «         t          d
¦  «         t          ˆ,fd„dD ¦   «         ¦  «        rdnd}t          d|¬¦  «        }| 
                    ¦   «         dv }‰,                     dd¦  «         |rx‰,                     d¦  «        pd}t          d|pd¬¦  «        }	|	r|	‰,d<   ‰,                     dd¦  «        }
|
rt          d¦  «         t          d¦  «         nÁt          d¦  «         n±‰,                     dd¦  «         ‰,                     dd¦  «        }
t          |
¦  «        dk    rd|
dd…         › �n|
rdnd}t          d |› �¦  «         t          d!d"¬#¦  «        }|r|‰,d<   ‰,                     d¦  «        s t          d$¦  «         t          d%¦  «         dS |                     d&¦  «        p‰,                     d&d¦  «        }t          d'|pt          j        d(d)¦  «        ¬¦  «        }|r||d&<   |                     d*¦  «        p‰,                     d*d+¦  «        }t          d,|¬¦  «        }|r||d*<   |                     d-¦  «        p‰,                     d-d+¦  «        }t          d.|¬¦  «        }|r||d-<   |                     d/¦  «        p‰,                     d/d0¦  «        }t          d1¦  «         t          d2¦  «         t          d3¦  «         t          d4|¬¦  «        }|d5v r||d/<   nd0|d/<   t!          |                     d6¦  «        p‰,                     d6d7¦  «        ¦  «        }t          d8¦  «         t          d9¦  «         t          d:¦  «         t          d;¦  «         t          d<¦  «         t          d=|¬¦  «        }	 t#          |¦  «        |d6<   n"# t$          t&          f$ r |d>v r|nd7|d6<   Y nw xY w|                     d?¦  «        p‰,                     d?d@¦  «        }|dAvrd@n|}t          dB¦  «         t          dC¦  «         t          dD¦  «         t          dE¦  «         t          dF|¬¦  «        }|dAv r||d?<   |                     dG¦  «        p‰,                     dG¦  «        }|rt!          |¦  «        ndH}t          dI¦  «         t          dJ¦  «         t          dK¦  «         t          dL|¬¦  «        }|                     ¦   «          
                    ¦   «         dMv r|                     dGd¦  «         nL|                     ¦   «         dk    rn3	 t#          |¦  «        }|dNk    r||dG<   n# t$          t&          f$ r Y nw xY wt!          |                     dO¦  «        p‰,                     dO¦  «        pdP¦  «        }t          dQ¦  «         t          dR¦  «         t          dS¦  «         t          dT¦  «         t          dU|¬¦  «        }	 t#          |¦  «        }|dVk    r||dO<   n# t$          t&          f$ r dW|dO<   Y nw xY w|                     dX¦  «        p‰,                     dX¦  «        pdY} t          dZ¦  «         t          d[¦  «         t          d\¦  «         t          d]¦  «         t          d^¦  «         t          d_¦  «         t          d`¦  «         t          da| ¬¦  «        }!|!dbv r|!|dX<   ndY|dX<   |                     dc¦  «        p‰,                     dcdd¦  «        }"t          de¦  «         t          df¦  «         t          dg¦  «         t          dh¦  «         t          di¦  «         t          dj|"¬¦  «        }#|#dkv r|#|dc<   d"|dl<   |                     dmd"¦  «         t+          ‰,¦  «         t          dn|› �¦  «         	 dNdolm}$m}%  |$¦   «         }&dp|&                     dqi ¦  «        dr<    |%|&¦  «         t          ds¦  «         n8# t2          $ r+}'t          dt|'› �¦  «         t          du¦  «         Y d}'~'nd}'~'ww xY wt          dvdd"¬w¦  «         	 dNdxlm}(m})m}*  |*¦   «          |(                     t          ¦   «         ¬y¦  «        }+ |)|+¦  «         t          dz¦  «         n*# t2          $ r}'t          d{|'› �¦  «         Y d}'~'dS d}'~'ww xY wt          d|¦  «         t          d}|+                     ¦   «         › �¦  «         t          d~|+j         › �¦  «         t          d|+j!        › �¦  «         t          d€|+j"        › �¦  «         t          d�|+j#        › �¦  «         t          d‚|+j$        › �¦  «         t          dƒ|+j%        › �¦  «         t          d„|+j&        › �¦  «         t          d…¦  «         t          d†¦  «         t          d‡¦  «         t          dˆ¦  «         t          d‰¦  «         t          dŠ¦  «         t          d‹¦  «         t          dŒ¦  «         t          d�¦  «         t          dŽ¦  «         t          d�¦  «         t          d�¦  «         dS )‘z Interactive Honcho setup wizard.u�   
Honcho memory setup
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€z6  Honcho gives Hermes persistent cross-session memory.z
  Config: z#  (seeding from existing config at ú)Nr   z  Deployment:z*    cloud -- Honcho cloud (api.honcho.dev)z&    local -- self-hosted Honcho serverc              3  ót   •K  — | ]2}|‰                      d ¦  «        p‰                      d¦  «        pdv V — Œ3dS )ÚbaseUrlrA   rL   N)r%   )Ú.0Úhr+   s     €r3   ú	<genexpr>zcmd_setup.<locals>.<genexpr>^  s^   øè è € ð $ð $àð 	
ˆc�gŠg�iÑ Ô Ð= C§G¢G¨JÑ$7Ô$7Ð=¸2Ð>ð$ð $ð $ð $ð $ð $r5   )Ú	localhostz	127.0.0.1z::1ÚlocalÚcloudzCloud or local?r›   )rµ   ÚlrA   r°   rL   zBase URLzhttp://localhost:8000r   z9
  API key present in config (kept for cloud/hybrid use).z1  Local connections will skip auth automatically.z'
  No API key set. Local no-auth ready.é   ú...éøÿÿÿÚsetúnot setz
  Current API key: z,Honcho API key (leave blank to keep current)T)rˆ   z=
  No API key configured. Get yours at https://app.honcho.devz7  Run 'hermes honcho setup' again once you have a key.
r    zYour name (user peer)ÚUSERÚuserr!   rI   zAI peer namer"   zWorkspace IDÚobservationModeÚdirectionalz
  Observation mode:zS    directional  -- all observations on, each AI peer builds its own view (default)zL    unified      -- shared pool, user observes self, AI observes others onlyzObservation mode)ÚunifiedrÀ   r   Úasyncz
  Write frequency:z=    async   -- background thread, no token cost (recommended)z*    turn    -- sync write after every turnz.    session -- batch write at session end onlyz+    N       -- write every N turns (e.g. 5)zWrite frequency)rÂ   ÚturnÚsessionr   Úhybrid©rÅ   ÚcontextÚtoolsz
  Recall mode:zG    hybrid  -- auto-injected context + Honcho tools available (default)z>    context -- auto-injected context only, Honcho tools hiddenz:    tools   -- Honcho tools only, no auto-injected contextzRecall moder   ÚuncappedzA
  Context injection per turn (hybrid/context recall modes only):z"    uncapped -- no limit (default)z0    N        -- token limit per turn (e.g. 1200)zContext tokens)ÚnonerÉ   zno limitr   ÚdialecticCadenceÚ2z
  Dialectic cadence:zJ    How often Honcho rebuilds its user model (LLM call on Honcho backend).z7    1 = every turn, 2 = every other turn, 3+ = sparser.z    Recommended: 1-5.zDialectic cadencerN   r   r   Úlowz
  Dialectic reasoning level:zL    Depth Honcho uses when synthesizing user context on auto-injected calls.z%    minimal  -- quick factual lookupsz3    low      -- straightforward questions (default)z&    medium   -- multi-aspect synthesisz+    high     -- complex behavioral patternsz-    max      -- thorough audit-level analysiszReasoning level©ÚminimalrÍ   ÚmediumÚhighÚmaxr   úper-sessionz
  Session strategy:zP    per-session   -- each run starts clean, Honcho injects context automaticallyzQ    per-directory -- reuses session per dir, prior context auto-injected each runz3    per-repo      -- one session per git repositoryz:    global        -- single session across all directorieszSession strategy)rÓ   úper-repoúper-directoryÚglobalr#   r   z
  Config written to )Úload_configÚsave_configr¢   ÚmemoryÚproviderz0  Memory provider set to 'honcho' in config.yamlz(  Could not auto-enable in config.yaml: z/  Run: hermes config set memory.provider honchoz  Testing connection... ©Úendr‘   ©r:   r;   Úreset_honcho_clientr<   ÚOKzFAILED
  Error: z
  Honcho is ready.z  Session:   z  Workspace: z  User:      ú  AI peer:   z  Observe:   z  Frequency: z  Recall:    z  Sessions:  z"
  Honcho tools available in chat:zP    honcho_context   -- session context: summary, representation, card, messagesz4    honcho_search    -- semantic search over historyz,    honcho_profile   -- peer card, key factszA    honcho_reasoning -- ask Honcho a question, synthesized answerz5    honcho_conclude  -- persist a user fact to memoryz
  Other commands:z0    hermes honcho status     -- show full configz>    hermes honcho mode       -- change recall/observation modezB    hermes honcho tokens     -- tune context and dialectic budgetsz1    hermes honcho peer       -- update peer nameszE    hermes honcho map <name> -- map this directory to a session name
)'r$   rp   rT   rR   rv   r¬   r(   rQ   Úanyr˜   r¤   Úpopr%   Úlenr&   Úgetenvr   rg   Ú
ValueErrorÚ	TypeErrorr–   r)   Úhermes_cli.configr×   rØ   rD   r>   r:   r;   rÞ   r?   Úresolve_session_nameÚworkspace_idr2   rC   Úobservation_modeÚwrite_frequencyÚrecall_modeÚsession_strategy)-rU   Ú
write_pathÚ	read_pathr   Úhermes_hostÚcurrent_deployÚdeployÚis_localÚcurrent_urlÚnew_urlÚcurrent_keyÚmaskedÚnew_keyÚcurrent_peerÚnew_peerÚ
current_aiÚnew_aiÚcurrent_workspaceÚnew_workspaceÚcurrent_obsÚnew_obsÚ
current_wfÚnew_wfÚ_raw_recallÚcurrent_recallÚ
new_recallÚcurrent_ctx_tokensÚcurrent_displayÚnew_ctx_tokensr1   Úcurrent_dialecticÚnew_dialecticÚcurrent_reasoningÚnew_reasoningÚcurrent_stratÚ	new_stratr×   rØ   Úhermes_configrb   r:   r;   rÞ   rE   r+   s-                                               @r3   Ú	cmd_setupr  G  sÔ  ø€ å
‰.Œ.€Cå#Ñ%Ô%€JÝ‘”€IÝ	Ð
0Ñ1Ô1Ð1Ý	Ð
BÑCÔCÐCÝ	Ð
#�zÐ
#Ð
#Ñ$Ô$Ð$Ø�JÒÐ 9×#3Ò#3Ñ#5Ô#5ÐÝÐ@°IÐ@Ð@Ð@ÑAÔAÐAÝ	�G„G€Gå Ñ"Ô"ð Øˆà�NŠN˜7 BÑ'Ô'€EØ×"Ò"¥9¡;¤;°Ñ3Ô3€Kõ 
ˆ/ÑÔÐÝ	Ð
6Ñ7Ô7Ð7Ý	Ð
2Ñ3Ô3Ð3Ý #ð $ð $ð $ð $à2ð$ñ $ô $ñ !ô !ð �W�Wð ð õ Ð&°Ð?Ñ?Ô?€FØ�|Š|‰~Œ~ Ð/€Hð ‡G‚GˆJ˜ÑÔÐàð à—g’g˜iÑ(Ô(Ð.¨BˆÝ˜*¨kÐ.TÐ=TÐUÑUÔUˆØð 	%Ø$ˆC�	‰Nð
 —g’g˜h¨Ñ+Ô+ˆØð 	>ÝÐOÑPÔPÐPÝÐEÑFÔFÐFÐFåÐ<Ñ=Ô=Ð=Ð=ð 	�Š�	˜4Ñ Ô Ð à—g’g˜h¨Ñ+Ô+ˆÝ-0°Ñ-=Ô-=ÀÒ-AÐ-AÐ)�{ 2 3 3Ô'Ð)Ð)Ð)ÐQ\ÐHkÈÈÐbkˆÝÐ. fÐ.Ð.Ñ/Ô/Ð/ÝÐHÐQUÐVÑVÔVˆØð 	$Ø#ˆC�‰Mà�wŠw�xÑ Ô ð 	ÝÐRÑSÔSÐSÝÐLÑMÔMÐMØˆFð —?’? :Ñ.Ô.ÐI°#·'²'¸*ÀbÑ2IÔ2I€LÝÐ.¸Ð8aÍÌ	ÐRXÐZ`ÑHaÔHaÐbÑbÔb€HØð +Ø"*ˆ�JÑà—’ Ñ*Ô*ÐI¨c¯gªg°hÀÑ.IÔ.I€JÝ�^¨ZÐ8Ñ8Ô8€FØð 'Ø &ˆ�HÑà#Ÿš¨Ñ4Ô4ÐV¸¿ºÀÈXÑ8VÔ8VÐÝ˜NÐ4EÐFÑFÔF€MØð 1Ø#0ˆ�KÑ ð —/’/Ð"3Ñ4Ô4Ða¸¿ºÐ@QÐS`Ñ8aÔ8a€KÝ	Ð
!Ñ"Ô"Ð"Ý	Ð
_Ñ`Ô`Ð`Ý	Ð
XÑYÔYÐYÝÐ(°+Ð>Ñ>Ô>€GØÐ,Ð,Ð,Ø)0ˆÐ%Ñ&Ð&à)6ˆÐ%Ñ&õ �[—_’_Ð%5Ñ6Ô6Ð\¸#¿'º'ÐBRÐT[Ñ:\Ô:\Ñ]Ô]€JÝ	Ð
 Ñ!Ô!Ð!Ý	Ð
IÑJÔJÐJÝ	Ð
6Ñ7Ô7Ð7Ý	Ð
:Ñ;Ô;Ð;Ý	Ð
7Ñ8Ô8Ð8ÝÐ&°
Ð;Ñ;Ô;€FðfÝ(+¨F©¬ˆÐ$Ñ%Ð%øÝ�	Ð"ð fð fð fØ28Ð<XÐ2XÐ2X¨¨Ð^eˆÐ$Ñ%Ð%Ð%ðføøøð —/’/ ,Ñ/Ô/ÐR°3·7²7¸<ÈÑ3RÔ3R€KØ!,Ð4RÐ!RÐ!R�X�XÐXc€NÝ	Ð
ÑÔÐÝ	Ð
SÑTÔTÐTÝ	Ð
JÑKÔKÐKÝ	Ð
FÑGÔGÐGÝ˜°Ð?Ñ?Ô?€JØÐ3Ð3Ð3Ø$.ˆ�LÑ!ð %Ÿš¨Ñ9Ô9ÐU¸S¿WºWÀ_Ñ=UÔ=UÐØ1CÐS•cÐ,Ñ-Ô-Ð-È€OÝ	Ð
NÑOÔOÐOÝ	Ð
.Ñ/Ô/Ð/Ý	Ð
<Ñ=Ô=Ð=ÝÐ-°ÐGÑGÔG€NØ×ÒÑÔ×#Ò#Ñ%Ô%Ð)IÐIÐIØ�Š˜¨Ñ.Ô.Ð.Ð.Ø	×	Ò	Ñ	Ô	 2Ò	%Ð	%Øð	Ý�nÑ%Ô%ˆCØ�aŠxˆxØ/2�˜OÑ,øøÝ�IÐ&ð 	ð 	ð 	ØˆDð	øøøõ ˜KŸOšOÐ,>Ñ?Ô?ÐeÀ3Ç7Â7ÐK]ÑC^ÔC^ÐeÐbeÑfÔfÐÝ	Ð
"Ñ#Ô#Ð#Ý	Ð
VÑWÔWÐWÝ	Ð
CÑDÔDÐDÝ	Ð
!Ñ"Ô"Ð"ÝÐ/Ð9JÐKÑKÔK€Mð,Ý�-Ñ Ô ˆØ�!Š8ˆ8Ø.1ˆKÐ*Ñ+øøÝ�	Ð"ð ,ð ,ð ,Ø*+ˆÐ&Ñ'Ð'Ð'ð,øøøð
 	�ŠÐ1Ñ2Ô2ð 	Ø�7Š7Ð,Ñ-Ô-ð	àð õ
 
Ð
*Ñ+Ô+Ð+Ý	Ð
XÑYÔYÐYÝ	Ð
1Ñ2Ô2Ð2Ý	Ð
?Ñ@Ô@Ð@Ý	Ð
2Ñ3Ô3Ð3Ý	Ð
7Ñ8Ô8Ð8Ý	Ð
9Ñ:Ô:Ð:ÝÐ-Ð7HÐIÑIÔI€MØÐCÐCÐCØ1>ˆÐ-Ñ.Ð.à16ˆÐ-Ñ.ð  —O’OÐ$5Ñ6Ô6Ðc¸#¿'º'ÐBSÐUbÑ:cÔ:c€MÝ	Ð
!Ñ"Ô"Ð"Ý	Ð
\Ñ]Ô]Ð]Ý	Ð
]Ñ^Ô^Ð^Ý	Ð
?Ñ@Ô@Ð@Ý	Ð
FÑGÔGÐGÝÐ*°MÐBÑBÔB€IØÐJÐJÐJØ)2ˆÐ%Ñ&à!€K�	ÑØ×Ò˜>¨4Ñ0Ô0Ð0å�#ÑÔÐÝ	Ð
/ :Ð
/Ð
/Ñ0Ô0Ð0ðAØ>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ø#˜™œˆØ=Eˆ× Ò  ¨2Ñ.Ô.¨zÑ:Øˆ�MÑ"Ô"Ð"ÝÐ@ÑAÔAÐAÐAøÝð Að Að AÝÐ<¸Ð<Ð<Ñ=Ô=Ð=ÝÐ?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@øøøøðAøøøõ
 
Ð
$¨"°DÐ9Ñ9Ô9Ð9ðØkÐkÐkÐkÐkÐkÐkÐkÐkÐkØÐÑÔÐØ!×4Ò4½)¹+¼+Ð4ÑFÔFˆØÐ˜$ÑÔÐÝˆd‰ŒˆˆøÝð ð ð ÝÐ% !Ð%Ð%Ñ&Ô&Ð&Øˆˆˆˆˆøøøøðøøøõ 
Ð
 Ñ!Ô!Ð!Ý	Ð
7˜$×3Ò3Ñ5Ô5Ð
7Ð
7Ñ8Ô8Ð8Ý	Ð
-˜$Ô+Ð
-Ð
-Ñ.Ô.Ð.Ý	Ð
*˜$œ.Ð
*Ð
*Ñ+Ô+Ð+Ý	Ð
(˜$œ,Ð
(Ð
(Ñ)Ô)Ð)Ý	Ð
1˜$Ô/Ð
1Ð
1Ñ2Ô2Ð2Ý	Ð
0˜$Ô.Ð
0Ð
0Ñ1Ô1Ð1Ý	Ð
,˜$Ô*Ð
,Ð
,Ñ-Ô-Ð-Ý	Ð
1˜$Ô/Ð
1Ð
1Ñ2Ô2Ð2Ý	Ð
/Ñ0Ô0Ð0Ý	Ð
\Ñ]Ô]Ð]Ý	Ð
@ÑAÔAÐAÝ	Ð
8Ñ9Ô9Ð9Ý	Ð
MÑNÔNÐNÝ	Ð
AÑBÔBÐBÝ	Ð
Ñ Ô Ð Ý	Ð
<Ñ=Ô=Ð=Ý	Ð
JÑKÔKÐKÝ	Ð
NÑOÔOÐOÝ	Ð
=Ñ>Ô>Ð>Ý	Ð
RÑSÔSÐSÐSÐSsh   Ñ>R ÒR0Ò/R0ØX+ Ø+X?Ø>X?Û	[$ Û$[=Û<[=âAc ã
c=ã!c8ã8c=äAe$ å$
få.fæfc                 ób   — t           rt           S 	 ddlm}   | ¦   «         S # t          $ r Y dS w xY w)zKReturn the active Hermes profile name (respects --target-profile override).r   ©Úget_active_profile_namer^   )rj   r_   r  rD   r  s    r3   Ú_active_profile_namer  .  sX   € åð !Ý Ð ðØ?Ð?Ð?Ð?Ð?Ð?Ø&Ð&Ñ(Ô(Ð(øÝð ð ð Øˆyˆyðøøøs   �   
.­.úlist[tuple[str, str, dict]]c            	     óè  — 	 ddl m}   | ¦   «         }n.# t          $ r! t          ¦   «         t	          ¦   «         i fgcY S w xY wt          ¦   «         }|                     di ¦  «        }g }|                     t          i ¦  «        }|                     dt          |f¦  «         |D ]P}|j	        dk    rŒt          › d|j	        › �}|                     |j	        ||                     |i ¦  «        f¦  «         ŒQ|S )zŽReturn (profile_name, host_key, host_block) for every known profile.

    Reads honcho.json once and maps each profile to its host block.
    r   r\   r   r^   r   )
r_   r]   rD   r  rQ   r$   r%   r
   Úappendr`   )r]   ra   r+   r   Úresultsr,   re   r²   s           r3   Ú_all_profile_host_configsr  9  s  € ð
;Ø5Ð5Ð5Ð5Ð5Ð5Ø �=‘?”?ˆˆøÝð ;ð ;ð ;Ý%Ñ'Ô'­©¬°bÐ9Ð:Ð:Ð:Ð:ð;øøøõ ‰.Œ.€CØ�GŠG�G˜RÑ Ô €EØ€Gð —I’I�d BÑ'Ô'€MØ‡N‚N�I�t ]Ð3Ñ4Ô4Ð4àð 6ð 6ˆØŒ6�YÒÐØÝÐÐ�a”fÐÐˆØ�Š˜œ  5§9¢9¨Q°Ñ#3Ô#3Ð4Ñ5Ô5Ð5Ð5à€Ns   ‚ “(>½>c                ó¦  — t          | dd¦  «        }|rt          ¦   «          dS 	 ddl}n # t          $ r t	          d¦  «         Y dS w xY wt          ¦   «         }t          ¦   «         }t          ¦   «         }|s#t	          d|› �¦  «         t	          d¦  «         dS 	 ddlm	}m
} |                     t          ¦   «         ¬	¦  «        }n+# t          $ r}	t	          d
|	› d�¦  «         Y d}	~	dS d}	~	ww xY w|j        pd}
t          |
¦  «        dk    rd|
dd…         › �n|
rdnd}t!          ¦   «         }|dk    rd|j        › d�nd}t	          d|› d�dz   ¦  «         |dk    rt	          d|› �¦  «         t	          d|j        › �¦  «         t	          d|j        › �¦  «         t	          d|› �¦  «         t	          d|j        › �¦  «         t)          j        ¦   «         dz  dz  }t	          d|› �¦  «         ||k    rt	          d|› d �¦  «         ||k    rt	          d!¦  «         n'|                     ¦   «         rt	          d"|› d#�¦  «         t	          d$|j        › �¦  «         t	          d%|j        pd› �¦  «         t	          d&|                     ¦   «         › �¦  «         t	          d'|j        › �¦  «         t	          d(|j        › �¦  «         t	          d)|j        pd*› d+�¦  «         t          |d,d¦  «        pi }|                     d-¦  «        pd.}t	          d/|› d0|d.k    rd1nd› �¦  «         |                     d2¦  «        p|j        }|j        rd3nd4}t	          d5|j         › d6|› d7|› �¦  «         t	          d8|j!        › d9|j"        › d:|j#        › d9|j$        › d;�	¦  «         t	          d<|j%        › �¦  «         |j        rx|j        s|j&        rjt	          d=dd>¬?¦  «         	  ||¦  «        }tO          ||¦  «         t	          d@¦  «         dS # t          $ r}	t	          dA|	› dB�¦  «         Y d}	~	dS d}	~	ww xY w|j        sdCndD}t	          dE|› dB�¦  «         dS )Fz1Show current Honcho config and connection status.ÚallFNr   z7  honcho-ai is not installed. Run: hermes honcho setup
z  No Honcho config found at z*  Run 'hermes honcho setup' to configure.
r9   r<   z  Config error: rP   rL   r¸   r¹   rº   r»   r¼   r^   rŠ   r‹   z
Honcho statusõx   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€z  Profile:        z  Host:           z  Enabled:        z  API key:        z  Workspace:      z.honchozconfig.jsonz  Config:         z  Write to:       z  (profile-local)u?     Fallback:       (none â€” using global ~/.honcho/config.json)z  Fallback:       z  (exists, cross-app interop)z  AI peer:        z  User peer:      z  Session key:    z  Session strat:  z  Recall mode:    z  Context budget: z
(uncapped)ú tokensÚrawrË   rN   z  Dialectic cad:  every z turnÚsÚreasoningLevelCapÚonÚoffz  Reasoning:      base=z, cap=z, heuristic=z  Observation:    user(me=z,others=z) ai(me=r®   z  Write freq:     z
  Connection... TrÛ   rß   zFAILED (ú)
Údisabledzno API key or base URLz
  Not connected ()(ÚgetattrÚ_cmd_status_allr¢   r£   rR   r$   rT   rp   r>   r:   r;   r?   rQ   rD   r@   rã   r  r=   r#   ré   r   Úhomerv   rC   r2   rè   rí   rì   Úcontext_tokensr%   Úreasoning_level_capÚreasoning_heuristicÚdialectic_reasoning_levelÚuser_observe_meÚuser_observe_othersÚai_observe_meÚai_observe_othersrë   rA   Ú_show_peer_cards)rU   Úshow_allr¢   r+   Úactive_pathrî   r:   r;   rE   rb   r@   r÷   ÚprofileÚprofile_labelÚglobal_pathr  Údialectic_cadenceÚreasoning_capÚheuristic_onrF   Úreasons                        r3   Ú
cmd_statusr:  U  sÃ  € å�t˜U EÑ*Ô*€Hàð ÝÑÔÐØˆðØˆˆˆˆøÝð ð ð ÝÐHÑIÔIÐIØˆˆðøøøõ ‰.Œ.€Cå‘.”.€KÝ#Ñ%Ô%€Jàð ÝÐ:¨[Ð:Ð:Ñ;Ô;Ð;ÝÐ;Ñ<Ô<Ð<ØˆðØVÐVÐVÐVÐVÐVÐVÐVØ!×4Ò4½)¹+¼+Ð4ÑFÔFˆˆøÝð ð ð ÝÐ& Ð&Ð&Ð&Ñ'Ô'Ð'Øˆˆˆˆˆøøøøðøøøð ŒlÐ ˜b€GÝ%(¨¡\¤\°AÒ%5Ð%5Ð!�7˜2˜3˜3”<Ð!Ð!Ð!ÀWÐ<[¸E¸EÐR[€Få"Ñ$Ô$€GØ)0°IÒ)=Ð)=Ð%˜œÐ%Ð%Ð%Ð%À2€Må	Ð
-˜MÐ
-Ð
-Ð
-°
Ñ
:Ñ;Ô;Ð;Ø�)ÒÐÝÐ, 7Ð,Ð,Ñ-Ô-Ð-Ý	Ð
*˜tœyÐ
*Ð
*Ñ+Ô+Ð+Ý	Ð
-˜tœ|Ð
-Ð
-Ñ.Ô.Ð.Ý	Ð
'˜vÐ
'Ð
'Ñ(Ô(Ð(Ý	Ð
2˜tÔ0Ð
2Ð
2Ñ3Ô3Ð3õ ”)‘+”+ 	Ñ)¨MÑ9€KÝ	Ð
,˜{Ð
,Ð
,Ñ-Ô-Ð-Ø�[Ò Ð ÝÐ@ :Ð@Ð@Ð@ÑAÔAÐAØ�kÒ!Ð!ÝÐPÑQÔQÐQÐQØ	×	Ò	Ñ	Ô	ð OÝÐM ;ÐMÐMÐMÑNÔNÐNå	Ð
-˜tœ|Ð
-Ð
-Ñ.Ô.Ð.Ý	Ð
<˜tœ~Ð:°Ð
<Ð
<Ñ=Ô=Ð=Ý	Ð
<˜t×8Ò8Ñ:Ô:Ð
<Ð
<Ñ=Ô=Ð=Ý	Ð
6˜tÔ4Ð
6Ð
6Ñ7Ô7Ð7Ý	Ð
1˜tÔ/Ð
1Ð
1Ñ2Ô2Ð2Ý	Ð
K˜tÔ2ÐB°lÐ
KÐ
KÐ
KÑLÔLÐLÝ
�$˜˜tÑ
$Ô
$Ð
*¨€CØŸšÐ 2Ñ3Ô3Ð8°qÐÝ	Ð
dÐ%6Ð
dÐ
dÐDUÐYZÒDZÐDZ¸S¸SÐ`bÐ
dÐ
dÑeÔeÐeØ—G’GÐ/Ñ0Ô0ÐL°DÔ4L€MØÔ3Ð>�4�4¸€LÝ	Ð
s DÔ$BÐ
sÐ
sÈ-Ð
sÐ
sÐeqÐ
sÐ
sÑtÔtÐtÝ	ð  ] tÔ';ð  ]ð  ]ÀTÔE]ð  ]ð  ]ÐgkÔgyð  ]ð  ]ð  DHô  DZð  ]ð  ]ð  ]ñ  ^ô  ^ð  ^Ý	Ð
5˜tÔ3Ð
5Ð
5Ñ6Ô6Ð6à„|ð 
1˜œð 
1¨¬ð 
1ÝÐ"¨°$Ð7Ñ7Ô7Ð7ð	%Ø&Ð& tÑ,Ô,ˆFÝ˜T 6Ñ*Ô*Ð*Ý�$‰KŒKˆKˆKˆKøÝð 	%ð 	%ð 	%ÝÐ#˜QÐ#Ð#Ð#Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$øøøøð	%øøøð $(¤<ÐM��Ð5MˆÝÐ/ FÐ/Ð/Ð/Ñ0Ô0Ð0Ð0Ð0s?   ¥* ªAÁAÂ*C Ã
C-ÃC(Ã(C-Ï*P Ð
P0ÐP+Ð+P0c                ó  — 	 ddl m}  ||| ¬¦  «        }|                      ¦   «         }|                     |¦  «         |                     |¦  «        }|rut          dt          |¦  «        › d�¦  «         |dd…         D ]}t          d|› �¦  «         Œt          |¦  «        dk    r#t          d	t          |¦  «        dz
  › d
�¦  «         |                     |¦  «        }|                     dd¦  «        }|rC|dd…         t          |¦  «        dk    rdndz   }	t          d¦  «         t          d|	› �¦  «         |s|st          d¦  «         t          ¦   «          dS # t          $ r}
t          d|
› d�¦  «         Y d}
~
dS d}
~
ww xY w)zôFetch and display peer cards for the active profile.

    Uses get_or_create to ensure the session exists with peers configured.
    This is idempotent -- if the session already exists on the server it's
    just retrieved, not duplicated.
    r   ©ÚHonchoSessionManager©r¢   Úconfigz
  User peer card (z facts):Né
   z    - z    ... and z moreÚrepresentationrL   éÈ   r¹   z
  AI peer representation:ú    z:
  No peer data yet (accumulates after first conversation)z
  Peer data unavailable: rP   )
Úplugins.memory.honcho.sessionr=  rè   Úget_or_createÚget_peer_cardrR   rã   Úget_ai_representationr%   rD   )rE   rF   r=  ÚmgrÚsession_keyÚcardÚfactÚai_repÚai_textÚdisplayrb   s              r3   r0  r0  ¨  sæ  € ð3ØFÐFÐFÐFÐFÐFØ"Ð"¨&¸Ð>Ñ>Ô>ˆØ×/Ò/Ñ1Ô1ˆØ×Ò˜+Ñ&Ô&Ð&ð × Ò  Ñ-Ô-ˆØð 	<ÝÐ<­¨T©¬Ð<Ð<Ð<Ñ=Ô=Ð=Ø˜S˜b˜Sœ	ð 'ð '�Ý�o˜t�o�oÑ&Ô&Ð&Ð&Ý�4‰yŒy˜2Š~ˆ~ÝÐ:¥S¨¡Y¤Y°¡^Ð:Ð:Ð:Ñ;Ô;Ð;ð ×*Ò*¨;Ñ7Ô7ˆØ—*’*Ð-¨rÑ2Ô2ˆØð 	$à˜d˜s˜d”mµ°G±´¸sÒ0BÐ0B u uÈÑKˆGÝÐ0Ñ1Ô1Ð1ÝÐ"˜Ð"Ð"Ñ#Ô#Ð#àð 	Q˜Gð 	QÝÐOÑPÔPÐPå‰ŒˆˆˆøÝð 3ð 3ð 3ÝÐ1¨AÐ1Ð1Ð1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øøøøð3øøøs   ‚EE Å
FÅ'F Æ Fc                 óN  — t          ¦   «         } t          ¦   «         }t          ¦   «         }t          dt	          | ¦  «        › d�dz   ¦  «         t          ddd›ddd	›dd
d›ddd›dd› �
¦  «         t          dd› dd› dd› dd› dd› �
¦  «         | D �]\  }}}|                     d|                     d¦  «        ¦  «        }|€Gt          |                     d¦  «        pt          j                             d¦  «        ¦  «        }|r|nd}|rdnd}|                     d¦  «        p|                     dd¦  «        }	|                     d¦  «        p|                     dd¦  «        }
||k    rdnd}t          d||z   d›d|d	›d|d›d|	d›d|
› �
¦  «         �Œt          d¦  «         dS )z0Show Honcho config overview across all profiles.z
Honcho profiles (r#  u¥   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€rM   ÚProfileú<14ú ÚHostz<22ÚEnabledz<9ÚRecallÚWriteõ*   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€uB   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€u   â”€â”€â”€â”€â”€â”€â”€â”€â”€r#   Nr   r   Fr�   Únor   rÅ   r   rÂ   z *rL   z
  * active profile
)	r  r$   r  rR   rã   r%   r   r&   r'   )Úrowsr+   Úactiver`   r=   rW   r#   Ú	has_credsÚenabled_strÚrecallr�   Úmarkers               r3   r&  r&  Ï  sÿ  € å$Ñ&Ô&€DÝ
‰.Œ.€CÝ!Ñ#Ô#€Få	Ð
.¥ D¡	¤	Ð
.Ð
.Ð
.°Ñ
;Ñ<Ô<Ð<Ý	Ð
RˆyÐ
RÐ
RÐ
R˜vÐ
RÐ
RÐ
R¨IÐ
RÐ
RÐ
R¸8Ð
RÐ
RÐ
RÈÐ
RÐ
RÑSÔSÐSÝ	Ð
LˆzÐ
LÐ
L˜JÐ
LÐ
L¨Ð
LÐ
L°YÐ
LÐ
LÀÐ
LÐ
LÑMÔMÐMà!ð Xñ XÑˆˆd�EØ—)’)˜I s§w¢w¨yÑ'9Ô'9Ñ:Ô:ˆØˆ?Ý˜SŸWšW XÑ.Ô.ÐRµ"´*·.².ÐAQÑ2RÔ2RÑSÔSˆIØ#(Ð3�i�i¨eˆGØ&Ð0�e�e¨Dˆà—’˜<Ñ(Ô(ÐK¨C¯GªG°LÀ(Ñ,KÔ,KˆØ—	’	Ð*Ñ+Ô+ÐQ¨s¯wªwÐ7GÈÑ/QÔ/Qˆà š˜��¨RˆÝÐV�4˜&‘=ÐVÐVÐV tÐVÐVÐV°+ÐVÐVÐVÀ6ÐVÐVÐVÈuÐVÐVÑWÔWÐWÑWå	Ð
#Ñ$Ô$Ð$Ð$Ð$r5   c           	     óú  — t          ¦   «         }t          ¦   «         }t          dt          |¦  «        › d�dz   ¦  «         t          ddd›ddd	›dd
› �¦  «         t          dd› dd› dd› �¦  «         |D ]x\  }}}|                     d¦  «        p|                     d¦  «        pd}|                     d¦  «        p|                     d¦  «        p|}t          d|d›d|d	›d|› �¦  «         Œyt          ¦   «          dS )z)Show peer identities across all profiles.z
Honcho peer identities (z profiles)
u–   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€rM   rP  rQ  rR  z	User peerz<16zAI peerrW  u0   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€u6   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€r    ú	(not set)r!   N)r  r$   rR   rã   r%   )rU   rY  r+   r`   r=   rW   r¾   Úais           r3   Ú	cmd_peersrb  é  s0  € å$Ñ&Ô&€DÝ
‰.Œ.€Cå	Ð
>¥s¨4¡y¤yÐ
>Ð
>Ð
>ÀÑ
KÑLÔLÐLÝ	Ð
<ˆyÐ
<Ð
<Ð
<˜{Ð
<Ð
<Ð
<°Ð
<Ð
<Ñ=Ô=Ð=Ý	Ð
5ˆzÐ
5Ð
5˜JÐ
5Ð
5¨Ð
5Ð
5Ñ6Ô6Ð6à!ð /ð /Ñˆˆd�EØ�yŠy˜Ñ$Ô$ÐJ¨¯ª°
Ñ(;Ô(;ÐJ¸{ˆØ�YŠY�xÑ Ô Ð= C§G¢G¨HÑ$5Ô$5Ð=¸ˆÝÐ-�4Ð-Ð-Ð-˜dÐ-Ð-Ð-¨Ð-Ð-Ñ.Ô.Ð.Ð.å	�G„G€G€G€Gr5   c                óê  — t          ¦   «         }|                     di ¦  «        }|s?t          d¦  «         t          d¦  «         t          dt          ¦   «         › d�¦  «         dS t	          j        ¦   «         }t          dt          |¦  «        › d�d	z   ¦  «         t          |                     ¦   «         ¦  «        D ]'\  }}||k    rd
nd}t          d|d›d|› |› �¦  «         Œ(t          ¦   «          dS )u/   List known directory â†’ session name mappings.Úsessionsz"  No session mappings configured.
z0  Add one with: hermes honcho map <session-name>z
  Or edit z directly.
Nz
Honcho session mappings (r#  r  u    â†�rL   rM   z<30rR  )	r$   r%   rR   rT   r&   Úgetcwdrã   ÚsortedÚitems)rU   r+   rd  Úcwdrz   r`   r^  s          r3   Úcmd_sessionsri  ú  s  € å
‰.Œ.€CØ�wŠw�z 2Ñ&Ô&€Hàð ÝÐ3Ñ4Ô4Ð4ÝÐ@ÑAÔAÐAÝÐ7�<™>œ>Ð7Ð7Ð7Ñ8Ô8Ð8Øˆå
Œ)‰+Œ+€CÝ	Ð
:­¨H©¬Ð
:Ð
:Ð
:¸ZÑ
GÑHÔHÐHÝ˜XŸ^š^Ñ-Ô-Ñ.Ô.ð .ð .‰
ˆˆdØ 3š;˜;��¨BˆÝÐ,�4Ð,Ð,Ð,˜dÐ, FÐ,Ð,Ñ-Ô-Ð-Ð-Ý	�G„G€G€G€Gr5   c                óÜ  — | j         st          | ¦  «         dS t          j        ¦   «         }| j                              ¦   «         }|st          d¦  «         dS ddl}|                     dd|¦  «                             d¦  «        }||k    rt          d|› �¦  «         |}t          ¦   «         }|| 	                    di ¦  «        |<   t          |¦  «         t          d|› d	|› d
�¦  «         dS )z/Map current directory to a Honcho session name.Nz   Session name cannot be empty.
r   z[^a-zA-Z0-9_-]ú-z  Session name sanitized to: rd  z	  Mapped u
   
     â†’ rP   )Úsession_nameri  r&   re  r–   rR   ÚreÚsubr$   r(   r)   )rU   rh  rl  rm  Ú	sanitizedr+   s         r3   Úcmd_maprp    s  € àÔð Ý�TÑÔÐØˆå
Œ)‰+Œ+€CØÔ$×*Ò*Ñ,Ô,€Làð ÝÐ1Ñ2Ô2Ð2Øˆà€I€I€IØ—’Ð(¨#¨|Ñ<Ô<×BÒBÀ3ÑGÔG€IØ�LÒ Ð ÝÐ9¨iÐ9Ð9Ñ:Ô:Ð:Ø ˆå
‰.Œ.€CØ*6€C‡N‚N�:˜rÑ"Ô" 3Ñ'Ý�#ÑÔÐÝ	Ð
6�cÐ
6Ð
6 lÐ
6Ð
6Ð
6Ñ7Ô7Ð7Ð7Ð7r5   c                ó  — t          ¦   «         }d}t          | dd¦  «        }t          | dd¦  «        }t          | dd¦  «        }d}|�€¦|�€£|�€ |                     di ¦  «        }|                     t          ¦   «         i ¦  «        }|                     d¦  «        p|                     d¦  «        pd	}	|                     d
¦  «        p"|                     d
¦  «        pt          ¦   «         }
|                     d¦  «        p|                     d¦  «        pd}|                     d¦  «        p|                     d¦  «        pd}t	          d¦  «         t	          d|	› �¦  «         t	          d¦  «         t	          d|
› �¦  «         t	          d¦  «         t	          d¦  «         t	          ¦   «          t	          d|› dd                     |¦  «        › d�¦  «         t	          d|› d�¦  «         dS t          ¦   «         }|dk    rd|› d�nd}|�h|                     ¦   «         |                     di ¦  «                             |i ¦  «        d<   d}t	          d |› d!|                     ¦   «         › �¦  «         |�h|                     ¦   «         |                     di ¦  «                             |i ¦  «        d
<   d}t	          d |› d"|                     ¦   «         › �¦  «         |�r||vr*t	          d#|› d$d                     |¦  «        › �¦  «         dS ||                     di ¦  «                             |i ¦  «        d<   d}t	          d |› d%|› �¦  «         |r0t          |¦  «         t	          d&t          ¦   «         › d'�¦  «         dS dS )(z8Show or update peer names and dialectic reasoning level.Fr¾   Nra  Ú	reasoningrÎ   r   r    r`  r!   r   rÍ   r   éX  u†   
Honcho peers
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€z  User peer:   zF    Your identity in Honcho. Messages you send build this peer's card.z  AI peer:     zJ    Hermes' identity in Honcho. Seed with 'hermes honcho identity <file>'.zD    Dialectic calls ask this peer questions to warm session context.z  Dialectic reasoning:  ú  (ú, r®   z  Dialectic cap:        z chars
rI   rJ   rK   rL   TrM   zUser peer -> zAI peer   -> z  Invalid reasoning level 'ú'. Options: zDialectic reasoning level -> rO   rP   )
r$   r%  r%   rQ   rR   Újoinr–   r(   r)   rT   )rU   r+   ÚchangedÚ	user_nameÚai_namerr  ÚREASONING_LEVELSr   rI   r¾   ra  ÚlvlÚ	max_charsr=   rV   s                  r3   Úcmd_peerr~  &  s©  € å
‰.Œ.€CØ€Gå˜˜f dÑ+Ô+€IÝ�d˜D $Ñ'Ô'€GÝ˜˜k¨4Ñ0Ô0€IàBÐàÑ˜W™_°Ñ1Bà—’˜ Ñ$Ô$ˆØ—’�9™;œ;¨Ñ+Ô+ˆØ�zŠz˜*Ñ%Ô%ÐK¨¯ª°Ñ)<Ô)<ÐKÀˆØ�ZŠZ˜Ñ!Ô!ÐE S§W¢W¨XÑ%6Ô%6ÐE½)¹+¼+ˆØ�jŠjÐ2Ñ3Ô3Ðb°s·w²wÐ?XÑ7YÔ7YÐbÐ]bˆØ—J’JÐ2Ñ3Ô3ÐZ°s·w²wÐ?RÑ7SÔ7SÐZÐWZˆ	ÝÐ-Ñ.Ô.Ð.ÝÐ& Ð&Ð&Ñ'Ô'Ð'ÝÐVÑWÔWÐWÝÐ$ Ð$Ð$Ñ%Ô%Ð%ÝÐZÑ[Ô[Ð[ÝÐTÑUÔUÐUÝ‰ŒˆÝÐO¨ÐOÐO°·²Ð;KÑ1LÔ1LÐOÐOÐOÑPÔPÐPÝÐ<¨Ð<Ð<Ð<Ñ=Ô=Ð=Øˆå‰;Œ;€DØ  HÒ,Ð,ˆL�ˆLˆLˆLˆL°"€EàÐØGPÇÂÑGXÔGXˆ�Š�w Ñ#Ô#×.Ò.¨t°RÑ8Ô8¸ÑDØˆÝÐ:�5Ð:Ð: y§¢Ñ'8Ô'8Ð:Ð:Ñ;Ô;Ð;àÐØELÇ]Â]Á_Ä_ˆ�Š�w Ñ#Ô#×.Ò.¨t°RÑ8Ô8¸ÑBØˆÝÐ8�5Ð8Ð8 w§}¢}¡¤Ð8Ð8Ñ9Ô9Ð9àÐØÐ,Ð,Ð,ÝÐd°	ÐdÐdÀtÇyÂyÐQaÑGbÔGbÐdÐdÑeÔeÐeØˆFØV_ˆ�Š�w Ñ#Ô#×.Ò.¨t°RÑ8Ô8Ð9RÑSØˆÝÐB�5ÐBÐB°yÐBÐBÑCÔCÐCàð 0Ý�cÑÔÐÝÐ.�L™NœNÐ.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/ð0ð 0r5   c           	     ó  — ddddœ}t          ¦   «         }t          | dd¦  «        }|€½|                     d¦  «        pi                      t          ¦   «         i ¦  «                             d¦  «        p|                     d¦  «        pd	}t	          d
¦  «         |                     ¦   «         D ]'\  }}||k    rdnd}t	          d|d›d|› |› �¦  «         Œ(t	          d¦  «         dS ||vr+t	          d|› dd                     |¦  «        › d�¦  «         dS t          ¦   «         }|dk    rd|› d�nd}	||                     di ¦  «                             |i ¦  «        d<   t          |¦  «         t	          d|	› d|› d||         › d�¦  «         dS )zShow or set the recall mode.z8auto-injected context + Honcho tools available (default)z/auto-injected context only, Honcho tools hiddenz+Honcho tools only, no auto-injected contextrÆ   ÚmodeNr   r   rÅ   uŒ   
Honcho recall mode
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ú <-rL   rM   z<10z7
  Set with: hermes honcho mode [hybrid|context|tools]
z  Invalid mode 'rv  ru  rP   rI   rJ   rK   zRecall mode -> rt  r#  ©	r$   r%  r%   rQ   rR   rg  rw  r(   r)   )
rU   ÚMODESr+   Úmode_argÚcurrentÚmÚdescr^  r=   rV   s
             r3   Úcmd_moderˆ  ^  sÚ  € ð MØDØ>ðð €Eõ
 ‰.Œ.€CÝ�t˜V TÑ*Ô*€HàÐà�WŠW�WÑÔÐ# ×(Ò(­©¬°bÑ9Ô9×=Ò=¸lÑKÔKð Ø�wŠw�|Ñ$Ô$ðàð 	õ
 	Ð3Ñ4Ô4Ð4Ø—{’{‘}”}ð 	0ð 	0‰GˆAˆtØ 7šl˜l�U�U°ˆFÝÐ.�qÐ.Ð.Ð. Ð. fÐ.Ð.Ñ/Ô/Ð/Ð/ÝÐJÑKÔKÐKØˆà�uÐÐÝÐK ÐKÐK°t·y²yÀÑ7GÔ7GÐKÐKÐKÑLÔLÐLØˆå‰;Œ;€DØ  HÒ,Ð,ˆL�ˆLˆLˆLˆL°"€EØEM€C‡N‚N�7˜BÑÔ×*Ò*¨4°Ñ4Ô4°\ÑBÝ�#ÑÔÐÝ	Ð
FˆuÐ
FÐ
F XÐ
FÐ
F°%¸´/Ð
FÐ
FÐ
FÑGÔGÐGÐGÐGr5   c           	     ó  — dddddœ}t          ¦   «         }t          | dd¦  «        }|€½|                     d¦  «        pi                      t          ¦   «         i ¦  «                             d	¦  «        p|                     d	¦  «        pd
}t	          d¦  «         |                     ¦   «         D ]'\  }}||k    rdnd}t	          d|d›d|› |› �¦  «         Œ(t	          d¦  «         dS ||vr+t	          d|› dd                     |¦  «        › d�¦  «         dS t          ¦   «         }|dk    rd|› d�nd}	||                     di ¦  «                             |i ¦  «        d	<   t          |¦  «         t	          d|	› d|› d||         › d�¦  «         dS )z!Show or set the session strategy.z;each run starts clean, Honcho injects context automaticallyz<reuses session per dir, prior context auto-injected each runzone session per git repositoryz%single session across all directories©rÓ   rÕ   rÔ   rÖ   ÚstrategyNr   r   rÓ   u‘   
Honcho session strategy
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€r�  rL   rM   z<15zP
  Set with: hermes honcho strategy [per-session|per-directory|per-repo|global]
z  Invalid strategy 'rv  ru  rP   rI   rJ   rK   zSession strategy -> rt  r#  r‚  )
rU   Ú
STRATEGIESr+   Ú	strat_argr…  r  r‡  r^  r=   rV   s
             r3   Úcmd_strategyrŽ  €  så  € ð UØWØ4Ø9ð	ð €Jõ ‰.Œ.€CÝ˜˜j¨$Ñ/Ô/€IàÐà�WŠW�WÑÔÐ# ×(Ò(­©¬°bÑ9Ô9×=Ò=Ð>OÑPÔPð Ø�wŠwÐ(Ñ)Ô)ðàð 	õ
 	Ð8Ñ9Ô9Ð9Ø!×'Ò'Ñ)Ô)ð 	0ð 	0‰GˆAˆtØ 7šl˜l�U�U°ˆFÝÐ.�qÐ.Ð.Ð. Ð. fÐ.Ð.Ñ/Ô/Ð/Ð/ÝÐcÑdÔdÐdØˆà˜
Ð"Ð"ÝÐU YÐUÐU¸D¿IºIÀjÑ<QÔ<QÐUÐUÐUÑVÔVÐVØˆå‰;Œ;€DØ  HÒ,Ð,ˆL�ˆLˆLˆLˆL°"€EØJS€C‡N‚N�7˜BÑÔ×*Ò*¨4°Ñ4Ô4Ð5FÑGÝ�#ÑÔÐÝ	Ð
RˆuÐ
RÐ
R¨)Ð
RÐ
R¸
À9Ô8MÐ
RÐ
RÐ
RÑSÔSÐSÐSÐSr5   c                ó   — t          ¦   «         }|                     di ¦  «        }|                     t          ¦   «         i ¦  «        }t          | dd¦  «        }t          | dd¦  «        }|�€E|�€B|                     d¦  «        p|                     d¦  «        pd}|                     d¦  «        p|                     d¦  «        pd}|                     d	¦  «        p|                     d	¦  «        pd
}t	          d¦  «         t	          ¦   «          t	          d|› d�¦  «         t	          d¦  «         t	          d¦  «         t	          ¦   «          t	          d|› d|› �¦  «         t	          d¦  «         t	          d¦  «         t	          d¦  «         t	          d¦  «         t	          d¦  «         dS t          ¦   «         }	|	dk    rd|	› d�nd}
d}|�D||                     di ¦  «                             |	i ¦  «        d<   t	          d|
› d|› �¦  «         d}|�E||                     di ¦  «                             |	i ¦  «        d<   t	          d|
› d|› d �¦  «         d}|r0t          |¦  «         t	          d!t          ¦   «         › d"�¦  «         dS dS )#z"Show or set token budget settings.r   rÇ   NÚ	dialecticr   z(Honcho default)r   rs  r   rÍ   uˆ   
Honcho budgets
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€z  Context     r  zC    Raw memory retrieval. Honcho returns stored facts/history aboutzC    the user and session, injected directly into the system prompt.z  Dialectic   z chars, reasoning: z?    AI-to-AI inference. Hermes asks Honcho's AI peer a questionzC    (e.g. "what were we working on?") and Honcho runs its own modelzD    to synthesize an answer. Used for first-turn session continuity.zB    Level controls how much reasoning Honcho spends on the answer.z@
  Set with: hermes honcho tokens [--context N] [--dialectic N]
rI   rJ   rK   rL   FrM   zcontext tokens -> Tzdialectic cap  -> z charsrO   rP   )r$   r%   rQ   r%  rR   r(   r)   rT   )rU   r+   r   rI   rÇ   r�  Ú
ctx_tokensÚd_charsÚd_levelr=   rV   rx  s               r3   Ú
cmd_tokensr”  £  sº  € å
‰.Œ.€CØ�GŠG�G˜RÑ Ô €EØ�YŠY•y‘{”{ BÑ'Ô'€Få�d˜I tÑ,Ô,€GÝ˜˜k¨4Ñ0Ô0€Ià�˜9Ñ,Ø—Z’Z Ñ0Ô0Ðb°C·G²G¸OÑ4LÔ4LÐbÐPbˆ
Ø—*’*Ð0Ñ1Ô1ÐX°S·W²WÐ=PÑ5QÔ5QÐXÐUXˆØ—*’*Ð6Ñ7Ô7Ðf¸3¿7º7ÐC\Ñ;]Ô;]ÐfÐafˆÝÐ/Ñ0Ô0Ð0Ý‰ŒˆÝÐ2˜zÐ2Ð2Ð2Ñ3Ô3Ð3ÝÐSÑTÔTÐTÝÐSÑTÔTÐTÝ‰ŒˆÝÐD˜wÐDÐD¸7ÐDÐDÑEÔEÐEÝÐOÑPÔPÐPÝÐUÑVÔVÐVÝÐTÑUÔUÐUÝÐRÑSÔSÐSÝÐRÑSÔSÐSØˆå‰;Œ;€DØ  HÒ,Ð,ˆL�ˆLˆLˆLˆL°"€EØ€GØÐØLSˆ�Š�w Ñ#Ô#×.Ò.¨t°RÑ8Ô8¸ÑIÝÐ5�5Ð5Ð5¨GÐ5Ð5Ñ6Ô6Ð6ØˆØÐØPYˆ�Š�w Ñ#Ô#×.Ò.¨t°RÑ8Ô8Ð9LÑMÝÐ=�5Ð=Ð=¨IÐ=Ð=Ð=Ñ>Ô>Ð>Øˆàð 0Ý�cÑÔÐÝÐ.�L™NœNÐ.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/ð0ð 0r5   c                óÄ  — t          ¦   «         }t          |¦  «        st          d¦  «         dS t          | dd¦  «        }t          | dd¦  «        }	 ddlm}m} ddlm} | 	                    t          ¦   «         ¬	¦  «        } ||¦  «        } |||¬
¦  «        }	|                     ¦   «         }
|	                     |
¦  «         n+# t          $ r}t          d|› d�¦  «         Y d}~dS d}~ww xY w|�r|	                     |
¦  «        }t          d|j        pd› d�dz   ¦  «         |r|D ]}t          d|› �¦  «         Œnt          d¦  «         |	                     |
¦  «        }t          d|j        › d�dz   ¦  «         |                     d¦  «        rt          |d         ¦  «         nI|                     d¦  «        rt          |d         ¦  «         nt          d¦  «         t          d¦  «         t          ¦   «          dS |smt          d¦  «         t          d|j        pd› �¦  «         t          d|j        › �¦  «         t          ¦   «          t          d¦  «         t          d¦  «         dS ddlm}  ||¦  «                             ¦   «         }|                     ¦   «         st          d|› d�¦  «         dS |                     d¬ ¦  «                             ¦   «         }|st          d!|› d�¦  «         dS |j        }|	                     |
||¬"¦  «        }|r5t          d#|j        › d$|
› d%�¦  «         t          d&|j        › d'�¦  «         dS t          d(¦  «         dS ))z8Seed AI peer identity or show both peer representations.z:  No API key configured. Run 'hermes honcho setup' first.
NÚfileÚshowFr   r9   r<  r<   r>  z  Honcho connection failed: rP   z
User peer (r¼   r#  r  rM   z:  No user peer card yet. Send a few messages to build one.z

AI peer (rA  rJ  z  No representation built yet.z2  Run 'hermes honcho identity <file>' to seed one.u”   
Honcho identity management
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€z  User peer: rà   uK       hermes honcho identity --show        â€” show both peer representationsuW       hermes honcho identity <file>        â€” seed AI peer from SOUL.md or any .md/.txt
r   z  File not found: rs   rt   z  File is empty: ©Úsourcez  Seeded AI peer identity from z into session 'ú'z$  Honcho will incorporate this into z's representation over time.
z3  Failed to seed identity. Check logs for details.
)r$   r‡   rR   r%  r>   r:   r;   rD  r=  r?   rQ   rè   rE  rD   rF  r2   rG  rC   r%   Úpathlibr   Ú
expanduserrv   ry   r–   r`   Úseed_ai_identity)rU   r+   Ú	file_pathr—  r:   r;   r=  rE   rF   rH  rI  rb   Ú	user_cardrK  rL  r   re   Úcontentr™  Úoks                       r3   Úcmd_identityr¢  Ï  s  € å
‰.Œ.€CÝ˜CÑ Ô ð ÝÐKÑLÔLÐLØˆå˜˜f dÑ+Ô+€IÝ�4˜ Ñ'Ô'€Dð
ØVÐVÐVÐVÐVÐVÐVÐVØFÐFÐFÐFÐFÐFØ!×4Ò4½)¹+¼+Ð4ÑFÔFˆØ"Ð" 4Ñ(Ô(ˆØ"Ð"¨&¸Ð>Ñ>Ô>ˆØ×/Ò/Ñ1Ô1ˆØ×Ò˜+Ñ&Ô&Ð&Ð&øÝð ð ð ÝÐ2¨QÐ2Ð2Ð2Ñ3Ô3Ð3Øˆˆˆˆˆøøøøðøøøð ñ à×%Ò% kÑ2Ô2ˆ	ÝÐ>˜dœnÐ9°	Ð>Ð>Ð>ÀÑKÑLÔLÐLØð 	PØ!ð #ð #�Ý�k˜4�k�kÑ"Ô"Ð"Ð"ð#õ ÐNÑOÔOÐOð ×*Ò*¨;Ñ7Ô7ˆÝÐ-˜DœLÐ-Ð-Ð-°
Ñ:Ñ;Ô;Ð;Ø�:Š:Ð&Ñ'Ô'ð 	HÝ�&Ð)Ô*Ñ+Ô+Ð+Ð+Ø�ZŠZ˜ÑÔð 	HÝ�&˜”.Ñ!Ô!Ð!Ð!åÐ2Ñ3Ô3Ð3ÝÐFÑGÔGÐGÝ‰ŒˆØˆàð ÝÐ;Ñ<Ô<Ð<ÝÐ;˜dœnÐ9°	Ð;Ð;Ñ<Ô<Ð<ÝÐ,˜dœlÐ,Ð,Ñ-Ô-Ð-Ý‰ŒˆÝÐ[Ñ\Ô\Ð\ÝÐhÑiÔiÐiØˆàÐÐÐÐÐØˆˆY‰Œ×"Ò"Ñ$Ô$€AØ�8Š8‰:Œ:ð ÝÐ( 1Ð(Ð(Ð(Ñ)Ô)Ð)Øˆà�kŠk 7ˆkÑ+Ô+×1Ò1Ñ3Ô3€GØð ÝÐ' !Ð'Ð'Ð'Ñ(Ô(Ð(ØˆàŒV€FØ	×	Ò	˜k¨7¸6Ð	Ñ	BÔ	B€BØ	ð FÝÐU°´ÐUÐUÀ{ÐUÐUÐUÑVÔVÐVÝÐa°T´\ÐaÐaÐaÑbÔbÐbÐbÐbåÐDÑEÔEÐEÐEÐEs   ÁA1C Ã
C,ÃC'Ã'C,c                óR  — ddl m}  |t          j        ¦   «         ¦  «        } |j        ¦   «         dz  }ddg}g d¢}g }g }|D ];}||fD ]4}	|	|z  }
|
                     ¦   «         r|
|vr|                     |
¦  «         Œ5Œ<|D ];}||fD ]4}	|	|z  }
|
                     ¦   «         r|
|vr|                     |
¦  «         Œ5Œ<t          ¦   «         }t          t          |¦  «        ¦  «        }t          d¦  «         t          ¦   «          t          d¦  «         t          d	¦  «         t          d
¦  «         t          d¦  «         t          d¦  «         t          ¦   «          t          d¦  «         t          ¦   «          |rPt          |d         ¦  «        dk    rd|d         dd…         › �nd}t          d|› �¦  «         t          d¦  «         nìt          d¦  «         t          d¦  «         t          ¦   «          t          d¦  «         t          d¦  «         t          d¦  «         t          ¦   «          t          dd¬¦  «        }|                     ¦   «         dv rAt          | ¦  «         t          ¦   «         }t          |                     dd¦  «        ¦  «        }nt          ¦   «          t          d ¦  «         t          ¦   «          t          d!¦  «         t          ¦   «          |s|rs|r7t          d"t          |¦  «        › d#�¦  «         |D ]}t          d$|› �¦  «         Œ|r7t          d%t          |¦  «        › d&�¦  «         |D ]}t          d$|› �¦  «         Œn-t          d'¦  «         t          d(¦  «         t          d)¦  «         t          ¦   «          t          d*¦  «         t          ¦   «          t          d+¦  «         t          d,¦  «         t          d-¦  «         t          ¦   «          |�ràt          d.d/                     d0„ |D ¦   «         ¦  «        › �¦  «         t          ¦   «          t          d1¦  «         t          d2¦  «         t          d3¦  «         t          ¦   «          t          d4¦  «         |D ]}t          d5¦  «         Œ|�r2t          d6d¬¦  «        }|                     ¦   «         dv �r		 dd7lm}m}m} dd8lm}  |¦   «          |                     ¦   «         } ||¦  «        } |||¬9¦  «        }|                     ¦   «         }|                     |¦  «         t5          d:„ |D ¦   «         ¦  «        }d;}|D ]}	|                     ||	¦  «        rd<}Œ|r&t          d=d/                     |¦  «        › �¦  «         nt          d>¦  «         nI# t8          $ r}t          d?|› �¦  «         Y d}~n(d}~ww xY wnt          d@¦  «         nt          dA¦  «         t          ¦   «          t          dB¦  «         t          ¦   «          t          dC¦  «         t          dD¦  «         t          dE¦  «         t          ¦   «          t          dF¦  «         t          dG¦  «         t          dH¦  «         t          dI¦  «         t          ¦   «          |�r–t          d.d/                     dJ„ |D ¦   «         ¦  «        › �¦  «         t          ¦   «          |�r/t          dKd¬¦  «        }|                     ¦   «         dv �r	 dd7lm}m}m} dd8lm}  |¦   «          |                     ¦   «         } ||¦  «        } |||¬9¦  «        }|                     ¦   «         }|                     |¦  «         |D ]i}|                     dL¬M¦  «                             ¦   «         }|r=|                     |||j         ¬N¦  «        }|rdOndP}t          d$|j         › dQ|› �¦  «         Œjno# t8          $ r}t          d?|› �¦  «         Y d}~nNd}~ww xY wnEt          dR¦  «         |D ]}t          dS|› �¦  «         Œnt          dT¦  «         t          dU¦  «         t          ¦   «          t          dV¦  «         t          ¦   «          t          dW¦  «         t          dX¦  «         t          dY¦  «         t          dZ¦  «         t          ¦   «          t          d[¦  «         t          d\¦  «         t          d]¦  «         t          d^¦  «         t          ¦   «          t          d_¦  «         t          d`¦  «         t          da¦  «         t          db¦  «         t          ¦   «          t          dc¦  «         t          dd¦  «         t          de¦  «         t          df¦  «         t          dg¦  «         t          dh¦  «         t          ¦   «          t          di¦  «         t          dj¦  «         t          dk¦  «         t          dl¦  «         t          ¦   «          t          dm¦  «         t          ¦   «          |st          dn¦  «         t          do¦  «         nZt          dp¦  «         t          dq¦  «         t          dr¦  «         t          ds¦  «         t          dt¦  «         t          du¦  «         t          ¦   «          dS )vuI   Step-by-step migration guide: OpenClaw native memory â†’ Hermes + Honcho.r   r   z	.openclawzUSER.mdz	MEMORY.md)zSOUL.mdzIDENTITY.mdz	AGENTS.mdzTOOLS.mdzBOOTSTRAP.mduË   
Honcho migration: OpenClaw native memory â†’ Hermes
â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€zA  OpenClaw's native memory stores context in local markdown fileszE  (USER.md, MEMORY.md, SOUL.md, ...) and injects them via QMD search.zH  Honcho replaces that with a cloud-backed, LLM-observable memory layer:zF  context is retrieved semantically, injected automatically each turn,zD  and enriched by a dialectic reasoning layer that builds over time.zStep 1  Create a Honcho accountr   r¸   r¹   rº   Nr»   z%  Honcho API key already configured: z  Skip to Step 2.zF  Honcho is a cloud memory service that gives Hermes persistent memoryz1  across sessions. You need an API key to use it.z/  1. Get your API key at https://app.honcho.devz  2. Run:  hermes honcho setupz!     Paste the key when prompted.z   Run 'hermes honcho setup' now?rš   r›   rœ   rL   zE  Run 'hermes honcho setup' when ready, then re-run this walkthrough.z&Step 2  Detected OpenClaw memory filesz  User memory (u*    file(s)) â€” will go to Honcho user peer:rC  z  Agent identity (u(    file(s)) â€” will go to Honcho AI peer:z?  No OpenClaw native memory files found in cwd or ~/.openclaw/.z@  If your files are elsewhere, copy them here before continuing,z?  or seed them manually:  hermes honcho identity <path/to/file>u6   Step 3  Migrate user memory files â†’ Honcho user peerzE  USER.md and MEMORY.md contain facts about you that the agent shouldzH  remember across sessions. Honcho will store these under your user peerzD  and inject relevant excerpts into the system prompt automatically.z	  Found: ru  c              3  ó$   K  — | ]}|j         V — Œd S ©N©r`   ©r±   Úfs     r3   r³   zcmd_migrate.<locals>.<genexpr>r  s$   è è € Ð#?Ð#?¨q A¤FÐ#?Ð#?Ð#?Ð#?Ð#?Ð#?r5   zC  These are picked up automatically the first time you run 'hermes'z6  with Honcho configured and no prior session history.z>  (Hermes calls migrate_memory_files() on first session init.)z=  If you want to migrate them now without starting a session:uA       hermes honcho migrate  â€” this step handles it interactivelyz)  Upload user memory files to Honcho now?rÝ   r<  r>  c              3  ó>   K  — | ]}t          |j        ¦  «        V — Œd S r¥  )r   r‚   r§  s     r3   r³   zcmd_migrate.<locals>.<genexpr>�  s*   è è € Ð)LÐ)L¸A­#¨a¬h©-¬-Ð)LÐ)LÐ)LÐ)LÐ)LÐ)Lr5   FTz#  Uploaded user memory files from: z<  Nothing uploaded (files may already be migrated or empty).z
  Failed: z9  Run 'hermes honcho setup' first, then re-run this step.z9  No user memory files detected. Nothing to migrate here.u1   Step 4  Seed AI identity files â†’ Honcho AI peerzD  SOUL.md, IDENTITY.md, AGENTS.md, TOOLS.md, BOOTSTRAP.md define thezD  agent's character, capabilities, and behavioral rules. In OpenClawz:  these are injected via file search at prompt-build time.zC  In Hermes, they are seeded once into Honcho's AI peer through thezD  observation pipeline. Honcho builds a representation from them andzF  from every subsequent assistant message (observe_me=True). Over timezD  the representation reflects actual behavior, not just declaration.c              3  ó$   K  — | ]}|j         V — Œd S r¥  r¦  r§  s     r3   r³   zcmd_migrate.<locals>.<genexpr>«  s$   è è € Ð#@Ð#@¨q A¤FÐ#@Ð#@Ð#@Ð#@Ð#@Ð#@r5   z/  Seed AI identity from all detected files now?rs   rt   r˜  ÚseededÚfailedrŒ   z6  Run 'hermes honcho setup' first, then seed manually:z    hermes honcho identity z#  No agent identity files detected.z=  To seed manually:  hermes honcho identity <path/to/SOUL.md>z/Step 5  What changes vs. OpenClaw native memoryz	  StoragezL    OpenClaw: markdown files on disk, searched via QMD at prompt-build time.zI    Hermes:   cloud-backed Honcho peers. Files can stay on disk as sourcez=              of truth; Honcho holds the live representation.z  Context injectionzH    OpenClaw: file excerpts injected synchronously before each LLM call.zK    Hermes:   Honcho context fetched async at turn end, injected next turn.zL              First turn has no Honcho context; subsequent turns are loaded.z  Memory growthz7    OpenClaw: you edit files manually to update memory.zG    Hermes:   Honcho observes every message and updates representationszG              automatically. Files become the seed, not the live store.z;  Honcho tools (available to the agent during conversation)uQ       honcho_context   â€” session context: summary, representation, card, messagesu@       honcho_search        â€” semantic search over stored contextu4       honcho_profile       â€” fast peer card snapshotuF       honcho_reasoning     â€” ask Honcho a question, synthesized answeruC       honcho_conclude      â€” write a conclusion/fact back to memoryz  Session naminguA       OpenClaw: no persistent session concept â€” files are global.uF       Hermes:   per-session by default â€” each run gets its own sessionzB              Map a custom name:  hermes honcho map <session-name>zStep 6  Next stepsuF     1. hermes honcho setup              â€” configure API key (required)uA     2. hermes honcho migrate            â€” re-run this walkthroughuB     1. hermes honcho status             â€” verify Honcho connectionu9     2. hermes                           â€” start a sessionzF     (user memory files auto-uploaded on first turn if not done above)uG     3. hermes honcho identity --show    â€” verify AI peer representationuL     4. hermes honcho tokens             â€” tune context and dialectic budgetsuD     5. hermes honcho mode               â€” view or change memory mode)!r›  r   r&   re  r'  rv   r  r$   r   r‡   rR   rã   r˜   r¤   r  r%   rw  r>   r:   r;   rÞ   rD  r=  r?   rè   rE  r»   Úmigrate_memory_filesrD   ry   r–   r�  r`   )rU   r   rh  Úopenclaw_homeÚuser_file_namesÚagent_file_namesÚ
user_filesÚagent_filesr`   Údre   r+   r-   r÷   rª   r¨  r:   r;   rÞ   r=  rE   rF   rH  rI  Údirs_with_filesÚany_uploadedrb   r   r¡  Ústatuss                                 r3   Úcmd_migrater·    s   € àÐÐÐÐÐð ˆ$�rŒy‰{Œ{Ñ
Ô
€CØ�D”I‘K”K +Ñ-€Mð ! +Ð.€OàZÐZÐZÐà€JØ €KØð %ð %ˆØ�}Ð%ð 	%ð 	%ˆAØ�D‘ˆAØ�xŠx‰zŒzð %˜a zÐ1Ð1Ø×!Ò! !Ñ$Ô$Ð$øð	%ð !ð &ð &ˆØ�}Ð%ð 	&ð 	&ˆAØ�D‘ˆAØ�xŠx‰zŒzð &˜a {Ð2Ð2Ø×"Ò" 1Ñ%Ô%Ð%øð	&õ
 ‰.Œ.€CÝÕ# CÑ(Ô(Ñ)Ô)€Gå	Ð
PÑQÔQÐQÝ	�G„G€GÝ	Ð
MÑNÔNÐNÝ	Ð
QÑRÔRÐRÝ	Ð
TÑUÔUÐUÝ	Ð
RÑSÔSÐSÝ	Ð
PÑQÔQÐQÝ	�G„G€Gõ 
Ð
+Ñ,Ô,Ð,Ý	�G„G€GØð [Ý/2°3°x´=Ñ/AÔ/AÀAÒ/EÐ/EÐ+�s˜8”} R S SÔ)Ð+Ð+Ð+È5ˆÝÐ>°fÐ>Ð>Ñ?Ô?Ð?ÝÐ!Ñ"Ô"Ð"Ð"åÐVÑWÔWÐWÝÐAÑBÔBÐBÝ‰ŒˆÝÐ?Ñ@Ô@Ð@ÝÐ.Ñ/Ô/Ð/ÝÐ1Ñ2Ô2Ð2Ý‰ŒˆÝÐ;ÀSÐIÑIÔIˆØ�<Š<‰>Œ>˜\Ð)Ð)Ý�d‰OŒOˆOÝ‘.”.ˆCÝ˜3Ÿ7š7 8¨RÑ0Ô0Ñ1Ô1ˆGˆGå‰GŒGˆGÝÐYÑZÔZÐZõ 
�G„G€GÝ	Ð
2Ñ3Ô3Ð3Ý	�G„G€GØð Q�[ð QØð 	"ÝÐ_¥C¨
¡O¤OÐ_Ð_Ð_Ñ`Ô`Ð`Øð "ð "�Ý�j˜Q�j�jÑ!Ô!Ð!Ð!Øð 	"ÝÐa¥s¨;Ñ'7Ô'7ÐaÐaÐaÑbÔbÐbØ ð "ð "�Ý�j˜Q�j�jÑ!Ô!Ð!Ð!øåÐOÑPÔPÐPÝÐPÑQÔQÐQÝÐOÑPÔPÐPõ 
�G„G€GÝ	Ð
BÑCÔCÐCÝ	�G„G€GÝ	Ð
QÑRÔRÐRÝ	Ð
TÑUÔUÐUÝ	Ð
PÑQÔQÐQÝ	�G„G€GØñ *KÝÐA˜$Ÿ)š)Ð#?Ð#?°JÐ#?Ñ#?Ô#?Ñ?Ô?ÐAÐAÑBÔBÐBÝ‰ŒˆÝÐSÑTÔTÐTÝÐFÑGÔGÐGÝÐNÑOÔOÐOÝ‰ŒˆÝÐMÑNÔNÐNØð 	Wð 	WˆAÝÐUÑVÔVÐVÐVØñ 	OÝÐHÐRUÐVÑVÔVˆFØ�|Š|‰~Œ~ Ð-Ñ-ð,ðð ð ð ð ð ð ð ð ð ð
 SÐRÐRÐRÐRÐRà'Ð'Ñ)Ô)Ð)Ø-×@Ò@ÑBÔB�DØ.Ð.¨tÑ4Ô4�FØ.Ð.°fÀTÐJÑJÔJ�CØ"&×";Ò";Ñ"=Ô"=�KØ×%Ò% kÑ2Ô2Ð2å&)Ð)LÐ)LÀÐ)LÑ)LÔ)LÑ&LÔ&L�OØ#(�LØ,ð 0ð 0˜Ø×3Ò3°KÀÑCÔCð 0Ø+/˜LøØ#ð ^ÝÐ`ÀDÇIÂIÈoÑD^ÔD^Ð`Ð`ÑaÔaÐaÐaåÐ\Ñ]Ô]Ð]øøÝ ð ,ð ,ð ,ÝÐ* qÐ*Ð*Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+øøøøð,øøøð3 .õ8 ÐMÑNÔNÐNÐNåÐIÑJÔJÐJõ 
�G„G€GÝ	Ð
=Ñ>Ô>Ð>Ý	�G„G€GÝ	Ð
PÑQÔQÐQÝ	Ð
PÑQÔQÐQÝ	Ð
FÑGÔGÐGÝ	�G„G€GÝ	Ð
OÑPÔPÐPÝ	Ð
PÑQÔQÐQÝ	Ð
RÑSÔSÐSÝ	Ð
PÑQÔQÐQÝ	�G„G€GØñ "OÝÐB˜$Ÿ)š)Ð#@Ð#@°KÐ#@Ñ#@Ô#@Ñ@Ô@ÐBÐBÑCÔCÐCÝ‰ŒˆØñ 	9ÝÐNÐX[Ð\Ñ\Ô\ˆFØ�|Š|‰~Œ~ Ð-Ñ-ð,ðð ð ð ð ð ð ð ð ð ð
 SÐRÐRÐRÐRÐRà'Ð'Ñ)Ô)Ð)Ø-×@Ò@ÑBÔB�DØ.Ð.¨tÑ4Ô4�FØ.Ð.°fÀTÐJÑJÔJ�CØ"&×";Ò";Ñ"=Ô"=�KØ×%Ò% kÑ2Ô2Ð2Ø(ð =ð =˜Ø"#§+¢+°w +Ñ"?Ô"?×"EÒ"EÑ"GÔ"G˜Ø"ð =Ø!$×!5Ò!5°kÀ7ÐSTÔSYÐ!5Ñ!ZÔ!Z˜BØ13Ð%A X X¸˜FÝ!Ð";¨¬Ð";Ð";°6Ð";Ð";Ñ<Ô<Ð<øð=øõ !ð ,ð ,ð ,ÝÐ* qÐ*Ð*Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+øøøøð,øøøð+ .õ0 ÐJÑKÔKÐKØ ð 9ð 9�ÝÐ7°AÐ7Ð7Ñ8Ô8Ð8Ð8ð9õ 	Ð3Ñ4Ô4Ð4ÝÐMÑNÔNÐNõ 
�G„G€GÝ	Ð
;Ñ<Ô<Ð<Ý	�G„G€GÝ	ˆ+ÑÔÐÝ	Ð
XÑYÔYÐYÝ	Ð
UÑVÔVÐVÝ	Ð
IÑJÔJÐJÝ	�G„G€GÝ	Ð
Ñ Ô Ð Ý	Ð
TÑUÔUÐUÝ	Ð
WÑXÔXÐXÝ	Ð
XÑYÔYÐYÝ	�G„G€GÝ	Ð
ÑÔÐÝ	Ð
CÑDÔDÐDÝ	Ð
SÑTÔTÐTÝ	Ð
SÑTÔTÐTÝ	�G„G€GÝ	Ð
GÑHÔHÐHÝ	Ð
]Ñ^Ô^Ð^Ý	Ð
LÑMÔMÐMÝ	Ð
@ÑAÔAÐAÝ	Ð
RÑSÔSÐSÝ	Ð
OÑPÔPÐPÝ	�G„G€GÝ	Ð
ÑÔÐÝ	Ð
MÑNÔNÐNÝ	Ð
RÑSÔSÐSÝ	Ð
NÑOÔOÐOõ 
�G„G€GÝ	Ð
ÑÔÐÝ	�G„G€GØð 	VÝÐVÑWÔWÐWÝÐQÑRÔRÐRÐRåÐRÑSÔSÐSÝÐIÑJÔJÐJÝÐVÑWÔWÐWÝÐWÑXÔXÐXÝÐ\Ñ]Ô]Ð]ÝÐTÑUÔUÐUÝ	�G„G€G€G€Gs2   Ò7CV Ö
V<Ö V7Ö7V<Û;C_ ß
_=ß!_8ß8_=c                óv  — t          | dd¦  «        at          | dd¦  «        }|dk    r1t          d¦  «         t          d¦  «         ddlm}  |d	¦  «         dS |€t          | ¦  «         dS |d
k    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt          | ¦  «         dS |dk    rt!          | ¦  «         dS |dk    rt#          | ¦  «         dS t          d|› �¦  «         t          d¦  «         dS )zRoute honcho subcommands.Útarget_profileNÚhoncho_commandÚsetupz7
  Honcho is configured via the memory provider system.z#  Running 'hermes memory setup'...
r   )Úcmd_setup_providerr¢   r¶  Úpeersrd  ÚmaprB   r€  r‹  ÚtokensÚidentityÚmigrateÚenableÚdisableÚsyncz  Unknown honcho command: zk  Available: status, sessions, map, peer, mode, strategy, tokens, identity, migrate, enable, disable, sync
)r%  rj   rR   Úhermes_cli.memory_setupr¼  r:  rb  ri  rp  r~  rˆ  rŽ  r”  r¢  r·  rX   rZ   rf   )rU   rn  r¼  s      r3   rº  rº  þ  s'  € õ   Ð&6¸Ñ=Ô=Ðå
�$Ð(¨$Ñ
/Ô
/€CØ
ˆg‚~€~åÐHÑIÔIÐIÝÐ4Ñ5Ô5Ð5Ø>Ð>Ð>Ð>Ð>Ð>ØÐ˜8Ñ$Ô$Ð$ØˆØ	ˆÝ�4ÑÔÐÐÐØ	�ŠˆÝ�4ÑÔÐÐÐØ	�ŠˆÝ�$‰ŒˆˆˆØ	�
Ò	Ð	Ý�TÑÔÐÐÐØ	�ŠˆÝ�‰ŒˆˆˆØ	�ŠˆÝ�‰ŒˆˆˆØ	�ŠˆÝ�‰ŒˆˆˆØ	�
Ò	Ð	Ý�TÑÔÐÐÐØ	�ŠˆÝ�4ÑÔÐÐÐØ	�
Ò	Ð	Ý�TÑÔÐÐÐØ	�	Ò	Ð	Ý�DÑÔÐÐÐØ	�ŠˆÝ�4ÑÔÐÐÐØ	�	Ò	Ð	Ý�DÑÔÐÐÐØ	�ŠˆÝ�‰ŒˆˆˆåÐ0¨3Ð0Ð0Ñ1Ô1Ð1ÝÐ|Ñ}Ô}Ð}Ð}Ð}r5   c                óT  — |                       dddd¬¦  «         |                      d¬¦  «        }|                     dd	¬
¦  «         |                     dd¬
¦  «        }|                      ddd¬¦  «         |                     dd¬
¦  «         |                     dd¬
¦  «         |                     dd¬
¦  «        }|                      dddd¬¦  «         |                     dd¬
¦  «        }|                      ddd¬ ¦  «         |                      d!dd"¬ ¦  «         |                      d#d$d%d&¬'¦  «         |                     d(d)¬
¦  «        }|                      d(dd*d+d,¬-¦  «         |                     d.d/¬
¦  «        }|                      d.dd0d1d2¬-¦  «         |                     d3d4¬
¦  «        }|                      d5t          d6d7¬8¦  «         |                      d9t          d6d:¬8¦  «         |                     d;d<¬
¦  «        }|                      d=ddd>¬¦  «         |                      d?dd@¬¦  «         |                     dAdB¬
¦  «         |                     dCdD¬
¦  «         |                     dEdF¬
¦  «         |                     dGdH¬
¦  «         |                      t
          ¬I¦  «         dS )Jz¼Build the ``hermes honcho`` argparse subcommand tree.

    Called by the plugin CLI registration system during argparse setup.
    The *subparser* is the parser for ``hermes honcho``.
    z--target-profileÚNAMEr¹  z;Target a specific profile's Honcho config without switching)ÚmetavarÚdestÚhelprº  )rÉ  r»  z7Initial Honcho setup (redirects to hermes memory setup))rÊ  r¶  z0Show current Honcho config and connection statusz--allÚ
store_truez(Show config overview across all profiles)ÚactionrÊ  r½  z(Show peer identities across all profilesrd  z"List known Honcho session mappingsr¾  zGMap current directory to a Honcho session name (no arg = list mappings)rl  ú?NzMSession name to associate with this directory. Omit to list current mappings.)Únargsr^   rÊ  rB   z7Show or update peer names and dialectic reasoning levelz--userzSet user peer name)rÈ  rÊ  z--aizSet AI peer namez--reasoningÚLEVELrÎ   zCSet default dialectic reasoning level (minimal/low/medium/high/max))rÈ  ÚchoicesrÊ  r€  z.Show or set recall mode (hybrid/context/tools)ÚMODErÆ   z@Recall mode to set (hybrid/context/tools). Omit to show current.)rÎ  rÈ  rÐ  rÊ  r‹  zHShow or set session strategy (per-session/per-directory/per-repo/global)ÚSTRATEGYrŠ  z.Session strategy to set. Omit to show current.r¿  z2Show or set token budget for context and dialecticz	--contextÚNz9Max tokens Honcho returns from session.context() per turn)ÚtyperÈ  rÊ  z--dialecticz:Max chars of dialectic result to inject into system promptrÀ  z9Seed or show the AI peer's Honcho identity representationr–  z=Path to file to seed from (e.g. SOUL.md). Omit to show usage.z--showz/Show current AI peer representation from HonchorÁ  zBStep-by-step migration guide from openclaw-honcho to Hermes HonchorÂ  z$Enable Honcho for the active profilerÃ  z%Disable Honcho for the active profilerÄ  z+Sync Honcho config to all existing profiles)Úfunc)Úadd_argumentÚadd_subparsersÚ
add_parserrg   Úset_defaultsrº  )	Ú	subparserÚsubsÚstatus_parserÚ
map_parserÚpeer_parserÚmode_parserÚstrategy_parserÚtokens_parserÚidentity_parsers	            r3   Úregister_clirã  ,  s§  € ð ×ÒØ FÐ1AØJð ñ ô ð ð ×#Ò#Ð)9Ð#Ñ:Ô:€Dà‡O‚OØØFð ñ ô ð ð
 —O’OØÐIð $ñ ô €Mð ×ÒØ˜Ð+Uð ñ ô ð ð 	‡O‚O�GÐ"L€OÑMÔMÐMØ‡O‚O�JÐ%I€OÑJÔJÐJà—’ØÐ]ð !ñ ô €Jð ×ÒØ˜c¨4Ø\ð ñ ô ð ð
 —/’/ØÐNð "ñ ô €Kð ×Ò˜X¨vÐ<PÐÑQÔQÐQØ×Ò˜V¨VÐ:LÐÑMÔMÐMØ×ÒØ˜wØ;ØRð ñ ô ð ð —/’/ØÐEð "ñ ô €Kð ×ÒØ�c 6Ø.ØOð ñ ô ð ð —o’oØÐcð &ñ ô €Oð × Ò Ø˜# zØFØ=ð !ñ ô ð ð —O’OØÐKð $ñ ô €Mð ×ÒØ�# sØHð ñ ô ð ð ×ÒØ�C¨ØIð ñ ô ð ð
 —o’oØÐTð &ñ ô €Oð × Ò Ø�c 4ØLð !ñ ô ð ð × Ò Ø˜Ø>ð !ñ ô ð ð
 	‡O‚OØØQð ñ ô ð ð 	‡O‚O�HÐ#I€OÑJÔJÐJØ‡O‚O�IÐ$K€OÑLÔLÐLØ‡O‚O�FÐ!N€OÑOÔOÐOà×Ò¥ÐÑ/Ô/Ð/Ð/Ð/r5   )r   r   r   r   r¥  )r6   r7   r   r   )r   rG   )r   rg   )r   r   )r   r   )r   rq   )r+   rq   rz   r{   r   rG   )r+   rq   r   r   )NF)rV   r   r^   r7   rˆ   r   r   r   )r   r   )r   r  )/Ú__doc__Ú
__future__r   rw   r&   rŽ   r›  r   Úhermes_constantsr   r>   r   r	   r
   r4   r*   rX   rZ   rf   ri   rj   Ú__annotations__rQ   rT   rp   r$   r)   r‡   r˜   r¬   r  r  r  r:  r0  r&  rb  ri  rp  r~  rˆ  rŽ  r”  r¢  r·  rº  rã  rm   r5   r3   ú<module>rè     sY  ððð ð ð
 #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ Wð5ð 5ð 5ð 5ðpð ð ð ð ð*(,ð (,ð (,ð (,ðV,ð ,ð ,ð ,ð"+ð +ð +ð +ð\ð ð ð ð: !%Ð Ð $Ð $Ð $Ñ $ð!ð !ð !ð !ð!ð !ð !ð !ð
-ð -ð -ð -ðð ð ð ðð ð ð ð ðUð Uð Uð Uð"ð "ð "ð "ð "ð ð ð ð ð<dTð dTð dTð dTðNð ð ð ðð ð ð ð8P1ð P1ð P1ð P1ðf$3ð $3ð $3ð $3ðN%ð %ð %ð %ð4ð ð ð ð"ð ð ð ð&8ð 8ð 8ð 8ð250ð 50ð 50ð 50ðpHð Hð Hð HðD Tð  Tð  Tð  TðF)0ð )0ð )0ð )0ðXGFð GFð GFð GFðTbð bð bð bðJ+~ð +~ð +~ð +~ð\a0ð a0ð a0ð a0ð a0ð a0r5   