omx(team): auto-checkpoint worker-1 [1]

This commit is contained in:
bellman
2026-05-14 17:18:50 +09:00
parent 1864ce38ad
commit 4af5664ff8
5 changed files with 190 additions and 3 deletions

View File

@@ -78,10 +78,25 @@ def find_tools(query: str, limit: int = 20) -> list[PortingModule]:
return matches[:limit]
def execute_tool(name: str, payload: str = '') -> ToolExecution:
def execute_tool(name: str, payload: str = '', permission_context: ToolPermissionContext | None = None) -> ToolExecution:
module = get_tool(name)
if module is None:
return ToolExecution(name=name, source_hint='', payload=payload, handled=False, message=f'Unknown mirrored tool: {name}')
if permission_context and permission_context.blocks(module.name):
return ToolExecution(name=module.name, source_hint=module.source_hint, payload=payload, handled=False, message=f"Permission denied for mirrored tool '{module.name}'.")
if permission_context:
scope_decision = permission_context.validate_payload_scope(module.name, payload)
if not scope_decision.allowed:
return ToolExecution(
name=module.name,
source_hint=module.source_hint,
payload=payload,
handled=False,
message=(
f"Permission denied for mirrored tool '{module.name}': {scope_decision.reason}"
f" (candidate={scope_decision.candidate!r}, resolved={scope_decision.resolved!r})."
),
)
action = f"Mirrored tool '{module.name}' from {module.source_hint} would handle payload {payload!r}."
return ToolExecution(name=module.name, source_hint=module.source_hint, payload=payload, handled=True, message=action)