§
    ÄjD/  ã                   ó„  — d Z ddlZddlmc 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mZmZmZ ddlZddlmZ ddlmZ  ee
j        d¦  «        re
j                             dd¬	¦  «          ee
j        d¦  «        re
j                             dd¬	¦  «         d
ZdZdZdddddgddœdddg d¢ddœdddddgddœdddg d¢ddœddd d!d"gddœd#d$d%g d&¢ddœd'd$d(g d)¢ddœgZd7d+ed,eeef         d-ed.efd/„Z G d0„ d1¦  «        Z  G d2„ d3¦  «        Z!e"d4k    r,ddlZ e#d5¦  «         d6„ Z$ ej%         e$¦   «         ¦  «         dS dS )8a  DSCons ERP Mem0 Knowledge Base - Preservation & Concurrency Stress Test Suite.

Milestone 3 Challenger Verification:
1. Strict Zero-Wipe Check: Verify 100% preservation of all non-DSCons project memories
   - FreeExile ("FreeExile combat", "Feral NPC dialogue HUD", "Savage Infinite Atlas")
   - Developer Preferences ("developer preferred language", "preferred backend language")
   - VoLamWeb Rules ("VoLamWeb cloud budget", "0 VND Google Cloud")
2. Service Concurrency & Resilience Stress Testing against FastMCP Mem0 (http://127.0.0.1:8765/sse):
   - Rapid sequential queries (50 requests)
   - Concurrent burst queries (20 parallel sessions)
   - Sustained multi-worker query load
   - Adversarial boundary & error handling
   - Post-stress service health & zero-lock audit
é    N)ÚAnyÚDictÚList)ÚClientSession)Ú
sse_clientÚreconfigurezutf-8Úreplace)ÚencodingÚerrorszhttp://127.0.0.1:8765/sseÚ	developerg      à?ÚPRESERV_FE_1Ú	FreeExileúFreeExile combatÚ	freeexileÚcombatgš™™™™™á?)ÚidÚdomainÚqueryÚrequired_in_top1Ú	min_scoreÚPRESERV_FE_2úFeral NPC dialogue HUD)ÚferalÚdialogueÚhudÚPRESERV_FE_3úSavage Infinite AtlasÚatlasÚsavageÚPRESERV_DEV_1zDeveloper Preferencesúdeveloper preferred language)ÚlanguageÚpythonÚ
typescriptÚPRESERV_DEV_2úpreferred backend languageÚbackendr#   ÚPRESERV_VLW_1ÚVoLamWebúVoLamWeb cloud budget)Ú0ÚvndÚbudgetÚvolamÚPRESERV_VLW_2ú0 VND Google Cloud)r+   r,   Úcloudç      $@Ú	tool_nameÚ	argumentsÚtimeoutÚreturnc              ƒ   ó  K  — t          j        |¦  «        4 ƒd{V —† t          t          ¦  «        4 ƒd{V —†	 \  }}t	          ||¦  «        4 ƒd{V —†	 }|                     ¦   «         ƒ d{V —† |                     | |¬¦  «        ƒ d{V —†}|j        d         j        }	 t          j
        |¦  «        cddd¦  «        ƒd{V —† cddd¦  «        ƒd{V —† cddd¦  «        ƒd{V —† S # t          $ r> d|dœcY cddd¦  «        ƒd{V —† cddd¦  «        ƒd{V —† cddd¦  «        ƒd{V —† S w xY w# 1 ƒd{V —†swxY w Y   ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )z9Helper to execute an MCP tool call over SSE with timeout.N)r4   r   Úraw_response)ÚstatusÚraw_message)Úasyncior5   r   ÚMEM0_SSE_URLr   Ú
initializeÚ	call_toolÚcontentÚtextÚjsonÚloadsÚ	Exception)r3   r4   r5   ÚreadÚwriteÚsessionÚresÚraws           úBC:\Projects\DSCons\tests\test_mem0_preservation_and_concurrency.pyÚmcp_callrJ   Z   s÷  è è € åŒ˜wÑ'Ô'ð Fð Fð Fð Fð Fð Fð Fð Få•|Ñ$Ô$ð
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	FÙ(5¨¨uÝ˜$ Ñ&Ô&ð
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fà*1à×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø×)Ò)¨)¸yÐ)ÑIÔIÐIÐIÐIÐIÐIÐIˆCØ”+˜a”.Ô%ˆCðFÝ”z #‘”ð
	Fð 
	Fð 
	Fð 
	Fñ 
	Fô 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fñ 
	Fô 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	FðFð Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Fð Føõ ð Fð Fð FØ"0ÀÐEÐEÐEÐEð
	Fð 
	Fð 
	Fð 
	Fñ 
	Fô 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fñ 
	Fô 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	FðFð Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Fð FðFøøøð
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Føøøð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fñ 
	Fô 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Føøøð 
	Fð 
	Fð 
	Fð 
	FðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs‰   �E;¹EÁA
