§
    %ÍžjE  ã            
       óÄ  — d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlZe
j                             dej                             ej                             ej                             e¦  «        d¦  «        ¦  «        ¦  «         ddlmZ ddlmZmZmZmZ ddlmZ ddlmZmZ ddl m!Z!  G d	„ d
ej"        ¦  «        Z#e$dk    r ej%        ¦   «          dS dS )uÏ  
AutoPOE2 - Headless Scenario Harness Tests (Rule 11 & Rule 14 Compliant)
Kiá»ƒm thá»­ 5 ká»‹ch báº£n End-to-End Headless khÃ´ng cáº§n game tháº­t vÃ  khÃ´ng cáº§n quyá»�n Admin:
1. test_scenario_swamp_flat_ground_xyz: Giáº£ láº­p di chuyá»ƒn 2D (Z = const, X,Y thay Ä‘á»•i), khÃ´ng trigger ERR_XYZ_FROZEN.
2. test_scenario_bogus_entity_778_rejection: Giáº£ láº­p struct rÃ¡c HP 778/778 vÃ  ES 32763 tá»« RAM tháº­t, phÃ¡t hiá»‡n ERR_BOGUS_VITAL_STRUCT_778.
3. test_scenario_optical_vs_ram_desync: Giáº£ láº­p Optical HP 503 vs RAM HP 342, báº¯t Ä‘Ãºng ERR_OPTICAL_RAM_DESYNC.
4. test_scenario_watchdog_passive_degrade: Máº¥t nhá»‹p tim, Core chuyá»ƒn sang Co-Pilot Passive, khÃ´ng tá»± sÃ¡t.
5. test_scenario_multimodal_flight_recorder_incident_export: Anomaly export Ä‘áº§y Ä‘á»§ incident folder, dossier, png, ram dump, LATEST_INCIDENT.json.

