Skip to main content

顶层字段

能力声明与开关

只声明实际需要的能力。下面只展示 miniapp/miniapp.json 的部分声明:
用户可以在插件详情的权限面板逐项关闭 Connector provider、Agent 会话、读取会话、工具调用,以及麦克风、摄像头和系统通知权限。声明限定可申请的能力,开关决定调用是否获准;关闭权限无需重启 Mini App,代码仍需处理调用被拒绝的情况。具体限制见安全模型。

设备权限

v3.1.6 支持 microphone;camera 和 notifications 从 v3.1.9 起正式提供。声明后还需开启对应的权限开关;同时请求音视频需要声明并开启 microphone 和 camera 两项。定位、剪贴板读取、屏幕捕获等未开放的页面系统权限仍被拒绝。用法见页面设备 API。使用摄像头或系统通知时,在 miniapp/miniapp.json 中声明最低宿主版本:
旧宿主可能拒绝这些设备项,不能靠 capabilities.has() 绕过清单校验。摄像头和通知没有独立的 capability 名称;接口探测也不能代替权限声明和用户开关。版本下限的处理规则见版本要求。

版本要求

engines 写在 miniapp/miniapp.json 中,与 agentAccess 同级,不是写在 plugin.json 中:
只支持 >= 加三段数字,不支持 ^、~ 或多个范围。设置下限前先确认目标版本,避免排除原本仍可使用的宿主。能识别 engines 且低于下限的宿主会拒绝工作区发布;对已安装的包,不加载它的 Mini App 和托管 MCP,同包的 Skill 和普通 MCP 仍可使用。更早的宿主可能不认识 engines 或其他新字段,会直接拒绝 manifest,不能依靠版本下限让未知字段自动降级。页面用 window.mcode?.miniapp?.capabilities?.has(name),Node 用 context.capabilities?.has(name) 探测宿主是否实现某项接口,例如 agent.observe 或 tool。旧宿主可能没有 capabilities,需先检测对象是否存在;返回 true 也不表示当前插件已声明或获准使用该能力。支持的名称和端侧适用范围见能力探测参考。

surface.window

这些属性在弹出窗口时应用,仅支持白名单中的 Electron 窗口参数。所有字段都可选。以下属性不能声明:与主窗口的关系(始终是独立的顶层窗口,主窗口隐藏、最小化或关到托盘都不影响它的显隐)、标题(始终为 displayName)、屏幕位置,以及打开和关闭行为。页面可通过文件面板的弹出操作,或在用户手势中调用 window.update({ mode: 'window' }) 进入独立窗口;关闭窗口后回到文件面板。