Ë
   5ž*0·+ã                  óò  — d Z ddlmZ ddlZddlmc mZ ddl	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 ddlmZ ej*                  dd	„«       Zej*                  dd
„«       Zej*                  dd„«       Zej*                  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k(  r ejF                  e$dg«       yy)u»   Integration tests for the knowledge plane end-to-end pipeline.

Tests the complete flow: file registration â†’ chunking â†’ embedding â†’ vector store â†’ navigation â†’ semantic search.
é    )ÚannotationsN)ÚPath)ÚSQLiteDatabase)ÚMemoryService)ÚEmbeddingConfig)ÚAuditLogc                ó   — | dz  S )u.   VytvoÅ™Ã­ doÄ�asnou SQLite databÃ¡zi pro test.zknowledge.sqlite3© ©Útmp_paths    úB/home/oem/CyberBrain26-unified/tests/test_knowledge_integration.pyÚtmp_sqlite_dbr      s   € ð Ð)Ñ)Ð)ó    c                ó   — | dz  S )u*   VytvoÅ™Ã­ doÄ�asnÃ½ adresÃ¡Å™ pro LanceDB.Úlancedb_datar
   r   s    r   Útmp_lancedb_dirr      s   € ð �nÑ$Ð$r   c                óf   — t        d|¬«      }t        | «      }t        |¬«      }t        |||¬«      S )u!   VytvoÅ™Ã­ MemoryService pro test.i   )Ú
vector_dimÚlancedb_directory)Údatabase)r   ÚconfigÚ	audit_log)r   r   r   r   )r   r   r   r   r   s        r   Úmemory_servicer   !   s:   € ô ¨ÀÔP€FÜ˜mÓ,€HÜ (Ô+€IÜØØØôð r   c                  ó   — y)u   VzorkovÃ½ text pro testy.u;  CyberBrain26 je lokÃ¡lnÃ­, modulÃ¡rnÃ­ AI prostÅ™edÃ­ s dÅ¯razem na bezpeÄ�nost.
Funguje v fÃ¡zi F2 (minimal complete agent flow) a testuje se 747 testÅ¯.
Knowledge plane umoÅ¾Åˆuje vektorovÃ© uloÅ¾enÃ­ a sÃ©mantickÃ© vyhledÃ¡vÃ¡nÃ­ dokumentÅ¯.
Embedding model qwen3-embedding:0.6b generuje vektory o rozmÄ›ru 1024.r
   r
   r   r   Úsample_textr   .   s   € ðJr   c                ó²	  — |dz  }|j                  |d¬«       | j                  |«      \  }}d}||u }|s™t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }d	d
|iz  }	t        t        j                  |	«      «      ‚dx}}d}||u}|s™t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }d	d
|iz  }	t        t        j                  |	«      «      ‚dx}}|j                  }d}
||
u}|s­t        j                  d|fd||
f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |
«      dœz  }	dd|	iz  }t        t        j                  |«      «      ‚dx}x}}
|j                  }d}
||
u}|s­t        j                  d|fd||
f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |
«      dœz  }	dd|	iz  }t        t        j                  |«      «      ‚dx}x}}
| j                  |j                  «      }d}||u}|s™t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }d	d
|iz  }	t        t        j                  |	«      «      ‚dx}}|j                  }|j                  }||k(  }|sît        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}x}}y)uA   Test: registrace souboru konÄ�Ã­ ÃºspÄ›Å¡nÄ› a dokument se najde.útest_note.txtúutf-8©ÚencodingT©Úis©z%(py0)s is %(py3)sÚcreated©Úpy0Úpy3úassert %(py5)sÚpy5N©úis not©z%(py0)s is not %(py3)sÚdocument)z7%(py2)s
{%(py2)s = %(py0)s.document_id
} is not %(py5)s)r&   Úpy2r)   zassert %(py7)sÚpy7)z2%(py2)s
{%(py2)s = %(py0)s.status
} is not %(py5)sÚ	retrieved©ú==)zT%(py2)s
{%(py2)s = %(py0)s.document_id
} == %(py6)s
{%(py6)s = %(py4)s.document_id
})r&   r.   Úpy4Úpy6úassert %(py8)sÚpy8)Ú
write_textÚregister_fileÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚdocument_idÚstatusÚget_document)r   r   r   Ú	file_pathr-   r$   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6Ú@py_assert4Ú@py_assert3Ú@py_format8r0   Ú@py_assert5Ú@py_format7Ú@py_format9s                    r   Ú%test_memory_service_file_registrationrO   7   sÓ  € ð ˜?Ñ*€IØ×Ñ˜¨wÐÔ7ð '×4Ñ4°YÓ?Ñ€HˆgØÐˆ7�dˆ?××Õˆ7�d×××××Ñˆ7××Óˆ7××Ô�d××××××ÑØÐˆ8˜4Ð××Õˆ8˜4×××××Ñˆ8××Óˆ8××Ô˜4××××××ÑØ×ÑÐ+ tÐ+Ð tÐ+×+×+Õ+Ð t×+×+×+×+×+Ñ+ˆ8×+×+Ó+ˆ8×+×+Ô+Ð×+×+Ò+ t×+×+×+×+×+×+Ó+Ø�?‰?Ð& $Ð&ˆ? $Ð&×&×&Õ&ˆ? $×&×&×&×&×&Ñ&ˆ8×&×&Ó&ˆ8×&×&Ô&ˆ?×&×&Ò& $×&×&×&×&×&×&Ó&ð ×+Ñ+¨H×,@Ñ,@ÓA€IØ Ð ˆ9˜DÐ × × Õ ˆ9˜D× × × × × Ñ ˆ9× × Ó ˆ9× × Ô ˜D× × × × × × Ñ Ø× Ñ Ð8 H×$8Ñ$8Ð8Ð Ð$8Ñ8×8×8Õ8Ð Ð$8×8×8×8×8×8Ñ8ˆ9×8×8Ó8ˆ9×8×8Ô8Ð ×8×8×8×8×8Ð8 H×8×8Ó8 H×8×8Ô8Ð$8×8×8×8×8×8×8Ô8r   c                ó¸  — | j                  «       j                  dd«      st        j                  d«       |dz  }|j	                  |d¬«       | j                  |«       | j                  d«      }t        |«      }d}||kD  }|söt        j                  d	|fd
||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }dd|iz  }	t        t        j                  |	«      «      ‚dx}x}}d}
|
j                   }|d   d   }|j"                  } |«       } ||«      }d}|j                   }|j"                  } |«       } ||«      }||k(  }|�sat        j                  d|fd||f«      t        j                  |
«      t        j                  |«      t        j                  |«      t        j                  |«      t        j                  |«      t        j                  |«      t        j                  |«      t        j                  |«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}
x}x}x}x}x}x}x}x}x}x}}y)u@   Test: sÃ©mantickÃ© vyhledÃ¡vÃ¡nÃ­ vrÃ¡tÃ­ relevantnÃ­ vÃ½sledky.ÚhealthyFú(Embedding service (Ollama) not availabler   r   r   u   CyberBrain26 modulÃ¡rnÃ­ AIr   ©ú>©z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sÚlenÚresults©r&   Úpy1r'   r4   r5   r6   Nú Útextr1   )zò%(py11)s
{%(py11)s = %(py3)s
{%(py3)s = %(py1)s.join
}(%(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s.split
}()
})
} == %(py23)s
{%(py23)s = %(py16)s
{%(py16)s = %(py14)s.join
}(%(py21)s
{%(py21)s = %(py19)s
{%(py19)s = %(py17)s.split
}()
})
}r   )rY   r'   r)   r/   Úpy9Úpy11Úpy14Úpy16Úpy17Úpy19Úpy21Úpy23zassert %(py25)sÚpy25)Úhealth_checkÚgetÚpytestÚskipr7   r8   Úsemantic_searchrV   r9   r:   r;   r<   r=   r>   r?   r@   ÚjoinÚsplit)r   r   r   rD   rW   rE   rL   rI   rM   rN   Ú@py_assert0Ú@py_assert6Ú@py_assert8Ú@py_assert10Ú@py_assert13Ú@py_assert15Ú@py_assert18Ú@py_assert20Ú@py_assert22Ú@py_assert12Ú@py_format24Ú@py_format26s                         r   Ú#test_memory_service_semantic_searchrx   N   s4  € ð ×&Ñ&Ó(×,Ñ,¨Y¸Ô>Ü�‰Ð>Ô?ð ˜?Ñ*€IØ×Ñ˜¨wÐÔ7à× Ñ  Ô+ð ×,Ñ,Ð-JÓK€GÜˆw‹<Ð˜!Ðˆ<˜!Ñ××Õˆ<˜!×××××ÑŒ3××ÓŒ3×××××Òˆw××Óˆw××Ôˆ<××Ò˜!××××××Óð ÐPˆ3�8‰8ÐP�G˜A‘J˜vÑ&ÐPÐ&×,Ñ,ÐPÑ,Ó.ÐP‰8Ð.Ó/ÐP°3ÐP°3·8±8ÐP¸K×<MÑ<MÐPÑ<MÓ<OÐP±8Ð<OÓ3PÐPÐ/Ð3PÑP×P×PÖPÐ/Ð3P×P×PÓPˆ3×P×PÒPˆ8×P×PÒPÐ&×P×PÒPÐ,×P×PÒPÐ.×P×PÒPÐ/×P×PÒP°3×P×PÒP°8×P×P×P×P×PÐP¸K×P×PÓP¸K×P×PÔPÐ<M×P×PÒPÐ<O×P×PÒPÐ3P×P×P×P×P×P×P×P×PÖPr   c                óB  — |dz  }|j                  |d¬«       | j                  |«       | j                  t        t	        | j                  «       «      «      «      }d}||u}|s™t        j                  d|fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }d	d
|iz  }t        t        j                  |«      «      ‚dx}}| j                  «       }	t        |	«      }d}
||
kD  }|söt        j                  d|fd||
f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |	«      rt        j                  |	«      ndt        j                  |«      t        j                  |
«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}x}}
y)u"   Test: vyhledÃ¡vÃ¡nÃ­ podle topiku.r   r   r   Nr*   r,   r-   r%   r(   r)   r   rS   rU   rV   ÚtopicsrX   r5   r6   )r7   r8   rC   ÚnextÚiterÚ_all_document_idsr9   r:   r;   r<   r=   r>   r?   r@   Ú
get_topicsrV   )r   r   r   rD   r-   rE   rF   rG   rH   rz   rL   rI   rM   rN   s                 r   Ú#test_memory_service_search_by_topicr   g   sH  € ð ˜?Ñ*€IØ×Ñ˜¨wÐÔ7à× Ñ  Ô+ð ×*Ñ*¬4´°^×5UÑ5UÓ5WÓ0XÓ+YÓZ€HØÐˆ8˜4Ð××Õˆ8˜4×××××Ñˆ8××Óˆ8××Ô˜4××××××Ñð ×&Ñ&Ó(€Fäˆv‹;Ð˜Ðˆ;˜‰?××Õˆ;˜×××××ÑŒ3××ÓŒ3×××××Òˆv××Óˆv××Ôˆ;××Ò˜××××××Ôr   c                ó¸  — | j                  «       }d}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚dx}}d	}||v }|s™t        j                  d|fd||f«      t        j                  |«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚dx}}y)
u(   Test: health_check vrÃ¡tÃ­ zdravÃ½ stav.Ú	embedding)Úin)z%(py1)s in %(py3)sÚhealth)rY   r'   r(   r)   NÚvector_store_count)	re   r9   r:   r>   r;   r<   r=   r?   r@   )r   rƒ   rl   rE   rG   rH   s         r   Ú test_memory_service_health_checkr…   |   sÉ   € ð ×(Ñ(Ó*€Fð Ð ˆ;˜&Ð × × Õ ˆ;˜&× × Ó ˆ;× × × × × Ð ˜&× × Ó ˜&× × × × × × Ó ØÐ)Ð 6Ð)×)×)Õ)Ð 6×)×)Ó)Ð×)×)×)×)×)Ð) 6×)×)Ó) 6×)×)×)×)×)×)Ô)r   c                óþ  — |dz  }|j                  |d¬«       |dz  }|j                  |d¬«       | j                  |«      \  }}d}||u }|s™t        j                  d|fd||f«      dt	        j
                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      d	œz  }	d
