handleReplyCommand method
/reply <id|address> <text> - direct-send to a panel's reply mailbox
(absolute addresses go cross-instance) or to a live sibling id.
Implementation
Future<void> handleReplyCommand(String rest) async {
final trimmed = rest.trim();
final parts = trimmed.split(_commandWhitespace);
if (parts.length < 2 || parts.first.isEmpty) {
io.writeln('usage: /reply <panel-id|agent-id|mailbox-address> <text>');
return;
}
final target = parts.first;
final text = trimmed.substring(target.length).trim();
var address = target;
if (!target.contains('/')) {
// A panel id resolves to its reply address; a bare sibling id to its
// mailbox; otherwise it is treated as an absolute address as-is.
final resolved =
_hubPanels[target]?.replyAddress ??
(_subagentManager[target] != null
? _subagentManager.mailboxOf(target)
: target);
address = resolved;
}
final fabric = _subagentManager.messaging;
if (fabric == null) {
io.writeln('no messaging fabric - cannot deliver the reply');
return;
}
await fabric.send(
AgentMessage(
id: newMessageId(),
fromId: _subagentManager.selfId,
toId: address,
text: text,
sentAt: DateTime.now().toUtc().toIso8601String(),
),
);
io.writeln('reply queued to $address');
}