create-zleap-app 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-zleap-app",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "一条命令创建 zleapOS 云开发应用(React + TypeScript + Vite),并为 Codex / Claude Code / Pi / OpenCode / Cursor 等 AI 编程工具配好 skills",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -22,9 +22,9 @@
22
22
  "node": ">=18.17"
23
23
  },
24
24
  "zleapKit": {
25
- "cliPackage": "@zleap-web/app-cli",
25
+ "cliPackage": "@zleap-ai/app-cli",
26
26
  "cliVersion": "0.10.0",
27
- "sdkPackage": "@zleap-web/app-sdk",
27
+ "sdkPackage": "@zleap-ai/app-sdk",
28
28
  "sdkVersion": "0.10.0",
29
29
  "skillsRepo": "zleap-ai/zleap-app-kit"
30
30
  },
@@ -16,9 +16,9 @@ zleapOS 云开发应用 = 一个网页(运行在 zleapOS 桌面的沙箱 ifram
16
16
  | 根目录 `index.html` + `main.js` + `sdk/` | `zleap-app init hosted-package` 的原生模板 | 项目根目录 |
17
17
  | 都没有 | 新建项目,见第 1 节 | — |
18
18
 
19
- 两种形态的 SDK 是同一套 API,只是来源不同:React 模板从 npm 包 `@zleap-web/app-sdk` 导入(`/host` 宿主能力、`/workspace` 工作区),
20
- 以 `node_modules/@zleap-web/app-sdk/dist/types/*.d.ts` 为准,并与 `@zleap-web/app-cli` 保持同版本;原生模板用项目里的 `./sdk/*.js`。
21
- 参考资料里写 `./sdk/index.js` / `./sdk/zleap-sdk.js` 的地方,在 React 模板里分别对应 `@zleap-web/app-sdk` / `@zleap-web/app-sdk/host`。
19
+ 两种形态的 SDK 是同一套 API,只是来源不同:React 模板从 npm 包 `@zleap-ai/app-sdk` 导入(`/host` 宿主能力、`/workspace` 工作区),
20
+ 以 `node_modules/@zleap-ai/app-sdk/dist/types/*.d.ts` 为准,并与 `@zleap-ai/app-cli` 保持同版本;原生模板用项目里的 `./sdk/*.js`。
21
+ 参考资料里写 `./sdk/index.js` / `./sdk/zleap-sdk.js` 的地方,在 React 模板里分别对应 `@zleap-ai/app-sdk` / `@zleap-ai/app-sdk/host`。
22
22
 
23
23
  ## 1. 新建项目(非交互,适合 AI 执行)
24
24
 
@@ -57,7 +57,7 @@ manifest 里写 `"appid": "<appid>"`,**不需要** `app_key` 和 `publisher`
57
57
  6. **请用户验收**:安装时平台会自动创建开发环境、开通数据库并按声明建集合,`npm run deploy` 结束时会打印状态;显示未就绪时,请用户在「云开发控制台」选中应用 →「概览」按提示处理。然后从启动台打开应用(已打开的点「重新加载应用」)。
58
58
  7. **排查**:`npm run status`(安装、权限、版本)、`npm run logs`(24h 页面结构化错误 + 本人云函数日志,自动选当前所在环境)、控制台「运行体检」。
59
59
 
60
- `npx zleap-app …` 只在装了 `@zleap-web/app-cli` 的项目里可用;项目外或原生模板(没有 package.json)请用 `npx @zleap-web/app-cli …`。原生模板没有 npm 脚本时,用 CLI 等价命令:`npx @zleap-web/app-cli check .`、`publish .`、`install <app_id>`、`diagnose <app_id>`、`update <app_id> --expected-version-id <当前> --version-id <新>`。
60
+ `npx zleap-app …` 只在装了 `@zleap-ai/app-cli` 的项目里可用;项目外或原生模板(没有 package.json)请用 `npx @zleap-ai/app-cli …`。原生模板没有 npm 脚本时,用 CLI 等价命令:`npx @zleap-ai/app-cli check .`、`publish .`、`install <app_id>`、`diagnose <app_id>`、`update <app_id> --expected-version-id <当前> --version-id <新>`。
61
61
 
62
62
  ### 版本更新提示与授权登录(不需要云资源)
63
63
 
@@ -69,7 +69,7 @@ manifest 里写 `"appid": "<appid>"`,**不需要** `app_key` 和 `publisher`
69
69
  拒绝时 `AUTH_DENIED`(拒绝过的项 24 小时内不再弹框,直接 `AUTH_DENIED`)。`zl.auth.getIdentity()` 静默拿 `openid`(每个应用不同、开发与线上一致)。
70
70
  云函数里用 `zl.cloud.auth.getOpenId()` / `getUserInfo()`;不要用 `getContext().userId`(平台内部 ID,已废弃)。
71
71
  不要自己做登录页或索要账号;云函数里目前读不到授权信息。
72
- - 都从 `@zleap-web/app-sdk` 导入(`import { zl, AppError } from '@zleap-web/app-sdk'`),完整说明见 references/app-runtime.md。
72
+ - 都从 `@zleap-ai/app-sdk` 导入(`import { zl, AppError } from '@zleap-ai/app-sdk'`),完整说明见 references/app-runtime.md。
73
73
 
74
74
  ## 4. 只有用户能做的事(明确告诉用户,不要假装已完成)
75
75
 
@@ -127,4 +127,4 @@ manifest 里写 `"appid": "<appid>"`,**不需要** `app_key` 和 `publisher`
127
127
  - references/status-codes.md — 状态与错误码
128
128
 
129
129
  可选:支持 MCP 的工具可以接入同一 CLI 的 MCP 服务(工具 `app_spec_get`、`app_check`、`app_publish`、`app_diagnose` 等):
130
- `npx -y @zleap-web/app-cli mcp serve --workspace <项目绝对路径> --target <OS 地址>`(需先在终端 `auth login`)。
130
+ `npx -y @zleap-ai/app-cli mcp serve --workspace <项目绝对路径> --target <OS 地址>`(需先在终端 `auth login`)。
@@ -19,7 +19,7 @@
19
19
  ## 引入
20
20
 
21
21
  ```ts
22
- import { zl, AppError } from '@zleap-web/app-sdk';
22
+ import { zl, AppError } from '@zleap-ai/app-sdk';
23
23
  ```
24
24
 
25
25
  原生模板(`zleap-app init hosted-package`)用随包的 `./sdk/index.js`,API 相同。
@@ -31,8 +31,8 @@ my-todo/
31
31
  ```
32
32
 
33
33
  SDK 版本与 `zleap-app` 可执行文件一起发布。用 `npm create zleap-app` 生成的 React 项目改为依赖 npm 包
34
- `@zleap-web/app-sdk`:`@zleap-web/app-sdk` 对应 `sdk/index.js`,`/host` 对应 `sdk/zleap-sdk.js`,`/workspace` 对应 `sdk/workspace.js`,
35
- API 完全相同,版本与 `@zleap-web/app-cli` 保持一致。**不要**再从 `zleap-web` 源码自行构建、复制 SDK——旧文档里的做法已过时,
34
+ `@zleap-ai/app-sdk`:`@zleap-ai/app-sdk` 对应 `sdk/index.js`,`/host` 对应 `sdk/zleap-sdk.js`,`/workspace` 对应 `sdk/workspace.js`,
35
+ API 完全相同,版本与 `@zleap-ai/app-cli` 保持一致。**不要**再从 `zleap-web` 源码自行构建、复制 SDK——旧文档里的做法已过时,
36
36
  版本不匹配会在握手时报 `PROTOCOL_MISMATCH`。
37
37
 
38
38
  > **三种「存储」别混用**(提示)
@@ -400,7 +400,7 @@
400
400
  ```
401
401
 
402
402
  `next_action`、`reason` 都在 `detail=` 的 JSON 里。退出码:结果未知(输出含 `COMMIT_UNKNOWN`)为 **6**,其他错误为 **2**;
403
- 通过 npm 包 `@zleap-web/app-cli` 运行但本机缺少对应平台的二进制时为 **127**。MCP 工具出错时返回 `isError: true`,
403
+ 通过 npm 包 `@zleap-ai/app-cli` 运行但本机缺少对应平台的二进制时为 **127**。MCP 工具出错时返回 `isError: true`,
404
404
  内容是 `{"status": "failed" | "unknown" | "unconfirmed", "message": "平台错误 …"}`。
405
405
 
406
406
  `zleap-app prepare` 的特殊结果:
@@ -6,7 +6,7 @@ description: Ship a zleapOS 云开发 (App Cloud) app beyond the developer's own
6
6
  # zleapOS 云开发应用:从开发到上线
7
7
 
8
8
  前置:应用已能用 `npm run deploy`(或 `zleap-app publish` + `install`)装到开发者自己的桌面并读写数据——那部分见 skill `zleap-cloud-app`。
9
- 下文的 `npx zleap-app` 指项目里安装的 `@zleap-web/app-cli`;不在这样的项目里时换成 `npx @zleap-web/app-cli`。本 skill 处理之后的事:签名激活、后台能力、生产环境、分享给同事、版本迭代。完整版流程:references/dev-to-production.md。
9
+ 下文的 `npx zleap-app` 指项目里安装的 `@zleap-ai/app-cli`;不在这样的项目里时换成 `npx @zleap-ai/app-cli`。本 skill 处理之后的事:签名激活、后台能力、生产环境、分享给同事、版本迭代。完整版流程:references/dev-to-production.md。
10
10
 
11
11
  ## 0. 先看应用类型:appid 应用直接用「版本管理」
12
12
 
@@ -400,7 +400,7 @@
400
400
  ```
401
401
 
402
402
  `next_action`、`reason` 都在 `detail=` 的 JSON 里。退出码:结果未知(输出含 `COMMIT_UNKNOWN`)为 **6**,其他错误为 **2**;
403
- 通过 npm 包 `@zleap-web/app-cli` 运行但本机缺少对应平台的二进制时为 **127**。MCP 工具出错时返回 `isError: true`,
403
+ 通过 npm 包 `@zleap-ai/app-cli` 运行但本机缺少对应平台的二进制时为 **127**。MCP 工具出错时返回 `isError: true`,
404
404
  内容是 `{"status": "failed" | "unknown" | "unconfirmed", "message": "平台错误 …"}`。
405
405
 
406
406
  `zleap-app prepare` 的特殊结果:
@@ -23,7 +23,7 @@
23
23
  - **一切先声明**:集合与结构写在 `manifest.json` 的 `data.collections` + `data.schemas`;权限写在 `runtime.capabilities.requires`。没声明的运行时一律拿不到。
24
24
  - **集合结构上线后不可改**:已建集合不会随新版本更新 Schema,改字段要新建集合并迁移。`additionalProperties` 缺省按 `false`。
25
25
  - **沙箱**:opaque origin + CSP `connect-src 'none'`、`worker-src 'none'`、只允许包内脚本/样式/字体。不能 `fetch`、不能用外部 CDN/字体、不能用 `localStorage`、不能 `alert/confirm`、不能开 Worker。
26
- - **只通过 `src/cloud/` 访问 SDK**;环境用 `DYNAMIC_CURRENT_ENV`,不要写死 dev/prod。SDK 是 npm 包 `@zleap-web/app-sdk`(另有 `/host` 宿主能力、`/workspace` 工作区入口),API 以 `node_modules/@zleap-web/app-sdk/dist/types/*.d.ts` 为准;升级 SDK 时与 `@zleap-web/app-cli` 保持同版本。
26
+ - **只通过 `src/cloud/` 访问 SDK**;环境用 `DYNAMIC_CURRENT_ENV`,不要写死 dev/prod。SDK 是 npm 包 `@zleap-ai/app-sdk`(另有 `/host` 宿主能力、`/workspace` 工作区入口),API 以 `node_modules/@zleap-ai/app-sdk/dist/types/*.d.ts` 为准;升级 SDK 时与 `@zleap-ai/app-cli` 保持同版本。
27
27
  - **单次读取最多 100 条**,用 `skip` 翻页(skip ≤ 1000)。更新/删除带 `expectedVersion`。
28
28
  - **结果未知不重试**:`COMMIT_UNKNOWN` 时先重读核对;部署脚本退出码 6 同理。
29
29
  - **明确失败优于假成功**:不要用模拟数据、假登录或吞掉错误来让界面「看起来能用」。
@@ -33,7 +33,7 @@ npm run deploy # 构建 → 检查 → 上
33
33
  ```
34
34
  manifest.json 应用声明(权限、集合与结构)。构建时复制到 dist/
35
35
  LICENSE 必需,构建时复制到 dist/
36
- src/cloud/ Cloud SDK(npm 包 @zleap-web/app-sdk)的封装:连接、错误说明、todos 读写
36
+ src/cloud/ Cloud SDK(npm 包 @zleap-ai/app-sdk)的封装:连接、错误说明、todos 读写
37
37
  scripts/zleap.mjs login / deploy / status / logs / versions / release
38
38
  AGENTS.md 给 AI 编程工具的项目规则
39
39
  .agents/skills/ AI 编程工具 skills(Codex、Pi、OpenCode、Cursor 等)
@@ -6,11 +6,11 @@
6
6
  * - 环境由宿主决定:永远用 DYNAMIC_CURRENT_ENV,不要写死 'dev' / 'prod'。
7
7
  * - 每次读最多 100 条,用 skip 翻页;写入结果未知(COMMIT_UNKNOWN)时先重读核对,不要自动重试。
8
8
  */
9
- import { CloudError, zl, type Capabilities } from '@zleap-web/app-sdk';
9
+ import { CloudError, zl, type Capabilities } from '@zleap-ai/app-sdk';
10
10
 
11
11
  export { CloudError };
12
12
  export type { Capabilities };
13
- export type { Document } from '@zleap-web/app-sdk';
13
+ export type { Document } from '@zleap-ai/app-sdk';
14
14
 
15
15
  export type ConnectionState =
16
16
  | { status: 'connecting' }