summarizeRecentActivities static method

String? summarizeRecentActivities(
  1. List<Map<String, dynamic>> activities
)

Summarize a list of recent tool activities into a compact description.

Implementation

static String? summarizeRecentActivities(
  List<Map<String, dynamic>> activities,
) {
  if (activities.isEmpty) return null;

  var searchCount = 0;
  var readCount = 0;
  for (var i = activities.length - 1; i >= 0; i--) {
    final activity = activities[i];
    if (activity['isSearch'] == true) {
      searchCount++;
    } else if (activity['isRead'] == true) {
      readCount++;
    } else {
      break;
    }
  }

  final collapsibleCount = searchCount + readCount;
  if (collapsibleCount >= 2) {
    return getSearchReadSummaryText(
      searchCount: searchCount,
      readCount: readCount,
      isActive: true,
    );
  }

  // Fall back to most recent activity with a description.
  for (var i = activities.length - 1; i >= 0; i--) {
    final desc = activities[i]['activityDescription'] as String?;
    if (desc != null && desc.isNotEmpty) return desc;
  }
  return null;
}