@viceme-ai/cli 0.27.0 → 0.30.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 CHANGED
@@ -1,5 +1,72 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.30.0] - 2026-09-04
4
+
5
+ ### Features
6
+
7
+ - 打通网站同款发布与本地绑定 (`35c86d8`)
8
+ - 按调用方定向安装与原地覆写重装 (`a6b63e0`)
9
+ - 无 CLI 试用路线支持 Windows (`017fce3`)
10
+
11
+ ## [0.29.0] - 2026-09-04
12
+
13
+ ### Features
14
+
15
+ - 免 CLI 试用安装脚本与凭证收编 (`442655d`)
16
+
17
+ ### Fixes
18
+
19
+ - API 请求错误输出不再泄露本机信息 (`fd1a02d`)
20
+ - 发布资产只取平铺文件,排除 skills 目录 (`3d5fd57`)
21
+ - 错误输出不再泄露签名下载地址与本机路径 (`39dbeeb`)
22
+ - 状态文件共锁与 pending 存活性(三轮评审) (`8c61706`)
23
+ - 接管脚本未确认幂等键并消除锁死循环 (`259ecb9`)
24
+ - 试用脚本评审修复与行为测试 (`5e6bd0e`)
25
+
26
+ ### Other Changes
27
+
28
+ - 发布契约跟随文件清单式 release create (`4744331`)
29
+
30
+ ## [0.28.0] - 2026-09-04
31
+
32
+ ### Features
33
+
34
+ - 增加创作者个人名片模板与流程 (`f9e3506`)
35
+ - 上报网站源码安装完成回执 (`549d97a`)
36
+ - 冻结并校验源码归档 (`ad52066`)
37
+ - 提供本地做同款预览命令 (`7f0e469`)
38
+ - 官方 Skills 托管改独立桶并支持单文件直读 (`b7eb6af`)
39
+ - 托管做同款独立运行脚本 (`5692a42`)
40
+ - 安装独立买家做同款 Skill (`03e7043`)
41
+ - 官方 Skills 云端托管到 start 桶 (`48b5979`)
42
+ - 支持匿名做同款与网页支付 (`308ac08`)
43
+ - 完善做同款发布交互 (`9576c08`)
44
+
45
+ ### Fixes
46
+
47
+ - 未支付做同款重新创建订单 (`0e54659`)
48
+ - 将自动更新移至后台并拆分 Skills (`69cf10a`)
49
+ - 由买家脚本统一生成预览 (`3269bfe`)
50
+ - 使用标准输入运行买家脚本 (`3e0e5dc`)
51
+ - 更新前校验完整安装权限 (`d53bc57`)
52
+ - 更新前检查宿主权限并保留受阻恢复状态 (`3ff3437`)
53
+ - 托管物 Content-Type 补齐 html/js 等文本扩展 (`1846fc2`)
54
+ - 修复私有状态与匿名下载恢复 (`10da296`)
55
+ - 完善匿名做同款支付等待 (`8552dc4`)
56
+ - 统一做同款失败停止策略 (`98e0279`)
57
+ - 阻止做同款预览失败后跑偏 (`6818630`)
58
+
59
+ ### Other Changes
60
+
61
+ - 使用私有写入创建恢复凭证 (`fe9db21`)
62
+ - 增加 CLI 安装与更新规则 (`3e04d66`)
63
+ - 让自动更新用例在 CI 中执行 (`759e0fd`)
64
+ - 支持买家 Skill 单文件直读 (`16eb65b`)
65
+ - 使用 Python 运行无 CLI 做同款 (`c7a46c7`)
66
+ - 修正托管 URL 漏掉的 /start 路径前缀 (`9c179e5`)
67
+ - 重命名买家做同款 Skill (`4114d16`)
68
+ - 将买家做同款迁出内置 Skill (`c32671a`)
69
+
3
70
  ## [0.27.0] - 2026-09-04
4
71
 
5
72
  ### Features
package/README.md CHANGED
@@ -173,9 +173,10 @@ Select a target explicitly with `viceme install --agent codex`, `claude`,
173
173
  | `use-a-skill` | resolve free, purchased, or purchase-required access, install the selected Skill, and continue the original task. |
