diff --git a/assets/roles/functions.md b/assets/roles/functions.md index a335a04..d775119 100644 --- a/assets/roles/functions.md +++ b/assets/roles/functions.md @@ -1,3 +1,3 @@ --- -use_tools: all +enabled_tools: all --- diff --git a/assets/roles/repo-analyzer.md b/assets/roles/repo-analyzer.md index 5297dbc..f5c36c2 100644 --- a/assets/roles/repo-analyzer.md +++ b/assets/roles/repo-analyzer.md @@ -1,6 +1,6 @@ --- name: repo-analyzer -use_tools: fs_cat,fs_ls,fs_write,fs_patch,execute_command +enabled_tools: fs_cat,fs_ls,fs_write,fs_patch,execute_command --- **Context:** The task requires the AI to analyze the {{__cwd__}} repository and provide comprehensive insights into various aspects such as directory structure, design patterns, coding conventions, libraries, architecture, module diff --git a/config.example.yaml b/config.example.yaml index 7f4e4d9..3cbe640 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -16,8 +16,8 @@ vault_password_file: null # Path to a file containing the password for th function_calling: true # Enables or disables function calling (Globally). mapping_tools: # Alias for a tool or toolset fs: 'fs_cat,fs_ls,fs_mkdir,fs_rm,fs_write' -use_tools: null # Which tools to use by default. (e.g. 'fs,web_search_loki') -visible_tools: # Which tools are visible to be compiled (and are thus able to be defined in 'use_tools') +enabled_tools: null # Which tools to enable by default. (e.g. 'fs,web_search_loki') +visible_tools: # Which tools are visible to be compiled (and are thus able to be defined in 'enabled_tools') # - demo_py.py # - demo_sh.sh - execute_command.sh diff --git a/config.role.example.md b/config.role.example.md index 7800828..a989b90 100644 --- a/config.role.example.md +++ b/config.role.example.md @@ -4,7 +4,7 @@ name: # The name of the role model: openai:gpt-4o # The model to use for this role temperature: 0.2 # The temperature to use for this role when querying the model top_p: null # The top_p to use for this role when querying the model -use_tools: fs_ls,fs_cat # A comma-separated list of tools to enable for this role +enabled_tools: fs_ls,fs_cat # A comma-separated list of tools to enable for this role use_mcp_servers: github,gitmcp # A comma-separated list of MCP servers to enable for this role --- You are an expert at doing things. This is where I would write the instructions for the role. diff --git a/src/config/agent.rs b/src/config/agent.rs index d7b4bb7..0729d63 100644 --- a/src/config/agent.rs +++ b/src/config/agent.rs @@ -418,7 +418,7 @@ impl RoleLike for Agent { self.config.top_p } - fn use_tools(&self) -> Option { + fn enabled_tools(&self) -> Option { self.config.global_tools.clone().join(",").into() } @@ -439,7 +439,7 @@ impl RoleLike for Agent { self.config.top_p = value; } - fn set_use_tools(&mut self, value: Option) { + fn set_enabled_tools(&mut self, value: Option) { match value { Some(tools) => { let tools = tools diff --git a/src/config/mod.rs b/src/config/mod.rs index 4493d2e..6a9de3c 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -130,7 +130,7 @@ pub struct Config { pub function_calling: bool, pub mapping_tools: IndexMap, - pub use_tools: Option, + pub enabled_tools: Option, pub visible_tools: Option>, pub mcp_servers: bool, @@ -216,7 +216,7 @@ impl Default for Config { function_calling: true, mapping_tools: Default::default(), - use_tools: None, + enabled_tools: None, visible_tools: None, mcp_servers: true, @@ -647,7 +647,7 @@ impl Config { &self.model, self.temperature, self.top_p, - self.use_tools.clone(), + self.enabled_tools.clone(), self.use_mcp_servers.clone(), ); role @@ -694,7 +694,7 @@ impl Config { ("model", role.model().id()), ("temperature", format_option_value(&role.temperature())), ("top_p", format_option_value(&role.top_p())), - ("use_tools", format_option_value(&role.use_tools())), + ("enabled_tools", format_option_value(&role.enabled_tools())), ( "use_mcp_servers", format_option_value(&role.use_mcp_servers()), @@ -767,9 +767,9 @@ impl Config { let value = parse_value(value)?; config.write().set_top_p(value); } - "use_tools" => { + "enabled_tools" => { let value = parse_value(value)?; - config.write().set_use_tools(value); + config.write().set_enabled_tools(value); } "use_mcp_servers" => { let value: Option = parse_value(value)?; @@ -970,10 +970,10 @@ impl Config { } } - pub fn set_use_tools(&mut self, value: Option) { + pub fn set_enabled_tools(&mut self, value: Option) { match self.role_like_mut() { - Some(role_like) => role_like.set_use_tools(value), - None => self.use_tools = value, + Some(role_like) => role_like.set_enabled_tools(value), + None => self.enabled_tools = value, } } @@ -1955,7 +1955,7 @@ impl Config { fn select_enabled_functions(&self, role: &Role) -> Vec { let mut functions = vec![]; if self.function_calling { - if let Some(use_tools) = role.use_tools() { + if let Some(enabled_tools) = role.enabled_tools() { let mut tool_names: HashSet = Default::default(); let declaration_names: HashSet = self .functions @@ -1967,10 +1967,10 @@ impl Config { }) .map(|v| v.name.to_string()) .collect(); - if use_tools == "all" { + if enabled_tools == "all" { tool_names.extend(declaration_names); } else { - for item in use_tools.split(',') { + for item in enabled_tools.split(',') { let item = item.trim(); if let Some(values) = self.mapping_tools.get(item) { tool_names.extend( @@ -2189,7 +2189,7 @@ impl Config { let mut values = vec![ "temperature", "top_p", - "use_tools", + "enabled_tools", "use_mcp_servers", "save_session", "compress_threshold", @@ -2232,7 +2232,7 @@ impl Config { "stream" => complete_bool(self.stream), "save" => complete_bool(self.save), "function_calling" => complete_bool(self.function_calling), - "use_tools" => { + "enabled_tools" => { let mut prefix = String::new(); let mut ignores = HashSet::new(); if let Some((v, _)) = args[1].rsplit_once(',') { @@ -2736,8 +2736,8 @@ impl Config { self.mapping_tools = v; } } - if let Some(v) = read_env_value::(&get_env_name("use_tools")) { - self.use_tools = v; + if let Some(v) = read_env_value::(&get_env_name("enabled_tools")) { + self.enabled_tools = v; } if let Some(v) = read_env_value::(&get_env_name("repl_prelude")) { @@ -2951,7 +2951,7 @@ pub async fn macro_execute( let mut config = config.read().clone(); config.temperature = role.temperature(); config.top_p = role.top_p(); - config.use_tools = role.use_tools().clone(); + config.enabled_tools = role.enabled_tools().clone(); config.use_mcp_servers = role.use_mcp_servers().clone(); config.macro_flag = true; config.model = role.model().clone(); diff --git a/src/config/role.rs b/src/config/role.rs index 5b3ef77..872eb33 100644 --- a/src/config/role.rs +++ b/src/config/role.rs @@ -28,12 +28,12 @@ pub trait RoleLike { fn model(&self) -> &Model; fn temperature(&self) -> Option; fn top_p(&self) -> Option; - fn use_tools(&self) -> Option; + fn enabled_tools(&self) -> Option; fn use_mcp_servers(&self) -> Option; fn set_model(&mut self, model: Model); fn set_temperature(&mut self, value: Option); fn set_top_p(&mut self, value: Option); - fn set_use_tools(&mut self, value: Option); + fn set_enabled_tools(&mut self, value: Option); fn set_use_mcp_servers(&mut self, value: Option); } @@ -52,7 +52,7 @@ pub struct Role { #[serde(skip_serializing_if = "Option::is_none")] top_p: Option, #[serde(skip_serializing_if = "Option::is_none")] - use_tools: Option, + enabled_tools: Option, #[serde(skip_serializing_if = "Option::is_none")] use_mcp_servers: Option, @@ -85,7 +85,9 @@ impl Role { "model" => role.model_id = value.as_str().map(|v| v.to_string()), "temperature" => role.temperature = value.as_f64(), "top_p" => role.top_p = value.as_f64(), - "use_tools" => role.use_tools = value.as_str().map(|v| v.to_string()), + "enabled_tools" => { + role.enabled_tools = value.as_str().map(|v| v.to_string()) + } "use_mcp_servers" => { role.use_mcp_servers = value.as_str().map(|v| v.to_string()) } @@ -126,8 +128,8 @@ impl Role { if let Some(top_p) = self.top_p() { metadata.push(format!("top_p: {top_p}")); } - if let Some(use_tools) = self.use_tools() { - metadata.push(format!("use_tools: {use_tools}")); + if let Some(enabled_tools) = self.enabled_tools() { + metadata.push(format!("enabled_tools: {enabled_tools}")); } if let Some(use_mcp_servers) = self.use_mcp_servers() { metadata.push(format!("use_mcp_servers: {use_mcp_servers}")); @@ -168,9 +170,9 @@ impl Role { let model = role_like.model(); let temperature = role_like.temperature(); let top_p = role_like.top_p(); - let use_tools = role_like.use_tools(); + let enabled_tools = role_like.enabled_tools(); let use_mcp_servers = role_like.use_mcp_servers(); - self.batch_set(model, temperature, top_p, use_tools, use_mcp_servers); + self.batch_set(model, temperature, top_p, enabled_tools, use_mcp_servers); } pub fn batch_set( @@ -178,7 +180,7 @@ impl Role { model: &Model, temperature: Option, top_p: Option, - use_tools: Option, + enabled_tools: Option, use_mcp_servers: Option, ) { self.set_model(model.clone()); @@ -188,8 +190,8 @@ impl Role { if top_p.is_some() { self.set_top_p(top_p); } - if use_tools.is_some() { - self.set_use_tools(use_tools); + if enabled_tools.is_some() { + self.set_enabled_tools(enabled_tools); } if use_mcp_servers.is_some() { self.set_use_mcp_servers(use_mcp_servers); @@ -285,8 +287,8 @@ impl RoleLike for Role { self.top_p } - fn use_tools(&self) -> Option { - self.use_tools.clone() + fn enabled_tools(&self) -> Option { + self.enabled_tools.clone() } fn use_mcp_servers(&self) -> Option { @@ -308,8 +310,8 @@ impl RoleLike for Role { self.top_p = value; } - fn set_use_tools(&mut self, value: Option) { - self.use_tools = value; + fn set_enabled_tools(&mut self, value: Option) { + self.enabled_tools = value; } fn set_use_mcp_servers(&mut self, value: Option) { diff --git a/src/config/session.rs b/src/config/session.rs index 0190251..743f132 100644 --- a/src/config/session.rs +++ b/src/config/session.rs @@ -25,7 +25,7 @@ pub struct Session { #[serde(skip_serializing_if = "Option::is_none")] top_p: Option, #[serde(skip_serializing_if = "Option::is_none")] - use_tools: Option, + enabled_tools: Option, #[serde(skip_serializing_if = "Option::is_none")] use_mcp_servers: Option, #[serde(skip_serializing_if = "Option::is_none")] @@ -156,8 +156,8 @@ impl Session { if let Some(top_p) = self.top_p() { data["top_p"] = top_p.into(); } - if let Some(use_tools) = self.use_tools() { - data["use_tools"] = use_tools.into(); + if let Some(enabled_tools) = self.enabled_tools() { + data["enabled_tools"] = enabled_tools.into(); } if let Some(use_mcp_servers) = self.use_mcp_servers() { data["use_mcp_servers"] = use_mcp_servers.into(); @@ -204,8 +204,8 @@ impl Session { items.push(("top_p", top_p.to_string())); } - if let Some(use_tools) = self.use_tools() { - items.push(("use_tools", use_tools)); + if let Some(enabled_tools) = self.enabled_tools() { + items.push(("enabled_tools", enabled_tools)); } if let Some(use_mcp_servers) = self.use_mcp_servers() { @@ -280,7 +280,7 @@ impl Session { self.model_id = role.model().id(); self.temperature = role.temperature(); self.top_p = role.top_p(); - self.use_tools = role.use_tools(); + self.enabled_tools = role.enabled_tools(); self.use_mcp_servers = role.use_mcp_servers(); self.model = role.model().clone(); self.role_name = convert_option_string(role.name()); @@ -587,8 +587,8 @@ impl RoleLike for Session { self.top_p } - fn use_tools(&self) -> Option { - self.use_tools.clone() + fn enabled_tools(&self) -> Option { + self.enabled_tools.clone() } fn use_mcp_servers(&self) -> Option { @@ -618,9 +618,9 @@ impl RoleLike for Session { } } - fn set_use_tools(&mut self, value: Option) { - if self.use_tools != value { - self.use_tools = value; + fn set_enabled_tools(&mut self, value: Option) { + if self.enabled_tools != value { + self.enabled_tools = value; self.dirty = true; } }