Ë
    {±êjŒ
  ã                  ó¦   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
mZmZmZ ddlmZ ddlmZ dd	lmZ  ed
¬«       G d„ d«      «       ZdgZy)zKExplicit, local-only source adapter for the first document-ingestion slice.é    )ÚannotationsN)Ú	dataclass)ÚPath)ÚDocumentRegistrationÚDocumentTrustÚKnowledgeDocumentÚKnowledgeSourceÚSensitivity)ÚEmbeddingService)ÚSQLiteKnowledgeRepository)ÚKnowledgeVectorStoreT)Úfrozenc                  óŒ   — e Zd ZU dZded<   ded<   ej                  Zded<   ej                  Z
ded	<   d
d
dœ	 	 	 	 	 	 	 	 	 dd„Zy
)ÚLocalDirectorySourceaW  A user-approved directory that may supply registrations.

    This adapter registers metadata and a digest only.  It does not parse the
    file, create embeddings, copy originals, watch the directory, or grant any
    network access.  Those operations remain separate capabilities because
    their failure and privacy boundaries differ.
    ÚstrÚ	source_idr   Úrootr   Útrustr
   ÚsensitivityN©Úvector_storeÚembedding_servicec               ó´  — | j                   j                  «       j                  d¬«      }t        |«      j                  «       j                  d¬«      }|j	                  «       st        d«      ‚	 |j                  |«      }t        j                  |j                  «      \  }	}
t        t        | j                  d|j                  «       › �| j                  | j                   dd|j                  i¬«      |j#                  «       |	xs d|j                  «       |j                  d	œ¬
«      }|j%                  |||¬«      S # t
        $ r}t        d«      |‚d }~ww xY w)NT)Ústrictz6knowledge source path must be an existing regular filez2knowledge source path is outside the approved rootzfile:///Ú	root_name)r   Ú
source_urir   r   ÚapprovedÚmetadatazapplication/octet-stream)Úrelative_pathÚfilename)ÚsourceÚcontentÚ
media_typer   r   )r   Ú
expanduserÚresolver   Úis_fileÚ
ValueErrorÚrelative_toÚPermissionErrorÚ	mimetypesÚ
guess_typeÚnamer   r	   r   Úas_posixr   r   Ú
read_bytesÚregister)ÚselfÚ
repositoryÚpathr   r   r   Ú	candidater   Úerrorr#   Ú_Úregistrations               úO/home/oem/CyberBrain26-unified/src/cyberbrain26/knowledge_plane/local_source.pyÚregister_filez"LocalDirectorySource.register_file$   sJ  € ð �y‰y×#Ñ#Ó%×-Ñ-°TÐ-Ó:ˆÜ˜“J×)Ñ)Ó+×3Ñ3¸4Ð3Ó@ˆ	Ø× Ñ Ô"ÜÐUÓVÐVð	cØ%×1Ñ1°$Ó7ˆMô "×,Ñ,¨Y¯^©^Ó<‰ˆ
�AÜ+Ü"ØŸ.™.Ø% m×&<Ñ&<Ó&>Ð%?Ð@Ø—j‘jØ ×,Ñ,ØØ% t§y¡yÐ1ôð ×(Ñ(Ó*Ø!Ò?Ð%?Ø'4×'=Ñ'=Ó'?ÈYÏ^É^Ñ\ô
ˆð ×"Ñ"ØØ%Ø/ð #ó 
ð 	
øô# ò 	cÜ!Ð"VÓWÐ]bÐbûð	cús   Á0D= Ä=	EÅEÅE)
r1   r   r2   z
str | Pathr   zKnowledgeVectorStore | Noner   zEmbeddingService | NoneÚreturnztuple[KnowledgeDocument, bool])Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   ÚEXTERNALr   r
   ÚPERSONALr   r8   © ó    r7   r   r      sp   … ñð ƒNØ
ƒJØ(×1Ñ1€Eˆ=Ó1Ø*×3Ñ3€K�Ó3ð 59Ø59ñ#
à-ð#
ð ð#
ð
 2ð#
ð 3ð#
ð 
(ô#
rB   r   )r=   Ú
__future__r   r*   Údataclassesr   Úpathlibr   Ú&cyberbrain26.knowledge_plane.contractsr   r   r   r	   r
   Ú.cyberbrain26.knowledge_plane.embedding_servicer   Ú'cyberbrain26.knowledge_plane.repositoryr   Ú)cyberbrain26.knowledge_plane.vector_storer   r   Ú__all__rA   rB   r7   ú<module>rK      sS   ðÙ Qå "ã Ý !Ý ÷õ õ LÝ MÝ Jñ �$Ô÷1
ð 1
ó ð1
ðh "Ð
"�rB   