§
    >ºj)i  ã                  ó@  — 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m	Z	m
Z
 ddlmZ ddlmZmZmZmZmZmZ ddlmZmZmZmZ ddlmZ dd	lmZ  G d
„ deej        ¦  «        Ze	 G d„ d¦  «        ¦   «         Ze	 G d„ d¦  «        ¦   «         Z  G d„ d¦  «        Z!dS )uô  AutoPOE2 - Zero-Day Invariant Gate & Post-Patch Maintenance Orchestrator.
===========================================================================
[MÃ” PHá»ŽNG THUáº¬T TOÃ�N HEADLESS - KHÃ”NG PHáº¢I LIVE GAME] (Rule 5 Compliance)

Domain: QA & Governance Sentinel (SÆ° Ä‘oÃ n 4)
Cá»•ng Nghiá»‡m Thu Zero-Day (Zero-Day Invariant Gate) gá»“m 4 chá»‘t cháº·n kiá»ƒm toÃ¡n:
- Gate 1: Client Process Health & Log Integrity (Client.txt load clean, 0 crash/fatal).
- Gate 2: Memory Drift Audit (INV-MEM-DYNAMIC-XYZ, PlayerFinder quÃ©t 16MB tÃ¬m XYZ sá»‘ng, tá»« chá»‘i static offset drift).
- Gate 3: UI Perception Invariants (INV-MAPDEVICE-VERIFY-UI, TRAVERSE OCR, Stash UI verification).
- Gate 4: Hot Path DOD Reflexes (INV-ZERO-HEAP-HOTPATH, 1086 C++ tests PASS).

Káº¿ hoáº¡ch phá»¥c há»“i tá»± Ä‘á»™ng khi game client má»Ÿ láº¡i (INV-CLIENT-CRASH-RECOVER):
- Quy trÃ¬nh 5 bÆ°á»›c khÃ´i phá»¥c tá»± Ä‘á»™ng an toÃ n vá»� Hideout vÃ  tÃ¡i kiá»ƒm toÃ¡n 4 Gates.

