§
    Ñ=ºj2²  ã                  ó¼   — 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 ddl	m
Z
mZmZmZ ddlmZmZmZmZmZmZ  ej        d¦  «        Z G d„ d¦  «        ZdS )	ui  AutoPOE2 - Master Invariants Sentinel & Headless Mock Harness (SSoT 2026).
===========================================================================
TuÃ¢n thá»§ nghiÃªm ngáº·t:
- Rule 1: Senior Orchestrator Mindset & Two-Tier Hybrid Architecture (Doc 50).
- Rule 4: Module hÃ³a tá»‘i Ä‘a, tráº§n file < 500 dÃ²ng, háº¡t nhÃ¢n dÃ¹ng chung.
- Rule 4C: Triá»‡t tiÃªu sá»­a lá»—i triá»‡u chá»©ng (Root-Cause-First & Anti-Point-Fixing).
- Rule 5: Cá»•ng nghiá»‡m thu thá»±c nghiá»‡m (Empirical DoD) & Headless Mock Harness.
- Rule 8 / AGENTS.md Má»¥c 8: Ma tráº­n 19 Báº¥t biáº¿n Kiáº¿n trÃºc (Master Invariant Matrix).
é    )ÚannotationsN)Údatetime)ÚAnyÚDictÚListÚOptional)ÚMASTER_19_INVARIANTS_SPECSÚMASTER_20_INVARIANTS_SPECSÚInvariantAuditResultÚInvariantSpecÚInvariantStatusÚMasterInvariantsAuditReportÚMasterInvariantsSentinelc                  ó¸  — e Zd ZdZ	 	 d’d“d„Zd”d•d„Z	 	 	 	 d–d—d„Zd˜d™d„Zd˜dšd„Zd›dœd!„Z	d�džd%„Z
d”dŸd(„Zd d¡d-„Zd¢d£d/„Zd”d¤d2„Zd”d¥d5„Zd¦d§d;„Zd”d¨d>„Zd©dªdB„Zd«d¬dD„Zd˜d­dG„Z	 	 	 	 d®d¯dL„Zd°d±dP„Zd²d³dT„Z	 	 	 	 d®d¯dU„Z	 	 	 	 	 	 d´dµd`„ZeZ	 	 	 	 	 d¶d·dg„Z	 	 	 	 	 	 d¸d¹dq„Z	 	 	 	 	 dºd»dw„Z	 	 	 	 	 d¼d½d„Z	 d¾d¿dƒ„Z	 d¾d¿d„„Z 	 d¾d¿d…„Z!	 	 	 dÀdÁdŽ„Z"e#dÂd‘„¦   «         Z$dS )Ãr   uÇ   
    Bá»™ tháº©m tra Ma tráº­n 19 Báº¥t biáº¿n Kiáº¿n trÃºc vÃ  Tá»± Ä‘á»™ng Ä‘Ã³ng gÃ³i Incident Dossier.
    Cung cáº¥p Headless Mock Harness cháº¡y 100% User Mode, khÃ´ng cáº§n quyá»�n Admin.
    údebug_harness/incidentsú"debug_harness/LATEST_INCIDENT.jsonÚincidents_dirÚstrÚlatest_pointer_filec                óX   — || _         || _        t          j        | j         d¬¦  «         d S )NT©Úexist_ok)r   r   ÚosÚmakedirs)Úselfr   r   s      úEC:\Projects\AutoPOE2\src\agentic_engine\master_invariants_sentinel.pyÚ__init__z!MasterInvariantsSentinel.__init__'   s2   € ð
 +ˆÔØ#6ˆÔ Ý
Œ�DÔ&°Ð6Ñ6Ô6Ð6Ð6Ð6ó    TÚis_absoluteÚboolÚdelta_only_for_bezierÚreturnr   c           	     óâ   — t          j         ¦   «         }|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Néè  é   úINV-INPUT-ABS-MOUSEz#Absolute Mouse UI & Target Movementz7MapDeviceHandler, NpcInteractionHandler, LootControllerun   Táº¥t cáº£ click UI vÃ  target dÃ¹ng MoveMouseSmooth tuyá»‡t Ä‘á»‘i; delta chá»‰ dÃ¹ng cho BÃ©zier micro-stepsuA   PhÃ¡t hiá»‡n click UI dÃ¹ng tá»�a Ä‘á»™ tÆ°Æ¡ng Ä‘á»‘i sai lá»‡chz*100% Absolute UI Coords (0 relative click)©ÚcodeÚnameÚstatusÚmonitored_moduleÚevidenceÚmetric_valueÚduration_ms©ÚtimeÚroundr   r   ÚPASSEDÚBLOCKED)r   r   r!   Út0ÚpassedÚdurs         r   Úaudit_inv_input_abs_mousez2MasterInvariantsSentinel.audit_inv_input_abs_mouse3   s�   € ÝŒY‰[Œ[ˆØÐ6Ð!6ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø&Ø6Ø-3ÐP•?Ô)Ð)½Ô9PØVð JPð  Yð  Fð  Fð  VYØEØð
ñ 
ô 
ð 	
r   ç      )@NÚapproach_distÚfloatÚblind_lmb_preventedÚstash_approach_distúOptional[float]Úmap_device_approach_distc                óP  — t          j         ¦   «         }|�|n|}|�|n|}|dk    o|dk    o|dk    o|}t          t          j         ¦   «         |z
  dz  d¦  «        }	t          dd|rt          j        nt          j        d|rd|d›d	|d›d
�n
d|d›d|d›d�d|d›d|d›d�|	¬¦  «        S )Ng      2@r$   r%   úINV-WASD-NO-BLIND-LMBz"WASD Proximity Before Entity ClickzLOpenDevice, EnterPortal, LootController, StashOrchestrator, MapDeviceHandleru   WASD Ã¡p sÃ¡t cá»± ly Stash=ú.1fzu <= 18u, MapDevice=u=   u <= 18u trÆ°á»›c khi click LMB; cáº¥m click chÃ¢n (960, 540)u.   Vi pháº¡m: Click LMB khi cá»± ly > 18u (Stash=zu, Dev=u   u) hoáº·c click mÃ¹ LMBzStash: zu <= 18u | MapDevice: zu <= 18ur'   r/   )
r   r9   r;   r<   r>   r4   Ústash_dÚdev_dr5   r6   s
             r   Úaudit_inv_wasd_no_blind_lmbz4MasterInvariantsSentinel.audit_inv_wasd_no_blind_lmbA   s?  € õ ŒY‰[Œ[ˆØ)<Ð)HÐ%Ð%ÈmˆØ,DÐ,PÐ(Ð(ÐVcˆØ 4Ò'Ðj¨g¸ªoÐjÀEÈTÂMÐjÐWjˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø(Ø5Ø-3ÐP•?Ô)Ð)½Ô9PØkð ðGð  Y¨wð  Yð  Yð  YÐPUð  Yð  Yð  Yð  Yð  Yð  GÐPWð   Gð   Gð   GÐdið   Gð   Gð   Gð   GàY 7ÐYÐYÐYÀeÐYÐYÐYÐYØð
ñ 
ô 
ð 	
r   FÚf_key_sent_for_interactÚskill_8_assignedc           	     óä   — t          j         ¦   «         }| o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-KEY-NO-F-FOR-INTERACTzF Key Reserved For Skill 8zDQuestNavigator, NpcInteractionHandler, MapDeviceHandler, coordinatoru_   PhÃ­m F (0x46) Ä‘Æ°á»£c báº£o vá»‡ 100% cho Skill 8; tÆ°Æ¡ng tÃ¡c thá»±c thá»ƒ qua LMB verifieduF   Cáº¢NH BÃ�O: PhÃ¡t hiá»‡n gá»­i phÃ­m F Ä‘á»ƒ tÆ°Æ¡ng tÃ¡c NPC/Device!z!F Key Sent: 0 | Skill 8 Bound: OKr'   r/   )r   rE   rF   r4   r5   r6   s         r   Úaudit_inv_key_no_f_for_interactz8MasterInvariantsSentinel.audit_inv_key_no_f_for_interactZ   s�   € ÝŒY‰[Œ[ˆØ-Ð-ÐCÐ3CˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø,Ø-Ø-3ÐP•?Ô)Ð)½Ô9PØcð {Að  OÐvÐvð  GOØ<Øð
ñ 
ô 
ð 	
r   Úu_key_sent_at_hideoutÚdevice_opened_via_3d_lmbc           	     óä   — t          j         ¦   «         }| o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-KEY-NO-U-FOR-MAP-DEVICEzNo U Key At Hideout Map Devicez2autonomous_mapping_coordinator.py, TownQuestEngineua   Táº¡i Hideout: PhÃ­m U bá»‹ gatekeeper tá»« chá»‘i 100%; Map Device tÆ°Æ¡ng tÃ¡c qua bá»‡ Ä‘Ã¡ 3DuS   Vi pháº¡m: PhÃ¡t hiá»‡n phÃ­m U Ä‘Æ°á»£c báº¥m Ä‘á»ƒ má»Ÿ Map Device táº¡i Hideout!z(U Key At Hideout: 0 | 3D Interaction: OKr'   r/   )r   rJ   rK   r4   r5   r6   s         r   Ú!audit_inv_key_no_u_for_map_devicez:MasterInvariantsSentinel.audit_inv_key_no_u_for_map_deviceh   s�   € ÝŒY‰[Œ[ˆØ+Ð+ÐIÐ1IˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø.Ø1Ø-3ÐP•?Ô)Ð)½Ô9PØQð }Cð  ^ÐxÐxð  I^ØCØð
ñ 
ô 
ð 	
r   ç     àu@Údwell_msc           	     ó  — t          j         ¦   «         }|dk    }t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rd|d›d	�nd
|d›d�|d›d�|¬¦  «        S )Nç     Àr@r$   r%   úINV-WASD-MIN-DWELLzWASD Key Minimum Dwell Timez8QuestNavigator::SendDirection, MapDeviceHandler approachzDwell time rA   u8   ms >= 300ms; triá»‡t tiÃªu hoÃ n toÃ n micro-tap < 150msu   Vi pháº¡m: Dwell time zms < 300ms!zms >= 300msr'   r/   )r   rP   r4   r5   r6   s        r   Úaudit_inv_wasd_min_dwellz1MasterInvariantsSentinel.audit_inv_wasd_min_dwellv   sÂ   € ÝŒY‰[Œ[ˆØ˜UÒ"ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø%Ø.Ø-3ÐP•?Ô)Ð)½Ô9PØWØmsð  lÐi 8ÐiÐiÐiÐiÐið  zlð  S[ð  zlð  zlð  zlð  zlØ$Ð5Ð5Ð5Ð5Øð
ñ 
ô 
ð 	
r   Úallow_physical_moveÚbrain_pausedÚwasd_releasedc           	     óè   — t          j         ¦   «         }| o|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-F8-MUTES-BRAINz#F8 Movement Safety Lock Mutes Brainzmain.cpp, BotBrainu\   F8 PAUSE: allowPhysicalMove == false ngáº¯t hoÃ n toÃ n BotBrain.Process vÃ  xáº£ phÃ­m WASDuE   Vi pháº¡m: BotBrain váº«n phÃ¡t tÃ­n hiá»‡u di chuyá»ƒn khi F8 PAUSE!z*Brain Process: MUTED | WASD Released: TRUEr'   r/   )r   rU   rV   rW   r4   r5   r6   s          r   Úaudit_inv_f8_mutes_brainz1MasterInvariantsSentinel.audit_inv_f8_mutes_brain„   s�   € ÝŒY‰[Œ[ˆØ)Ð)ÐM¨|ÐMÀˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø%Ø6Ø-3ÐP•?Ô)Ð)½Ô9PØ1Øw}ð  KÐsÐsð  DKØEØð
ñ 
ô 
ð 	
r   Úhas_ui_signalÚbackoff_on_timeoutc           	     óâ   — t          j         ¦   «         }|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-MAPDEVICE-VERIFY-UIz%Map Device UI OCR & Tray Verificationz3MapDeviceHandler, autonomous_mapping_coordinator.pyuh   UI Map Device Ä‘Æ°á»£c xÃ¡c minh qua TRAVERSE OCR vÃ  khay Waystone; timeout kÃ­ch hoáº¡t backoff 3000msu9   Vi pháº¡m: Advance FSM khi chÆ°a cÃ³ tÃ­n hiá»‡u UI má»Ÿ!z#UI Verified: TRUE | Backoff: 3000msr'   r/   )r   r[   r\   r4   r5   r6   s         r   Úaudit_inv_mapdevice_verify_uiz6MasterInvariantsSentinel.audit_inv_mapdevice_verify_ui’   sŠ   € ÝŒY‰[Œ[ˆØÐ5Ð#5ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø*Ø8Ø-3ÐP•?Ô)Ð)½Ô9PØRð DJð  KÐÐð  PKØ>Øð
ñ 
ô 
ð 	
r   é@  Úpoll_window_msÚintÚsingle_tick_fail_closedc           
     ó  — t          j         ¦   «         }|dk    o| }t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rd|› d�nd	|› d
�d|› d�|¬¦  «        S )Nr`   r$   r%   úINV-MAPDEVICE-RETRY-POLLz Map Device Portal Polling 8000msÚMapDeviceHandleru=   WaitForPortals thá»±c hiá»‡n polling vÃ²ng láº·p retry trong u   ms, khÃ´ng fail sá»›mu   Vi pháº¡m: Polling window zms < 8000ms!zWindow: zms >= 8000msr'   r/   )r   ra   rc   r4   r5   r6   s         r   Úaudit_inv_mapdevice_retry_pollz7MasterInvariantsSentinel.audit_inv_mapdevice_retry_poll    sÅ   € ÝŒY‰[Œ[ˆØ  DÒ(ÐKÐ3JÐ/JˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø+Ø3Ø-3ÐP•?Ô)Ð)½Ô9PØ/ð Eð  DÐzÐUcÐzÐzÐzÐzð  KDð  hvð  KDð  KDð  KDØ@ NÐ@Ð@Ð@Øð
ñ 
ô 
ð 	
r   Úopcode_96_rejected_in_hideoutc           	     óÚ   — t          j         ¦   «         }t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-BRAIN-CONFLICT-GATEKEEPERz%Brain Conflict Gatekeeper (Opcode 96)zmain.cpp, town_quest_engine.cppu[   C++ Core & TownQuestEngine tá»« chá»‘i Opcode 96 (TRIGGER_WORLD_MAP_TRAVEL) khi á»Ÿ Hideoutu1   Vi pháº¡m: Opcode 96 bá»‹ rÃ² rá»‰ táº¡i Hideout!z%Opcode 96 Hideout Filter: 100% REJECTr'   r/   )r   rh   r4   r6   s       r   Ú#audit_inv_brain_conflict_gatekeeperz<MasterInvariantsSentinel.audit_inv_brain_conflict_gatekeeper®   s€   € ÝŒY‰[Œ[ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø0Ø8Ø-JÐg•?Ô)Ð)ÕP_ÔPgØ>ð wTð  MÐrÐrð  ZMØ@Øð
ñ 
ô 
ð 	
r   Úterrain_struct_validÚjps_grid_non_nullc           	     óâ   — t          j         ¦   «         }|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-TERRAIN-ORIGINz)Authentic Terrain Origin & JPS Calibratorz,TerrainReader, TerrainGrid, MapDeviceHandlerub   worldOrigin calibrate tá»« struct Ä‘á»‹a hÃ¬nh tháº­t; JPS pathfinder cháº¡y vá»›i grid há»£p lá»‡u>   Vi pháº¡m: JPS slide vá»›i grid == nullptr hoáº·c origin áº£o!zGrid: VALID | Origin: AUTHENTICr'   r/   )r   rl   rm   r4   r5   r6   s         r   Úaudit_inv_terrain_originz1MasterInvariantsSentinel.audit_inv_terrain_origin»   sŠ   € ÝŒY‰[Œ[ˆØ%Ð;Ð*;ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø%Ø<Ø-3ÐP•?Ô)Ð)½Ô9PØKð ~Dð  JÐyÐyð  JJØ:Øð
ñ 
ô 
ð 	
r   Úcpp_is_sole_shm_writerÚpython_no_parallel_clicksc           	     óâ   — t          j         ¦   «         }|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-FSM-SINGLE-OWNERzSingle FSM Lifecycle Ownerz CharacterFSM, core_shm_bridge.pyu]   Chá»‰ duy nháº¥t C++ CharacterFSM ghi SHM; Python khÃ´ng gá»­i click song song khi C++ activeuA   Vi pháº¡m: Xung Ä‘á»™t ghi SHM Ä‘a luá»“ng giá»¯a C++ vÃ  Python!z!Sole SHM Writer: C++ (0 conflict)r'   r/   )r   rq   rr   r4   r5   r6   s         r   Úaudit_inv_fsm_single_ownerz3MasterInvariantsSentinel.audit_inv_fsm_single_ownerÉ   s†   € ÝŒY‰[Œ[ˆØ'ÐEÐ,EˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø'Ø-Ø-3ÐP•?Ô)Ð)½Ô9PØ?Øx~ð  HÐtÐtð  EHØ<Øð
ñ 
ô 
ð 	
r   é   Ú
current_hpÚmax_hpÚlife_flask_blockedÚes_reflex_enabledc                ó  — t          j         ¦   «         }|dk    o	|dk    o|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdnd|› d	|› d
�d|› d	|› d�|¬¦  «        S )Nrv   r$   r%   ú	INV-CI-01z"Chaos Inoculation ES Reflex GatingÚReflexManagerux   NhÃ¢n váº­t CI HP 1/1: KhÃ³a Life Flask 100%; toÃ n bá»™ pháº£n xáº¡ sinh tá»“n (Chicken/Iframe) bÃ¡m theo Energy Shieldu   Vi pháº¡m: HP=ú/u$    khÃ´ng thá»�a mÃ£n báº¥t biáº¿n CI!zHP: z | ES Reflex: ACTIVEr'   r/   )r   rw   rx   ry   rz   r4   r5   r6   s           r   Úaudit_inv_ci_01z(MasterInvariantsSentinel.audit_inv_ci_01×   sç   € ÝŒY‰[Œ[ˆØ ’/Ða¨°!ªÐaÐ9KÐaÐPaˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#ØØ5Ø-3ÐP•?Ô)Ð)½Ô9PØ,ð TZð  jð  Pð  Pð  `jð  q{ð  `jð  `jð  ~Dð  `jð  `jð  `jØI 
ÐIÐI¨VÐIÐIÐIØð
ñ 
ô 
ð 	
r   Úplayer_finder_16mb_activeÚstatic_offsets_rejectedc           	     óâ   — t          j         ¦   «         }|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-MEM-DYNAMIC-XYZzDynamic XYZ 16MB ScannerÚPlayerFinderui   Tá»�a Ä‘á»™ XYZ giáº£i quyáº¿t qua PlayerFinder quÃ©t vÃ¹ng nhá»› 16MB; tá»« chá»‘i neo tÄ©nh 0x290/0x540uD   Vi pháº¡m: PhÃ¡t hiá»‡n phá»¥ thuá»™c vÃ o static offset bá»‹ drift!z-PlayerFinder: ACTIVE (16MB) | Static Drift: 0r'   r/   )r   r€   r�   r4   r5   r6   s         r   Úaudit_inv_mem_dynamic_xyzz2MasterInvariantsSentinel.audit_inv_mem_dynamic_xyzå   s�   € ÝŒY‰[Œ[ˆØ*ÐFÐ/FˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø&Ø+Ø-3ÐP•?Ô)Ð)½Ô9PØ+ð EKð  Wð  Að  Að  QWØHØð
ñ 
ô 
ð 	
r   é¾   Úportal_key_vkÚt_key_blockedc           	     óò   — t          j         ¦   «         }|dk    o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdnd|› d	�d
|¬¦  «        S )Nr†   r$   r%   úINV-KEY-PORTALzTown Portal Uses Period Key '.'zQuestNavigator, UnstuckHandleru`   Town Portal kÃ­ch hoáº¡t báº±ng phÃ­m '.' (VK 0xBE); phÃ­m T vÃ  Warcry bá»‹ khÃ³a triá»‡t Ä‘á»ƒu+   Vi pháº¡m: Town portal dÃ¹ng phÃ­m sai (VK=z)!zPortal VK: 0xBE (VK_OEM_PERIOD)r'   r/   )r   r‡   rˆ   r4   r5   r6   s         r   Úaudit_inv_key_portalz-MasterInvariantsSentinel.audit_inv_key_portaló   sª   € ÝŒY‰[Œ[ˆØ 4Ò'Ð:¨]ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø!Ø2Ø-3ÐP•?Ô)Ð)½Ô9PØ=ð |Bð  GÐwÐwð  HGð  vCð  HGð  HGð  HGØ:Øð
ñ 
ô 
ð 	
r   Úpulse_e_defaultc           	     óà   — t          j         ¦   «         }| }t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-KEY-E-PULSEz(Pulse E With Forward Disabled By DefaultÚQuestNavConfiguX   Cá»� pulseEWithForward máº·c Ä‘á»‹nh false; cáº¥m nháº¥p phÃ­m E tá»± do khi di chuyá»ƒnu6   Vi pháº¡m: pulseEWithForward bá»‹ báº­t máº·c Ä‘á»‹nh!zpulseEWithForward: FALSE (Safe)r'   r/   )r   rŒ   r4   r5   r6   s        r   Úaudit_inv_key_e_pulsez.MasterInvariantsSentinel.audit_inv_key_e_pulse  sƒ   € ÝŒY‰[Œ[ˆØ$Ð$ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø"Ø;Ø-3ÐP•?Ô)Ð)½Ô9PØ-Øsyð  xÐoÐoð  @xØ:Øð
ñ 
ô 
ð 	
r   Úreal_ocr_called_in_mockÚsynthetic_perception_activec           	     óä   — t          j         ¦   «         }| o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-OCR-MOCK-NO-CALLz(Headless Mock Harness Zero Real OCR Leakzvision_ocr.py, ScreenCaptureru}   Headless Mock Harness cáº¥m gá»�i OCR tháº­t vÃ  ScreenCapture desktop; sá»­ dá»¥ng synthetic/cached perception an toÃ n 100%uG   Vi pháº¡m: Mock harness gá»�i trá»±c tiáº¿p WinRT OCR hoáº·c ImageGrab!z+Real OCR Calls: 0 | Synthetic Harness: 100%r'   r/   )r   r‘   r’   r4   r5   r6   s         r   Úaudit_inv_ocr_mock_no_callz3MasterInvariantsSentinel.audit_inv_ocr_mock_no_call  s“   € ÝŒY‰[Œ[ˆØ-Ð-ÐNÐ3NˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø'Ø;Ø-3ÐP•?Ô)Ð)½Ô9PØ<ð Y_ð  nð  Uð  Uð  enØFØð
ñ 
ô 
ð 	
r   Úkeydown_blocked_unfocusedÚkeyup_allowed_unfocusedÚrelease_all_on_unfocusÚtwo_factor_window_checkc           	     óê   — t          j         ¦   «         }|o|o|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   ú#INV-FOCUS-INTERLOCK-HARDWARE-SAFETYz#Two-Factor Hardware Focus Interlockz+KMBoxNet, NonBlockingActuator, win32_windowu¡   Chá»‰ cháº·n KeyDown/MouseDown khi máº¥t focus; KeyUp/MouseUp luÃ´n Ä‘Æ°á»£c gá»­i xuá»‘ng USB HID; tá»± Ä‘á»™ng ReleaseAllKeys(); two-factor class & image checkuI   Vi pháº¡m: Bá»‹ káº¹t phÃ­m KMBox hoáº·c thiáº¿u two-factor window check!z9KeyDown Blocked: TRUE | KeyUp Safe: TRUE | Two-Factor: OKr'   r/   )r   r–   r—   r˜   r™   r4   r5   r6   s           r   Ú)audit_inv_focus_interlock_hardware_safetyzBMasterInvariantsSentinel.audit_inv_focus_interlock_hardware_safety  sž   € õ ŒY‰[Œ[ˆØ*Ð}Ð/FÐ}ÐKaÐ}Ðf}ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø6Ø6Ø-3ÐP•?Ô)Ð)½Ô9PØJð }Cð  Tð  yð  yð  ITØTØð
ñ 
ô 
ð 	
r   Úburning_monolith_blockedÚwell_of_souls_blockedÚpinnacle_arenas_blockedc           	     óæ   — t          j         ¦   «         }|o|o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdndd|¬	¦  «        S )
Nr$   r%   úINV-ATLAS-FARM-NODEzSpecial Arena Blacklist GatingzHvision_ocr.py, autonomous_mapping_coordinator.py, atlas_node_selector.pyuŽ   Cáº¥m tuyá»‡t Ä‘á»‘i The Burning Monolith, The Well of Souls, Precursor Tower, vÃ  Pinnacle Arenas trong chu trÃ¬nh cÃ y Waystone tá»± Ä‘á»™nguR   Vi pháº¡m: PhÃ¡t hiá»‡n node arena Ä‘áº·c biá»‡t Ä‘Æ°á»£c chá»�n Ä‘á»ƒ cÃ y cáº¥p!z7Special Nodes Blacklisted: 100% (Arbiter/Souls BLOCKED)r'   r/   )r   r�   rž   rŸ   r4   r5   r6   s          r   Úaudit_inv_atlas_farm_nodez2MasterInvariantsSentinel.audit_inv_atlas_farm_node1  s–   € ÝŒY‰[Œ[ˆØ)Ð_Ð.CÐ_ÐH_ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø&Ø1Ø-3ÐP•?Ô)Ð)½Ô9PØgð jpð  Jð  fð  fð  vJØRØð
ñ 
ô 
ð 	
r   r   Úslot_row_indexÚloot_rows_reservedc           	     óò   — t          j         ¦   «         }|dk    o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d|rdnd|› d	�d
|¬¦  «        S )Nr   r$   r%   úINV-WAYSTONE-ROW1-ONLYz#Waystone Bag Row 1 Slot ReservationzGoptical_inventory_scanner.py, MapDeviceHandler, autonomous_lifecycle.pyu|   Chá»‰ láº¥y Waystone tá»« HÃ ng 1 (Row 0 trong tÃºi Ä‘á»“); toÃ n bá»™ HÃ ng 2-5 Ä‘Æ°á»£c báº£o vá»‡ lÃ m khoang chá»©a Lootu2   Vi pháº¡m: Waystone Ä‘Æ°á»£c láº¥y tá»« row index z != 0!z7Waystone Slot Row: 0 (Row 1) | Loot Rows 2-5: PROTECTEDr'   r/   )r   r£   r¤   r4   r5   r6   s         r   Úaudit_inv_waystone_row1_onlyz5MasterInvariantsSentinel.audit_inv_waystone_row1_only?  s±   € ÝŒY‰[Œ[ˆØ  AÒ%Ð=Ð+=ˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø)Ø6Ø-3ÐP•?Ô)Ð)½Ô9PØfð X^ð  oð  Tð  Tð  doð  Ygð  doð  doð  doØRØð
ñ 
ô 
ð 	
r   c           	     ó~   — |                       ||||¬¦  «        }t          dd|j        dd|j        |j        ¬¦  «        S )us   Kiá»ƒm Ä‘á»‹nh INV-FOCUS-SAFETY-SEPARATION: Báº£o Ä‘áº£m khÃ´ng rÃ² rá»‰ báº¥t ká»³ input chuá»™t/phÃ­m ra desktop.)r–   r—   r˜   r™   zINV-FOCUS-SAFETY-SEPARATIONz2Zero Desktop Input Leak & Hardware Focus Interlockz8KMBoxNet, NonBlockingActuator, win32_window, win32_inputu�   KhÃ´ng rÃ² rá»‰ báº¥t ká»³ KeyDown/MouseDown ra desktop; chá»‰ nháº­n lá»‡nh khi game window focused; KeyUp/MouseUp giáº£i phÃ³ng an toÃ n 100%r'   )rœ   r   r*   r-   r.   )r   r–   r—   r˜   r™   Úress         r   Ú!audit_inv_focus_safety_separationz:MasterInvariantsSentinel.audit_inv_focus_safety_separationM  sb   € ð ×<Ò<Ø&?Ø$;Ø#9Ø$;ð	 =ñ 
ô 
ˆõ $Ø.ØEØ”:ØWð gØÔ)Øœð
ñ 
ô 
ð 	
r   ç     €V@ç      n@ç)\�Âõ(ì?ç     •@Úmin_duration_secÚmax_duration_secÚ
boss_slainÚfog_coverage_ratioÚtraversed_distanceÚearly_clear_rejectedc                ór  — t          j         ¦   «         }|dk    o|dk    }|dk    }	|p|dk    }
|o|	o|
o|}t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|rt          j        nt          j        d	|rd
|d›d|d›d|d›d|› d|dz  d›d�ndd|d›d|d›d|› d|dz  d›d�	|¬¦  «        S )u�   Kiá»ƒm Ä‘á»‹nh INV-MAP-LEGITIMATE-CLEAR-V2: 3 Trá»¥ cá»™t báº¯t buá»™c Ä‘á»“ng thá»�i (90s, 1200u, Boss Slain hoáº·c Fog >= 80%).r«   rR   g     À’@çš™™™™™é?r$   r%   zINV-MAP-LEGITIMATE-CLEARz1Legitimate Map Clear V2 Three-Pillar Verificationz4MapClearEvaluator, AutonomousMapRunner, CharacterFSMuA   Thá»�a mÃ£n 3 trá»¥ cá»™t báº¯t buá»™c Ä‘á»“ng thá»�i: Duration [ú.0fzs-zs], Distance=zu (>=1200u), BossSlain=z / Fog=éd   rA   ua   % (>=80%); Triá»‡t tiÃªu 100% bug dá»�n sá»›m sau 15s hoáº·c thoÃ¡t khi má»›i Ä‘Ã¡nh 1 con quÃ¡i.ur   Vi pháº¡m INV-MAP-LEGITIMATE-CLEAR-V2: ChÆ°a thá»�a mÃ£n Ä‘á»“ng thá»�i 3 trá»¥ cá»™t (90s, 1200u, Boss/Fog>=80%)!z
Duration: z
s | Dist: z
u | Boss: z | Fog: ú%r'   r/   )r   r¯   r°   r±   r²   r³   r´   r4   Útime_okÚdist_okÚobjective_okr5   r6   s                r   Úaudit_inv_map_legitimate_clearz7MasterInvariantsSentinel.audit_inv_map_legitimate_cleare  s   € õ ŒY‰[Œ[ˆØ# tÒ+ÐLÐ2BÀeÒ2KˆØ$¨Ò.ˆØ!ÐAÐ&8¸DÒ&@ˆØÐN˜WÐN¨ÐNÐ:NˆÝ•T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø+ØDØ-3ÐP•?Ô)Ð)½Ô9PØSð
 ðTð jÐTdð  Gð jð jÐl|ð  Gð jð jØ.ð  Fðjð jØKUðjð jØ^pÐqtÑ^tð  Fðjð jð jð jð  Tð ZÐ&6ð  Zð  Zð  ZÐFXð  Zð  Zð  ZÐhrð  Zð  Zð  }Oð  PSñ  }Sð  Zð  Zð  Zð  ZØð
ñ 
ô 
ð 	
r   çš™™™™™á?Úshock_ratioÚdodge_on_cooldownÚfallback_guard_triggeredÚhuman_latency_bypassedÚes_critical_escape_triggeredc                ó,  — t          j         ¦   «         }|r|o|}|rdnd}n|}|r
d|dz  d›d�nd}t          t          j         ¦   «         |z
  dz  d	¦  «        }	t          d
d|rt          j        nt          j        d|d|dz  d›d|› d|› d|› �|	¬¦  «        S )u†  
        Kiá»ƒm Ä‘á»‹nh INV-CI-0MS-BURST-WATCHDOG:
        - GiÃ¡m sÃ¡t vi mÃ´ dÃ²ng biáº¿n Ä‘á»™ng ES cá»§a Monk CI (HP 1/1, ES 4284).
        - Khi shock ratio >= 50% trong 1 combat tick (<= 16.6ms):
          1. Báº¯t buá»™c BYPASS hoÃ n toÃ n Ä‘á»™ trá»… sinh há»�c ngÆ°á»�i chÆ¡i (human latency 100-150ms).
          2. Reflex Fallback Ladder:
             - Náº¿u dodge_on_cooldown == False: KÃ­ch hoáº¡t ngay I-frame Spacebar.
             - Náº¿u dodge_on_cooldown == True: Chuyá»ƒn tá»©c thá»�i sang Emergency Defensive Guard Skill
               hoáº·c Town Portal / Logout, tuyá»‡t Ä‘á»‘i Cáº¤M káº¹t/stall á»Ÿ phÃ­m Spacebar.
        u¶   Dodge Roll Ä‘ang há»“i chiÃªu (CD): Máº¡ch 0ms kÃ­ch hoáº¡t thÃ nh cÃ´ng Reflex Fallback Ladder (chuyá»ƒn tá»©c thá»�i sang Defensive Guard / Emergency Logout, khÃ´ng káº¹t Spacebar)un   Vi pháº¡m: Dodge Roll Ä‘ang há»“i chiÃªu nhÆ°ng spam Spacebar vÃ´ dá»¥ng, khÃ´ng kÃ­ch hoáº¡t Fallback Ladder!u   PhÃ¡t hiá»‡n Shock ES r¸   rA   u\   % >= 50%: Bypass hoÃ n toÃ n human latency, kÃ­ch hoáº¡t 0ms I-frame Dodge Roll thÃ nh cÃ´nguA   Vi pháº¡m: KhÃ´ng bypass human latency khi gáº·p Shock ES >= 50%!r$   r%   zINV-CI-0MS-BURST-WATCHDOGz9Zero-Latency CI Shock Protection & Reflex Fallback Ladderz0ReflexManager, NonBlockingActuator, CharacterFSMzShockRatio: z% | DodgeCD: z | LatencyBypass: z | FallbackLadder: r'   r/   )
r   r¿   rÀ   rÁ   rÂ   rÃ   r4   r5   r,   r6   s
             r   Úaudit_inv_ci_0ms_burst_watchdogz8MasterInvariantsSentinel.audit_inv_ci_0ms_burst_watchdogˆ  s4  € õ$ ŒY‰[Œ[ˆØð 	Ø+ÐHÐ0HˆFð ðPð ið ið  Pð ˆHð ,ˆFð ðcð C¨°S©Ðjð Cð Cð Cð Càbð õ •T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø,ØLØ-3ÐP•?Ô)Ð)½Ô9PØOØð u¨°C©ð  uð  uð  uÐJ[ð  uð  uð  pFð  uð  uð  [sð  uð  uØð
ñ 
ô 
ð 	
r   ç     €0@ç      y@çš™™™™™É?Úspatial_divergenceÚmovement_dwell_msÚnet_velocityÚmonsters_near_15uÚmesh_resync_triggeredÚaoe_breakout_triggeredc                ón  — t          j         ¦   «         }|dk    p|dk    o|dk     }|sd}	d}
n$|dk    r|}	|	rd|› d�nd	|› d
�}
n|}	|	rd|d›d�nd}
t          t          j         ¦   «         |z
  dz  d¦  «        }t          dd|	rt          j        nt          j        d|
d|d›d|d›d|› d|› d|› �
|¬¦  «        S )ui  
        Kiá»ƒm Ä‘á»‹nh INV-DESYNC-DETECT-RESYNC:
        - PhÃ¡t hiá»‡n desync (khoáº£ng cÃ¡ch > 15u hoáº·c V_net < 0.8u/s dÆ°á»›i phÃ­m WASD >= 350ms).
        - PhÃ¢n nhÃ¡nh Ä‘iá»�u kiá»‡n QuÃ¡i váº­t vÃ¢y hÃ£m (Body-Block vs Mesh Snag):
          * Náº¿u monsters_near_15u == 0: Mesh/Collider Snag -> KÃ­ch hoáº¡t 3-Tier Mesh Resync (Dodge Roll / Tangent Slide 90Â° / /oos).
          * Náº¿u monsters_near_15u >= 3: Monster Body-Block Siege -> Tá»« chá»‘i trÆ°á»£t tiáº¿p tuyáº¿n 90Â° (trÃ¡nh Ä‘Ã¢m vÃ o quÃ¡i khÃ¡c);
            kÃ­ch hoáº¡t tá»©c thÃ¬ Combat AOE Clear / Phasing Skill Ä‘á»ƒ phÃ¡ vÃ¢y.
        ç      .@rO   r¶   TuN   Váº­n tá»‘c vÃ  khoáº£ng cÃ¡ch di chuyá»ƒn bÃ¬nh thÆ°á»�ng, khÃ´ng cÃ³ desync.r%   u   Bá»‹ bao vÃ¢y bá»Ÿi uƒ    quÃ¡i (Body-Block): Tá»« chá»‘i trÆ°á»£t tiáº¿p tuyáº¿n 90Â°, kÃ­ch hoáº¡t thÃ nh cÃ´ng Combat AOE Clear / Phasing Skill phÃ¡ vÃ¢yu   Vi pháº¡m: Bá»‹ uB    quÃ¡i vÃ¢y cháº·t nhÆ°ng khÃ´ng kÃ­ch hoáº¡t AOE Clear phÃ¡ vÃ¢y!u1   Káº¹t Ä‘á»‹a hÃ¬nh tá»± do (0 quÃ¡i váº­t, V_net=z.2fux   u/s < 0.8u/s): KÃ­ch hoáº¡t thÃ nh cÃ´ng 3-Tier Mesh Resync (Dodge Roll root-motion / Tangent Slide 90Â° / /oos command)uL   Vi pháº¡m: Káº¹t Ä‘á»‹a hÃ¬nh nhÆ°ng khÃ´ng kÃ­ch hoáº¡t 3-Tier Mesh Resync!r$   zINV-DESYNC-DETECT-RESYNCz1Server-Client Desync & Body-Block Adaptive ResynczBMovementController, QuestNavigator, ReflexManager, LiveRunSentinelzDivergence: rA   zu | V_net: zu/s | Monsters15u: z | MeshResync: z | AoeBreakout: r'   r/   )r   rÉ   rÊ   rË   rÌ   rÍ   rÎ   r4   Úis_desync_or_snagr5   r,   r6   s               r   Úaudit_inv_desync_detect_resyncz7MasterInvariantsSentinel.audit_inv_desync_detect_resyncµ  s¦  € õ" ŒY‰[Œ[ˆØ/°$Ò6ÐnÐ<MÐQVÒ<VÐ<mÐ[gÐjmÒ[mÐà ð 	ØˆFØgˆHˆHà  AÒ%Ð%Ø/�ð ðLð [Ð+<ð [ð [ð [ð [ð $LÐ6Gð  $Lð  $Lð  $Lð �ð /�ð ðrð SÈð  Wð Sð Sð Sð Sà#qð õ •T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø+ØDØ-3ÐP•?Ô)Ð)½Ô9PØaØð RÐ(:ð  Rð  Rð  RÈ<ð  Rð  Rð  Rð  qBð  Rð  Rð  Shð  Rð  Rð  zPð  Rð  RØð
ñ 
ô 
ð 	
r   Ú
is_focusedÚhardware_cursor_syncedÚmouse_event_sentÚ postmessage_only_for_3d_rejectedÚ cursor_displacement_on_unfocusedc                ó(  — t          j         ¦   «         }|s|dk    o| }|rdnd}n|o|o|}|rdnd}t          t          j         ¦   «         |z
  dz  d¦  «        }	t          dd	|rt          j        nt          j        d
|d|› d|› d|› d|› d�	|	¬¦  «        S )uá  
        Kiá»ƒm Ä‘á»‹nh INV-DX12-HARDWARE-RAYCAST (Doc 74 SSoT):
        - Khi game unfocused: Cáº¤M tuyá»‡t Ä‘á»‘i di chuyá»ƒn con trá»� pháº§n cá»©ng (cursor_displacement == 0)
          vÃ  cáº¥m gá»­i mouse_event ra desktop.
        - Khi game focused: Ä�á»‘i vá»›i tÆ°Æ¡ng tÃ¡c 3D world raycast (Map Device, Portal, Chest),
          báº¯t buá»™c Ä‘á»“ng bá»™ con trá»� pháº§n cá»©ng qua SetCursorPos + mouse_event; tá»« chá»‘i chá»‰ dÃ¹ng PostMessageW Ä‘Æ¡n thuáº§n.
        r   u®   Cá»­a sá»• game máº¥t focus: KhÃ³a an toÃ n hoáº¡t Ä‘á»™ng 100%, 0 pixel dá»‹ch chuyá»ƒn con trá»� pháº§n cá»©ng, khÃ´ng cÃ³ báº¥t ká»³ click chuá»™t nÃ o rÃ² rá»‰ ra desktopuY   Vi pháº¡m: Dá»‹ch chuyá»ƒn con trá»� hoáº·c phÃ¡t xung chuá»™t khi game khÃ´ng cÃ³ focus!uÎ   Cá»­a sá»• game focused: KÃ­ch hoáº¡t thÃ nh cÃ´ng Ä‘á»“ng bá»™ con trá»� pháº§n cá»©ng SetCursorPos vÃ  mouse_event, báº£o Ä‘áº£m DirectX 12 Viewport Raycasting nháº­n diá»‡n chÃ­nh xÃ¡c Ä‘á»‘i tÆ°á»£ng 3Duo   Vi pháº¡m: Thiáº¿u Ä‘á»“ng bá»™ con trá»� pháº§n cá»©ng hoáº·c chá»‰ dÃ¹ng PostMessageW cho Ä‘á»‘i tÆ°á»£ng 3D!r$   r%   zINV-DX12-HARDWARE-RAYCASTz0DirectX 12 Hardware Cursor Raycast & Focus Guardz>win32_input.py, win32_window.py, MapDeviceHandler, Coordinatorz	Focused: z | HWCursor: z | MouseEvent: z | Displacement: Úpxr'   r/   )
r   rÓ   rÔ   rÕ   rÖ   r×   r4   r5   r,   r6   s
             r   Úaudit_inv_dx12_hardware_raycastz8MasterInvariantsSentinel.audit_inv_dx12_hardware_raycastç  s%  € õ ŒY‰[Œ[ˆØð 	Ø6¸!Ò;ÐWÐFVÐBVˆFð ð{ð Oð Oàzð ˆHð ,ÐeÐ0@ÐeÐEeˆFð ðQð kð kð  Qð õ •T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø,ØCØ-3ÐP•?Ô)Ð)½Ô9PØ]Øð m Zð  mð  mÐ>Tð  mð  mÐeuð  mð  mð  Iið  mð  mð  mØð
ñ 
ô 
ð 	
r   ç      9@ç     €A@ç      |@Ú	delta_xyzÚdelta_optical_pxÚ	wasd_sentÚhardware_fallback_triggeredc                ól  — t          j         ¦   «         }|dk    p|dk    }|r!|dk    r|sd}d|d›d|d›d|d	›d
�|rdndz   }	nd}d|d›d|d›d|d	›d�}	t          t          j         ¦   «         |z
  dz  d¦  «        }
t          dd|rt          j        nt          j        d|	d|d›d|d›d|d	›d�|
¬¦  «        S )u°  
        [INV-MOTION-INTEGRITY]
        Báº¯t buá»™c xÃ¡c nháº­n Delta XYZ > 0 (RAM) HOáº¶C Delta Optical > 15px (Vision) sau má»—i nhá»‹p di chuyá»ƒn WASD >= 300ms.
        Náº¿u wasd_sent == True vÃ  dwell_ms >= 300ms mÃ  delta_xyz <= 0 VÃ€ delta_optical_px <= 15:
          -> NhÃ¢n váº­t bá»‹ tÃª liá»‡t / káº¹t / input bá»‹ nuá»‘t bá»Ÿi DX12!
          -> Báº¯t buá»™c raise Anomaly vÃ  kÃ­ch hoáº¡t Hardware Fallback.
        ç        rÐ   rR   Fum   VI PHáº M NGHIÃŠM TRá»ŒNG: Gá»­i phÃ­m di chuyá»ƒn WASD nhÆ°ng nhÃ¢n váº­t tÃª liá»‡t hoÃ n toÃ n! Delta XYZ=rA   zu, Delta Optical=zpx <= 15px sau dwell r·   zms. u1   Ä�Ã£ kÃ­ch hoáº¡t Hardware Fallback phá»¥c há»“i.u%   ChÆ°a kÃ­ch hoáº¡t Hardware Fallback!Tu5   XÃ¡c thá»±c chuyá»ƒn Ä‘á»™ng thÃ nh cÃ´ng: Delta XYZ=u   u > 0 hoáº·c Delta Optical=zpx > 15px sau dwell zms.r$   r%   úINV-MOTION-INTEGRITYz<Closed-Loop Physical Motion Verification & Hardware FallbackzNsend_wasd_direction, AutonomousMappingCoordinator, UnstuckHandler, win32_inputzDelta XYZ: zu | Delta Optical: zpx | Dwell: Úmsr'   r/   )r   rÞ   rß   rP   rà   rá   r4   Ú	has_movedr5   r,   r6   s              r   Úaudit_inv_motion_integrityz3MasterInvariantsSentinel.audit_inv_motion_integrity  s…  € õ ŒY‰[Œ[ˆØ ’_ÐBÐ*:¸TÒ*Aˆ	àð 	˜ UÒ*Ð*°9Ð*ØˆFð{Ø&Ðzð{ð {Ø=MÐzð{ð {ØhpÐzð{ð {ð {àJeð  SÐFÐFð  lSñTð ˆHð ˆFð nÈ	ð  nð  nð  nð  sCð  nð  nð  nð  ]eð  nð  nð  nð  nð õ •T”Y‘[”[ 2Ñ%¨Ñ-¨qÑ1Ô1ˆÝ#Ø'ØOØ-3ÐP•?Ô)Ð)½Ô9PØmØØ{ yÐ{Ð{Ð{ÐIYÐ{Ð{Ð{ÐksÐ{Ð{Ð{Ð{Øð
ñ 
ô 
ð 	
r   Úcustom_overridesúOptional[Dict[str, bool]]r   c                óN  — t          j         ¦   «         }|pi }g }|                     |                      |                     dd¦  «        ¬¦  «        ¦  «         |                     |                      |                     dd¦  «        ¬¦  «        ¦  «         |                     |                      |                     dd¦  «         ¬¦  «        ¦  «         |                     |                      |                     dd¦  «         ¬	¦  «        ¦  «         |                     |                      |                     d
d¦  «        rdnd¬¦  «        ¦  «         |                     |                      |                     dd¦  «         ¬¦  «        ¦  «         |                     |  	                    |                     dd¦  «        ¬¦  «        ¦  «         |                     |  
                    |                     dd¦  «        rdnd¬¦  «        ¦  «         |                     |                      |                     dd¦  «        ¬¦  «        ¦  «         |                     |                      |                     dd¦  «        ¬¦  «        ¦  «         |                     |                      |                     dd¦  «        ¬¦  «        ¦  «         |                     |                      |                     dd¦  «        rdnd|                     dd¦  «        rdnd¬¦  «        ¦  «         |                     |                      |                     d d¦  «        ¬!¦  «        ¦  «         |                     |                      |                     d"d¦  «        rd#nd$¬%¦  «        ¦  «         |                     |                      |                     d&d¦  «         ¬'¦  «        ¦  «         |                     |                      |                     d(d¦  «         ¬)¦  «        ¦  «         |                     |                      |                     d*d¦  «        ¬+¦  «        ¦  «         |                     |                      |                     d,d¦  «        ¬-¦  «        ¦  «         |                     |                      |                     d.d¦  «        rd/nd0¬1¦  «        ¦  «         |                     |                      |                     d2d¦  «        rd3nd4|                     d2d¦  «        rd5nd4dd6¬7¦  «        ¦  «         t/          t          j         ¦   «         |z
  d8z  d0¦  «        }t1          d9„ |D ¦   «         ¦  «        }t1          d:„ |D ¦   «         ¦  «        }t1          d;„ |D ¦   «         ¦  «        }|d/k    rd4}	d<}
n |d/k    rd=nt/          d=|d>z  z
  d¦  «        }	d}
d?|
rd@ndA› dB|	› dC|› dDt3          |¦  «        › dE|› dDt3          |¦  «        › dF|› dG�}t5          |
t3          |¦  «        ||||	|||¬H¦	  «	        S )Iu´   
        Thá»±c thi kiá»ƒm Ä‘á»‹nh tá»± Ä‘á»™ng toÃ n bá»™ 20 Báº¥t biáº¿n Kiáº¿n trÃºc (SSoT 2026).
        TÃ­nh toÃ¡n Ä�á»‹nh lÆ°á»£ng Autonomy Readiness Score (ARS %).
        r&   T)r   r@   )r;   rH   )rE   rM   )rJ   rS   rO   g      ^@)rP   rY   )rU   r^   )r[   re   r`   iÄ	  )ra   rj   )rh   ro   )rl   rt   )rq   r|   rv   é–   )rw   rx   rƒ   )r€   rŠ   r†   éT   )r‡   rŽ   )rŒ   r”   )r‘   r›   )r–   r¡   )r�   r¦   r   é   )r£   rä   rÛ   rã   rÜ   rÝ   )rÞ   rß   rà   rP   r$   c              3  óD   K  — | ]}|j         t          j        k    ¯d V — ŒdS ©rv   N)r*   r   r2   ©Ú.0Úrs     r   ú	<genexpr>zCMasterInvariantsSentinel.audit_all_20_invariants.<locals>.<genexpr>h  s1   è è € ÐTÐT °´½_Ô=SÒ1SÐ1S˜1Ð1SÐ1SÐ1SÐ1SÐTÐTr   c              3  óD   K  — | ]}|j         t          j        k    ¯d V — ŒdS rï   )r*   r   ÚWARNINGrð   s     r   ró   zCMasterInvariantsSentinel.audit_all_20_invariants.<locals>.<genexpr>i  ó1   è è € ÐVÐV !°!´(½oÔ>UÒ2UÐ2U˜AÐ2UÐ2UÐ2UÐ2UÐVÐVr   c              3  óD   K  — | ]}|j         t          j        k    ¯d V — ŒdS rï   )r*   r   r3   rð   s     r   ró   zCMasterInvariantsSentinel.audit_all_20_invariants.<locals>.<genexpr>j  rö   r   Fg      Y@g      @zMaster Invariant Matrix: z100% VERIFIEDr3   z | ARS: z% | Invariants Passed: r~   z | Blocked: z | Duration: rå   )	Úis_cleared_for_autonomousÚtotal_invariantsÚpassed_countÚwarning_countÚblocked_countÚautonomy_readiness_scoreÚtotal_duration_msÚresultsÚsummary)r0   Úappendr7   ÚgetrD   rI   rN   rT   rZ   r_   rg   rk   rp   ru   r   r…   r‹   r�   r•   rœ   r¢   r§   rç   r1   ÚsumÚlenr   )r   rè   Út_startÚ	overridesrÿ   Útot_durationrú   rû   rü   Ú	ars_scoreÚclearedr   s               r   Úaudit_all_20_invariantsz0MasterInvariantsSentinel.audit_all_20_invariants>  s  € õ ”)‘+”+ˆØ$Ð*¨ˆ	Ø.0ˆà�Š�t×5Ò5À)Ç-Â-ÐPeÐgkÑBlÔBlÐ5ÑmÔmÑnÔnÐnØ�Š�t×7Ò7ÈIÏMÊMÐZqÐswÑLxÔLxÐ7ÑyÔyÑzÔzÐzØ�Š�t×;Ò;ÐXa×XeÒXeð  gBð  DHñ  YIô  YIð  UIÐ;ñ  Jô  Jñ  	Kô  	Kð  	KØ�Š�t×=Ò=ÐXa×XeÒXeð  gDð  FJñ  YKô  YKð  UKÐ=ñ  Lô  Lñ  	Mô  	Mð  	MØ�Š�t×4Ò4ÀyÇ}Â}ÐUiÐkoÑGpÔGpÐ>{¸e¸eÐv{Ð4Ñ|Ô|Ñ}Ô}Ð}Ø�Š�t×4Ò4ÈYÏ]Ê]Ð[oÐquÑMvÔMvÐIvÐ4ÑwÔwÑxÔxÐxØ�Š�t×9Ò9È	ÏÊÐVoÐquÑHvÔHvÐ9ÑwÔwÑxÔxÐxØ�Š�t×:Ò:ÐR[×R_ÒR_Ð`zð  }Añ  SBô  SBð  KLÈ$È$ð  HLÐ:ñ  Mô  Mñ  	Nô  	Nð  	NØ�Š�t×?Ò?Ð^g×^kÒ^kð  mLð  NRñ  _Sô  _SÐ?ñ  Tô  Tñ  	Uô  	Uð  	UØ�Š�t×4Ò4È)Ï-Ê-ÐXlÐnrÑJsÔJsÐ4ÑtÔtÑuÔuÐuØ�Š�t×6Ò6ÈiÏmÊmÐ\rÐtxÑNyÔNyÐ6ÑzÔzÑ{Ô{Ð{Ø�Š�t×+Ò+Ø%ŸMšM¨+°tÑ<Ô<ÐE�q�qÀ#Ø!Ÿš k°4Ñ8Ô8ÐA�1�1¸cð ,ñ 
ô 
ñ 	ô 	ð 	ð 	�Š�t×5Ò5ÐPY×P]ÒP]Ð^sÐuyÑPzÔPzÐ5Ñ{Ô{Ñ|Ô|Ð|Ø�Š�t×0Ò0ÀyÇ}Â}ÐUeÐgkÑGlÔGlÐ?v¸t¸tÐrvÐ0ÑwÔwÑxÔxÐxØ�Š�t×1Ò1ÀiÇmÂmÐTeÐgkÑFlÔFlÐBlÐ1ÑmÔmÑnÔnÐnØ�Š�t×6Ò6ÐS\×S`ÒS`ÐawÐy}ÑS~ÔS~ÐO~Ð6ÑÔñ  	Aô  	Að  	AØ�Š�t×EÒEÐ`i×`mÒ`mð  oTð  VZñ  a[ô  a[ÐEñ  \ô  \ñ  	]ô  	]ð  	]Ø�Š�t×5Ò5ÈyÏ}Ê}Ð]rÐtxÑOyÔOyÐ5ÑzÔzÑ{Ô{Ð{Ø�Š�t×8Ò8ÈYÏ]Ê]Ð[sÐuyÑMzÔMzð  IBÈÈð  ABÐ8ñ  Cô  Cñ  	Dô  	Dð  	DØ�Š�t×6Ò6Ø'ŸmšmÐ,BÀDÑIÔIÐR�d�dÈsØ%.§]¢]Ð3IÈ4Ñ%PÔ%PÐY˜T˜TÐVYØØð	 7ñ 
ô 
ñ 	ô 	ð 	õ �dœi™kœk¨GÑ3°tÑ;¸QÑ?Ô?ˆÝÐTÐT gÐTÑTÔTÑTÔTˆÝÐVÐV wÐVÑVÔVÑVÔVˆÝÐVÐV wÐVÑVÔVÑVÔVˆð ˜1ÒÐØˆIØˆGˆGà!.°!Ò!3Ð!3˜˜½¸uÈÐX[ÑH[Ñ?\Ð^_Ñ9`Ô9`ˆIØˆGðT¸7Ð(Q¨¨È	ð Tð TØðTð TØ6BðTð TÝEHÈÁ\Ä\ðTð Tà%ðTð Tå(+¨G©¬ðTð TàCOðTð Tð Tð 	õ +Ø&-Ý  ™\œ\Ø%Ø'Ø'Ø%.Ø*ØØð

ñ 

ô 

ð 
	
r   c                ó.   — |                       |¬¦  «        S )u.   TÆ°Æ¡ng thÃ­ch ngÆ°á»£c vá»›i cÃ¡c caller cÅ©.©rè   ©r
  ©r   rè   s     r   Úaudit_all_19_invariantsz0MasterInvariantsSentinel.audit_all_19_invariants†  ó   € ð
 ×+Ò+Ð=MÐ+ÑNÔNÐNr   c                ó.   — |                       |¬¦  «        S )u<   Thá»±c thi kiá»ƒm Ä‘á»‹nh toÃ n bá»™ Ma tráº­n Báº¥t biáº¿n.r  r  r  s     r   Úaudit_all_invariantsz-MasterInvariantsSentinel.audit_all_invariants�  r  r   Úinvariant_codeÚmessageÚ	telemetryúOptional[Dict[str, Any]]Úraw_screenshot_pathúOptional[str]Ú	rca_notesúOptional[Dict[str, str]]c                ó  — t          j        ¦   «         }|                     d¦  «        dd…         }|                     dd¦  «                             dd¦  «        }d|› d|› �}	t          j                             | j        |	¦  «        }
