
    	D,jR                         d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZm	Z	 d dl
mZ d dlmZ  ej        de           d Zd	 Zd
 Zd Z G d d          ZdS )    N)Path)__version__utils)dump)exclude_website_patsignore)categoryc                 <    g d}t          j        | dd|          }|S )N)zaider-chat[help]z--extra-index-urlz$https://download.pytorch.org/whl/cpuz"llama_index.embeddings.huggingfacez<To use interactive /help you need to install the help extras)r   check_pip_install_extra)iopip_install_cmdress      Y/home/rurouni/.local/share/uv/tools/aider-chat/lib/python3.11/site-packages/aider/help.pyinstall_help_extrar      s:      O
 
'
,F	 C J    c               #      K   t          j        d                                          D ]K} |                                 r| V  |                                 r|                     d          D ]}|V  Ld S )Naider.websitez*.md)importlib_resourcesfilesiterdiris_fileis_dirrglob)pathsubpaths     r   get_package_filesr   !   s      #)/::BBDD  <<>> 	JJJJ[[]] 	::f--   r   c                    d}d}d}|                      dd          } t          |           }|j        }	 d |D                                 |                                          }n# t
          $ r Y dS w xY w||dz   d          }|r |d	                                         d
k    rdS d                    |          }|                                                    |                                          r|d t          |                    }nT|                                                    |                                          r|d t          |                    dz   }|	                    d          }d| S )Nwebsitezindex.mdz.md\/c                 6    g | ]}|                                 S  )lower).0ps     r   
<listcomp>z fname_to_url.<locals>.<listcomp>:   s     222q222r       r   	_includesz.htmlzhttps://aider.chat/)
replacer   partsindexr#   
ValueErrorjoinendswithlenstrip)	filepathr   r,   mdr   r+   website_indexrelevant_partsurl_paths	            r   fname_to_urlr7   *   s   GE	B c**H >>D JE22E22288II   rr =1,../N  .+1133{BBr xx''H ~~  // 2Ms5zzkM*				"	"288::	.	. 2Js2wwhJ''1 ~~c""H++++s   1A& &
A43A4c                     ddl m} m}m}m} ddlm} t          j                    dz  dz  dt          z   z  }d }	 |
                                r!|                    |          } ||          }n0# t          t          j        f$ r t          j        |           Y nw xY w|# |            }g }	t#                      D ]Ŋt                    t%          fdt&          D                       r2 | t)          j        d	                                                            d
          t1          j        j        t7          t9                                                  }
|	|                    |
g          z  }	 ||	d          }|j                            dd           |j         !                    |           |S )Nr   )DocumentStorageContextVectorStoreIndexload_index_from_storage)MarkdownNodeParserz.aidercacheszhelp.)persist_dirc              3   B   K   | ]}                     |          V  d S )N)match)r$   patfnames     r   	<genexpr>zget_index.<locals>.<genexpr>o   s/      DD5;;s##DDDDDDr   r   zutf-8)encoding)filename	extensionurl)textmetadataT)show_progress)parentsexist_ok)"llama_index.corer9   r:   r;   r<   llama_index.core.node_parserr=   r   homer   existsfrom_defaultsOSErrorjsonJSONDecodeErrorshutilrmtreer   anyr   r   r   joinpath	read_textdictnamesuffixr7   strget_nodes_from_documentsparentmkdirstorage_contextpersist)r9   r:   r;   r<   r=   dnamer,   rb   parsernodesdocrC   s              @r   	get_indexrh   T   s.               @?????IKK("X-;1FGEE<<>> 	=,::! ;  O ,+O<<ET)*   e }##%%&(( 	< 	<EKKEDDDD/CDDDDD ((.??%G,,"Z#l$SZZ00  		 	 	C V44cU;;;EE  d;;;4$777%%e,,,Ls   5A1 1*BBc                       e Zd Zd Zd ZdS )Helpc                     ddl m} ddlm} dt          j        d<    |d          |_        t                      }|                    d	          | _	        d S )
Nr   )Settings)HuggingFaceEmbeddingtrueTOKENIZERS_PARALLELISMzBAAI/bge-small-en-v1.5)
model_name   )similarity_top_k)
rN   rl   "llama_index.embeddings.huggingfacerm   osenvironembed_modelrh   as_retriever	retriever)selfrl   rm   r,   s       r   __init__zHelp.__init__   so    ------KKKKKK/5
+,33?WXXX++R+@@r   c                     | j                             |          }d| d}|D ]=}|j                            dd          }|rd| d}|d| dz  }||j        z  }|d	z  }>|S )
Nz# Question: z

# Relevant docs:

rH   r'   z from_url=""z<docz>
z	
</doc>

)rx   retrieverJ   getrI   )ry   questionrf   contextnoderH   s         r   askzHelp.ask   s    ''118     	& 	&D-##E2..C +*C***c&Gty G~%GGr   N)__name__
__module____qualname__rz   r   r"   r   r   rj   rj      s5        	A 	A 	A    r   rj   )rT   rt   rV   warningspathlibr   r   aiderr   r   
aider.dumpr   aider.help_patsr   simplefilterFutureWarningr   r   r7   rh   rj   r"   r   r   <module>r      s    				             $ $ $ $ $ $ $ $       0 0 0 0 0 0  h 7 7 7 7    ', ', ',T. . .b         r   