
    ?HiD                        S r SSKrSSKrSSKrSSKJrJr  SSKJr  SSK	J
r
  SSKJrJrJrJr  SSKJr  SSKr\
" S5      r\S	-  S
-  r\S-  S-  S-  r\S-  S-  S-  r\R.                  R1                  SSS9  \R.                  R1                  SSS9  \R2                  " \R4                  S\R6                  " \5      \R8                  " 5       /S9  \R:                  " \5      r " S S\5      r \ " S S5      5       r!\ " S S5      5       r"\ " S S5      5       r#\ " S S5      5       r$ " S S5      r% " S S 5      r& " S! S"5      r'S# r(S$ r)\S%:X  a  \)" 5         gg)&z{
Eden Meta-Cognition Loop (MCL)
Top Priority Module: Enables Eden to evaluate, select, and learn from reasoning strategies
    N)	dataclassasdict)datetime)Path)DictListOptionalAny)Enumz
/Eden/CORElogszphi_meta.logphi_fractalmeta_cognitionzmeta_policy_state.jsonzstrategy_history.jsonlT)parentsexist_okz/%(asctime)s - MCL - %(levelname)s - %(message)s)levelformathandlersc                   8    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrg)StrategyType&   zAvailable reasoning strategiesdirect_reasoning
analogicaldecompositioncausal_chaincounterfactualconstraint_satisfactionpattern_matching
simulation N)__name__
__module____qualname____firstlineno____doc__DIRECT_REASONING
ANALOGICALDECOMPOSITIONCAUSAL_CHAINCOUNTERFACTUALCONSTRAINT_SATISFACTIONPATTERN_MATCHING
SIMULATION__static_attributes__r       P/home/james-whalen/RECOVERED/EDEN_CORE_BEST/consciousness/meta_cognition_loop.pyr   r   &   s0    ()J#M!L%N7)Jr.   r   c                   x    \ rS rSr% Sr\\S'   Sr\\   \S'   Sr	\\   \S'   Sr
\\S'   Sr\\\4   \S	'   S
 rSrg)Observation1   zInput observation/problemcontentN	task_typedomain      ?
complexitymetadatac                 .    U R                   c  0 U l         g g Nr8   selfs    r/   __post_init__Observation.__post_init__:       == DM !r.   r;   )r    r!   r"   r#   r$   str__annotations__r4   r	   r5   r7   floatr8   r   r
   r>   r-   r   r.   r/   r1   r1   1   sG    #L#Ix}# FHSM J#Hd38n#r.   r1   c                   d    \ rS rSr% SrSr\\S'   Sr\\S'   Sr	\