TuÃ¢n thá»§ Rule 14: Sá»­ dá»¥ng dá»¯ liá»‡u tháº­t trÃ­ch xuáº¥t tá»« captures/ vÃ  core_log.txt thá»±c táº¿ cá»§a client POE2.
é    Nú..)ÚMultimodalFlightRecorder)ÚERR_BOGUS_VITAL_STRUCT_778ÚERR_OPTICAL_RAM_DESYNCÚERR_XYZ_FROZENÚInvariantSentinel)ÚRealtimeWatcher)ÚCoreTelemetrySnapshotÚPlayerTelemetry)ÚOpticalVitalsc                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestHarnessScenariosuf   Bá»™ kiá»ƒm thá»­ ká»‹ch báº£n giáº£ láº­p Headless 100% User-Mode (Zero Admin, Zero Game Dependency).c                 óÞ   — t          j        d¬¦  «        | _        t          ddd¬¦  «        | _        t          | j        d¬¦  «        | _        t          | j        | j        ¬	¦  «        | _        d S )
NÚpoe2_harness_test_)Úprefixgš™™™™™é?g      Ð?é¸  )Úmin_planar_deltaÚoptical_divergence_thresholdÚwatchdog_timeout_msé   )Ú
output_dirÚcapacity)ÚsentinelÚflight_recorder)	ÚtempfileÚmkdtempÚtest_dirr   r   r   r   r	   Úwatcher©Úselfs    ú4C:\Projects\AutoPOE2\tests\test_harness_scenarios.pyÚsetUpzTestHarnessScenarios.setUp&   se   € Ý Ô(Ð0DÐEÑEÔEˆŒÝ)¸3Ð]aÐw{Ð|Ñ|Ô|ˆŒÝ7À4Ä=Ð[]Ð^Ñ^Ô^ˆÔÝ&°´ÈtÔOcÐdÑdÔdˆŒˆˆó    c                 óˆ   — t           j                             | j        ¦  «        rt	          j        | j        d¬¦  «         d S d S )NT)Úignore_errors)ÚosÚpathÚexistsr   ÚshutilÚrmtreer   s    r!   ÚtearDownzTestHarnessScenarios.tearDown,   sA   € ÝŒ7�>Š>˜$œ-Ñ(Ô(ð 	=ÝŒM˜$œ-°tÐ<Ñ<Ô<Ð<Ð<Ð<ð	=ð 	=r#   c                 óò  — t          ddddddddd¬¦	  «	        }t          dd	d
|d¬¦  «        }| j                             |d¬¦  «         t          ddddddddd¬¦	  «	        }t          ddd|d¬¦  «        }| j                             |d¬¦  «        }|                      t
          |d¦  «         |                      t
          | j        j        ¦  «         |                      | j        j        d¦  «         t          ddddd¬¦  «        }t          ddd|d¬¦  «        }| j                             |d¬¦  «        }|  	                    t
          |d¦  «         |  	                    t
          | j        j        ¦  «         dS )uŸ  
        Ká»‹ch báº£n 1: Giáº£ láº­p nhÃ¢n váº­t di chuyá»ƒn 2D trÃªn Ä‘áº§m láº§y Sandswept Marsh (Z = const = 125.5f,
        X vÃ  Y thay Ä‘á»•i).
        Kháº³ng Ä‘á»‹nh: Watcher xÃ¡c nháº­n XYZ tracking há»£p lá»‡, TUYá»†T Ä�á»�I KHÃ”NG trigger ERR_XYZ_FROZEN.
        Ä�á»‘i chá»©ng: Khi is_moving = True nhÆ°ng tá»�a Ä‘á»™ káº¹t táº¡i (0.0, 0.0, 0.0), Watcher Báº®T BUá»˜C cáº¯m cá»� ERR_XYZ_FROZEN.
        éë  iT  éÈ   ç     p—@ç      ©@ç     `_@)	Ú
current_hpÚmax_hpÚcurrent_manaÚmax_manaÚ
current_esÚmax_esÚpos_xÚpos_yÚpos_zTé   éè  úSandswept Marsh©Ú	is_onlineÚsnapshot_idÚtimestamp_msÚplayerÚ	area_nameF)ÚsnapshotÚ	is_movingçš™™™™Õ—@ç33333<©@é   i  u`   Watcher khÃ´ng Ä‘Æ°á»£c trigger ERR_XYZ_FROZEN khi nhÃ¢n váº­t di chuyá»ƒn 2D trÃªn Ä‘áº§m láº§y)rF   rG   r1   ç        )r2   r3   r8   r9   r:   é   iL  ud   Watcher Báº®T BUá»˜C cáº¯m cá»� ERR_XYZ_FROZEN khi tá»�a Ä‘á»™ káº¹t táº¡i (0,0,0) lÃºc Ä‘ang cháº¡yN)
r   r
   r   Úprocess_telemetryÚassertNotInr   Úactive_errorsÚassertEqualÚlast_known_xyzÚassertIn)	r    Úp_initÚ	snap_initÚp_movedÚ
snap_movedÚerrorsÚp_frozenÚsnap_frozenÚerrors_frozens	            r!   Ú#test_scenario_swamp_flat_ground_xyzz8TestHarnessScenarios.test_scenario_swamp_flat_ground_xyz3   sÛ  € õ !Ø 3Ø sØ 3Ø ¨eð	
ñ 
ô 
ˆõ *Ø¨¸ØÐ%6ð
ñ 
ô 
ˆ	ð 	Œ×&Ò&°	ÀUÐ&ÑKÔKÐKõ "Ø 3Ø sØ 3Ø ¨eð	
ñ 
ô 
ˆõ +Ø¨¸ØÐ&7ð
ñ 
ô 
ˆ
ð
 ”×/Ò/¸ÈtÐ/ÑTÔTˆð 	×Ò�¨ð  2Tñ  	Uô  	Uð  	UØ×Ò�¨¬Ô)CÑDÔDÐDØ×Ò˜œÔ4Ð6MÑNÔNÐNõ
 #Ø 3Ø˜S¨ð