d|	iz  }
t        t        j                  |
«      «      ‚dx}}| j                  |«      \  }}y)u#   Test: detekce duplicitnÃ­ho obsahu.ztest_note1.txtr   r   ztest_note2.txtTr!   r#   Úcreated1r%   r(   r)   N)
r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   )r   r   r   Ú
file_path1Ú
file_path2Ú_doc1r‡   rE   rF   rG   rH   Ú_doc2Ú	_created2s                r   Ú'test_memory_service_duplicate_detectionr�   ‡   sÄ   € ð Ð,Ñ,€JØ×Ñ˜+°ÐÔ8àÐ,Ñ,€JØ×Ñ˜+°ÐÔ8ð %×2Ñ2°:Ó>�O€Eˆ8ØÐˆ8�tÐ××Õˆ8�t×××××Ñˆ8××Óˆ8××Ô�t××××××Ñà%×3Ñ3°JÓ?Ñ€E‰9r   c                ó8  — |dz  }|j                  |d¬«       | j                  |«       | j                  «       }| j                  «       }g }t	        |«      }d}||kD  }	|	}
|	st	        |«      }d}||kD  }|}
|
�st        j                  d|	fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      d	œz  }d
d|iz  }|j                  |«       |	sét        j                  dfdf«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }dd|iz  }|j                  |«       t        j                  |d«      i z  }dd|iz  }t        t        j                  |«      «      ‚dx}
x}x}x}	x}x}x}}y)z%Test: topic a tag navigation funguje.r   r   r   r   rS   )z/%(py5)s
{%(py5)s = %(py2)s(%(py3)s)
} > %(py8)srV   rz   )r.   r'   r)   r6   z%(py10)sÚpy10)z4%(py15)s
{%(py15)s = %(py12)s(%(py13)s)
} > %(py18)sÚtags)Úpy12Úpy13Úpy15Úpy18z%(py20)sÚpy20é   zassert %(py23)src   N)r7   r8   r~   Úget_tagsrV   r9   r:   r;   r<   r=   r>   ÚappendÚ_format_boolopr?   r@   )r   r   r   rD   rz   r�   rF   rI   Ú@py_assert7rm   rl   Ú@py_assert14Ú@py_assert17Ú@py_assert16rN   Ú@py_format11Ú@py_format19Ú@py_format21Ú@py_format22rv   s                       r   Ú#test_memory_service_topics_and_tagsr¢   œ   sx  € ð ˜?Ñ*€IØ×Ñ˜¨wÐÔ7à× Ñ  Ô+ð ×&Ñ&Ó(€FØ×"Ñ"Ó$€Dñ ,Œ3ˆv‹;Ð+˜Ð+ˆ;˜‰?Ô+œc $›iÐ+¨!Ð+˜i¨!™m×+×+×+Ð+ˆ;˜×+×+×+×+×+Ñ+Œ3×+×+Ó+Œ3×+×+×+×+×+Ò+ˆv×+×+Ó+ˆv×+×+Ô+ˆ;×+×+Ò+˜×+×+×+×+×+×+Õ+˜i¨!×+×+×+×+×+Ñ+œc×+×+Ó+œc×+×+×+×+×+Ò+ $×+×+Ó+ $×+×+Ô+˜i×+×+Ò+¨!×+×+×+×+×+×+×+×+×+×+×+×+×+×+r   c                óf  — |dz  }|j                  dd¬«       |dz  }|j                  dd¬«       |dz  }|j                  dd¬«       | j                  |«       | j                  |«       | j                  |«       | j                  «       j                  d	d
«      st	        j
                  d«       | j                  d«      }t        |«      }d}||k\  }|söt        j                  d|fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }	dd|	iz  }
