| 59 | |
| 60 | |
| 61 | class CanvasUIExecutor(ToolExecutor[CanvasUIAction, CanvasUIObservation]): |
| 62 | def __call__( |
| 63 | self, |
| 64 | action: CanvasUIAction, |
| 65 | conversation=None, # noqa: ARG002 |
| 66 | ) -> CanvasUIObservation: |
| 67 | return CanvasUIObservation.from_text( |
| 68 | f"UI command '{action.command}' dispatched to the Agent Canvas frontend." |
| 69 | ) |
| 70 | |
| 71 | |
| 72 | _CANVAS_UI_DESCRIPTION = """The user is interacting with you inside Agent Canvas — a web UI with a chat panel on the left and a tabbed right-side panel (files, terminal, browser, vscode, planner, tasklist). This tool lets you drive that right-side panel so the user sees what you just produced. |