diff --git a/crates/assistant2/src/thread.rs b/crates/assistant2/src/thread.rs index 7eeb13f872..e9869f4f22 100644 --- a/crates/assistant2/src/thread.rs +++ b/crates/assistant2/src/thread.rs @@ -518,7 +518,7 @@ impl Thread { match output { Ok(output) => { tool_results.push(LanguageModelToolResult { - tool_use_id: tool_use_id.to_string(), + tool_use_id: tool_use_id.clone(), content: output, is_error: false, }); @@ -527,7 +527,7 @@ impl Thread { } Err(err) => { tool_results.push(LanguageModelToolResult { - tool_use_id: tool_use_id.to_string(), + tool_use_id: tool_use_id.clone(), content: err.to_string(), is_error: true, }); diff --git a/crates/language_model/src/request.rs b/crates/language_model/src/request.rs index 5f11ddffd6..ccc15af952 100644 --- a/crates/language_model/src/request.rs +++ b/crates/language_model/src/request.rs @@ -1,7 +1,7 @@ use std::io::{Cursor, Write}; use crate::role::Role; -use crate::LanguageModelToolUse; +use crate::{LanguageModelToolUse, LanguageModelToolUseId}; use base64::write::EncoderWriter; use gpui::{ point, size, App, AppContext as _, DevicePixels, Image, ObjectFit, RenderImage, Size, Task, @@ -165,7 +165,7 @@ impl LanguageModelImage { #[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq, Hash)] pub struct LanguageModelToolResult { - pub tool_use_id: String, + pub tool_use_id: LanguageModelToolUseId, pub is_error: bool, pub content: String, } diff --git a/crates/language_models/src/provider/anthropic.rs b/crates/language_models/src/provider/anthropic.rs index 3076e4a617..aa1ccfe1ac 100644 --- a/crates/language_models/src/provider/anthropic.rs +++ b/crates/language_models/src/provider/anthropic.rs @@ -513,7 +513,7 @@ pub fn into_anthropic( } MessageContent::ToolResult(tool_result) => { Some(anthropic::RequestContent::ToolResult { - tool_use_id: tool_result.tool_use_id, + tool_use_id: tool_result.tool_use_id.to_string(), is_error: tool_result.is_error, content: tool_result.content, cache_control,