TuÃ¢n thá»§ nghiÃªm ngáº·t:
- Rule 4: Module hÃ³a tá»‘i Ä‘a, tráº§n file < 500 dÃ²ng.
- Rule 5: 100% dá»¯ liá»‡u thá»±c nghiá»‡m, khÃ´ng mock áº£o khi kiá»ƒm tra thá»±c táº¿.
- Rule 8: Master Invariant Matrix (INV-MEM-DYNAMIC-XYZ, INV-MAPDEVICE-VERIFY-UI, INV-ZERO-HEAP-HOTPATH, INV-CLIENT-CRASH-RECOVER).
é    )ÚannotationsN)Ú	dataclassÚfield)Údatetime)ÚAnyÚCallableÚDictÚListÚOptionalÚTuple)ÚERR_CORE_LOG_FATAL_EXCEPTIONÚERR_XYZ_FROZEN_AT_ORIGINÚERR_XYZ_OUT_OF_BOUNDSÚERR_XYZ_TELEPORT_ANOMALY)ÚPoe2ClientLauncher)Úis_poe2_runningc                  ó   — e Zd ZdZdZdZdZdS )Ú
GateStatusu;   Tráº¡ng thÃ¡i kiá»ƒm toÃ¡n cá»§a tá»«ng chá»‘t cháº·n Gate.ÚPASSEDÚWARNINGÚBLOCKEDN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   © ó    ú8C:\Projects\AutoPOE2\src\assistant_tool\zero_day_gate.pyr   r   *   s#   € € € € € ØEÐEØ€FØ€GØ€G€G€Gr   r   c                  óŒ   — e Zd ZU dZded<   ded<   ded<   ded<   ded<    ee¬	¦  «        Zd
ed<    ed„ ¬	¦  «        Zded<   dS )ÚGateCheckResultuH   Káº¿t quáº£ chi tiáº¿t cá»§a tá»«ng chá»‘t cháº·n trong Cá»•ng Zero-Day.ÚstrÚgate_idÚ	gate_namer   ÚstatusÚinvariant_codeÚmessage©Údefault_factoryúDict[str, Any]Údetailsc                 óL   — t          j        ¦   «                              ¦   «         S ©N)r   ÚnowÚ	isoformatr   r   r   ú<lambda>zGateCheckResult.<lambda>:   s   € µ8´<±>´>×3KÒ3KÑ3MÔ3M€ r   Ú	timestampN)	r   r   r   r   Ú__annotations__r   Údictr*   r0   r   r   r   r    r    1   s‹   € € € € € € àRÐRØ€L€L�LØ€N€N�NØÐÐÑØÐÐÑØ€L€L�LØ#˜e°DÐ9Ñ9Ô9€GÐ9Ð9Ð9Ñ9Ø�UÐ+MÐ+MÐNÑNÔN€IÐNÐNÐNÑNÐNÐNr   r    c                  ó–   — e Zd ZU dZded<   ded<   ded<   ded<    ee¬¦  «        Zd	ed
<   dZded<   dZ	ded<   dZ
ded<   dZded<   dS )ÚZeroDayAuditReportu?   BÃ¡o cÃ¡o tá»•ng há»£p toÃ n bá»™ Cá»•ng Nghiá»‡m Thu Zero-Day.ÚboolÚis_cleared_for_autonomousÚintÚtotal_gates_checkedÚgates_passedÚgates_blockedr'   zList[GateCheckResult]Úgate_resultsTÚrecovery_plan_readyç        ÚfloatÚaudit_duration_msÚautonomy_readiness_scoreÚ r!   ÚsummaryN)r   r   r   r   r1   r   Úlistr;   r<   r?   r@   rB   r   r   r   r4   r4   =   s­   € € € € € € àIÐIØ#Ð#Ð#Ñ#ØÐÐÑØÐÐÑØÐÐÑØ*/¨%ÀÐ*EÑ*EÔ*E€LÐEÐEÐEÑEØ $ÐÐ$Ð$Ð$Ñ$Ø"ÐÐ"Ð"Ð"Ñ"Ø&)ÐÐ)Ð)Ð)Ñ)Ø€GÐÐÐÑÐÐr   r4   c                  óÄ   — e Zd ZdZg d¢ZddgZg d¢Z	 	 	 dIdJd„Z	 	 	 dKdLd„Z	 	 	 	 	 	 	 	 	 dMdNd,„Z		 dOdPd1„Z
	 	 	 dQdRd7„Z	 	 	 	 	 	 	 	 dSdTd@„ZedUdB„¦   «         Z	 	 	 dKdVdH„ZdS )WÚZeroDayInvariantGateu`   Bá»™ tháº©m Ä‘á»‹nh Cá»•ng Nghiá»‡m Thu Zero-Day vÃ  Ä�iá»�u phá»‘i Phá»¥c há»“i Sau Báº£o TrÃ¬.)z?\[CRIT Client.*?\]\s*(?:Fatal|Crash|Exception|Access violation)zFatal ErrorzDX12 device removedÚVK_ERROR_DEVICE_LOSTzFailed to create vertex bufferzUnhandled exceptionzAccess violation readingÚOutOfMemoryExceptionzPSO creation failedÚCreateGraphicsPipelineStateÚD3D12CreateDeviceÚDXGI_ERROR_DEVICE_HUNGÚDXGI_ERROR_DEVICE_RESETzShader compilation failedzPipeline State ObjectzUnknown item classzFailed to preload UI assets)zINV-INPUT-ABS-MOUSEzINV-WASD-NO-BLIND-LMBzINV-KEY-NO-F-FOR-INTERACTzINV-KEY-NO-U-FOR-MAP-DEVICEzINV-WASD-MIN-DWELLzINV-F8-MUTES-BRAINúINV-MAPDEVICE-VERIFY-UIzINV-MAPDEVICE-RETRY-POLLzINV-BRAIN-CONFLICT-GATEKEEPERzINV-TERRAIN-ORIGINzINV-FSM-SINGLE-OWNERú	INV-CI-01úINV-MEM-DYNAMIC-XYZzINV-KEY-PORTALzINV-KEY-E-PULSEúINV-CLIENT-CRASH-RECOVERúINV-ACTUATOR-NON-BLOCKINGúINV-ZERO-HEAP-HOTPATHz#INV-FOCUS-INTERLOCK-HARDWARE-SAFETYzINV-WAYSTONE-ROW1-ONLYzINV-MOTION-INTEGRITYúJC:\Program Files (x86)\Grinding Gear Games\Path of Exile 2\logs\Client.txtú$build\bin\Release\AutoPOE2_Tests.exeúdebug_harness/incidentsÚclient_log_pathr!   Úcpp_tests_binaryÚincidents_dirc                óf   — || _         || _        || _        t          j        | j        d¬¦  «         d S )NT©Úexist_ok)rU   rV   rW   ÚosÚmakedirs)ÚselfrU   rV   rW   s       r   Ú__init__zZeroDayInvariantGate.__init__}   s:   € ð  /ˆÔØ 0ˆÔØ*ˆÔÝ
Œ�DÔ&°Ð6Ñ6Ô6Ð6Ð6Ð6r   NFÚ
client_pidúOptional[int]Úlog_pathúOptional[str]Úis_simulatedr5   Úreturnr    c           
     óœ  ‡— |p| j         }||g dœ}|r"t          ddt          j        dddg dœ¬¦  «        S t	          j        ¦   «         }|s#|€!t          ddt          j        d
dddi¬¦  «        S t          j         	                    |¦  «        �r¢	 t          j         
                    |¦  «        }t          |ddd¬¦  «        5 }|dk    rJ|                     |dz
  ¦  «         |                     ¦   «         }	t          |	¦  «        dk    r
|	dd	…         }	n|                     ¦   «         }	d	d	d	¦  «         n# 1 swxY w Y   |	dd	…         }	g }
|	D ]vŠt          ˆfd„| j        D ¦   «         ¦  «        rŒ#| j        D ]K}t%          j        |‰t$          j        ¦  «        r)|
                     ‰                     ¦   «         ¦  «          nŒLŒw|
rB|
d	d…         |d<   t          ddt          j        t.          dt          |
¦  «        › d�|¬¦  «        S n)# t0          $ r}t3          |¦  «        |d<   Y d	}~nd	}~ww xY wt          ddt          j        dd|¬¦  «        S )u¨   
        Gate 1: Client Process Health & Log Integrity.
        Kiá»ƒm tra tiáº¿n trÃ¬nh Client cÃ²n sá»‘ng vÃ  file Client.txt khÃ´ng chá»©a fatal exceptions.
        )Úpidra   Úfatal_matchesúGATE-1z%Client Process Health & Log Integrityz
INV-LOG-01uE   Gate 1 PASSED: MÃ´i trÆ°á»�ng mÃ´ phá»�ng Headless an toÃ n, 0 crash.T)Ú	simulatedrg   ©r"   r#   r$   r%   r&   r*   NrO   u/   Gate 1 BLOCKED: Game client POE2 khÃ´ng cháº¡y!Ú
is_runningFÚrúutf-8Úreplace)ÚencodingÚerrorsi   é   i8ÿÿÿc              3  óX   •K  — | ]$}t          j        |‰t           j        ¦  «        V — Œ%d S r,   )ÚreÚsearchÚ
IGNORECASE)Ú.0ÚnfpÚlines     €r   ú	<genexpr>zAZeroDayInvariantGate.check_gate1_client_health.<locals>.<genexpr>¾   s3   øè è € ÐbÐbÀ3�2œ9 S¨$µ´Ñ>Ô>ÐbÐbÐbÐbÐbÐbr   é   rg   u   Gate 1 BLOCKED: PhÃ¡t hiá»‡n u    lá»—i Fatal trong Client.txt!Ú
read_erroruM   Gate 1 PASSED: Client process healthy, Client.txt náº¡p sáº¡ch 0 fatal crash.)rU   r    r   r   r   Úis_client_runningr   r[   ÚpathÚisfileÚgetsizeÚopenÚseekÚ	readlinesÚlenÚanyÚNON_FATAL_PATTERNSÚFATAL_LOG_SIGNATURESrs   rt   ru   ÚappendÚstripr   Ú	Exceptionr!   )r]   r_   ra   rc   Ú
target_logr*   ÚrunningÚ	file_sizeÚfÚlinesÚmatched_fatalsÚsigÚerx   s                @r   Úcheck_gate1_client_healthz.ZeroDayInvariantGate.check_gate1_client_health‹   s  ø€ ð Ð5 Ô!5ˆ
Ø*4À*Ð_aÐ"bÐ"bˆàð 	Ý"Ø ØAÝ!Ô(Ø+Ø_Ø&*¸RÐ@Ð@ðñ ô ð õ %Ô6Ñ8Ô8ˆØð 	˜:Ð-Ý"Ø ØAÝ!Ô)Ø9ØIØ% uÐ-ðñ ô ð õ Œ7�>Š>˜*Ñ%Ô%ñ !	/ð /ÝœGŸOšO¨JÑ7Ô7�	Ý˜* c°GÀIÐNÑNÔNð .ÐRSØ  6Ò)Ð)ØŸš˜y¨6Ñ1Ñ2Ô2Ð2Ø !§¢¡¤˜Ý˜u™:œ:¨š>˜>Ø$)¨!¨"¨"¤I˜Eøà !§¢¡¤˜ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð ˜d˜e˜eœ�à,.�Ø!ð "ð "�DÝÐbÐbÐbÐbÈ$ÔJaÐbÑbÔbÑbÔbð !Ø Ø#Ô8ð "ð "˜Ýœ9 S¨$µ´Ñ>Ô>ð "Ø*×1Ò1°$·*²*±,´,Ñ?Ô?Ð?Ø!˜Eð"øð "ð 	Ø/=¸b¸q¸bÔ/A�G˜OÑ,Ý*Ø (Ø"IÝ)Ô1Ý'CØ sÅÀNÑ@SÔ@SÐ sÐ sÐ sØ 'ðñ ô ð ð	øõ ð /ð /ð /Ý(+¨A©¬�˜Ñ%Ð%Ð%Ð%Ð%Ð%øøøøð/øøøõ ØØ=ÝÔ$Ø'ØcØð
ñ 
ô 
ð 	
s>   Â2H Ã A%D1Ä%H Ä1D5Ä5H Ä8D5Ä9CH È
H,ÈH'È'H,rq   é   Ú0x7FF712345678Tç333333ó?Úpos_xr>   Úpos_yÚpos_zÚhpr7   Úmax_hpÚesÚplayer_addrÚis_ci_buildÚstatic_offset_detectedÚplayer_finder_16mb_activeÚ	is_movingÚmovement_deltac                ó€  ‡— |||f|||||	|
dœ}|	rt          ddt          j        dd|¬¦  «        S |r3t          |¦  «                             ¦   «                              ¦   «         nd}|dv rt          ddt          j        d	d
|¬¦  «        S |r2|dk    s|dk    r&t          ddt          j        dd|› d|› d�|¬¦  «        S t          d„ |||fD ¦   «         ¦  «        r$t          ddt          j        t          d|¬¦  «        S ddlŠt          ˆfd„|||fD ¦   «         ¦  «        r$t          ddt          j        t          d|¬¦  «        S d|cxk    rdk    r"n nd|cxk    rdk    rn nd|cxk    rdk    s0n t          ddt          j        t          d|› d|› d|› d�|¬¦  «        S |r]t          |¦  «        dk     rJt          |¦  «        dk     r7t          |¦  «        dk     r$t          ddt          j        t          d|¬¦  «        S |
st          ddt          j        dd|¬¦  «        S t          ddt          j        dd |¬¦  «        S )!u�  
        Gate 2: Authentic Memory & Memory Drift Audit (INV-MEM-DYNAMIC-XYZ, INV-CI-01, Rule 5).
        Tá»�a Ä‘á»™ XYZ báº¯t buá»™c Ä‘á»�c tá»« con trá»� Ä‘á»™ng PlayerFinder 16MB vi sai.
        Vitals (HP 1/1, ES tháº­t) báº¯t buá»™c khá»›p cáº¥u hÃ¬nh CI vÃ  Ä‘á»‹a chá»‰ nhÃ¢n váº­t sá»‘ng.
        Tá»« chá»‘i neo tÄ©nh `0x290` / `0x540` vÃ  cáº¥m 100% fake data / mock data (Rule 5).
        )Úposr™   rš   r›   rœ   Ústatic_offsetÚplayer_finder_16mbúGATE-2z,Authentic Memory Gate (Dynamic XYZ & Vitals)rN   uo   Gate 2 BLOCKED: PhÃ¡t hiá»‡n neo tÄ©nh (Static Offset Drift)! Báº¯t buá»™c kÃ­ch hoáº¡t PlayerFinder 16MB scan.rj   Ú0x0)r§   Ú0rA   z!INV-RECONNECT-NO-HARDCODED-VITALSum   Gate 2 BLOCKED: Con trá»� nhÃ¢n váº­t lÃ  0x0 (Unattached Memory)! Vi pháº¡m Rule 5 (Cáº¥m dá»¯ liá»‡u áº£o).rq   rM   uC   Gate 2 BLOCKED: NhÃ¢n váº­t CI báº¯t buá»™c HP 1/1 (thá»±c táº¿ HP=ú/z)!c              3  ó   K  — | ]}|d u V — Œ	d S r,   r   )rv   Úvs     r   ry   z@ZeroDayInvariantGate.check_gate2_memory_drift.<locals>.<genexpr>   s&   è è € Ð8Ð8˜Qˆq�DˆyÐ8Ð8Ð8Ð8Ð8Ð8r   u>   Gate 2 BLOCKED: Tá»�a Ä‘á»™ XYZ chá»©a giÃ¡ trá»‹ None / Null!r   Nc              3  ól   •K  — | ].}‰                      |¦  «        p‰                     |¦  «        V — Œ/d S r,   )ÚisnanÚisinf)rv   r«   Úmaths     €r   ry   z@ZeroDayInvariantGate.check_gate2_memory_drift.<locals>.<genexpr>+  s<   øè è € ÐMÐM°!ˆt�zŠz˜!‰}Œ}Ð- §
¢
¨1¡¤ÐMÐMÐMÐMÐMÐMr   u3   Gate 2 BLOCKED: Tá»�a Ä‘á»™ XYZ lÃ  NaN hoáº·c Inf!g     ˆÃÀg     ˆÃ@g     ˆ³Àg     ˆ³@u   Gate 2 BLOCKED: Tá»�a Ä‘á»™ (z, u    ) vÆ°á»£t ngÆ°á»¡ng báº£n Ä‘á»“!gü©ñÒMbP?u_   Gate 2 BLOCKED: Tá»�a Ä‘á»™ bá»‹ káº¹t táº¡i gá»‘c (0, 0, 0) khi nhÃ¢n váº­t Ä‘ang di chuyá»ƒn!uB   Gate 2 WARNING: PlayerFinder 16MB chÆ°a kÃ­ch hoáº¡t quÃ©t vi sai.ul   Gate 2 PASSED: Tá»�a Ä‘á»™ XYZ há»£p lá»‡ tá»« PlayerFinder 16MB, Vitals HP 1/1 & ES sá»‘ng, 100% authentic.)r    r   r   r!   rˆ   Úlowerr„   r   r¯   Úabsr   r   r   )r]   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r*   Ú
clean_addrr¯   s                  @r   Úcheck_gate2_memory_driftz-ZeroDayInvariantGate.check_gate2_memory_driftÞ   s`  ø€ ð, ˜5 %Ð(ØØØØ&Ø3Ø";ð#
ð #
ˆð "ð 	Ý"Ø ØHÝ!Ô)Ø4ð JØðñ ô ð ð :EÐO•S˜Ñ%Ô%×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5Ð5È%ˆ
ØÐ)Ð)Ð)Ý"Ø ØHÝ!Ô)ØBð HØðñ ô ð ð ð 	˜B !šG˜G v°¢{ {Ý"Ø ØHÝ!Ô)Ø*ØmÐ^`ÐmÐmÐciÐmÐmÐmØðñ ô ð õ Ð8Ð8 5¨%°Ð"7Ð8Ñ8Ô8Ñ8Ô8ð 	Ý"Ø ØHÝ!Ô)Ý4ØXØðñ ô ð ð 	ˆˆˆÝÐMÐMÐMÐM¸¸uÀeÐ7LÐMÑMÔMÑMÔMð 	Ý"Ø ØHÝ!Ô)Ý4ØMØðñ ô ð ð ˜EÐ,Ð,Ò,Ð, WÒ,Ð,Ð,Ð,Ð,°¸UÐ1MÐ1MÒ1MÐ1MÀgÒ1MÐ1MÐ1MÐ1MÐ1MÐRYÐ]bÐRlÐRlÒRlÐRlÐflÒRlÐRlÐRlÐRlÝ"Ø ØHÝ!Ô)Ý4Øq¸ÐqÐqÀÐqÐqÈ%ÐqÐqÐqØðñ ô ð ð ð 	�˜U™œ eÒ+Ð+µ°E±
´
¸UÒ0BÐ0BÅsÈ5ÁzÄzÐTYÒGYÐGYÝ"Ø ØHÝ!Ô)Ý7ØyØðñ ô ð ð )ð 	Ý"Ø ØHÝ!Ô)Ø4Ø\Øðñ ô ð õ ØØDÝÔ$Ø0ð CØð
ñ 
ô 
ð 	
r   Úhas_traverse_buttonÚhas_waystone_slotÚhas_verified_ui_signalÚstash_openedc                óœ   — ||||dœ}|s%|s#|s!|st          ddt          j        dd|¬¦  «        S t          ddt          j        dd|¬¦  «        S )u«   
        Gate 3: UI Perception Invariants (INV-MAPDEVICE-VERIFY-UI).
        Cáº¥m advance FSM náº¿u chÆ°a cÃ³ tÃ­n hiá»‡u UI má»Ÿ (OCR TRAVERSE / khay Waystone).
        )Útraverse_ocrÚwaystone_slotÚverified_signalr·   úGATE-3zUI Perception InvariantsrL   u   Gate 3 BLOCKED: Thiáº¿u xÃ¡c thá»±c quang há»�c UI (OCR TRAVERSE / khay Waystone / Stash)! KÃ­ch hoáº¡t Fail-closed backoff 3s.rj   u_   Gate 3 PASSED: Giao diá»‡n Map Device / Stash Ä‘Æ°á»£c kiá»ƒm chá»©ng quang há»�c thÃ nh cÃ´ng.)r    r   r   r   )r]   r´   rµ   r¶   r·   r*   s         r   Úcheck_gate3_ui_perceptionz.ZeroDayInvariantGate.check_gate3_ui_perceptionb  s›   € ð 0Ø.Ø5Ø(ð	#
ð #
ˆð &ð 	Ð.Að 	ÐJ[ð 	Ðdpð 	Ý"Ø Ø4Ý!Ô)Ø8ð ZØðñ ô ð õ ØØ0ÝÔ$Ø4ØuØð
ñ 
ô 
ð 	
r   é>  ç     €2@Úcpp_passed_countÚzero_heap_compliantÚactuator_latency_usc           	     ó:  — |||dœ}|dk     r#t          ddt          j        dd|› d�|¬¦  «        S |st          ddt          j        dd	|¬¦  «        S |d
k    r#t          ddt          j        dd|› d�|¬¦  «        S t          ddt          j        dd|› d�|¬¦  «        S )uó   
        Gate 4: Hot Path DOD Reflexes (INV-ZERO-HEAP-HOTPATH & 1086 C++ tests).
        Chu trÃ¬nh chiáº¿n Ä‘áº¥u 120Hz Data-Oriented Design (DOD) Zero Heap Allocation.
        Bá»™ test C++ pháº£i Ä‘áº¡t Ä‘á»§ 1086/1086 checks PASS.
        )Ú
cpp_passedÚ	zero_heaprÂ   r¾   úGATE-4z Hot Path DOD Reflexes & C++ GaterQ   u+   Gate 4 BLOCKED: Bá»™ test C++ chá»‰ Ä‘áº¡t z/1086 tests!rj   uW   Gate 4 BLOCKED: PhÃ¡t hiá»‡n dynamic heap allocation (new/malloc) trÃªn Hot Path 120Hz!ç      9@rP   u%   Gate 4 WARNING: Ä�á»™ trá»… actuator u&   us tiá»‡m cáº­n ngÆ°á»¡ng tráº§n 25us.zQGate 4 PASSED: 1086/1086 C++ tests PASS, 100% DOD Zero-Heap O(1) buffer, latency z
us < 25us.)r    r   r   r   r   )r]   rÀ   rÁ   rÂ   r*   s        r   Úcheck_gate4_hot_path_dodz-ZeroDayInvariantGate.check_gate4_hot_path_dod‹  s  € ð +Ø,Ø#6ð#
ð #
ˆð ˜dÒ"Ð"Ý"Ø Ø<Ý!Ô)Ø6ØdÐFVÐdÐdÐdØðñ ô ð ð #ð 	Ý"Ø Ø<Ý!Ô)Ø6ØqØðñ ô ð ð  $Ò&Ð&Ý"Ø Ø<Ý!Ô)Ø:Ø{Ð@SÐ{Ð{Ð{Øðñ ô ð õ ØØ8ÝÔ$Ø2ð HÐh{ð  Hð  Hð  HØð
ñ 
ô 
ð 	
r   ©g     Àb@g     @o@r=   Úpos_xyzúTuple[float, float, float]Úplayer_finder_activeÚhas_ui_signalÚcpp_tests_passedÚzero_heap_okr4   c	                ó4  — t          j         ¦   «         }	g }
|                      ||¬¦  «        }|
                     |¦  «         |                      |d         |d         |d         ||¬¦  «        }|
                     |¦  «         |                      |||¬¦  «        }|
                     |¦  «         |                      ||¬¦  «        }|
                     |¦  «         t          t          j         ¦   «         |	z
  dz  d¦  «        }t          d	„ |
D ¦   «         ¦  «        }t          d
„ |
D ¦   «         ¦  «        }|dk    }t          |t          |
¦  «        |||
|dd¬¦  «        }|  
                    |¦  «        }||_        d|rdnd› d|› d|› d|› d|› d�}||_        |S )uX   Thá»±c thi kiá»ƒm toÃ¡n toÃ n diá»‡n 4 Chá»‘t cháº·n cá»§a Cá»•ng Nghiá»‡m Thu Zero-Day.)r_   rc   r   rq   é   )r–   r—   r˜   rž   rŸ   )r´   rµ   r¶   )rÀ   rÁ   iè  c              3  óD   K  — | ]}|j         t          j        k    ¯d V — ŒdS ©rq   N)r$   r   r   ©rv   rl   s     r   ry   zCZeroDayInvariantGate.execute_full_zero_day_audit.<locals>.<genexpr>ö  s1   è è € ÐOÐO °´½ZÔ=NÒ1NÐ1N˜1Ð1NÐ1NÐ1NÐ1NÐOÐOr   c              3  óD   K  — | ]}|j         t          j        k    ¯d V — ŒdS rÓ   )r$   r   r   rÔ   s     r   ry   zCZeroDayInvariantGate.execute_full_zero_day_audit.<locals>.<genexpr>÷  s1   è è € ÐQÐQ !°!´(½jÔ>PÒ2PÐ2P˜AÐ2PÐ2PÐ2PÐ2PÐQÐQr   r=   rA   )r6   r8   r9   r:   r;   r?   r@   rB   zZero-Day Gate: u(   PASSED (Ä�á»¦ Ä�Iá»€U KIá»†N Tá»° HÃ€NH)zBLOCKED (FAIL-CLOSED)z | ARS: z% | Gates Passed: z/4 | Gates Blocked: z/4 | Audit Duration: Úms)Útimer’   r‡   r³   r½   rÈ   ÚroundÚsumr4   rƒ   Ú"calculate_autonomy_readiness_scorer@   rB   )r]   r_   rÊ   rž   rÌ   rÍ   rÎ   rÏ   rc   Út0ÚresultsÚg1Úg2Úg3Úg4Úduration_msÚpassed_countÚblocked_countÚclearedÚprelim_reportÚ	ars_scorerB   s                         r   Úexecute_full_zero_day_auditz0ZeroDayInvariantGate.execute_full_zero_day_auditÉ  s  € õ ŒY‰[Œ[ˆØ)+ˆð ×+Ò+°zÐP\Ð+Ñ]Ô]ˆØ�Š�rÑÔÐð ×*Ò*Ø˜!”*Ø˜!”*Ø˜!”*Ø#9Ø&:ð +ñ 
ô 
ˆð 	�Š�rÑÔÐð ×+Ò+Ø -Ø+Ø#0ð ,ñ 
ô 
ˆð
 	�Š�rÑÔÐð ×*Ò*Ø-Ø ,ð +ñ 
ô 
ˆð 	�Š�rÑÔÐå�TœY™[œ[¨2Ñ-°Ñ5°qÑ9Ô9ˆÝÐOÐO gÐOÑOÔOÑOÔOˆÝÐQÐQ wÐQÑQÔQÑQÔQˆØ 1Ò$ˆå*Ø&-Ý # G¡¤Ø%Ø'Ø Ø)Ø%(Øð	
ñ 	
ô 	
ˆð ×;Ò;¸MÑJÔJˆ	Ø1:ˆÔ.ð/ÈGÐpÐHÐHÐYpð /ð /Øð/ð /Ø1=ð/ð /ØS`ð/ð /à*ð/ð /ð /ð 	ð
 !(ˆÔØÐr   Úreportc           	     óX  — | r| j         dk    s| j        sdS dddddœ}d}| j        D ]X}|                     |j        d¦  «        }|j        t          j        k    r||z  }Œ8|j        t          j        k    r	||dz  z  }ŒV dS t          t          dt          d|¦  «        ¦  «        d	¦  «        S )
