Canvas (aplikacja macOS)
Aplikacja macOS osadza panel Canvas sterowany przez agenta przy użyciuWKWebView. To
lekki wizualny workspace dla HTML/CSS/JS, A2UI oraz małych interaktywnych
powierzchni UI.
Gdzie znajduje się Canvas
Stan Canvas jest przechowywany w 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, aplikacja pokazuje wbudowaną stronę szkieletową.
Zachowanie panelu
- Panel bez obramowania, z możliwością zmiany rozmiaru, zakotwiczony w pobliżu paska menu (lub kursora myszy).
- Zapamiętuje rozmiar/pozycję dla każdej sesji.
- Automatycznie przeładowuje się, gdy lokalne pliki Canvas się zmienią.
- W danym momencie widoczny jest tylko jeden panel Canvas (sesja jest przełączana w razie potrzeby).
CANVAS_DISABLED.
Powierzchnia API agenta
Canvas jest udostępniany przez Gateway WebSocket, więc agent może:- pokazywać/ukrywać panel
- przechodzić do ścieżki lub URL-a
- wykonywać JavaScript
- przechwytywać obraz migawki
canvas.navigateakceptuje lokalne ścieżki Canvas, URL-ehttp(s)i URL-efile://.- Jeśli przekażesz
"/", Canvas pokaże lokalny szkielet lubindex.html.
A2UI w Canvas
A2UI jest hostowane przez host Canvas Gateway i renderowane wewnątrz panelu Canvas. Gdy Gateway ogłasza host Canvas, aplikacja macOS automatycznie przechodzi do strony hosta A2UI przy pierwszym otwarciu. Domyślny URL hosta A2UI:Polecenia A2UI (v0.8)
Canvas obecnie akceptuje wiadomości A2UI serwer→klient w wersji A2UI v0.8:beginRenderingsurfaceUpdatedataModelUpdatedeleteSurface
createSurface (v0.9) nie jest obsługiwane.
Przykład CLI:
Wyzwalanie uruchomień agenta z Canvas
Canvas może wyzwalać nowe uruchomienia agenta przez deep linki:openclaw://agent?...
Uwagi dotyczące bezpieczeństwa
- Schemat Canvas blokuje przechodzenie po katalogach; pliki muszą znajdować się pod katalogiem głównym sesji.
- Lokalna zawartość Canvas używa niestandardowego schematu (nie jest wymagany serwer loopback).
- Zewnętrzne URL-e
http(s)są dozwolone tylko przy jawnym przejściu do nich.