formatToolUseSummary function

String formatToolUseSummary(
  1. String name,
  2. dynamic input
)

Format a compact tool use summary for remote sessions. Port of formatToolUseSummary() from RemoteSessionDetailDialog.tsx.

Implementation

String formatToolUseSummary(String name, dynamic input) {
  if (name == 'ExitPlanModeTool') {
    return 'Review the plan in Neomage on the web';
  }
  if (input == null || input is! Map) return name;

  // AskUserQuestion: show the question text
  if (name == 'AskUserQuestion' && input.containsKey('questions')) {
    final qs = input['questions'];
    if (qs is List && qs.isNotEmpty && qs[0] is Map) {
      final q = qs[0]['question'] as String? ?? qs[0]['header'] as String?;
      if (q != null && q.isNotEmpty) {
        final oneLine = q.replaceAll(RegExp(r'\s+'), ' ').trim();
        final truncated = oneLine.length > 50
            ? '${oneLine.substring(0, 47)}...'
            : oneLine;
        return 'Answer in browser: $truncated';
      }
    }
  }

  for (final v in (input).values) {
    if (v is String && v.trim().isNotEmpty) {
      final oneLine = v.replaceAll(RegExp(r'\s+'), ' ').trim();
      final truncated = oneLine.length > 60
          ? '${oneLine.substring(0, 57)}...'
          : oneLine;
      return '$name $truncated';
    }
  }
  return name;
}