sendShutdownRequestToMailbox function

Future<({String requestId, String target})> sendShutdownRequestToMailbox(
  1. String targetName, {
  2. String? teamName,
  3. String? reason,
})

Sends a shutdown request to a teammate's mailbox.

Implementation

Future<({String requestId, String target})> sendShutdownRequestToMailbox(
  String targetName, {
  String? teamName,
  String? reason,
}) async {
  final resolvedTeamName = teamName ?? getTeamName();
  final senderName = getAgentName() ?? teamLeadName;
  final requestId =
      'shutdown-$targetName-${DateTime.now().millisecondsSinceEpoch}';

  final shutdownMessage = createShutdownRequestMessage(
    requestId: requestId,
    from: senderName,
    reason: reason,
  );

  await writeToMailbox(
    targetName,
    TeammateMessage(
      from: senderName,
      text: jsonEncode(shutdownMessage.toJson()),
      timestamp: DateTime.now().toUtc().toIso8601String(),
      read: false,
      color: getTeammateColor(),
    ),
    teamName: resolvedTeamName,
  );

  return (requestId: requestId, target: targetName);
}