uª  
        TÃ­nh toÃ¡n Ä�á»‹nh lÆ°á»£ng Chá»‰ sá»‘ Sáºµn SÃ ng Tá»± HÃ nh (Autonomy Readiness Score - ARS %).
        CÃ´ng thá»©c Trá»�ng sá»‘ 4 Gates:
            ARS = w1*G1 + w2*G2 + w3*G3 + w4*G4
            - w1 = 20% (Gate 1: Client Process Health & D3D12/PSO Integrity)
            - w2 = 30% (Gate 2: Authentic Memory & Vitals HP 1/1)
            - w3 = 30% (Gate 3: Master Invariant Matrix & UI Perception)
            - w4 = 20% (Gate 4: Hot Path 120Hz DOD Reflexes & 1086 C++ tests)

        CÆ¡ cháº¿ KhÃ³a Cháº·n Tuyá»‡t Ä�á»‘i (Fail-Closed Hard Interlock):
        Náº¿u Báº¤T Ká»² Gate nÃ o bá»‹ BLOCKED -> ARS = 0.0% (Quyá»�n tá»± hÃ nh bá»‹ thu há»“i 100%).
        r   r=   g      4@g      >@)rh   r¦   r¼   rÆ   rÇ   g333333ë?g      Y@rq   )r:   r6   r;   Úgetr"   r$   r   r   r   rØ   ÚminÚmax)rè   ÚweightsÚtotal_scorerl   Úws        r   rÚ   z7ZeroDayInvariantGate.calculate_autonomy_readiness_score  sÕ   € ð ð 	˜Ô-°Ò1Ð1¸Ô9YÐ1Ø�3ð ØØØð	
