Ë
    ‡ìjd  ã                  ó    — d 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	 dZ
 ed«      Zd	Zd
ZdZdd„Zdd„Zdd„Zdd„Zdd„Zddd„Zddd„Zy)uJ   CyberBrain26: konzervativnÃ­ automatickÃ© uklÃ¡dÃ¡nÃ­ dlouhodobÃ© pamÄ›ti.é    )ÚannotationsN)ÚUTCÚdatetime)ÚPath)ÚAnyiô  zdata/conversations)ÚpasswordÚhesloÚpasswdzapi keyÚapikeyÚapi_keyÚtokenÚsecretzbearer zprivate keyzssh-rsazsk-Úghp_zxoxb-)úzapamatuj siÚ	preferujiÚ	preferujuõ	   mÃ¡m rÃ¡dúmam radÚnechcizchci abyz	chci, abyõ   rozhodnutÃ­Ú
rozhodnutiõ
   nastavenÃ­Ú	nastaveniÚpravidloÚkonfiguraceÚprojektzport zcesta õ
   pouÅ¾Ã­vejÚpouzivej)zco zjak u   proÄ� zproc zkdy u	   mÅ¯Å¾eÅ¡ zmuzes u   umÃ­Å¡ zumis õ   udÄ›lej úudelej õ   napiÅ¡ únapis c                óh   — t        j                  dd| j                  «       «      j                  «       S )Nú\s+ú )ÚreÚsubÚstripÚcasefold)Útexts    ú>/home/oem/CyberBrain26-unified/src/cyberbrain26/memory/auto.pyÚ
_normalizer,   '   s$   € Ü�6‰6�&˜#˜tŸz™z›|Ó,×5Ñ5Ó7Ð7ó    c                óJ   ‡— t        | «      Št        ˆfd„t        D «       «      S )Nc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©N© )Ú.0ÚpatternÚlowereds     €r+   ú	<genexpr>z*contains_sensitive_data.<locals>.<genexpr>,   s   øè ø€ ÒD gˆw˜'Ô!ÑDùó   ƒ)r,   ÚanyÚSENSITIVE_PATTERNS©r*   r4   s    @r+   Úcontains_sensitive_datar:   *   s   ø€ Ü˜Ó€GÜÓDÔ1CÔDÓDÐDr-   c                óš   ‡— t        | «      Št        ˆfd„dD «       «      ryt        ˆfd„dD «       «      ryt        ˆfd„dD «       «      ry	y
)Nc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr0   r1   ©r2   Úwordr4   s     €r+   r5   z!candidate_kind.<locals>.<genexpr>0   s   øè ø€ Ò
d˜tˆ4�7Œ?Ñ
dùr6   )r   r   r   r   r   Ú
preferencec              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr0   r1   r=   s     €r+   r5   z!candidate_kind.<locals>.<genexpr>2   s   øè ø€ Ò
z˜tˆ4�7Œ?Ñ
zùr6   )r   r   r   r   r   r   Úproject_decisionc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr0   r1   r=   s     €r+   r5   z!candidate_kind.<locals>.<genexpr>4   s   øè ø€ Ò
N˜tˆ4�7Œ?Ñ
Nùr6   )r   r   r   ÚruleÚfact)r,   r7   r9   s    @r+   Úcandidate_kindrE   .   sF   ø€ Ü˜Ó€GÜ
Ó
dÐ'cÔ
dÔdØÜ
Ó
zÐ'yÔ
zÔzØ!Ü
Ó
NÐ'MÔ
NÔNØØr-   c                óÌ  ‡— t        j                  dd| j                  «       «      }|j                  «       Š|rt	        |«      t
        kD  ry t        |«      ry ‰j                  t        «      ry t        ˆfd„t        D «       «      sy ‰j                  d«      r |t	        d«      d  j                  d«      }|sy |j                  «       j                  d«      ry |t        |«      dœS )Nr$   r%   c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr0   r1   )r2   Úsignalr4   s     €r+   r5   z$extract_candidate.<locals>.<genexpr>B   s   øè ø€ Ò> Vˆv˜Ô Ñ>ùr6   r   z ,:-)r!   r"   r   r    )ÚcontentÚkind)r&   r'   r(   r)   ÚlenÚMAX_MEMORY_CHARSr:   Ú
