From bec52f15bf4dd459908f84814bef61b553cef281 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 22:52:22 +0000 Subject: [PATCH] Consolidate A2A response update creation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- agent/provider/a2aagent/a2a.go | 57 +++++++++++++--------------------- 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/agent/provider/a2aagent/a2a.go b/agent/provider/a2aagent/a2a.go index 9179c872..c7bf7be4 100644 --- a/agent/provider/a2aagent/a2a.go +++ b/agent/provider/a2aagent/a2a.go @@ -194,15 +194,8 @@ func sendMsg(session *agent.Session, seq iter.Seq2[a2a.Event, error], yield func } } } - if !yield(&agent.ResponseUpdate{ - RawRepresentation: e, - AdditionalProperties: e.Metadata, - MessageID: messageID, - ResponseID: string(e.TaskID), - Role: message.RoleAssistant, - Contents: contents, - CreatedAt: time.Now(), - }, nil) { + update := newResponseUpdate(e, e.Metadata, string(e.TaskID), messageID, message.RoleAssistant, contents, time.Now()) + if !yield(update, nil) { return } case *a2a.TaskArtifactUpdateEvent: @@ -211,15 +204,8 @@ func sendMsg(session *agent.Session, seq iter.Seq2[a2a.Event, error], yield func yield(nil, err) return } - if !yield(&agent.ResponseUpdate{ - RawRepresentation: e, - AdditionalProperties: e.Metadata, - MessageID: string(e.Artifact.ID), - ResponseID: string(e.TaskID), - Contents: contents, - Role: message.RoleAssistant, - CreatedAt: time.Now(), - }, nil) { + update := newResponseUpdate(e, e.Metadata, string(e.TaskID), string(e.Artifact.ID), message.RoleAssistant, contents, time.Now()) + if !yield(update, nil) { return } case *a2a.Message: @@ -232,15 +218,8 @@ func sendMsg(session *agent.Session, seq iter.Seq2[a2a.Event, error], yield func if e.Role == a2a.MessageRoleAgent { role = message.RoleAssistant } - if !yield(&agent.ResponseUpdate{ - RawRepresentation: e, - AdditionalProperties: e.Metadata, - MessageID: e.ID, - ResponseID: e.ID, - Role: role, - Contents: contents, - CreatedAt: time.Now(), - }, nil) { + update := newResponseUpdate(e, e.Metadata, e.ID, e.ID, role, contents, time.Now()) + if !yield(update, nil) { return } default: @@ -250,6 +229,18 @@ func sendMsg(session *agent.Session, seq iter.Seq2[a2a.Event, error], yield func } } +func newResponseUpdate(raw any, additionalProperties map[string]any, responseID, messageID string, role message.Role, contents message.Contents, createdAt time.Time) *agent.ResponseUpdate { + return &agent.ResponseUpdate{ + RawRepresentation: raw, + AdditionalProperties: additionalProperties, + ResponseID: responseID, + MessageID: messageID, + Role: role, + Contents: contents, + CreatedAt: createdAt, + } +} + func yieldTask(yield func(*agent.ResponseUpdate, error) bool, task *a2a.Task) bool { now := time.Now() var continuationToken string @@ -271,15 +262,9 @@ func yieldTask(yield func(*agent.ResponseUpdate, error) bool, task *a2a.Task) bo } } - return yield(&agent.ResponseUpdate{ - RawRepresentation: task, - AdditionalProperties: task.Metadata, - ResponseID: string(task.ID), - Contents: contents, - ContinuationToken: continuationToken, - Role: message.RoleAssistant, - CreatedAt: timestamp, - }, nil) + update := newResponseUpdate(task, task.Metadata, string(task.ID), "", message.RoleAssistant, contents, timestamp) + update.ContinuationToken = continuationToken + return yield(update, nil) } func updateSessionContextID(session *agent.Session, contextID, taskID string, taskState a2a.TaskState) error {