SuperAPI AI 工具集

canvas-extension-api

编程与开发

查看项目

更新于 10-16 03:10

技能介绍

用途:Canvas Extensions API 用于构建和校验 OpenHands Apps,即运行在 Agent Canvas 中、可被用户发现、安装、启用和打开的界面。它属于开发者平台,产物是包含 canvas-extension.json 与入口文件的应用包。

主要能力:应用以单个自包含浏览器 ESM 入口导出 activate(host),通过 host.registerPage 注册清单中声明的路由页面。可读取 host.extension 与 host.backend 元数据,用 navigate 做 Canvas 感知路由,用 host.agentServer.request 发起经认证的 Agent Server HTTP 请求(只允许以单个 / 开头的根相对路径)。host API 1 目前唯一实现的贡献类型是路由页面,不支持会话标签、插槽、主题或可视化替换等未实现能力。

使用方式:在应用包根放 canvas-extension.json,schema_version 为 1,指定 name、version、entrypoint 和 contributes.pages。清单路径须在包内,名称与页面 ID 用小写字母、数字和连字符,页面路径为带前导斜杠的 kebab-case,ID 与路径唯一。入口须无未解析的裸导入或外部 chunk,依赖、CSS 与小资源应打包进入口。可选 backend 声明支持 Linux amd64/arm64,用 SHA-256 校验包内 .tar.gz,argv 占位符限于 {artifact_dir}、{data_dir}、{port}。校验命令:node /path/to/canvas-extension-api/scripts/validate-extension.mjs /path/to/app,加 --dist --marker <marker> 可校验产物。

适用场景:为 Agent Canvas 构建浏览器内应用页面,或接入需要生命周期契约的包属受管后端、手动/部署自有 Sidecar。每个应用一个独立包,安装时一次处理一个来源,不批量递归发现。

限制:v1 契约较新,可能变化;静态校验不能替代浏览器 Blob 冒烟测试。安装、启用或挂载不会自动准备或启动受管后端,需显式同意后按解析出的精确版本调用 prepare 与 start,更新会使批准失效。不得从 window.location 推导 Agent Server URL,不得在可移植 v1 应用中直连 Agent Server WebSocket,Automation 是独立服务。同域执行意味着应用拥有完整 Canvas 权限,清理只能尽力而为。关于价格、收费与具体平台支持等,资料暂未提供。