startswithÚQUESTION_PREFIXESr7   ÚMEMORY_SIGNALSÚlstriprE   )Ú	user_textr*   r4   s     @r+   Úextract_candidaterR   8   sÂ   ø€ Ü�6‰6�&˜#˜yŸ™Ó0Ó1€DØ�m‰m‹o€Gá”3�t“9Ô/Ò/ØÜ˜tÔ$ØØ×ÑÔ+Ô,ØÜÓ>¬~Ô>Ô>Øà×Ñ˜.Ô)Ø”C˜Ó'Ð(Ð)×0Ñ0°Ó8ˆÙØð ‡}�}ƒ×!Ñ!Ð"NÔOØà¤^°DÓ%9Ñ:Ð:r-   c           	     ó¸   — 	 ddl m} t        | «      } |d¬«      D ]-  }t        t	        |j                  dd«      «      «      }||k(  sŒ- y y# t        $ r Y yw xY w)	Nr   )Úlist_memoryTÚactive)ÚstatusrI   Ú F)Úmemory_corerT   Ú	Exceptionr,   ÚstrÚget)rI   rT   ÚwantedÚitemÚexistings        r+   Úis_duplicater_   P   sh   € ðÝ+ô ˜Ó €FÙ 8Ô,ò ˆÜœc $§(¡(¨9°bÓ"9Ó:Ó;ˆØ�vÓÙðð øô ò áðús   ‚A Á	AÁAc                ó®   — t        | «      }|rt        |d   «      ry 	 ddlm}  ||d   |d   |d¬«      }|d   |d   |d   d   d	œS # t        $ r Y y w xY w)
NrI   r   )ÚrememberrJ   Úauto_candidate)rI   rJ   ÚsourceÚ
confidenceÚidÚmetadata)re   rI   rJ   )rR   r_   rX   ra   rY   )rQ   rc   Ú	candidatera   Úrecords        r+   Úremember_if_relevantri   ]   s„   € Ü! )Ó,€IÙœ Y¨yÑ%9Ô:ØðÝ(ñ Ø˜)Ñ$Ø�vÑØØ#ô	€Fð �T‰lØ˜)Ñ$Ø�zÑ" 6Ñ*ñð øô ò Ùðús   žA Á	AÁAc           
     óÐ  — dddddœ}t         j                  «       s|S t        t         j                  d«      «      d|  }|D �]  }|dxx   dz  cc<   	 ddl}|j                  |j                  d¬«      «      }|j                  d	«      r|d
xx   dz  cc<   ŒV|j                  dg «      D ]K  }|j                  d«      dk7  rŒt        t        |j                  dd«      «      d¬«      sŒ?|dxx   dz  cc<   ŒM t        j                  t        «      j                  «       |d	<   |j                  |j                  |dd¬«      d¬«       �Œ |S # t         $ r |dxx   dz  cc<   Y �Œ#w xY w)uO   JednorÃ¡zovÄ› projde dosud neimportovanÃ© JSON chaty; neuklÃ¡dÃ¡ celÃ© dialogy.r   )Ú
files_seenÚsavedÚskippedÚerrorsz*.jsonNrk   é   zutf-8)ÚencodingÚauto_memory_imported_atrm   ÚhistoryÚroleÚuserrI   rW   zwebapp-conversation-import)rc   rl   Fé   )Úensure_asciiÚindentrn   )ÚCONVERSATIONS_DIRÚexistsÚsortedÚglobÚjsonÚloadsÚ	read_textr[   ri   rZ   r   Únowr   Ú	isoformatÚ
write_textÚdumpsrY   )Úlimit_filesÚresultÚfilesÚpathr|   ÚdataÚmessages          r+   Ú import_unprocessed_conversationsr‰   r   si  € à¨°aÀ1ÑE€Fä×#Ñ#Ô%ØˆäÔ$×)Ñ)¨(Ó3Ó4°\°kÐB€EØó "ˆØˆ|Ó Ñ!Óð	"ÛØ—:‘:˜dŸn™n°g˜nÓ>Ó?ˆDð �x‰xÐ1Ô2Ø�yÓ! QÑ&Ó!ØàŸ8™8 I¨rÓ2ò )�Ø—;‘;˜vÓ&¨&Ò0ØÜ'Ü˜Ÿ™ I¨rÓ2Ó3Ø7öð ˜7“O qÑ(”Oð)ô /7¯l©l¼3Ó.?×.IÑ.IÓ.KˆDÐ*Ñ+Ø�O‰OØ—
‘
˜4¨e¸A�
Ó>Ø ð ö ð+"ð8 €Møô ò 	"Ø�8Ó Ñ!Öð	"ús!   ÁAEÂAEÃ(AEÅE%Å$E%)r*   rZ   ÚreturnrZ   )r*   rZ   rŠ   Úbool)rQ   rZ   rŠ   zdict[str, str] | None)rI   rZ   rŠ   r‹   )zwebapp-auto)rQ   rZ   rc   rZ   rŠ   zdict[str, Any] | None)é2   )rƒ   ÚintrŠ   zdict[str, int])Ú__doc__Ú
__future__r   r&   r   r   Úpathlibr   Útypingr   rL   rx   r8   rO   rN   r,   r:   rE   rR   r_   ri   r‰   r1   r-   r+   ú<module>r’      sd   ðÙ På "ã 	ß "Ý Ý àÐ ÙÐ-Ó.Ð ðÐ ð	€ðÐ ó8óEóó;ó0ôõ*$r-   