MCPcopy Create free account
hub / github.com/Louisym/MiniCC / PermissionPolicy

Class PermissionPolicy

tutorials/05_agentic_loop_complete.py:104–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102 return (True, "auto-approved")
103
104class PermissionPolicy:
105 def __init__(self, mode: PermissionMode):
106 self.mode = mode
107 self._requirements: dict[str, PermissionMode] = {}
108
109 def with_tool_requirement(self, tool_name: str, required: PermissionMode) -> "PermissionPolicy":
110 self._requirements[tool_name] = required
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 精简版) ---

Callers 1

mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected