Files
openclaw/extensions/canvas/openclaw.plugin.json
Peter Steinberger ae55a4090c refactor(canvas): make the panel a widget presenter (#126030)
* refactor(canvas): retire legacy host and commands

* refactor(apple): narrow shared Canvas contracts

* refactor(macos): keep Canvas as widget presenter

* refactor(ios): remove Canvas client

* refactor(android): remove Canvas client

* refactor(linux): remove Canvas client

* fix(ci): isolate native locale artifacts

* fix(linux): regenerate companion lockfile

* fix(canvas): refresh native tool display metadata

* test(canvas): align coverage with presenter surface

* test(canvas): remove obsolete asset root seam

* test(canvas): stabilize retirement CI coverage

* refactor(swift): remove orphaned resource wrapper

* test(ios): remove retired canvas layout assertion

* fix(macos): reserve retired canvas command namespace

* refactor(macos): isolate canvas command policy

* fix(canvas): select only eligible macOS panels

* fix(canvas): keep panel selection plugin-owned
2026-08-19 08:21:07 -07:00

50 lines
1.0 KiB
JSON

{
"id": "canvas",
"doctorContract": {
"configRepair": true,
"stateMigrations": true
},
"activation": {
"onStartup": true
},
"enabledByDefault": true,
"name": "Canvas",
"description": "Presents hosted widget documents on paired macOS panels.",
"skills": ["./skills"],
"contracts": {
"tools": ["canvas"]
},
"configContracts": {
"compatibilityMigrationPaths": [
"canvasHost",
"plugins.entries.canvas.config.host"
]
},
"uiHints": {
"host": {
"label": "Widget Presenter",
"help": "Controls hosted widget document and renderer routes.",
"advanced": true
},
"host.enabled": {
"label": "Widget Presenter Enabled",
"advanced": true
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"host": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
}
}
}
}
}
}