Skip to content

Commit 3a6983d

Browse files
committed
add filtering for stream chunks
1 parent c3d142b commit 3a6983d

File tree

8 files changed

+518
-1373
lines changed

8 files changed

+518
-1373
lines changed

cli/src/hooks/use-send-message.ts

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -509,8 +509,24 @@ export const useSendMessage = ({
509509
signal: abortController.signal,
510510
agentDefinitions: agentDefinitions as AgentDefinition[],
511511

512-
handleStreamChunk: (chunk: any) => {
513-
if (typeof chunk !== 'string' || !chunk) {
512+
handleStreamChunk: (event) => {
513+
logger.info({event}, 'asdf')
514+
if (typeof event !== 'string') {
515+
const { agentId, chunk } = event
516+
517+
const previous =
518+
agentStreamAccumulatorsRef.current.get(agentId) ?? ''
519+
const { next, delta } = mergeTextSegments(previous, chunk)
520+
if (!delta && next === previous) {
521+
return
522+
}
523+
agentStreamAccumulatorsRef.current.set(agentId, next)
524+
525+
updateAgentContent(agentId, {
526+
type: 'text',
527+
content: delta || next,
528+
...(delta ? {} : { replace: true }),
529+
})
514530
return
515531
}
516532

@@ -520,16 +536,16 @@ export const useSendMessage = ({
520536
}
521537

522538
const previous = rootStreamBufferRef.current ?? ''
523-
const { next, delta } = mergeTextSegments(previous, chunk)
539+
const { next, delta } = mergeTextSegments(previous, event)
524540
if (!delta && next === previous) {
525541
return
526542
}
527543
logger.info(
528544
{
529-
chunkLength: chunk.length,
545+
chunkLength: event.length,
530546
previousLength: previous.length,
531547
nextLength: next.length,
532-
preview: chunk.slice(0, 100),
548+
preview: event.slice(0, 100),
533549
},
534550
'handleStreamChunk root delta',
535551
)
@@ -546,25 +562,6 @@ export const useSendMessage = ({
546562
`SDK ${JSON.stringify(event.type)} Event received (raw)`,
547563
)
548564

549-
if (event.type === 'subagent_chunk') {
550-
const { agentId, chunk } = event
551-
552-
const previous =
553-
agentStreamAccumulatorsRef.current.get(agentId) ?? ''
554-
const { next, delta } = mergeTextSegments(previous, chunk)
555-
if (!delta && next === previous) {
556-
return
557-
}
558-
agentStreamAccumulatorsRef.current.set(agentId, next)
559-
560-
updateAgentContent(agentId, {
561-
type: 'text',
562-
content: delta || next,
563-
...(delta ? {} : { replace: true }),
564-
})
565-
return
566-
}
567-
568565
if (event.type === 'text') {
569566
const text = event.text
570567

0 commit comments

Comments
 (0)