174
174
  | `charge-for-your-work` | configure follow or paid unlock for an existing website and integrate it into host code after the shared creator qualification check; platform resources stay internal. |
175
175
  | `let-people-interact` | branch between danmaku, open tips, or both; danmaku-bearing routes require a published Website Work with an exact canonical Origin, while Tip can use any eligible published Merchant Work. It defaults to Mounted UI and uses Headless only for an explicit custom-UI request; none requires DNS ownership verification. |
176
- | `let-others-make-a-copy` | publish a complete website source ZIP with a root `VICEME-REPLICA.md`, then integrate the platform-provided replica prompt into the creator's own site. |
176
+ | `let-others-make-a-copy` | publish a complete website source ZIP with a root `VICEME-REPLICA.md`, then integrate the platform-provided replica prompt into the creator's own site; it does not perform buyer checkout or installation. |
177
+ | `let-me-make-a-copy` | accept a website copy invitation; install from the regional S3-hosted official Skill ZIP, reuse account-bound or anonymous CLI purchasing when available, preserve an existing standalone recovery, and fall back to the bundled no-CLI script. |
177
178
 
178
- Buyer-side `use-a-skill` keeps its existing name because it is not a creator workflow.
179
+ Buyer-side `use-a-skill` and `let-me-make-a-copy` keep independent names because they are not creator workflows.
179
180
 
180
181
  The Agent Skills own the conversational workflow and approval rules. The CLI
181
182
  owns deterministic local work and API calls. This separation lets an Agent
@@ -272,9 +273,13 @@ Never copy an access token into the conversation.
272
273
  | `viceme publication update ...` | Replace the complete listing draft from a strict JSON file. |
273
274
  | `viceme publication confirm ...` | Confirm the exact current review digest. |
274
275
  | `viceme publication publish ...` | Make a confirmed listing public. |
275
- | `viceme replica publish ...` | Validate a complete source ZIP with a root `VICEME-REPLICA.md`, publish an immutable version, and return the stable code and creator-site prompts. |
276
- | `viceme replica install <code> --target <new-directory>` | Create and display the authoritative Quote without an order; after explicit confirmation, return a private local WeChat QR image for Agent rendering, then resume the same order until paid before atomic installation. |
277
- | `viceme update` | Update the CLI and matching official Skills together. |
276
+ | `viceme replica preview [--path <project> \| --url <loopback-url>]` | Open the anonymous ViceMe preview shell around a local website before sign-in or upload; a CLI-owned dev server runs only until the command exits, and the opened browser remains the authority for visual verification. |
277
+ | `viceme replica publish --path <project-or-zip> ...` | In the CN market, check and preview a project (existing ZIPs are validated and privately extracted for preview), freeze its source, and return one 30-minute final review. Rerun the reported command with the exact `--confirm` version to upload and submit it; `PROCESSING` means submitted but not published. |
278
+ | `viceme replica status <publication-id>` | Read authoritative Website Replica Publication state and complete the stable local binding after a published terminal state. |
279
+ | `viceme replica resume <publication-id>` | Continue only the missing upload, verification, submission, or allowed retry step from authoritative state. |
280
+ | `viceme replica cancel <publication-id>` | Cancel a Publication before activation and clean its local recoverable source. |
281
+ | `viceme replica install <code> [--target <new-directory>]` | With an authenticated Profile, display the authoritative Quote before `--confirm`; add `--accept-price-cents <fen>` for anonymous checkout and `--payment-presented` only after its hosted payment page opens. Both paths atomically install the paid source. |
282
+ | `viceme update` | Explicitly update the CLI. Refresh official Skills separately with `viceme install --agent auto`. |
278
283
  | `viceme merchant accounts` | List ordinary MerchantAccounts where the current User is the OWNER member. |
279
284
  | `viceme merchant work ...` | Create, inspect, update, and publish Merchant Works, including Website Works. |
280
285
  | `viceme merchant page ...` | Validate, preview, publish, inspect, and roll back immutable custom Creator/Work page bundles. |
@@ -334,33 +339,55 @@ text.
334
339
  `meta.executingCliVersion` is the version of the process that emitted the
335
340
  response. For `viceme update`, the newly installed version is reported
336
341
  separately as `data.cli_version` because the response is still emitted by the
337
- process that started the update. `meta.autoUpdate` is present only when this
338
- command was automatically continued by a newly activated generation.
339
-
340
- Every released installation passes through a bounded freshness gate before an
341
- ordinary command. A validated result is reused for five minutes so a single
342
- workflow does not repeatedly contact the release channel. When a newer stable
343
- release exists, the CLI and all detected official Skills are activated as one
344
- recoverable generation and the original command is automatically re-executed by
345
- the new CLI. Release discovery is fail-open while offline; activation failure
346
- stops the original command so an older process cannot perform a mutation after
347
- a failed generation change.
348
-
349
- An npm installation continues the original command automatically on every
350
- supported platform, including commands started from an older `npx` cache. The
351
- continuation uses the activated global package after checking its exact version.
352
- A standalone Windows binary may return the retryable code
353
- `AUTO_UPDATE_RESTART_REQUIRED` once while Windows releases the old executable;
354
- rerunning the exact command completes under the new generation.
342
+ process that started the update. `meta.autoUpdate` may appear when startup
343
+ recovery had to hand an already-started command to a newly committed CLI.
344
+
345
+ After an ordinary command has emitted its response, a detached worker checks
346
+ the stable release channel and updates only the CLI. The foreground command never waits
347
+ for release discovery or activation, and background launch, network,
348
+ permission, or installation failures never replace its JSON response. A
349
+ successful replacement is used by the next `viceme` process; it does not
350
+ require restarting the surrounding Codex, Claude Code, or WorkBuddy app.
351
+ Checks are coalesced for 24 hours, while failed checks or updates become
352
+ eligible for another background attempt after one hour.
353
+
354
+ Official Skills are a separate lifecycle because an Agent usually loads them
355
+ when a task starts. CLI auto-update therefore never rewrites Skill directories.
356
+ Refresh them intentionally with `viceme install --agent auto`, then start a new
357
+ Agent task when the host needs to rediscover the files.
355
358
 
356
359
  ```bash
357
360
  viceme update --check
358
361
  viceme update
362
+ viceme install --agent auto
359
363
  ```
360
364
 
361
- `viceme update` remains an explicit repair command. The normal startup gate
362
- already verifies the exact release, refreshes the matching official Skills, and
363
- recovers interrupted activation as one compatible local generation.
365
+ `viceme update` remains the explicit CLI repair command and keeps the same
366
+ permission preflight and durable recovery rules. For compatibility,
367
+ `viceme update --agent <target>` still requests a combined CLI and Skill
368
+ repair, but new automation should keep the two commands separate.
369
+
370
+ Permission preflight checks every path that the selected installation method
371
+ will mutate before creating an activation journal. For npm this includes the
372
+ configured cache, actual scoped global package, and launcher directories through
373
+ Node so the host filesystem broker is preserved. For standalone CLI-only
374
+ updates it checks the executable directory; a separate Skill install checks
375
+ every selected Agent destination. A denied explicit-update preflight keeps the
376
+ previous generation intact and requests host approval. A denied background
377
+ attempt is recorded locally and does not affect the foreground command.
378
+ Permission can still change after preflight, so any failure after an install
379
+ attempt retains the recovery journal until startup recovery completes.
380
+
381
+ An explicit update or pending recovery that lacks filesystem access returns
382
+ `UPDATE_PERMISSION_REQUIRED` (exit 6, not automatically retryable). The Agent
383
+ must request access through its host's official approval mechanism and retry
384
+ `viceme update` only after access is granted. A chat message granting consent
385
+ does not itself change OS or host permissions. If approval is refused,
386
+ unavailable, or still insufficient, stop updating. Never delete recovery
387
+ journals, uninstall the CLI, or bypass host restrictions to force an update.
388
+ Pending recovery is identified by `error.details.recovery_required` or
389
+ `recovery_pending` target statuses; it must not be treated as an intact old
390
+ installation. Neither raw npm output nor credentials are included in errors.
364
391
 
365
392
  ## Security
366
393
 
