addDelta method

ToolCall addDelta(
  1. ToolCall delta
)

Add a ToolCall delta and return the aggregated ToolCall for this id.

The aggregator:

  • Preserves the first non-empty function.name.
  • Concatenates all function.arguments in arrival order.

Implementation

ToolCall addDelta(ToolCall delta) {
  final existing = _calls[delta.id];
  if (existing == null) {
    _calls[delta.id] = delta;
    return delta;
  }

  final mergedName = delta.function.name.isNotEmpty
      ? delta.function.name
      : existing.function.name;

  final mergedArgsBuffer = StringBuffer()
    ..write(existing.function.arguments)
    ..write(delta.function.arguments);

  final merged = ToolCall(
    id: existing.id,
    callType: existing.callType,
    function: FunctionCall(
      name: mergedName,
      arguments: mergedArgsBuffer.toString(),
    ),
  );

  _calls[delta.id] = merged;
  return merged;
}