WKWebView. Il
s’agit d’un espace de travail visuel léger pour HTML/CSS/JS, A2UI et les petites surfaces
d’interface utilisateur interactives.
Où se trouve Canvas
L’état de Canvas est stocké sous 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 n’existe à la racine, l’application affiche une page d’échafaudage intégrée.
Comportement du panneau
- Panneau sans bordure et redimensionnable, ancré près de la barre des menus (ou du curseur de la souris).
- Mémorise la taille et la position par session.
- Se recharge automatiquement lorsque les fichiers Canvas locaux changent.
- Un seul panneau Canvas est visible à la fois (la session est changée si nécessaire).
CANVAS_DISABLED.
Surface d’API de l’agent
Canvas est exposé via le WebSocket Gateway, afin que l’agent puisse :- afficher/masquer le panneau
- naviguer vers un chemin ou une URL
- évaluer du JavaScript
- capturer une image instantanée
canvas.navigateaccepte les chemins Canvas locaux, les URLhttp(s)et les URLfile://.- Si vous passez
"/", Canvas affiche l’échafaudage local ouindex.html.
A2UI dans Canvas
A2UI est hébergé par l’hôte canvas du Gateway et rendu dans le panneau Canvas. Lorsque le Gateway annonce un hôte Canvas, l’application macOS navigue automatiquement vers la page hôte A2UI à la première ouverture. URL par défaut de l’hôte A2UI :Commandes A2UI (v0.8)
Canvas accepte actuellement les messages serveur→client A2UI v0.8 :beginRenderingsurfaceUpdatedataModelUpdatedeleteSurface
createSurface (v0.9) n’est pas pris en charge.
Exemple CLI :
Déclenchement de runs d’agent depuis Canvas
Canvas peut déclencher de nouveaux runs d’agent via des liens profonds :openclaw://agent?...
message: invite d’agent préremplie.sessionKey: identifiant de session stable.thinking: profil de réflexion facultatif.deliver,toouchannel: cible de livraison.timeoutSeconds: délai d’expiration facultatif du run.key: jeton de sécurité généré par l’application pour les appelants locaux de confiance.
Notes de sécurité
- Le schéma Canvas bloque la traversée de répertoires ; les fichiers doivent se trouver sous la racine de session.
- Le contenu Canvas local utilise un schéma personnalisé (aucun serveur local loopback requis).
- Les URL
http(s)externes ne sont autorisées que lorsqu’elles font l’objet d’une navigation explicite.