+
    „WÝj1$  ã                  óº   € R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHtH	t	 ^ RI
Ht R R ltR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR# )zl`hermes checkpoints` CLI subcommand.

None of these require the agent to be running. Safe to call any time.
)ÚannotationsN)ÚPath)ÚAnyÚOptional)Úformat_bytesc               ó    € V ^8„  d   QhRRRR/# )é   Útsr   ÚreturnÚstr© )Úformats   "ÚJC:\Users\johnn\AppData\Local\hermes\hermes-agent\hermes_cli\checkpoints.pyÚ__annotate__r      s   € ÷ 
&ñ 
&�ð 
&˜ñ 
&ó    c                ó  €  \         P                   ! 4       \        V 4      ,
          pT^ 8  d   R# R F$  w  r#pY8  g   K  \	        Y,          4       T R2u # 	  \	        TR,          4       R2#   \        \        3 d     R # i ; i)u   â€”Únowé€Q z agozd ago))é<   é   Ús)é  r   Úm)r   r   Úh)ÚtimeÚfloatÚ	TypeErrorÚ
ValueErrorÚint)r	   ÚageÚboundÚdivÚunits   &    r   Ú_fmt_ager#      s†   € ðÜ�iŠi‹kœE "›IÕ%ˆð ˆQ„wÙÛOÑˆ�DØŽ;Ü˜#�)“nÐ% d V¨4Ð0Ò0ñ Pô �#˜•+ÓÐ˜uÐ%Ð%øô ”zÐ"ô Úðús   ‚%A/ Á/BÂBc               ó    € V ^8„  d   QhRRRR/# ©r   Úargsúargparse.Namespacer
   r   r   )r   s   "r   r   r      s   € ÷ ñ Ð'ð ¨Cñ r   c                óè  € ^ RI Hp V! 4       pVR,          p\        RV 24       \        R\        VR,          4       24       \        R\        VR,          4       24       \        R\        VR	,          4       24       \        R
VR,           24       \	        VR,          R RR7      pV'       dØ   \        4        \        RRR RRR RRR R24       TR\        V RR4      ;'       g    ^  F—  pVP                  R4      ;'       g    Rp\        V4      ^<8”  d   RVR'R ,           pVP                  R4      '       d   RMRp\        RVR RVP                  R ^ 4      R R\        VP                  R!4      4      R RV 24       K™  	  VP                  R". 4      pV'       dP   \        4        \        R#\        V4       R$24       \        \	        VR% RR7      4       \        4        \        R&4       ^ # )(é    )Ústore_statusÚbasezCheckpoint base: zTotal size:      Útotal_size_bytesz  store/         Ústore_size_bytesz  legacy-*       Úlegacy_size_byteszProjects:        Úproject_countÚprojectsc                ó8   € V P                  R 4      ;'       g    ^ # )Ú
last_touch©Úget)Úps   &r   Ú<lambda>Úcmd_status.<locals>.<lambda>(   s   € °q·u±u¸\Ó7J×7OÐ7OÈaÐ7Or   T)ÚkeyÚreverseú  ÚWORKDIRz<60ÚCOMMITSz>7z
LAST TOUCHz>12z  STATENÚlimitÚworkdirú	(unknown)u   â€¦ÚexistsÚliveÚorphanÚcommitsr2   Úlegacy_archiveszLegacy archives (z):c                ó&   € V P                  R ^ 4      # )Úmtimer3   )Úas   &r   r6   r7   7   s   € °Q·U±U¸7ÀAÔ5Fr   z+Clear with: hermes checkpoints clear-legacyiÅÿÿÿ)
Útools.checkpoint_maintenancer*   ÚprintÚ
_fmt_bytesÚsortedÚgetattrr4   Úlenr#   Ú_print_archives)	r&   r*   Úinfor+   r0   r5   ÚwdÚstateÚlegacys	   &        r   Ú
cmd_statusrS      sÓ  € Ý9á‹>€DØ��<€DÜ	Ð˜d˜VÐ
$Ô%Ü	Ðœj¨Ð.@Õ)AÓBÐCÐ
DÔEÜ	Ðœj¨Ð.@Õ)AÓBÐCÐ
DÔEÜ	Ðœj¨Ð.AÕ)BÓCÐDÐ
EÔFÜ	Ð˜d ?Õ3Ð4Ð
5Ô6ä�d˜:Õ&Ñ,PÐZ^Ô_€HßÜŒÜ��9˜S�/  I¨b >°°LÀÐ3EÀWÐMÔNØÐ>œG D¨'°4Ó8×>Ð>¸BÓ?ˆAØ—‘�yÓ!×0Ð0 [ˆBÜ�2‹w˜Œ|Ø˜R  ˜XÕ%�ØŸe™e HŸošo‘F°8ˆEÜ�B�r˜#�h˜b §¡ y°!Ó!4°RÐ 8¸¼8ÀAÇEÁEÈ,ÓDWÓ;XÐY\Ð:]Ð]_Ð`eÐ_fÐgÖhñ @ð �X‰XÐ'¨Ó,€FßÜŒÜÐ!¤# f£+ ¨bÐ1Ô2Üœ˜vÑ+FÐPTÔUÔVÜŒÜÐ;Ô<Ùr   c               ó   € V ^8„  d   QhRR/# )r   r
   ÚNoner   )r   s   "r   r   r   =   s   € ÷ Mñ M ñ Mr   c           
     ól   € V  F-  p\        R VR,          R R \        VR,          4      R 24       K/  	  R# )r:   Únamez<40Ú
