execute method

  1. @override
Future<ToolResult> execute(
  1. Map<String, dynamic> input
)
override

Execute the tool with the given input.

Implementation

@override
Future<ToolResult> execute(Map<String, dynamic> input) async {
  final to = input['to'] as String? ?? '';
  final summary = input['summary'] as String?;
  final message = input['message'];

  // Handle plain text messages
  if (message is String) {
    if (to == '*') {
      return _handleBroadcast(message, summary);
    }
    return _handleMessage(to, message, summary);
  }

  // Handle structured messages
  if (message is Map<String, dynamic>) {
    return _handleStructuredMessage(to, message, summary);
  }

  return ToolResult.error('Invalid message format');
}