@@ -1974,6 +1974,75 @@ func TestAgenticEventSenderToolHandler(t *testing.T) {
19741974 })
19751975}
19761976
1977+ func TestTypedToolStreamEventAgenticMessageSetsStreamingMeta (t * testing.T ) {
1978+ event := typedToolStreamEvent [* schema.AgenticMessage ](
1979+ "call_1" ,
1980+ "execute" ,
1981+ "msg_1" ,
1982+ schema .StreamReaderFromArray ([]string {"first\n " , "second\n " }),
1983+ )
1984+ require .NotNil (t , event )
1985+ require .NotNil (t , event .Output )
1986+ require .NotNil (t , event .Output .MessageOutput )
1987+ require .True (t , event .Output .MessageOutput .IsStreaming )
1988+ require .NotNil (t , event .Output .MessageOutput .MessageStream )
1989+
1990+ first , err := event .Output .MessageOutput .MessageStream .Recv ()
1991+ require .NoError (t , err )
1992+ require .Len (t , first .ContentBlocks , 1 )
1993+ assert .Equal (t , & schema.StreamingMeta {Index : 0 }, first .ContentBlocks [0 ].StreamingMeta )
1994+
1995+ second , err := event .Output .MessageOutput .MessageStream .Recv ()
1996+ require .NoError (t , err )
1997+ require .Len (t , second .ContentBlocks , 1 )
1998+ assert .Equal (t , & schema.StreamingMeta {Index : 0 }, second .ContentBlocks [0 ].StreamingMeta )
1999+
2000+ result , err := schema .ConcatAgenticMessages ([]* schema.AgenticMessage {first , second })
2001+ require .NoError (t , err )
2002+ require .Len (t , result .ContentBlocks , 1 )
2003+ assert .Nil (t , result .ContentBlocks [0 ].StreamingMeta )
2004+ require .NotNil (t , result .ContentBlocks [0 ].FunctionToolResult )
2005+ require .Len (t , result .ContentBlocks [0 ].FunctionToolResult .Content , 2 )
2006+ assert .Equal (t , "first\n " , result .ContentBlocks [0 ].FunctionToolResult .Content [0 ].Text .Text )
2007+ assert .Equal (t , "second\n " , result .ContentBlocks [0 ].FunctionToolResult .Content [1 ].Text .Text )
2008+ }
2009+
2010+ func TestTypedToolEnhancedStreamEventAgenticMessageSetsStreamingMeta (t * testing.T ) {
2011+ event := typedToolEnhancedStreamEvent [* schema.AgenticMessage ](
2012+ "call_1" ,
2013+ "execute" ,
2014+ "msg_1" ,
2015+ schema .StreamReaderFromArray ([]* schema.ToolResult {
2016+ {Parts : []schema.ToolOutputPart {{Type : schema .ToolPartTypeText , Text : "first\n " }}},
2017+ {Parts : []schema.ToolOutputPart {{Type : schema .ToolPartTypeText , Text : "second\n " }}},
2018+ }),
2019+ )
2020+ require .NotNil (t , event )
2021+ require .NotNil (t , event .Output )
2022+ require .NotNil (t , event .Output .MessageOutput )
2023+ require .True (t , event .Output .MessageOutput .IsStreaming )
2024+ require .NotNil (t , event .Output .MessageOutput .MessageStream )
2025+
2026+ first , err := event .Output .MessageOutput .MessageStream .Recv ()
2027+ require .NoError (t , err )
2028+ require .Len (t , first .ContentBlocks , 1 )
2029+ assert .Equal (t , & schema.StreamingMeta {Index : 0 }, first .ContentBlocks [0 ].StreamingMeta )
2030+
2031+ second , err := event .Output .MessageOutput .MessageStream .Recv ()
2032+ require .NoError (t , err )
2033+ require .Len (t , second .ContentBlocks , 1 )
2034+ assert .Equal (t , & schema.StreamingMeta {Index : 0 }, second .ContentBlocks [0 ].StreamingMeta )
2035+
2036+ result , err := schema .ConcatAgenticMessages ([]* schema.AgenticMessage {first , second })
2037+ require .NoError (t , err )
2038+ require .Len (t , result .ContentBlocks , 1 )
2039+ assert .Nil (t , result .ContentBlocks [0 ].StreamingMeta )
2040+ require .NotNil (t , result .ContentBlocks [0 ].FunctionToolResult )
2041+ require .Len (t , result .ContentBlocks [0 ].FunctionToolResult .Content , 2 )
2042+ assert .Equal (t , "first\n " , result .ContentBlocks [0 ].FunctionToolResult .Content [0 ].Text .Text )
2043+ assert .Equal (t , "second\n " , result .ContentBlocks [0 ].FunctionToolResult .Content [1 ].Text .Text )
2044+ }
2045+
19772046// multimodalEnhancedInvokableTestTool returns a pre-built multimodal ToolResult.
19782047type multimodalEnhancedInvokableTestTool struct {
19792048 name string
@@ -2091,6 +2160,7 @@ func TestTypedToolEnhancedEventAgenticToolSearchResult(t *testing.T) {
20912160 require .Len (t , msg .ContentBlocks , 1 )
20922161 block := msg .ContentBlocks [0 ]
20932162 assert .Equal (t , schema .ContentBlockTypeToolSearchResult , block .Type )
2163+ assert .Equal (t , & schema.StreamingMeta {Index : 0 }, block .StreamingMeta )
20942164 require .NotNil (t , block .ToolSearchFunctionToolResult )
20952165 assert .Equal (t , "call_2" , block .ToolSearchFunctionToolResult .CallID )
20962166 assert .Equal (t , "tool_search" , block .ToolSearchFunctionToolResult .Name )
0 commit comments