feat: ActionRequired (#5897)
This commit is contained in:
@@ -91,6 +91,9 @@ pub fn format_messages(messages: &[Message]) -> Vec<Value> {
|
||||
MessageContent::ToolConfirmationRequest(_tool_confirmation_request) => {
|
||||
// Skip tool confirmation requests
|
||||
}
|
||||
MessageContent::ActionRequired(_action_required) => {
|
||||
// Skip action required messages - they're for UI only
|
||||
}
|
||||
MessageContent::SystemNotification(_) => {
|
||||
// Skip
|
||||
}
|
||||
|
||||
@@ -37,6 +37,9 @@ pub fn to_bedrock_message_content(content: &MessageContent) -> Result<bedrock::C
|
||||
MessageContent::ToolConfirmationRequest(_tool_confirmation_request) => {
|
||||
bedrock::ContentBlock::Text("".to_string())
|
||||
}
|
||||
MessageContent::ActionRequired(_action_required) => {
|
||||
bedrock::ContentBlock::Text("".to_string())
|
||||
}
|
||||
MessageContent::Image(image) => {
|
||||
bedrock::ContentBlock::Image(to_bedrock_image(&image.data, &image.mime_type)?)
|
||||
}
|
||||
|
||||
@@ -208,9 +208,8 @@ fn format_messages(messages: &[Message], image_format: &ImageFormat) -> Vec<Data
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageContent::ToolConfirmationRequest(_) => {
|
||||
// Skip tool confirmation requests
|
||||
}
|
||||
MessageContent::ToolConfirmationRequest(_) => {}
|
||||
MessageContent::ActionRequired(_) => {}
|
||||
MessageContent::Image(image) => {
|
||||
content_array.push(convert_image(image, image_format));
|
||||
}
|
||||
|
||||
@@ -19,10 +19,12 @@ pub fn format_messages(messages: &[Message]) -> Vec<Value> {
|
||||
.iter()
|
||||
.filter(|m| m.is_agent_visible())
|
||||
.filter(|message| {
|
||||
message
|
||||
.content
|
||||
.iter()
|
||||
.any(|content| !matches!(content, MessageContent::ToolConfirmationRequest(_)))
|
||||
message.content.iter().any(|content| {
|
||||
!matches!(
|
||||
content,
|
||||
MessageContent::ToolConfirmationRequest(_) | MessageContent::ActionRequired(_)
|
||||
)
|
||||
})
|
||||
})
|
||||
.map(|message| {
|
||||
let role = if message.role == Role::User {
|
||||
@@ -408,11 +410,11 @@ mod tests {
|
||||
)
|
||||
}
|
||||
|
||||
fn set_up_tool_confirmation_message(id: &str, tool_call: CallToolRequestParam) -> Message {
|
||||
fn set_up_action_required_message(id: &str, tool_call: CallToolRequestParam) -> Message {
|
||||
Message::new(
|
||||
Role::User,
|
||||
0,
|
||||
vec![MessageContent::tool_confirmation_request(
|
||||
vec![MessageContent::action_required(
|
||||
id.to_string(),
|
||||
tool_call.name.to_string().clone(),
|
||||
tool_call.arguments.unwrap_or_default().clone(),
|
||||
@@ -474,7 +476,7 @@ mod tests {
|
||||
arguments: Some(object(arguments.clone())),
|
||||
},
|
||||
),
|
||||
set_up_tool_confirmation_message(
|
||||
set_up_action_required_message(
|
||||
"id2",
|
||||
CallToolRequestParam {
|
||||
name: "tool_name_2".into(),
|
||||
|
||||
@@ -198,9 +198,8 @@ pub fn format_messages(messages: &[Message], image_format: &ImageFormat) -> Vec<
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageContent::ToolConfirmationRequest(_) => {
|
||||
// Skip tool confirmation requests
|
||||
}
|
||||
MessageContent::ToolConfirmationRequest(_) => {}
|
||||
MessageContent::ActionRequired(_) => {}
|
||||
MessageContent::Image(image) => {
|
||||
content_array.push(convert_image(image, image_format));
|
||||
}
|
||||
|
||||
@@ -50,9 +50,8 @@ pub fn format_messages(messages: &[Message]) -> Vec<Value> {
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageContent::ToolConfirmationRequest(_) => {
|
||||
// Skip tool confirmation requests
|
||||
}
|
||||
MessageContent::ToolConfirmationRequest(_) => {}
|
||||
MessageContent::ActionRequired(_) => {}
|
||||
MessageContent::SystemNotification(_) => {
|
||||
// Skip
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user