
    kiA                    r    d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
 h dZddZd dZd!dZd"dZd#dZdS )$z4Deterministic context collection for meeting inputs.    )annotationsN)Path)ContextBundleContextDocumentContextSourceMeetingInput>   .git.venvvenv__pycache__node_modulesmeeting_inputr   meeting_file_pathr   returnr   c                   |                                 j        }g }g }| j        D ]~}||j        z  }|j        dk    r*t          ||||          }||                    |           At          |||          D ]+}t          ||||          }||                    |           ,dt          |           d}	t          |	||          S )z?Collect file and directory context into a deterministic bundle.fileNz
Collected z context documents)summary	documentsskipped_paths)
resolveparentcontext_sourcespathtype_load_documentappend_iter_directory_fileslenr   )
r   r   base_dirr   r   sourceresolveddocumentr   r   s
             :/root/projects/multi-agents-meeting/core/context_loader.pybuild_context_bundler$      s     !((**1H')I*,M/ + +fk);&  %h-PPH#  ***)(FHEE 	+ 	+D%dFHmLLH#  ***	+
 >3y>>===GI][[[[    	directoryr    r   r   
list[Path]c                   t                      }|j        D ]*}|                    |                     |                     +g }|D ]                                s                              }t          d |j        D                       rKt          fd|j        D                       rl|	                               |
                    fd           |d |j                 S )Nc              3  (   K   | ]}|t           v V  d S N)DEFAULT_EXCLUDED_DIRS).0parts     r#   	<genexpr>z(_iter_directory_files.<locals>.<genexpr>0   s(      HHt,,HHHHHHr%   c              3  B   K   | ]}                     |          V  d S r*   )match)r,   patternr   s     r#   r.   z(_iter_directory_files.<locals>.<genexpr>2   s/      AAwtzz'""AAAAAAr%   c                H    t          |                                         S r*   )strrelative_to)itemr   s    r#   <lambda>z'_iter_directory_files.<locals>.<lambda>6   s    3t'7'7'A'A#B#B r%   )key)setincludeupdateglobis_filer4   anypartsexcluder   sort	max_files)r&   r    r   matchesr1   filteredrelativer   s     `    @r#   r   r   &   s   G> 0 0y~~g..////H  ||~~ 	##H--HHHHHHH 	AAAA&.AAAAA 	MMBBBBMCCC&f&&''r%   r   r   list[dict[str, str]]ContextDocument | Nonec           
        |                                  rt          || |d           d S 	 |                                 }n## t          $ r t          || |d           Y d S w xY w|j        dz  dk    rt          || |d           d S 	 |                                 }n## t          $ r t          || |d           Y d S w xY wd|v rt          || |d           d S |                    dd	          d |j                 }|                     |          }t          |          }t          t          |          ||j        d
k    rd
nd|j        |t          |                    S )Nsymlink
unreadablei$  r       binaryutf-8replace)errorsr   directory_file)document_idsource_pathsource_typepurposeexcerpt
char_count)
is_symlink_record_skipstatOSErrorst_mode
read_bytesdecodemax_chars_per_filer4   r3   r   _document_idr   rS   r   )	r   r    r   r   stat_resultdatarT   rD   relative_strs	            r#   r   r   :   s     ]D(I>>>tiikk   ]D(LAAAtt U"a'']D(LAAAt     ]D(LAAAtt $]D(H===tkk')k445Pv7P5PQG))Hx==L .. $kV33FF9Iw<<   s!   ? AAB B:9B:reasonr3   Nonec                v    |                      t          |                    |                    |d           d S )N)r   rb   )r   r3   r4   )r   r   r   rb   s       r#   rW   rW   e   s<     #d&6&6x&@&@"A"AVTTUUUUUr%   relative_pathc                    |                      dd          }t          j        |                     d                                                    d d         }| d| S )N/__rL      )rM   hashlibsha1encode	hexdigest)re   	safe_pathdigests      r#   r^   r^   n   s]    %%c400I\-..w7788BBDDRaRHF##6###r%   )r   r   r   r   r   r   )r&   r   r    r   r   r   r   r'   )
r   r   r    r   r   r   r   rE   r   rF   )
r   rE   r   r   r   r   rb   r3   r   rc   )re   r3   r   r3   )__doc__
__future__r   rj   pathlibr   core.modelsr   r   r   r   r+   r$   r   r   rW   r^    r%   r#   <module>ru      s    : : " " " " " "        S S S S S S S S S S S S QPP \ \ \ \0( ( ( ((( ( ( (VV V V V$ $ $ $ $ $r%   