t	          j        |
d¬	¦  «         t          j                             |
d
¦  «        }t          j                             |
d¦  «        }t          j                             |
d¦  «        }t          j                             |
d¦  «        }t          j                             |
d¦  «        }t          j                             |
d¦  «        }|�|n6dt          t          j
        ¦   «         dz  ¦  «        ddddddddddœdddddœdœ}t          |dd¬¦  «        5 }t          j        ||dd¬¦  «         ddd¦  «         n# 1 swxY w Y   |r[t          j                             |¦  «        r<	 t          j        ||¦  «         n:# t"          $ r |                      |¦  «         Y nw xY w|                      |¦  «         t          |dd¬¦  «        5 }|                     d |                     ¦   «         › d!|› d"�¦  «         |                     d |                     ¦   «         › d#|› d"�¦  «         ddd¦  «         n# 1 swxY w Y   t          |dd¬¦  «        5 }|                     d |                     ¦   «         › d$�¦  «         |                     d |                     ¦   «         › d%|	› d"�¦  «         ddd¦  «         n# 1 swxY w Y   |pi }d&|	› d'|› d(|                     ¦   «         › d)|                     d*d+|› d,|› �¦  «        › d-|                     d.d/|› d0�¦  «        › d1|                     d2d3¦  «        › d4|                     d5d6¦  «        › d"�}t          |dd¬¦  «        5 }|                     |¦  «         ddd¦  «         n# 1 swxY w Y   d7d8|	|                     ¦   «         t          t          j
        ¦   «         dz  ¦  «        |d9||g||||||d:œd;œ
}t          |dd¬¦  «        5 }t          j        ||dd¬¦  «         ddd¦  «         n# 1 swxY w Y   |	|	t          j                             |
¦  «        t          j                             |
¦  «        t          j                             |¦  «        t          j                             |¦  «        t          j                             |¦  «        ||                     ¦   «         |||g|d<œ}	 | j        › d=�}t          |dd¬¦  «        5 }t          j        ||dd¬¦  «         ddd¦  «         n# 1 swxY w Y   t	          j        || j        ¦  «         n<# t"          $ r/}t0                               d>| j        › d,|› �¦  «         Y d}~nd}~ww xY w|S )?uÝ   
        Ä�Ã³ng gÃ³i há»“ sÆ¡ sá»± cá»‘ Ä‘áº§y Ä‘á»§ 6 thÃ nh pháº§n vÃ o:
          debug_harness/incidents/INCIDENT_<TIMESTAMP>_<INV_CODE>/
        vÃ  cáº­p nháº­t con trá»� debug_harness/LATEST_INCIDENT.json.
        z%Y%m%d_%H%M%S_%fNé   ú-Ú_ú Ú	INCIDENT_Tr   zincident_dossier.jsonzscreenshot.pngzram_snapshot.jsonzcore_log_slice.txtzcompanion_log_slice.txtzRCA_4_STEPS_ANALYSIS.mdr   r$   ÚUNKNOWN_NO_TELEMETRYÚ0x0rã   )ÚaddressÚhprx   ÚesÚmax_esÚpos_xÚpos_yÚpos_zÚUNAVAILABLEFz@Telemetry was None at capture. No fabricated vitals per Rule 14.)ÚsourceÚrule_14_compliantÚis_synthetic_mockÚnote)Úsnapshot_idÚtimestamp_msÚ	area_nameÚplayerÚ
