Ë
    áÛêj¿f  ã                  ó*  — d Z ddlm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
mZmZ ddlmZ ddlmZ  ej"                  e«      ZdZdZd	Zd
ZdZdZdZ ed¬«       G d„ d«      «       Ze G d„ d«      «       Z G d„ d«      Z G d„ d«      Zg d¢Zy)uÒ  Export/import knowledge plane data (FÃ¡ze B4).

Poskytuje serializaci/deserializaci knowledge plane komponent:
- KnowledgeDocument metadata (SQLiteKnowledgeRepository)
- Entity relationship graph edges (KnowledgeNavigator)
- Vector embeddings (KnowledgeVectorStore / LanceDB)

Vzory z vÃ½zkumu:
- Mem.nowledge Data Transfer: text-based bundle (JSON manifest + JSONL records + Markdown)
  https://mem.nowledge.co/docs/data-portability (pÅ™Ã­stup 2026-11-04)
- LanceDB: Apache Arrow / PyArrow interoperability, batch add, load_columns from Parquet
  https://docs.lancedb.com/ (pÅ™Ã­stup 2026-11-04)
- ByteRover Context Tree: markdown-based knowledge storage, git-like versioning
  arXiv:2604.01599 (pÅ™Ã­stup 2026-11-04)
- Agent Memory Protocol: markdown-first, graph-native, git-native
  https://github.com/agentmemoryprotocol/agentmemoryprotocol (pÅ™Ã­stup 2026-11-04)

FormÃ¡t exports:
  <export_dir>/
    manifest.json          # verze, Ä�as, counts, included sections, sensitivity_filter
    documents.jsonl        # KnowledgeDocument metadata (jeden zÃ¡znam na Å™Ã¡dek)
    entities.jsonl         # entity-relationship graph edges
    vectors.jsonl          # vektorovÃ© zÃ¡znamy (id, vector, text, metadata)
    knowledge_docs/        # volitelnÃ© pÅ¯vodnÃ­ soubory (kopie)
    settings.json          # konfigurace embeding modelu, vector_dim, atd.

PouÅ¾itÃ­:
    from cyberbrain26.knowledge_plane.export_import import KnowledgeExporter, KnowledgeImporter
    
    exporter = KnowledgeExporter(memory_service, navigator, vector_store)
    export_path = exporter.export(export_dir="/path/to/export", format="zip")
    
    importer = KnowledgeImporter(memory_service, navigator, vector_store)
    summary = importer.import_from(export_path)
é    )ÚannotationsN)ÚasdictÚ	dataclassÚfield)ÚPath)ÚAnyz1.0zmanifest.jsonzsettings.jsonzdocuments.jsonlzentities.jsonlzvectors.jsonlÚknowledge_docsT)Úfrozenc                  ó‚   — e Zd ZU dZded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   dZded<   dd„Zy)ÚExportManifestuB   ManifesÅ¥ exportu â€” verzovanÃ© metadata o exportovanÃ©m balÃ­ku.ÚstrÚformat_versionÚfloatÚexport_timestampÚexport_sourceÚintÚdocument_countÚentity_countÚvector_countú	list[str]Úincluded_sectionsú
str | NoneÚsensitivity_filterÚtopic_filterz cyberbrain26-knowledge-plane-1.0Úschema_versionc                ó   — t        | «      S ©N)r   ©Úselfs    úP/home/oem/CyberBrain26-unified/src/cyberbrain26/knowledge_plane/export_import.pyÚto_dictzExportManifest.to_dictK   s   € Ü�d‹|Ðó    N©Úreturnúdict[str, Any])Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r!   © r"   r    r   r   <   sJ   … áLàÓØÓØÓØÓØÓØÓØ Ó Ø"Ó"ØÓØ<€N�CÓ<ôr"   r   c                  ó”   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<    e	e
¬«      Zd	ed
<    e	e
¬«      Zd	ed<   edd„«       Zy)ÚImportSummaryu   Souhrn vÃ½sledku importu.r   r   Úimported_documentsÚskipped_documentsÚimported_entitiesÚimported_vectors)Údefault_factoryr   ÚerrorsÚwarningsc                óN   — | j                   | j                  z   | j                  z   S r   )r.   r0   r1   r   s    r    Útotal_recordszImportSummary.total_recordsZ   s$   € à×&Ñ&¨×)?Ñ)?Ñ?À$×BWÑBWÑWÐWr"   N)r$   r   )r&   r'   r(   r)   r.   r*   r/   r0   r1   r   Úlistr3   r4   Úpropertyr6   r+   r"   r    r-   r-   O   sc   … á#àÐ˜ÓØÐ�sÓØÐ�sÓØÐ�cÓÙ¨dÔ3€FˆIÓ3Ù°Ô5€HˆiÓ5àòXó ñXr"   r-   c                  óØ   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 dd„Zdddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd	„Zdd
„Zdd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Zdd„Zd d„Zd!d„Zed"d„«       Zy)#ÚKnowledgeExporteruâ   Exportuje knowledge plane data do adresÃ¡Å™e nebo ZIP archivu.

    FormÃ¡t je text-based bundle (inspirace Mem.nowledge Data Transfer):
    JSON manifest + JSONL pro strukturovanÃ¡ data + volitelnÃ© originÃ¡lnÃ­ soubory.
    Nc                ó.   — || _         || _        || _        y r   ©Úmemory_serviceÚ	navigatorÚvector_store©r   r=   r>   r?   s       r    Ú__init__zKnowledgeExporter.__init__f   ó   € ð -ˆÔØ"ˆŒØ(ˆÕr"   ÚzipTF)Úformatr   r   Úinclude_vectorsÚinclude_entitiesÚinclude_docsc               ón  — t        |«      }t        t        j                  d¬«      «      }		 | j                  ||¬«      }