size_bytesz>10N)rI   rJ   )ÚarchivesÚarchs   & r   rN   rN   =   s5   € ÛˆÜ��4˜•< Ð$ B¤z°$°|Õ2DÓ'EÀcÐ&JÐKÖLó r   c               ó    € V ^8„  d   QhRRRR/# r%   r   )r   s   "r   r   r   B   s   € ÷ 4ñ 4Ð&ð 4¨3ñ 4r   c           
     ó¬  € ^ RI HpHp V P                  '       * pRpV'       Ed¼   V P                  '       Eg©   V! 4       pVP                  R. 4       Uu. uF  qfP                  R4      '       d   K  VNK  	  ppVP                  R. 4       Uu. uF  qfP                  R4      '       d   K  VNK  	  ppV'       g	   V'       dñ   \        R\        V4      \        V4      ,            R24       \        4        V F>  p\        RVP                  R	4      ;'       g    R
 RVP                  R^ 4       R24       K@  	  V F+  p\        RVP                  R	4      ;'       g    R
 R24       K-  	  \        4        \        R4       \        R4       \        R4       \        R4      '       g   \        R4       ^# V Uu0 uF  qfR,          kK  	  ppVP                  R V 4       4       \        R4       \        RV P                   24       \        RV 24       \        RV P                   24       \        4        V! V P                  VV P                  VR7      p	\        RV	R,           24       \        RV	R,           24       \        RV	R ,           24       \        R!V	R",           24       \        R#\        V	R$,          4       24       ^ # u upi u upi u upi )%r)   )Úprune_checkpointsr*   Nr0   r@   Úpre_v2_projectszThis will permanently delete zG orphan checkpoint project(s) whose workdir is not currently reachable:r:   r>   r?   z  (rC   z commit(s))z  (pre-v2 shadow repo)z=A workdir can be unreachable because the project was deleted,z<or because an external volume / network share / VPN is down.z0Pass --keep-orphans to prune stale entries only.zDelete these orphan projects?úAborted.Úhashc              3  ó2   "  € T F  qR ,          x € K  	  R# 5i)ÚpathNr   )Ú.0r5   s   & r   Ú	<genexpr>Úcmd_prune.<locals>.<genexpr>d   s   é € ÐB±>¨a &§	¢	³>ùs   ‚u   Pruning checkpoint storeâ€¦z  retention_days:    z  delete_orphans:    z  max_total_size_mb: )Úretention_daysÚdelete_orphansÚmax_total_size_mbÚorphan_allowlistzScanned:         ÚscannedzDeleted orphan:  Údeleted_orphanzDeleted stale:   Údeleted_stalezErrors:          ÚerrorszBytes reclaimed: Úbytes_freed)rH   r]   r*   Úkeep_orphansÚforcer4   rI   rM   Ú_confirmÚupdaterf   Úmax_size_mbrJ   )
