diff options
Diffstat (limited to 'src/function.rs')
| -rw-r--r-- | src/function.rs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/function.rs b/src/function.rs index 517b9eb..f77467b 100644 --- a/src/function.rs +++ b/src/function.rs @@ -13,8 +13,6 @@ use std::{ path::{Path, PathBuf}, }; -pub type ToolResults = (Vec<ToolResult>, String); - #[cfg(windows)] const PATH_SEP: &str = ";"; #[cfg(not(windows))] @@ -268,6 +266,29 @@ impl ToolCall { } } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct ToolResults { + pub tool_results: Vec<ToolResult>, + pub text: String, + pub sequence: bool, +} + +impl ToolResults { + pub fn new(tool_results: Vec<ToolResult>, text: String) -> Self { + Self { + tool_results, + text, + sequence: false, + } + } + + pub fn extend(&mut self, tool_results: Vec<ToolResult>, _text: String) { + self.tool_results.extend(tool_results); + self.text.clear(); + self.sequence = true; + } +} + #[cfg(windows)] fn polyfill_cmd_name<T: AsRef<Path>>(cmd_name: &str, bin_dir: &[T]) -> String { let cmd_name = cmd_name.to_string(); |