\   \S'   Sr\
\   \S'   S	 rS
rg)BeliefState>   zCurrent belief/knowledge stater6   
confidenceuncertainty_estimateNrelevant_schemasactive_goalsc                 V    U R                   c  / U l         U R                  c  / U l        g g r:   )rI   rJ   r<   s    r/   r>   BeliefState.__post_init__F   s/      ($&D!$ "D %r.   )rJ   rI   )r    r!   r"   r#   r$   rG   rC   rB   rH   rI   r   rA   rJ   r>   r-   r   r.   r/   rE   rE   >   s<    (J"%%%"&d3i&"L$s)"#r.   rE   c                   z    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \	\S'   \
\   \S'   S	r\\\	4   \S
'   S rSrg	)StrategyResultL   zResult of executing a strategystrategysuccessrG   execution_timeoutcomereasoning_traceNr8   c                 .    U R                   c  0 U l         g g r:   r;   r<   s    r/   r>   StrategyResult.__post_init__W   r@   r.   r;   )r    r!   r"   r#   r$   r   rB   boolrC   r
   r   rA   r8   r   r>   r-   r   r.   r/   rN   rN   L   sB    (ML#Y#Hd38n#r.   rN   c                       \ rS rSr% Sr\\\4   \S'   \\\	4   \S'   \\\	4   \S'   \\\4   \S'   \\S'   Sr
\	\S	'   S
rg)MetaPolicyState[   z"Meta-policy weights and statisticsstrategy_weightsstrategy_countsstrategy_successesstrategy_avg_confidencelast_updatedr   total_episodesr   N)r    r!   r"   r#   r$   r   rA   rC   rB   intr`   r-   r   r.   r/   rY   rY   [   sO    ,3:&&#s(^#S#X&!#u*--NCr.   rY   c                       \ rS rSrSrS rS\S\S\S\	4S jr
S	\S
\S\4S jrS	\S
\S\4S jrS	\S
\S\4S jrS	\S
\S\4S jrS	\S
\S\4S jrS	\S
\S\4S jrS	\S
\S\4S jrS	\S
\S\4S jrSrg)StrategyBanke   z"Repository of reasoning strategiesc                    [         R                  U R                  [         R                  U R                  [         R
                  U R                  [         R                  U R                  [         R                  U R                  [         R                  U R                  [         R                  U R                  [         R                  U R                   0U l        g r:   )r   r%   _direct_reasoningr&   _analogical_reasoningr'   _decompositionr(   _causal_chainr)   _counterfactualr*   _constraint_satisfactionr+   _pattern_matchingr,   _simulation
strategiesr<   s    r/   __init__StrategyBank.__init__h   s    ))4+A+A##T%?%?&&(;(;%%t'9'9'')=)=00$2O2O))4+A+A##T%5%5	
r.   rP   observationbelief_statereturnc                    [         R                  " 5       n U R                  U   " X#5      n[         R                  " 5       U-
  R                  5       n[	        UUR                  SS5      UR                  SS5      UUR                  S5      UR                  S/ 5      UR                  S0 5      S9$ ! [         aJ  n[        R                  S	UR                   S
U 35        [	        USSSS S[        U5       3/S9s S nA$ S nAff = f)NrQ   FrG   r6   rS   rT   r8   )rP   rQ   rG   rR   rS   rT   r8   z	Strategy z	 failed: g        zError: )rP   rQ   rG   rR   rS   rT   )r   nowrn   total_secondsrN   get	ExceptionloggererrorvaluerA   )r=   rP   rq   rr   
start_timeresultrR   es           r/   execute_strategyStrategyBank.execute_strategyt   s    \\^
	__X.{IF&llnz9HHJN!!

9e4!::lC8-

9- &

+<b AJ3   	LL9X^^$4IaSAB!!5S"DWSQRVHCUBV 	s   BB0 0
D:?C?9D?Dobsbeliefc                     SSUR                   S S  3S/nUR                  S:  a  SOSn[        R                  " 5       U:  nXTSU(       a  SOS	 3US
S0S.$ )NzAnalyzing problem directlyzTask: d   zApplying logical inferencer6   ffffff?zDirect solution: rQ   failedstrategy_typedirectrQ   rG   rS   rT   r8   )r3   r7   randomr=   r   r   tracerG   rQ   s         r/   rf   StrategyBank._direct_reasoning   sj    -DS8I7J/KMijNNS0Sc
--/J.*9X*NO$?H2M
 	
r.   c                     SS[        UR                  5       S3S/nUR                  (       a  SOSn[        R                  " 5       U:  nXTSU(       a  SOS	 3US
[        UR                  5      0S.$ )NzSearching for similar problemszFound z schemaszAdapting solution皙?皙?zAnalogical: zadapted from pastz
no analogyschemas_usedr   lenrI   r   r   s         r/   rg   "StrategyBank._analogical_reasoning   sv    1VC@W@W<X;YYa3bdwx"33S
--/J.%W&9,%WX$>3vG^G^C_2`
 	
r.   c                     / SQnUR                   S:  a  SOSn[        R                  " 5       U:  nXTSU(       a  SOS 3USS	0S
.$ )N)zDecomposing into subproblemszIdentified 3 subproblemszSolving eachzCombining solutions333333?r   r6   zDecomposed: zcombined successfullyzsubproblem failedsubproblems   r   )r7   r   r   s         r/   rh   StrategyBank._decomposition   sQ    sNNS0Sc
--/J.%&=Na%bc$=!2D
 	
r.   c                 b    / SQnSn[         R                   " 5       U:  nXTSU(       a  SOS 3US.$ )N)zBuilding causal chainu   A → B → C → D (goal)zValidating links?zCausal chain: 	validatedzbroken linkrQ   rG   rS   rT   r   r   s         r/   ri   StrategyBank._causal_chain   s;    [
--/J.'wM'RS$
 	
r.   c                 b    / SQnSn[         R                   " 5       U:  nXTSU(       a  SOS 3US.$ )N)zGenerating counterfactualszWhat if X was different?zComparing outcomesr   zCounterfactual: zfound better pathzno improvementr   r   r   s         r/   rj   StrategyBank._counterfactual   s=    `
--/J.)*=N^)_`$
 	
r.   c                 b    / SQnSn[         R                   " 5       U:  nXTSU(       a  SOS 3US.$ )N)zIdentifying constraintszSearching solution spacezValidating constraintsr   zConstraint: zfeasible solutionzno solutionr   r   r   s         r/   rk   %StrategyBank._constraint_satisfaction   s<    a
--/J.%W&9-%XY$
 	
r.   c                     SS[        UR                  5       S3S/nUR                  (       a  SOSn[        R                  " 5       U:  nXTSU(       a  SOS	 3US
.$ )NzScanning for patternsz
Database: z	 patternszMatching...g      ?333333?z	Pattern: zfound matchzno matchr   r   r   s         r/   rl   StrategyBank._pattern_matching   sc    (Js6;R;R7S6TT]*^`mn#44T#
--/J."G="LM$
 	
r.   c                 b    / SQnSn[         R                   " 5       U:  nXTSU(       a  SOS 3US.$ )N)zRunning mental simulationzSimulating 5 steps aheadzEvaluating outcomesr   zSimulation: zpredicted successzpredicted failurer   r   r   s         r/   rm   StrategyBank._simulation   s=    `
--/J.%W&9J]%^_$
 	
r.   )rn   N)r    r!   r"   r#   r$   ro   r   r1   rE   rN   r   r   rf   rg   rh   ri   rj   rk   rl   rm   r-   r   r.   r/   rc   rc   e   s    ,

 K &16D,
[ 
+ 
$ 

 
k 
d 

+ 
{ 
t 

 
k 
d 

; 
 
 

K 
 
QU 

[ 
+ 
$ 

{ 
K 
D 
r.   rc   c                       \ rS rSrSr\4S\4S jjrS\4S jr	S r
SS	\S
\\   S\\   4S jjrS\4S jrS\\\4   4S jrSrg)MetaPolicyManager   z2Manages strategy selection using Thompson sampling
state_pathc                 :    Xl         U R                  5       U l        g r:   )r   _load_or_initialize_statestate)r=   r   s     r/   ro   MetaPolicyManager.__init__   s    $335
r.   rs   c           
         U R                   R                  5       (       a]   [        U R                   S5       n[        R                  " U5      nS S S 5        [
        R                  SWS    S35        [        S
0 UD6$ [         Vs/ s H  oDR                  PM     nn[        U Vs0 s H  oDS_M     snU Vs0 s H  oDS_M     snU Vs0 s H  oDS_M     snU Vs0 s H  oDS_M     sn[        R                  " 5       R                  5       SS	9$ ! , (       d  f       N= f! [         a"  n[
        R                  SU 35         S nANS nAff = fs  snf s  snf s  snf s  snf s  snf )NrzLoaded meta-policy: r`   	 episodeszFailed to load state:       ?r   r6   )r[   r\   r]   r^   r_   r`   r   )r   existsopenjsonloadry   inforY   rx   rz   r   r{   r   ru   	isoformat)r=   fdatar~   srn   s         r/   r   +MetaPolicyManager._load_or_initialize_state   s2   ??!!##;$//3/199Q<D 0248H3I2J)TU&... (44|!gg|
4.89jfj9+56:aT:6.89j1j95?$@ZVZ$@!113
 	
 0/  ;5aS9::; 5969$@sL   D  D.D  E%E7E
	EE#
DD   
E*EEc                 t   [         R                  " 5       R                  5       U R                  l        [        U R                  S5       n[        R                  " [        U R                  5      USS9  S S S 5        [        R                  SU R                  R                   S35        g ! , (       d  f       N<= f)Nw   )indentzSaved meta-policy: r   )r   ru   r   r   r_   r   r   r   dumpr   ry   r   r`   )r=   r   s     r/   
save_stateMetaPolicyManager.save_state   su    "*,,.":":"<

$//3'1IIfTZZ(!A6 ()$***C*C)DINO ('s   	*B))
B7Nnrq   c                 L   0 nU R                   R                  R                  5        GH}  nU R                   R                  R	                  US5      nU R                   R
                  R	                  US5      U-
  nUS-   nUS-   n[        R                  R                  Xx5      n	U R                   R                  R	                  US5      n
U R                   R                  R	                  US5      nX-  U-  nU(       af  UR                  S:  a#  U[        R                  R                  :X  a  US-  nUR                  S:  a#  U[        R                  R                  :X  a  US-  nU R                   R
                  R	                  US5      nUS:X  a  US	-  nOUS
:  a  US-  nXU'   GM     [        UR!                  5       S SS9SU nU VVs/ s H  u  nn[        U5      PM     nnn["        R%                  SU Vs/ s H  nUR                  PM     sn 35        U$ s  snnf s  snf )zFSelect top N strategies using Thompson sampling with context awarenessr      r   r6   r   g       @r   g      ?g?r   gffffff?c                     U S   $ Nr   r   xs    r/   <lambda>5MetaPolicyManager.select_strategies.<locals>.<lambda>  s    qtr.   TkeyreverseNz
Selected: )r   r[   keysr]   rw   r\   npr   betar^   r7   r   r%   r{   r'   sorteditemsry   r   )r=   r   rq   strategy_scoresstrategy_name	successesfailuresalphar   sampled_success_ratebase_weightavg_confidencescorecounttop_strategiesname_selectedr   s                      r/   select_strategies#MetaPolicyManager.select_strategies   s   !ZZ88==?M

5599-KIzz1155mQG)SHMEa<D#%99>>%#> **5599-MK!ZZ??CCMSVWN(6GE ))C/M\EbEbEhEh4hSLE ))C/M\E_E_EeEe4eSLE JJ..22=!DEz-2M*; @>   5 5 7^UYZ[]\]^6DEn74L&nEj8!<8a!''8!< =>? F!<s   H:H!
r}   c                    UR                   R                  nU R                  R                  R	                  US5      S-   U R                  R                  U'   UR
                  (       a@  U R                  R                  R	                  US5      S-   U R                  R                  U'   U R                  R                  R	                  US5      nU R                  R                  U   nX4S-
  -  UR                  -   U-  nXPR                  R                  U'   SnU R                  R                  U   nUR
                  (       a  XvUR                  -  -   nOXvSUR                  -
  -  -
  n[        SU5      U R                  R                  U'   U R                  =R                  S-  sl        [        R                  SU SUS 35        g )Nr   r   r6   皙?zUpdated 	: weight=.3f)rP   r{   r   r\   rw   rQ   r]   r^   rG   r[   maxr`   ry   r   )	r=   r}   r   old_confr   new_conflearning_ratecurrent_weight
new_weights	            r/   update_from_result$MetaPolicyManager.update_from_result#  ss   --48JJ4N4N4R4RS`bc4dgh4h

""=1>>;?::;X;X;\;\]jlm;nqr;rDJJ))-8::5599-M

**=9	*V->->>%G<D

**=944]C>>'&:K:K*KKJ'1v?P?P;P*QQJ58j5I

##M2

!!Q&!h}oYz#6FGHr.   c                 N   U R                   R                  0 S.nU R                   R                  R                  5        Hc  nU R                   R                  U   nUS:  a  U R                   R
                  U   U-  OSnU R                   R                  U   UUS.US   U'   Me     U$ )N)r`   rn   r   r6   )weightr   success_ratern   )r   r`   r[   r   r\   r]   )r=   reportr   r   r   s        r/   
get_reportMetaPolicyManager.get_report<  s    $(JJ$=$=RP!ZZ88==?MJJ..}=ESX[\S\4::88G%ObeL**55mD ,3F< / @ r.   )r   r   )r   N)r    r!   r"   r#   r$   META_STATE_PATHr   ro   rY   r   r   ra   r	   r1   r   r   r   rN   r   r   rA   r
   r   r-   r   r.   r/   r   r      so    <*9 64 6
? 
(P&3 &+9N &Z^_kZl &PI I2
DcN 
r.   r   c                   H    \ rS rSrSrS r SS\S\S\S\	\
\4   4S jjrS	rg
)MetaCognitionLoopiH  z>Main MCL: evaluates strategies, selects best, executes, learnsc                 x    [        5       U l        [        5       U l        / U l        [
        R                  S5        g )Nu$   🧠 Meta-Cognition Loop initialized)rc   strategy_bankr   meta_policyhistoryry   r   r<   s    r/   ro   MetaCognitionLoop.__init__K  s+    )^,.:;r.   rq   rr   n_candidatesrs   c                 F   [         R                  S5        [         R                  SUR                  S S  S35        U R                  R	                  X15      n/ nU H  n[         R                  SUR
                   S35        U R                  R                  XaU5      nUR                  U5        [         R                  SUR                   SUR                  S 35        M     U Vs/ s H#  oUR                  (       a  UR                  OS	4PM%     n	nU	R                  S
 SS9  U	S	   S	   n
[         R                  SU
R                  R
                   35        U R                  R                  U
5        [        R                  " 5       R!                  5       U
R                  R
                  U
R                  U
R                  S.nU R"                  R                  U5        [%        [&        S5       nUR)                  [*        R,                  " U5      S-   5        S S S 5        [/        U R"                  5      S-  S	:X  a  U R                  R1                  5         U
R                  R
                  U
R                  U
R                  U
R2                  S.$ s  snf ! , (       d  f       N= f)NF======================================================================u   🎯 NEW TASK: <   z...u   🔬 Simulating u      → Success: z, Confidence: r   r   c                     U S   $ r   r   r   s    r/   r   +MetaCognitionLoop.process.<locals>.<lambda>`  s    !A$r.   Tr   u   ✨ CHOSEN: )	timestampchosenrQ   rG   a

   )chosen_strategyrQ   rG   rT   )ry   r   r3   r   r   r{   r   r   appendrQ   rG   sortrP   r   r   ru   r   r   r   STRATEGY_HISTORY_PATHwriter   dumpsr   r   rT   )r=   rq   rr   r  
candidatesresultsrP   r}   r   scoredbest_resultepisoder   s                r/   processMetaCognitionLoop.processQ  s"   Hok&9&9#2&>%?sCD%%77R
"HKK*8>>*:#>?''88P\]FNN6"KK*6>>*:.IZIZ[^H_`a	 # BIIAaiiallQ7I5Qill;#7#7#=#=">?@++K8 "113!**00"**%00	
 	G$'-GGDJJw'$./ . t||r!Q&'')  +3399"**%00*::	
 	
- J  .-s   &*J-)J
J )r   r   r   N)r   )r    r!   r"   r#   r$   ro   r1   rE   ra   r   rA   r
   r  r-   r   r.   r/   r   r   H  s?    H< %&)
; )
k )
!)
*.sCx.)
 )
r.   r   c                  ^   [        S5        [        S5        [        S5        [        5       n [        SSSS5      [        SS	/S
94[        SSSS5      [        SSS94[        SSSS5      [        SS/S
94[        SSSS5      [        SSS94/nU HZ  u  p#U R	                  X#SS9n[        SUR
                   35        [        SUS    35        [        S US!   S" 35        [        5         M\     [        S5        [        S#5        [        S$5        U R                  R                  5       n[        S%US&    S'35        US(   R                  5        H1  u  pgUS)   S*:  d  M  [        U S+US,   S" S-US)    S.US/   S0 35        M3     U R                  R                  5         [        S1[         S'35        g )2NzG
======================================================================u)   🧠 EDEN META-COGNITION LOOP - TEST MODEzG======================================================================
z%Optimize recursive factorial functioncode_optimizationprogrammingr   r   	recursion)rI   z!What causes stock market crashes?causal_analysis	economicsr   r   )rH   z	2 + 2 = ?
arithmeticmathr   gffffff?z!Design system for 1M requests/secsystem_designengineeringg?r6   r   )r  u   
📝 Problem: u   ✅ Chosen: r  u   💯 Confidence: rG   r   u   📊 META-COGNITION REPORTr  z
Total episodes: r`   r
  rn   r   r   r   r   z, uses=z
, success=r   z.1%u   
💾 State saved to: )printr   r1   rE   r  r3   r   r   r   r   r   )mclproblemsr   r   r}   r   r   statss           r/   test_mclr'  |  s   	/	
56	/

C 
<>QS`be	f	SK=	9	;	8:K[Z]	^	Ss	3	5	[,	<	T\N	;	=	8/=Z]	^	Ss	3	5	H  Sq9 ./V$56789!&"6s!;<=   
/	
&'	(O__'')F	v&678
;<l+113>ATF)E(OC#8g?OzZ_`nZopsYtuv 4 OO 	#O#4B
78r.   c                      SS K n [        U R                  5      S:  a  U R                  S   S:X  a  [        5         g [	        S5        [	        S5        g )Nr   r   testzEden Meta-Cognition Loopz Usage: python3 meta_loop.py test)sysr   argvr'  r#  )r*  s    r/   mainr,    s;    
388}qSXXa[F2
()01r.   __main__)*r$   r   loggingnumpyr   dataclassesr   r   r   pathlibr   typingr   r   r	   r
   enumr   r   	EDEN_ROOTMETA_LOG_PATHr   r  parentmkdirbasicConfigINFOFileHandlerStreamHandler	getLoggerr    ry   r   r1   rE   rN   rY   rc   r   r   r'  r,  r   r.   r/   <module>r=     s  
    )   , ,   	F"^3m+.>>AYY!M14DDG__      TD  9     4$  7   
,,<M* 
		8	$	4 	 
 
 
 # # #      s
 s
jl l\2
 2
h%9N2 zF r.   