@@ -378,7 +405,7 @@ recovers interrupted activation as one compatible local generation.
378
405
 
379
406
  ## Development
380
407
 
381
- Requirements: Go 1.23+ and Node.js 22+ for npm packaging checks.
408
+ Requirements: Go 1.23+ and Python 3.9+; Node.js 22+ is required for npm packaging checks.
382
409
 
383
410
  ```bash
384
411
  make check
package/README.zh.md CHANGED
@@ -158,9 +158,10 @@ npx --yes @viceme-ai/cli@latest install
158
158
  | `use-a-skill` | 解析免费、已购买或待购买的访问状态,安装所选 Skill,并继续原任务。 |
159
159
  | `charge-for-your-work` | 为现有网站配置关注或付费解锁并接入宿主代码;复用统一创作者资格检查,平台资源保持为内部实现。 |
160
160
  | `let-people-interact` | 分支处理仅弹幕、开放赞赏或两者;包含弹幕的路线要求已发布且 canonical Origin 精确匹配的 Website Work,Tip 可使用任意合格且已发布的 Merchant Work。默认使用 Mounted UI,仅在用户明确要求自定义 UI 时进入 Headless;三个分支均不要求 DNS 所有权验证。 |
161
- | `let-others-make-a-copy` | 发布包含根级 `VICEME-REPLICA.md` 的完整网站源码 ZIP,并把平台返回的“做同款”提示词接入创作者原站。 |
161
+ | `let-others-make-a-copy` | 发布包含根级 `VICEME-REPLICA.md` 的完整网站源码 ZIP,并把平台返回的“做同款”提示词接入创作者原站;不处理买家结算与安装。 |
162
+ | `let-me-make-a-copy` | 接受网站做同款邀请;直接读取区域化 S3 托管的官方 Skill 与 Python 3.9+ 标准库脚本,有 CLI 时复用账号或匿名购买,并优先保留既有 standalone 恢复。 |
162
163
 
163
- 买家侧 `use-a-skill` 不属于创作者玩法,因此保持现有名称。
164
+ 买家侧 `use-a-skill` 与 `let-me-make-a-copy` 不属于创作者玩法,因此保持独立名称。
164
165
 
165
166
  Agent Skills 负责对话流程和授权规则;CLI 负责确定性本地操作与 API 调用。因此 Agent
166
167
  可以解释每一步决策,而相同的命令契约仍可在终端或自动化中复现。
@@ -247,9 +248,13 @@ Endpoint 必须使用 HTTPS;只有 localhost 和 loopback 本地开发可以
247
248
  | `viceme publication update ...` | 用严格 JSON 文件替换完整 Listing Draft。 |
248
249
  | `viceme publication confirm ...` | 确认当前精确 Review Digest。 |
249
250
  | `viceme publication publish ...` | 公开已经确认的 Listing。 |
250
- | `viceme replica publish ...` | 校验含根级 `VICEME-REPLICA.md` 的完整源码 ZIP,发布不可变版本并返回稳定口令与自站提示词。 |
251
- | `viceme replica install <口令> --target <新目录>` | 创建并展示真实 Quote,不创建订单;买家明确确认后原样追加 `--confirm` 才购买并原子安装。 |
252
- | `viceme update` | 同时更新 CLI 与匹配版本的官方 Skills。 |
251
+ | `viceme replica preview [--path <项目> \| --url <回环地址>]` | 登录或上传前,在匿名 ViceMe 预览壳中打开本地网页;CLI 启动的 dev server 仅存活到命令退出,视觉验证以打开的浏览器为准。 |
252
+ | `viceme replica publish --path <项目或ZIP> ...` | 在 CN 市场本地检查并预览项目(已有 ZIP 会先完整校验,再私有解压用于预览)、冻结源码并返回一份三十分钟终审;仅以返回的精确 `--confirm` 版本重跑后才上传和提交,`PROCESSING` 表示已提交但尚未发布。 |
253
+ | `viceme replica status <publication-id>` | 读取 Website Replica Publication 权威状态,并在发布终态补全稳定本地绑定。 |
254
+ | `viceme replica resume <publication-id>` | 从权威子状态只继续缺失的上传、校验、提交或允许的重试步骤。 |
255
+ | `viceme replica cancel <publication-id>` | 激活前取消 Publication,并清理本地可恢复源码。 |
256
+ | `viceme replica install <口令> [--target <新目录>]` | 已登录 Profile 先展示真实 Quote,明确确认后追加 `--confirm`;匿名购买则追加 `--accept-price-cents <分>`,仅在托管支付页打开后使用 `--payment-presented`。两条路径都会原子安装已支付源码。 |
257
+ | `viceme update` | 显式更新 CLI;官方 Skills 使用 `viceme install --agent auto` 单独刷新。 |
253
258
  | `viceme merchant accounts` | 列出当前 User 通过 OWNER 成员关系经营的普通 MerchantAccount。 |
254
259
  | `viceme merchant work ...` | 创建、查看、更新和发布 Merchant Work,包括 Website Work。 |
255
260
  | `viceme merchant page ...` | 校验、预览、发布、查看和回滚不可变的作者页/作品页自定义页面包。 |
@@ -299,28 +304,40 @@ Commerce Application 门禁,互动流程也不创建或修改 Website Widget
299
304
 
300
305
  `meta.executingCliVersion` 表示输出本次响应的进程版本。对于 `viceme update`,
301
306
  新安装版本单独由 `data.cli_version` 返回,因为最终响应仍由启动更新的旧进程输出。
302
- 只有当本次命令由新激活的版本自动继续执行时,响应才会包含 `meta.autoUpdate`。
307
+ 启动恢复恰好需要把已经启动的旧命令交给新版本时,响应中可能出现
308
+ `meta.autoUpdate`;它不再是每次自动更新的正常结果。
303
309
 
304
- 正式安装在执行普通命令前都会经过有界的新鲜度检查。已经校验的结果会复用五分钟,
305
- 避免同一工作流反复访问发布渠道。发现新的稳定版本时,CLI 与所有检测到的官方
306
- Skills 会作为一个可恢复的完整版本一起激活,随后由新 CLI 自动重新执行原命令。
307
- 断网时发布发现会继续使用最后一个完整版本;如果版本激活失败,原命令会停止,避免
308
- 旧进程在版本切换失败后继续执行写操作。
310
+ 普通命令输出响应后,CLI 才拉起独立后台进程检查稳定发布渠道,并且只更新 CLI。
311
+ 前台命令不等待版本发现或激活;后台进程启动失败、断网、权限不足或安装失败都不会
312
+ 替换本次 JSON 响应。成功替换后,下一次 `viceme` 调用会使用新版本,无需重启整个
313
+ Codex、Claude Code 或 WorkBuddy。成功检查会合并 24 小时,失败一小时后可再次尝试。
309
314
 
310
- npm 安装在所有支持的平台都会自动继续原命令。Windows 独立二进制在等待操作系统释放
311
- 旧可执行文件时,可能会返回一次可重试的 `AUTO_UPDATE_RESTART_REQUIRED`;原样重试
312
- 同一个命令后会由新版本继续执行。
315
+ 官方 Skills 使用独立生命周期,因为 Agent 通常在任务启动时加载 Skill。CLI 自动更新
316
+ 不会改写 Skill 目录;需要刷新时运行 `viceme install --agent auto`,宿主需要重新发现
317
+ 文件时再新开一个 Agent 任务。
313
318
 
314
319
  ```bash
