handleMemoryMessage method

void handleMemoryMessage(
  1. PupauMessage message
)

Implementation

void handleMemoryMessage(PupauMessage message) {
  final bool hasAny =
      message.memoryReferences.isNotEmpty ||
      message.alwaysMemories.isNotEmpty;
  if (!hasAny) return;
  final bool isFirstLlmMessage =
      incomingMessages.firstWhereOrNull(
        (PupauMessage m) =>
            m.sourceType == SourceType.llm &&
            m.type != MessageType.kb &&
            m.type != MessageType.memory,
      ) ==
      null;
  if (isFirstLlmMessage) {
    memoryReferencesBackup = message.memoryReferences;
    alwaysMemoriesBackup = message.alwaysMemories;
  } else {
    if (memoryReferencesBackup.isNotEmpty ||
        alwaysMemoriesBackup.isNotEmpty) {
      addMemoryBackupToMessage(message);
    }
    updateSSEMessages(message);
  }
}