feat: allow user to turn off smart approve (#1407)

This commit is contained in:
Yingjie He
2025-02-27 10:04:17 -08:00
committed by GitHub
parent f73ba9f1af
commit cc78763762
3 changed files with 24 additions and 31 deletions
+5 -1
View File
@@ -11,6 +11,7 @@ use super::Agent;
use crate::agents::capabilities::Capabilities;
use crate::agents::extension::{ExtensionConfig, ExtensionResult};
use crate::config::Config;
use crate::config::ExperimentManager;
use crate::message::{Message, ToolRequest};
use crate::providers::base::Provider;
use crate::providers::base::ProviderUsage;
@@ -244,8 +245,11 @@ impl Agent for TruncateAgent {
let mode = goose_mode.clone();
match mode.as_str() {
"approve" => {
let mut read_only_tools = Vec::new();
// Process each tool request sequentially with confirmation
let read_only_tools = detect_read_only_tools(&capabilities, tool_requests.clone()).await;
if ExperimentManager::is_enabled("GOOSE_SMART_APPROVE")? {
read_only_tools = detect_read_only_tools(&capabilities, tool_requests.clone()).await;
}
for request in &tool_requests {
if let Ok(tool_call) = request.tool_call.clone() {
// Skip confirmation if the tool_call.name is in the read_only_tools list