D4ÂC)Â2EÃE;Ã)D1	Ã8D4Ã9EÄE;Ä0D1	Ä1D4Ä4
D>Ä>EÅD>ÅEÅE;Å
E!	Å!E;Å$E!	Å%E;Å;
FÆFc                   óÀ   — e Zd ZdZej        j        d„ ¦   «         Zej        j        ej                             de	d„ e	D ¦   «         ¬¦  «        d„ ¦   «         ¦   «         Z
dS )ÚTestNonDSConsPreservationz)Adversarial Zero-Wipe Preservation Tests.c              ƒ   ó¶  K  — t          di ¦  «        ƒ d{V —†}|j        }d} ||¦  «        }d}||k    }|sÐt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }d
} ||¦  «        }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        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}}|                     d¦  «        }	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  }t          j
        d|	› �¦  «        dz   d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}
dS )z>Verify Mem0 service is online with exactly 476 total memories.Úmem0_statusNr9   Úonline©ú==©zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} == %(py9)s©Úpy0Úpy2Úpy4Úpy6Úpy9úassert %(py11)sÚpy11Úis_readyT©Úis©zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} is %(py9)sÚdeveloper_memories_countéÜ  )z%(py0)s == %(py3)sÚtotal©rT   Úpy3z=Expected 476 memories (449 preserved + 27 new DSCons), found ú
>assert %(py5)sÚpy5)rJ   ÚgetÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚ_format_assertmsg)Úselfr9   Ú@py_assert1Ú@py_assert3Ú@py_assert5Ú@py_assert8Ú@py_assert7Ú@py_format10Ú@py_format12ra   Ú@py_assert2Ú@py_format4Ú@py_format6s                rI   Ú#test_service_health_and_total_countz=TestNonDSConsPreservation.test_service_health_and_total_countm   sU  è è € õ   ¨rÑ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2ˆØŒzÐ/˜(Ð/ˆzˆz˜(Ñ#Ô#Ð/ xÐ/Ð# xÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð# xÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆvÑ/Ô/Ð/Õ/Ô/ˆvÑ/Ô/Ð/Ð/Õ/Ô/ˆzÑ/Ô/Õ/Ô/˜(Ñ/Ô/Õ/Ô/Ð#Ñ/Ô/Õ/Ô/ xÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØŒzÐ-˜*Ð-ˆzˆz˜*Ñ%Ô%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆvÑ-Ô-Ð-Õ-Ô-ˆvÑ-Ô-Ð-Ð-Õ-Ô-ˆzÑ-Ô-Õ-Ô-˜*Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø—
’
Ð5Ñ6Ô6ˆØÐdˆu˜Š|ÐdÐdÐdÕdÔdÐdÐdÐdÐdˆu˜ÐdÑdÔdÐdÕdÔdÑdÔdÐdÐdÕdÔdˆuÑdÔdÐdÕdÔdˆuÑdÔdÐdÐdÕdÔd˜ÑdÔdÐdÐdÑdÐdÕdÔdÐdÐ]bÐdÐdÑdÔdÐdÑdÐdÐdÐdÑdÐdÕdÕdÔdÐdÑdÔdÑdÔdÐdÐdÐdÐdÐdÐdÐdó    Útargetc                 ó   — g | ]
}|d          ‘ŒS )r   © )Ú.0Úts     rI   ú
<listcomp>z$TestNonDSConsPreservation.<listcomp>w   s   € ÐAhÐAhÐAhÈaÀ!ÀDÄ'ÐAhÐAhÐAhr|   )Úidsc           
   ƒ   óD
  ‡K  — t          d|d         t          ddœ¦  «        ƒ d{V —†}|                     di ¦  «                             dg ¦  «        }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  }t	          j
        d|d         › d�¦  «        dz   d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|d         }	|	                     dd¦  «                             ¦   «         Št          |	                     dd¦  «        ¦  «        }
|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  }t	          j
        d|d         › d|
d›d|d         › �¦  «        dz   d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}ˆfd„|d          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  }t	          j
        d|d         › d"|d          › d#|	                     d¦  «        › �¦  «        dz   d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|	                     d$¦  «        pi }t          |                     d%d¦  «        ¦  «                             ¦   «         }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  }t	          j
        d*|d         › d+�¦  «        dz   d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}dS ),zYVerify each non-DSCons target query returns preserved records with high similarity score.Úmem0_searchr   é   ©r   Úuser_idÚlimitNÚmemoriesÚresultsr   ©ú>©z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sÚlen©rT   Úpy1rc   rW   zQuery 'z' returned 0 resultsú
