addDelta method
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;
}