
    j              	          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ej                  j                  ej                  j                  ej                  j                  ej                  j                  e                        Zeej                  vrej                  j                  de       ddZ edd      ZddZ ej"                  d	      d
        ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)u  tests/regression/test_team_lead_subagent_contract_2553plus56.py

task-2553+56 TRACK A regression — 8 confirmation items verified against
the REAL runtime entrypoints (mock-only = FAIL).

Hard mock-only gate: this suite imports and exercises the genuine
anu_v3 / dispatch / utils modules through
scripts.diag_team_lead_subagent_contract_2553plus56.run_diagnosis().
If those real modules are unavailable / mocked, collection fails and
the suite FAILS (no mock fallback path exists).
    )annotationsNc                   | t         j                  v rt         j                  |    S t        j                  j	                  | t
        j                  j                  t        |            }||j                  J t        j                  j                  |      }|t         j                  | <   |j                  j                  |       |S )N)sysmodules	importlibutilspec_from_file_locationospathjoin
_REPO_ROOTloadermodule_from_specexec_module)modnamerelpathspecmods       S/home/jay/workspace/tests/regression/test_team_lead_subagent_contract_2553plus56.py_load_by_pathr      s    #++{{7##>>11j'2D  777
..
)
)$
/CCKKKKC J    +diag_team_lead_subagent_contract_2553plus56z6scripts/diag_team_lead_subagent_contract_2553plus56.pyc                    	 t        j                  |       S # t        $ r&}t        j                  d| d|d       Y d}~yd}~ww xY w)z?Import a real module; FAIL (not skip) if it cannot be resolved.zreal entrypoint z unavailable (u4   ); mock-only execution is FAIL per task-2553+56 §3.N)r   import_module	Exceptionpytestfail)r   excs     r   _require_realr   1   sR    
&&w// 
wkw ?@ @	
 	