provenanceÚwzutf-8)Úencodingrí   )ÚindentÚensure_asciiú[u-   ] [ANOMALY_WATCHDOG] Vi pháº¡m báº¥t biáº¿n: ú
z] [CORE] Error Details: z1] [COMPANION_SENTINEL] Incident captured at 0ms.
z*] [COMPANION] Packaging incident dossier: zC# AutoPOE2 - Root Cause Analysis (4-Step RCA)

- **Incident ID**: `z`
- **Invariant Violated**: `z`
- **Timestamp**: `uQ   `

### BÆ°á»›c 1: TÃ¡i Hiá»‡n & Truy Váº¿t Hiá»‡n TrÆ°á»�ng (Trace & Call Graph)
Ústep1_traceu   PhÃ¡t hiá»‡n vi pháº¡m z: uN   

### BÆ°á»›c 2: PhÃ¢n TÃ­ch Báº¥t Biáº¿n Bá»‹ Vi Pháº¡m (Invariant Breached)
Ústep2_invariantu   Quy chuáº©n báº¥t biáº¿n u(    trong AGENTS.md Má»¥c 8 bá»‹ vi pháº¡m.uP   

### BÆ°á»›c 3: TÃ¡i Cáº¥u TrÃºc Táº­n Gá»‘c (Single Source of Logic Refactor)
Ústep3_refactoruU   TÃ¡i cáº¥u trÃºc triá»‡t tiÃªu Ä‘iá»ƒm láº» theo Rule 4C, khÃ³a cháº·n báº±ng assert.uP   

### BÆ°á»›c 4: KhÃ³a Cháº·n Báº±ng Invariant Assertion (Zero Regression Gate)
Ú
step4_lockuJ   Bá»• sung test case Ä‘á»‘i khÃ¡ng chá»©ng minh FAIL trÆ°á»›c vÃ  PASS sau.z,https://json-schema.org/draft/2020-12/schemaz1.0.0ÚCRITICAL)Údossier_pathÚscreenshot_pathÚram_snapshot_pathÚcore_log_pathÚcompanion_log_pathÚrca_path)
z$schemaÚschema_versionÚincident_idÚtimestamp_isoÚtimestamp_unix_msr  Úseverityr  Úviolated_invariantsÚ	artifacts)Úlatest_incident_idrF  Úfolder_pathÚincident_dirr?  r@  rA  Ú	timestamprG  Útyper  rJ  Údescriptionz.tmpu)   KhÃ´ng thá»ƒ cáº­p nháº­t latest pointer )r   ÚnowÚstrftimeÚreplacer   ÚpathÚjoinr   r   rb   r0   ÚopenÚjsonÚdumpÚexistsÚshutilÚcopyfileÚ	ExceptionÚ _write_fallback_diagnostic_imageÚwriteÚ	isoformatr  Úabspathr   ÚloggerÚwarning)r   r  r  r  r  r  Úts_nowÚts_strÚ	safe_codeÚfolder_namerN  Údossier_json_pathÚscreenshot_png_pathrA  rB  rC  Úrca_md_pathÚtelÚfÚrca_dataÚrca_contentÚdossier_dataÚpointer_dataÚtmp_ptrÚes                            r   Úpackage_invariant_incidentz3MasterInvariantsSentinel.package_invariant_incident—  s€  € õ ”‘”ˆØ—’Ð!3Ñ4Ô4°S°b°SÔ9ˆØ"×*Ò*¨3°Ñ4Ô4×<Ò<¸SÀ#ÑFÔFˆ	Ø6 &Ð6Ð6¨9Ð6Ð6ˆÝ”w—|’| DÔ$6¸ÑDÔDˆÝ
Œ�L¨4Ð0Ñ0Ô0Ð0åœGŸLšL¨Ð7NÑOÔOÐÝ œgŸlšl¨<Ð9IÑJÔJÐÝœGŸLšL¨Ð7JÑKÔKÐÝœŸš \Ð3GÑHÔHˆÝœWŸ\š\¨,Ð8QÑRÔRÐÝ”g—l’l <Ð1JÑKÔKˆà$Ð0ˆiˆiØÝ¥¤	¡¤¨dÑ 2Ñ3Ô3Ø/à ØØØØØØØð	ð 	ð (Ø%)Ø%*ØZð	ð ð7
ð 7
ˆõ. Ð# S°7Ð;Ñ;Ô;ð 	<¸qÝŒI�c˜1 Q°UÐ;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð ð 	G¥2¤7§>¢>Ð2EÑ#FÔ#Fð 	GðKÝ”Ð 3Ð5HÑIÔIÐIÐIøÝð Kð Kð KØ×5Ò5Ð6IÑJÔJÐJÐJÐJðKøøøð ×1Ò1Ð2EÑFÔFÐFõ �- ¨wÐ7Ñ7Ô7ð 	Q¸1Ø�GŠGÐk˜×(Ò(Ñ*Ô*ÐkÐkÐYgÐkÐkÐkÑlÔlÐlØ�GŠGÐO˜×(Ò(Ñ*Ô*ÐOÐOÀGÐOÐOÐOÑPÔPÐPð	Qð 	Qð 	Qñ 	Qô 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qøøøð 	Qð 	Qð 	Qð 	Qõ Ð$ c°GÐ<Ñ<Ô<ð 	gÀØ�GŠGÐ^˜×(Ò(Ñ*Ô*Ð^Ð^Ð^Ñ_Ô_Ð_Ø�GŠGÐe˜×(Ò(Ñ*Ô*ÐeÐeÐVaÐeÐeÐeÑfÔfÐfð	gð 	gð 	gñ 	gô 	gð 	gð 	gð 	gð 	gð 	gð 	gøøøð 	gð 	gð 	gð 	gð
 �? ˆð|Ø#.ð|ð |à*8ð|ð |ð "(×!1Ò!1Ñ!3Ô!3ð|ð |ð
 �|Š|˜MÐ+`À^Ð+`Ð+`ÐW^Ð+`Ð+`ÑaÔað|ð |ð �|Š|Ð-ð  0DÈ>ð  0Dð  0Dð  0Dñ  Eô  Eð|ð |ð �|Š|Ð,ð  /Fñ  Gô  Gð|ð |ð �|Š|˜LÐ*vÑwÔwð|ð |ð |ð 	õ �+˜s¨WÐ5Ñ5Ô5ð 	!¸Ø�GŠG�KÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð
 FØ%Ø&Ø#×-Ò-Ñ/Ô/Ý!$¥T¤Y¡[¤[°4Ñ%7Ñ!8Ô!8Ø,Ø"ØØ$2Ð#3à 1Ø#6Ø%6Ø!.Ø&8Ø'ðð ð
ð 
ˆõ& Ð# S°7Ð;Ñ;Ô;ð 	E¸qÝŒI�l A¨a¸eÐDÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð
 #.Ø&Ýœ7Ÿ?š?¨<Ñ8Ô8ÝœGŸOšO¨LÑ9Ô9ÝœGŸOšOÐ,=Ñ>Ô>Ý!œwŸšÐ/BÑCÔCÝ!#¤§¢Ð1BÑ!CÔ!CØØ#×-Ò-Ñ/Ô/Ø"Ø,Ø$2Ð#3Ø"ð
ð 
ˆð	hØÔ1Ð7Ð7Ð7ˆGÝ�g˜s¨WÐ5Ñ5Ô5ð I¸Ý”	˜,¨°!À%ÐHÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið IåŒJ�w Ô 8Ñ9Ô9Ð9Ð9øÝð 	hð 	hð 	hÝ�NŠNÐfÀtÔG_ÐfÐfÐcdÐfÐfÑgÔgÐgÐgÐgÐgÐgÐgøøøøð	høøøð !Ð sª   Æ+GÇGÇGÇ=H ÈH5È4H5ÉAKËKËKË%AMÍMÍMÏ0PÐPÐPÑ7RÒR Ò#R ÕW Õ8VÖW ÖV!Ö!W Ö$V!Ö%W ×
W<×%W7×7W<Útarget_pathÚNonec                óª   — d}	 t          | d¦  «        5 }|                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS # t          $ r Y dS w xY w)uE   Táº¡o áº£nh PNG cháº©n Ä‘oÃ¡n ná»�n tá»‘i 1280x720 thuáº§n User-Mode.sC   ‰PNG

   IHDR         c4   
IDATxœc    
-´    IEND®B`‚ÚwbN)rW  r_  r]  )rt  Úminimal_pngrl  s      r   r^  z9MasterInvariantsSentinel._write_fallback_diagnostic_image"  s·   € ðGð 	ð
	Ý�k 4Ñ(Ô(ð %¨AØ—’˜Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %øåð 	ð 	ð 	ØˆDˆDð	øøøs,   „A ”7ªA ·;»A ¾;¿A Á
AÁA)r   r   )r   r   r   r   )TT)r   r    r!   r    r"   r   )r8   TNN)
r9   r:   r;   r    r<   r=   r>   r=   r"   r   )FT)rE   r    rF   r    r"   r   )rJ   r    rK   r    r"   r   )rO   )rP   r:   r"   r   )FTT)rU   r    rV   r    rW   r    r"   r   )r[   r    r\   r    r"   r   )r`   F)ra   rb   rc   r    r"   r   )T)rh   r    r"   r   )rl   r    rm   r    r"   r   )rq   r    rr   r    r"   r   )rv   rv   TT)
rw   rb   rx   rb   ry   r    rz   r    r"   r   )r€   r    r�   r    r"   r   )r†   T)r‡   rb   rˆ   r    r"   r   )F)rŒ   r    r"   r   )r‘   r    r’   r    r"   r   )TTTT)
r–   r    r—   r    r˜   r    r™   r    r"   r   )TTT)r�   r    rž   r    rŸ   r    r"   r   )r   T)r£   rb   r¤   r    r"   r   )r«   r¬   Tr­   r®   T)r¯   r:   r°   r:   r±   r    r²   r:   r³   r:   r´   r    r"   r   )r¾   FTTT)r¿   r:   rÀ   r    rÁ   r    rÂ   r    rÃ   r    r"   r   )rÆ   rÇ   rÈ   r   TT)rÉ   r:   rÊ   r:   rË   r:   rÌ   rb   rÍ   r    rÎ   r    r"   r   )TTTTr   )rÓ   r    rÔ   r    rÕ   r    rÖ   r    r×   rb   r"   r   )rÛ   rÜ   rÝ   TF)rÞ   r:   rß   r:   rP   r:   rà   r    rá   r    r"   r   )N)rè   ré   r"   r   )NNN)r  r   r  r   r  r  r  r  r  r  r"   r   )rt  r   r"   ru  )%Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r7   rD   rI   rN   rT   rZ   r_   rg   rk   rp   ru   r   r…   r‹   r�   r•   rœ   r¢   r§   rª   r½   Ú!audit_inv_map_legitimate_clear_v2rÅ   rÒ   rÚ   rç   r
  r  r  rs  Ústaticmethodr^  © r   r   r   r   !   s÷  € € € € € ðð ð 7Ø#Gð7ð 7ð 7ð 7ð 7ð
ð 
ð 
ð 
ð 
ð   $Ø$(Ø/3Ø48ð
ð 
ð 
ð 
ð 
ð2
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð  +/Ø(,Ø'+Ø(,ð
ð 
ð 
ð 
ð 
ð(
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð  +/Ø(,Ø'+Ø(,ð
ð 
ð 
ð 
ð 
ð4 #'Ø"'ØØ$(Ø$*Ø%)ð
ð 
ð 
ð 
ð 
ð@ )GÐ%ð
 "Ø"'Ø)-Ø'+Ø-1ð+
ð +
ð +
ð +
ð +
ð^ %)Ø#(Ø!Ø!"Ø&*Ø'+ð0
ð 0
ð 0
ð 0
ð 0
ðh  Ø'+Ø!%Ø15Ø01ð(
ð (
ð (
ð (
ð (
ðX  Ø"&ØØØ,1ð(
ð (
ð (
ð (
ð (
ð^ 7;ðF
ð F
ð F
ð F
ð F
ðT 7;ðOð Oð Oð Oð Oð 7;ðOð Oð Oð Oð Oð /3Ø-1Ø.2ðI!ð I!ð I!ð I!ð I!ðV ðð ð ñ „\ðð ð r   )r|  Ú
__future__r   rX  Úloggingr   r[  r0   r   Útypingr   r   r   r   Ú*src.agentic_engine.master_invariants_specsr	   r
   r   r   r   r   Ú	getLoggerrb  r   r  r   r   ú<module>r…     s'  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	Ð5Ñ	6Ô	6€ðMð Mð Mð Mð Mñ Mô Mð Mð Mð Mr   