
    h                         S r  " S S5      r\S:X  a  \" S5        \" 5       r\" S5        \R                  SSS9r\" S	S
R                  \S   5       35        \" S\S    35        \" S5        \R                  SS5      r\" S\S    35        \" S5        \R                  SS5      rS\;   a  \" S\S    35        \" S\
" \R                  5       35        \" S5        gg)z2
Advanced Causality - Multi-step causal reasoning
c                   6    \ rS rSrS rS rS	S jrS rS rSr	g)
AdvancedCausality   c                 2    / U l         U R                  5         g )N)causal_chainsload_chainsselfs    H/home/james-whalen/eden-agi-project/core/reasoning/advanced_causality.py__init__AdvancedCausality.__init__   s        c                 B    / SQSS./ SQSS./ SQSS./ SQS	S./U l         g
)zLoad complex causal chains)rain
wet_groundslipperyrisk_of_fallingphysical)chaintype)practiceskill_improvementbetter_performancesuccesslearning)exercisestronger_musclesbetter_endurancehealth
biological)
investmentcompany_growthprofitwealtheconomicNr   r   s    r
   r   AdvancedCausality.load_chains
   sD     O"
 \"
 X$
 N"
r   c           	          U R                    HX  nUS   nUR                  5       US   R                  5       ;   d  M/  US[        US-   [        U5      5       nUUUS   US   SS.s  $    U/ S	S
.$ )zPredict outcome of causal chainr       N   r   g?)startr   final_outcomer   
confidenceunknown)r+   r   r,   )r   lowerminlen)r	   starting_conditionsteps
chain_datar   result_chains         r
   predict_outcome!AdvancedCausality.predict_outcome   s    ,,Jw'E!'')U1X^^-==$%>c%'3u:&>?/)%1"%5&v."%  - ,b9UUr   c                    U R                    Hs  nUS   nX;   d  M  X$;   d  M  UR                  U5      nUR                  U5      nXe:  d  M?  XEUS-    nU SU S3nUSR                  U5      -  nU[        U5      S-
  S.s  $    SSS.$ )	z!Explain how cause leads to effectr   r)   z
 leads to z
 through:     → )explanationr3   zNo clear causal path foundr(   )r   indexjoinr1   )	r	   causeeffectr4   r   	cause_idx
effect_idxpathr:   s	            r
   explain_causality#AdvancedCausality.explain_causality0   s    ,,Jw'E~&/!KK.	"[[0
) :a<8D%*G:fXZ"HK7<<#55K+6T1MM -  <aHHr   c                     U R                    HX  nU[        U5      ;   d  M  US   nX$;   d  M   UR                  U5      nUUSUS-    XES-   S SU S[        XES-   S 5       S3S.s  $    USS	.$ )
z"Model intervention in causal chainr   Nr)   zIntervening at 'z' prevents z downstream effects)interventionbefore	preventedmessagezIntervention point not found)rE   rH   )r   strr;   r1   )r	   
chain_nameintervention_pointr4   r   idxs         r
   	interveneAdvancedCausality.interveneA   s     ,,JS_,"7+%.++&89C );"'Q-%*q56]%56H5IUXY^cd_d_eYfUgThh{#|	  - !3?]^^r   r%   N)   )
__name__
__module____qualname____firstlineno__r   r   r6   rB   rM   __static_attributes__ r   r
   r   r      s    
*V"I"_r   r   __main__zADVANCED CAUSALITY TESTu!   
🔮 Predicting from 'practice':r   rO   )r3   z
   Chain: r9   r   z   Final outcome: r,   u&   
💡 Explaining practice → success:r   z   r:   u    
🛑 Intervening at 'slippery':r   r   rG   z   Prevents: u   
📊 Causal chains: u#   
✅ ADVANCED CAUSALITY OPERATIONALN)__doc__r   rP   print	causalityr6   resultr<   rB   rM   r1   r   rU   r   r
   <module>r[      s  M_ M_^ z	
#$!#I 

./&&z&;F	Jw||F7O45
67	vo67
89 

34((Y?F	C}%&
'( 

-.  Z8Fff[1234	"3y'>'>#?"@
AB	
011 r   