>assert %(py8)sÚpy8ÚmemoryÚ Úscoreç        r   )ú>=)z%(py0)s >= %(py3)sÚ
top1_scorerb   z' Top-1 score ú.4fz < rd   re   c                 ó   •— g | ]}|‰v ¯|‘Œ	S r   r   )r€   ÚkwÚ	top1_texts     €rI   r‚   zETestNonDSConsPreservation.test_preservation_query.<locals>.<listcomp>ˆ   s   ø€ ÐPÐPÐP˜BÀÀiÀÀ�RÀÀÀr|   r   Ú	found_kwsz$' Top-1 text did not contain any of z.
Top-1 text: ÚmetadataÚprojectÚdscons)ú!=)z%(py0)s != %(py3)sÚprojzNon-DSCons query 'z!' returned DSCons record in Top-1)rJ   ÚUSER_IDrf   r�   rg   rh   ri   rj   rk   rl   ro   rm   rn   ÚlowerÚfloatÚstr)rp   r}   rG   r‹   rx   rs   Ú@py_assert4Ú@py_format7Ú@py_format9Útop1r™   rq   ry   rz   rž   Úmetar£   r�   s                    @rI   Útest_preservation_queryz1TestNonDSConsPreservation.test_preservation_queryv   s¼  øè è € õ ˜]°f¸W´oÕRYÐdeÐ,fÐ,fÑgÔgÐgÐgÐgÐgÐgÐgˆØ—'’'˜* bÑ)Ô)×-Ò-¨i¸Ñ<Ô<ˆÝ�7‰|Œ|ÐP˜aÐPˆ|˜aÒÐPÐPÑPÕPÔPÐPÐPÐPÐPˆ|˜aÐPÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔP�sÑPÔPÐPÕPÔP�sÑPÔPÐPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔP�7ÑPÔPÐPÕPÔP�7ÑPÔPÐPÐPÕPÔPˆ|ÑPÔPÕPÔP˜aÑPÔPÐPÐPÑPÐPÕPÔPÐ!P¨6°'¬?Ð!PÐ!PÐ!PÑPÔPÐPÑPÐPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPÐPÐPà�qŒzˆØ—H’H˜X rÑ*Ô*×0Ò0Ñ2Ô2ˆ	Ý˜4Ÿ8š8 G¨SÑ1Ô1Ñ2Ô2ˆ
ð $ KÔ0ð 	
ˆzÐ0Ò0ð 	
ð 	
ð 	
õ 	
ìð	
ð 	
ð 	
ð 	
ˆzÐ0ð 	
ñ 	
ô 	
ð 	
õ 	
ä	ñ	
ô 	
ð 	
ð 	
õ 	
ìð ñ 	
ô 	
ð 	
õ 	
ä 	ð ñ 	
ô 	
ð 	
ð 	
õ 	
ä 	ð 1ñ 	
ô 	
ð 	
ð 	
ñ 	
ð 	
õ 	
ìð ^�f˜W”oÐ]Ð]°ZÐ]Ð]Ð]ÈÈ{ÔH[Ð]Ð]ñ	
ô 	
ð 	
ñ 	
ð 	
ð 	
ð 	
ñ 	
ð 	
õ 	
õ 	
ìð	
ñ 	
ô 	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 QÐPÐPÐP &Ð);Ô"<ÐPÑPÔPˆ	Ý�9‰~Œ~ð 	
 ð 	
