@itpay/cli 2.0.26 → 2.0.28
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/dist/src/client/backend.js +17 -0
- package/dist/src/commands/guidance.js +1 -1
- package/dist/src/commands/vault.js +95 -0
- package/dist/src/main.js +72 -0
- package/dist/src/state/config.js +2 -2
- package/dist/src/state/device_authority.js +1 -1
- package/docs/cli-reference/commands/vault/access.md +32 -0
- package/docs/cli-reference/commands/vault/index.md +11 -0
- package/docs/cli-reference/commands/vault/list.md +49 -0
- package/docs/cli-reference/commands/vault/read.md +27 -0
- package/docs/cli-reference/index.md +7 -0
- package/docs/skill-bundle-rollout/01-mcp-authentication.md +95 -217
- package/docs/skill-bundle-rollout/02-platform-bundle-repositories.md +135 -207
- package/docs/skill-bundle-rollout/03-platform-publishing.md +117 -227
- package/docs/skill-bundle-rollout/04-first-wave-platforms.md +57 -20
- package/docs/skill-bundle-rollout/README.md +120 -69
- package/package.json +1 -1
- package/skills/itpay/SKILL.md +17 -1
|
@@ -1,147 +1,82 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 多平台仓库与 CLI Bundle 合同
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
状态:current。
|
|
4
|
+
最后核对:2026-08-10。
|
|
4
5
|
|
|
5
|
-
## 1.
|
|
6
|
+
## 1. 原则
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- `npm run check` 执行类型检查、测试覆盖率和打包 smoke test。
|
|
11
|
-
- main 分支 CD 在验证后发布精确 npm 版本。
|
|
12
|
-
- npm 包已经包含 `bin/`、`dist/src/`、`docs/`、`skills/`、README 和 LICENSE。
|
|
13
|
-
- CLI 运行依赖 Node.js 18+,并依赖 `commander`、`qrcode`。
|
|
14
|
-
- `skills/itpay/SKILL.md` 是当前通用 Skill 合同,但没有四个平台各自的 manifest、目录结构和商店发布材料。
|
|
15
|
-
|
|
16
|
-
只复制 npm 包 tarball 并不等于自包含 bundle,因为 npm tarball 不包含生产 `node_modules`。真正的 bundle 必须在发布时装入精确生产依赖,或者未来另行构建单文件/原生可执行文件。
|
|
17
|
-
|
|
18
|
-
## 2. Target Behavior
|
|
19
|
-
|
|
20
|
-
建立四个独立平台仓库。每个仓库只维护:
|
|
8
|
+
每个真实发布面可以有独立仓库,但所有仓库消费同一 MCP 和同一
|
|
9
|
+
`@itpay/cli`。独立仓库解决 manifest、安装、提示、审核和发布节奏差异,
|
|
10
|
+
不制造平台业务 fork。
|
|
21
11
|
|
|
22
12
|
```text
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
由自动化生成的 vendor/itpay-cli bundle
|
|
26
|
-
bundle.lock.json
|
|
27
|
-
平台测试与发布材料
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
CLI 发布后:
|
|
31
|
-
|
|
32
|
-
```text
|
|
33
|
-
@itpay/cli@X.Y.Z 发布成功
|
|
34
|
-
-> 各平台仓库定时读取 npm dist-tags.latest
|
|
35
|
-
-> 下载精确 X.Y.Z 和 npm integrity
|
|
36
|
-
-> 安装精确 production dependencies
|
|
37
|
-
-> 生成 bundle 和 lock
|
|
38
|
-
-> 运行无全局 CLI smoke test
|
|
39
|
-
-> 创建同步 PR
|
|
40
|
-
-> 人工审查平台差异
|
|
41
|
-
-> 合并、打 tag、按平台上传/发布
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## 3. Scope
|
|
13
|
+
itpay-ai/compose
|
|
14
|
+
Backend / OAuth / MCP / Web / Buyer / Vault
|
|
45
15
|
|
|
46
|
-
|
|
16
|
+
itpay-ai/cli
|
|
17
|
+
@itpay/cli source / command docs / bundle generator
|
|
47
18
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- npm 版本、integrity、源 commit 的锁定记录。
|
|
51
|
-
- CLI 发布后的跨仓同步 PR。
|
|
52
|
-
- 无全局 CLI、无运行时 npm 下载的测试。
|
|
53
|
-
- macOS、Linux、Windows 平台适配验证。
|
|
54
|
-
- 平台审核包、release notes 和回滚规则。
|
|
55
|
-
|
|
56
|
-
### Out of scope
|
|
57
|
-
|
|
58
|
-
- 把 CLI 源码复制到四个仓库继续开发。
|
|
59
|
-
- 每个平台 fork 一套业务逻辑。
|
|
60
|
-
- 运行时自动执行 `npm install -g @itpay/cli@latest`。
|
|
61
|
-
- 在 CLI 发布时绕过平台审核自动公开商店版本。
|
|
62
|
-
- 第一阶段引入新的单文件打包器或原生二进制工具链。
|
|
63
|
-
|
|
64
|
-
## 4. 仓库布局
|
|
65
|
-
|
|
66
|
-
### OpenAI
|
|
67
|
-
|
|
68
|
-
```text
|
|
69
|
-
itpay-skill-openai/
|
|
70
|
-
plugin metadata / submission assets
|
|
71
|
-
skills/itpay/SKILL.md
|
|
72
|
-
skills/itpay/scripts/itpay
|
|
73
|
-
skills/itpay/vendor/itpay-cli/
|
|
74
|
-
bundle.lock.json
|
|
75
|
-
tests/
|
|
76
|
-
submission/
|
|
19
|
+
platform repository
|
|
20
|
+
manifest / platform Skill / exact CLI bundle / tests / submission
|
|
77
21
|
```
|
|
78
22
|
|
|
79
|
-
|
|
23
|
+
## 2. 当前仓库注册表
|
|
80
24
|
|
|
81
|
-
|
|
25
|
+
具体发布状态只在
|
|
26
|
+
[04-first-wave-platforms.md](./04-first-wave-platforms.md) 维护。
|
|
82
27
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
vendor/itpay-cli/
|
|
91
|
-
.mcp.json # 远程 MCP 上线时加入
|
|
92
|
-
bundle.lock.json
|
|
93
|
-
README.md
|
|
94
|
-
```
|
|
28
|
+
| 产品面 | 仓库 | 本地 CLI | 远程 MCP |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| ChatGPT + Codex | `itpay-plugin-chatgpt` | local Codex | ChatGPT/cloud |
|
|
31
|
+
| WorkBuddy | `itpay-skill-workbuddy` | default when shell is available | explicit connection |
|
|
32
|
+
| OpenClaw | `itpay-skill-openclaw` | supported host-dependent | only after real client acceptance |
|
|
33
|
+
| Kimi Work / Kimi Code | `itpay-plugin-kimi-work` | Kimi Code host-dependent | Kimi Work/remote host-dependent |
|
|
34
|
+
| Hermes Agent | `itpay-skill-hermes` | supported host-dependent | only after real client acceptance |
|
|
95
35
|
|
|
96
|
-
|
|
36
|
+
Claude 和 Gemini 属于待开始支持目标;没有真实仓库、manifest 和验收前不放入
|
|
37
|
+
当前注册表。
|
|
97
38
|
|
|
98
|
-
|
|
39
|
+
## 3. 平台仓库最小内容
|
|
99
40
|
|
|
100
41
|
```text
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
manifest 位于绝对根目录。Skill 命令使用 `${extensionPath}` 定位 bundle,不依赖安装目录名称。
|
|
111
|
-
|
|
112
|
-
### WorkBuddy
|
|
113
|
-
|
|
114
|
-
```text
|
|
115
|
-
itpay-skill-workbuddy/
|
|
116
|
-
SKILL.md
|
|
117
|
-
scripts/itpay
|
|
118
|
-
vendor/itpay-cli/
|
|
119
|
-
bundle.lock.json
|
|
120
|
-
README.md
|
|
42
|
+
platform manifest / connector config
|
|
43
|
+
platform-specific SKILL.md
|
|
44
|
+
bin or scripts launcher # only for local-capable hosts
|
|
45
|
+
vendor/itpay-cli/ # generated, not edited
|
|
46
|
+
bundle.lock.json
|
|
47
|
+
tests/
|
|
48
|
+
README / submission / release notes
|
|
121
49
|
```
|
|
122
50
|
|
|
123
|
-
|
|
51
|
+
平台仓库不得包含:
|
|
124
52
|
|
|
125
|
-
|
|
53
|
+
- CLI 源码副本或手工 Agent Type patch;
|
|
54
|
+
- Backend/MCP/Vault 状态机;
|
|
55
|
+
- OAuth client secret、Access/Refresh Token;
|
|
56
|
+
- `.env`、用户 HOME、Device 私钥/session;
|
|
57
|
+
- 运行时 `npm install` 或 `latest`;
|
|
58
|
+
- 全局 CLI fallback。
|
|
126
59
|
|
|
127
|
-
|
|
60
|
+
## 4. Bundle 格式
|
|
128
61
|
|
|
129
|
-
|
|
62
|
+
优先复用现有已验证格式:
|
|
130
63
|
|
|
131
64
|
```text
|
|
132
|
-
npm-tree
|
|
133
|
-
vendor/itpay-cli/package/
|
|
134
|
-
vendor/itpay-cli/node_modules/
|
|
65
|
+
npm-tree
|
|
66
|
+
vendor/itpay-cli/package/
|
|
67
|
+
vendor/itpay-cli/node_modules/ production only
|
|
135
68
|
|
|
136
|
-
single-file-esm
|
|
69
|
+
single-file-esm
|
|
137
70
|
vendor/itpay-cli/itpay-cli.bundle.mjs
|
|
138
|
-
vendor/itpay-cli/docs/
|
|
71
|
+
vendor/itpay-cli/docs/
|
|
139
72
|
vendor/itpay-cli/licenses/
|
|
140
73
|
```
|
|
141
74
|
|
|
142
|
-
WorkBuddy
|
|
75
|
+
WorkBuddy/OpenClaw/Hermes 等上传型 Skill 优先使用 `single-file-esm`,不包含
|
|
76
|
+
`node_modules`。只有真实平台证明 Node runtime 不可用时,才启动 standalone
|
|
77
|
+
executable 工作;不提前维护多架构二进制。
|
|
143
78
|
|
|
144
|
-
|
|
79
|
+
## 5. `bundle.lock.json`
|
|
145
80
|
|
|
146
81
|
至少包含:
|
|
147
82
|
|
|
@@ -149,75 +84,98 @@ WorkBuddy 和 OpenClaw 使用 `single-file-esm`,上传包不得包含任何 `n
|
|
|
149
84
|
{
|
|
150
85
|
"schemaVersion": 1,
|
|
151
86
|
"package": "@itpay/cli",
|
|
152
|
-
"version": "
|
|
87
|
+
"version": "X.Y.Z",
|
|
88
|
+
"format": "single-file-esm",
|
|
153
89
|
"npmIntegrity": "sha512-...",
|
|
154
90
|
"sourceGitSha": "...",
|
|
155
|
-
"generatedAt": "
|
|
156
|
-
"node": ">=18"
|
|
91
|
+
"generatedAt": "<RFC3339>",
|
|
92
|
+
"node": ">=18",
|
|
93
|
+
"bundleDirectory": "vendor/itpay-cli",
|
|
94
|
+
"dependencyLockSha256": "<64 lowercase hex characters>"
|
|
157
95
|
}
|
|
158
96
|
```
|
|
159
97
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- 正确转发全部参数、stdout、stderr 和 exit code。
|
|
166
|
-
- 不修改 `HOME`,使本地平台继续复用真实 `~/.itpay-v3`。
|
|
167
|
-
- 不回退到 PATH 中的另一个 `itpay`,避免同机双版本不确定性。
|
|
168
|
-
- `itpay --version` 必须等于 `bundle.lock.json.version`。
|
|
169
|
-
|
|
170
|
-
用户全局安装的 CLI 可以同时存在:终端里执行全局 `itpay` 使用全局版本;Skill 内必须调用平台 bundle 的绝对路径或 plugin PATH 中的启动器。两者共享同一 `~/.itpay-v3` Device schema,因此共享本地 Device 身份,但代码版本由调用路径明确决定。
|
|
98
|
+
`format` is `single-file-esm` or `npm-tree`. `bundleDirectory` is the
|
|
99
|
+
repository-relative Skill bundle directory, and `dependencyLockSha256` is the
|
|
100
|
+
raw lowercase SHA-256 hex digest emitted by `build-platform-bundle.mjs` (without
|
|
101
|
+
a `sha256:` prefix). The reusable synchronization workflow consumes these exact
|
|
102
|
+
field names.
|
|
171
103
|
|
|
172
|
-
|
|
104
|
+
不得包含 Token、registry credential、本机路径或 Device 状态。
|
|
173
105
|
|
|
174
|
-
|
|
106
|
+
## 6. 启动器规则
|
|
175
107
|
|
|
176
|
-
|
|
108
|
+
- 只调用 bundle 内入口;
|
|
109
|
+
- 转发全部参数、stdout、stderr、signal 和 exit code;
|
|
110
|
+
- 不修改 `HOME`;
|
|
111
|
+
- 不搜索 PATH 中其他 `itpay`;
|
|
112
|
+
- `itpay --version` 必须等于 lock version;
|
|
113
|
+
- 临时测试使用临时 HOME,不能触碰开发者真实 Device;
|
|
114
|
+
- 路径含空格和中文用户名仍可运行。
|
|
177
115
|
|
|
178
|
-
|
|
179
|
-
- 从 npm registry 读取版本、dist.integrity 和 gitHead。
|
|
180
|
-
- 下载 tarball并验证 integrity。
|
|
181
|
-
- 安装 `--omit=dev --ignore-scripts` 的精确生产依赖。
|
|
182
|
-
- 删除 npm cache、测试临时文件和不需要的元数据。
|
|
183
|
-
- 生成 `bundle.lock.json`。
|
|
116
|
+
## 7. 平台 Skill 允许差异
|
|
184
117
|
|
|
185
|
-
|
|
118
|
+
允许:
|
|
186
119
|
|
|
187
|
-
|
|
120
|
+
- manifest 和安装路径;
|
|
121
|
+
- MCP 配置语法;
|
|
122
|
+
- Agent Type / host 选择;
|
|
123
|
+
- 平台工具名和浏览器/文件展示方式;
|
|
124
|
+
- 权限说明和审核材料;
|
|
125
|
+
- CLI/MCP 路由提示;
|
|
126
|
+
- 平台特有的安全限制。
|
|
188
127
|
|
|
189
|
-
|
|
190
|
-
- 平台专用 Skill 从当前 `skills/itpay/SKILL.md` 派生,但认证、路径和工具选择规则允许平台差异。
|
|
191
|
-
- 通用业务规则不得四处手工修改;同步器每次更新时生成或校验通用段落。
|
|
192
|
-
- 支付相关公共 Skill 默认只引导外部 Checkout;operator escape hatch 不作为推荐工作流。
|
|
128
|
+
不允许:
|
|
193
129
|
|
|
194
|
-
|
|
130
|
+
- 改变 CLI 命令参数和 JSON 合同;
|
|
131
|
+
- 改变 MCP 工具 Schema;
|
|
132
|
+
- 改变 Buyer/Vault/支付/退款规则;
|
|
133
|
+
- 保存 OAuth Token;
|
|
134
|
+
- 自动猜测并切换线路;
|
|
135
|
+
- 修改生成的 CLI bundle 业务代码。
|
|
195
136
|
|
|
196
|
-
|
|
137
|
+
## 8. Bundle 生成
|
|
197
138
|
|
|
198
|
-
|
|
139
|
+
生成器只接受精确 semver:
|
|
199
140
|
|
|
200
141
|
```text
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
142
|
+
resolve exact npm version
|
|
143
|
+
-> fetch tarball metadata
|
|
144
|
+
-> verify npm integrity
|
|
145
|
+
-> install exact production dependencies with scripts disabled
|
|
146
|
+
-> remove cache/test/temp files
|
|
147
|
+
-> create requested bundle format
|
|
148
|
+
-> generate lock
|
|
149
|
+
-> secret/dangerous-file scan
|
|
150
|
+
-> offline smoke
|
|
208
151
|
```
|
|
209
152
|
|
|
210
|
-
|
|
153
|
+
拒绝 `latest`、范围、未发布版本和 integrity 不匹配。
|
|
211
154
|
|
|
212
|
-
|
|
155
|
+
## 9. CLI 发布后的同步
|
|
213
156
|
|
|
214
|
-
|
|
157
|
+
```text
|
|
158
|
+
@itpay/cli X.Y.Z published
|
|
159
|
+
-> platform repo detects version drift
|
|
160
|
+
-> invoke reusable bundle workflow
|
|
161
|
+
-> rebuild and verify
|
|
162
|
+
-> update lock/manifest/release notes
|
|
163
|
+
-> create or refresh sync PR
|
|
164
|
+
-> platform owner reviews tests and Skill differences
|
|
165
|
+
-> merge/tag/publish separately
|
|
166
|
+
```
|
|
215
167
|
|
|
216
168
|
CLI 主仓库在 `main` 提供 reusable workflow。各平台仓库每小时错峰运行 caller workflow,并可手动触发;npm `dist-tags.latest` 或请求的 bundle format 与当前 `bundle.lock.json` 不同时更新。同步优先使用只安装到分发仓库、只拥有 Contents/Pull requests 写权限的 `itpay-bundle-sync` GitHub App 短期 token;未配置 App 时回落到平台仓库自己的 `GITHUB_TOKEN`,但该模式创建的 PR checks 需要仓库写权限用户批准。禁止使用个人 PAT。
|
|
217
169
|
|
|
218
170
|
同步决策同时读取 main 和当前版本的 open automation PR。目标版本、format 和 bundle directory 已存在于 open PR 时必须返回 `pr-current`,不得每小时重建、提交或 force-push 同一产物。
|
|
219
171
|
|
|
220
|
-
|
|
172
|
+
- 优先使用最小权限 GitHub App 短期 token;
|
|
173
|
+
- fallback 只使用平台仓库自己的 `GITHUB_TOKEN`;
|
|
174
|
+
- 禁止个人 PAT;
|
|
175
|
+
- 不自动合并;
|
|
176
|
+
- 不自动打 tag;
|
|
177
|
+
- 不自动提交商店;
|
|
178
|
+
- CLI 发布失败时不生成平台发布。
|
|
221
179
|
|
|
222
180
|
- 重新生成 bundle;
|
|
223
181
|
- 更新 manifest 版本、lock、changelog;
|
|
@@ -227,56 +185,26 @@ CLI 主仓库在 `main` 提供 reusable workflow。各平台仓库每小时错
|
|
|
227
185
|
- PR 描述列出 CLI commit、integrity、dependency lock、同步 run、平台测试和是否需要商店重新审核;
|
|
228
186
|
- 新版本 PR 验证成功后,只关闭没有人工提交的旧机器人同步 PR;保留远程分支用于审计和恢复。
|
|
229
187
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
依赖:Step 3。
|
|
233
|
-
|
|
234
|
-
### Step 5:平台发布和回滚
|
|
235
|
-
|
|
236
|
-
- 合并同步 PR 后为平台仓库打与 manifest 一致的 tag。
|
|
237
|
-
- OpenAI、Claude 官方市场和 WorkBuddy 按各自审核流程上传;Gemini GitHub Release 可由 tag 自动生成。
|
|
238
|
-
- 保存每个平台已发布 CLI 版本矩阵。
|
|
239
|
-
- 回滚通过重新发布上一个已验证 bundle 对应的平台版本,不修改或删除用户 Device 身份。
|
|
240
|
-
|
|
241
|
-
依赖:Step 4。
|
|
242
|
-
|
|
243
|
-
## 7. API / Data / Type Changes
|
|
244
|
-
|
|
245
|
-
CLI 业务 API:无。
|
|
246
|
-
|
|
247
|
-
新增发布合同:
|
|
248
|
-
|
|
249
|
-
- `bundle.lock.json` schema。
|
|
250
|
-
- CLI reusable workflow 与各平台 caller workflow。
|
|
251
|
-
- 每个平台 manifest 和平台版本。
|
|
252
|
-
|
|
253
|
-
CLI 版本和平台包版本第一阶段保持相同,减少映射成本。若以后平台仅修改说明而 CLI 未变,再引入独立的 `pluginVersion`,同时保留 `cliVersion`;现在不提前增加双版本系统。
|
|
254
|
-
|
|
255
|
-
## 8. Tests / Verification
|
|
256
|
-
|
|
257
|
-
### 自动化
|
|
258
|
-
|
|
259
|
-
- bundle integrity、精确版本和依赖完整性。
|
|
260
|
-
- 无全局 CLI、离线 smoke、路径含空格、Windows 启动。
|
|
261
|
-
- Skill frontmatter/manifest 校验。
|
|
262
|
-
- secret scan 和危险文件清单。
|
|
263
|
-
- 发布矩阵与 npm 当前版本漂移检测。
|
|
264
|
-
|
|
265
|
-
### 手动
|
|
188
|
+
## 10. Repository tests
|
|
266
189
|
|
|
267
|
-
|
|
268
|
-
- 同机存在全局旧版 CLI 时,Skill 仍调用 bundle 版本。
|
|
269
|
-
- Skill 更新后 bundle 版本更新,但 `~/.itpay-v3/device` 未变化。
|
|
270
|
-
- 平台卸载 Skill 后不删除用户已有 CLI Device 身份;是否保留平台专用缓存按平台规则处理。
|
|
190
|
+
每个平台必须证明:
|
|
271
191
|
|
|
272
|
-
|
|
192
|
+
- 无全局 CLI;
|
|
193
|
+
- 测试期间禁止 npm 网络下载;
|
|
194
|
+
- bundle version/integrity/source SHA 正确;
|
|
195
|
+
- manifest 能被平台 validator 读取;
|
|
196
|
+
- platform Skill 只选择一个 CLI/MCP lane;
|
|
197
|
+
- MCP Token 不进入配置、prompt、tool 或 bundle;
|
|
198
|
+
- Device 文件不被打包或打印;
|
|
199
|
+
- 同机旧全局 CLI 不影响 bundled CLI;
|
|
200
|
+
- 升级/回滚不删除 `~/.itpay-v3`;
|
|
201
|
+
- 平台声称支持 MCP 时完成真实连接、刷新、重连和撤销测试。
|
|
273
202
|
|
|
274
|
-
|
|
275
|
-
- `single-file-esm` 仍依赖宿主 Node.js 18+;未来引入原生 Node addon 时需要重新验证 bundling。
|
|
276
|
-
- 四个仓库意味着四套审核节奏,但不意味着四套 CLI 业务实现。
|
|
277
|
-
- WorkBuddy 公共 SkillHub 提交通道未公开,自动化只能先生成可上传包。
|
|
278
|
-
- 平台安全扫描可能拒绝支付或可执行 bundle;拒绝原因应反馈到相应平台仓库,不改变其他平台已通过版本。
|
|
203
|
+
## 11. 版本与回滚
|
|
279
204
|
|
|
280
|
-
|
|
205
|
+
第一阶段平台包版本跟随 CLI 版本,避免双版本映射。只有平台仅修改 manifest/
|
|
206
|
+
说明且真实需要独立发布节奏时,才增加 `pluginVersion`,同时保留
|
|
207
|
+
`cliVersion`。
|
|
281
208
|
|
|
282
|
-
|
|
209
|
+
回滚发布上一个通过验证的 bundle/manifest,不修改 Buyer、MCP Connection 或
|
|
210
|
+
Device 状态。
|