execute method
Execute the command.
Implementation
@override
Future<CommandResult> execute(String args, ToolUseContext context) async {
final profile = await getProfile();
final buffer = StringBuffer();
buffer.writeln('Usage Profile');
buffer.writeln('=============');
buffer.writeln();
final totalSessions = profile['totalSessions'] ?? 0;
final totalTokens = profile['totalTokens'] ?? 0;
final totalMessages = profile['totalMessages'] ?? 0;
final totalToolUses = profile['totalToolUses'] ?? 0;
final topTools = profile['topTools'] as List<dynamic>? ?? [];
final activeSince = profile['activeSince'] as String? ?? 'unknown';
buffer.writeln(' Active since: $activeSince');
buffer.writeln(' Total sessions: $totalSessions');
buffer.writeln(' Total messages: $totalMessages');
buffer.writeln(' Total tokens: $totalTokens');
buffer.writeln(' Tool invocations: $totalToolUses');
if (topTools.isNotEmpty) {
buffer.writeln();
buffer.writeln(' Most used tools:');
for (final tool in topTools.take(5)) {
final name = tool['name'] ?? '?';
final count = tool['count'] ?? 0;
buffer.writeln(' $name: $count');
}
}
return TextCommandResult(buffer.toString());
}