feat: start use tool permission confirmation struct (#2044)

This commit is contained in:
Yingjie He
2025-04-04 16:39:04 -07:00
committed by GitHub
parent bfed33c5a4
commit 890f266e7b
12 changed files with 88 additions and 29 deletions
+13 -1
View File
@@ -6,6 +6,9 @@ mod prompt;
mod thinking;
pub use builder::build_session;
use goose::permission::permission_confirmation::PrincipalType;
use goose::permission::Permission;
use goose::permission::PermissionConfirmation;
use goose::providers::base::Provider;
pub use goose::session::Identifier;
@@ -598,7 +601,16 @@ impl Session {
// Get confirmation from user
let confirmed = cliclack::confirm(prompt).initial_value(true).interact()?;
self.agent.handle_confirmation(confirmation.id.clone(), confirmed).await;
let permission = if confirmed {
Permission::AllowOnce
} else {
Permission::DenyOnce
};
self.agent.handle_confirmation(confirmation.id.clone(), PermissionConfirmation {
principal_name: "tool_name_placeholder".to_string(),
principal_type: PrincipalType::Tool,
permission,
},).await;
}
// otherwise we have a model/tool to render
else {