§
    Äj‚  ã                   ór  — 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
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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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"d"ddœd#d#d$dœd%d%ddœd&d&ddœd'd'ddœgZg d(¢Zd)eeef         d*efd+„Zej        j        d,„ ¦   «         Zed-k    r ej          e¦   «         ¦  «         dS dS ).a÷  Empirical Probe Suite for Milestone 3 Iteration 2 Challenger.

Author: teamwork_preview_challenger_m3_iter2_1
Mission: Milestone 3 Iteration 2 - Adversarial Query & Semantic Stress Testing
Verifies:
1. Elimination of collisions on "AEC pricing norms" and "database precision".
2. Ranking purity: Zero foreign records (FreeExile, VoLamWeb) rank above DSCons facts on DSCons domain queries.
3. Zero legacy remnants appear.
4. Top-1 scores, margins, and Recall@3 performance across Vietnamese and English.
é    N)ÚAnyÚDictÚList)ÚClientSession)Ú
sse_clientÚreconfigurezutf-8Úreplace)ÚencodingÚerrorszhttp://127.0.0.1:8765/ssezAEC pricing normszRULE-AEC-02)ÚnameÚqueryÚexpected_codezdatabase precisionzRULE-BACKEND-02zCAD takeoff geometryzRULE-AEC-07u   quy táº¯c DSConszRULE-ROOT-01u   giao diá»‡n dark slatezRULE-FRONTEND-01u   kiáº¿n trÃºc backendzRULE-BACKEND-01zDSCons rulezfrontend themezbackend architectureztesting workflowzRULE-WORKFLOW-01zMCP tools protocolzRULE-ROOT-04u   Ä‘á»‹nh má»©c cá»« larsen VL=0u   tá»· trá»�ng MR/TzRULE-AEC-03u   bÃ³c tÃ¡ch CAD TCVN3zdeep matrix task.mdzRULE-WORKFLOW-02zhexagonal backend architecturezfrontend color palettezdark slate ERP UI)u   cache 71 háº¡ng má»¥cu
   4.753 tá»·zapp/core/logging_configÚhitÚreturnc                 óf  — |                       d¦  «        pi }t          |                      dd¦  «        ¦  «                             ¦   «                              ¦   «         }t          |                       dd¦  «        ¦  «                             ¦   «         }|dk    p|                     d¦  «        pd|v S )NÚmetadataÚprojectÚ ÚmemoryÚdsconsz[DSConsu&   CÃ´ng ty TNHH XÃ¢y Dá»±ng Ä�á»‹nh SÆ¡n)ÚgetÚstrÚstripÚlowerÚ
startswith)r   ÚmetaÚprojÚmems       ú?C:\Projects\DSCons\tests\test_mem0_m3_iter2_challenger_probe.pyÚis_dscons_recordr    8   sš   € Ø�7Š7�:ÑÔÐ$ "€DÝˆt�xŠx˜	 2Ñ&Ô&Ñ'Ô'×-Ò-Ñ/Ô/×5Ò5Ñ7Ô7€DÝ
ˆc�gŠg�h Ñ#Ô#Ñ
$Ô
$×
*Ò
*Ñ
,Ô
,€CØ�8ÒÐk˜sŸ~š~¨iÑ8Ô8ÐkÐ<dÐhkÐ<kÐkó    c               ƒ   óV  K  — t          t          ¦  «        4 ƒd {V —†\  } }t          | |¦  «        4 ƒd {V —†}|                     ¦   «         ƒ d {V —† t	          j        |                     di ¦  «        ƒ d {V —†j        d         j        ¦  «        }|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}||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  }	t          j        d| 	                    d¦  «        › �¦  «        dz   d
|	iz  }
t!          t          j        |
¦  «        ¦  «        ‚d x}x}x}x}}t	          j        |                     ddddœ¦  «        ƒ d {V —†j        d         j        ¦  «        }| 	                    di ¦  «         	                    dg ¦  «        }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z   d|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}}g }|D ]t}| 	                    dd¦  «                             ¦   «         }t*          D ]B}|                     ¦   «         |v r*|                     | 	                    d ¦  «        |f¦  «         ŒCŒut'          |¦  «        }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z   d|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}}t.          D �]\}|d#         }d$D �]M}|dd%d&œ}|d'k    rd(|d)<   |                     d*|¬+¦  «        ƒ d {V —†}t	          j        |j        d         j        ¦  «        }| 	                    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/|› d0|› d1�¦  «        dz   d|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}}|d         }t1          | 	                    d2d3¦  «        ¦  «        }t3          |¦  «        }|sŸt          j        d/|› d4|› d5| 	                    dd¦  «        d d6…         › �¦  «        d7z   d8d9t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd9iz  } t!          t          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  }!t          j        d/|› d4|› d?|d@›dA�¦  «        dBz   dC|!iz  }"t!          t          j        |"¦  «        ¦  «        ‚d x}}�ŒO�Œ^	 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 )DNÚmem0_statusr   ÚstatusÚonline)ú==)zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} == %(py9)sÚst)Úpy0Úpy2Úpy4Úpy6Úpy9zassert %(py11)sÚpy11Údeveloper_memories_countiÜ  zExpected 476, got z
>assert %(py11)sÚmem0_get_allÚ	developeriè  )Úuser_idÚlimitÚmemoriesÚresultsc                 ó0   — g | ]}t          |¦  «        ¯|‘ŒS © )r    )Ú.0Úms     r   ú
<listcomp>zJtest_empirical_challenger_m3_iter2_adversarial_queries.<locals>.<listcomp>M   s&   € ÐFÐFÐF Õ2BÀ1Ñ2EÔ2EÐF˜1ÐFÐFÐFr!   é   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚdscons_mems)r(   Úpy1Úpy3r+   zExpected 27 DSCons facts, got z
>assert %(py8)sÚpy8r   r   ÚidÚlegacy_foundzFound legacy remnants: r   )ÚunscopedÚscopedé   )r   r1   r2   rC   ÚDSConsr   Úmem0_search)Ú	arguments)ú>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sÚhitszQuery 'z' returned no hits in z modeÚscoreg        z' in z( mode returned non-DSCons Top-1 record: éP   z
>assert %(py0)sr(   Útop1_dsconsgš™™™™™á?)ú>=)z%(py0)s >= %(py3)sÚ
top1_score)r(   r>   z mode scored z.4fz < 0.55z
>assert %(py5)sÚpy5)r   ÚMEM0_SSE_URLr   Ú
initializeÚjsonÚloadsÚ	call_toolÚcontentÚtextr   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚ_format_assertmsgr;   r   ÚFORBIDDEN_LEGACY_STRINGSÚappendÚPROBE_QUERIESÚfloatr    )#ÚrÚwÚsessionr'   Ú@py_assert1Ú@py_assert3Ú@py_assert5Ú@py_assert8Ú@py_assert7Ú@py_format10Ú@py_format12Úall_resÚall_memsr<   Ú@py_assert2Ú@py_assert4Ú@py_format7Ú@py_format9rA   r8   ÚtÚlegÚpqÚqÚmodeÚargsÚrespÚdatarI   Útop1rN   rL   Ú@py_format1Ú@py_format4Ú@py_format6s#                                      r   Ú6test_empirical_challenger_m3_iter2_adversarial_queriesr€   ?   s›  è è € å�,Ñ'Ô'ð *lð *lð *lð *lð *lð *lð *l©6¨A¨qÝ   AÑ&Ô&ð )	lð )	lð )	lð )	lð )	lð )	lð )	l¨'Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&õ ” 7×#4Ò#4°]ÀBÑ#GÔ#GÐGÐGÐGÐGÐGÐGÔPÐQRÔSÔXÑYÔYˆBØ”6Ð/˜(Ð/�6�6˜(Ñ#Ô#Ð/ xÐ/Ð# xÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð# xÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/�2Ñ/Ô/Ð/Õ/Ô/�2Ñ/Ô/Ð/Ð/Õ/Ô/�6Ñ/Ô/Õ/Ô/˜(Ñ/Ô/Õ/Ô/Ð#Ñ/Ô/Õ/Ô/ xÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø”6ÐwÐ4Ðw�6�6Ð4Ñ5Ô5Ðw¸ÐwÐ5¸Ò<ÐwÐwÐwÕwÔwÐwÐwÐwÐwÐ5¸ÐwÑwÔwÐwÕwÔwÑwÔwÐwÐwÕwÔw�2ÑwÔwÐwÕwÔw�2ÑwÔwÐwÐwÕwÔw�6ÑwÔwÕwÔwÐ4ÑwÔwÕwÔwÐ5ÑwÔwÕwÔw¸ÑwÔwÐwÐwÑwÐwÕwÔwÐ>wÐSU×SYÒSYÐZtÑSuÔSuÐ>wÐ>wÑwÔwÐwÑwÐwÐwÐwÑwÐwÕwÕwÔwÐwÑwÔwÑwÔwÐwÐwÐwÐwÐwÐwÐwÐwÐwÐwÐwõ ”j¨×(9Ò(9¸.ÐVaÐlpÐJqÐJqÑ(rÔ(rÐ"rÐ"rÐ"rÐ"rÐ"rÐ"rÔ!{Ð|}Ô!~ô  "Dñ  Eô  EˆGØ—{’{ :¨rÑ2Ô2×6Ò6°yÀ"ÑEÔEˆHØFÐF hÐFÑFÔFˆKÝ�{Ñ#Ô#Ð^ rÐ^Ð# rÒ)Ð^Ð^Ñ^Õ^Ô^Ð^Ð^Ð^Ð^Ð# rÐ^Ñ^Ô^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^•3Ñ^Ô^Ð^Õ^Ô^•3Ñ^Ô^Ð^Ð^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^�{Ñ^Ô^Ð^Õ^Ô^�{Ñ^Ô^Ð^Ð^Õ^Ô^Ð#Ñ^Ô^Õ^Ô^ rÑ^Ô^Ð^Ð^Ñ^Ð^Õ^Ô^Ð+^ÍCÐP[ÑL\ÔL\Ð+^Ð+^Ñ^Ô^Ð^Ñ^Ð^Ð^Ð^Ñ^Ð^Õ^Õ^Ô^Ð^Ñ^Ô^Ñ^Ô^Ð^Ð^Ð^Ð^Ð^Ð^Ð^ð ˆLØð @ð @�Ø—E’E˜( BÑ'Ô'×-Ò-Ñ/Ô/�Ý3ð @ð @�CØ—y’y‘{”{ aÐ'Ð'Ø$×+Ò+¨Q¯UªU°4©[¬[¸#Ð,>Ñ?Ô?Ð?øð@õ �|Ñ$Ô$ÐS¨ÐSÐ$¨Ò)ÐSÐSÑSÕSÔSÐSÐSÐSÐSÐ$¨ÐSÑSÔSÐSÕSÔSÑSÔSÐSÐSÕSÔS•3ÑSÔSÐSÕSÔS•3ÑSÔSÐSÐSÐSÕSÔSÑSÔSÐSÐSÕSÔS�|ÑSÔSÐSÕSÔS�|ÑSÔSÐSÐSÕSÔSÐ$ÑSÔSÕSÔS¨ÑSÔSÐSÐSÑSÐSÕSÔSÐ+SÀ\Ð+SÐ+SÑSÔSÐSÑSÐSÐSÐSÑSÐSÕSÕSÔSÐSÑSÔSÑSÔSÐSÐSÐSÐSÐSÐSÐSõ $ð lñ l�Ø�w”K�Ø2ð lñ l�DØ%&°;ÈÐKÐK�DØ˜xÒ'Ð'Ø*2˜˜Y™à!(×!2Ò!2°=ÈDÐ!2Ñ!QÔ!QÐQÐQÐQÐQÐQÐQ�DÝœ: d¤l°1¤oÔ&:Ñ;Ô;�DØŸ8š8 J°Ñ3Ô3×7Ò7¸	À2ÑFÔF�Då˜t™9œ9ÐX qÐX˜9 qš=ÐXÐXÑXÕXÔXÐXÐXÐXÐX˜9 qÐXÑXÔXÐXÕXÔXÑXÔXÐXÐXÕXÔX�3ÑXÔXÐXÕXÔX�3ÑXÔXÐXÐXÐXÕXÔXÑXÔXÐXÐXÕXÔX˜tÑXÔXÐXÕXÔX˜tÑXÔXÐXÐXÕXÔX˜9ÑXÔXÕXÔX qÑXÔXÐXÐXÑXÐXÕXÔXÐ*X°AÐ*XÐ*XÈTÐ*XÐ*XÐ*XÑXÔXÐXÑXÐXÐXÐXÑXÐXÕXÕXÔXÐXÑXÔXÑXÔXÐXÐXÐXÐXÐXÐXÐXØ œ7�DÝ!& t§x¢x°¸Ñ'=Ô'=Ñ!>Ô!>�JÝ"2°4Ñ"8Ô"8�Kà&ð  Fõ  Fô  Fð  )F°!ð  )Fð  )F¸$ð  )Fð  )FÐhl×hpÒhpÐqyÐ{}Ñh~Ôh~ð  @Cð  ACð  @Cô  iDð  )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Ø)-Ðk˜:¨Ò-ÐkÐkÐkÕkÔkÐkÐkÐkÐk˜:¨ÐkÑkÔkÐkÕkÔkÑkÔkÐkÐkÕkÔk˜:ÑkÔkÐkÕkÔk˜:ÑkÔkÐkÐkÕkÔk¨ÑkÔkÐkÐkÑkÐkÕkÔkÐ/k¸Ð/kÐ/kÀÐ/kÐ/kÐT^Ð/kÐ/kÐ/kÐ/kÑkÔkÐkÑkÐkÐkÐkÑkÐkÕkÕkÔkÐkÑkÔkÑkÔkÐkÐkÐkÐkÐkÑkñlðlð1)	lð )	lð )	lñ )	lô )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	lð )	løøøð )	lð )	lð )	lð )	lð*lð *lð *lñ *lô *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *lð *løøøð *lð *lð *lð *lð *lð *ls5   �f·d*e4å"få4
e>	å>fæe>	æfæ
f"æ%f"Ú__main__)!Ú__doc__ÚbuiltinsrY   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterW   ÚasynciorR   ÚsysÚtypingr   r   r   ÚpytestÚmcp.client.sessionr   Úmcp.client.sser   ÚhasattrÚstdoutr   ÚstderrrP   rb   r`   r   Úboolr    Úmarkr€   Ú__name__Úrunr6   r!   r   ú<module>r”      sª  ðð	ð 	ð € € € € € € € € € € € € €€€€Ø €€€Ø 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %à
€7ˆ3Œ:�}Ñ%Ô%ð ?Ø„J×Ò G°IÐÑ>Ô>Ð>Ø
€7ˆ3Œ:�}Ñ%Ô%ð ?Ø„J×Ò G°IÐÑ>Ô>Ð>à*€ð !Ð+>ÐQ^Ð_Ð_Ø!Ð,@ÐSdÐeÐeØ#Ð.DÐWdÐeÐeØÐ*<È~Ð^Ð^Ø%Ð0HÐ[mÐnÐnØ#Ð.DÐWhÐiÐiØ ]À^ÐTÐTØÐ(8ÐK]Ð^Ð^Ø#Ð.DÐWhÐiÐiØÐ*<ÐOaÐbÐbØ!Ð,@ÐSaÐbÐbØ-Ð8XÐkxÐyÐyØ Ð+>ÐQ^Ð_Ð_Ø#Ð.DÐWdÐeÐeØ"Ð-BÐUgÐhÐhØ-Ð8XÐk|Ð}Ð}Ø%Ð0HÐ[mÐnÐnØ Ð+>ÐQcÐdÐdð%€ð*ð ð Ð ðl˜$˜s C˜xœ.ð l¨Tð lð lð lð lð „Ôð+lð +lñ Ôð+lð\ ˆzÒÐØ€G„KÐFÐFÑHÔHÑIÔIÐIÐIÐIð Ðr!   