ˆ~ Ò!ð 	
ð 	
ñ 	
õ 	
ìð	
ð 	
ð 	
ð 	
ˆ~ ð 	
ñ 	
ô 	
ð 	
õ 	
ô 
ñ	
ô 	
ð 	
ð 	
õ 	
ìõ ñ 	
ô 	
ð 	
õ 	
ô 
õ ñ 	
ô 	
ð 	
ð 	
ð 	
õ 	
ô 
ñ	
ô 	
ð 	
ð 	
õ 	
ìð ñ 	
ô 	
ð 	
õ 	
ô 
ð ñ 	
ô 	
ð 	
ð 	
õ 	
ô 
ð ñ 	
ô 	
õ 	
ô 
ð !"ñ 	
ô 	
ð 	
ð 	
ñ 	
ð 	
õ 	
ìð0�f˜W”oð 0ð 0È6ÐRdÔKeð 0ð 0ØŸ8š8 HÑ-Ô-ð0ð 0ñ	
ô 	
ð 	
ñ 	
ð 	
ð 	
ð 	
ñ 	
ð 	
õ 	
õ 	
ìð	
ñ 	
ô 	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð �xŠx˜
Ñ#Ô#Ð) rˆÝ�4—8’8˜I rÑ*Ô*Ñ+Ô+×1Ò1Ñ3Ô3ˆØÐhˆt�xÒÐhÐhÐhÕhÔhÐhÐhÐhÐhˆt�xÐhÑhÔhÐhÕhÔhÑhÔhÐhÐhÕhÔhˆtÑhÔhÐhÕhÔhˆtÑhÔhÐhÐhÕhÔh�xÑhÔhÐhÐhÑhÐhÕhÔhÐ!h°f¸W´oÐ!hÐ!hÐ!hÑhÔhÐhÑhÐhÐhÐhÑhÐhÕhÕhÔhÐhÑhÔhÑhÔhÐhÐhÐhÐhÐhÐhÐhr|   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚpytestÚmarkr;   r{   ÚparametrizeÚPRESERVATION_TARGETSr­   r   r|   rI   rL   rL   j   s–   € € € € € Ø3Ð3à„[Ôðeð eñ Ôðeð „[ÔØ„[×Ò˜XÐ';ÐAhÐAhÐSgÐAhÑAhÔAhÐÑiÔiðið iñ jÔiñ Ôðið ið ir|   rL   c                   óº   — e Zd ZdZej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Z	ej        j        d„ ¦   «         Z
dS )Ú#TestMem0ServiceConcurrencyAndStressz5FastMCP Mem0 Concurrency, Load, and Resilience Tests.c           
   ƒ   ó´  K  — g d¢dz  }g }g }t          |¦  «        D �]ô\  }}t          j        ¦   «         }	 t          d|t          ddœd¬¦  «        ƒ d{V —†}t          j        ¦   «         |z
  }|                     |¦  «         |                     di ¦  «                             d	g ¦  «        }	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  }t          j        d|› d|› d�¦  «        dz   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}
x}}�ŒÀ# t"          $ r)}|                     d|› d|› d|› �¦  «         Y d}~�Œîd}~ww xY w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  }t          j        dt          |¦  «        › d|› �¦  «        dz   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}
x}}t%          |¦  «        t          |¦  «        z  }t'          |¦  «        }t)          d|dz  d›d|dz  d›d�¦  «         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  }t          j        d%|d&›d'�¦  «        d(z   d)|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}
dS )*zYStress test: 30 rapid sequential queries to test connection teardown & latency stability.)
r   r   r   r!   r0   úDSCons ruleúfrontend themeúbackend architectureúAEC pricing normsúCAD takeoff geometryé   r…   r‡   ç      @©r5   NrŠ   r‹   r   rŒ   rŽ   r�   r�   zSequential query #z 'z' returned no resultsr’   r“   zSeq #z
' failed: rP   ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   zRapid sequential test had z	 errors: z$
[Rapid Sequential] 30 queries: avg=éè  ú.1fzms, max=zms, errors=0g      ð?)ú<)z%(py0)s < %(py3)sÚavg_latrb   zAverage latency too high: z.2fÚsrd   re   )Ú	enumerateÚtimeÚperf_counterrJ   r¤   Úappendrf   r�   rg   rh   ri   rj   rk   rl   ro   rm   rn   rC   ÚsumÚmaxÚprint)rp   ÚqueriesÚ	latenciesr   ÚidxÚqÚt0rG   Úelapsedr‹   rx   rs   r¨   r©   rª   ÚerÅ   Úmax_latrq   ry   rz   s                        rI   Útest_rapid_sequential_querieszATestMem0ServiceConcurrencyAndStress.test_rapid_sequential_queries—   sô  è è € ð
ð 
ð 
ð ñˆð ˆ	Øˆå Ñ(Ô(ð 		?ñ 		?‰FˆC�ÝÔ"Ñ$Ô$ˆBð?Ý$ ]¸aÍGÐ^_Ð4`Ð4`ÐjmÐnÑnÔnÐnÐnÐnÐnÐnÐn�ÝÔ+Ñ-Ô-°Ñ2�Ø× Ò  Ñ)Ô)Ð)ØŸ'š' *¨bÑ1Ô1×5Ò5°iÀÑDÔD�Ý˜7‘|”|Ð] aÐ]�| aÒ'Ð]Ð]Ñ]Õ]Ô]Ð]Ð]Ð]Ð]�| aÐ]Ñ]Ô]Ð]Õ]Ô]Ñ]Ô]Ð]Ð]Õ]Ô]•sÑ]Ô]Ð]Õ]Ô]•sÑ]Ô]Ð]Ð]Ð]Õ]Ô]Ñ]Ô]Ð]Ð]Õ]Ô]˜7Ñ]Ô]Ð]Õ]Ô]˜7Ñ]Ô]Ð]Ð]Õ]Ô]�|Ñ]Ô]Õ]Ô] aÑ]Ô]Ð]Ð]Ñ]Ð]Õ]Ô]Ð)]¸cÐ)]Ð)]ÀQÐ)]Ð)]Ð)]Ñ]Ô]Ð]Ñ]Ð]Ð]Ð]Ñ]Ð]Õ]Õ]Ô]Ð]Ñ]Ô]Ñ]Ô]Ð]Ð]Ð]Ð]Ð]Ð]Ð]Ñ]øÝð ?ð ?ð ?Ø—’Ð= cÐ=Ð=¨QÐ=Ð=¸!Ð=Ð=Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ñ>øøøøð?øøøõ �6‰{Œ{Ð\˜aÐ\ˆ{˜aÒÐ\Ð\Ñ\Õ\Ô\Ð\Ð\Ð\Ð\ˆ{˜aÐ\Ñ\Ô\Ð\Õ\Ô\Ñ\Ô\Ð\Ð\Õ\Ô\�sÑ\Ô\Ð\Õ\Ô\�sÑ\Ô\Ð\Ð\Ð\Õ\Ô\Ñ\Ô\Ð\Ð\Õ\Ô\�6Ñ\Ô\Ð\Õ\Ô\�6Ñ\Ô\Ð\Ð\Õ\Ô\ˆ{Ñ\Ô\Õ\Ô\˜aÑ\Ô\Ð\Ð\Ñ\Ð\Õ\Ô\Ð!\½cÀ&¹k¼kÐ!\Ð!\ÐTZÐ!\Ð!\Ñ\Ô\Ð\Ñ\Ð\Ð\Ð\Ñ\Ð\Õ\Õ\Ô\Ð\Ñ\Ô\Ñ\Ô\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ý�i‘.”.¥3 y¡>¤>Ñ1ˆÝ�i‘.”.ˆÝÐn°g¸d±lÐnÐnÐnÐPWÐX\ÑP\ÐnÐnÐnÐnÑoÔoÐoØÐIˆw˜Š}ÐIÐIÐIÕIÔIÐIÐIÐIÐIˆw˜ÐIÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔIˆwÑIÔIÐIÕIÔIˆwÑIÔIÐIÐIÕIÔI˜ÑIÔIÐIÐIÑIÐIÕIÔIÐI¸7ÐIÐIÐIÐIÑIÔIÐIÑIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIs   ·F$GÇ
HÇ'HÈHc              ƒ   ó   ‡K  — g d¢}d„ Št          j        ¦   «         }t          j        ˆfd„|D ¦   «         ddiŽƒ d{V —†}t          j        ¦   «         |z
  }d„ |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  }	t          j        dt	          |¦  «        › d|› �¦  «        dz   d|	iz  }