|r| j	                  «       ng }|r| j                  «       ng }|	t        z  }|r|j                  dd¬«       | j                  |	t        z  |
«       | j                  |	t        z  |«       | j                  |	t        z  |«       |r| j                  ||
«       | j                  «       }|	t         z  }|j#                  t%        j&                  |d¬«      d¬	«       t)        t*        t-        j,                  «       t/        |«      t1        |
«      t1        |«      t1        |«      d
d|fd|fd|ffD ��cg c]	  \  }}|r|‘Œ c}}||¬«	      }|	t2        z  }|j#                  t%        j&                  |j5                  «       d¬«      d¬	«       |dk(  rì|j6                  j                  dd¬«       t9        j:                  |dt8        j<                  «      5 }t?        |	jA                  d«      «      D ]6  }|jC                  «       sŒ|jE                  |	«      }|jG                  ||«       Œ8 	 ddd«       tH        jK                  dt1        |
«      t1        |«      t1        |«      |«       |tM        jN                  |	d¬«       S tM        jP                  |	|d¬«       tH        jK                  d|«       |tM        jN                  |	d¬«       S c c}}w # 1 sw Y   Œ£xY w# tM        jN                  |	d¬«       w xY w)u|  Exportuje knowledge data.

        Args:
            export_dir: CÃ­lovÃ½ adresÃ¡Å™ pro export (nebo soubor pro ZIP).
            format: "zip" nebo "directory".
            sensitivity_filter: Pokud nastaveno, exportuje jen dokumenty s citlivostÃ­ <= hodnota.
            topic_filter: Pokud nastaveno, exportuje jen dokumenty s danÃ½m topikem.
            include_vectors: Zahrnout vektorovÃ¡ data z LanceDB.
            include_entities: Zahrnout entity-relationship graf.
            include_docs: Zahrnout kopie pÅ¯vodnÃ­ch souborÅ¯.

        Returns:
            Cesta k vytvoÅ™enÃ©mu exportu (ZIP soubor nebo adresÃ¡Å™).
        zcyberbrain26-export-©Úprefix)r   r   T)ÚparentsÚexist_oké   )Úindentúutf-8©Úencoding)Ú	documentsTÚentitiesÚvectorsÚdocs)	r   r   r   r   r   r   r   r   r   rC   ÚwÚ*NuA   Export abgeschlossen: %d dokumentÅ¯, %d entit, %d vektorÅ¯ â†’ %s©Úignore_errors)Údirs_exist_oku&   Export abgeschlossen do adresÃ¡Å™e: %s))r   ÚtempfileÚmkdtempÚ_collect_documentsÚ_collect_entitiesÚ_collect_vectorsÚEXPORT_DOCS_DIR_NAMEÚmkdirÚ_write_documents_jsonlÚEXPORT_DOCUMENTS_NAMEÚ_write_entities_jsonlÚEXPORT_ENTITIES_NAMEÚ_write_vectors_jsonlÚEXPORT_VECTORS_NAMEÚ_copy_source_filesÚ_collect_settingsÚEXPORT_SETTINGS_NAMEÚ
write_textÚjsonÚdumpsr   ÚEXPORT_FORMAT_VERSIONÚtimer   ÚlenÚEXPORT_MANIFEST_NAMEr!   ÚparentÚzipfileÚZipFileÚZIP_DEFLATEDÚsortedÚrglobÚis_fileÚrelative_toÚwriteÚloggerÚinfoÚshutilÚrmtreeÚcopytree)r   Ú
export_dirrD   r   r   rE   rF   rG   Úexport_pathÚtmp_dirrR   rS   rT   Útmp_docs_dirÚsettingsÚsettings_pathÚsÚincÚmanifestÚmanifest_pathÚzfÚpÚarcnames                          r    ÚexportzKnowledgeExporter.exportp   sï  € ô2 ˜:Ó&ˆÜ”x×'Ñ'Ð/EÔFÓGˆðM	7à×/Ñ/Ø#5ÀLð 0ó ˆIñ
 4D�t×-Ñ-Ô/ÈˆHñ 2A�d×+Ñ+Ô-ÀbˆGð #Ô%9Ñ9ˆLÙØ×"Ñ"¨4¸$Ð"Ô?à×'Ñ'¨Ô2GÑ(GÈÔSØ×&Ñ& wÔ1EÑ'EÀxÔPØ×%Ñ% gÔ0CÑ&CÀWÔMáØ×'Ñ'¨°iÔ@ð ×-Ñ-Ó/ˆHØ#Ô&:Ñ:ˆMØ×$Ñ$¤T§Z¡Z°ÀÔ%CÈgÐ$ÔVä%Ü4Ü!%§¡£Ü! +Ó.Ü" 9›~Ü  ›]Ü  ›\ð ,Ø#Ð%5Ð6Ø" OÐ4Ø Ð.ð	#÷	#á˜˜3ñ ò ó	#ð $6Ø)ô%ˆHð( $Ô&:Ñ:ˆMØ×$Ñ$Ü—
