§
     ’Þj  ã                   óŽ   — d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ dd
„Zddd	edddœd„Zd„ ZdS )z5Compact filesystem queries for the MCP v2 IO toolbox.é    N)ÚPath)Ú	long_text)Údetect_media_type)Ú	PAGE_SIZEÚ Ú*Úallc              #   óª  K  — |s|                       ¦   «         E d {V —† d S |dvrt          d¦  «        ‚d|v sd|v sd|v rt          d¦  «        ‚|                      |d¬¦  «        }t          |                     |¦  «        d	„ ¬
¦  «        D ]Ç}|                      |¦  «        sŒ|                     ¦   «         rdnd}|dk    rwt          t          |¦  «        ¦  «        }|dk    r|j	         
                    ¦   «         dk    n.|dk    r#|dk    o|j	         
                    ¦   «         dk    n||k    }|dk    s|sŒ­|                      |¦  «        |dœV — ŒÈd S )N>   Ú3dr	   ÚtxtÚaudioÚimageÚotherÚvideoÚworldzFmedia_type must be all, image, video, audio, 3d, world, txt, or other.ú/ú\z**z?list navigates one directory; use rg for recursive file search.T)Ú	directoryc                 ó4   — | j                              ¦   «         S ©N)ÚnameÚcasefold)Úitems    ú@C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\paged_files.pyú<lambda>z#directory_entries.<locals>.<lambda>   s   € ¸T¼Y×=OÒ=OÑ=QÔ=Q€ ó    )Úkeyr   Úfiler	   r   z.txtr   Úany)ÚpathÚtype)ÚrootsÚ
