createSyntheticAssistantMessage function

Message createSyntheticAssistantMessage({
  1. required Map<String, dynamic> request,
  2. required String requestId,
})

Create a synthetic Message for remote permission requests.

The tool-use confirmation UI requires an assistant Message, but in remote mode we don't have a real one -- the tool use runs on the CCR container. This builds a minimal stand-in with the correct tool-use content block.

Implementation

Message createSyntheticAssistantMessage({
  required Map<String, dynamic> request,
  required String requestId,
}) {
  final toolUseId = request['tool_use_id'] as String? ?? '';
  final toolName = request['tool_name'] as String? ?? '';
  final input = request['input'] as Map<String, dynamic>? ?? {};

  return Message(
    id: 'remote-$requestId',
    role: MessageRole.assistant,
    content: [
      ToolUseBlock(
        id: toolUseId,
        name: toolName,
        input: input,
      ),
    ],
  );
}