ñ 
ô 
ˆõ ,Ø¨¸ØÐ'8ð
ñ 
ô 
ˆð œ×6Ò6ÀÐW[Ð6Ñ\Ô\ˆà�Š•n mð  6\ñ  	]ô  	]ð  	]Ø�Š•n d¤lÔ&@ÑAÔAÐAÐAÐAr#   c           
      óÜ  — t           j                             t           j                             t          ¦  «        ddd¦  «        }t           j                             |¦  «        rwt          |dd¬¦  «        5 }t          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   |d         }|d	         }|d
         }|d         }|d         }|d         }	|d         }
nd\  }}d\  }}d\  }	}
t          |||||	|
¬¦  «        }t          ddd|d¬¦  «        }| j                             |¦  «        \  }}}|                      |d¦  «         |                      |t          ¦  «         |                      d|¦  «         t          dddddddd¬¦  «        }t          dd d!|d"¬¦  «        }| j                             |¦  «        \  }}}|                      |d#¦  «         |                      |¦  «         dS )$uØ  
        Ká»‹ch báº£n 2: Giáº£ láº­p struct rÃ¡c HP 778/778, ES 32763, Mana 779/779 trong snapshot.
        Dá»¯ liá»‡u Ä‘á»‘i chiáº¿u: TrÃ­ch xuáº¥t trá»±c tiáº¿p tá»« captures/20260907_192644_088_PERIODIC_ANALYSIS_RAM.json
        vÃ  bin/Release/core_log.txt.
        Kháº³ng Ä‘á»‹nh: Invariant Sentinel phÃ¡t hiá»‡n vÃ  cáº¯m cá»� ERR_BOGUS_VITAL_STRUCT_778.
        Ä�á»‘i chá»©ng: Snapshot mÃ¡u tháº­t (HP 491/491 hoáº·c 1023/1250) Ä‘Æ°á»£c thÃ´ng qua 100%.
        r   Úcapturesz.20260907_192644_088_PERIODIC_ANALYSIS_RAM.jsonÚrúutf-8©ÚencodingNrB   Úhpr3   Úesr7   Úmanar5   )é
  rc   )éû  é6   )é  rf   )r2   r3   r6   r7   r4   r5   Té*   l   üN«w�r=   r>   uO   Struct 778/778 vÃ  ES 32763/54 Báº®T BUá»˜C bá»‹ Invariant Sentinel tá»« chá»‘iÚ778iÿ  iâ  r   é,  éd   )r2   r3   r6   r7   r4   r5   Úcurrent_spiritÚ
max_spirité+   l   $O«w�zThe RiverbankuI   Vitals tháº­t (HP 1023/1250, Mana 300/300) pháº£i Ä‘Æ°á»£c cháº¥p thuáº­n)r&   r'   ÚjoinÚdirnameÚ__file__r(   ÚopenÚjsonÚloadr   r
   r   Úevaluate_vitalsÚassertFalserN   r   rP   Ú
