Skip to content

Commit 35de614

Browse files
committed
feat: add getMetadata method for RequestContext
1 parent f4f0991 commit 35de614

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

server-common/src/main/java/io/a2a/server/agentexecution/RequestContext.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.ArrayList;
44
import java.util.Collections;
55
import java.util.List;
6+
import java.util.Map;
67
import java.util.UUID;
78
import java.util.stream.Collectors;
89

@@ -198,6 +199,15 @@ public List<Task> getRelatedTasks() {
198199
return params != null ? params.configuration() : null;
199200
}
200201

202+
/**
203+
* Returns the request metadata.
204+
*
205+
* @return the metadata, or null if not available
206+
*/
207+
public @Nullable Map<String, Object> getMetadata() {
208+
return (params != null && params.metadata() != null) ? Collections.unmodifiableMap(params.metadata()) : null;
209+
}
210+
201211
/**
202212
* Returns the server call context.
203213
* <p>

server-common/src/test/java/io/a2a/server/agentexecution/RequestContextTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import static org.mockito.Mockito.mockStatic;
1111

1212
import java.util.ArrayList;
13+
import java.util.HashMap;
1314
import java.util.List;
1415
import java.util.UUID;
1516

@@ -38,6 +39,7 @@ public void testInitWithoutParams() {
3839
RequestContext context = new RequestContext.Builder().build();
3940

4041
assertNull(context.getMessage());
42+
assertNull(context.getMetadata());
4143
assertNotNull(context.getTaskId()); // Generated UUID
4244
assertNotNull(context.getContextId()); // Generated UUID
4345
assertNull(context.getTask());
@@ -70,6 +72,24 @@ public void testInitWithParamsNoIds() {
7072
}
7173
}
7274

75+
@Test
76+
public void testInitWithParamsMetadata() {
77+
var message = Message.builder().role(Message.Role.ROLE_USER).parts(List.of(new TextPart(""))).build();
78+
var metadata = new HashMap<String, Object>();
79+
metadata.put("key", "value");
80+
81+
var params = MessageSendParams.builder()
82+
.message(message)
83+
.metadata(metadata)
84+
.build();
85+
86+
RequestContext context = new RequestContext.Builder()
87+
.setParams(params)
88+
.build();
89+
90+
assertEquals(metadata, context.getMetadata());
91+
}
92+
7393
@Test
7494
public void testInitWithTaskId() {
7595
String taskId = "task-123";

0 commit comments

Comments
 (0)