r&   r]   r*   rg   ri   rO   r5   ÚorphansÚpre_v2_orphansÚresults
   &         r   Ú	cmd_prunerw   B   s‰  € ßLà×*Ñ*Ô*€Nð
 '+Ðç€~˜dŸjŸj™jÙ‹~ˆØ"Ÿh™h z°2Ô6ÓNÑ6˜¿e¹eÀH¿o—1�1Ñ6ˆÐNØ%)§X¡XÐ.?ÀÔ%DÓ\Ñ%D ÏEÉEÐRZÏOŸ!˜!Ñ%DˆÐ\ß—nÜÐ1´#°g³,ÄÀ^ÓATÕ2TÐ1Uð V[ð [ô \äŒGÛ�Ü˜˜1Ÿ5™5 Ó+×:Ð:¨{Ð;¸3¸q¿u¹uÀYÐPQÓ?RÐ>SÐS^Ð_Ö`ñ ã#�Ü˜˜1Ÿ5™5 Ó+×:Ð:¨{Ð;Ð;QÐRÖSñ $äŒGÜÐQÔRÜÐPÔQÜÐDÔEÜÐ;×<Ò<Ü�jÔ!Ùñ
 07Ó7©w¨!˜fŸI˜I©wÐÐ7Ø×ÑÑB±>ÓBÔBä	Ð
'Ô(Ü	Ð! $×"5Ñ"5Ð!6Ð
7Ô8Ü	Ð! .Ð!1Ð
2Ô3Ü	Ð! $×"2Ñ"2Ð!3Ð
4Ô5Ü	„GáØ×*Ñ*Ø%Ø×*Ñ*Ø)ô	+€Fô
 
Ð˜f YÕ/Ð0Ð
1Ô2Ü	Ð˜fÐ%5Õ6Ð7Ð
8Ô9Ü	Ð˜f _Õ5Ð6Ð
7Ô8Ü	Ð˜f XÕ.Ð/Ð
0Ô1Ü	Ðœj¨°Õ)>Ó?Ð@Ð
AÔBÙùòQ OùÚ\ùò( 8s   ÁKÁ0KÂKÂ)KÆ5Kc               ó    € V ^8„  d   QhRRRR/# )r   Úpromptr   r
   Úboolr   )r   s   "r   r   r   y   s   € ÷ ñ �Sð ˜Tñ r   c                ó¢   €  \        V  R 24      P                  4       P                  4       R9   #   \        \        3 d    \        4         R# i ; i)z [y/N]: F>   ÚyÚyes)ÚinputÚstripÚlowerÚEOFErrorÚKeyboardInterruptrI   )ry   s   &r   rq   rq   y   sM   € ðÜ˜�x˜xÐ(Ó)×/Ñ/Ó1×7Ñ7Ó9¸\ÑIÐIøÜÔ'Ð(ô ÜŒÚðús   ‚,/ ¯AÁAc               ó$   € V ^8„  d   QhRRRRRR/# )r   r&   r'   ry   r   r
   rz   r   )r   s   "r   r   r   �   s"   € ÷ ñ Ð'ð °ð ¸ñ r   c                óf   € V P                   '       g   \        V4      '       d   R# \        R4       R# )zA``--force`` or an interactive yes; prints ``Aborted.`` otherwise.Tr_   F)rp   rq   rI   )r&   ry   s   &&r   Ú
