consolidateMemories method

Future<void> consolidateMemories()

Runs full memory consolidation:

  1. Promote working memory items to episodic.
  2. Generalise strong episodic memories to semantic.
  3. Apply decay to episodic store.

Implementation

Future<void> consolidateMemories() async {
  if (!_enableLongTermLearning) return;

  _logger.info('Starting memory consolidation...');

  // Step 1: Working → Episodic promotion
  final workingItems = working.getAll();
  for (final mem in workingItems) {
    if (mem.strength >= 0.6) {
      final promoted = Memory(
        id: _uuid.v4(),
        content: mem.content,
        type: MemoryType.episodic,
        strength: mem.strength * 0.9,
        associatedConceptIds: mem.associatedConceptIds,
      );
      episodic.storeMemory(promoted);
    }
  }

  // Step 2: Episodic → Semantic generalisation
  final strongEpisodic = episodic.getStrongestMemories(50);
  final newFacts =
      semantic.generaliseFromEpisodes(strongEpisodic);

  // Step 3: Episodic decay
  episodic.applyDecay(halfLifeHours: 48.0);

  _logger.info(
      'Consolidation complete: '
      'promoted ${workingItems.length} working items, '
      'generated $newFacts semantic facts, '
      'episodic count: ${episodic.count}');
}