Skip to content

Commit 0c79485

Browse files
authored
Merge pull request #744 from Flash-LHR/json-chunk
2 parents d10ebc0 + e104109 commit 0c79485

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

sdks/community/go/pkg/core/events/decoder_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,24 @@ func TestEventDecoder(t *testing.T) {
9393
assert.Equal(t, "Hello World", msgEvent.Delta)
9494
})
9595

96+
t.Run("DecodeEvent_TextMessageChunk", func(t *testing.T) {
97+
decoder := NewEventDecoder(nil)
98+
data := []byte(`{"messageId": "msg-123", "role": "assistant", "delta": "Hi"}`)
99+
100+
event, err := decoder.DecodeEvent("TEXT_MESSAGE_CHUNK", data)
101+
require.NoError(t, err)
102+
require.NotNil(t, event)
103+
104+
msgEvent, ok := event.(*TextMessageChunkEvent)
105+
require.True(t, ok)
106+
require.NotNil(t, msgEvent.MessageID)
107+
require.NotNil(t, msgEvent.Role)
108+
require.NotNil(t, msgEvent.Delta)
109+
assert.Equal(t, "msg-123", *msgEvent.MessageID)
110+
assert.Equal(t, "assistant", *msgEvent.Role)
111+
assert.Equal(t, "Hi", *msgEvent.Delta)
112+
})
113+
96114
t.Run("DecodeEvent_TextMessageEnd", func(t *testing.T) {
97115
decoder := NewEventDecoder(nil)
98116
data := []byte(`{"messageId": "msg-123"}`)

sdks/community/go/pkg/core/events/events.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,8 @@ func EventFromJSON(data []byte) (Event, error) {
365365
event = &TextMessageStartEvent{}
366366
case EventTypeTextMessageContent:
367367
event = &TextMessageContentEvent{}
368+
case EventTypeTextMessageChunk:
369+
event = &TextMessageChunkEvent{}
368370
case EventTypeTextMessageEnd:
369371
event = &TextMessageEndEvent{}
370372
case EventTypeToolCallStart:

sdks/community/go/pkg/core/events/events_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,7 @@ func TestJSONSerialization(t *testing.T) {
477477
NewRunStartedEvent("thread-1", "run-1"),
478478
NewTextMessageStartEvent("msg-1", WithRole("user")),
479479
NewTextMessageContentEvent("msg-1", "Hello"),
480+
NewTextMessageChunkEvent(strPtr("msg-1"), strPtr("assistant"), strPtr("Chunk")),
480481
NewToolCallStartEvent("tool-1", "get_weather", WithParentMessageID("msg-1")),
481482
NewStateSnapshotEvent(map[string]any{"counter": 42}),
482483
NewCustomEvent("test-event", WithValue("test-value")),

sdks/community/go/pkg/encoding/json/json_decoder.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,13 @@ func (d *JSONDecoder) createEvent(eventType events.EventType, data []byte) (even
239239
event = &e
240240
}
241241

242+
case events.EventTypeTextMessageChunk:
243+
var e events.TextMessageChunkEvent
244+
err = decoder.Decode(&e)
245+
if err == nil {
246+
event = &e
247+
}
248+
242249
case events.EventTypeTextMessageContent:
243250
var e events.TextMessageContentEvent
244251
err = decoder.Decode(&e)

0 commit comments

Comments
 (0)