s    	AAAmodule)scopec                     t        d       t        d       t        d       t        d       t        d       t        d       t        j                         } | d   dk(  sJ | S )	Nzanu_v3.goal_result_planner%anu_v3.authoritative_verdict_selectoranu_v3.callback_owner_validatorzanu_v3.self_collector_guardz dispatch.callback_owner_enforcerzutils.delegate_controllermoderead_only_diagnosis)r   _DIAGrun_diagnosis)results    r   diagr*   <   s`     ./9:34/045-.  "F&>2222Mr   c                L    | d   D ]  }|d   |k(  s|c S  t        d| d      )Nchecksidzcheck z missing)AssertionError)r*   cidcs      r   _checkr1   J   s;    (^ T7c>H 6#h/
00r   c                    | d   dk(  sJ | d   dk(  sJ t        | d         dk(  sJ | d   D ch c]  }|d   	 c}t        t        dd	            k(  sJ y c c}w )
Nschemaz#diag.team_lead_subagent_contract.v1task_idtask-2553+56r,      r-      	   )lensetranger*   r0   s     r   #test_diag_runs_against_real_modulesr=   Q   sm    >BBBB	?n,,,tH~!###!(^,AdG,E!QK0@@@@,s   Ac                n    t        | d      }|d   dk(  sJ |d   g k(  sJ t        |d         h dk(  sJ y )Nr7   verdictGAPpresent_fieldsmissing_fields>   subagent_rolessubagents_usedsubagent_outputs_summaryr1   r:   r<   s     r   &test_check1_subagent_result_fields_gaprG   X   sU    tQAY<5   "$$$q!"# (   r   c                B    t        | d      }|d   dk(  sJ |d   du sJ y )N   r?   PARTIALself_chain_quarantinedTr1   r<   s     r   9test_check2_subagent_output_is_evidence_not_authoritativerM   d   s3    tQAY<9$$$%&$...r   c                T    t        | d      }|d   dk(  sJ |d   du sJ |d   du sJ y )N   r?   rJ   functionally_non_authoritativeTexplicit_proposed_verdict_fieldFrL   r<   s     r   4test_check3_team_lead_verdict_proposed_only_implicitrR   j   sG    tQAY<9$$$-.$666./5888r   c                B    t        | d      }|d   dk(  sJ |d   du sJ y )N   r?   PASScode_enforcedTrL   r<   s     r   8test_check4_anu_independent_collector_only_authoritativerW   q   s2    tQAY<6!!!_%%%r   c                f    t        | d      }|d   dk(  sJ |d   du sJ |d   du sJ d|d	   v sJ y )
N   r?   rJ   /executor_self_key_guard_blocks_subagent_channelT$explicit_subagent_scoped_write_guardFsend_message!delegate_controller_blocked_toolsrL   r<   s     r   -test_check5_subagent_direct_anu_guard_partialr^   x   s[    tQAY<9$$$>?4GGG34===QBCCCCr   c                T    t        | d      }|d   dk(  sJ |d   du sJ |d   du sJ y )N   r?   rU   self_key_registration_blockedTanu_key_registration_allowedrL   r<   s     r   /test_check6_team_lead_callback_owner_is_anu_keyrc      sG    tQAY<6!!!,-555+,444r   c                Z    t        | d      }|d   dk(  sJ t        |d         h dk(  sJ y )N   r?   r@   missing>   expected_filesforbidden_filesunresolved_findingsrF   r<   s     r   7test_check7_expected_forbidden_unresolved_recording_gaprj      s?    tQAY<5   q| !   r   c                B    t        | d      }|d   dk(  sJ |d   du sJ y )Nr6   r?   r@   concealment_classifier_presentFrL   r<   s     r   %test_check8_concealment_warn_hold_gaprm      s3    tQAY<5   -.%777r   c                F    | d   du sJ | d   dk(  sJ | d   ddddk(  sJ y )	N-authoritative_callback_boundary_code_enforcedToverall(BOUNDARY_ENFORCED_SUBAGENT_CONTRACT_GAPScountsrI   rO   )rU   rJ   r@    )r*   s    r   1test_overall_boundary_enforced_with_subagent_gapsrt      sB    ?@DHHH	?HHHH>aAa@@@@r   c            
         t        j                  d      } | j                  dddddddd	      }| j                  |gdd
g      }|j                  J |j
                  | j                  k(  sJ y)zCDirect real-entrypoint assertion (independent of the diag wrapper).r#   collector_resultrU   r5   EXECANUTindependent_anu)kindr?   r4   executor_keycollector_keycollector_rolesession_is_executor_selfclaimed_originANUKEY)r4   anu_keysN)r   r   VerdictRecordselect_authoritative_verdictauthoritative_verdictclassificationAUTHORITATIVE_VERDICT_PENDING)avsrecress      r   7test_real_authoritative_selector_quarantines_self_chainr      s    

!
!"I
JC


!%(  	C 
*
*	~
 + C $$,,,!B!BBBBr   c            	         t        j                  d      } | j                  ddddddd      }t        j                  | j
                        5  | j                  |       d	d	d	       y	# 1 sw Y   y	xY w)
z?Direct real-entrypoint assertion: self-key callback is blocked.r$   r5   c38fb9955616e24drx   c1c2c0)r4   r{   r|   r}   normal_collector_cron_idfallback_callback_cron_iddispatch_cron_idN)r   r   validate_callback_owner_runtimer   raisesCallbackRegistrationBlockedassert_registration_permitted)covvals     r   1test_real_callback_owner_blocks_executor_self_keyr      st    

!
!"C
DC

-
-'(!%"& . C 
s66	7 /))#./ / /s   A((A1)r   strr   r   )r   r   )r/   int) __doc__
__future__r   r   importlib.utilr
   r   r   r   dirnameabspath__file__r   insertr   r'   r   fixturer*   r1   r=   rG   rM   rR   rW   r^   rc   rj   rm   rt   r   r   rs   r   r   <module>r      s   
 #   	 
 WW__RWW__RWW__RWW__X=V-WXY
SXXHHOOAz"
 	1<	
 h
  
1A	/9&D58AC(/r   