Agent Runtime 浏览器契约
Agent Runtime 将可玩发行版本作为静态浏览器资源加载到隔离的 iframe 中。游戏负责 渲染、输入、规则与游戏状态;Runtime 负责隔离、生命周期、资源交付与 VifuHub SDK 桥接。
| 范围 | 要求 |
|---|---|
| 入口 | main.url 指向 build.output 中的 HTML 文件,通常是 index.html。 |
| 构建输出 | 只包含静态浏览器文件,不会为游戏运行服务进程。 |
| 资源 | 优先使用相对路径;已声明的数据与媒体使用 hub.resources。 |
| JavaScript | 将可执行代码打包进发行版本,不允许远程 JavaScript。 |
| 网络 | 使用 VifuHub SDK,不要调用任意外部 API。 |
| 存储 | 临时状态可以使用浏览器存储;长期状态使用 hub.gameState。 |
| 宿主桥接 | 使用 @vifu/hub,不要直接调用 window.parent.postMessage(...)。 |
游戏需要适应 iframe 限制:避免顶层跳转、必需弹窗和直接访问父窗口;布局应响应容器 尺寸,并能在不可见时正确暂停和恢复。
上传的游戏代码运行在严格的 sandbox 中。浏览器 sandbox 与 CSP 约束执行环境, 每项受保护操作仍由其所属服务执行授权。
构建成果规则请查看发布策略。