t        t        j                  |
«      «      ‚dx}x}}| j!                  «       }t        |«      }d}||kD  }|söt        j                  d|fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }	dd|	iz  }
t        t        j                  |
«      «      ‚dx}x}}| j"                  j%                  «       }d}||k\  }|s™t        j                  d|fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}}y) u_   KomplexnÃ­ test celÃ©ho pipeline: soubor â†’ chunk â†’ embed â†’ store â†’ search â†’ retrieve.zdoc1_ai.txtu'   UmÄ›lÃ¡ inteligence a strojovÃ© uÄ�enÃ­r   r   zdoc2_security.txtu    BezpeÄ�nostnÃ­ protokoly a auditzdoc3_planning.txtu   PlÃ¡novÃ¡nÃ­ agentÅ¯ a workflowrQ   FrR   Úagentr–   )ú>=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)srV   rW   rX   r5   r6   Nr   rS   rU   rz   é   )z%(py0)s >= %(py3)sÚcountr%   r(   r)   )r7   r8   re   rf   rg   rh   ri   rV   r9   r:   r;   r<   r=   r>   r?   r@   r~   Úvector_storer§   )r   r   Úfile1Úfile2Úfile3rW   rE   rL   rI   rM   rN   rz   r§   rF   rG   rH   s                   r   Ú&test_end_to_end_pipeline_with_new_filer¬   ¯   sW  € ð �}Ñ$€EØ	×ÑÐ>ÈÐÔQàÐ*Ñ*€EØ	×ÑÐ7À'ÐÔJàÐ*Ñ*€EØ	×ÑÐ6ÀÐÔIð × Ñ  Ô'Ø× Ñ  Ô'Ø× Ñ  Ô'à×&Ñ&Ó(×,Ñ,¨Y¸Ô>Ü�‰Ð>Ô?à×,Ñ,¨WÓ5€GÜˆw‹<Ð˜1Ðˆ<˜1Ñ××Õˆ<˜1×××××ÑŒ3××ÓŒ3×××××Òˆw××Óˆw××Ôˆ<××Ò˜1××××××Óð ×&Ñ&Ó(€FÜˆv‹;Ð˜Ðˆ;˜‰?××Õˆ;˜×××××ÑŒ3××ÓŒ3×××××Òˆv××Óˆv××Ôˆ;××Ò˜××××××Óð ×'Ñ'×-Ñ-Ó/€EØÐˆ5�A‰:××Õˆ5�A×××××Ñˆ5××Óˆ5××Ô�A××××××Òr   c                ó
  — d}| j                  |dddddg¬«      \  }}d}||u }|s™t        j                  d|fd	||f«      d
