MCPcopy Index your code
hub / github.com/sourcebot-dev/sourcebot / groupMessageIntoSteps

Function groupMessageIntoSteps

packages/web/src/features/chat/utils.ts:306–332  ·  view source on GitHub ↗
(parts: SBChatMessagePart[])

Source from the content-addressed store, hash-verified

304
305// Groups message parts into groups based on step-start delimiters.
306export const groupMessageIntoSteps = (parts: SBChatMessagePart[]) => {
307 if (!parts || parts.length === 0) {
308 return [];
309 }
310
311 const steps: SBChatMessagePart[][] = [];
312 let currentStep: SBChatMessagePart[] = [];
313
314 for (let i = 0; i < parts.length; i++) {
315 const part = parts[i];
316
317 if (part.type === 'step-start') {
318 if (currentStep.length > 0) {
319 steps.push([...currentStep]);
320 }
321 currentStep = [part];
322 } else {
323 currentStep.push(part);
324 }
325 }
326
327 if (currentStep.length > 0) {
328 steps.push(currentStep);
329 }
330
331 return steps;
332}
333
334export const getLastStepParts = (parts: SBChatMessagePart[]): SBChatMessagePart[] => {
335 return groupMessageIntoSteps(parts).at(-1) ?? parts;

Callers 3

utils.test.tsFile · 0.90
getLastStepPartsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected