chore: generalize extension request (#2213)

This commit is contained in:
Wendy Tang
2025-04-16 08:39:49 -07:00
committed by GitHub
parent 970147f8ad
commit 7e4cfcdaae
11 changed files with 84 additions and 69 deletions
+11 -4
View File
@@ -17,6 +17,7 @@ use completion::GooseCompleter;
use etcetera::choose_app_strategy;
use etcetera::AppStrategy;
use goose::agents::extension::{Envs, ExtensionConfig};
use goose::agents::platform_tools::PLATFORM_ENABLE_EXTENSION_TOOL_NAME;
use goose::agents::{Agent, SessionConfig};
use goose::config::Config;
use goose::message::{Message, MessageContent};
@@ -620,13 +621,19 @@ impl Session {
principal_type: PrincipalType::Tool,
permission,
},).await;
} else if let Some(MessageContent::EnableExtensionRequest(enable_extension_request)) = message.content.first() {
} else if let Some(MessageContent::ExtensionRequest(enable_extension_request)) = message.content.first() {
output::hide_thinking();
let prompt = "Goose would like to install the following extension, do you approve?".to_string();
let extension_action = if enable_extension_request.tool_name == PLATFORM_ENABLE_EXTENSION_TOOL_NAME {
"enable"
} else {
"disable"
};
let prompt = format!("Goose would like to {} the following extension, do you approve?", extension_action);
let confirmed = cliclack::select(prompt)
.item(true, "Yes, for this session", "Enable the extension for this session")
.item(false, "No", "Do not enable the extension")
.item(true, "Yes, for this session", format!("{} the extension for this session", extension_action))
.item(false, "No", format!("Do not {} the extension", extension_action))
.interact()?;
let permission = if confirmed {
Permission::AllowOnce