execute method

  1. @override
Future<CommandResult> execute(
  1. String args,
  2. ToolUseContext context
)
override

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');
}