@viceme-ai/cli 0.8.0 → 0.8.2
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 +23 -0
- package/README.md +36 -21
- package/README.zh.md +33 -21
- package/checksums.txt +6 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.8.2] - 2026-07-25
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- accept typed source specs (`167656c`)
|
|
8
|
+
|
|
9
|
+
## [0.8.1] - 2026-07-24
|
|
10
|
+
|
|
11
|
+
### Fixes
|
|
12
|
+
|
|
13
|
+
- 修正 Skill 编辑与等待契约 (`e5b92d9`)
|
|
14
|
+
- 修正 ViceMe Skill 发布命令契约 (`23f140b`)
|
|
15
|
+
- 明确步骤确认摘要路径 (`adc70a3`)
|
|
16
|
+
- 六轮复审——confirm_steps 指引消除 preview 死锁 (`3b33b91`)
|
|
17
|
+
- T2 复审修复——自然语言走 stdin 结构化传输/超时保留 edit-run ID/resume 对齐确认端点 (`852c234`)
|
|
18
|
+
|
|
19
|
+
### Other Changes
|
|
20
|
+
|
|
21
|
+
- separate business and protocol results (`f1f9f9d`)
|
|
22
|
+
- 内置 Agent Skill 对齐交互步骤确认门(产品 3427) (`1992801`)
|
|
23
|
+
- 中文化 T2 复审交接 (`175e838`)
|
|
24
|
+
- add T2 review remediation handoff (`e689dff`)
|
|
25
|
+
|
|
3
26
|
## [0.8.0] - 2026-07-22
|
|
4
27
|
|
|
5
28
|
### 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, and the exact Candidate preview → test run → result-confirmation
|
|
13
|
+
> **Rollout status:** the Core publication transport and stable-link path are implemented, and the metadata review plus exact Candidate preview → test run → result-confirmation gates are enforced. After `--yes`, the publication first parks at `meta_review` for `job metadata`, then at `awaiting_action` for `job preview`, optional `job edit`, `job run`, `job accept`, and `job resume`. Confirm is accepted only after the exact Candidate has a succeeded, owner-accepted preview run (otherwise 409 `preview_run_required`). A confirm receipt authorizes release but does not contain the final share link; run another bounded `job wait` until `share_published`. `--yes` confirms only the publication request, not the metadata or final Candidate.
|
|
14
14
|
|
|
15
15
|
## Why ViceMe CLI?
|
|
16
16
|
|
|
@@ -18,7 +18,7 @@ The official command-line client and Agent Skill for publishing external Skills
|
|
|
18
18
|
- **Deterministic boundary** — the CLI performs typed protocol actions; it does not start another conversational Agent loop.
|
|
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
|
-
- **Multiple source types** — accepts GitHub
|
|
21
|
+
- **Multiple source types** — accepts typed GitHub and Xiaohongshu/RedSkill sources, archives, and local Skill folders.
|
|
22
22
|
- **Secure by default** — on macOS, device-login credentials use AES-256-GCM encrypted files with Keychain-backed key material; other platforms retain their native credential manager. 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
|
|
|
@@ -83,7 +83,7 @@ Use the complete bootstrap command from the bundled Skill. The explicit npm regi
|
|
|
83
83
|
npx --yes --registry=https://registry.npmjs.org --@viceme-ai:registry=https://registry.npmjs.org --package=@viceme-ai/cli@latest -- viceme install
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
Read `
|
|
86
|
+
Read `authenticated` and `next_step` from the formatted business result. If authentication is already valid, continue to Step 4. If login is required, do not execute the human-oriented `next_step` inside the Agent; use the JSON split-flow in Step 2.
|
|
87
87
|
|
|
88
88
|
**Step 2 — Start device login when required**
|
|
89
89
|
|
|
@@ -91,7 +91,7 @@ Read `data.authenticated` and `data.next_step` from the result. If authenticatio
|
|
|
91
91
|
viceme auth login --no-wait --json
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
Return the exact `
|
|
94
|
+
Return the exact `verification_url`; the CLI normalizes it to the prefilled `verification_url_complete` browser link when available. Include `user_code` only as a fallback if the browser asks for it. Preserve `device_code` for the continuation command, then stop the current turn. Do not request, print, or place an access token in the conversation.
|
|
95
95
|
|
|
96
96
|
**Step 3 — Continue the same login in a later turn**
|
|
97
97
|
|
|
@@ -120,7 +120,7 @@ Continue only when authentication is valid and `skills doctor` reports a healthy
|
|
|
120
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. If a publication ends at `binding_required`, run `viceme job bind <publication-id>`, give the signed ViceMe URL to the user, and stop. Downloading or forking is only an informational alternative; the CLI never performs it automatically. After the user binds the exact GitHub/Xiaohongshu channel account, inspect again and create a fresh ordinary publication rather than resuming the terminal one.
|
|
123
|
+
Inspection is read-only. Follow the bundled `viceme` Skill for source-specific handling, Target selection, confirmation, bounded job waiting, and result reporting. If a publication ends at `binding_required`, run `viceme job bind <publication-id>`, give the signed ViceMe URL to the user, and stop. Downloading or forking is only an informational alternative; the CLI never performs it automatically. After the user binds the exact GitHub/Xiaohongshu channel account, inspect again and create a fresh ordinary publication rather than resuming the terminal one. At `meta_review`, show and resolve the metadata using the exact action ID and payload digest, then wait again. At `awaiting_action`, show the frozen Candidate summary, run and accept one exact-Candidate test result, and obtain the user's decision before `job resume`. After confirm, wait again until `share_published` before returning the share link.
|
|
124
124
|
|
|
125
125
|
## Regions & Profiles
|
|
126
126
|
|
|
@@ -219,14 +219,19 @@ viceme skill publish --resolution-id <resolution-id> --yes
|
|
|
219
219
|
|
|
220
220
|
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.
|
|
221
221
|
|
|
222
|
-
### Xiaohongshu or RedSkill
|
|
222
|
+
### Xiaohongshu or RedSkill
|
|
223
223
|
|
|
224
224
|
```bash
|
|
225
|
-
viceme skill inspect --
|
|
225
|
+
viceme skill inspect --source-stdin
|
|
226
226
|
viceme skill publish --resolution-id <resolution-id> --yes
|
|
227
227
|
```
|
|
228
228
|
|
|
229
|
-
The
|
|
229
|
+
The AI Host interprets the user's source intent and passes one typed JSON
|
|
230
|
+
`SourceSpec` through stdin, for example
|
|
231
|
+
`{"kind":"redskill","value":"ai-desk-card"}`. CLI/Core do not classify copied
|
|
232
|
+
natural language with keyword or regex rules. Explicit platform intent is
|
|
233
|
+
authoritative; ambiguous source requests must be clarified instead of silently
|
|
234
|
+
substituting a same-name source from another provider.
|
|
230
235
|
|
|
231
236
|
### Archive or local Skill folder
|
|
232
237
|
|
|
@@ -254,30 +259,43 @@ viceme skill publish --file ./poster-skill-v2.zip \
|
|
|
254
259
|
| `viceme skill inspect` | Freeze and inspect a source candidate without publishing |
|
|
255
260
|
| `viceme skill publish` | Create or update a stable Skill Agent publication |
|
|
256
261
|
| `viceme skill target` | Resolve existing logical Agent Targets and versions |
|
|
257
|
-
| `viceme job` | Read
|
|
262
|
+
| `viceme job` | Read or wait for a publication, review metadata, preview/edit/test/accept its Candidate, show a signed channel-binding URL, resume an action, explicitly retry, or cancel |
|
|
258
263
|
| `viceme skills` | Read, install, and diagnose the bundled Agent Skill |
|
|
259
264
|
| `viceme update` | Update the npm launcher, verified binary, and bundled Skill together |
|
|
260
265
|
|
|
261
266
|
Use `viceme <command> --help` for the exact flags. The release-checked machine-readable surface is stored in [`skills/viceme/references/command-manifest.json`](skills/viceme/references/command-manifest.json).
|
|
262
267
|
|
|
263
|
-
##
|
|
268
|
+
## Output Contract
|
|
264
269
|
|
|
265
|
-
|
|
270
|
+
ViceMe selects the smallest stable representation for each command:
|
|
266
271
|
|
|
267
|
-
|
|
272
|
+
- Local/bootstrap commands such as `version`, `install`, `update`, `auth status`, `profile *`, and `skills doctor` write their formatted business result directly to **stdout**. They do not add `ok`, `data`, or unrelated build metadata.
|
|
273
|
+
- `skills read` writes the requested file byte-for-byte without a JSON wrapper.
|
|
274
|
+
- Interactive `viceme auth login` writes human guidance. AI Agents use `--no-wait --json`, then continue with `--device-code <code> --json`; those two commands return a formatted bare business object.
|
|
275
|
+
- Publication protocol commands under `skill` and `job` keep a stable envelope because action receipts, durable status, and bounded-wait metadata form one cross-command protocol.
|
|
276
|
+
|
|
277
|
+
A successful publication protocol result is written to **stdout** with exit code `0`:
|
|
278
|
+
|
|
279
|
+
```json
|
|
280
|
+
{
|
|
281
|
+
"ok": true,
|
|
282
|
+
"data": {}
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Only a bounded wait that actually times out adds protocol metadata:
|
|
268
287
|
|
|
269
288
|
```json
|
|
270
289
|
{
|
|
271
290
|
"ok": true,
|
|
272
291
|
"data": {},
|
|
273
292
|
"meta": {
|
|
274
|
-
"
|
|
275
|
-
"skill_version": "0.1.0"
|
|
293
|
+
"wait_timed_out": true
|
|
276
294
|
}
|
|
277
295
|
}
|
|
278
296
|
```
|
|
279
297
|
|
|
280
|
-
CLI execution errors are written to **stderr** with a non-zero exit code:
|
|
298
|
+
CLI execution errors are formatted and written to **stderr** with a non-zero exit code:
|
|
281
299
|
|
|
282
300
|
```json
|
|
283
301
|
{
|
|
@@ -285,16 +303,12 @@ CLI execution errors are written to **stderr** with a non-zero exit code:
|
|
|
285
303
|
"error": {
|
|
286
304
|
"type": "validation",
|
|
287
305
|
"subtype": "source_required",
|
|
288
|
-
"message": "provide exactly one
|
|
289
|
-
},
|
|
290
|
-
"meta": {
|
|
291
|
-
"cli_version": "0.1.0",
|
|
292
|
-
"skill_version": "0.1.0"
|
|
306
|
+
"message": "provide exactly one GitHub URL argument or --source-stdin"
|
|
293
307
|
}
|
|
294
308
|
}
|
|
295
309
|
```
|
|
296
310
|
|
|
297
|
-
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.
|
|
311
|
+
Determine local/bootstrap command success from the process exit code. For publication protocol commands, use 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.
|
|
298
312
|
|
|
299
313
|
| Exit code | Meaning |
|
|
300
314
|
|---|---|
|
|
@@ -309,6 +323,7 @@ Determine command success from the process exit code or `ok == true`. The API's
|
|
|
309
323
|
## Security and Risk Controls
|
|
310
324
|
|
|
311
325
|
- **No source execution** — the CLI and compiler do not execute third-party scripts, binaries, shell fragments, marketplace commands, or copied instructions.
|
|
326
|
+
- **Typed source intent** — AI Hosts interpret natural-language source requests and pass only a typed `SourceSpec` through `--source-stdin`; CLI/Core never guess a provider from user phrases. Natural-language Candidate edits use `--request-stdin`. Never interpolate untrusted text into command strings, argv, environment variables, or shell pipelines.
|
|
312
327
|
- **Explicit public mutation** — publishing, compiler retry, and cancellation require `--yes`; exit code `10` means the Agent must obtain confirmation, not silently retry.
|
|
313
328
|
- **Safe preview** — use `--dry-run` on inspect or publish when the user needs to review the planned request without network or publication side effects.
|
|
314
329
|
- **Credential isolation** — on macOS, device-login credentials stay in AES-256-GCM encrypted files, with Keychain-backed or explicitly downgraded private key material; filenames do not expose profile/origin names. Other platforms retain their native credential manager. Explicit internal-test overrides are namespaced by profile, stored only in a private `0600` config, and never emitted by CLI output.
|
package/README.zh.md
CHANGED
|
@@ -10,7 +10,7 @@ ViceMe 官方命令行客户端与 Agent Skill,用于将外部 Skill 发布为
|
|
|
10
10
|
|
|
11
11
|
[安装](#安装与快速开始) · [AI Agent Skills](#agent-skills) · [认证](#认证) · [区域与-profile](#区域与-profile) · [命令](#命令概览) · [输出契约](#json-输出契约) · [安全](#安全与风险控制) · [开发](#开发)
|
|
12
12
|
|
|
13
|
-
> **开放状态:** Core
|
|
13
|
+
> **开放状态:** Core 发布传输和稳定链接链路已经实现,信息确认门以及精确 Candidate 的预览 → 试跑 → 结果确认门均已生效。`--yes` 后,Publication 先停在 `meta_review`,由 `job metadata` 完成信息确认;随后停在 `awaiting_action`,依次使用 `job preview`、可选的 `job edit`、`job run`、`job accept` 和 `job resume`。只有同一 Candidate 的试跑成功且结果已由发布者接受时才能确认,否则返回 409 `preview_run_required`。确认回执只授权发布,不包含最终分享链接;需要再次有界执行 `job wait` 直到 `share_published`。`--yes` 只确认发起发布请求,不代表用户已确认信息或最终 Candidate。
|
|
14
14
|
|
|
15
15
|
## 为什么选择 ViceMe CLI?
|
|
16
16
|
|
|
@@ -18,7 +18,7 @@ ViceMe 官方命令行客户端与 Agent Skill,用于将外部 Skill 发布为
|
|
|
18
18
|
- **确定性边界** — CLI 执行类型化协议操作,不会再启动一层对话式 Agent Loop。
|
|
19
19
|
- **服务端编译** — 来源解析、LLM 编译、BuildRun 固化和 Release 发布均在 ViceMe 基础设施中完成。
|
|
20
20
|
- **稳定发布** — 同一个逻辑 Agent 后续发布新版本时继续使用同一个分享链接。
|
|
21
|
-
- **支持多种来源** —
|
|
21
|
+
- **支持多种来源** — 支持结构化 GitHub 与小红书/RedSkill 来源、压缩包和本地 Skill 目录。
|
|
22
22
|
- **默认安全** — 在 macOS 上,设备登录凭证保存在 AES-256-GCM 加密文件中,主密钥默认由系统 Keychain 保护;其他平台继续使用原生凭证管理器。显式本地覆盖要求私有 Profile 文件,公开变更需要确认,下载的二进制文件必须通过校验和验证。
|
|
23
23
|
- **人类与 Agent 双登录模式** — `viceme auth login` 在终端中引导用户,Agent 跨回合流程则显式使用 JSON。
|
|
24
24
|
|
|
@@ -83,7 +83,7 @@ viceme skills doctor
|
|
|
83
83
|
npx --yes --registry=https://registry.npmjs.org --@viceme-ai:registry=https://registry.npmjs.org --package=@viceme-ai/cli@latest -- viceme install
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
读取格式化业务结果中的 `authenticated` 和 `next_step`。如果认证已经有效,直接进入第 4 步。如果需要登录,Agent 不要执行面向人类的 `next_step`,而应使用第 2 步的 JSON 跨回合流程。
|
|
87
87
|
|
|
88
88
|
**第 2 步 — 需要时启动设备登录**
|
|
89
89
|
|
|
@@ -91,7 +91,7 @@ npx --yes --registry=https://registry.npmjs.org --@viceme-ai:registry=https://re
|
|
|
91
91
|
viceme auth login --no-wait --json
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
向用户返回准确的 `
|
|
94
|
+
向用户返回准确的 `verification_url`;存在 `verification_url_complete` 时,CLI 会把这个已预填设备码的浏览器直达链接规范化为 `verification_url`。只有浏览器要求输入时,才把 `user_code` 作为备用信息提供。保留 `device_code` 供后续命令使用,然后结束当前回合。不要在对话中索取、打印或传递访问令牌。
|
|
95
95
|
|
|
96
96
|
**第 3 步 — 在后续回合继续同一个登录流程**
|
|
97
97
|
|
|
@@ -120,7 +120,7 @@ viceme skills list
|
|
|
120
120
|
viceme skill inspect https://github.com/acme/poster-skill --skill-root .
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
inspect 是只读操作。后续应按照随包发布的 `viceme` Skill 处理不同来源、Target 选择、用户确认、有界任务等待和结果返回。若 Publication 终结为 `binding_required`,运行 `viceme job bind <publication-id>`,把服务端签名的 ViceMe 链接交给用户后停止;下载或 Fork 仅为提示,CLI 不会自动执行。用户完成精确 GitHub/小红书渠道绑定后,必须重新 inspect 并创建新的普通 Publication
|
|
123
|
+
inspect 是只读操作。后续应按照随包发布的 `viceme` Skill 处理不同来源、Target 选择、用户确认、有界任务等待和结果返回。若 Publication 终结为 `binding_required`,运行 `viceme job bind <publication-id>`,把服务端签名的 ViceMe 链接交给用户后停止;下载或 Fork 仅为提示,CLI 不会自动执行。用户完成精确 GitHub/小红书渠道绑定后,必须重新 inspect 并创建新的普通 Publication,不能恢复旧任务。进入 `meta_review` 后,使用同一 action ID 与 payload digest 展示并决议信息,然后再次等待;进入 `awaiting_action` 后,展示冻结摘要、完成同一 Candidate 的试跑与结果接受,并取得用户决定后再执行 `job resume`。确认后还需再次等待到 `share_published`,才能返回分享链接。
|
|
124
124
|
|
|
125
125
|
## 区域与 Profile
|
|
126
126
|
|
|
@@ -219,14 +219,16 @@ viceme skill publish --resolution-id <resolution-id> --yes
|
|
|
219
219
|
|
|
220
220
|
GitHub 来源必须传 `--skill-root`,它是包含 `SKILL.md` 的精确仓库相对目录;只有根级 Skill 才使用 `.`。调用 Agent 根据用户输入或只读仓库文件树确定该路径,ViceMe 不扫描全仓猜测 Skill。
|
|
221
221
|
|
|
222
|
-
### 小红书或 RedSkill
|
|
222
|
+
### 小红书或 RedSkill
|
|
223
223
|
|
|
224
224
|
```bash
|
|
225
|
-
viceme skill inspect --
|
|
225
|
+
viceme skill inspect --source-stdin
|
|
226
226
|
viceme skill publish --resolution-id <resolution-id> --yes
|
|
227
227
|
```
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
AI Host 先理解用户的来源意图,再通过 stdin 传入唯一的结构化
|
|
230
|
+
`SourceSpec`,例如 `{"kind":"redskill","value":"ai-desk-card"}`。CLI/Core
|
|
231
|
+
不再用关键词或正则分类自然语言;用户明确指定的平台必须保持不变,来源存在歧义时必须先询问,不能静默替换为其他平台的同名来源。
|
|
230
232
|
|
|
231
233
|
### 压缩包或本地 Skill 目录
|
|
232
234
|
|
|
@@ -254,30 +256,43 @@ viceme skill publish --file ./poster-skill-v2.zip \
|
|
|
254
256
|
| `viceme skill inspect` | 固化并检查来源候选,不执行发布 |
|
|
255
257
|
| `viceme skill publish` | 创建或更新具有稳定链接的 Skill Agent 发布 |
|
|
256
258
|
| `viceme skill target` | 解析现有逻辑 Agent Target 及其版本 |
|
|
257
|
-
| `viceme job` |
|
|
259
|
+
| `viceme job` | 读取或等待发布任务,审阅信息,预览、编辑、试跑并接受 Candidate,展示签名渠道绑定链接,决议 action,以及显式重试或取消 |
|
|
258
260
|
| `viceme skills` | 读取、安装和诊断随包发布的 Agent Skill |
|
|
259
261
|
| `viceme update` | 同时更新 npm 启动器、已校验二进制文件和随包发布的 Skill |
|
|
260
262
|
|
|
261
263
|
使用 `viceme <command> --help` 查看准确参数。经过发布检查的机器可读命令面存放在 [`skills/viceme/references/command-manifest.json`](skills/viceme/references/command-manifest.json)。
|
|
262
264
|
|
|
263
|
-
##
|
|
265
|
+
## 输出契约
|
|
264
266
|
|
|
265
|
-
|
|
267
|
+
ViceMe 根据命令语义选择最小且稳定的输出形式:
|
|
266
268
|
|
|
267
|
-
|
|
269
|
+
- `version`、`install`、`update`、`auth status`、`profile *`、`skills doctor` 等本地/引导命令,将格式化后的业务结果直接写入 **stdout**,不附加 `ok`、`data` 或无关构建元数据。
|
|
270
|
+
- `skills read` 按原始字节输出目标文件,不添加 JSON 包装。
|
|
271
|
+
- 交互式 `viceme auth login` 输出面向人的引导;AI Agent 使用 `--no-wait --json`,并在后续回合用 `--device-code <code> --json` 继续,这两个命令返回格式化的裸业务对象。
|
|
272
|
+
- `skill` 和 `job` 下的发布协议命令继续使用稳定 Envelope,因为 action receipt、持久状态与有界等待元数据共同构成跨命令协议。
|
|
273
|
+
|
|
274
|
+
发布协议命令成功时写入 **stdout**,退出码为 `0`:
|
|
275
|
+
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"ok": true,
|
|
279
|
+
"data": {}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
只有有界等待真实超时时才附加协议元数据:
|
|
268
284
|
|
|
269
285
|
```json
|
|
270
286
|
{
|
|
271
287
|
"ok": true,
|
|
272
288
|
"data": {},
|
|
273
289
|
"meta": {
|
|
274
|
-
"
|
|
275
|
-
"skill_version": "0.1.0"
|
|
290
|
+
"wait_timed_out": true
|
|
276
291
|
}
|
|
277
292
|
}
|
|
278
293
|
```
|
|
279
294
|
|
|
280
|
-
CLI
|
|
295
|
+
CLI 执行错误以格式化形式写入 **stderr**,退出码非零:
|
|
281
296
|
|
|
282
297
|
```json
|
|
283
298
|
{
|
|
@@ -285,16 +300,12 @@ CLI 执行错误写入 **stderr**,退出码非零:
|
|
|
285
300
|
"error": {
|
|
286
301
|
"type": "validation",
|
|
287
302
|
"subtype": "source_required",
|
|
288
|
-
"message": "provide exactly one
|
|
289
|
-
},
|
|
290
|
-
"meta": {
|
|
291
|
-
"cli_version": "0.1.0",
|
|
292
|
-
"skill_version": "0.1.0"
|
|
303
|
+
"message": "provide exactly one GitHub URL argument or --source-stdin"
|
|
293
304
|
}
|
|
294
305
|
}
|
|
295
306
|
```
|
|
296
307
|
|
|
297
|
-
|
|
308
|
+
本地/引导命令根据进程退出码判断成功;发布协议命令可以检查退出码或 `ok == true`。API 返回的领域 `error.type` 会原样保留,退出码只表示粗粒度处理类别。成功读取发布任务时,业务状态仍可能是 `unsupported`、`rejected` 或 `failed`;这时应检查 `data.status`,不能把这些状态当成 CLI 传输失败。
|
|
298
309
|
|
|
299
310
|
| 退出码 | 含义 |
|
|
300
311
|
|---|---|
|
|
@@ -309,6 +320,7 @@ CLI 执行错误写入 **stderr**,退出码非零:
|
|
|
309
320
|
## 安全与风险控制
|
|
310
321
|
|
|
311
322
|
- **不执行来源内容** — CLI 和编译器不会执行第三方脚本、二进制文件、shell 片段、市场命令或复制口令中的指令。
|
|
323
|
+
- **结构化来源意图** — AI Host 负责理解自然语言来源,并只通过 `--source-stdin` 传递 typed `SourceSpec`;CLI/Core 不根据用户措辞猜 Provider。Candidate 的自然语言修改通过 `--request-stdin` 传递。不得把不可信文本拼入命令字符串、argv、环境变量或 shell 管道。
|
|
312
324
|
- **公开变更需要明确确认** — 发布、编译重试和取消操作需要 `--yes`;退出码 `10` 表示 Agent 必须向用户取得确认,不能静默重试。
|
|
313
325
|
- **安全预览** — 用户需要检查计划请求时,可以对 inspect 或 publish 使用 `--dry-run`,不会产生网络请求或发布副作用。
|
|
314
326
|
- **凭证隔离** — 在 macOS 上,设备登录凭证保存在 AES-256-GCM 加密文件中,主密钥由 Keychain 或显式降级后的私有文件保护,文件名不会暴露 Profile/origin;其他平台继续使用原生凭证管理器。显式内部测试覆盖按 Profile 隔离,仅允许保存在 `0600` 配置中,并且不会出现在 CLI 输出中。
|
package/checksums.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
b811d103fdc6ec8fd9acf4171f30fb11c2292b61de31eb4dfd807d0c1731e984 viceme_0.8.2_darwin_amd64
|
|
2
|
+
f0633a3ecd5c4dea58ca519f9b704ecc04d2cb54370b9fa35c7f15261c46b150 viceme_0.8.2_darwin_arm64
|
|
3
|
+
7f9b6cc67b6c6052a9d3032293f57ffbb16084abd82703b2877b87bde8f768d3 viceme_0.8.2_linux_amd64
|
|
4
|
+
3e94d4896bb91a141e2269e74cd7a83f810ad65e857c1018824b95f0c83d43ae viceme_0.8.2_linux_arm64
|
|
5
|
+
b91d2b2b00734f12fdb008a002d1cb679903bd348da9c993ce5b472e850b18d5 viceme_0.8.2_windows_amd64.exe
|
|
6
|
+
6dcd67f67750836ea808dae7d450cbaabd1ceef424f771c8baebab1877f16d3b viceme_0.8.2_windows_arm64.exe
|