fix: support freeform stopReason in sampling (#327)
- Add string values and JsonCreator method to StopReason enum
- Map unknown stop reason values to UNKNOWN constant for forward compatibility
- Add test coverage for unknown stop reason deserialization
Spec: f5ccad944f/schema/2024-11-05/schema.ts (L807)
Resolves #328
This commit is contained in:
parent
6c330db5ad
commit
aff24fdf2f
1 changed files with 37 additions and 3 deletions
|
|
@ -883,6 +883,23 @@ public class McpSchemaTests {
|
|||
{"role":"assistant","content":{"type":"text","text":"Assistant response"},"model":"gpt-4","stopReason":"endTurn"}"""));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCreateMessageResultUnknownStopReason() throws Exception {
|
||||
String input = """
|
||||
{"role":"assistant","content":{"type":"text","text":"Assistant response"},"model":"gpt-4","stopReason":"arbitrary value"}""";
|
||||
|
||||
McpSchema.CreateMessageResult value = mapper.readValue(input, McpSchema.CreateMessageResult.class);
|
||||
|
||||
McpSchema.TextContent expectedContent = new McpSchema.TextContent("Assistant response");
|
||||
McpSchema.CreateMessageResult expected = McpSchema.CreateMessageResult.builder()
|
||||
.role(McpSchema.Role.ASSISTANT)
|
||||
.content(expectedContent)
|
||||
.model("gpt-4")
|
||||
.stopReason(McpSchema.CreateMessageResult.StopReason.UNKNOWN)
|
||||
.build();
|
||||
assertThat(value).isEqualTo(expected);
|
||||
}
|
||||
|
||||
// Elicitation Tests
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in a new issue