t          t          j        |
¦  «        ¦  «        ‚dx}x}}d„ |D ¦   «         }t          |¦  «        t	          |¦  «        z  }t          d|dz  d›d|dz  d›d�¦  «         |D ]¥}|d         }d}||k    }|s‹t          j        d|fd||f¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }t          j        d|d         › d�¦  «        dz   d |iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}x}}Œ¦dS )!zFStress test: 15 simultaneous concurrent client sessions querying Mem0.))r   r   )r   r   )r   r   )r!   Ú	Developer)r&   rØ   )r*   r)   )r0   r)   )r¹   ÚDSCons)rº   rÙ   )r»   rÙ   )r¼   rÙ   )r½   rÙ   )zdatabase precisionrÙ   )ztesting workflowrÙ   )zMCP tools protocolrÙ   c           
   “   óx  K  — | \  }}t          j        ¦   «         }t          d|t          ddœd¬¦  «        ƒ d {V —†}t          j        ¦   «         |z
  }|                     di ¦  «                             dg ¦  «        }|||t          |¦  «        |r)t          |d                              d	d
¦  «        ¦  «        nd
dœS )Nr…   r¾   r‡   r2   rÀ   rŠ   r‹   r   r–   r—   )r   r   rÓ   Ú	hit_countr™   )rÈ   rÉ   rJ   r¤   rf   r�   r¦   )Ú
query_inforÑ   r   rÒ   rG   rÓ   r‹   s          rI   ÚworkerzQTestMem0ServiceConcurrencyAndStress.test_concurrent_burst_queries.<locals>.workerÐ   sÎ   è è € Ø"‰IˆAˆvÝÔ"Ñ$Ô$ˆBÝ  ¸!ÍÐZ[Ð0\Ð0\ÐfjÐkÑkÔkÐkÐkÐkÐkÐkÐkˆCÝÔ'Ñ)Ô)¨BÑ.ˆGØ—g’g˜j¨"Ñ-Ô-×1Ò1°)¸RÑ@Ô@ˆGàØ Ø"Ý  ™\œ\ØELÐU�e G¨A¤J§N¢N°7¸CÑ$@Ô$@ÑAÔAÐAÐRUðð ð r|   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S )Nr   )r€   ÚqirÝ   s     €rI   ú	<genexpr>zTTestMem0ServiceConcurrencyAndStress.test_concurrent_burst_queries.<locals>.<genexpr>ß   s+   øè è € Ð(LÐ(L¸¨¨°©¬Ð(LÐ(LÐ(LÐ(LÐ(LÐ(Lr|   Úreturn_exceptionsTNc                 ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r   )Ú
isinstancerC   ©r€   Úrs     rI   r‚   zUTestMem0ServiceConcurrencyAndStress.test_concurrent_burst_queries.<locals>.<listcomp>â   s'   € ÐEÐEÐE˜A­J°q½)Ñ,DÔ,DÐE�aÐEÐEÐEr|   r   rP   rÁ   r�   Ú
exceptionsr�   zConcurrent burst encountered z exceptions: r’   r“   c                 óH   — g | ]}t          |t          ¦  «        ¯|d          ‘Œ S )rÓ   )rã   Údicträ   s     rI   r‚   zUTestMem0ServiceConcurrencyAndStress.test_concurrent_burst_queries.<locals>.<listcomp>å   s+   € ÐJÐJÐJ aµjÀÅDÑ6IÔ6IÐJ�Q�y”\ÐJÐJÐJr|   z+
[Concurrent Burst] 15 parallel queries in rÂ   rÃ   zms (avg=úms)rÛ   rŒ   )z%(py1)s > %(py4)s)r‘   rV   zZero hits for 'r   z' under concurrent burstz
>assert %(py6)srW   )rÈ   rÉ   r;   Úgatherr�   rg   rh   ri   rj   rk   rl   ro   rm   rn   rË   rÍ   )rp   Úburst_queriesÚt_startr‹   Ú
total_timeræ   rx   rs   r¨   r©   rª   rÏ   rÅ   rå   Ú@py_assert0rr   Ú@py_format5rÝ   s                    @rI   Útest_concurrent_burst_querieszATestMem0ServiceConcurrencyAndStress.test_concurrent_burst_queries»   s  øè è € ð
ð 
ð 
ˆð$	ð 	ð 	õ Ô#Ñ%Ô%ˆÝœÐ(LÐ(LÐ(LÐ(L¸mÐ(LÑ(LÔ(LÐeÐ`dÐeÐeÐeÐeÐeÐeÐeÐeˆÝÔ&Ñ(Ô(¨7Ñ2ˆ
àEÐE ÐEÑEÔEˆ
Ý�:‰ŒÐo !Ðoˆ !Ò#ÐoÐoÑoÕoÔoÐoÐoÐoÐoˆ !ÐoÑoÔoÐoÕoÔoÑoÔoÐoÐoÕoÔo�sÑoÔoÐoÕoÔo�sÑoÔoÐoÐoÐoÕoÔoÑoÔoÐoÐoÕoÔo�:ÑoÔoÐoÕoÔo�:ÑoÔoÐoÐoÕoÔoˆÑoÔoÕoÔo !ÑoÔoÐoÐoÑoÐoÕoÔoÐ%oÅSÈÁ_Ä_Ð%oÐ%oÐcmÐ%oÐ%oÑoÔoÐoÑoÐoÐoÐoÑoÐoÕoÕoÔoÐoÑoÔoÑoÔoÐoÐoÐoÐoÐoÐoÐoàJÐJ¨7ÐJÑJÔJˆ	Ý�i‘.”.¥3 y¡>¤>Ñ1ˆÝÐo¸ZÈ¹_ÐoÐoÐoÐZaÐbfÑZfÐoÐoÐoÐoÑpÔpÐpØð 	^ð 	^ˆAØ�[”>Ð] AÐ]�> AÒ%Ð]Ð]Ð]Õ]Ô]Ð]Ð]Ð]Ð]�> AÐ]Ñ]Ô]Õ]Ô]�>Ñ]Ô]Õ]Ô] AÑ]Ô]Ð]Ð]Ñ]Ð]Õ]Ô]Ð']¸¸7¼Ð']Ð']Ð']Ñ]Ô]Ð]Ñ]Ð]Ð]Ð]Ñ]Ð]Õ]Õ]Ô]Ð]Ñ]Ô]Ñ]Ô]Ð]Ð]Ð]Ð]Ð]Ð]Ð]Ð]ð	^ð 	^r|   c           
   ƒ   óˆ  K  — ddt           ddœdœddt           ddœdœdd	t           ddœdœd
