formatToolCallEntry function
ToolCallEntryDisplay
formatToolCallEntry(
{ - required String toolkit,
- required String tool,
- required Map<String, Object?>? arguments,
- required List<String> logs,
- required String? errorMessage,
- bool completed = true,
- bool pending = false,
- int? detailLineLimit = _toolLogRenderLimit,
- int argumentDeltaBytes = 0,
})
Implementation
ToolCallEntryDisplay formatToolCallEntry({
required String toolkit,
required String tool,
required Map<String, Object?>? arguments,
required List<String> logs,
required String? errorMessage,
bool completed = true,
bool pending = false,
int? detailLineLimit = _toolLogRenderLimit,
int argumentDeltaBytes = 0,
}) {
final failed = errorMessage != null;
var headline = toolCallHeadline(
toolkit: toolkit,
tool: tool,
arguments: arguments,
failed: failed,
completed: completed,
pending: pending,
argumentDeltaBytes: argumentDeltaBytes,
);
final rawHeadline = '${failed ? "Failed" : "Ran"} ${toolCallRawLabel(toolkit: toolkit, tool: tool)}';
final logLines = _toolLogLines(logs).toList(growable: true);
if (failed && _logLinesLookLikeTraceback(logLines)) {
logLines.clear();
}
if (headline.text == rawHeadline && logLines.isNotEmpty) {
headline = _logHeadline(logLines.removeAt(0));
}
final detailsTruncated = detailLineLimit != null && logLines.length > detailLineLimit;
final displayedLogLines = detailLineLimit == null ? logLines : _trailingLogLines(logLines, detailLineLimit);
final detailLines = <String>[...displayedLogLines];
final errorLine = _toolErrorLine(errorMessage);
if (errorLine != null) {
detailLines.add(errorLine);
}
return ToolCallEntryDisplay(headline: headline, detailLines: detailLines, detailsTruncated: detailsTruncated);
}