refactor: Refactored use_tools field to enabled_tools field to make the use of the field more clear

This commit is contained in:
2025-11-04 12:37:14 -07:00
parent 7b08d1ef96
commit 865ef5827b
8 changed files with 52 additions and 50 deletions
+2 -2
View File
@@ -418,7 +418,7 @@ impl RoleLike for Agent {
self.config.top_p
}
fn use_tools(&self) -> Option<String> {
fn enabled_tools(&self) -> Option<String> {
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<String>) {
fn set_enabled_tools(&mut self, value: Option<String>) {
match value {
Some(tools) => {
let tools = tools
+17 -17
View File
@@ -130,7 +130,7 @@ pub struct Config {
pub function_calling: bool,
pub mapping_tools: IndexMap<String, String>,
pub use_tools: Option<String>,
pub enabled_tools: Option<String>,
pub visible_tools: Option<Vec<String>>,
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<String> = parse_value(value)?;
@@ -970,10 +970,10 @@ impl Config {
}
}
pub fn set_use_tools(&mut self, value: Option<String>) {
pub fn set_enabled_tools(&mut self, value: Option<String>) {
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<FunctionDeclaration> {
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<String> = Default::default();
let declaration_names: HashSet<String> = 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::<String>(&get_env_name("use_tools")) {
self.use_tools = v;
if let Some(v) = read_env_value::<String>(&get_env_name("enabled_tools")) {
self.enabled_tools = v;
}
if let Some(v) = read_env_value::<String>(&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();
+17 -15
View File
@@ -28,12 +28,12 @@ pub trait RoleLike {
fn model(&self) -> &Model;
fn temperature(&self) -> Option<f64>;
fn top_p(&self) -> Option<f64>;
fn use_tools(&self) -> Option<String>;
fn enabled_tools(&self) -> Option<String>;
fn use_mcp_servers(&self) -> Option<String>;
fn set_model(&mut self, model: Model);
fn set_temperature(&mut self, value: Option<f64>);
fn set_top_p(&mut self, value: Option<f64>);
fn set_use_tools(&mut self, value: Option<String>);
fn set_enabled_tools(&mut self, value: Option<String>);
fn set_use_mcp_servers(&mut self, value: Option<String>);
}
@@ -52,7 +52,7 @@ pub struct Role {
#[serde(skip_serializing_if = "Option::is_none")]
top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
use_tools: Option<String>,
enabled_tools: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
use_mcp_servers: Option<String>,
@@ -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<f64>,
top_p: Option<f64>,
use_tools: Option<String>,
enabled_tools: Option<String>,
use_mcp_servers: Option<String>,
) {
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<String> {
self.use_tools.clone()
fn enabled_tools(&self) -> Option<String> {
self.enabled_tools.clone()
}
fn use_mcp_servers(&self) -> Option<String> {
@@ -308,8 +310,8 @@ impl RoleLike for Role {
self.top_p = value;
}
fn set_use_tools(&mut self, value: Option<String>) {
self.use_tools = value;
fn set_enabled_tools(&mut self, value: Option<String>) {
self.enabled_tools = value;
}
fn set_use_mcp_servers(&mut self, value: Option<String>) {
+11 -11
View File
@@ -25,7 +25,7 @@ pub struct Session {
#[serde(skip_serializing_if = "Option::is_none")]
top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
use_tools: Option<String>,
enabled_tools: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
use_mcp_servers: Option<String>,
#[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<String> {
self.use_tools.clone()
fn enabled_tools(&self) -> Option<String> {
self.enabled_tools.clone()
}
fn use_mcp_servers(&self) -> Option<String> {
@@ -618,9 +618,9 @@ impl RoleLike for Session {
}
}
fn set_use_tools(&mut self, value: Option<String>) {
if self.use_tools != value {
self.use_tools = value;
fn set_enabled_tools(&mut self, value: Option<String>) {
if self.enabled_tools != value {
self.enabled_tools = value;
self.dirty = true;
}
}