(self, tool_name: str, tool_input: str, prompter: Optional[PermissionPrompter] = None)
| 111 | return self |
| 112 | |
| 113 | def authorize(self, tool_name: str, tool_input: str, prompter: Optional[PermissionPrompter] = None) -> tuple[bool, str]: |
| 114 | required = self._requirements.get(tool_name, PermissionMode.DANGER_FULL_ACCESS) |
| 115 | if self.mode >= required: |
| 116 | return (True, "permitted") |
| 117 | if prompter is not None: |
| 118 | return prompter.decide(tool_name, tool_input) |
| 119 | return (False, f"tool '{tool_name}' requires {required.name}, current is {self.mode.name}") |
| 120 | |
| 121 | |
| 122 | # --- 工具执行器 (Tutorial 03 精简版) --- |