ValueErrorÚrequire_readÚsortedÚglobÚcan_readÚis_dirr   ÚstrÚsuffixÚlowerÚvirtualize_path)	Úpolicyr    ÚpatternÚ
media_typeÚrootÚentryÚkindÚdetectedÚmatchs	            r   Údirectory_entriesr5      sÑ  è è € Øð Ø—<’<‘>”>Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØˆØÐZÐZÐZÝÐaÑbÔbÐbØ
ˆg€~€~˜ ˜˜¨D°G¨O¨OÝÐZÑ[Ô[Ð[Ø×Ò˜t¨tÐÑ4Ô4€DÝ˜Ÿ	š	 'Ñ*Ô*Ð0QÐ0QÐRÑRÔRð 	Dð 	DˆØ�Š˜uÑ%Ô%ð 	ØØ#Ÿlšl™nœnÐ8ˆ{ˆ{°&ˆØ˜ÒÐÝ(­¨U©¬Ñ4Ô4ˆHØ6@ÀEÒ6IÐ6I�E”L×&Ò&Ñ(Ô(¨FÒ2Ð2ð  HRð  V]ò  H]ð  H]ÈxÐ[`ÒO`ð  PDÐejÔeq×ewÒewÑeyÔeyð  ~Dò  fDøð  ckð  oyò  cyˆEØ�{Ò"Ð"¨%Ð"ØØ×-Ò-¨eÑ4Ô4¸dÐCÐCÐCÐCÐCÐCð	Dð 	Dr   F)r    r.   r/   ÚlimitÚcursorÚsummary_onlyc          	      ór   — |||dœ}|rdnt          |fi |¤Ž}	|                      dd|g|	d||ddi|¬¦  «        S )	zHUse the same bounded, snapshot-backed listing for MCP v2 and Deepy Zero.)r    r.   r/   NÚioÚlistÚentriesÚcompleteT)r   r6   r7   Úmetadatar8   )r5   Úpage)
Úpagesr-   r    r.   r/   r6   r7   r8   ÚfiltersÚrecordss
             r   Úlist_directory_pagerC   &   sm   € à¨¸zÐJÐJ€GØÐFˆdˆdÕ"3°FÐ"FÐ"F¸gÐ"FÐ"F€GØ�:Š:�t˜V WÐ-¨w¸IÈUÐ[aÐmwÐy}Ðl~ð  NZˆ:ñ  [ô  [ð  [r   c           
   #   óö  ‡ ‡‡K  — t          j        |d¬¦  «        \  }}d|v rt          d¦  «        ‚|s.t          j        ‰ ¦  «        }|€t          d¦  «        ‚|d         g}ˆ fd„|D ¦   «         }t	          t          |¦  «        h d£z  ¦  «        }t	          t          |¦  «        h d	£z  ¦  «        pt          d
„ |D ¦   «         ¦  «        }d|v rt          d¦  «        ‚|rddgndddg|rg ndg¢}	t          t          j        ¦   «         ¦  «        ddg|¢|	¢d‘t          t          |¦  «        ¢}
t          t          j        ¦  «        }|                     dd ¦  «         t          j        ¦   «         Št!          j        ¦   «         5 }t%          j        |
t          |d                              ¦   «         r|d         n|d         j        ¦  «        t$          j        ||d¬¦  «        Šˆˆfd„}t          j        d|¦  «        }d|_        |                     ¦   «          	 |rØd}‰j                             d¦  «        x}rŸ||z  }|                     d¦  «        }|                     ¦   «         }|D ]R}t;          |                     dd¬ ¦  «        ¦  «        }‰                      |¦  «        r‰                       |¦  «        V — ŒS‰j                             d¦  «        x}°Ÿ|r| !                    dd!¬"¦  «         �nä‰j         "                    d#¦  «        x}�rÇtG          |¦  «        d$k    r-| !                    dd%¬"¦  «         ‰ $                    ¦   «          �n‡|rd‰  %                    |                     dd¬ ¦  «         &                    ¦   «         ¦  «        }d&|d d'…         itG          |¦  «        d'k    rd(dini ¥V — ŒÃ	 tO          j(        |¦  «        }n*# tN          j)        $ r ‰ *                    ¦   «         rY næ‚ w xY w|d)         d*vr�Œ|d+         }d,„ }t;           ||d-         ¦  «        ¦  «        }‰                      |¦  «        s�ŒO ||d.         ¦  «         &                    d/¦  «        }‰                       |¦  «        |d0         |d d'…         d1œ}tG          |¦  «        d'k    rd|d(<   |d)         d2k    rd|d2<   |V — ‰j         "                    d#¦  «        x}�°Ç‰ +                    ¦   «         }‰ *                    ¦   «         r| !                    dd3¬"¦  «         nq|d4vrm| ,                    d¦  «         | !                    d‰  %                    |                     d5¦  «                             dd¬ ¦  «        ¦  «        pd6|› d7�¬"¦  «         | -                    ¦   «          ‰ .                    ¦   «         €‰ $                    ¦   «          ‰ +                    ¦   «          ‰j         /                    ¦   «          nn# | -                    ¦   «          ‰ .                    ¦   «         €‰ $                    ¦   «          ‰ +                    ¦   «          ‰j         /                    ¦   «          w xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )8NF)Úexperimentalz-LzgFollowing filesystem links with -L is unavailable; use --files-without-match to list nonmatching files.zEProvide a search path after --; this server has no session workspace.é   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS © )r$   )Ú.0r    r-   s     €r   ú
<listcomp>zrg_records.<locals>.<listcomp>6   s'   ø€ Ð<Ð<Ð<¨d�×#Ò# DÑ)Ô)Ð<Ð<Ð<r   >   ú-lú--filesú--files-with-matchesú--files-without-match>   ú-cú-oú--countú	--replaceú--count-matchesú--only-matchingú-rc              3   ój   K  — | ].}|                      d ¦  «        ¯|                      d¦  «        V — Œ/dS )ú-)z
--replace=rU   N)Ú
startswith)rI   Úvalues     r   ú	<genexpr>zrg_records.<locals>.<genexpr>8   s    è è € ð  Uð  Uð  kpð  D÷  Oò  Oð  PSñ  Tô  Tð  Uð  @E÷  @Pò  @Pð  Qeñ  @fô  @fð  Uð  Uð  Uð  Uð  Uð  Ur   z--statszFUse summary_only=true for a compact search summary instead of --stats.z--sort=pathz--nullz--with-filenamez--line-numberz--jsonz--no-configz--color=neverz--ÚRIPGREP_CONFIG_PATHr   )ÚcwdÚstdoutÚstderrÚenvÚshellc                  óX   •— ‰                      ¦   «          ‰                      ¦   «          d S r   )ÚsetÚkill)ÚprocessÚ	timed_outs   €€r   Ústopzrg_records.<locals>.stopC   s!   ø€ Ø�MŠM‰OŒOˆOØ�LŠL‰NŒNˆNˆNˆNr   é   Tr   i    ó    úutf-8Úreplace©ÚerrorszSearch ended during a filename.)r=   Úreasoni @ i  @ z0A search record exceeds 4 MiB; narrow the query.Útextiè  Úexcerpt_truncatedr!   >   r4   ÚcontextÚdatac                 óx   — d| v r| d         n.t          j        | d         ¦  «                             dd¬¦  «        S )Nrn   Úbytesri   rj   rk   )Úbase64Ú	b64decodeÚdecode)rY   s    r   rv   zrg_records.<locals>.decodek   sN   € Ø06¸%°°˜u Vœ}˜}ÅVÔEUÐV[Ð\cÔVdÑEeÔEe×ElÒElÐmtð  ~GÐElñ  FHô  FHð  Hr   r    Úlinesz
Úline_number)r    Úlinern   rp   z4Search timed out after 30 seconds; narrow the query.>   r   rF   iÐ  zrg exited with code ú.)0r   Ú_parse_rg_argumentsr#   Úworkspace_mountÚboolrb   r   r)   Úensure_ripgrepÚmapÚdictÚosÚenvironÚpopÚ	threadingÚEventÚtempfileÚTemporaryFileÚ
subprocessÚPopenr(   ÚparentÚPIPEÚTimerÚdaemonÚstartr]   ÚreadÚsplitr   rv   r'   r,   ÚupdateÚreadlineÚlenrc   Ú_virtualize_textÚrstripÚjsonÚloadsÚJSONDecodeErrorÚis_setÚwaitÚseekÚcancelÚpollÚclose)r-   Ú	argumentsr>   ÚcommandÚpathsÚmountÚresolvedÚnamesÚtext_outputÚflagsÚ
invocationÚenvironmentrl   rf   ÚtimerÚpendingÚchunkÚpartsrY   r    ry   rn   Úrecordrq   rv   ÚresultÚcoderd   re   s   `                          @@r   Ú
rg_recordsr°   -   sÌ  øøøè è € ÝÔ2°9È5ÐQÑQÔQ�N€GˆUØˆw€€Ýð  Cñ  Dô  Dð  	DØð ÝÔ)¨&Ñ1Ô1ˆØˆ=ÝÐdÑeÔeÐeØ�q”�
ˆØ<Ð<Ð<Ð<°eÐ<Ñ<Ô<€HÝ•�W‘”Ð bÐ bÐ bÑbÑcÔc€EÝ•s˜7‘|”|Ð&vÐ&vÐ&vÑvÑwÔwð  UÕ{~ð  Uð  Uð  t{ð  Uñ  Uô  Uñ  |Uô  |U€KØ�GÐÐÝÐaÑbÔbÐbØ).ð  Nˆ]˜HÐ%Ð%°]ÐDUÐWfð  5NÐp{ð  kLÐjlÐjlð  CKð  BLð  5N€EÝ•iÔ.Ñ0Ô0Ñ1Ô1°=À/ÐÐT[ÐÐ^cÐÐeiÐÕloÕpsÐu}Ñl~Ôl~Ð€JÝ•r”zÑ"Ô"€KØ‡O‚OÐ)¨4Ñ0Ô0Ð0Ý”Ñ!Ô!€IÝ	Ô	Ñ	!Ô	!ð C# VÝÔ" :µ3ÀhÈqÄk×FXÒFXÑFZÔFZÐ7r°xÀ´{°{Ð`hÐijÔ`kÔ`rÑ3sÔ3sõ  }Gô  }Lð  U[ð  alð  tyð  zñ  zô  zˆð	ð 	ð 	ð 	ð 	ð 	õ ”  DÑ)Ô)ˆØˆŒØ�Š‰Œˆð9	#Øð ,!Ø�Ø&œ~×2Ò2°4Ñ8Ô8Ð8�eð ?Ø˜uÑ$�GØ#ŸMšM¨%Ñ0Ô0�EØ#Ÿiši™kœk�GØ!&ð ?ð ?˜Ý# E§L¢L°À LÑ$KÔ$KÑLÔL˜Ø!Ÿ?š?¨4Ñ0Ô0ð ?Ø"(×"8Ò"8¸Ñ">Ô">Ð>Ð>Ð>øð  'œ~×2Ò2°4Ñ8Ô8Ð8�eð ?ð ð ^Ø—O’O¨UÐ;\�OÑ]Ô]Ð]ùà%œn×5Ò5Ð6IÑJÔJÐJ�dñ !Ý˜4‘y”y ?Ò2Ð2Ø Ÿš°Ð?q˜ÑrÔrÐrØŸš™œ˜ÙØ"ð !Ø%×6Ò6°t·{²{À7ÐS\°{Ñ7]Ô7]×7dÒ7dÑ7fÔ7fÑgÔg˜Ø% t¨E¨T¨E¤{ÐpÕVYÐZ^ÑV_ÔV_ÐbfÒVfÐVfÐ8KÈTÐ7RÐ7RÐlnÐpÐpÐpÐpØ ðÝ!%¤¨DÑ!1Ô!1˜˜øÝÔ/ð ð ð Ø$×+Ò+Ñ-Ô-ð "Ø!˜EØðøøøð ˜f”~Ð-AÐAÐAÙ Ø! &œ>�DðHð Hð Hõ     t¨F¤|Ñ 4Ô 4Ñ5Ô5�DØ!Ÿ?š?¨4Ñ0Ô0ð !Ù Ø!˜6 $ w¤-Ñ0Ô0×7Ò7¸Ñ?Ô?�DØ&,×&<Ò&<¸TÑ&BÔ&BÈDÐQ^ÔL_ÐimÐnsÐosÐnsÔitÐuÐu�FÝ˜4‘y”y 4Ò'Ð'Ø6:˜Ð2Ñ3Ø˜f”~¨Ò2Ð2Ø,0˜˜yÑ)Ø �L�L�Lð? &œn×5Ò5Ð6IÑJÔJÐJ�dñ !ð@ —<’<‘>”>ˆDØ×ÒÑ!Ô!ð gØ—’¨Ð7m�ÑnÔnÐnÐnØ˜VÐ#Ð#Ø—’˜A‘”�Ø—’¨°v×7NÒ7NÈvÏ{Ê{Ð[_ÑO`ÔO`×OgÒOgÐhoð  yBÐOgñ  PCô  PCñ  8Dô  8Dð  8fð  Hfð  _cð  Hfð  Hfð  Hf�ñ  gô  gð  gà�LŠL‰NŒNˆNØ�|Š|‰~Œ~Ð%Ø—’‘”�Ø�LŠL‰NŒNˆNØŒN× Ò Ñ"Ô"Ð"Ð"øð	 �LŠL‰NŒNˆNØ�|Š|‰~Œ~Ð%Ø—’‘”�Ø�LŠL‰NŒNˆNØŒN× Ò Ñ"Ô"Ð"Ð"øøøÐ"ðGC#ð C#ð C#ñ C#ô C#ð C#ð C#ð C#ð C#ð C#ð C#ð C#øøøð C#ð C#ð C#ð C#ð C#ð C#sS   ÆBY.ÈFW2Î7OÏW2Ï#O3Ï/W2Ï1O3Ï3FW2ÖA*Y.×2A+YÙY.Ù.Y2Ù5Y2)r   r   r	   )Ú__doc__rt   r–   r�   rˆ   r†   r„   Úpathlibr   Úshared.deepyr   Úshared.deepy.media_registryr   Úshared.mcp.pagingr   r5   rC   r°   rH   r   r   ú<module>r¶      sù   ðà ;Ð ;à €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðDð Dð Dð Dð* 02¸3È5ÐXaÐjnð  ~Cð [ð [ð [ð [ð [ðV#ð V#ð V#ð V#ð V#r   