@cognitive-engine/mind
v0.3.1
Published
Living mind: reflections, open loops, relationship graph, emotional triggers
Readme
@cognitive-engine/mind
Living mind module for cognitive-engine. Self-reflection, relationship tracking, open-loop detection, and emotional trigger identification.
Install
npm install @cognitive-engine/mindComponents
MindService
Top-level coordinator for all "living mind" capabilities.
import { MindService } from '@cognitive-engine/mind'
const mind = new MindService(llmProvider, store)
const state = await mind.process(cognitiveState)
state.reflections // Self-generated insights
state.openLoops // Unresolved threads needing attention
state.relationships // Active relationship graph
state.emotionalTriggers // Known triggers for this userReflectionService
Generates self-reflections about the agent's own behavior and performance.
import { ReflectionService } from '@cognitive-engine/mind'
const reflector = new ReflectionService(llmProvider)
const reflection = await reflector.reflect(recentInteractions)
// "I've been giving overly detailed responses — user seems to prefer brevity"RelationshipTracker
Maintains a graph of relationships between entities mentioned in conversation.
import { RelationshipTracker } from '@cognitive-engine/mind'
const tracker = new RelationshipTracker()
tracker.observe('user', 'manager', 'reports_to')
tracker.observe('user', 'project-x', 'works_on')
const graph = tracker.getGraph('user')OpenLoopDetector
Detects unresolved conversational threads — questions asked but not answered, promises made but not followed up.
import { OpenLoopDetector } from '@cognitive-engine/mind'
const detector = new OpenLoopDetector()
detector.track("Let me look into that for you")
detector.getOpenLoops()
// [{ content: "Let me look into that for you", age: 3, resolved: false }]EmotionalTriggerTracker
Identifies patterns in what topics or situations trigger emotional responses.
import { EmotionalTriggerTracker } from '@cognitive-engine/mind'
const triggers = new EmotionalTriggerTracker()
triggers.record({ topic: 'deadlines', emotion: 'anxious', intensity: 0.8 })
triggers.record({ topic: 'deadlines', emotion: 'anxious', intensity: 0.7 })
triggers.getKnownTriggers()
// [{ topic: 'deadlines', emotion: 'anxious', avgIntensity: 0.75, occurrences: 2 }]