WKWebView, um
espaço de trabalho visual leve para HTML/CSS/JS, A2UI e pequenas
interfaces de usuário interativas.
Onde o Canvas fica
O estado do Canvas é armazenado no Application Support:~/Library/Application Support/OpenClaw/canvas/<session>/...
openclaw-canvas://<session>/<path>:
openclaw-canvas://main/-><canvasRoot>/main/index.htmlopenclaw-canvas://main/assets/app.css-><canvasRoot>/main/assets/app.cssopenclaw-canvas://main/widgets/todo/-><canvasRoot>/main/widgets/todo/index.html
index.html na raiz, o app exibirá uma página de estrutura integrada.
Comportamento do painel
- Painel sem bordas e redimensionável, ancorado próximo à barra de menus (ou ao cursor do mouse).
- Memoriza o tamanho e a posição de cada sessão.
- Recarrega automaticamente quando os arquivos locais do Canvas são alterados.
- Apenas um painel Canvas fica visível por vez (a sessão é alternada conforme necessário).
CANVAS_DISABLED.
Superfície da API do agente
O Canvas é disponibilizado por meio do WebSocket do Gateway, permitindo que o agente mostre ou oculte o painel, navegue até um caminho ou uma URL, avalie JavaScript e capture uma imagem de snapshot:canvas.navigate aceita caminhos locais do Canvas, URLs http(s) e URLs file://.
Passar "/" exibe a estrutura local ou o index.html.
Os destinos hospedados pelo Gateway em /__openclaw__/canvas/ e
/__openclaw__/a2ui/ são resolvidos por meio da URL atual do Canvas com escopo
da sessão do Node. O app atualiza essa capacidade de curta duração antes da navegação;
você não precisa criar nem copiar uma URL de capacidade por conta própria.
A2UI no Canvas
A A2UI é hospedada pelo host do Canvas no Gateway e renderizada dentro do painel Canvas. Quando o Gateway anuncia um host do Canvas, o app para macOS navega automaticamente até a página do host da A2UI na primeira abertura. A URL anunciada tem escopo de capacidade, por exemplo,http://<gateway-host>:18789/__openclaw__/cap/<token>/__openclaw__/a2ui/?platform=macos.
Trate-a como credenciais efêmeras, não como um link estável.
Comandos da A2UI (v0.8)
O Canvas aceita mensagens A2UI v0.8 do servidor para o cliente:beginRendering,
surfaceUpdate, dataModelUpdate, deleteSurface. createSurface (v0.9) ainda
não é compatível.
Acionamento de execuções do agente pelo Canvas
O Canvas pode acionar novas execuções do agente por meio de links profundosopenclaw://agent?...:
O app solicita confirmação, a menos que uma chave válida seja fornecida. Links sem
chave mostram a mensagem e a URL antes da aprovação e ignoram os campos de roteamento
da entrega; links com chave usam o caminho normal de execução do Gateway.
Observações de segurança
- O esquema do Canvas bloqueia a travessia de diretórios; os arquivos devem residir na raiz da sessão.
- O conteúdo local do Canvas usa um esquema personalizado (sem necessidade de servidor de loopback).
- URLs
http(s)externas são permitidas apenas quando acessadas explicitamente por navegação. - Páginas da Web comuns servem apenas para renderização. As ações do agente são aceitas somente pelo esquema do Canvas pertencente ao app ou pelo documento A2UI exato do Gateway com escopo de capacidade selecionado pelo app; subframes, redirecionamentos, capacidades expiradas e consultas alteradas não podem despachar ações.