openclaw/extensions/canvas
Peter Steinberger 3ccf2a0739
feat: render inline web chat widgets via capability-gated show_widget tool (#101840)
Adds client-capability-gated tool availability: gateway clients declare
capabilities at connect (new inline-widgets cap), chat.send stamps them into
the run context, and every tool assembly path (embedded runner, queued
followups, Codex app-server harness, plugin-only construction plans) drops
tools whose requiredClientCaps the originating client did not declare. The
Canvas plugin ships the first such tool, show_widget: agents pass SVG or an
HTML fragment plus a title; the plugin hosts it as a bounded, retention-scoped
Canvas document and returns the existing canvas preview handle, which web chat
renders as a sandboxed iframe fitted to the widget's reported content height.
Widget frames never get allow-same-origin (per-preview sandbox ceiling,
including the sidebar path) and the Canvas host serves widget documents with a
CSP sandbox header so direct navigation runs in an opaque origin. Verified
live end-to-end on a Testbox with gpt-5.5 (screenshots on the PR). CLI-backed
model backends do not carry client caps yet and stay fail-closed (#102577).

Closes #101790
2026-07-09 12:29:50 +01:00
..
scripts fix(canvas): guard native A2UI resources 2026-06-23 13:44:14 +08:00
skills/canvas refactor(plugins): move owner skills into plugins 2026-06-22 13:54:08 +08:00
src feat: render inline web chat widgets via capability-gated show_widget tool (#101840) 2026-07-09 12:29:50 +01:00
cli-metadata.ts docs: document canvas plugin 2026-06-04 08:07:38 -04:00
index.test.ts docs: document small extension sources 2026-06-04 21:02:07 -04:00
index.ts feat: render inline web chat widgets via capability-gated show_widget tool (#101840) 2026-07-09 12:29:50 +01:00
openclaw.plugin.json feat: render inline web chat widgets via capability-gated show_widget tool (#101840) 2026-07-09 12:29:50 +01:00
package.json chore: update dependencies (#100027) 2026-07-04 14:56:50 -04:00
runtime-api.ts docs: document canvas plugin 2026-06-04 08:07:38 -04:00
setup-api.ts docs: document canvas plugin 2026-06-04 08:07:38 -04:00