chore: upgrade rmcp (#6516)

This commit is contained in:
Alex Hancock
2026-01-16 12:09:51 -05:00
committed by GitHub
parent 885fd2a24f
commit 4191826569
34 changed files with 157 additions and 26 deletions
@@ -250,6 +250,7 @@ pub fn response_to_message(response: &Value) -> Result<Message> {
.ok_or_else(|| anyhow!("Missing tool_use input"))?;
let tool_call = CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(input.clone())),
};
@@ -612,7 +613,11 @@ where
}
};
let tool_call = CallToolRequestParam{ name: name.into(), arguments: Some(object(parsed_args)) };
let tool_call = CallToolRequestParam{
task: None,
name: name.into(),
arguments: Some(object(parsed_args))
};
let mut message = Message::new(
rmcp::model::Role::Assistant,
@@ -978,6 +983,7 @@ mod tests {
Message::assistant().with_tool_request(
"tool_1",
Ok(CallToolRequestParam {
task: None,
name: "calculator".into(),
arguments: Some(object!({"expression": "2 + 2"})),
}),
@@ -301,6 +301,7 @@ pub fn from_bedrock_content_block(block: &bedrock::ContentBlock) -> Result<Messa
bedrock::ContentBlock::ToolUse(tool_use) => MessageContent::tool_request(
tool_use.tool_use_id.to_string(),
Ok(CallToolRequestParam {
task: None,
name: tool_use.name.clone().into(),
arguments: Some(object(from_bedrock_json(&tool_use.input.clone())?)),
}),
@@ -341,6 +341,7 @@ pub fn response_to_message(response: &Value) -> anyhow::Result<Message> {
content.push(MessageContent::tool_request(
id,
Ok(CallToolRequestParam {
task: None,
name: function_name.into(),
arguments: Some(object(params)),
}),
@@ -726,6 +727,7 @@ mod tests {
Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "example".into(),
arguments: Some(object!({"param1": "value1"})),
}),
@@ -771,6 +773,7 @@ mod tests {
let mut messages = vec![Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "example".into(),
arguments: Some(object!({"param1": "value1"})),
}),
@@ -1147,6 +1150,7 @@ mod tests {
let message = Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "test_tool".into(),
arguments: None, // This is the key case the fix addresses
}),
@@ -1176,6 +1180,7 @@ mod tests {
let message = Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "test_tool".into(),
arguments: Some(object!({"param": "value", "number": 42})),
}),
@@ -422,6 +422,7 @@ fn process_response_part_impl(
Some(MessageContent::tool_request_with_metadata(
id,
Ok(CallToolRequestParam {
task: None,
name: name.to_string().into(),
arguments,
}),
@@ -770,6 +771,7 @@ mod tests {
set_up_tool_request_message(
"id",
CallToolRequestParam {
task: None,
name: "tool_name".into(),
arguments: Some(object(arguments.clone())),
},
@@ -777,6 +779,7 @@ mod tests {
set_up_action_required_message(
"id2",
CallToolRequestParam {
task: None,
name: "tool_name_2".into(),
arguments: Some(object(arguments.clone())),
},
+12 -1
View File
@@ -340,6 +340,7 @@ pub fn response_to_message(response: &Value) -> anyhow::Result<Message> {
content.push(MessageContent::tool_request(
id,
Ok(CallToolRequestParam {
task: None,
name: function_name.into(),
arguments: Some(object(params)),
}),
@@ -562,7 +563,11 @@ where
Ok(params) => {
MessageContent::tool_request_with_metadata(
id.clone(),
Ok(CallToolRequestParam { name: function_name.clone().into(), arguments: Some(object(params)) }),
Ok(CallToolRequestParam {
task: None,
name: function_name.clone().into(),
arguments: Some(object(params))
}),
metadata.as_ref(),
)
},
@@ -865,6 +870,7 @@ mod tests {
Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "example".into(),
arguments: Some(object!({"param1": "value1"})),
}),
@@ -909,6 +915,7 @@ mod tests {
let mut messages = vec![Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "example".into(),
arguments: Some(object!({"param1": "value1"})),
}),
@@ -1148,6 +1155,7 @@ mod tests {
let message = Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "test_tool".into(),
arguments: None, // This is the key case the fix addresses
}),
@@ -1175,6 +1183,7 @@ mod tests {
let message = Message::assistant().with_tool_request(
"tool1",
Ok(CallToolRequestParam {
task: None,
name: "test_tool".into(),
arguments: Some(object!({"param": "value", "number": 42})),
}),
@@ -1205,6 +1214,7 @@ mod tests {
let message = Message::assistant().with_frontend_tool_request(
"frontend_tool1",
Ok(CallToolRequestParam {
task: None,
name: "frontend_test_tool".into(),
arguments: None, // This is the key case the fix addresses
}),
@@ -1232,6 +1242,7 @@ mod tests {
let message = Message::assistant().with_frontend_tool_request(
"frontend_tool1",
Ok(CallToolRequestParam {
task: None,
name: "frontend_test_tool".into(),
arguments: Some(object!({"action": "click", "element": "button"})),
}),
@@ -441,6 +441,7 @@ pub fn responses_api_to_message(response: &ResponsesApiResponse) -> anyhow::Resu
content.push(MessageContent::tool_request(
id.clone(),
Ok(CallToolRequestParam {
task: None,
name: name.clone().into(),
arguments: Some(object(input.clone())),
}),
@@ -465,6 +466,7 @@ pub fn responses_api_to_message(response: &ResponsesApiResponse) -> anyhow::Resu
content.push(MessageContent::tool_request(
id.clone(),
Ok(CallToolRequestParam {
task: None,
name: name.clone().into(),
arguments: Some(object(parsed_args)),
}),
@@ -523,6 +525,7 @@ fn process_streaming_output_items(
content.push(MessageContent::tool_request(
id,
Ok(CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(parsed_args)),
}),
@@ -546,6 +549,7 @@ fn process_streaming_output_items(
content.push(MessageContent::tool_request(
call_id,
Ok(CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(parsed_args)),
}),
@@ -185,6 +185,7 @@ pub fn parse_streaming_response(sse_data: &str) -> Result<Message> {
let input_value = serde_json::from_str::<Value>(&tool_input)
.unwrap_or_else(|_| Value::String(tool_input.clone()));
let tool_call = CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(input_value)),
};
@@ -192,6 +193,7 @@ pub fn parse_streaming_response(sse_data: &str) -> Result<Message> {
} else {
// Tool with no input - use empty object
let tool_call = CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object!({})),
};
@@ -252,6 +254,7 @@ pub fn response_to_message(response: &Value) -> Result<Message> {
.clone();
let tool_call = CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(input)),
};
@@ -691,6 +694,7 @@ data: {"id":"a9537c2c-2017-4906-9817-2456168d89fa","model":"claude-sonnet-4-2025
// Create a conversation with text, tool requests, and tool responses
let tool_call = CallToolRequestParam {
task: None,
name: "calculator".into(),
arguments: Some(object!({"expression": "2 + 2"})),
};
+1
View File
@@ -226,6 +226,7 @@ impl OllamaInterpreter {
// Add the tool call to our result vector
tool_calls.push(CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(arguments)),
});
+1
View File
@@ -461,6 +461,7 @@ impl Provider for VeniceProvider {
};
let tool_call = CallToolRequestParam {
task: None,
name: name.into(),
arguments: Some(object(arguments)),
};