chore: generalize extension request (#2213)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user