execute method
Execute the command.
Implementation
@override
Future<CommandResult> execute(String args, ToolUseContext context) async {
final arg = args.trim();
if (arg.isEmpty) {
final sessions = await listSessions();
if (sessions.isEmpty) {
return const TextCommandResult('No previous sessions found.');
}
final buffer = StringBuffer();
buffer.writeln('Recent sessions:');
for (final s in sessions.take(10)) {
buffer.writeln(' $s');
}
buffer.writeln();
buffer.writeln('Usage: /resume <session-id> or /resume last');
return TextCommandResult(buffer.toString());
}
String sessionId;
if (arg == 'last') {
final sessions = await listSessions();
if (sessions.isEmpty) {
return const TextCommandResult('No previous sessions found.');
}
sessionId = sessions.first;
} else {
sessionId = arg;
}
final success = await resumeSession(sessionId);
if (!success) {
return TextCommandResult('Session not found: $sessionId');
}
return TextCommandResult('Resumed session: $sessionId');
}