Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.3 kB · 55 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import type { AttachmentMessage, RenderableMessage } from '../types/message.js'
function isTeammateShutdownAttachment( msg: RenderableMessage,): msg is AttachmentMessage { return ( msg.type === 'attachment' && msg.attachment.type === 'task_status' && msg.attachment.taskType === 'in_process_teammate' && msg.attachment.status === 'completed' )}
/** * Collapses consecutive in-process teammate shutdown task_status attachments * into a single `teammate_shutdown_batch` attachment with a count. */export function collapseTeammateShutdowns( messages: RenderableMessage[],): RenderableMessage[] { const result: RenderableMessage[] = [] let i = 0
while (i < messages.length) { const msg = messages[i]! if (isTeammateShutdownAttachment(msg)) { let count = 0 while ( i < messages.length && isTeammateShutdownAttachment(messages[i]!) ) { count++ i++ } if (count === 1) { result.push(msg) } else { result.push({ type: 'attachment', uuid: msg.uuid, timestamp: msg.timestamp, attachment: { type: 'teammate_shutdown_batch', count, }, }) } } else { result.push(msg) i++ } }
return result}