@@ -79,10 +79,12 @@ def __init__(
7979 in_memory = in_memory ,
8080 )
8181
82- # Build the Buddhi (cognition) layer
82+ # Build the CognitionKernel (state) + Buddhi (intelligence) layers
83+ from dhee .core .cognition_kernel import CognitionKernel
8384 from dhee .core .buddhi import Buddhi
8485 buddhi_dir = str (self ._engram .data_dir / "buddhi" )
85- self ._buddhi = Buddhi (data_dir = buddhi_dir )
86+ self ._kernel = CognitionKernel (data_dir = buddhi_dir )
87+ self ._buddhi = Buddhi (data_dir = buddhi_dir , kernel = self ._kernel )
8688
8789 # Passive session tracker — auto-context + auto-checkpoint
8890 from dhee .core .session_tracker import SessionTracker
@@ -316,72 +318,31 @@ def checkpoint(
316318 )
317319 result ["intention_stored" ] = intention .to_dict ()
318320
319- # 6. Episode closure
320- try :
321- ep_store = self ._buddhi ._get_episode_store ()
322- ep_store .record_event (
321+ # 6. Episode closure (via kernel)
322+ ep_result = self ._kernel .record_checkpoint_event (
323+ uid , summary , status , outcome_score ,
324+ )
325+ result .update (ep_result )
326+
327+ # 7. Task state update (via kernel)
328+ if goal or plan or blockers :
329+ task_result = self ._kernel .update_task_on_checkpoint (
323330 user_id = uid ,
324- event_type = "checkpoint" ,
325- content = summary [:500 ],
326- metadata = {"status" : status , "outcome_score" : outcome_score },
331+ goal = goal ,
332+ plan = plan ,
333+ plan_rationale = plan_rationale ,
334+ blockers = blockers ,
335+ task_type = task_type or "general" ,
336+ status = status ,
337+ outcome_score = outcome_score ,
338+ outcome_evidence = outcome_evidence ,
339+ summary = summary ,
327340 )
328- if status == "completed" :
329- episode = ep_store .end_episode (uid , outcome_score , summary )
330- if episode :
331- result ["episode_closed" ] = episode .id
332- except Exception :
333- pass
334-
335- # 7. Task state update
336- try :
337- ts_store = self ._buddhi ._get_task_state_store ()
338- active_task = ts_store .get_active_task (uid )
339-
340- if goal or plan :
341- # Create or update task state
342- if not active_task or active_task .goal != (goal or active_task .goal ):
343- active_task = ts_store .create_task (
344- user_id = uid ,
345- goal = goal or summary ,
346- task_type = task_type or "general" ,
347- plan = plan ,
348- plan_rationale = plan_rationale ,
349- )
350- active_task .start ()
351- result ["task_created" ] = active_task .id
352- elif plan :
353- active_task .set_plan (plan , plan_rationale )
354-
355- if active_task :
356- # Add blockers
357- if blockers :
358- for b in blockers :
359- active_task .add_blocker (b , severity = "soft" )
360-
361- # Complete task if outcome provided
362- if status == "completed" and outcome_score is not None :
363- if outcome_score >= 0.5 :
364- active_task .complete (
365- score = outcome_score ,
366- summary = summary ,
367- evidence = outcome_evidence ,
368- )
369- else :
370- active_task .fail (summary , evidence = outcome_evidence )
371- result ["task_completed" ] = active_task .id
372-
373- ts_store .update_task (active_task )
374- except Exception :
375- pass
341+ result .update (task_result )
376342
377- # 8. Selective forgetting (periodic cleanup)
378- try :
379- ep_store = self ._buddhi ._get_episode_store ()
380- archived = ep_store .selective_forget (uid )
381- if archived > 0 :
382- result ["episodes_archived" ] = archived
383- except Exception :
384- pass
343+ # 8. Selective forgetting (via kernel)
344+ forget_result = self ._kernel .selective_forget (uid )
345+ result .update (forget_result )
385346
386347 return result
387348
@@ -408,10 +369,9 @@ def session_start(
408369 self ._session_id = str (uuid .uuid4 ())
409370 self ._session_start_time = time .time ()
410371
411- # Begin episode
372+ # Begin episode (via kernel)
412373 try :
413- ep_store = self ._buddhi ._get_episode_store ()
414- ep_store .begin_episode (
374+ self ._kernel .episodes .begin_episode (
415375 user_id = uid ,
416376 task_description = task_description or "session" ,
417377 task_type = task_type or "general" ,
@@ -479,8 +439,7 @@ def add_belief(
479439 ) -> Dict [str , Any ]:
480440 """Explicitly add a belief with confidence tracking."""
481441 uid = user_id or self ._user_id
482- b_store = self ._buddhi ._get_belief_store ()
483- belief , contradictions = b_store .add_belief (
442+ belief , contradictions = self ._kernel .beliefs .add_belief (
484443 user_id = uid , claim = claim , domain = domain ,
485444 confidence = confidence , source = "user" ,
486445 )
@@ -499,8 +458,7 @@ def challenge_belief(
499458 user_id : Optional [str ] = None ,
500459 ) -> Optional [Dict [str , Any ]]:
501460 """Present contradicting evidence to a belief."""
502- b_store = self ._buddhi ._get_belief_store ()
503- belief = b_store .challenge_belief (belief_id , evidence )
461+ belief = self ._kernel .beliefs .challenge_belief (belief_id , evidence )
504462 if belief :
505463 return belief .to_compact ()
506464 return None
@@ -518,12 +476,11 @@ def create_task(
518476 ) -> Dict [str , Any ]:
519477 """Create a structured task with optional plan."""
520478 uid = user_id or self ._user_id
521- ts_store = self ._buddhi ._get_task_state_store ()
522- task = ts_store .create_task (
479+ task = self ._kernel .tasks .create_task (
523480 user_id = uid , goal = goal , task_type = task_type , plan = plan ,
524481 )
525482 task .start ()
526- ts_store .update_task (task )
483+ self . _kernel . tasks .update_task (task )
527484 return task .to_compact ()
528485
529486 def advance_task (
@@ -533,12 +490,11 @@ def advance_task(
533490 ) -> Optional [Dict [str , Any ]]:
534491 """Advance the active task to the next step."""
535492 uid = user_id or self ._user_id
536- ts_store = self ._buddhi ._get_task_state_store ()
537- task = ts_store .get_active_task (uid )
493+ task = self ._kernel .tasks .get_active_task (uid )
538494 if not task :
539495 return None
540496 task .advance_step (note )
541- ts_store .update_task (task )
497+ self . _kernel . tasks .update_task (task )
542498 return task .to_compact ()
543499
544500 # ------------------------------------------------------------------
0 commit comments