Returns a label to describe the permission status for a given tool.
(&self, tool_name: &str, origin: &ToolOrigin)
| 831 | |
| 832 | /// Returns a label to describe the permission status for a given tool. |
| 833 | pub fn display_label(&self, tool_name: &str, origin: &ToolOrigin) -> String { |
| 834 | use crate::util::tool_permission_checker::is_tool_in_allowlist; |
| 835 | |
| 836 | let tool_trusted = self.get_active().is_some_and(|a| { |
| 837 | let server_name = match origin { |
| 838 | ToolOrigin::Native => None, |
| 839 | ToolOrigin::McpServer(_) => Some(<ToolOrigin as Borrow<str>>::borrow(origin)), |
| 840 | }; |
| 841 | is_tool_in_allowlist(&a.allowed_tools, tool_name, server_name) |
| 842 | }); |
| 843 | |
| 844 | if tool_trusted || self.trust_all_tools { |
| 845 | format!("* {}", "trusted".dark_green().bold()) |
| 846 | } else { |
| 847 | self.default_permission_label(tool_name) |
| 848 | } |
| 849 | } |
| 850 | |
| 851 | /// Provide default permission labels for the built-in set of tools. |
| 852 | // This "static" way avoids needing to construct a tool instance. |