checkAndTriggerQueueCompletion method

void checkAndTriggerQueueCompletion(
  1. int runId
)

Implementation

void checkAndTriggerQueueCompletion(int runId) {
  final queue = _eventQueues[runId];
  if (queue == null || queue.isEmpty) {
    final callback = queueCompletionCallbacks[runId];
    if (callback != null) {
      final aiMsg = aiAssistantMessages[runId];
      final toolResult = aiToolResultMessages[runId];
      final toolArg = aiToolArgumentMessages[runId];

      if (aiMsg != null) {
        aiAssistantMessages.remove(runId);
        Future.microtask(() => callback.onQueueCompleted(aiMsg, null, null));
        CometChatStreamCallBackEvents.ccStreamCompleted(true);
      }
      if (toolResult != null) {
        aiToolResultMessages.remove(runId);
        Future.microtask(
            () => callback.onQueueCompleted(null, toolResult, null));
      }
      if (toolArg != null) {
        aiToolArgumentMessages.remove(runId);
        Future.microtask(
            () => callback.onQueueCompleted(null, null, toolArg));
      }
    }
  }
}