assertTrueÚassertIsNone)r    Úreal_incident_fileÚfÚreal_ramÚreal_pÚbogus_hpÚbogus_max_hpÚbogus_esÚbogus_max_esÚ
bogus_manaÚbogus_max_manaÚp_bogusÚ
snap_bogusÚvalidÚerr_codeÚdescÚp_realÚ	snap_realÚ
valid_realÚerr_realÚ_s                        r!   Ú(test_scenario_bogus_entity_778_rejectionz=TestHarnessScenarios.test_scenario_bogus_entity_778_rejectionn   sk  € õ  œWŸ\š\­"¬'¯/ª/½(Ñ*CÔ*CÀTÈ:ð  XHñ  Iô  IÐÝŒ7�>Š>Ð,Ñ-Ô-ð 	2ÝÐ(¨#¸Ð@Ñ@Ô@ð (ÀAÝœ9 Q™<œ<�ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (à˜hÔ'ˆFØ˜d”|ˆHØ! (Ô+ˆLØ˜d”|ˆHØ! (Ô+ˆLØ œˆJØ# JÔ/ˆNˆNð &.Ñ"ˆH�lØ%.Ñ"ˆH�lØ)1Ñ&ˆJ˜õ "Ø¨Ø¨Ø#¨nð
ñ 
ô 
ˆõ
 +Ø¨¸ØÐ&7ð
ñ 
ô 
ˆ
ð
 !%¤× =Ò =¸jÑ IÔ IÑˆˆx˜ð 	×Ò˜Ð qÑrÔrÐrØ×Ò˜Õ#=Ñ>Ô>Ð>Ø�Š�e˜TÑ"Ô"Ð"õ !Ø DØ Ø sØ¨3ð	
ñ 
ô 
ˆõ *Ø¨¸Ø _ð
ñ 
ô 
ˆ	ð #'¤-×"?Ò"?À	Ñ"JÔ"JÑˆ
�H˜aØ�Š˜
Ð$oÑpÔpÐpØ×Ò˜(Ñ#Ô#Ð#Ð#Ð#s   Á6BÂBÂBc           	      óh  — t          ddddddd¬¦  «        }t          dd	d
|d¬¦  «        }t          ddddd¬¦  «        }| j                             ||d¬¦  «        }|                      t          |d¦  «         |                      t          | j        j        ¦  «         t          dd¬¦  «        }t          ddd|¬¦  «        }t          dddd¬¦  «        }| j                             ||d¬¦  «        }|                      t          |d¦  «         |                      t          | j        j        ¦  «         dS )um  
        Ká»‹ch báº£n 3: Giáº£ láº­p Optical HP Ä‘á»�c 503 trong khi RAM Ä‘á»�c 342.
        Ä�á»™ lá»‡ch: |503/503 - 342/503| = |1.0 - 0.68| = 0.32 (32% > 25% tolerance).
        Kháº³ng Ä‘á»‹nh: Watcher báº¯t Ä‘Ãºng lá»—i ERR_OPTICAL_RAM_DESYNC.
        Ä�á»‘i chá»©ng: Khi Optical = 500 vÃ  RAM = 490 (Ä‘á»™ lá»‡ch 2% <= 25%), khÃ´ng kÃ­ch hoáº¡t lá»—i.
        iV  i÷  ri   r/   r0   r1   )r2   r3   r4   r5   r8   r9   r:   Trj   iÐ  r=   r>   ç      ð?Úraster_match)r2   r3   Úhp_ratioÚis_detectedÚdetection_methodF)rD   Úoptical_vitalsrE   uL   Watcher Báº®T BUá»˜C phÃ¡t hiá»‡n lá»‡ch pha khi Optical = 503 vÃ  RAM = 342iê  iô  )r2   r3   ée   i  )r?   r@   rA   rB   ©r2   r3   r�   r‘   u?   KhÃ´ng Ä‘Æ°á»£c bÃ¡o lá»—i khi Ä‘á»™ lá»‡ch pha chá»‰ 2% <= 25%N)	r   r
   r   r   rK   rP   r   rM   rL   )	r    Úp_ramÚsnapÚopticalrU   Ú
p_coherentÚsnap_coherentÚoptical_coherentÚerrors_coherents	            r!   Ú#test_scenario_optical_vs_ram_desyncz8TestHarnessScenarios.test_scenario_optical_vs_ram_desync­   s…  € õ  Ø 3Ø sØ ¨eð
ñ 
ô 
ˆõ
 %Ø¨¸$ØÐ$5ð
