buildSseEventsForRun function

List<Event> buildSseEventsForRun(
  1. Event event, {
  2. required bool isResumeRequest,
})

Expands one streamed event into content/action events when needed.

Implementation

List<Event> buildSseEventsForRun(Event event, {required bool isResumeRequest}) {
  final bool hasArtifactDelta = event.actions.artifactDelta.isNotEmpty;
  final bool hasContentParts = event.content?.parts.isNotEmpty ?? false;
  if (!hasArtifactDelta || !hasContentParts || isResumeRequest) {
    return <Event>[event];
  }
  final Event contentEvent = event.copyWith(
    actions: event.actions.copyWith(artifactDelta: <String, int>{}),
  );
  final Event artifactEvent = event.copyWith(content: null);
  return <Event>[contentEvent, artifactEvent];
}