feat: switch from mcp_core::Role to rmcp::model::Role (#3488)
This commit is contained in:
@@ -241,7 +241,7 @@ fn export_session_to_markdown(
|
||||
|
||||
for message in &messages {
|
||||
// Check if this is a User message containing only ToolResponses
|
||||
let is_only_tool_response = message.role == mcp_core::role::Role::User
|
||||
let is_only_tool_response = message.role == rmcp::model::Role::User
|
||||
&& message
|
||||
.content
|
||||
.iter()
|
||||
@@ -263,8 +263,8 @@ fn export_session_to_markdown(
|
||||
// Output the role prefix except for tool response-only messages
|
||||
if !is_only_tool_response {
|
||||
let role_prefix = match message.role {
|
||||
mcp_core::role::Role::User => "### User:\n",
|
||||
mcp_core::role::Role::Assistant => "### Assistant:\n",
|
||||
rmcp::model::Role::User => "### User:\n",
|
||||
rmcp::model::Role::Assistant => "### Assistant:\n",
|
||||
};
|
||||
markdown_output.push_str(role_prefix);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ use goose::message::{Message, MessageContent, ToolRequest, ToolResponse};
|
||||
use goose::utils::safe_truncate;
|
||||
use mcp_core::content::Content as McpContent;
|
||||
use mcp_core::resource::ResourceContents;
|
||||
use mcp_core::role::Role;
|
||||
use rmcp::model::Role;
|
||||
use serde_json::Value;
|
||||
|
||||
const MAX_STRING_LENGTH_MD_EXPORT: usize = 4096; // Generous limit for export
|
||||
|
||||
@@ -1187,7 +1187,7 @@ impl Session {
|
||||
let tool_requests = self
|
||||
.messages
|
||||
.last()
|
||||
.filter(|msg| msg.role == mcp_core::role::Role::Assistant)
|
||||
.filter(|msg| msg.role == rmcp::model::Role::Assistant)
|
||||
.map_or(Vec::new(), |msg| {
|
||||
msg.content
|
||||
.iter()
|
||||
@@ -1259,7 +1259,7 @@ impl Session {
|
||||
} else {
|
||||
// An interruption occurred outside of a tool request-response.
|
||||
if let Some(last_msg) = self.messages.last() {
|
||||
if last_msg.role == mcp_core::role::Role::User {
|
||||
if last_msg.role == rmcp::model::Role::User {
|
||||
match last_msg.content.first() {
|
||||
Some(MessageContent::ToolResponse(_)) => {
|
||||
// Interruption occurred after a tool had completed but not assistant reply
|
||||
@@ -1464,9 +1464,9 @@ impl Session {
|
||||
let msg = Message::from(prompt_message);
|
||||
// ensure we get a User - Assistant - User type pattern
|
||||
let expected_role = if i % 2 == 0 {
|
||||
mcp_core::Role::User
|
||||
rmcp::model::Role::User
|
||||
} else {
|
||||
mcp_core::Role::Assistant
|
||||
rmcp::model::Role::Assistant
|
||||
};
|
||||
|
||||
if msg.role != expected_role {
|
||||
@@ -1480,7 +1480,7 @@ impl Session {
|
||||
break;
|
||||
}
|
||||
|
||||
if msg.role == mcp_core::Role::User {
|
||||
if msg.role == rmcp::model::Role::User {
|
||||
output::render_message(&msg, self.debug);
|
||||
}
|
||||
self.push_message(msg);
|
||||
|
||||
@@ -232,7 +232,7 @@ fn render_tool_response(resp: &ToolResponse, theme: Theme, debug: bool) {
|
||||
Ok(contents) => {
|
||||
for content in contents {
|
||||
if let Some(audience) = content.audience() {
|
||||
if !audience.contains(&mcp_core::role::Role::User) {
|
||||
if !audience.contains(&rmcp::model::Role::User) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user