| 27045 | return None |
| 27046 | client.set_request_handler("canvas.close", handle_canvas_close) |
| 27047 | async def handle_canvas_action_invoke(params: dict) -> dict | None: |
| 27048 | request = CanvasProviderInvokeActionRequest.from_dict(params) |
| 27049 | handler = get_handlers(request.session_id).canvas |
| 27050 | if handler is None: raise RuntimeError(f"No canvas handler registered for session: {request.session_id}") |
| 27051 | result = await handler.invoke(request) |
| 27052 | return result.value if hasattr(result, 'value') else result |
| 27053 | client.set_request_handler("canvas.action.invoke", handle_canvas_action_invoke) |
| 27054 | |
| 27055 | # Experimental: this API group is experimental and may change or be removed. |