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 parts = args.trim().split(RegExp(r'\s+'));
  final subcommand = parts.isNotEmpty ? parts[0] : 'list';

  switch (subcommand) {
    case 'list':
    case '':
      return _list();
    case 'show':
    case 'read':
      if (parts.length < 2) {
        return const TextCommandResult('Usage: /memory show <filename>');
      }
      return _show(parts[1]);
    case 'delete':
    case 'rm':
      if (parts.length < 2) {
        return const TextCommandResult('Usage: /memory delete <filename>');
      }
      return _delete(parts[1]);
    default:
      return TextCommandResult(
        'Unknown subcommand: $subcommand\n'
        'Usage: /memory [list|show <file>|delete <file>]',
      );
  }
}