315
320
  viceme update --check
316
321
  viceme update
322
+ viceme install --agent auto
317
323
  ```
318
324
 
319
- 从旧版 `npx` 缓存启动的命令也会在更新后自动继续:CLI 校验已激活全局包的精确版本,
320
- 再通过该包的启动器续跑原命令。
325
+ `viceme update` 保留为显式 CLI 修复命令,并继续使用权限预检与持久化恢复。
326
+ 为兼容旧调用,`viceme update --agent <target>` 仍可请求 CLI 与 Skill 联合修复;新的
327
+ 自动化应把 CLI 更新和 Skill 安装拆成两条命令。
321
328
 
322
- `viceme update` 保留为显式修复命令。正常启动检查已经会校验精确 Release、刷新匹配
323
- 版本的官方 Skills,并把中断的激活过程恢复成一个完整、兼容的本地版本。
329
+ CLI 会在创建更新事务前检查当前安装方式需要修改的全部路径。npm 安装通过 Node 检查
330
+ 实际缓存、全局包及命令入口目录,保留宿主原有的文件权限代理;独立 CLI-only 更新
331
+ 只检查可执行文件目录,单独安装 Skill 时才检查所选 Agent 目录。显式更新预检发现权限
332
+ 不足时保留原有完整版本并申请宿主授权;后台权限失败只记录到本地,不影响前台命令。
333
+ 预检之后权限仍可能变化;一旦已经尝试安装,失败时会保留恢复记录,等待启动恢复。
334
+
335
+ 显式更新或未完成事务的恢复遇到权限不足时,返回 `UPDATE_PERMISSION_REQUIRED`
336
+ (退出码 6,不可自动重试)。Agent 必须通过宿主提供的正式审批机制申请权限,真正
337
+ 获批后才重试 `viceme update`。聊天里的口头同意不等于系统权限已经开放。宿主拒绝、
338
+ 没有授权入口,或授权后仍不能操作时,停止更新;不得删恢复日志、卸载 CLI 或绕过限制。
339
+ `error.details.recovery_required` 或目标状态 `recovery_pending` 表示必须先完成恢复,
340
+ 不能假定旧安装完整可用。错误响应不包含 npm 原始输出或凭据。
324
341
 
325
342
  ## 安全边界
326
343
 
@@ -336,7 +353,7 @@ viceme update
336
353
 
337
354
  ## 开发
338
355
 
339
- 需要 Go 1.23+;npm 包检查还需要 Node.js 22+。
356
+ 需要 Go 1.23+ 与 Python 3.9+;npm 包检查还需要 Node.js 22+。
340
357
 
341
358
  ```bash