ñ 
ô 
ˆõ  ØØØØØ+ð
ñ 
ô 
ˆð ”×/Ò/¸ÈgÐafÐ/ÑgÔgˆð 	�ŠÕ,¨fð  7Eñ  	Fô  	Fð  	FØ�ŠÕ,¨d¬lÔ.HÑIÔIÐIõ %°¸CÐ@Ñ@Ô@ˆ
Ý-¸È#Ð\`ÐisÐtÑtÔtˆÝ(°CÀÈcÐ_cÐdÑdÔdÐàœ,×8Ò8À-Ð`pð  }BÐ8ñ  Cô  CˆØ×ÒÕ/°ð  CDñ  	Eô  	Eð  	EØ×ÒÕ/°´Ô1KÑLÔLÐLÐLÐLr#   c                 ó  — d}| j                              |¦  «         |                      | j         j        ¦  «         |                      | j         j        ¦  «         | j                              |dz   d¬¦  «        }|                      |¦  «         |                      | j         j        ¦  «         | j                              |dz   d¬¦  «        }|                      |d¦  «         |                      | j         j        d¦  «         |                      | j         j        d¦  «         | j                              |d	z   ¦  «         |                      | j         j        d
¦  «         |                      | j         j        ¦  «         dS )uQ  
        Ká»‹ch báº£n 4: Giáº£ láº­p máº¥t nhá»‹p tim Watchdog (>3000ms).
        Kháº³ng Ä‘á»‹nh: Core tá»± Ä‘á»™ng chuyá»ƒn sang Co-Pilot Passive, TUYá»†T Ä�á»�I KHÃ”NG tá»± sÃ¡t (request_stop == False).
        Khi nhá»‹p tim phá»¥c há»“i: Tá»± Ä‘á»™ng khÃ´i phá»¥c vá»� cháº¿ Ä‘á»™ Tá»± HÃ nh Ä�áº§y Ä�á»§ (Full Autonomous).
        i † r<   r   )Únow_msÚ
timeout_msi¬  uD   Watchdog pháº£i bÃ¡o vi pháº¡m khi quÃ¡ 3500ms khÃ´ng cÃ³ nhá»‹p timu6   Core PHáº¢I chuyá»ƒn sang cháº¿ Ä‘á»™ Co-Pilot PassiveuQ   Core TUYá»†T Ä�á»�I KHÃ”NG Ä‘Æ°á»£c Ä‘áº·t cá»� request_stop khi máº¥t nhá»‹p timi   uC   Khi nhá»‹p tim phá»¥c há»“i, Co-Pilot Passive pháº£i Ä‘Æ°á»£c táº¯tN)r   Úupdate_heartbeatru   Úis_copilot_passiveÚrequest_stopÚcheck_watchdogrv   )r    Út0Ú
is_healthyÚis_healthy_timeouts       r!   Ú&test_scenario_watchdog_passive_degradez;TestHarnessScenarios.test_scenario_watchdog_passive_degradeÚ   sx  € ð ˆØŒ×%Ò% bÑ)Ô)Ð)Ø×Ò˜œÔ8Ñ9Ô9Ð9Ø×Ò˜œÔ2Ñ3Ô3Ð3ð ”\×0Ò0¸¸T¹	ÈdÐ0ÑSÔSˆ
Ø�Š˜
Ñ#Ô#Ð#Ø×Ò˜œÔ8Ñ9Ô9Ð9ð "œ\×8Ò8ÀÀTÁ	ÐVZÐ8Ñ[Ô[Ðà×ÒÐ+Ð-sÑtÔtÐtØ�Š˜œÔ7Ð9qÑrÔrÐrà×Ò˜œÔ2ð  5Hñ  	Iô  	Ið  	Ið 	Œ×%Ò% b¨4¡iÑ0Ô0Ð0Ø×Ò˜œÔ8Ð:ñ  	Aô  	Að  	AØ×Ò˜œÔ2Ñ3Ô3Ð3Ð3Ð3r#   c                 ó¤  — t          ddddddddd¬¦	  «	        }t          ddt          t          j        ¦   «         d	z  ¦  «        |d
¬¦  «        }t	          dddd¬¦  «        }| j                             ||¦  «         | j                             t          d||¬¦  «        }|d         }|d         }|d         }|d         }|d         }	|  	                    t          j                             |¦  «        d|› �¦  «         |                      d|¦  «         |  	                    t          j                             |¦  «        d¦  «         t          |dd¬¦  «        5 }
t!          j        |
¦  «        }ddd¦  «         n# 1 swxY w Y   |                      |d         d         t          ¦  «         |                      |d         d          d
¦  «         |                      |d!         d"         d#         d¦  «         |                      |d!         d"         d$         d¦  «         |  	                    |d%         d&         ¦  «         |  	                    t          j                             |¦  «        d'¦  «         t          |d(¦  «        5 }
|
                     d)¦  «        }ddd¦  «         n# 1 swxY w Y   |                      |d*d+¦  «         |  	                    t          j                             |¦  «        d,¦  «         t          |dd¬¦  «        5 }