‘
˜8×+Ñ+Ó-°aÔ8À7ð %ô ð
 ˜ŠØ×"Ñ"×(Ñ(°ÀÐ(ÔEÜ—_‘_ [°#´w×7KÑ7KÓLð 1ÐPRÜ# G§M¡M°#Ó$6Ó7ò 1˜ØŸ9™9�;Ø&'§m¡m°GÓ&<˜GØŸH™H Q¨Õ0ñ1÷1ô
 —‘ØWÜ˜	“NÜ˜“MÜ˜“LØôð #ô �M‰M˜'°Ö6ô —‘ ¨ÀDÕIÜ—‘Ø<¸kôð #ä�M‰M˜'°Ö6ùóS	#÷*1ð 1ûô( �M‰M˜'°Ö6úsC   ¬EL Å9L	ÆBL È.LÉ%LÉ-=L Ë/L Ì	L ÌLÌL ÌL4c                óJ  — g }t        | j                  dd«      }|€t        j                  d«       |S 	 | j	                  |«      }|D ]œ  }|j                  |«      }|€Œ| j                  |«      }|�8|j                  dd«      }		 | j                  |	«      | j                  |«      kD  rŒa	 |�(|j                  di «      j                  dd«      }
|
|k7  rŒŒ|j                  |«       Œž 	 |S # t        $ r Y Œ­w xY w# t        $ r!}t        j                  d	|«       Y d}~|S d}~ww xY w)
u<   ShromÃ¡Å¾dÃ­ metadata dokumentÅ¯ z MemoryService repository.Ú
repositoryNu=   MemoryService nemÃ¡ repository â€” nelze exportovat dokumentyÚsensitivityÚpersonalÚmetadataÚtopicÚ u+   Chyba pÅ™i sbÄ›ru dokumentÅ¯ pro export: %s)Úgetattrr=   r{   ÚwarningÚ_get_all_document_idsÚgetÚ_document_to_dictÚ_sensitivity_rankÚ
ValueErrorÚappendÚ	ExceptionÚerror)r   r   r   rR   r�   Úall_doc_idsÚdoc_idÚdocÚdoc_dictÚdoc_sensitivityÚ
meta_topicÚexcs               r    r]   z$KnowledgeExporter._collect_documentsß   sQ  € ð +-ˆ	Ü˜T×0Ñ0°,ÀÓEˆ
ØÐÜ�N‰NÐZÔ[ØÐð	Mà×4Ñ4°ZÓ@ˆKØ%ò +�Ø —n‘n VÓ,�Ø�;ØØ×1Ñ1°#Ó6�ð &Ð1Ø&.§l¡l°=À*Ó&M�Oð!Ø×1Ñ1°/ÓBÀT×E[ÑE[Ø.óFò ð %ðð  Ð+Ø!)§¡¨j¸"Ó!=×!AÑ!AÀ'È2Ó!N�JØ! \Ò1Ø à× Ñ  Õ*ñ/+ð6 Ðøô &ò !Ù ð!ûô ò 	MÜ�L‰LÐFÈ×LÐLàÐûð	Mús<   ´AC8 Â#C)Â'?C8 Ã)	C5Ã2C8 Ã4C5Ã5C8 Ã8	D"ÄDÄD"c           	     ó0  — g }| j                   €|S t        | j                   dd«      }|€|S t        |di «      }|j                  «       D ]J  \  }}|D ]@  }|j                  |j                  |j
                  |j                  |j                  dœ«       ŒB ŒL |S )u5   ShromÃ¡Å¾dÃ­ entity-relationship edges z navigÃ¡toru.NÚ_entity_graphÚedges©Úsource_entityÚtarget_entityÚrelationship_typeÚdocument_id)r>   r•   Úitemsrœ   rª   r«   r¬   r­   )r   rS   Úgraphr¨   Ú	_edge_keyÚ	edge_listÚedges          r    r^   z#KnowledgeExporter._collect_entities	  s¥   € à)+ˆØ�>‰>Ð!ØˆOä˜Ÿ™¨¸Ó>ˆØˆ=ØˆOä˜˜w¨Ó+ˆØ$)§K¡K£Mò 		Ñ ˆI�yØ!ò �Ø—‘à)-×);Ñ);Ø)-×);Ñ);Ø-1×-CÑ-CØ'+×'7Ñ'7ñ	õñð		ð ˆr"   c                óP  — g }| j                   €|S 	 | j                   j                  }|j                  «       j                  «       }|D ]­  }|j	                  |j                  dd«      |j                  dg «      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd	«      |j                  d