dt           ddœdœddt           ddœdœddt           ddœdœg}|D ]ì}	 t          d|d         d¬¦  «        ƒ d{V —†}d|v pd|v pd|v }|s†t          j        d|d         › d|› �¦  «        dz   ddt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndiz  }t          t          j	        |¦  «        ¦  «        ‚Œ¶# t          $ r*}t          j        d|d         › d |› �¦  «         Y d}~Œåd}~ww xY wdS )!zLAdversarial stress: edge cases, empty query, long query, special characters.Úempty_stringr•   r†   r‡   )ÚnameÚargsÚwhitespace_onlyz   
	  Úvery_long_stringÁÐ  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAÚunicode_emojis_symbolsu+   ðŸ”¥ âš¡ ðŸ’Ž âš”ï¸� ðŸ›¡ï¸� ðŸ�‰ ðŸ�° ðŸš€Úsql_injection_attemptz$' OR '1'='1' -- DROP TABLE memories;Ú
high_limitrÙ   é2   r…   rô   r¿   rÀ   NrŠ   r9   r:   z%Invalid response structure for case 'ró   z': z
>assert %(py0)srT   Úis_validzBoundary test 'z' caused crash or socket drop: )r¤   rJ   rg   ro   ri   rj   rk   rl   rm   rn   rC   r²   Úfail)rp   Ú
test_casesÚtcrG   rü   Ú@py_format1rÔ   s          rI   Ú*test_boundary_and_resilient_error_handlingzNTestMem0ServiceConcurrencyAndStress.test_boundary_and_resilient_error_handlingë   s  è è € ð $°rÅgÐXYÐ-ZÐ-ZÐ[Ð[Ø&¸+ÕRYÐdeÐ0fÐ0fÐgÐgØ'¸:ÕRYÐdeÐ1fÐ1fÐgÐgØ-ÐAnõ  |Cð  NOð  8Pð  8Pð  Qð  QØ,Ð@fÕszð  FGð  7Hð  7Hð  Ið  IØ!°XÍ'Ð\^Ð+_Ð+_Ð`Ð`ð
ˆ
ð ð 	^ð 	^ˆBð^Ý$ ]°B°v´JÈÐLÑLÔLÐLÐLÐLÐLÐLÐL�à&¨#Ð-Ð]°8¸s°?Ð]ÈÐY\ÐH\�ØÐ]Õ]Ô]Ð!]ÈÈFÌÐ!]Ð!]ÐX[Ð!]Ð!]Ñ]Ô]Ð]Ñ]Ð]Ð]Õ]Ô]Ñ]Ô]Ð]Ð]Õ]Ô]�xÑ]Ô]Ð]Õ]Ô]�xÑ]Ô]Ð]Ð]Ð]Ñ]Ð]Õ]Õ]Ô]Ð]Ñ]Ô]Ñ]Ô]Ð]Ð]øÝð ^ð ^ð ^Ý”Ð\¨b°¬jÐ\Ð\ÐYZÐ\Ð\Ñ]Ô]Ð]Ð]Ð]Ð]Ð]Ð]øøøøð^øøøð	^ð 	^s   ÁB2DÄ
D?Ä D:Ä:D?c              ƒ   ó  K  — t          di ¦  «        ƒ d{V —†}|j        }d} ||¦  «        }d}||k    }|sÐt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }d
} ||¦  «        }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        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }d} ||¦  «        }d}||k    }|sÐt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}}dS )zTVerify service remains fully operational and database unlocked after stress testing.rN   Nr9   rO   rP   rR   rS   rY   rZ   r[   Tr\   r^   r_   r`   )
rJ   rf   rg   rh   ri   rj   rk   rl   rm   rn   )	rp   r9   rq   rr   rs   rt   ru   rv   rw   s	            rI   Útest_post_stress_service_healthzCTestMem0ServiceConcurrencyAndStress.test_post_stress_service_health   s†  è è € õ   ¨rÑ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2ˆØŒzÐ/˜(Ð/ˆzˆz˜(Ñ#Ô#Ð/ xÐ/Ð# xÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð# xÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆvÑ/Ô/Ð/Õ/Ô/ˆvÑ/Ô/Ð/Ð/Õ/Ô/ˆzÑ/Ô/Õ/Ô/˜(Ñ/Ô/Õ/Ô/Ð#Ñ/Ô/Õ/Ô/ xÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØŒzÐ-˜*Ð-ˆzˆz˜*Ñ%Ô%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆvÑ-Ô-Ð-Õ-Ô-ˆvÑ-Ô-Ð-Ð-Õ-Ô-ˆzÑ-Ô-Õ-Ô-˜*Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØŒzÐ<Ð4Ð<ˆzˆzÐ4Ñ5Ô5Ð<¸Ð<Ð5¸Ò<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð5¸Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆvÑ<Ô<Ð<Õ<Ô<ˆvÑ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Õ<Ô<Ð4Ñ<Ô<Õ<Ô<Ð5Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r|   N)r®   r¯   r°   r±   r²   r³   r;   rÖ   rð   r  r  r   r|   rI   r·   r·   ”   s§   € € € € € Ø?Ð?à„[Ôð!Jð !Jñ Ôð!JðF „[Ôð-^ð -^ñ Ôð-^ð^ „[Ôð^ð ^ñ Ôð^ð( „[Ôð=ð =ñ Ôð=ð =ð =r|   r·   Ú__main__z@Executing standalone preservation and concurrency test runner...c               ƒ   óš  K  — t          d¦  «         t          di ¦  «        ƒ d {V —†} t          d| › �¦  «         t          d¦  «         t          D ]ú}t          j        ¦   «         }t          d|d         t
          ddœ¦  «        ƒ d {V —†}t          j        ¦   «         |z
  d	z  }|                     d
i ¦  «                             dg ¦  «        }|r|d         ni }|                     dd¦  «        }|                     dd¦  «        d d…         }t          d|d         › d|d         › d|d›d|d›d�	¦  «         t          d|› d�¦  «         Œûd S )Nz1. Checking Status...rN   zStatus: z$
2. Checking Preservation Targets...r…   r   r¾   r‡   rÂ   rŠ   r‹   r   r–   r—   r”   r•   éP   ú[r   z] 'z	': score=rš   z (rÃ   ré   z     Top-1 snippet: z...)rÍ   rJ   rµ   rÈ   rÉ   r¤   rf   )	Ústr}   rÒ   rG   ÚdurÚmemsr«   r–   r@   s	            rI   Úrun_diagnosticsr    sŠ  è è € ÝÐ%Ñ&Ô&Ð&Ý˜M¨2Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.ˆÝˆo˜ˆoˆoÑÔÐåÐ5Ñ6Ô6Ð6Ý*ð 		4ð 		4ˆFÝÔ"Ñ$Ô$ˆBÝ  ¸&À¼/ÕV]ÐhiÐ0jÐ0jÑkÔkÐkÐkÐkÐkÐkÐkˆCÝÔ$Ñ&Ô&¨Ñ+¨tÑ3ˆCØ—7’7˜: rÑ*Ô*×.Ò.¨y¸"Ñ=Ô=ˆDØ"Ð*�4˜”7�7¨ˆDØ—H’H˜W cÑ*Ô*ˆEØ—8’8˜H bÑ)Ô)¨#¨2¨#Ô.ˆDÝÐZ�f˜T”lÐZÐZ v¨g¤ÐZÐZÀÐZÐZÐZÈcÐZÐZÐZÐZÑ[Ô[Ð[ÝÐ2¨Ð2Ð2Ð2Ñ3Ô3Ð3Ð3ð		4ð 		4r|   )r2   )&r±   Úbuiltinsri   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterg   r;   rA   ÚosÚsysrÈ   Útypingr   r   r   r²   Úmcp.client.sessionr   Úmcp.client.sser   ÚhasattrÚstdoutr   Ústderrr<   r¤   ÚMIN_SIMILARITY_SCORErµ   r§   r¦   rJ   rL   r·   r®   rÍ   r  Úrunr   r|   rI   ú<module>r     s  ððð ð € € € € € € € € € € € € €€€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %à
€7ˆ3Œ:�}Ñ%Ô%ð ?Ø„J×Ò G°IÐÑ>Ô>Ð>Ø
€7ˆ3Œ:�}Ñ%Ô%ð ?Ø„J×Ò G°IÐÑ>Ô>Ð>à*€Ø
€ØÐ ð
 ØØ#Ø(¨(Ð3Øðð ð ØØ)Ø8Ð8Ð8Øðð ð ØØ(Ø$ hÐ/Øðð ð Ø)Ø/Ø@Ð@Ð@Øðð ð Ø)Ø-Ø&¨Ð1Øðð ð ØØ(Ø;Ð;Ð;Øðð ð ØØ%Ø1Ð1Ð1Øðð ðW2Ð ðjFð F˜cð F¨d°3¸°8¬nð FÀuð FÐX[ð Fð Fð Fð Fð 'ið 'ið 'ið 'ið 'iñ 'iô 'ið 'iðTr=ð r=ð r=ð r=ð r=ñ r=ô r=ð r=ðj ˆzÒÐØ€N€N€NØ	€EÐ
LÑMÔMÐMð4ð 4ð 4ð" €G„K��Ñ!Ô!Ñ"Ô"Ð"Ð"Ð"ð+ Ðr|   