
    4j              	         d Z ddlm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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        |            }g }d }||u}|}|r|j                  }d }||u}	|	}|slt        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }
dd|
iz  }|j!                  |       |rt        j                  d	fdf      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }d	d
|iz  }|j!                  |       t        j"                  |d      i z  }dd|iz  }t%        t        j&                  |            d x}x}x}x}x}x}	}t        j                  j)                  |      }|t         j                  | <   |j                  j+                  |       |S )N)is not)z%(py2)s is not %(py5)sspec)py2py5z%(py7)spy7)z5%(py11)s
{%(py11)s = %(py9)s.loader
} is not %(py14)s)py9py11py14z%(py16)spy16r   zassert %(py19)spy19)sysmodules	importlibutilspec_from_file_locationospathjoin
_REPO_ROOTloader
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprappend_format_boolopAssertionError_format_explanationmodule_from_specexec_module)modnamerelpathr   @py_assert1@py_assert4@py_assert3@py_assert0@py_assert10@py_assert13@py_assert12@py_format6@py_format8@py_format15@py_format17@py_format18@py_format20mods                    S/home/jay/workspace/tests/regression/test_team_lead_subagent_contract_2553plus56.py_load_by_pathr6      sY   #++{{7##>>11j'2D 8t74t77474 777774t77777747774777t77777774777777777777777477777777777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     r5   _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(  }|slt        j                  d	|fd
||f      t        j
                  |      t        j
                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| 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==z%(py1)s == %(py4)spy1py4assert %(py6)spy6)r?   _DIAGrun_diagnosisr   r   r   r!   r"   )resultr*   r)   @py_assert2@py_format5@py_format7s         r5   diagrU   <   s     ./9:34/045-.  "F&>222>22222>2222>22222222222Mr7   c                L    | d   D ]  }|d   |k(  s|c S  t        d| d      )Nchecksidzcheck z missing)r!   )rU   cidcs      r5   _checkr[   J   s;    (^ T7c>H 6#h/
00r7   c           
        | d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| d   }d	}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| d
   }t        |      }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t
              rt        j                  t
              ndt        j                  |      t        j                  |      t        j                  |      dz  }	dd|	iz  }
t        t        j                  |
            d x}x}x}}| d
   D ch c]  }|d   	 }}d}d}t        ||      }t        |      }||k(  }|s:t        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}x}}y c c}w )Nschemaz#diag.team_lead_subagent_contract.v1rG   rI   rJ   rM   rN   task_idtask-2553+56rW      z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)slenpy0r   rL   r	   assert %(py9)sr
   rX      	   )z[%(py1)s == %(py12)s
{%(py12)s = %(py3)s(%(py10)s
{%(py10)s = %(py4)s(%(py6)s, %(py8)s)
})
}setrange)rK   py3rL   rN   py8py10py12zassert %(py14)sr   )r   r   r   r!   r"   rb   r   r   r   ri   rh   )rU   r*   r)   rR   rS   rT   r'   @py_assert6@py_assert5r/   @py_format10rZ   @py_assert7@py_assert9@py_assert11@py_format13r0   s                    r5   #test_diag_runs_against_real_modulesru   Q   s   >BBB>BBBBB>BBBB>BBBBBBBBBBB	?,n,?n,,,,?n,,,?,,,n,,,,,,,H~#3~#!#!####!######3###3###~######!#######!(^,AdG,@,!@Q@E!QK@K0@@,0@@@@@,0@@@@,@@@@@@@@@@@@@@@E@@@E@@@!@@@Q@@@K@@@0@@@@@@@@@,s   2M*c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }g }||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d
   }t        |      }h d}||k(  }	|	st        j                  d|	fd||f      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      dz  }
dd|
iz  }t	        t        j
                  |            d x}x}x}	}y )Nrf   verdictGAPrG   rI   rJ   rM   rN   present_fieldsmissing_fields>   subagent_rolessubagents_usedsubagent_outputs_summaryra   rh   rc   re   r
   
