feat(a2a): support streaming message output for Task and TaskStatusUpdateEvent#901
feat(a2a): support streaming message output for Task and TaskStatusUpdateEvent#901JonXSnow wants to merge 1 commit into
Conversation
Need to create a new tagThe following modules have changes and may need version updates:
|
da02af8 to
aa918f9
Compare
Need to create a new tagThe following modules have changes and may need version updates:
|
aa918f9 to
5352525
Compare
Need to create a new tagThe following modules have changes and may need version updates:
|
…dateEvent Previously, Task and TaskStatusUpdateEvent always emitted complete messages directly, even in streaming mode. This caused the consumer to receive disjointed individual messages instead of a continuous stream when the server sends incremental status updates for the same task. Now in streaming mode, messages from Task and TaskStatusUpdateEvent are grouped by ID (preferring message.MessageID, falling back to TaskID) and delivered as a MessageStream via schema.Pipe — consistent with how chunked event.Message is already handled. Key changes: - Add `streaming` field and `IsStreaming()` method to ResponseUnionReceiver so the output convertor can detect streaming mode. - Add `isTerminalTaskState()` helper to determine final state for Task events (completed/failed/canceled/rejected). - Refactor defaultOutputConvertor into smaller focused functions: handleMessageEvent, handleTaskEvent, handleTaskStatusUpdateEvent.
5352525 to
23af5d1
Compare
Need to create a new tagThe following modules have changes and may need version updates:
|
Previously, Task and TaskStatusUpdateEvent always emitted complete messages directly, even in streaming mode. This caused the consumer to receive disjointed individual messages instead of a continuous stream when the server sends incremental status updates for the same task.
Now in streaming mode, messages from Task and TaskStatusUpdateEvent are grouped by ID (preferring message.MessageID, falling back to TaskID) and delivered as a MessageStream via schema.Pipe — consistent with how chunked event.Message is already handled.
Key changes:
streamingfield andIsStreaming()method to ResponseUnionReceiver so the output convertor can detect streaming mode.isTerminalTaskState()helper to determine final state for Task events (completed/failed/canceled/rejected).