Mini App SDK
Mini App 是 Cowork 在自己的标签页里打开的网页。Cowork 会在其中加入一个全局对象 window.MAESTROSDK,页面通过它与 Cowork 通信。本章按方法参考的格式,列出这个对象中 Cowork 支持的模块,以及其中的每个函数。
发布状态
标有 尚未发布 的函数已在 Cowork 源码里,但还没有进入已发布的版本。调用前先检查函数是否存在(见检查可用性)。
模块
| 模块 | 函数 | 用途 |
|---|---|---|
| 生命周期 | beforeRefresh(handler) | 有人刷新标签页时保住未保存的内容 |
| 交互 | confirm(request) | 用原生对话框问用户一个是 / 否问题 |
| 模型 | llm.providers() · llm.complete(request) | 使用 Cowork 里已设置好的某个 AI 模型 |
| 包 | package.get() | 读取这个 Mini App 所在的包,以及包里有哪些扩展 |
| 登录 | auth.login(params?) · auth.status() | 用这个人的 Micromeet 账号登录(只限签名包) |
要做一个用 Micromeet 账号登录的 Mini App,从开发登录 Mini App开始。打包 Mini App 并交给 Micromeet 签名,见打包与签名;包必须满足的全部规则见包规范。
除 beforeRefresh 外,每个函数都返回 Promise,而且遇到预期内的失败都不会抛出异常:各自返回 false、null、空列表或 { ok: false, error },具体见各自的小节。
这个对象还有一个 connectors 模块(root、list、agentMdPath、readAgentMd、writeAgentMd、onAgentMdChange)。Cowork 不支持它:其中的函数返回空结果、{ ok: false, reason: 'unsupported' },或抛出 unsupported。不要在 Cowork 的 Mini App 里使用它。
Mini App 文件夹 尚未发布
在 0.1.41 里只有 Cowork 自带的 Mini App,你还不能安装自己的。从下一个版本起:
miniapp/
manifest.json { appId, name, version, entry }
index.html the entry page
app.js app.css anything else it loads, by relative path从 Cowork 0.1.46 起文件名是 manifest.json;更早的版本读 miniapp.json,还有人在用旧版时请同时保留一份这个名字的副本。Mini App 也可以是签名包(app.asar):见打包与签名。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
appId | string | 是 | 反向域名形式的 id,全小写,比如 ai.micromeet.janeapp-operator;最多 128 个字符。标签页为 miniapp:<appId> |
name | string 或 { zh, en } | 是 | 标签页和菜单里显示的名称;最多 60 个字符 |
version | string | 是 | 最多 32 个字符 |
entry | string | 否 | 入口页面,文件夹内的相对路径,最多 256 个字符。默认 index.html |
extension | string | 否 | 仅用于单独安装的 Mini App:其中存放它唯一一个扩展的文件夹。包里的 Mini App 不写这一项 |
- 页面按相对路径加载,使用 hash 路由(
#/page)。 - 每个 Mini App 有自己独立的存储(cookie、
localStorage),与网页标签页和其他 Mini App 分开。卸载时会清除。 - 把它作为包的一部分,和它的扩展、技能一起安装:见扩展能力总览。
检查可用性
const sdk = window.MAESTROSDK;
if (sdk && sdk.package && typeof sdk.package.get === 'function') {
const info = await sdk.package.get();
}在较旧的 Cowork 上,还没有的模块就是不存在;这时给用户显示一句简短说明,而不是直接出错。
相关
- Extension SDK 同一个包里的扩展可以调用什么
- Mini App Cowork 自带的 Mini App
- 扩展能力总览 该做哪种扩展