@redocly/theme
Version:
Shared UI components lib
28 lines (22 loc) • 774 B
text/typescript
import type { ToolCall, ContentSegment } from '../types/search';
export function splitContentByToolCalls(
content: string | undefined,
toolCalls: ToolCall[] | undefined,
): ContentSegment[] {
if (!toolCalls || toolCalls.length === 0) {
return [{ type: 'text', text: content || '' }];
}
const segments: ContentSegment[] = [];
let lastPos = 0;
for (const toolCall of toolCalls) {
if (content && toolCall.position > lastPos) {
segments.push({ type: 'text', text: content.substring(lastPos, toolCall.position) });
}
segments.push({ type: 'tool', toolCall });
lastPos = toolCall.position;
}
if (content && lastPos < content.length) {
segments.push({ type: 'text', text: content.substring(lastPos) });
}
return segments;
}