fix(sim): wire btn_approve_script and expose pending_script_approval in hook API
_handle_approve_script existed but was not registered in the click handler dict. _pending_dialog (PowerShell confirmation) was invisible to the hook API — only _pending_ask_dialog (MCP tool ask) was exposed. - gui_2.py: register btn_approve_script -> _handle_approve_script - api_hooks.py: add pending_script_approval field to mma_status response - visual_sim_mma_v2.py: _drain_approvals handles pending_script_approval Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -130,6 +130,7 @@ class HookHandler(BaseHTTPRequestHandler):
|
|||||||
result["active_tickets"] = getattr(app, "active_tickets", [])
|
result["active_tickets"] = getattr(app, "active_tickets", [])
|
||||||
result["mma_step_mode"] = getattr(app, "mma_step_mode", False)
|
result["mma_step_mode"] = getattr(app, "mma_step_mode", False)
|
||||||
result["pending_tool_approval"] = getattr(app, "_pending_ask_dialog", False)
|
result["pending_tool_approval"] = getattr(app, "_pending_ask_dialog", False)
|
||||||
|
result["pending_script_approval"] = getattr(app, "_pending_dialog", None) is not None
|
||||||
result["pending_mma_step_approval"] = getattr(app, "_pending_mma_approval", None) is not None
|
result["pending_mma_step_approval"] = getattr(app, "_pending_mma_approval", None) is not None
|
||||||
result["pending_mma_spawn_approval"] = getattr(app, "_pending_mma_spawn", None) is not None
|
result["pending_mma_spawn_approval"] = getattr(app, "_pending_mma_spawn", None) is not None
|
||||||
# Keep old fields for backward compatibility but add specific ones above
|
# Keep old fields for backward compatibility but add specific ones above
|
||||||
|
|||||||
1
gui_2.py
1
gui_2.py
@@ -388,6 +388,7 @@ class App:
|
|||||||
'btn_mma_accept_tracks': self._cb_accept_tracks,
|
'btn_mma_accept_tracks': self._cb_accept_tracks,
|
||||||
'btn_mma_start_track': self._cb_start_track,
|
'btn_mma_start_track': self._cb_start_track,
|
||||||
'btn_approve_tool': self._handle_approve_tool,
|
'btn_approve_tool': self._handle_approve_tool,
|
||||||
|
'btn_approve_script': self._handle_approve_script,
|
||||||
'btn_approve_mma_step': self._handle_approve_mma_step,
|
'btn_approve_mma_step': self._handle_approve_mma_step,
|
||||||
'btn_approve_spawn': self._handle_approve_spawn,
|
'btn_approve_spawn': self._handle_approve_spawn,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,10 @@ def _drain_approvals(client: ApiHookClient, status: dict) -> None:
|
|||||||
print('[SIM] Approving pending tool...')
|
print('[SIM] Approving pending tool...')
|
||||||
client.click('btn_approve_tool')
|
client.click('btn_approve_tool')
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
elif status.get('pending_script_approval'):
|
||||||
|
print('[SIM] Approving pending PowerShell script...')
|
||||||
|
client.click('btn_approve_script')
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
|
|
||||||
def _poll(client: ApiHookClient, timeout: int, condition, label: str) -> tuple[bool, dict]:
|
def _poll(client: ApiHookClient, timeout: int, condition, label: str) -> tuple[bool, dict]:
|
||||||
|
|||||||
Reference in New Issue
Block a user