ð 
ˆð ˆØÔ$ð 	ð 	ˆAØ—’˜AœI tÑ,Ô,ˆAØŒx�:Ô,Ò,Ð,Ø˜qÑ ��Ø”�ZÔ/Ò/Ð/Ø  D¡Ñ)��à�s�så•S˜¥ C¨Ñ 5Ô 5Ñ6Ô6¸Ñ:Ô:Ð:r   Úlauncher_funcúOptional[Callable[[], bool]]Úzone_verifier_funcúOptional[Callable[[], str]]r)   c                óò  — t          j        ¦   «                              ¦   «         dg dddœ}|d                              d¦  «         t          j        ¦   «                              d¦  «        }t
          j                             | j        d|› d	�¦  «        }t          j	        |d
¬¦  «         t          t
          j                             |d¦  «        dd¬¦  «        5 }|                     d|› d�¦  «         ddd¦  «         n# 1 swxY w Y   |d                              d¦  «         ||d<   |rd
}n"|r |¦   «         }nt          j        d¬¦  «        }|sd|d<   |S |d                              d¦  «         |r
 |¦   «         nd}	|	|d<   |d                              d¦  «         |                      |¬¦  «        }
|
|d<   |
j        sd|
j        › �|d<   |S |d                              d¦  «         d |d!<   |S )"u  
        Káº¿ hoáº¡ch phá»¥c há»“i 5 bÆ°á»›c tá»± Ä‘á»™ng khi game client má»Ÿ láº¡i sau báº£o trÃ¬:
        1. BÆ°á»›c 1: GiÃ¡m sÃ¡t tráº¡ng thÃ¡i tiáº¿n trÃ¬nh (Process Watchdog).
        2. BÆ°á»›c 2: Ä�Ã³ng gÃ³i Incident Dossier ghi nháº­n sá»± kiá»‡n má»Ÿ láº¡i.
        3. BÆ°á»›c 3: KÃ­ch hoáº¡t Poe2ClientLauncher má»Ÿ láº¡i client game an toÃ n.
        4. BÆ°á»›c 4: Chá»� chuyá»ƒn cáº£nh vá»� Hideout (Safe Zone Gating).
        5. BÆ°á»›c 5: Cháº¡y Cá»•ng Nghiá»‡m Thu Zero-Day 4 Gates xÃ¡c nháº­n 100% xanh.
        ÚFAILEDrA   N)r0   r$   Ústeps_completedÚerrorÚaudit_reportrö   ÚSTEP1_WATCHDOG_DETECTz%Y%m%d_%H%M%SÚ	INCIDENT_Ú_MAINTENANCE_RECOVERYTrY   zrecovery_manifest.jsonrï   rm   )ro   z5{"event": "POST_MAINTENANCE_RECOVERY", "timestamp": "z"}
ÚSTEP2_INCIDENT_DOSSIER_PACKAGEDÚincident_diré#   )Úwait_timeout_secu-   Khá»Ÿi cháº¡y láº¡i Client POE2 tháº¥t báº¡i!r÷   ÚSTEP3_CLIENT_LAUNCHEDzShoreline HideoutÚactive_zoneÚSTEP4_HIDEOUT_SAFE_VERIFIED)rc   rø   u#   Cá»•ng Zero-Day cháº·n tá»± hÃ nh: ÚSTEP5_ZERO_DAY_GATES_CLEAREDÚSUCCESSr$   )r   r-   r.   r‡   Ústrftimer[   r}   ÚjoinrW   r\   r€   Úwriter   Úrecover_client_if_crashedrç   r6   rB   )r]   rð   rò   rc   Úplan_reportÚts_nowÚincident_pathr�   Ú	launch_okÚ	zone_nameÚaudits              r   Ú&execute_post_maintenance_recovery_planz;ZeroDayInvariantGate.execute_post_maintenance_recovery_plan6  s‘  € õ "œ™œ×1Ò1Ñ3Ô3ØØ!ØØ ð'
ð '
ˆð 	Ð%Ô&×-Ò-Ð.EÑFÔFÐFõ ”‘”×(Ò(¨Ñ9Ô9ˆÝœŸš TÔ%7Ð9bÀVÐ9bÐ9bÐ9bÑcÔcˆÝ
Œ�M¨DÐ1Ñ1Ô1Ð1Ý•"”'—,’,˜}Ð.FÑGÔGÈÐW^Ð_Ñ_Ô_ð 	\ÐcdØ�GŠGÐZÈVÐZÐZÐZÑ[Ô[Ð[ð	\ð 	\ð 	\ñ 	\ô 	\ð 	\ð 	\ð 	\ð 	\ð 	\ð 	\øøøð 	\ð 	\ð 	\ð 	\àÐ%Ô&×-Ò-Ð.OÑPÔPÐPØ&3ˆ�NÑ#ð ð 	ZØˆIˆIØð 	ZØ%˜™œˆIˆIå*ÔDÐVXÐYÑYÔYˆIàð 	Ø#RˆK˜Ñ ØÐØÐ%Ô&×-Ò-Ð.EÑFÔFÐFð -?ÐWÐ&Ð&Ñ(Ô(Ð(ÐDWˆ	Ø%.ˆ�MÑ"ØÐ%Ô&×-Ò-Ð.KÑLÔLÐLð ×0Ò0¸lÐ0ÑKÔKˆØ&+ˆ�NÑ#ØÔ.ð 	Ø#XÈÌÐ#XÐ#XˆK˜Ñ ØÐàÐ%Ô&×-Ò-Ð.LÑMÔMÐMØ )ˆ�HÑØÐs   ÃDÄDÄ	D)rR   rS   rT   )rU   r!   rV   r!   rW   r!   )NNF)r_   r`   ra   rb   rc   r5   rd   r    )	rq   rq   r“   r”   TFTFr•   )r–   r>   r—   r>   r˜   r>   r™   r7   rš   r7   r›   r7   rœ   r!   r�   r5   rž   r5   rŸ   r5   r    r5   r¡   r>   rd   r    )F)
r´   r5   rµ   r5   r¶   r5   r·   r5   rd   r    )r¾   Tr¿   )rÀ   r7   rÁ   r5   rÂ   r>   rd   r    )NrÉ   FTTr¾   TF)r_   r`   rÊ   rË   rž   r5   rÌ   r5   rÍ   r5   rÎ   r7   rÏ   r5   rc   r5   rd   r4   )rè   r4   rd   r>   )rð   rñ   rò   ró   rc   r5   rd   r)   )r   r   r   r   r†   r…   ÚMASTER_INVARIANT_CODESr^   r’   r³   r½   rÈ   rç   ÚstaticmethodrÚ   r  r   r   r   rE   rE   K   s›  € € € € € ØjÐjðð ð Ðð& 	Ø&ðÐð
ð ð Ðð4  mØ GØ6ð		7ð 	7ð 	7ð 	7ð 	7ð  %)Ø"&Ø"ð	N
ð N
ð N
ð N
ð N
ðp ØØØ+Ø Ø',Ø*.ØØ #ð
ð 
ð 
ð 
ð 
ðR #ð$
ð $
ð $
ð $
ð $
ðV !%Ø$(Ø%)ð	9
ð 9
ð 9
ð 9
ð 9
ð@ %)Ø.AØ',Ø%)Ø"Ø $Ø!Ø"ðDð Dð Dð Dð DðL ð!;ð !;ð !;ñ „\ð!;ðP 7;Ø:>Ø"ð	=ð =ð =ð =ð =ð =ð =r   rE   )"r   Ú
__future__r   Úenumr[   rs   Ú
subprocessr×   Údataclassesr   r   r   Útypingr   r   r	   r
   r   r   Ú%src.agentic_engine.invariant_sentinelr   r   r   r   Ú"src.assistant_tool.client_launcherr   Úsrc.common.win32_processr   r!   ÚEnumr   r    r4   rE   r   r   r   ú<module>r     sê  ððð ð( #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð ð ð BÐ AÐ AÐ AÐ AÐ AØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ��d”iñ ô ð ð ðOð Oð Oð Oð Oñ Oô Oñ „ðOð ð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ „ð
ðhð hð hð hð hñ hô hð hð hð hr   