
    Mi              
       J   S SK r S SKrS SKrS SKJr  SSKJr  SSKJr  \" SS9r	\" \	5      rS,S\\
   S	\\\
      S
\4S jjr\ R                  " 5       S 5       r\R                  5       S 5       r\R!                  5       \ R"                  " SSS9\ R$                  " S\ R&                  " SS/5      SS9S\S\
4S j5       5       5       r\R!                  5       \ R"                  " S5      \ R$                  " SSSS9\ R$                  " SSSS9S\
S\S \4S! j5       5       5       5       r\R!                  5       S" 5       r\R!                  5       \ R$                  " S#SS$S9\ R$                  " S%SS&S9S'\S(\4S) j5       5       5       r\R!                  5       S* 5       r\S+:X  a  \" 5         gg)-    N)List   )DocsManager)AsyncLoggerT)verboseheadersrowspaddingc                   ^^ [        U /UQ76  Vs/ s H  n[        S U 5       5      PM     snmSSR                  U4S jT 5       5      -   S-   nUU4S jn[        R                  " U5        [        R                  " U" U 5      5        [        R                  " U5        U H  n[        R                  " U" U5      5        M!     [        R                  " U5        gs  snf )z+Print formatted table with headers and rowsc              3   J   #    U  H  n[        [        U5      5      v   M     g 7f)N)lenstr).0cells     m/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/crawl4ai/legacy/cli.py	<genexpr>print_table.<locals>.<genexpr>   s     1ST#c$i..Ss   !#+c              3   :   >#    U  H  nS UST-  -   -  v   M     g7f)-   N )r   wr
   s     r   r   r      s     DVC1q7{?3Vs   c                 Z   > SSR                  U4S j[        U T5       5       5      -   S-   $ )N|c              3   ^   >#    U  H"  u  pS T-   [        U5      SU 3 S T-   3v   M$     g7f) <N)r   )r   r   r   r
   s      r   r   2print_table.<locals>.format_row.<locals>.<genexpr>   s<      /GD =/#d)AaS5!1#-A/s   *-)joinzip)rowr
   widthss    r   
format_rowprint_table.<locals>.format_row   s:    hh "3/ 
 	
    N)r!   maxr    clickecho)r   r	   r
   colborderr$   r"   r#   s     `    @r   print_tabler,      s    =@=P4=PQ=Pcc1S11=PQF388DVDDDsJF
 
JJv	JJz'"#	JJv

:c?# 	JJv% Rs   Cc                      g)zCrawl4AI Command Line InterfaceNr   r   r&   r   clir.   #        	r&   c                      g)zDocumentation operationsNr   r   r&   r   docsr1   )   r/   r&   sections)nargsz--modeextended	condensed)typedefaultmodec                 <    [         R                  " [        R                  5       5        [        R
                  " [        R                  X5      5        g! [         a=  n[        R                  [        U5      SS9  [        R                  " S5         SnAgSnAff = f)zCombine documentation sectionsERROR)tagr   N)asynciorundocs_managerensure_docs_existr(   r)   generate	Exceptionloggererrorr   sysexit)r2   r9   es      r   combinerH   /   sd    L2245

<((89 SV)s   AA 
B3BBqueryz--top-kz-k   )r8   z--build-indexzBuild index if missing)is_flaghelptop_kbuild_indexc                     [         R                  X5      nUS:X  ai  U(       d  [        R                  " S5      (       aG  [        R
                  " [         R                  R                  5       5        [         R                  X5      n[        R                  " U5        g! [         aA  n[        R                  " S[        U5       3SS9  [        R                  " S5         SnAgSnAff = f)zSearch documentationz;No search index available. Call build_search_index() first.z$No search index found. Build it now?Error: Terrr   N)r?   searchr(   confirmr=   r>   llm_textgenerate_index_filesr)   rB   r   rE   rF   )rI   rM   rN   resultrG   s        r   rS   rS   >   s    	$$U2RRemm,RSSL11FFHI%,,U:

6 

WSVH%40s   BB 
C('7C##C(c                      [         R                  " [        R                  5       5        [        R
                  " S5        g! [         aA  n [        R
                  " S[        U 5       3SS9  [        R                  " S5         Sn A gSn A ff = f)zUpdate docs from GitHubz"Documentation updated successfullyrP   TrQ   r   N)
r=   r>   r?   
fetch_docsr(   r)   rB   r   rE   rF   )rG   s    r   updaterZ   P   s_    L++-.

78 

WSVH%40s   >A 
B7BBz--force-factszForce regenerate fact filesz--clear-cachezClear BM25 cacheforce_factsclear_cachec                     [         R                  " [        R                  5       5        [         R                  " [        R                  R                  XS95        [        R                  " S5        g! [         aA  n[        R                  " S[        U5       3SS9  [        R                  " S5         SnAgSnAff = f)zBuild or rebuild search indexes)force_generate_factsclear_bm25_cachez!Search indexes built successfullyrP   TrQ   r   N)r=   r>   r?   r@   rU   rV   r(   r)   rB   r   rE   rF   )r[   r\   rG   s      r   indexr`   [   s    

L2245!!66%0 7 	

 	

67 

WSVH%40s   A/A2 2
B=<7B88B=c                      [         R                  5       n [        S/U  Vs/ s H  o/PM     sn5        gs  snf ! [         aA  n[        R
                  " S[        U5       3SS9  [        R                  " S5         SnAgSnAff = f)z%List available documentation sectionsSectionsrP   TrQ   r   N)	r?   listr,   rB   r(   r)   r   rE   rF   )r2   sectionrG   s      r   rc   rc   n   si    $$&ZLH"EH9H"EF"E 

WSVH%40s!   : 5
: : 
B7B  B__main__)r   )r(   rE   r=   typingr   r?   r   async_loggerr   rC   r   intr,   groupr.   r1   commandargumentoptionChoicetuplerH   boolrS   rZ   r`   rc   __name__r   r&   r   <module>rq      s    
   % %	T	"6"c $tCy/ C . 	 	
 	 	
 
"%5<<[ 9:Je 3  & 
 iq)ot2JK# c   L *     ot2OPot2DEt $  F Q     zE r&   