d«      |j                  dd«      |j                  dd«      dœ	«       Œ¯ 	 |S # t        $ r!}t        j                  d|«       Y d}~|S d}~ww xY w)u/   ShromÃ¡Å¾dÃ­ vektorovÃ¡ data z LanceDB (batch).NÚidr”   ÚvectorÚtextÚ	source_idÚpathÚmtimeç        Úsha256Úchunk_indexr   r’   ú{}©	r´   rµ   r¶   r·   r¸   r¹   r»   r¼   r’   u)   Chyba pÅ™i sbÄ›ru vektorÅ¯ pro export: %s)	r?   Ú_tableÚto_arrowÚ	to_pylistrœ   r˜   r�   r{   rž   )r   rT   ÚtableÚrowsÚrowr¥   s         r    r_   z"KnowledgeExporter._collect_vectors   s  € à(*ˆØ×ÑÐ$ØˆNð	KØ×%Ñ%×,Ñ,ˆEØ—>‘>Ó#×-Ñ-Ó/ˆDØò �Ø—‘à!Ÿg™g d¨BÓ/Ø"%§'¡'¨(°BÓ"7Ø #§¡¨°Ó 3Ø%(§W¡W¨[¸"Ó%=Ø #§¡¨°Ó 3Ø!$§¡¨°#Ó!6Ø"%§'¡'¨(°BÓ"7Ø'*§w¡w¨}¸aÓ'@Ø$'§G¡G¨J¸Ó$=ñ
õñð" ˆøô ò 	KÜ�L‰LÐDÀc×JÐJàˆûð	Kús   ’C&C; Ã;	D%ÄD Ä D%c           	     ó   — t        | j                  dd«      }|€i S |j                  |j                  |j                  |j
                  t        |j                  «      |j                  |j                  |j                  dœS )u$   ShromÃ¡Å¾dÃ­ konfiguraci pro export.ÚconfigN)ÚmodelÚ
vector_dimÚmax_contextÚollama_base_urlÚlancedb_directoryÚfile_extensionsÚchunk_size_tokensÚchunk_overlap_tokens)r•   r=   rÇ   rÈ   rÉ   rÊ   r   rË   rÌ   rÍ   rÎ   )r   rÆ   s     r    ri   z#KnowledgeExporter._collect_settings<  su   € ä˜×,Ñ,¨h¸Ó=ˆØˆ>ØˆIà—\‘\Ø ×+Ñ+Ø!×-Ñ-Ø%×5Ñ5Ü!$ V×%=Ñ%=Ó!>Ø%×5Ñ5Ø!'×!9Ñ!9Ø$*×$?Ñ$?ñ	
ð 		
r"   c                óz  — |j                   |j                  |j                  |j                  |j                  t        |j                  d«      r|j                  j                  nt        |j                  «      t        |j                  d«      r|j                  j                  nt        |j                  «      t        |j                  d«      r|j                  j                  nt        |j                  «      |j                  |j                  |j                  |j                  |j                  |j                   dœS )u5   PÅ™evede KnowledgeDocument na serializovatelnÃ½ dict.Úvalue©r­   r·   Ú
source_uriÚcontent_sha256Ú
media_typeÚtrustr�   Ústatusr’   Ú
created_atÚ
updated_atÚ
valid_fromÚvalid_toÚsuperseded_by)r­   r·   rÒ   rÓ   rÔ   ÚhasattrrÕ   rÐ   r   r�   rÖ   r’   r×   rØ   rÙ   rÚ   rÛ   )r   r¡   s     r    r™   z#KnowledgeExporter._document_to_dictP  sÑ   € ð Ÿ?™?ØŸ™ØŸ.™.Ø!×0Ñ0ØŸ.™.Ü(/°·	±	¸7Ô(C�S—Y‘Y—_’_ÌÈSÏYÉYËä�s—‘¨Ô0ð Ÿ?™?×0Ò0ä�S—_‘_Ó%Ü*1°#·*±*¸gÔ*F�c—j‘j×&Ò&ÌCÐPS×PZÑPZËOØŸ™ØŸ.™.ØŸ.™.ØŸ.™.ØŸ™Ø ×.Ñ.ñ!
ð 	
r"   c                ó¬   — t        |dd¬«      5 }|D ]+  }|j                  t        j                  |d¬«      dz   «       Œ- 	 d d d «       y # 1 sw Y   y xY w)NrV   rO   rP   F)Úensure_asciiú
)Úopenrz   rl   rm   )r   r¸   ÚrecordsÚfÚrecords        r    Ú_write_jsonlzKnowledgeExporter._write_jsonle  sV   € Ü�$˜ gÔ.ð 	G°!Ø!ò G�Ø—‘œŸ
™
 6¸Ô>ÀÑEÕFñG÷	G÷ 	Gñ 	Gús   �1A
