use async_trait::async_trait;
use rskit_tool::ToolInput;
#[derive(Debug, Clone)]
pub struct ToolAuthorizationRequest {
pub tool_name: String,
pub mcp_name: String,
pub arguments: ToolInput,
}
#[derive(Debug, Clone)]
pub struct ToolAuthorizationDecision {
pub allowed: bool,
pub reason: String,
}
#[async_trait]
pub trait ToolAuthorizer: Send + Sync {
async fn authorize_tool(
&self,
request: &ToolAuthorizationRequest,
) -> Result<ToolAuthorizationDecision, String>;
}