Canvas (aplikacja macOS)
Aplikacja macOS osadza sterowany przez agenta panel Canvas za pomocąWKWebView. Jest to lekki wizualny obszar roboczy dla HTML/CSS/JS, A2UI oraz niewielkich 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 wyświetla wbudowaną stronę szkieletową.
Zachowanie panelu
- Bezramkowy, skalowalny panel zakotwiczony w pobliżu paska menu (lub kursora myszy).
- Zapamiętuje rozmiar/położenie na sesję.
- Automatycznie przeładowuje się po zmianach lokalnych plików Canvas.
- 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, dzięki czemu agent może:- pokazywać/ukrywać panel
- nawigować do ścieżki lub URL
- wykonywać JavaScript
- przechwytywać obraz migawki
canvas.navigateakceptuje lokalne ścieżki Canvas, adresy URLhttp(s)oraz adresy URLfile://.- Jeśli przekażesz
"/", Canvas wyświetli 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 nawiguję do strony hosta A2UI przy pierwszym otwarciu. Domyślny URL hosta A2UI:Polecenia A2UI (v0.8)
Canvas obecnie akceptuje komunikaty serwer→klient 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 za pomocą deep linków: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 (serwer loopback nie jest wymagany).
- Zewnętrzne adresy URL
http(s)są dozwolone tylko przy jawnej nawigacji.