t        j                  «       v st        j
                  |«      rt        j                  |«      nd
t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}}d}||u}|s™t        j                  d|fd||f«      dt        j                  «       v st        j
                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}}| j                  d«      }t        |«      }d}	||	kD  }
|
söt        j                  d|
fd||	f«      dt        j                  «       v st        j
                  t        «      rt        j                  t        «      nddt        j                  «       v st        j
                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |	«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}x}
}	| j                  |j                  «      }d}||u}|s™t        j                  d|fd||f«      dt        j                  «       v st        j
                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚dx}}|j                  }t        j                  }	 |	|«      }|j                   } |«       }||k(  }|�sst        j                  d|fd||f«      dt        j                  «       v st        j
                  |«      rt        j                  |«      ndt        j                  |«      dt        j                  «       v st        j
                  t        «      rt        j                  t        «      ndt        j                  |	«      dt        j                  «       v st        j
                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      t        j                  |«      d œz  }d!d"|iz  }t        t        j                  |«      «      ‚dx}x}x}	x}x}}y)#u+   Test: registrace Ä�istÃ©ho textu z pamÄ›ti.s   Test content for memory servicezmemory://testztest-memoryÚtestÚmemory)ÚcontentÚ
source_uriÚ	source_idÚtopicr�   Tr!   r#   r$   r%   r(   r)   Nr*   r,   r-   ztest contentr   rS   rU   rV   rW   rX   r5   r6   r0   r1   )zª%(py2)s
{%(py2)s = %(py0)s.content_sha256
} == %(py13)s
{%(py13)s = %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py6)s
{%(py6)s = %(py4)s.sha256
}(%(py7)s)
}.hexdigest
}()
}Úhashlibr°   )r&   r.   r3   r4   r/   r\   r]   r’   zassert %(py15)sr“   )Úregister_textr9   r:   r;   r<   r=   r>   r?   r@   ri   rV   rC   rA   Úcontent_sha256r´   Úsha256Ú	hexdigest)r   r°   r-   r$   rE   rF   rG   rH   rW   rL   rI   rM   rN   r0   rn   ro   ru   rJ   Ú@py_format14Ú@py_format16s                       r   Ú$test_memory_service_with_memory_textr»   Ò   sõ  € ð 1€GØ&×4Ñ4ØØ"ØØØ�hÐð 5ó Ñ€Hˆgð Ðˆ7�dˆ?××Õˆ7�d×××××Ñˆ7××Óˆ7××Ô�d××××××ÑØÐˆ8˜4Ð××Õˆ8˜4×××××Ñˆ8××Óˆ8××Ô˜4××××××Ñð ×,Ñ,¨^Ó<€GÜˆw‹<Ð˜!Ðˆ<˜!Ñ××Õˆ<˜!×××××ÑŒ3××ÓŒ3×××××Òˆw××Óˆw××Ôˆ<××Ò˜!××××××Óð ×+Ñ+¨H×,@Ñ,@ÓA€IØ Ð ˆ9˜DÐ × × Õ ˆ9˜D× × × × × Ñ ˆ9× × Ó ˆ9× × Ô ˜D× × × × × × Ñ Ø×#Ñ#ÐJ¤w§~¡~ÐJ¡~°gÓ'>ÐJÐ'>×'HÑ'HÐJÑ'HÓ'JÐJÐ#Ð'JÑJ×J×JÖJÐ#Ð'J×J×J×J×J×JÑJˆ9×J×JÓJˆ9×J×JÔJÐ#×J×J×J×J×JÐJ¤w×J×JÓJ¤w×J×JÔJ ~×J×J×J×J×JÐJ°g×J×JÓJ°g×J×JÔJÐ'>×J×JÒJÐ'H×J×JÒJÐ'J×J×J×J×J×J×J×JÒJr   Ú__main__z-v)r   r   Úreturnr   )r   r   r   r   r½   r   )r½   Ústr)r   r   r   r   r   r¾   r½   ÚNone)r   r   r½   r¿   )r   r   r   r   r½   r¿   )%Ú__doc__Ú
__future__r   Úbuiltinsr;   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter9   r´   Úpathlibr   rg   Ú$cyberbrain26.data_plane.sqlite_storer   Úcyberbrain26.knowledge_planer   Ú-cyberbrain26.knowledge_plane.embedding_configr   Ú!cyberbrain26.security_plane.auditr   Úfixturer   r   r   r   rO   rx   r   r…   r�   r¢   r¬   r»   Ú__name__ÚmainÚ__file__r
   r   r   ú<module>rÏ      sÕ  ðñõ
 #ç  „ ƒÝ ã å ?õõ JÝ 6ð ‡�ò*ó ð*ð
 ‡�ò%ó ð%ð
 ‡�ò	ó ð	ð ‡�òJó ðJð9Ø!ð9àð9ð ð9ð 
ó	9ð.QØ!ðQàðQð ðQð 
ó	Qð2Ø!ðàðð ðð 
ó	ð**Ø!ð*à	ó*ð@Ø!ð@àð@ð ð@ð 
ó	@ð*,Ø!ð,àð,ð ð,ð 
ó	,ð& Ø!ð àð ð 
ó ðFKØ!ðKà	óKð4 ˆzÒØ€F‡K�K�˜4Ð Õ!ð r   