_confirmedr…   �   s#   € à‡z‡z€z”X˜f×%Ò%ÙÜ	ˆ*ÔÙr   c               ó    € V ^8„  d   QhRRRR/# r%   r   )r   s   "r   r   r   ‰   s   € ÷ ñ Ð&ð ¨3ñ r   c           	     óX  € ^ RI Hp ^ RIHpHp V! 4       pVR,          ^ 8X  d-   \        V4      P                  4       '       g   \        R4       ^ # \        RVR,           24       \        R\        VR,          4       24       \        RVR	,           24       \        R
\        VP                  R. 4      4       24       \        4        \        R4       \        V R4      '       g   ^# V! 4       pVR,          '       d"   \        R\        VR,          4       R24       ^ # \        R4       ^# )r)   )ÚCHECKPOINT_BASE)Ú	clear_allr*   r,   u4   Nothing to clear â€” checkpoint base does not exist.z/This will delete the ENTIRE checkpoint base at r+   z  size:        z  projects:    r/   z  legacy dirs: rD   z?All /rollback history for every working directory will be lost.zProceed?ÚdeletedzCleared. Reclaimed rn   Ú.z+Could not clear checkpoint base (see logs).)Útools.checkpoint_managerrˆ   rH   r‰   r*   r   r@   rI   rJ   rM   r4   r…   )r&   rˆ   r‰   r*   rO   rv   s   &     r   Ú	cmd_clearr�   ‰   sý   € Ý8ßDá‹>€DØÐÕ 1Ô$¬T°/Ó-B×-IÑ-I×-KÒ-KÜÐDÔEÙä	Ð;¸DÀ½L¸>Ð
JÔKÜ	ˆOœJ tÐ,>Õ'?Ó@ÐAÐ
BÔCÜ	ˆO˜D Õ1Ð2Ð
3Ô4Ü	ˆOœC §¡Ð):¸BÓ ?Ó@ÐAÐ
BÔCÜ	„GÜ	Ð
KÔLÜ�d˜J×'Ò'Ùá‹[€FØˆi×ÔÜÐ#¤J¨v°mÕ/DÓ$EÐ#FÀaÐHÔIÙÜ	Ð
7Ô8Ùr   c               ó    € V ^8„  d   QhRRRR/# r%   r   )r   s   "r   r   r   £   s   € ÷ ñ Ð-ð °#ñ r   c           	     ó   € ^ RI HpHp V! 4       pVP                  R. 4      pV'       g   \	        R4       ^ # \        R V 4       4      p\	        R\        V4       R\        V4       R24       \        V4       \	        4        \	        R4       \	        R	4       \	        R
4       \        V R4      '       g   ^# V! 4       p\	        RVR,           R\        VR,          4       R24       VR,          '       d   \	        RVR,           R24       ^# ^ # )r)   )Úclear_legacyr*   rD   zNo legacy archives to clear.c              3  óD   "  € T F  qP                  R ^ 4      x € K  	  R# 5i)rX   Nr3   )rc   rG   s   & r   rd   Ú#cmd_clear_legacy.<locals>.<genexpr>¬   s   é € Ð7±¨1—‘�l A×&Ð&³ùs   ‚ zFound z legacy archive(s), total Ú:zALegacy archives hold pre-v2 per-project shadow repos, moved asidez?during the single-store migration. Delete when you're confidentz)you don't need the old /rollback history.zDelete all legacy archives?zDeleted rŠ   z archive(s), reclaimed rn   r‹   rm   zCould not delete z archive(s) (see logs).)
rH   r�   r*   r4   rI   ÚsumrM   rJ   rN   r…   )r&   r�   r*   rO   rR   Útotalrv   s   &      r   Úcmd_clear_legacyr–   £   só   € ßGá‹>€DØ�X‰XÐ'¨Ó,€FßÜÐ,Ô-ÙäÑ7±Ó7Ó7€EÜ	ˆF”3�v“;�-Ð9¼*ÀUÓ:KÐ9LÈAÐ
NÔOÜ�FÔÜ	„GÜ	Ð
MÔNÜ	Ð
KÔLÜ	Ð
5Ô6Ü�dÐ9×:Ò:Ùá‹^€FÜ	ˆH�V˜IÕ&Ð'Ð'>¼zÈ&ÐQ^ÕJ_Ó?`Ð>aÐabÐ
cÔdØˆh×ÔÜÐ! &¨Õ"2Ð!3Ð3JÐKÔLÙÙr   c               ó    € V ^8„  d   QhRRRR/# )r   Úparserzargparse.ArgumentParserr
   rU   r   )r   s   "r   r   r   ¾   s   € ÷ (ñ (Ð0ð (°Tñ (r   c                ó  € V P                  \        R7       V P                  RRR7      pVP                  RRR7      pVP	                  R\
        ^R	R
7       VP                  \        R7       VP                  RRR7      pVP	                  R\
        ^R7       VP                  \        R7       VP                  RRR7      pVP	                  R\
        ^RR
7       VP	                  R\
        RRR
7       VP	                  RRRR7       VP	                  RRRRR7       VP                  \        R7       RR\        3RR\        33 F?  w  rVpVP                  WVR7      pVP	                  RRRR R7       VP                  VR7       KA  	  R!# )"z8Wire subcommands onto the ``hermes checkpoints`` parser.)ÚfuncÚcheckpoints_commandÚCOMMAND)ÚdestÚmetavarÚstatusz9Show total size, project count, and per-project breakdown)Úhelpz--limitz!Max projects to list (default 20))ÚtypeÚdefaultr    ÚlistzAlias for 'status')r¡   r¢   Úprunez0Delete orphan/stale checkpoints and GC the storez--retention-daysz?Drop projects whose last_touch is older than N days (default 7)z--max-size-mbiô  z`After orphan/stale prune, drop oldest commits per project until total size <= this (default 500)z--keep-orphansÚ
store_truez5Skip deleting projects whose workdir no longer exists)Úactionr    z-fz--forcez,Skip the orphan-deletion confirmation promptÚclearz9Delete the entire checkpoint base (all /rollback history)zclear-legacyz7Delete only the legacy-<ts>/ archives from v1 migrationzSkip confirmation promptN)	Úset_defaultsrS   Úadd_subparsersÚ
add_parserÚadd_argumentr   rw   r�   r–   )	r˜   ÚsubsÚp_statusÚp_listÚp_prunerW   Ú	help_textrš   Úp_clears	   &        r   Úregister_clir²   ¾   s   € à
×ÑœZÐÔ(Ø× Ñ Ð&;ÀYÐ ÓO€Dà�‰˜xÐ.iˆÓj€HØ×Ñ˜)¬#°rÐ@cÐÔdØ×ÑœzÐÔ*à�_‰_˜VÐ*>ˆ_Ó?€FØ
×Ñ˜	¬°RÐÔ8Ø
×ÑœZÐÔ(à�o‰o˜gÐ,^ˆoÓ_€GØ×ÑÐ+´#¸qØ_ð ô aà×Ñ˜¬s¸CðSð ô Tð ×ÑÐ)°,ØUð ô Wà×Ñ˜˜y°ØLð ô Nà×ÑœiÐÔ(ð 
ÐMÌyÐYØ	ÐRÔTdÐeó"Ñˆ˜ð —/‘/ $�/Ó7ˆØ×Ñ˜T 9°\ÐHbÐÔcØ×Ñ $ÐÖ'ó"r   )Ú__doc__Ú
__future__r   Úargparser   Úpathlibr   Útypingr   r   Úhermes_cli.sizefmtr   rJ   r#   rS   rN   rw   rq   r…   r�   r–   r²   r   r   r   Ú<module>r¹      sN   ðñõ
 #ã Û Ý ß  å 9õ
&õõ@Mõ
4õnõõõ4÷6(r   