feat: start use tool permission confirmation struct (#2044)
This commit is contained in:
@@ -8,10 +8,14 @@ use axum::{
|
||||
};
|
||||
use bytes::Bytes;
|
||||
use futures::{stream::StreamExt, Stream};
|
||||
use goose::session;
|
||||
use goose::{
|
||||
agents::SessionConfig,
|
||||
message::{Message, MessageContent},
|
||||
permission::permission_confirmation::PrincipalType,
|
||||
};
|
||||
use goose::{
|
||||
permission::{Permission, PermissionConfirmation},
|
||||
session,
|
||||
};
|
||||
use mcp_core::{role::Role, Content, ToolResult};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -385,8 +389,20 @@ async fn confirm_handler(
|
||||
let agent = state.agent.clone();
|
||||
let agent = agent.read().await;
|
||||
let agent = agent.as_ref().ok_or(StatusCode::NOT_FOUND)?;
|
||||
let permission = if request.confirmed {
|
||||
Permission::AllowOnce
|
||||
} else {
|
||||
Permission::DenyOnce
|
||||
};
|
||||
agent
|
||||
.handle_confirmation(request.id.clone(), request.confirmed)
|
||||
.handle_confirmation(
|
||||
request.id.clone(),
|
||||
PermissionConfirmation {
|
||||
principal_name: "tool_name_placeholder".to_string(),
|
||||
principal_type: PrincipalType::Tool,
|
||||
permission,
|
||||
},
|
||||
)
|
||||
.await;
|
||||
Ok(Json(Value::Object(serde_json::Map::new())))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user