t!          j        |
¦  «        }ddd¦  «         n# 1 swxY w Y   |                      d-|¦  «         |  	                    t          j                             |	¦  «        d.¦  «         t          |	dd¬¦  «        5 }
t!          j        |
¦  «        }ddd¦  «         n# 1 swxY w Y   |                      |d         t          ¦  «         |                      |d         t          j                             |¦  «        ¦  «         |                      |d         t          j                             |¦  «        ¦  «         dS )/u×  
        Ká»‹ch báº£n 5: Giáº£ láº­p kÃ­ch hoáº¡t Anomaly táº¡i thá»�i Ä‘iá»ƒm 0ms.
        Kháº³ng Ä‘á»‹nh:
        1. Táº¡o ra Ä‘áº§y Ä‘á»§ thÆ° má»¥c incident trong debug_harness/incidents/
        2. Sinh tá»‡p incident_dossier.json Ä‘Ãºng schema Doc 17
        3. Sinh tá»‡p screenshot.png giáº£ láº­p há»£p lá»‡
        4. Sinh tá»‡p ram_snapshot.json dump dá»¯ liá»‡u RAM
        5. Cáº­p nháº­t tá»‡p chá»‰ má»¥c LATEST_INCIDENT.json á»Ÿ thÆ° má»¥c gá»‘c
        rc   rd   re   rf   rI   )	r2   r3   r6   r7   r4   r5   r8   r9   r:   Tiç  r<   r=   r>   r-   rŽ   r•   u;   PhÃ¡t hiá»‡n UI Entity Marker 778/778 gÃ¢y Ã´ nhiá»…m cache)Ú