Á
Ac                ó(   — | j                  ||«       y r   ©rä   )r   r¸   rR   s      r    rb   z(KnowledgeExporter._write_documents_jsonlj  s   € Ø×Ñ˜$ 	Õ*r"   c                ó(   — | j                  ||«       y r   ræ   )r   r¸   rS   s      r    rd   z'KnowledgeExporter._write_entities_jsonlm  s   € Ø×Ñ˜$ Õ)r"   c                ó(   — | j                  ||«       y r   ræ   )r   r¸   rT   s      r    rf   z&KnowledgeExporter._write_vectors_jsonlp  s   € Ø×Ñ˜$ Õ(r"   c                ó:  — |D ]i  }|j                  dd«      }|sŒt        |«      }|j                  «       r|j                  «       sŒD||j                  z  }	 t        j                  ||«       Œk y# t        $ r!}t        j                  d||«       Y d}~Œ’d}~ww xY w)u2   KopÃ­ruje pÅ¯vodnÃ­ soubory do exports adresÃ¡Å™e.rÒ   r”   u#   Nelze zkopÃ­rovat %s do exportu: %sN)
r˜   r   Úexistsrx   Únamer}   Úcopy2r�   r{   r–   )r   Údocs_dirrR   r¡   rÒ   ÚsrcÚdestr¥   s           r    rh   z$KnowledgeExporter._copy_source_filess  s‘   € àò 	PˆCØŸ™ ¨rÓ2ˆJÙØÜ�zÓ"ˆCØ—:‘:”< s§{¡{¤}Øà˜cŸh™hÑ&ˆDðPÜ—‘˜S $Õ'ñ	Pøô ò PÜ—‘ÐDÀcÈ3×OÑOûðPús   ÁA0Á0	BÁ9BÂBc                óú  — t        |dd«      }t        |«      r	 t         |«       «      S t        | j                  dd«      }|�M	 |j                  «       5 }|j                  d«      j                  «       }|D �cg c]  }|d   ‘Œ	 c}cddd«       S g S # t        $ r }t        j                  d|«       Y d}~ŒŒd}~ww xY wc c}w # 1 sw Y   g S xY w# t        $ r!}t        j                  d|«       Y d}~g S d}~ww xY w)u.   ZÃ­skÃ¡ vÅ¡echny dokumentovÃ© ID z repository.Úget_all_idsNzget_all_ids selhal: %sÚdatabasez+SELECT document_id FROM knowledge_documentsr­   zSQLite listing selhal: %s)
r•   Úcallabler7   r�   r{   Údebugr=   Ú
connectionÚexecuteÚfetchall)r   r�   Úall_ids_methodr¥   rò   rõ   rÃ   rÄ   s           r    r—   z'KnowledgeExporter._get_all_document_ids‡  s  € ô ! ¨]¸DÓAˆÜ�NÔ#ð<Ü™NÓ,Ó-Ð-ô
 ˜4×.Ñ.°
¸DÓAˆØÐð?Ø×(Ñ(Ó*ð @¨jØ%×-Ñ-ØEóç‘h“jð ð ;?Ö?°3˜C Ó.Ò?÷	@ñ @ð ˆ	øô ò <Ü—‘Ð5°s×;Ñ;ûð<üò @÷	@ð ˆ	ûô ò ?Ü—‘Ð8¸#×>Ð>àˆ	ûð?ús_   šB ÁC Á$CÁ8B>ÂCÂ	C Â	B;ÂB6Â6B;Â>CÃCÃC ÃC Ã	C:ÃC5Ã5C:c                ó4   — dddddœ}|j                  | d«      S )Nr   é   rM   é   )Úpublicr‘   Ú	sensitiveÚ
restricted)r˜   )ÚlevelÚranks     r    rš   z#KnowledgeExporter._sensitivity_rankŸ  s!   € à¨¸È!ÑLˆØ�x‰x˜˜qÓ!Ð!r"   ©NN©r=   r   r>   ú
Any | Noner?   r  r$   ÚNone)r€   ú
str | PathrD   r   r   r   r   r   rE   ÚboolrF   r  rG   r  r$   r   )r   r   r   r   r$   úlist[dict[str, Any]])r$   r  r#   )r¡   r   r$   r%   )r¸   r   rá   r  r$   r  )r¸   r   rR   r  r$   r  )r¸   r   rS   r  r$   r  )r¸   r   rT   r  r$   r  )rí   r   rR   r  r$   r  )r�   r   r$   r   )rÿ   r   r$   r   )r&   r'   r(   r)   rA   r�   r]   r^   r_   ri   r™   rä   rb   rd   rf   rh   r—   Ústaticmethodrš   r+   r"   r    r:   r:   _   s  „ ñð !%Ø#'ð	)àð)ð ð)ð !ð	)ð
 
