chore: generalize extension request (#2213)

This commit is contained in:
Wendy Tang
2025-04-16 08:39:49 -07:00
committed by GitHub
parent 970147f8ad
commit 7e4cfcdaae
11 changed files with 84 additions and 69 deletions
+20 -9
View File
@@ -61,9 +61,10 @@ pub struct ToolConfirmationRequest {
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EnableExtensionRequest {
pub struct ExtensionRequest {
pub id: String,
pub extension_name: String,
pub tool_name: String,
}
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
@@ -94,7 +95,7 @@ pub enum MessageContent {
ToolRequest(ToolRequest),
ToolResponse(ToolResponse),
ToolConfirmationRequest(ToolConfirmationRequest),
EnableExtensionRequest(EnableExtensionRequest),
ExtensionRequest(ExtensionRequest),
FrontendToolRequest(FrontendToolRequest),
Thinking(ThinkingContent),
RedactedThinking(RedactedThinkingContent),
@@ -144,10 +145,15 @@ impl MessageContent {
})
}
pub fn enable_extension_request<S: Into<String>>(id: S, extension_name: String) -> Self {
MessageContent::EnableExtensionRequest(EnableExtensionRequest {
pub fn extension_request<S: Into<String>>(
id: S,
extension_name: String,
tool_name: String,
) -> Self {
MessageContent::ExtensionRequest(ExtensionRequest {
id: id.into(),
extension_name,
tool_name,
})
}
@@ -192,9 +198,9 @@ impl MessageContent {
}
}
pub fn as_enable_extension_request(&self) -> Option<&EnableExtensionRequest> {
if let MessageContent::EnableExtensionRequest(ref enable_extension_request) = self {
Some(enable_extension_request)
pub fn as_extension_request(&self) -> Option<&ExtensionRequest> {
if let MessageContent::ExtensionRequest(ref extension_request) = self {
Some(extension_request)
} else {
None
}
@@ -359,12 +365,17 @@ impl Message {
))
}
pub fn with_enable_extension_request<S: Into<String>>(
pub fn with_extension_request<S: Into<String>>(
self,
id: S,
extension_name: String,
tool_name: String,
) -> Self {
self.with_content(MessageContent::enable_extension_request(id, extension_name))
self.with_content(MessageContent::extension_request(
id,
extension_name,
tool_name,
))
}
pub fn with_frontend_tool_request<S: Into<String>>(
@@ -160,7 +160,7 @@ pub fn get_confirmation_message(request_id: &str, tool_call: ToolCall) -> (Princ
if tool_call.name == PLATFORM_ENABLE_EXTENSION_TOOL_NAME {
(
PrincipalType::Extension,
Message::user().with_enable_extension_request(
Message::user().with_extension_request(
request_id,
tool_call
.arguments
@@ -168,6 +168,7 @@ pub fn get_confirmation_message(request_id: &str, tool_call: ToolCall) -> (Princ
.and_then(|v| v.as_str())
.unwrap_or("")
.to_string(),
tool_call.name.clone(),
),
)
} else {
@@ -60,8 +60,8 @@ pub fn format_messages(messages: &[Message]) -> Vec<Value> {
MessageContent::ToolConfirmationRequest(_tool_confirmation_request) => {
// Skip tool confirmation requests
}
MessageContent::EnableExtensionRequest(_enable_extension_request) => {
// Skip enable extension requests
MessageContent::ExtensionRequest(_extension_request) => {
// Skip extension requests
}
MessageContent::Thinking(thinking) => {
content.push(json!({
@@ -31,7 +31,7 @@ pub fn to_bedrock_message_content(content: &MessageContent) -> Result<bedrock::C
MessageContent::ToolConfirmationRequest(_tool_confirmation_request) => {
bedrock::ContentBlock::Text("".to_string())
}
MessageContent::EnableExtensionRequest(_enable_extension_request) => {
MessageContent::ExtensionRequest(_extension_request) => {
bedrock::ContentBlock::Text("".to_string())
}
MessageContent::Image(_) => {
@@ -179,7 +179,7 @@ pub fn format_messages(messages: &[Message], image_format: &ImageFormat) -> Vec<
MessageContent::ToolConfirmationRequest(_) => {
// Skip tool confirmation requests
}
MessageContent::EnableExtensionRequest(_) => {
MessageContent::ExtensionRequest(_) => {
// Skip enable extension requests
}
MessageContent::Image(image) => {
+1 -1
View File
@@ -147,7 +147,7 @@ pub fn format_messages(messages: &[Message], image_format: &ImageFormat) -> Vec<
MessageContent::ToolConfirmationRequest(_) => {
// Skip tool confirmation requests
}
MessageContent::EnableExtensionRequest(_) => {
MessageContent::ExtensionRequest(_) => {
// Skip enable extension requests
}
MessageContent::Image(image) => {