error_codeÚdescriptionrD   r“   Úincident_dirÚdossier_pathÚscreenshot_pathÚram_snapshot_pathÚlatest_incident_pathu(   ThÆ° má»¥c incident pháº£i tá»“n táº¡i: r   u-   incident_dossier.json pháº£i Ä‘Æ°á»£c sinh rar\   r]   r^   NÚ	violationÚinvariant_codeÚsystem_contextÚ	zone_nameÚtelemetry_stateÚreported_vitalsr`   ra   Úmemory_diagnosticsÚsuspected_pointer_pollutionu)   screenshot.png pháº£i Ä‘Æ°á»£c lÆ°u trá»¯Úrbé   s   ‰PNG

u5   screenshot.png pháº£i cÃ³ PNG magic header há»£p lá»‡u$   ram_snapshot.json pháº£i tá»“n táº¡iÚin_game_stateu'   LATEST_INCIDENT.json pháº£i tá»“n táº¡i)r   r
   ÚintÚtimer   r   Úrecord_tickÚexport_incidentr   rv   r&   r'   ÚisdirrP   Úisfilerq   rr   rs   rN   ÚreadÚabspath)r    Úpr—   r˜   Úresultr¬   r­   r®   r¯   r°   ry   ÚdossierÚheaderÚram_dumpÚlatests                  r!   Ú8test_scenario_multimodal_flight_recorder_incident_exportzMTestHarnessScenarios.test_scenario_multimodal_flight_recorder_incident_exportú   sù  € õ Ø 3Ø RØ sØ˜S¨ð	
ñ 
ô 
ˆõ %Ø¨½#½d¼i¹k¼kÈDÑ>PÑ:QÔ:QØÐ 1ð
ñ 
ô 
ˆõ  ¨3°sÀSÐVZÐ[Ñ[Ô[ˆð 	Ô×(Ò(¨¨wÑ7Ô7Ð7ð Ô%×5Ò5Ý1ØUØØ"ð	 6ñ 
ô 
ˆð ˜nÔ-ˆØ˜nÔ-ˆØ Ð!2Ô3ˆØ"Ð#6Ô7ÐØ%Ð&<Ô=Ðð 	�Š�œŸš lÑ3Ô3Ð5nÐ`lÐ5nÐ5nÑoÔoÐoØ�ŠÐ2°LÑAÔAÐAð 	�Š�œŸš |Ñ4Ô4Ð6eÑfÔfÐfÝ�, ¨gÐ6Ñ6Ô6ð 	#¸!Ý”i ‘l”lˆGð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	×Ò˜ Ô-Ð.>Ô?ÕA[Ñ\Ô\Ð\Ø×Ò˜Ð!1Ô2°;Ô?ÐARÑSÔSÐSØ×Ò˜Ð!2Ô3Ð4EÔFÀtÔLÈcÑRÔRÐRØ×Ò˜Ð!2Ô3Ð4EÔFÀtÔLÈeÑTÔTÐTØ�Š˜Ð 4Ô5Ð6SÔTÑUÔUÐUð 	�Š�œŸš Ñ7Ô7Ð9dÑeÔeÐeÝ�/ 4Ñ(Ô(ð 	¨AØ—V’V˜A‘Y”YˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò˜Ð!5Ð7nÑoÔoÐoð 	�Š�œŸšÐ'8Ñ9Ô9Ð;aÑbÔbÐbÝÐ# S°7Ð;Ñ;Ô;ð 	$¸qÝ”y ‘|”|ˆHð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à�Š�o xÑ0Ô0Ð0ð 	�Š�œŸšÐ';Ñ<Ô<Ð>gÑhÔhÐhÝÐ&¨°gÐ>Ñ>Ô>ð 	"À!Ý”Y˜q‘\”\ˆFð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à×Ò˜Ð 0Ô1Õ3MÑNÔNÐNØ×Ò˜ Ô/µ´·²ÀÑ1NÔ1NÑOÔOÐOØ×Ò˜ Ô/µ´·²ÀÑ1NÔ1NÑOÔOÐOÐOÐOsH   ÅE9Å9E=Æ E=ÊJ#Ê#J'Ê*J'Ì
L+Ì+L/Ì2L/ÎN2Î2N6Î9N6N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r+   rY   rŒ   r�   r¨   rÊ   © r#   r!   r   r   #   sš   € € € € € ØpÐpðeð eð eð=ð =ð =ð6Bð 6Bð 6Bðv:$ð :$ð :$ð~(Mð (Mð (MðZ4ð 4ð 4ð@IPð IPð IPð IPð IPr#   r   Ú__main__)&rÎ   ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arrr   r&   r)   Úsysr   r½   Úunittestr'   ÚinsertrÃ   rn   ro   rp   Ú"src.agentic_engine.flight_recorderr   Ú%src.agentic_engine.invariant_sentinelr   r   r   r   Ú#src.agentic_engine.realtime_watcherr	   Ú"src.assistant_tool.core_shm_bridger
   r   Ú$src.assistant_tool.optical_hp_sensorr   ÚTestCaser   rË   ÚmainrÏ   r#   r!   ú<module>rá      s�  ðð
ð 
ð € € € € € € € € € € € € €€€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø €€€à „‡‚��2”7—?’? 2¤7§<¢<°´·²ÀÑ0IÔ0IÈ4Ñ#PÔ#PÑQÔQÑ RÔ RÐ Rà GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ >Ð >Ð >Ð >Ð >Ð >ð`Pð `Pð `Pð `Pð `P˜8Ô,ñ `Pô `Pð `PðD	 ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr#   