342
359
  make check
package/checksums.txt CHANGED
@@ -1,6 +1,6 @@
1
- fc684d29a1ea4d17e8b48dc6c7c28be16f212dfeb93487706b73b9b1eee88bc7 viceme_0.27.0_darwin_amd64
2
- 804e6b8db9abc70523d137fe79732d257fd8b2b91768d1a1d45e24a68f4efba5 viceme_0.27.0_darwin_arm64
3
- 9cf137647407531cf3da9a3abdcb3d3c45519265d6fa4f39043051131a6b21c1 viceme_0.27.0_linux_amd64
4
- fc5f2668e5a9b23da108f466b67556ff8d19504010151c8ec77178fd656426ba viceme_0.27.0_linux_arm64
5
- 56271bde9d13e72fd78eb31a3d39547628b423193e521a933af05a15c4d7c129 viceme_0.27.0_windows_amd64.exe
6
- 4b6875c0eac52859445938f1cf715c67d86a9bfe4062438c3ad793d15def8f62 viceme_0.27.0_windows_arm64.exe
1
+ fc162282365271fc6d5cf389a0c522db1ac03fd78ca91f2f24c023e2ecff929f viceme_0.30.0_darwin_amd64
2
+ 4996e7012db78022408da22e197841fc6f9d0e0b2cc95c0a9f11b648dbc5aa8c viceme_0.30.0_darwin_arm64
3
+ 127a4db49717a51ae79e3db81c642878cc937234aa4f440c992f155cd6af03ff viceme_0.30.0_linux_amd64
4
+ bb37c6bada1f732844486e42008f49288d31c8dd787554164645e79f812de967 viceme_0.30.0_linux_arm64
5
+ 75b22eb5303b2153f578d457f66ba1383412f60efe6be1d716c07dafc7ca2ed0 viceme_0.30.0_windows_amd64.exe
6
+ c075e77f9301ee0bc20f086d26c6d29d1a4af673bf82a8b5862e2e4564a1d113 viceme_0.30.0_windows_arm64.exe
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viceme-ai/cli",
3
- "version": "0.27.0",
3
+ "version": "0.30.0",
4
4
  "description": "Install the ViceMe creator CLI and official Agent Skills",
5
5
  "type": "module",
6
6
  "bin": {