buildSiblingMessage static method

PupauMessage buildSiblingMessage({
  1. required PupauMessage parentLlmMessage,
  2. required int blockIndex,
  3. required String rawThinkingSegment,
  4. required ToolUseThinkingData thinkingData,
})

Creates the PupauMessage sibling for one <thinking> block.

Implementation

static PupauMessage buildSiblingMessage({
  required PupauMessage parentLlmMessage,
  required int blockIndex,
  required String rawThinkingSegment,
  required ToolUseThinkingData thinkingData,
}) {
  final String queryGroupId = queryGroupIdFor(parentLlmMessage);
  final String thinkingId = messageIdFor(
    parentLlmMessageId: parentLlmMessage.id,
    blockIndex: blockIndex,
  );
  return PupauMessage(
    id: thinkingId,
    answer: rawThinkingSegment,
    assistantId: parentLlmMessage.assistantId,
    assistantType: parentLlmMessage.assistantType,
    groupId: queryGroupId,
    createdAt: parentLlmMessage.createdAt,
    status: normalizeAssistantStatus(parentLlmMessage.status),
    sourceType: SourceType.toolUse,
    toolUseMessage: buildToolUseMessage(
      thinkingMessageId: thinkingId,
      parentLlmMessageId: parentLlmMessage.id,
      queryGroupId: queryGroupId,
      thinkingData: thinkingData,
    ),
  );
}