@viceme-ai/cli 0.4.0 → 0.6.0
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/CHANGELOG.md +36 -0
- package/README.md +32 -14
- package/README.zh.md +30 -12
- package/checksums.txt +6 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.0] - 2026-07-22
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- persist explicit local profile overrides (`ba33f0b`)
|
|
8
|
+
|
|
9
|
+
### Other Changes
|
|
10
|
+
|
|
11
|
+
- configure profile token explicitly (`c183ec5`)
|
|
12
|
+
|
|
13
|
+
## [0.5.0] - 2026-07-21
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- pass explicit source root (`e4b4a78`)
|
|
18
|
+
- job metadata 新增 --author 透传来源作者修改 (`bab2399`)
|
|
19
|
+
- job resume 新增 --expected-public-summary-digest 绑定摘要回执 (`1cf648c`)
|
|
20
|
+
- job accept 强制 --inputs-digest 绑定试跑输入集(PRE-04) (`841b4eb`)
|
|
21
|
+
- add explicit compiler retry command (`efcaa0e`)
|
|
22
|
+
- Host typed-action 闭环(job preview/edit/run/accept + META) (`ec6479a`)
|
|
23
|
+
- job metadata 支持信息确认检查点(产品 3098) (`56cf083`)
|
|
24
|
+
- add delegated skill publication credentials (`91fee90`)
|
|
25
|
+
- job resume 支持 confirm_publish 精确候选确认 (`5707afa`)
|
|
26
|
+
|
|
27
|
+
### Fixes
|
|
28
|
+
|
|
29
|
+
- narrow delegated publication client boundary (`3a3647c`)
|
|
30
|
+
- make delegated publishing recovery-safe (`a15b6bd`)
|
|
31
|
+
|
|
32
|
+
### Other Changes
|
|
33
|
+
|
|
34
|
+
- 重新生成命令清单与发布清单 (`b72c634`)
|
|
35
|
+
- 同步 T2 发布门三项强制契约的 Host 指引 (`bc8e170`)
|
|
36
|
+
- docs+test: cancel decision 契约测试与确认门试跑引导 (`73e8ad6`)
|
|
37
|
+
- 发布流程补充 T2 确认门与试跑门禁说明 (`764dbd8`)
|
|
38
|
+
|
|
3
39
|
## [0.4.0] - 2026-07-20
|
|
4
40
|
|
|
5
41
|
### Features
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ The official command-line client and Agent Skill for publishing external Skills
|
|
|
10
10
|
|
|
11
11
|
[Install](#installation--quick-start) · [AI Agent Skills](#agent-skills) · [Auth](#authentication) · [Regions & profiles](#regions--profiles) · [Commands](#command-overview) · [Output contract](#json-output-contract) · [Security](#security-and-risk-controls) · [Development](#development)
|
|
12
12
|
|
|
13
|
-
> **Rollout status:** the Core publication transport and stable-link path are implemented
|
|
13
|
+
> **Rollout status:** the Core publication transport and stable-link path are implemented, and the exact Candidate preview → test run → result-confirmation gate is enforced: after `--yes`, the publication parks at `awaiting_action` with a typed `confirm_publish` action, and `job resume --decision confirm` is accepted only after the exact candidate has a succeeded, owner-accepted preview test run (otherwise 409 `preview_run_required`). Test runs, acceptance, and natural-language candidate edits are driven from the confirmation page (`next_action.payload.preview_url`) or the `/v1/skill-agent-publications/:id/preview-runs` and `/edits` endpoints; the CLI ships no separate commands for them. `--yes` confirms the publication request; it is not proof that the user reviewed the final Candidate.
|
|
14
14
|
|
|
15
15
|
## Why Viceme CLI?
|
|
16
16
|
|
|
@@ -19,7 +19,7 @@ The official command-line client and Agent Skill for publishing external Skills
|
|
|
19
19
|
- **Server-side compilation** — source parsing, LLM compilation, BuildRun materialization, and Release publication stay on Viceme infrastructure.
|
|
20
20
|
- **Stable publishing** — later releases of the same logical Agent keep the same share URL.
|
|
21
21
|
- **Multiple source types** — accepts GitHub Skills, pasted Xiaohongshu/RedSkill expressions, archives, and local Skill folders.
|
|
22
|
-
- **Secure by default** — credentials use the operating-system keychain, public mutations require confirmation, and downloaded binaries are checksum-verified.
|
|
22
|
+
- **Secure by default** — device-login credentials use the operating-system keychain, explicit local overrides require a private profile file, public mutations require confirmation, and downloaded binaries are checksum-verified.
|
|
23
23
|
- **Human and Agent login modes** — `viceme auth login` guides a person in the terminal, while Agent split-flows use explicit JSON.
|
|
24
24
|
|
|
25
25
|
## Installation & Quick Start
|
|
@@ -117,10 +117,10 @@ Continue only when authentication is valid and `skills doctor` reports a healthy
|
|
|
117
117
|
**Step 5 — Inspect the first source**
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
|
-
viceme skill inspect https://github.com/acme/poster-skill
|
|
120
|
+
viceme skill inspect https://github.com/acme/poster-skill --skill-root .
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
Inspection is read-only. Follow the bundled `viceme` Skill for source-specific handling, Target selection, confirmation, bounded job waiting, and result reporting.
|
|
123
|
+
Inspection is read-only. Follow the bundled `viceme` Skill for source-specific handling, Target selection, confirmation, bounded job waiting, and result reporting. After the publication parks at `awaiting_action`, guide the user through candidate preview and a test run with accepted result before resolving with `job resume --decision confirm` (see the rollout status above).
|
|
124
124
|
|
|
125
125
|
## Regions & Profiles
|
|
126
126
|
|
|
@@ -131,7 +131,7 @@ Each profile selects one Viceme region:
|
|
|
131
131
|
| China | `viceme install` | `https://api.viceme.cn` |
|
|
132
132
|
| International | `viceme install --region global` | `https://api.viceme.ai` |
|
|
133
133
|
|
|
134
|
-
The first install creates the `default` profile.
|
|
134
|
+
The first install creates the `default` profile. Device-login credentials are stored exclusively in the operating-system keychain and are isolated by profile and region. The profile file is normally non-sensitive; explicitly configuring a local access-token override turns it into a secret-bearing `0600` file.
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
137
|
viceme profile list
|
|
@@ -144,7 +144,20 @@ viceme profile remove company
|
|
|
144
144
|
|
|
145
145
|
`profile use` changes the persistent active profile; the global `--profile` flag overrides only one command. AI Agents must not switch or remove profiles unless the user explicitly requests it.
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
For an explicitly authorized local/internal test, create a dedicated profile with explicit endpoint and token overrides:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
viceme profile add --name local --region cn \
|
|
151
|
+
--api-base-url http://localhost:8090 --access-token 'YOUR_ACCESS_TOKEN' --use
|
|
152
|
+
|
|
153
|
+
viceme profile configure local --access-token 'YOUR_ACCESS_TOKEN'
|
|
154
|
+
viceme profile configure local --clear-access-token
|
|
155
|
+
viceme profile configure local --clear-api-base-url
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Normal `viceme auth login` never writes `apiBaseUrl` or `accessToken` into a profile. An explicit local token is bound to that profile's normalized API origin and takes precedence over the profile's Keychain login only on that origin; changing origins requires replacing or clearing the token in the same command. While it is active, `auth login` and `auth logout` fail closed. `profile list` and `auth status` report only `source=local_profile`, never the token. Remove the override as soon as the internal test is complete.
|
|
159
|
+
|
|
160
|
+
`VICEME_CLI_CONFIG_DIR` can override the config root. `VICEME_API_BASE_URL` and `VICEME_ACCESS_TOKEN` remain available as one-process overrides and take precedence over the selected profile. Otherwise the profile's explicit `apiBaseUrl`/`accessToken` is used before the region endpoint and Keychain login. A different normalized origin uses an isolated scope. API and presigned-upload requests fail closed on redirects so credential headers are never forwarded to another origin.
|
|
148
161
|
|
|
149
162
|
Update checks query the npm registry directly and store only the last successful version result in `~/.viceme-cli/update-state.json`. A result is used as a fallback for at most 24 hours when the registry is temporarily unavailable. npm operations launched by `viceme install` or `viceme update` use the isolated `~/.viceme-cli/npm-cache`, so a broken user-level `~/.npm` cache does not block the CLI. Both files are non-secret and can be deleted safely; credentials never enter either cache.
|
|
150
163
|
|
|
@@ -179,17 +192,21 @@ viceme skills doctor
|
|
|
179
192
|
| `viceme auth login --device-code <code> --json` | Complete an Agent split-flow in a later turn |
|
|
180
193
|
| `viceme auth logout` | Revoke and remove the current profile credential |
|
|
181
194
|
|
|
182
|
-
Tokens are stored only in the operating-system keychain.
|
|
195
|
+
Tokens created by device login are stored only in the operating-system keychain. Normal login never backfills explicit local profile fields, and successful login output never contains the access or refresh token.
|
|
196
|
+
|
|
197
|
+
The public CLI exposes one standard authentication and publication surface. A short-lived generic credential may be supplied by `VICEME_ACCESS_TOKEN` (`source=process`) or deliberately persisted in a dedicated internal-test profile with `--access-token` (`source=local_profile`). Both use the normal inspect/publish/job commands and the standard `x-api-key` header. Neither path adds identity-selection, delegated-publication, or authorization-issuance commands. Tokens are never printed; login/logout fail closed while either override is active, and update subprocesses do not inherit process credentials. Because the explicit flag may be visible in shell history and process arguments, use it only in the trusted internal test environment described here.
|
|
183
198
|
|
|
184
199
|
## Supported Sources
|
|
185
200
|
|
|
186
201
|
### GitHub or trusted provider
|
|
187
202
|
|
|
188
203
|
```bash
|
|
189
|
-
viceme skill inspect https://github.com/acme/poster-skill
|
|
204
|
+
viceme skill inspect https://github.com/acme/poster-skill --skill-root .
|
|
190
205
|
viceme skill publish --resolution-id <resolution-id> --yes
|
|
191
206
|
```
|
|
192
207
|
|
|
208
|
+
For GitHub, `--skill-root` is required and names the exact repository-relative directory containing `SKILL.md`; use `.` only for a root-level Skill. The calling Agent determines this path from the user input or read-only repository tree. Viceme does not scan the repository to guess a Skill.
|
|
209
|
+
|
|
193
210
|
### Xiaohongshu or RedSkill copied expression
|
|
194
211
|
|
|
195
212
|
```bash
|
|
@@ -224,7 +241,7 @@ viceme skill publish --file ./poster-skill-v2.zip \
|
|
|
224
241
|
| `viceme skill inspect` | Freeze and inspect a source candidate without publishing |
|
|
225
242
|
| `viceme skill publish` | Create or update a stable Skill Agent publication |
|
|
226
243
|
| `viceme skill target` | Resolve existing logical Agent Targets and versions |
|
|
227
|
-
| `viceme job` | Read, wait for, resume, or cancel a durable publication |
|
|
244
|
+
| `viceme job` | Read, wait for, resume, explicitly retry, or cancel a durable publication |
|
|
228
245
|
| `viceme skills` | Read, install, and diagnose the bundled Agent Skill |
|
|
229
246
|
| `viceme update` | Update the npm launcher, verified binary, and bundled Skill together |
|
|
230
247
|
|
|
@@ -264,26 +281,27 @@ CLI execution errors are written to **stderr** with a non-zero exit code:
|
|
|
264
281
|
}
|
|
265
282
|
```
|
|
266
283
|
|
|
267
|
-
Determine command success from the process exit code or `ok == true`. A successfully read publication may still contain a business terminal status such as `unsupported`, `rejected`, or `failed`; inspect `data.status` instead of treating those states as CLI transport failures.
|
|
284
|
+
Determine command success from the process exit code or `ok == true`. The API's domain-specific `error.type` is preserved; the exit code is only a coarse handling class. A successfully read publication may still contain a business terminal status such as `unsupported`, `rejected`, or `failed`; inspect `data.status` instead of treating those states as CLI transport failures.
|
|
268
285
|
|
|
269
286
|
| Exit code | Meaning |
|
|
270
287
|
|---|---|
|
|
271
288
|
| `0` | Command completed; inspect returned business status when applicable |
|
|
272
289
|
| `2` | Validation failure |
|
|
273
290
|
| `3` | Authentication or authorization failure |
|
|
274
|
-
| `4` | Retryable
|
|
291
|
+
| `4` | Retryable transport or concurrency failure |
|
|
275
292
|
| `5` | Internal or protocol failure |
|
|
276
|
-
| `6` | Policy
|
|
293
|
+
| `6` | Policy or rollout-gate rejection |
|
|
277
294
|
| `10` | Explicit confirmation required |
|
|
278
295
|
|
|
279
296
|
## Security and Risk Controls
|
|
280
297
|
|
|
281
298
|
- **No source execution** — the CLI and compiler do not execute third-party scripts, binaries, shell fragments, marketplace commands, or copied instructions.
|
|
282
|
-
- **Explicit public mutation** — publishing and cancellation require `--yes`; exit code `10` means the Agent must obtain confirmation, not silently retry.
|
|
299
|
+
- **Explicit public mutation** — publishing, compiler retry, and cancellation require `--yes`; exit code `10` means the Agent must obtain confirmation, not silently retry.
|
|
283
300
|
- **Safe preview** — use `--dry-run` on inspect or publish when the user needs to review the planned request without network or publication side effects.
|
|
284
|
-
- **Credential isolation** — credentials stay in the OS keychain
|
|
301
|
+
- **Credential isolation** — device-login credentials stay in the OS keychain; explicit internal-test overrides are namespaced by profile, stored only in a private `0600` config, and never emitted by CLI output.
|
|
285
302
|
- **Immutable inputs** — inspection binds publication to an immutable source snapshot rather than re-reading a floating URL later.
|
|
286
303
|
- **Bounded waiting** — `job wait` has a maximum duration and returns the latest durable state without cancelling the workflow.
|
|
304
|
+
- **Bounded compiler recovery** — `job retry` keeps the frozen source and publication, accepts only an explicitly retryable platform failure, and is capped by the server.
|
|
287
305
|
- **Verified distribution** — the npm launcher downloads the binary for its exact package version from GitHub or a binary mirror and verifies it against the checksum manifest bundled in the npm package before activation.
|
|
288
306
|
|
|
289
307
|
## Diagnose and Update
|
package/README.zh.md
CHANGED
|
@@ -19,7 +19,7 @@ Viceme 官方命令行客户端与 Agent Skill,用于将外部 Skill 发布为
|
|
|
19
19
|
- **服务端编译** — 来源解析、LLM 编译、BuildRun 固化和 Release 发布均在 Viceme 基础设施中完成。
|
|
20
20
|
- **稳定发布** — 同一个逻辑 Agent 后续发布新版本时继续使用同一个分享链接。
|
|
21
21
|
- **支持多种来源** — 支持 GitHub Skill、小红书或 RedSkill 复制口令、压缩包和本地 Skill 目录。
|
|
22
|
-
- **默认安全** —
|
|
22
|
+
- **默认安全** — 设备登录凭证保存在操作系统密钥链中,显式本地覆盖要求私有 Profile 文件,公开变更需要确认,下载的二进制文件必须通过校验和验证。
|
|
23
23
|
- **人类与 Agent 双登录模式** — `viceme auth login` 在终端中引导用户,Agent 跨回合流程则显式使用 JSON。
|
|
24
24
|
|
|
25
25
|
## 安装与快速开始
|
|
@@ -117,7 +117,7 @@ viceme skills list
|
|
|
117
117
|
**第 5 步 — 检查第一个来源**
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
|
-
viceme skill inspect https://github.com/acme/poster-skill
|
|
120
|
+
viceme skill inspect https://github.com/acme/poster-skill --skill-root .
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
inspect 是只读操作。后续应按照随包发布的 `viceme` Skill 处理不同来源、Target 选择、用户确认、有界任务等待和结果返回。在上方所述的精确 Candidate 确认门完成前,公开发布流程仍保持关闭。
|
|
@@ -131,7 +131,7 @@ inspect 是只读操作。后续应按照随包发布的 `viceme` Skill 处理
|
|
|
131
131
|
| 中国区 | `viceme install` | `https://api.viceme.cn` |
|
|
132
132
|
| 国际区 | `viceme install --region global` | `https://api.viceme.ai` |
|
|
133
133
|
|
|
134
|
-
首次安装会创建 `default` Profile
|
|
134
|
+
首次安装会创建 `default` Profile。设备登录凭证只保存在操作系统密钥链中,并按 Profile 与区域隔离。Profile 文件通常不含秘密;显式配置本地 access-token 覆盖后,它会成为必须保持 `0600` 权限的敏感文件。
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
137
|
viceme profile list
|
|
@@ -144,7 +144,20 @@ viceme profile remove company
|
|
|
144
144
|
|
|
145
145
|
`profile use` 修改持久化的当前 Profile;全局 `--profile` 只覆盖本次命令。不要让 AI Agent 在用户没有明确要求时切换或删除 Profile。
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
只有在明确授权的本地/内部测试中,才创建独立 Profile,并显式配置 endpoint 与 token:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
viceme profile add --name local --region cn \
|
|
151
|
+
--api-base-url http://localhost:8090 --access-token 'YOUR_ACCESS_TOKEN' --use
|
|
152
|
+
|
|
153
|
+
viceme profile configure local --access-token 'YOUR_ACCESS_TOKEN'
|
|
154
|
+
viceme profile configure local --clear-access-token
|
|
155
|
+
viceme profile configure local --clear-api-base-url
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
正常 `viceme auth login` 永远不会向 Profile 回填 `apiBaseUrl` 或 `accessToken`。显式本地 token 绑定到该 Profile 的 normalized API origin,只会在同一 origin 上优先于 Keychain 登录;切换 origin 时必须在同一条配置命令中替换或清除 token。覆盖生效时 `auth login` 与 `auth logout` 都会 fail closed。`profile list` 和 `auth status` 只报告 `source=local_profile`,不会输出 token。内部测试结束后应立即清除覆盖。
|
|
159
|
+
|
|
160
|
+
可以用 `VICEME_CLI_CONFIG_DIR` 覆盖配置根目录。`VICEME_API_BASE_URL` 与 `VICEME_ACCESS_TOKEN` 仍可作为单进程覆盖,并优先于所选 Profile;否则先使用 Profile 显式配置的 `apiBaseUrl`/`accessToken`,再回退到区域地址和 Keychain 登录。不同 normalized origin 使用独立 scope。API 与预签名上传请求遇到重定向会直接失败,凭证请求头不会被转发到其他 origin。
|
|
148
161
|
|
|
149
162
|
更新检查直接请求 npm registry,并且只把最近一次成功查询到的版本写入 `~/.viceme-cli/update-state.json`;registry 暂时不可用时,该结果最多回退使用 24 小时。`viceme install` 和 `viceme update` 启动的 npm 操作统一使用隔离的 `~/.viceme-cli/npm-cache`,不会因为用户级 `~/.npm` 缓存损坏而失败。这两个位置都不包含秘密信息,可以安全删除;凭证不会进入任何更新缓存。
|
|
150
163
|
|
|
@@ -179,17 +192,21 @@ viceme skills doctor
|
|
|
179
192
|
| `viceme auth login --device-code <code> --json` | 在后续回合完成 Agent 登录流程 |
|
|
180
193
|
| `viceme auth logout` | 撤销并删除当前 Profile 的凭证 |
|
|
181
194
|
|
|
182
|
-
|
|
195
|
+
设备登录生成的令牌只保存在操作系统密钥链中;正常登录不会回填显式本地 Profile 字段,登录成功的输出也不会包含访问令牌或刷新令牌。
|
|
196
|
+
|
|
197
|
+
公开 CLI 只提供一套标准认证与发布命令面。短时通用凭证既可以由 `VICEME_ACCESS_TOKEN` 提供(`source=process`),也可以由运营人员通过 `--access-token` 显式写入专用内部测试 Profile(`source=local_profile`)。两者都只调用标准 `inspect/publish/job` 并使用统一 `x-api-key`;不会新增身份选择、代发布或授权签发命令。CLI 永远不输出 token;覆盖生效时 login/logout fail closed,update 子进程也不会继承进程凭证。显式参数可能出现在 shell history 和进程参数中,仅允许在本文约定的受信任内部联调环境使用。
|
|
183
198
|
|
|
184
199
|
## 支持的来源
|
|
185
200
|
|
|
186
201
|
### GitHub 或可信来源平台
|
|
187
202
|
|
|
188
203
|
```bash
|
|
189
|
-
viceme skill inspect https://github.com/acme/poster-skill
|
|
204
|
+
viceme skill inspect https://github.com/acme/poster-skill --skill-root .
|
|
190
205
|
viceme skill publish --resolution-id <resolution-id> --yes
|
|
191
206
|
```
|
|
192
207
|
|
|
208
|
+
GitHub 来源必须传 `--skill-root`,它是包含 `SKILL.md` 的精确仓库相对目录;只有根级 Skill 才使用 `.`。调用 Agent 根据用户输入或只读仓库文件树确定该路径,Viceme 不扫描全仓猜测 Skill。
|
|
209
|
+
|
|
193
210
|
### 小红书或 RedSkill 复制口令
|
|
194
211
|
|
|
195
212
|
```bash
|
|
@@ -224,7 +241,7 @@ viceme skill publish --file ./poster-skill-v2.zip \
|
|
|
224
241
|
| `viceme skill inspect` | 固化并检查来源候选,不执行发布 |
|
|
225
242
|
| `viceme skill publish` | 创建或更新具有稳定链接的 Skill Agent 发布 |
|
|
226
243
|
| `viceme skill target` | 解析现有逻辑 Agent Target 及其版本 |
|
|
227
|
-
| `viceme job` |
|
|
244
|
+
| `viceme job` | 读取、等待、恢复、显式重试或取消持久化发布任务 |
|
|
228
245
|
| `viceme skills` | 读取、安装和诊断随包发布的 Agent Skill |
|
|
229
246
|
| `viceme update` | 同时更新 npm 启动器、已校验二进制文件和随包发布的 Skill |
|
|
230
247
|
|
|
@@ -264,26 +281,27 @@ CLI 执行错误写入 **stderr**,退出码非零:
|
|
|
264
281
|
}
|
|
265
282
|
```
|
|
266
283
|
|
|
267
|
-
应根据进程退出码或 `ok == true`
|
|
284
|
+
应根据进程退出码或 `ok == true` 判断命令是否成功。API 返回的领域 `error.type` 会原样保留,退出码只表示粗粒度处理类别。成功读取发布任务时,业务状态仍可能是 `unsupported`、`rejected` 或 `failed`;这时应检查 `data.status`,不能把这些状态当成 CLI 传输失败。
|
|
268
285
|
|
|
269
286
|
| 退出码 | 含义 |
|
|
270
287
|
|---|---|
|
|
271
288
|
| `0` | 命令完成;适用时继续检查返回的业务状态 |
|
|
272
289
|
| `2` | 参数校验失败 |
|
|
273
290
|
| `3` | 认证或授权失败 |
|
|
274
|
-
| `4` |
|
|
291
|
+
| `4` | 可重试的传输或并发失败 |
|
|
275
292
|
| `5` | 内部或协议失败 |
|
|
276
|
-
| `6` |
|
|
293
|
+
| `6` | 策略或开放门禁拒绝 |
|
|
277
294
|
| `10` | 需要明确确认 |
|
|
278
295
|
|
|
279
296
|
## 安全与风险控制
|
|
280
297
|
|
|
281
298
|
- **不执行来源内容** — CLI 和编译器不会执行第三方脚本、二进制文件、shell 片段、市场命令或复制口令中的指令。
|
|
282
|
-
- **公开变更需要明确确认** —
|
|
299
|
+
- **公开变更需要明确确认** — 发布、编译重试和取消操作需要 `--yes`;退出码 `10` 表示 Agent 必须向用户取得确认,不能静默重试。
|
|
283
300
|
- **安全预览** — 用户需要检查计划请求时,可以对 inspect 或 publish 使用 `--dry-run`,不会产生网络请求或发布副作用。
|
|
284
|
-
- **凭证隔离** —
|
|
301
|
+
- **凭证隔离** — 设备登录凭证保存在系统 Keychain;显式内部测试覆盖按 Profile 隔离,仅允许保存在 `0600` 配置中,并且不会出现在 CLI 输出中。
|
|
285
302
|
- **不可变输入** — inspect 会把发布绑定到不可变来源快照,而不是在之后重新读取浮动 URL。
|
|
286
303
|
- **有界等待** — `job wait` 有最大等待时间;超时后返回最新持久化状态,不会取消工作流。
|
|
304
|
+
- **有界编译恢复** — `job retry` 复用已冻结的来源与同一发布任务,只接受明确标记为可重试的平台故障,并由服务端限制次数。
|
|
287
305
|
- **可信分发** — npm 启动器从 GitHub 或 binary 镜像下载与其准确包版本匹配的二进制文件,并在启用前使用 npm 包内置的校验清单验证 SHA-256。
|
|
288
306
|
|
|
289
307
|
## 诊断与更新
|
package/checksums.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
5f56d63daad3a2a3cec1ea4b2291ed87dc71d6267bd5f2b3ca7a79a06d81bb07 viceme_0.6.0_darwin_amd64
|
|
2
|
+
38f0e94051bb80d7e1375bf5fe03ed93d0c246374a319bda412b880b535d7c3d viceme_0.6.0_darwin_arm64
|
|
3
|
+
afb763641a6f8d7d1a12c06f6c1358a63b15e2955686b3c4c98cfded2a5e6dbd viceme_0.6.0_linux_amd64
|
|
4
|
+
592fd67c2b377c71d82747295da30b99ba6bde16090fcc568750ba3c42412ac7 viceme_0.6.0_linux_arm64
|
|
5
|
+
4886aaf45da8ff2ff051361cc1c9499fab6849b67a1904b43da39fc2898249b1 viceme_0.6.0_windows_amd64.exe
|
|
6
|
+
97f9b8834410ec9dbe5a530c023fc82deb3a4fd959e6171da676433254aab406 viceme_0.6.0_windows_arm64.exe
|