handleToolUseMessage method

void handleToolUseMessage(
  1. Map<String, dynamic> data
)

Implementation

void handleToolUseMessage(Map<String, dynamic> data) {
  ToolUseMessage toolUseMessage = ToolUseMessage.fromJsonSSE(data);
  bool isPipeline = toolUseMessage.type == ToolUseType.pipeline;
  bool isRemoteCall = toolUseMessage.type == ToolUseType.remoteCall;
  bool isDocument = toolUseMessage.type == ToolUseType.nativeToolsDocument;
  PupauMessage message = PupauMessage(
    id: toolUseMessage.id,
    answer: isPipeline
        ? toolUseMessage.pipelineData?.message ?? ""
        : isRemoteCall
        ? toolUseMessage.remoteCallData?.toString() ?? ""
        : data.toString(),
    type: null,
    sourceType: SourceType.toolUse,
    assistantType: toolUseMessage.chatBotId != null
        ? AssistantType.assistant
        : AssistantType.marketplace,
    isLast: true,
    kbReferences: [],
    urls: [],
    toolUseMessage: toolUseMessage,
    assistantId: '',
    createdAt: DateTime.now(),
    status: MessageStatus.loading,
  );
  updateSSEMessages(message);
  if (message.answer.trim() != "") {
    messageNotifier.addData(message.answer, message.id);
    manageChatAutoScroll(bypassHeightCheck: true);
  }
  if (isDocument) {
    conversation.value != null
        ? Get.find<AttachmentsController>().loadAttachments()
        : Get.find<AttachmentsController>().clearAttachments();
  }
}