r[   r   r   r   r!   r"   rh   r   r   r   rU   rZ   r*   r)   rR   rS   rT   r'   rn   ro   r/   rp   s               r5   &test_check1_subagent_result_fields_gapr   X   s   tQAY< 5 <5    <5   <   5       $"$"$$$$"$$$$$$"$$$$$$$!" 3"#  ( # (   	# (   	  	    	    	 #   	 $   	(     	  r7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )N   rw   PARTIALrG   rI   rJ   rM   rN   self_chain_quarantinedTisz%(py1)s is %(py4)sr[   r   r   r   r!   r"   rU   rZ   r*   r)   rR   rS   rT   s          r5   9test_check2_subagent_output_is_evidence_not_authoritativer   d   s    tQAY<$9$<9$$$$<9$$$<$$$9$$$$$$$%&.$.&$....&$...&...$.......r7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )N   rw   r   rG   rI   rJ   rM   rN   functionally_non_authoritativeTr   r   explicit_proposed_verdict_fieldFr   r   s          r5   4test_check3_team_lead_verdict_proposed_only_implicitr   j   s   tQAY<$9$<9$$$$<9$$$<$$$9$$$$$$$-.6$6.$6666.$666.666$6666666./858/58888/5888/88858888888r7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )N   rw   PASSrG   rI   rJ   rM   rN   code_enforcedTr   r   r   r   s          r5   8test_check4_anu_independent_collector_only_authoritativer   q   s    tQAY<!6!<6!!!!<6!!!<!!!6!!!!!!!_%%%%%%%%%%%%%%%%%%%r7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}d}|d   }||v }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )N   rw   r   rG   rI   rJ   rM   rN   /executor_self_key_guard_blocks_subagent_channelTr   r   $explicit_subagent_scoped_write_guardFsend_message!delegate_controller_blocked_tools)in)z%(py1)s in %(py4)sr   r   s          r5   -test_check5_subagent_direct_anu_guard_partialr   x   sT   tQAY<$9$<9$$$$<9$$$<$$$9$$$$$$$>?G4G?4GGGG?4GGG?GGG4GGGGGGG34==4====4===4==========CQBCC>CCCCC>CCCC>CCCCCCCCCCCr7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )N   rw   r   rG   rI   rJ   rM   rN   self_key_registration_blockedTr   r   anu_key_registration_allowedr   r   s          r5   /test_check6_team_lead_callback_owner_is_anu_keyr      s   tQAY<!6!<6!!!!<6!!!<!!!6!!!!!!!,-55-5555-555-5555555555+,44,4444,444,4444444444r7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }t        |      }h d
}||k(  }	|	st        j                  d|	fd||f      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      dz  }
dd|
iz  }t	        t        j
                  |            d x}x}x}	}y )N   rw   rx   rG   rI   rJ   rM   rN   missing>   expected_filesforbidden_filesunresolved_findingsra   rh   rc   re   r
   r~   r   s               r5   7test_check7_expected_forbidden_unresolved_recording_gapr      s4   tQAY< 5 <5    <5   <   5       | 3|  !  !   	 !   	  	    	    	    	    	!     	  r7   c                   t        | d      }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )Nr`   rw   rx   rG   rI   rJ   rM   rN   concealment_classifier_presentFr   r   r   r   s          r5   %test_check8_concealment_warn_hold_gapr      s    tQAY< 5 <5    <5   <   5       -.7%7.%7777.%777.777%7777777r7   c                
   | d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| d   }d	}||k(  }|slt        j                  d
|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| d   }dddd}||k(  }|slt        j                  d
|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )N-authoritative_callback_boundary_code_enforcedTr   r   rJ   rM   rN   overall(BOUNDARY_ENFORCED_SUBAGENT_CONTRACT_GAPSrG   rI   countsr   r   )r   r   rx   )r   r   r   r!   r"   )rU   r*   r)   rR   rS   rT   s         r5   1test_overall_boundary_enforced_with_subagent_gapsr      s    ?@HDH@DHHHH@DHHH@HHHDHHHHHHH	?HHH?HHHHH?HHHH?HHHHHHHHHHH>@aAa@@>@@@@@>@@@@>@@@@@@@@@@@r7   c            
     @   t        j                  d      } | j                  dddddddd	      }| j                  |gdd
g      }|j                  }d}||u }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }| j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }	dd|	iz  }
t        t        j                  |
            dx}x}}y)zCDirect real-entrypoint assertion (independent of the diag wrapper).rC   collector_resultr   r_   EXECANUTindependent_anu)kindrw   r^   executor_keycollector_keycollector_rolesession_is_executor_selfclaimed_originANUKEY)r^   anu_keysNr   )z=%(py2)s
{%(py2)s = %(py0)s.authoritative_verdict
} is %(py5)sres)rd   r   r   zassert %(py7)sr	   rG   )zi%(py2)s
{%(py2)s = %(py0)s.classification
} == %(py6)s
{%(py6)s = %(py4)s.AUTHORITATIVE_VERDICT_PENDING
}avs)rd   r   rL   rN   zassert %(py8)srk   )r   r:   VerdictRecordselect_authoritative_verdictauthoritative_verdictr   r   r   r   r   r   r!   r"   classificationAUTHORITATIVE_VERDICT_PENDING)r   recr   r'   r(   r)   r.   r/   ro   rT   @py_format9s              r5   7test_real_authoritative_selector_quarantines_self_chainr      sp   

!
!"I
JC


!%(  	C 
*
*	~
 + C $$,,$,,,,$,,,,,,3,,,3,,,$,,,,,,,,,,B!B!BB!BBBBB!BBBBBBB3BBB3BBBBBBBBBBBBBBB!BBBBBBBBr7   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.rD   r_   c38fb9955616e24dr   c1c2c0)r^   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     r5   1test_real_callback_owner_blocks_executor_self_keyr      st    

!
!"C
DC

-
-'(!%"& . C 
s66	7 /))#./ / /s   A((A1)r%   strr&   r   )r%   r   )rY   int)&__doc__
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   importlib.utilr   r   r<   r   dirnameabspath__file__r   insertr6   rO   r?   fixturerU   r[   ru   r   r   r   r   r   r   r   r   r   r   r    r7   r5   <module>r      s   
 #      	 
 WW__RWW__RWW__RWW__X=V-WXY
SXXHHOOAz"
 	1<	
 h
  
1A	/9&D58AC(/r7   