ó)ð Ø)-Ø#'Ø $Ø!%Ø"ñi7àði7ð ð	i7ð
 'ði7ð !ði7ð ði7ð ði7ð ði7ð 
ói7ð^(Ø",ð(Ø<Fð(à	ó(óTó.ó8
ó(
ó*Gó
+ó*ó)óPó(ð0 ò"ó ñ"r"   r:   c                  óX   — e Zd ZdZ	 	 d		 	 	 	 	 	 	 d
d„Zddddœ	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚKnowledgeImporteru�   Importuje knowledge plane data z adresÃ¡Å™e nebo ZIP archivu.

    Fail-closed: chybÄ›jÃ­cÃ­ manifest nebo neznÃ¡mÃ¡ verze = chyba importu.
    Nc                ó.   — || _         || _        || _        y r   r<   r@   s       r    rA   zKnowledgeImporter.__init__«  rB   r"   FT)Ú	overwriteÚsensitivity_overrideÚdedupc               óœ  — t        «       }t        |«      }d}t        j                  |«      rRt        t	        j
                  d¬«      «      }t        j                  |d«      5 }|j                  |«       ddd«       |}n3|j                  «       r|}n |j                  j                  d|› �«       |S 	 |t        z  }	|	j                  «       s7|j                  j                  d«       ||�t        j                  |d¬«       S S t        j                   |	j#                  d	¬
«      «      }
|
j%                  d«      t&        k7  rQ|j                  j                  d|
j%                  d«      › dt&        › d�«       ||�t        j                  |d¬«       S S t(        j+                  d|
j%                  d«      |
j%                  dd«      |
j%                  dd«      |
j%                  dd«      «       |t,        z  }|j                  «       �r*t/        | j0                  dd«      }|€|j                  j                  d«       nõ|j#                  d	¬
«      j3                  «       D ]Ò  }|j5                  «       sŒ	 t        j                   |«      }|j%                  dd«      }|r)|j%                  |«      �|s|xj6                  dz  c_        Œg|�||d<   | j9                  |«      }|j;                  t=        dd|j>                  d|j@                  |jB                  dœ«      «       |xjD                  dz  c_"        ŒÔ |tJ        z  }|j                  «       r˜| jL                  �Œ|j#                  d	¬
«      j3                  «       D ]i  }|j5                  «       sŒ	 t        j                   |«      }| jL                  jO                  |d    |d!   |d"   |d   ¬#«       |xjP                  dz  c_(        Œk |tR        z  }|j                  «       �r�| jT                  ��ƒdd%l+m,} g }|j#                  d	¬
«      j3                  «       D �]  }|j5                  «       sŒ	 t        j                   |«      }|j                   ||d&   |d'   |j%                  d(d«      |j%                  d)d«      |j%                  d*d«      |j%                  d+d,«      |j%                  d-d«      |j%                  d.d«      t        j                   |j%                  d/d0«      «      ¬1«	      «       t[        |«      d2k\  r;| jT                  j]                  |«       |xj^                  t[        |«      z  c_/        g }�Œ |r9| jT                  j]                  |«       |xj^                  t[        |«      z  c_/        t(        j+                  d4|jD                  |jP                  |j^                  t[        |j                  «      «       |�t        j                  |d¬«       |S # 1 sw Y   �Œ{xY w# tF        $ r?}|j                  j                  d|› �«       t(        jI                  d|«       Y d}~�Œåd}~ww xY w# tF        $ r)}|j                  j                  d$|› �«       Y d}~�Œ d}~ww xY w# tF        $ r)}|j                  j                  d3|› �«       Y d}~�Œzd}~ww xY w# |�t        j                  |d¬«       w w xY w)5uË  Importuje knowledge data.

        Args:
            export_path: Cesta k ZIP souboru nebo adresÃ¡Å™i s exportem.
            overwrite: PÅ™epsat existujÃ­cÃ­ dokumenty se stejnÃ½m ID.
            sensitivity_override: PÅ™epsat citlivost vÅ¡ech importovanÃ½ch dokumentÅ¯.
            dedup: Pokud True, pÅ™eskoÄ�Ã­ duplikÃ¡ty podle content_sha256.

        Returns:
            ImportSummary s poÄ�ty importovanÃ½ch/preskoÄ�enÃ½ch poloÅ¾ek a chybami.
        Nzcyberbrain26-import-rI   Úru   NeplatnÃ½ cesta k exportu: u   ChybÃ­ manifest.json v exportuTrX   rO   rP   r   u   NepodporovanÃ¡ verze formÃ¡tu: u    (oÄ�ekÃ¡vÃ¡no ú)u?   Import z exportu verze %s, %d dokumentÅ¯, %d entit, %d vektorÅ¯r   r   r   r   r�   u4   MemoryService nemÃ¡ repository pro import dokumentÅ¯r­   r”   rú   r�   ÚRegistrationr+   r"   )ÚsourceÚcontentrÔ   r’   zChyba importu dokumentu: zImport dokumentu selhal: %srª   r«   r¬   r©   zChyba importu entity: )ÚVectorDocumentr´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r’   r½   r¾   éd   zChyba importu vektoru: u?   Import dokonÄ�en: %d dokumentÅ¯, %d entit, %d vektorÅ¯, %d chyb)0r-   r   rs   Ú
is_zipfiler[   r\   rt   Ú
extractallÚis_dirr3   rœ   rq   rê   r}   r~   rl   ÚloadsÚ	read_textr˜   rn   r{   r|   rc   r•   r=   Ú
splitlinesÚstripr/   Ú_dict_to_documentÚregisterÚtyper·   rÔ   r’   r.   r�   r–   re   r>   Úadd_entity_edger0   rg   r?   Ú)cyberbrain26.knowledge_plane.vector_storer  rp   Úadd_documentsr1   )r   r�   r  r  r  Úsummaryr‚   rŠ   Ú
source_dirr‰   rˆ   Údocuments_pathÚrepoÚliner¢   r    r¡   r¥   Úentities_pathÚentityÚvectors_pathr  ÚbatchÚvecs                           r    Úimport_fromzKnowledgeImporter.import_fromµ  s.  € ô&  “/ˆÜ˜;Ó'ˆð  $ˆä×Ñ˜kÔ*Üœ8×+Ñ+Ð3IÔJÓKˆGÜ—‘ ¨cÓ2ð '°bØ—‘˜gÔ&÷'à ‰JØ×ÑÔ!Ø$‰Jà�N‰N×!Ñ!Ð$?À¸}Ð"MÔNØˆNð@	;à&Ô)=Ñ=ˆMØ ×'Ñ'Ô)Ø—‘×%Ñ%Ð&FÔGØðt Ð"Ü—‘˜g°TÖ:ð #ôq —z‘z -×"9Ñ"9À7Ð"9Ó"KÓLˆHØ�|‰|Ð,Ó-Ô1FÒFØ—‘×%Ñ%Ø5°h·l±lÐCSÓ6TÐ5Uð V%Ü%:Ð$;¸1ð>ôð ðd Ð"Ü—‘˜g°TÖ:ð #ôa �K‰KØQØ—‘Ð-Ó.Ø—‘Ð-¨qÓ1Ø—‘˜^¨QÓ/Ø—‘˜^¨QÓ/ôð (Ô*?Ñ?ˆNØ×$Ñ$Õ&Ü˜t×2Ñ2°LÀ$ÓG�Ø�<Ø—N‘N×)Ñ)Ð*`Õaà .× 8Ñ 8À'Ð 8Ó J× UÑ UÓ Wò "O˜Ø#Ÿz™zœ|Ø$ðOÜ'+§z¡z°$Ó'7˜HØ%-§\¡\°-ÀÓ%D˜Fñ  %¨¯©°&Ó)9Ð)EÙ'0Ø$+×$=Ò$=ÀÑ$BÕ$=Ø$,ð  4Ð?Ø:N ¨Ñ 7ð #'×"8Ñ"8¸Ó"B˜CØ ŸM™MÜ $Ø$2Ø$&à25·-±-Ø36Ø69·n±nØ47·L±Lñ	%&ó	!"ôð $×6Ò6¸!Ñ;Ö6ð?"OðJ 'Ô)=Ñ=ˆMØ×#Ñ#Ô%¨$¯.©.Ð*DØ)×3Ñ3¸WÐ3ÓE×PÑPÓRò N�DØŸ:™:œ<Ø ð
NÜ!%§¡¨DÓ!1˜ØŸ™×6Ñ6Ø*0°Ñ*AØ*0°Ñ*AØ.4Ð5HÑ.IØ(.¨}Ñ(=ð	 7ô ð  ×1Ò1°QÑ6Ö1ðNð  &Ô(;Ñ;ˆLØ×"Ñ"Õ$¨×):Ñ):Ñ)FÝTà.0�Ø(×2Ñ2¸GÐ2ÓD×OÑOÓQó O�DØŸ:™:œ<Ø ðOÜ"Ÿj™j¨Ó.˜ØŸ™Ù*Ø#& t¡9Ø'*¨8¡}Ø%(§W¡W¨V°RÓ%8Ø*-¯'©'°+¸rÓ*BØ%(§W¡W¨V°RÓ%8Ø&)§g¡g¨g°sÓ&;Ø'*§w¡w¨x¸Ó'<Ø,/¯G©G°MÀ1Ó,EÜ)-¯©°C·G±G¸JÈÓ4MÓ)Nô
ôô ˜u›:¨Ò,Ø ×-Ñ-×;Ñ;¸EÔBØ#×4Ò4¼¸E»
ÑBÕ4Ø$&˜Eùð+Oñ2 Ø×%Ñ%×3Ñ3°EÔ:Ø×,Ò,´°E³
Ñ:Õ,ä�K‰KØQØ×*Ñ*Ø×)Ñ)Ø×(Ñ(Ü�G—N‘NÓ#ôð Ð"Ü—‘˜g°TÕ:àˆ÷W'ñ 'ûôN  )ò OØ#ŸN™N×1Ñ1Ð4MÈcÈUÐ2SÔTÜ"ŸN™NÐ+HÈ#×NÒNûðOûô& %ò NØŸ™×-Ñ-Ð0FÀsÀeÐ.L×MÒMûðNûô> %ò OØŸ™×-Ñ-Ð0GÈÀuÐ.M×NÒNûðOûð Ð"Ü—‘˜g°TÖ:ð #ús·   Á"W-Â35Z/ ÄA3Z/ ÆCZ/ É-AW:Ê>Z/ Ê?A,W:Ì+AZ/ ÎAYÏA&Z/ ÑDY:Õ
BZ/ ×-W7×:	YØ4X=Ø7Z/ Ø=YÙZ/ Ù	Y7ÙY2Ù,Z/ Ù2Y7Ù7Z/ Ù:	Z,ÚZ'Ú!Z/ Ú'Z,Ú,Z/ Ú/[c                ó¢  — ddl m}m}m}m} dd„} ||d   |j                  dd«      |j                  dd«      |j                  dd«      |j                  d	d
«       |||j                  d«      |j                  «       |||j                  d«      |j                  «       |||j                  d«      |j                  «      |j                  di «      |j                  dt        j                  «       «      |j                  dt        j                  «       «      |j                  dd«      |j                  dd«      |j                  dd«      ¬«      S )u)   PÅ™evede dict zpÄ›t na KnowledgeDocument.r   )ÚDocumentStatusÚDocumentTrustÚKnowledgeDocumentÚSensitivityc                ó^   — t        || «      r|S 	  | |«      S # t        t        f$ r |cY S w xY wr   )Ú
isinstancer›   Ú	TypeError)ÚclsrÐ   Údefaults      r    Ú
parse_enumz7KnowledgeImporter._dict_to_document.<locals>.parse_enumf  s9   € Ü˜% Ô%Ø�ðÙ˜5“zÐ!øÜ¤	Ð*ò Ø’ðús   � ˜,«,r­   r·   r”   rÒ   rÓ   rÔ   zapplication/octet-streamrÕ   r�   rÖ   r’   r×   rØ   rÙ   rº   rÚ   rÛ   rÑ   )r7  r   rÐ   r   r8  r   r$   r   )
Ú&cyberbrain26.knowledge_plane.contractsr0  r1  r2  r3  r˜   ÚREVIEWEDÚPERSONALÚ
REGISTEREDro   )r   r¢   r0  r1  r2  r3  r9  s          r    r  z#KnowledgeImporter._dict_to_document]  s  € ÷	
ó 	
ó	ñ !Ø  Ñ/Ø—l‘l ;°Ó3Ø—|‘| L°"Ó5Ø#Ÿ<™<Ð(8¸"Ó=Ø—|‘| LÐ2LÓMÙ˜]¨H¯L©L¸Ó,AÀ=×CYÑCYÓZÙ"Ø˜XŸ\™\¨-Ó8¸+×:NÑ:Nóñ Ø §¡¨XÓ 6¸×8QÑ8Qóð —\‘\ *¨bÓ1Ø—|‘| L´$·)±)³+Ó>Ø—|‘| L´$·)±)³+Ó>Ø—|‘| L°#Ó6Ø—\‘\ *¨cÓ2Ø"Ÿ,™, ¸Ó;ô%
ð 	
r"   r  r  )
r�   r  r  r  r  r   r  r  r$   r-   )r¢   r%   r$   r   )r&   r'   r(   r)   rA   r.  r  r+   r"   r    r
  r
  ¥  s†   „ ñð !%Ø#'ð	)àð)ð ð)ð !ð	)ð
 
ó)ð  Ø+/Øñfàðfð ð	fð
 )ðfð ðfð 
ófôP$
r"   r
  )r   r-   r:   r
  ) r)   Ú
__future__r   rl   Úloggingr}   r[   ro   rs   Údataclassesr   r   r   Úpathlibr   Útypingr   Ú	getLoggerr&   r{   rn   rq   rj   rc   re   rg   r`   r   r-   r:   r
  Ú__all__r+   r"   r    ú<module>rE     sÅ   ðñ"õH #ã Û Û Û Û Û ß 0Ñ 0Ý Ý à	ˆ×	Ñ	˜8Ó	$€àÐ Ø&Ð Ø&Ð Ø)Ð Ø'Ð Ø%Ð Ø'Ð ñ �$Ô÷ð ó ðð$ ÷Xð Xó ðX÷C"ñ C"÷L
\
ñ \
ò~�r"   