@viceme-ai/cli 0.15.1 → 0.16.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,42 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.16.0] - 2026-08-19
4
+
5
+ ### Features
6
+
7
+ - 自动更新 CLI 与官方 Skills (`d68d096`)
8
+
9
+ ### Fixes
10
+
11
+ - 合并并发自动更新并重执行等待命令 (`f48d2f6`)
12
+
13
+ ### Other Changes
14
+
15
+ - 稳定激活子进程并发测试 (`fa139f9`)
16
+ - 注册 POC CLI 手动发布工作流 (`3e265fa`)
17
+ - 默认使用 Agent 补全发布内容 (`ee5030e`)
18
+
19
+ ## [0.15.2] - 2026-08-18
20
+
21
+ ### Fixes
22
+
23
+ - 统一认证失败详情契约 (`934139c`)
24
+ - 覆盖官方凭据的 Profile 迁移 (`53cad42`)
25
+ - 收口发布流程升级兼容契约 (`0aa469a`)
26
+ - 以 API 地址确定运行环境 (`5ee2002`)
27
+ - 合并作品详情确认与询价 (`d358466`)
28
+ - 修复 Skill 包元数据与占位符误判 (`594c89f`)
29
+ - 无价继续媒体与分析 (`e5bcdfb`)
30
+ - 隐藏发布流程环境选择 (`997dfd6`)
31
+ - 更新安装后的发布入口 (`a78db66`)
32
+ - 固定发布环境选择优先级 (`0171135`)
33
+ - 同步 Skill 发布摘要 (`6a76f1e`)
34
+ - 修正 WorkBuddy 预览打开契约 (`d21330a`)
35
+
36
+ ### Other Changes
37
+
38
+ - 同步渐进式发布流程 (`a646450`)
39
+
3
40
  ## [0.15.1] - 2026-08-17
4
41
 
5
42
  ### Fixes
package/README.md CHANGED
@@ -30,7 +30,7 @@
30
30
  listings when a response is lost.
31
31
  - **Built for Agents and automation** — stable JSON output, error codes, dry
32
32
  runs, and explicit state transitions make every action inspectable.
33
- - **Safe by default** — device authorization, origin-bound profiles, local
33
+ - **Safe by default** — browser authorization, origin-bound profiles, local
34
34
  secret checks, immutable digests, and verified uploads protect the release
35
35
  path.
36
36
 
@@ -57,18 +57,20 @@
57
57
  discover the installed Skills.
58
58
  3. Attach a local Skill directory or ZIP and ask naturally:
59
59
 
60
- > Publish this Skill to ViceMe for CNY 1.00.
60
+ > Publish this Skill to ViceMe.
61
61
 
62
62
  The Agent checks login, keeps the selected Profile fixed throughout the
63
63
  workflow, validates the Skill, immediately uploads the private Draft, and opens
64
- its real Owner Preview before asking for a price.
65
- After ViceMe prepares the bilingual copy and media suggestions, the Agent shows
66
- the complete review—including the images—and asks once whether to confirm and
67
- publish it publicly.
64
+ its real Owner Preview. It uploads media candidates without asking for a price,
65
+ then the user's Agent prepares the bilingual copy and media suggestions. The Agent shows
66
+ the complete listing—including the images—and asks one combined question for
67
+ the price and any desired changes. It then shows the final review and asks once
68
+ whether to confirm and publish it publicly.
68
69
 
69
70
  ```text
70
- Local Skill → Login → Validate and private upload → Owner Preview → Set price
71
- Platform analysis Final review Confirm and publish Public URL
71
+ Local Skill → Login → Validate and private upload → Owner Preview → Agent enrichment
72
+ Complete listing details + price questionFinal review
73
+ → Confirm and publish → Public URL
72
74
  ```
73
75
 
74
76
  The initial request to “publish” is not permission to make the listing public.
@@ -88,7 +90,15 @@ viceme auth login
88
90
  # Upload the real private draft and open its Owner Preview before pricing.
89
91
  viceme skill publish --path ./my-skill
90
92
 
91
- # Set CNY 1.00 on the same draft, then continue media and analysis.
93
+ # Continue the same unpriced draft and upload media candidates.
94
+ viceme skill publish --resume <publication-id>
95
+ viceme publication review <publication-id>
96
+
97
+ # The Agent writes a revision-protected suggestion. Platform analysis is an explicit fallback only.
98
+ viceme publication suggest <publication-id> --input <suggestion.json>
99
+ # viceme publication analyze <publication-id> && viceme publication wait <publication-id>
100
+
101
+ # After reviewing the complete listing details, set CNY 1.00 on that draft.
92
102
  viceme skill publish --resume <publication-id> --price-minor 100
93
103
  ```
94
104
 
@@ -168,15 +178,15 @@ are not accepted.
168
178
  | Login | Browser authorization happens before protected API work. Every command remains pinned to the same Profile and API origin. |
169
179
  | Inspect | Local validation rejects unsafe paths, special files, excessive content, sensitive files, and common secret patterns. |
170
180
  | Private upload and preview | The initial publish request authorizes the private Draft upload. The real package is verified and its Owner Preview opens before pricing. |
171
- | Price | The user supplies an exact CNY price in fen on the same Publication. |
172
- | Analysis | ViceMe proposes short Chinese and English summaries, bilingual usage instructions, a cover, and an ordered gallery. Suggestions are never treated as user decisions. |
181
+ | Agent enrichment | The user's Agent reads the Skill as untrusted source data, prepares bilingual copy, and selects verified cover and gallery uploads. Platform analysis is an explicit fallback only. |
182
+ | Listing details and price | After enrichment, the Agent displays the exact title, bilingual copy, cover, and gallery, then asks one combined question for the CNY price in fen and any desired changes. It never asks for price by itself. |
173
183
  | Review | The Agent displays the exact copy, price, cover, and gallery images. A short summary has a maximum display width of 30; ASCII counts as 1 and Chinese/non-ASCII as 2. |
174
184
  | Publish | One explicit final confirmation authorizes review confirmation followed by immediate, irreversible public publication. |
175
185
 
176
186
  If the upload or response is interrupted, continue the existing publication:
177
187
 
178
188
  ```bash
179
- viceme --profile <publication-profile> skill publish --resume <publication-id>
189
+ viceme skill publish --resume <publication-id>
180
190
  ```
181
191
 
182
192
  Never create a second publication merely because the previous response was
@@ -184,9 +194,9 @@ unknown. Query or resume the existing ID first.
184
194
 
185
195
  ## Authentication and Profiles
186
196
 
187
- Each Profile binds one region, one API endpoint, and one device-authorized
188
- account. Profiles without a custom endpoint use the selected region's official
189
- ViceMe API.
197
+ Each Profile binds one explicit API endpoint and one device-authorized account.
198
+ The separately stored distribution region selects only the CLI and bundled
199
+ Skill download source; it never selects a publication market.
190
200
 
191
201
  ```bash
192
202
  viceme auth login
@@ -203,7 +213,6 @@ dedicated Profile before signing in:
203
213
  ```bash
204
214
  viceme profile add \
205
215
  --name private-cn \
206
- --region cn \
207
216
  --api-base-url https://api.example.com \
208
217
  --use
209
218
  viceme auth login
@@ -234,10 +243,13 @@ Never copy an access token into the conversation.
234
243
  | `viceme skill listing get <listing-id>` | Read the authoritative private Listing state. |
235
244
  | `viceme skill listing bind <listing-id> --path <path>` | Explicitly bind a source to a selected owned Listing. |
236
245
  | `viceme skill publish --path <path>` | Upload the real private package and return its Owner Preview before pricing. |
237
- | `viceme skill publish --resume <id> --price-minor <fen>` | Price the same Draft, upload media candidates, and start analysis. |
238
- | `viceme publication wait <id>` | Wait for background analysis without re-uploading. |
246
+ | `viceme skill publish --resume <id>` | Continue the same unpriced Draft and upload media candidates without starting a platform model. |
239
247
  | `viceme publication review <id>` | Read the authoritative bilingual copy, price, selected media, and review state. |
240
- | `viceme publication asset upload ...` | Replace or add a cover or gallery image before confirmation. |
248
+ | `viceme publication suggest <id> --input ...` | Apply Agent-generated bilingual copy and media with Draft revision protection. |
249
+ | `viceme publication analyze <id>` | Explicitly request platform-model analysis when the current Agent cannot perform enrichment. |
250
+ | `viceme publication wait <id>` | Wait for an explicitly requested platform analysis without re-uploading. |
251
+ | `viceme skill publish --resume <id> --price-minor <fen>` | Apply the reviewed CNY price to the same Draft without creating another Listing. |
252
+ | `viceme publication asset upload ...` | Replace user-selected media, or add `--candidate-only` to stage Agent-provided media for `publication suggest`. |
241
253
  | `viceme publication update ...` | Replace the complete listing draft from a strict JSON file. |
242
254
  | `viceme publication confirm ...` | Confirm the exact current review digest. |
243
255
  | `viceme publication publish ...` | Make a confirmed listing public. |
@@ -258,6 +270,11 @@ text.
258
270
  "data": {},
259
271
  "meta": {
260
272
  "executingCliVersion": "<version>",
273
+ "autoUpdate": {
274
+ "from": "<previous-version>",
275
+ "to": "<executing-version>",
276
+ "status": "updated"
277
+ },
261
278
  "requestId": "optional"
262
279
  }
263
280
  }
@@ -266,21 +283,31 @@ text.
266
283
  `meta.executingCliVersion` is the version of the process that emitted the
267
284
  response. For `viceme update`, the newly installed version is reported
268
285
  separately as `data.cli_version` because the response is still emitted by the
269
- process that started the update.
270
-
271
- Released installations check their authoritative release channel at most once
272
- every 24 hours. When a newer version is available, ordinary JSON responses
273
- include `_notice.update` with the current version, latest version, and
274
- `viceme update`. Discovery is fail-open and never changes the business
275
- command's exit code.
286
+ process that started the update. `meta.autoUpdate` is present only when this
287
+ command was automatically continued by a newly activated generation.
288
+
289
+ Every released installation passes through a bounded freshness gate before an
290
+ ordinary command. A validated result is reused for five minutes so a single
291
+ workflow does not repeatedly contact the release channel. When a newer stable
292
+ release exists, the CLI and all detected official Skills are activated as one
293
+ recoverable generation and the original command is automatically re-executed by
294
+ the new CLI. Release discovery is fail-open while offline; activation failure
295
+ stops the original command so an older process cannot perform a mutation after
296
+ a failed generation change.
297
+
298
+ An npm installation continues the original command automatically on every
299
+ supported platform. A standalone Windows binary may return the retryable code
300
+ `AUTO_UPDATE_RESTART_REQUIRED` once while Windows releases the old executable;
301
+ rerunning the exact command completes under the new generation.
276
302
 
277
303
  ```bash
278
304
  viceme update --check
279
305
  viceme update
280
306
  ```
281
307
 
282
- The updater verifies the exact release, refreshes the matching official Skills,
283
- and recovers interrupted activation as one compatible local generation.
308
+ `viceme update` remains an explicit repair command. The normal startup gate
309
+ already verifies the exact release, refreshes the matching official Skills, and
310
+ recovers interrupted activation as one compatible local generation.
284
311
 
285
312
  ## Security
286
313
 
@@ -291,7 +318,8 @@ and recovers interrupted activation as one compatible local generation.
291
318
  - Credentials remain in the CLI's secure local store and are scoped to a
292
319
  Profile and API origin; they are never part of Agent conversation state.
293
320
  - Presigned upload URLs are not written to the local pending-operation store.
294
- - Model analysis receives only filtered text, metadata, and image thumbnails.
321
+ - Agent enrichment treats all package content as untrusted data and cannot bypass server-side package, media, ownership, or revision validation.
322
+ - Explicit platform-model analysis receives only filtered text, metadata, and image thumbnails.
295
323
  - Public publication requires the exact reviewed copy, price, cover, and
296
324
  ordered gallery to be displayed and explicitly authorized.
297
325
 
package/README.zh.md CHANGED
@@ -27,7 +27,7 @@
27
27
  也不会重复创建商品。
28
28
  - **同时适合 Agent 和自动化**——稳定 JSON、错误码、Dry Run 和明确状态让每个动作
29
29
  都可检查、可复现。
30
- - **默认安全**——设备码授权、绑定 Origin 的 Profile、本地 Secret 检查、不可变摘要
30
+ - **默认安全**——浏览器授权、绑定 Origin 的 Profile、本地 Secret 检查、不可变摘要
31
31
  和已验证上传共同保护发布链路。
32
32
 
33
33
  ## 能做什么
@@ -53,15 +53,17 @@
53
53
  Skills。
54
54
  3. 附上本地 Skill 目录或 ZIP,然后直接说:
55
55
 
56
- > 帮我把这个 Skill 以人民币 1 元发布到 ViceMe。
56
+ > 帮我把这个 Skill 发布到 ViceMe。
57
57
 
58
58
  Agent 会先检查登录状态,在整个流程中固定使用同一个 Profile,校验 Skill 后立即
59
- 上传私有草稿并打开真实创作者预览,然后再询问价格。ViceMe 完成双语文案和素材建议后,
60
- Agent 会把完整成品和图片直接展示出来,最后只询问一次是否确认并立即公开发布。
59
+ 上传私有草稿并打开真实创作者预览,不询价就继续上传候选媒体。当前用户的 Agent 随后
60
+ 完成双语文案和素材建议,先把完整作品详情和图片直接展示出来,再把价格和详情修改合并成一个
61
+ 问题;应用用户答案后展示最终成品,最后只询问一次是否确认并立即公开发布。
61
62
 
62
63
  ```text
63
- 本地 Skill → 登录 → 校验并私有上传 → 创作者预览 → 定价
64
- 平台分析 → 最终成品 → 确认并发布 → 公开商品链接
64
+ 本地 Skill → 登录 → 校验并私有上传 → 创作者预览 → Agent 补全
65
+ 完整详情与价格合并询问 → 最终成品
66
+ → 确认并发布 → 公开商品链接
65
67
  ```
66
68
 
67
69
  最初的“帮我发布”不等于授权公开上架。只有完整审核稿已经展示、用户明确确认后,
@@ -80,7 +82,15 @@ viceme auth login
80
82
  # 定价前先上传真实私有草稿,并打开创作者预览。
81
83
  viceme skill publish --path ./my-skill
82
84
 
83
- # 在同一草稿上设置人民币 1 元,并继续媒体上传与分析。
85
+ # 继续同一个未定价草稿并上传候选媒体。
86
+ viceme skill publish --resume <publication-id>
87
+ viceme publication review <publication-id>
88
+
89
+ # Agent 提交带 Draft revision 保护的建议;平台分析只作显式 fallback。
90
+ viceme publication suggest <publication-id> --input <suggestion.json>
91
+ # viceme publication analyze <publication-id> && viceme publication wait <publication-id>
92
+
93
+ # 查看完整作品详情后,在同一个草稿上设置人民币 1 元。
84
94
  viceme skill publish --resume <publication-id> --price-minor 100
85
95
  ```
86
96
 
@@ -154,23 +164,23 @@ Agent Skills 负责对话流程和授权规则;CLI 负责确定性本地操作
154
164
  | 登录 | 受保护 API 操作前完成浏览器授权;所有后续命令固定使用同一个 Profile 与 API Origin。 |
155
165
  | 校验 | 本地拒绝危险路径、特殊文件、超限内容、敏感文件和常见 Secret 模式。 |
156
166
  | 私有上传与预览 | 用户发起发布即授权上传私有草稿;真实包验证后先打开创作者预览。 |
157
- | 定价 | 用户随后在同一 Publication 上以“分”为单位提供人民币价格。 |
158
- | 平台分析 | ViceMe 建议中英文短简介、中英文使用说明、封面和有序画廊;建议不能替代用户决定。 |
167
+ | Agent 补全 | 用户当前的 Agent Skill 当作不可信来源数据,生成双语文案并从已验证上传中选择封面和画廊;平台分析只作显式 fallback。 |
168
+ | 作品详情与定价 | 补全后,Agent 先展示标题、双语文案、封面和画廊,再把价格和详情修改合并成一个问题;不能单独询价。 |
159
169
  | 图文审核 | Agent 展示精确文案、价格、封面和所有画廊图片。短简介最大显示宽度为 30:ASCII 计 1,中文及其他非 ASCII 计 2。 |
160
170
  | 公开发布 | 用户只需做一次最终明确确认;随后完成审核确认并立即、不可逆地公开上架。 |
161
171
 
162
172
  上传或响应中断后,继续原来的 Publication:
163
173
 
164
174
  ```bash
165
- viceme --profile <publication-profile> skill publish --resume <publication-id>
175
+ viceme skill publish --resume <publication-id>
166
176
  ```
167
177
 
168
178
  不能因为上一次响应未知就创建第二个 Publication,应先查询或恢复原 ID。
169
179
 
170
180
  ## 登录与 Profile
171
181
 
172
- 每个 Profile 绑定一个区域、一个 API Endpoint 和一个通过设备码授权的账户。没有
173
- 自定义 EndpointProfile 使用对应区域的 ViceMe 官方 API。
182
+ 每个 Profile 绑定一个明确的 API Endpoint 和一个通过浏览器授权的账户。发布目标完全
183
+ 由当前 ProfileEndpoint 决定;单独的分发区域只选择 CLI 与官方 Skills 的下载来源。
174
184
 
175
185
  ```bash
176
186
  viceme auth login
@@ -186,7 +196,6 @@ viceme profile use default
186
196
  ```bash
187
197
  viceme profile add \
188
198
  --name private-cn \
189
- --region cn \
190
199
  --api-base-url https://api.example.com \
191
200
  --use
192
201
  viceme auth login
@@ -214,10 +223,13 @@ Endpoint 必须使用 HTTPS;只有 localhost 和 loopback 本地开发可以
214
223
  | `viceme skill listing get <listing-id>` | 读取权威的私有 Listing 状态。 |
215
224
  | `viceme skill listing bind <listing-id> --path <path>` | 将来源明确绑定到用户选定且拥有的 Listing。 |
216
225
  | `viceme skill publish --path <path>` | 定价前上传真实私有包并返回创作者预览。 |
217
- | `viceme skill publish --resume <id> --price-minor <fen>` | 为同一 Draft 定价、上传媒体候选并启动分析。 |
218
- | `viceme publication wait <id>` | 等待后台分析,不重复上传。 |
226
+ | `viceme skill publish --resume <id>` | 继续同一个未定价 Draft 并上传媒体候选,不启动平台模型。 |
219
227
  | `viceme publication review <id>` | 读取权威双语文案、价格、选定素材和审核状态。 |
220
- | `viceme publication asset upload ...` | 确认前替换或新增封面、画廊图片。 |
228
+ | `viceme publication suggest <id> --input ...` | Draft revision 保护提交 Agent 生成的双语文案与媒体选择。 |
229
+ | `viceme publication analyze <id>` | 当前 Agent 无法完成补全时,显式请求平台模型分析。 |
230
+ | `viceme publication wait <id>` | 等待已经显式请求的平台分析,不重复上传。 |
231
+ | `viceme skill publish --resume <id> --price-minor <fen>` | 在完整详情审核后,为同一个 Draft 写入人民币价格,不新建 Listing。 |
232
+ | `viceme publication asset upload ...` | 替换用户明确选择的媒体;加 `--candidate-only` 可暂存由 Agent 提供、随后交给 `publication suggest` 选择的媒体。 |
221
233
  | `viceme publication update ...` | 用严格 JSON 文件替换完整 Listing Draft。 |
222
234
  | `viceme publication confirm ...` | 确认当前精确 Review Digest。 |
223
235
  | `viceme publication publish ...` | 公开已经确认的 Listing。 |
@@ -236,6 +248,11 @@ Endpoint 必须使用 HTTPS;只有 localhost 和 loopback 本地开发可以
236
248
  "data": {},
237
249
  "meta": {
238
250
  "executingCliVersion": "<version>",
251
+ "autoUpdate": {
252
+ "from": "<previous-version>",
253
+ "to": "<executing-version>",
254
+ "status": "updated"
255
+ },
239
256
  "requestId": "optional"
240
257
  }
241
258
  }
@@ -243,18 +260,25 @@ Endpoint 必须使用 HTTPS;只有 localhost 和 loopback 本地开发可以
243
260
 
244
261
  `meta.executingCliVersion` 表示输出本次响应的进程版本。对于 `viceme update`,
245
262
  新安装版本单独由 `data.cli_version` 返回,因为最终响应仍由启动更新的旧进程输出。
263
+ 只有当本次命令由新激活的版本自动继续执行时,响应才会包含 `meta.autoUpdate`。
264
+
265
+ 正式安装在执行普通命令前都会经过有界的新鲜度检查。已经校验的结果会复用五分钟,
266
+ 避免同一工作流反复访问发布渠道。发现新的稳定版本时,CLI 与所有检测到的官方
267
+ Skills 会作为一个可恢复的完整版本一起激活,随后由新 CLI 自动重新执行原命令。
268
+ 断网时发布发现会继续使用最后一个完整版本;如果版本激活失败,原命令会停止,避免
269
+ 旧进程在版本切换失败后继续执行写操作。
246
270
 
247
- 正式安装最多每 24 小时读取一次权威发布渠道。发现新版本后,普通 JSON 响应通过
248
- `_notice.update` 返回当前版本、最新版本和 `viceme update`。检查失败不会改变业务
249
- 命令的退出码。
271
+ npm 安装在所有支持的平台都会自动继续原命令。Windows 独立二进制在等待操作系统释放
272
+ 旧可执行文件时,可能会返回一次可重试的 `AUTO_UPDATE_RESTART_REQUIRED`;原样重试
273
+ 同一个命令后会由新版本继续执行。
250
274
 
251
275
  ```bash
252
276
  viceme update --check
253
277
  viceme update
254
278
  ```
255
279
 
256
- 更新器会校验精确 Release、刷新匹配版本的官方 Skills,并把中断的激活过程恢复成
257
- 一个完整、兼容的本地版本。
280
+ `viceme update` 保留为显式修复命令。正常启动检查已经会校验精确 Release、刷新匹配
281
+ 版本的官方 Skills,并把中断的激活过程恢复成一个完整、兼容的本地版本。
258
282
 
259
283
  ## 安全边界
260
284
 
@@ -264,7 +288,8 @@ viceme update
264
288
  - 凭据保存在 CLI 的本地安全存储中,并绑定 Profile 与 API Origin,不进入 Agent
265
289
  对话状态。
266
290
  - Pending operation 不保存预签名上传 URL。
267
- - 模型分析只接收筛选后的文本、元数据和图片缩略图。
291
+ - Agent 补全把所有包内容视为不可信数据,且不能绕过服务端包、媒体、归属或 revision 校验。
292
+ - 显式平台模型分析只接收筛选后的文本、元数据和图片缩略图。
268
293
  - 公开发布前必须展示并明确授权当前精确文案、价格、封面和有序画廊。
269
294
 
270
295
  ## 开发
package/checksums.txt CHANGED
@@ -1,6 +1,6 @@
1
- 60176995905d6d4f1f845d94d0138ee53c41d20c76c233a0b7c3c4dfd1a7e2d7 viceme_0.15.1_darwin_amd64
2
- 2a1e28a6719f3bc4b94a611ae2baf8609879abfbad56e97962c7c6198c281bd9 viceme_0.15.1_darwin_arm64
3
- fc1ac1aa5ab83ca94ee6d03c371d2dcf797a57e1cc57d3031c8ffefcc3ea43db viceme_0.15.1_linux_amd64
4
- 3f1ac9fc26e9197a8f94296a6c8b7690b581c7de3afac3dec2dc5f09701dbdde viceme_0.15.1_linux_arm64
5
- b3ac5a42207913326cd7079098f2c69b1078990918fea802cbc64cc0ec276d2b viceme_0.15.1_windows_amd64.exe
6
- c6943ba2d4ad2bdd2cfb8bec7e3501e9f257be15181716ff0f7ff93477591afa viceme_0.15.1_windows_arm64.exe
1
+ 5d1a01daa98e11d4e8bbe4e06f369235f0b328b5622b413adf17d078dc19f149 viceme_0.16.0_darwin_amd64
2
+ c5668fe1b1306a2553573cf5c9f96e80a81d2771444b5b5bde44c2ece73141fc viceme_0.16.0_darwin_arm64
3
+ 6c2d3b2c5d6ad9fe8b1479872f08d0e8b3fe52c7ed7d6ad591542d6588da8fcf viceme_0.16.0_linux_amd64
4
+ 0e472d484c38ac0b60acaa044d99b4913936abe96f0a4aef7e1c9e2db207fe3f viceme_0.16.0_linux_arm64
5
+ 8ea8942c0ad36505fa46abec12177cb2f75e7eaf4bec6213aefeb6962debf4f0 viceme_0.16.0_windows_amd64.exe
6
+ 824895a0ea8b941b31944efb74ce339ba9be0782bc4b42043428146cc52df51c viceme_0.16.0_windows_arm64.exe
@@ -2,9 +2,11 @@
2
2
 
3
3
  import { spawnSync } from "node:child_process";
4
4
  import { readFile } from "node:fs/promises";
5
+ import { fileURLToPath } from "node:url";
5
6
  import process from "node:process";
6
7
 
7
8
  import { ensureBinary } from "../lib/installer.mjs";
9
+ import { launcherEnvironment } from "../lib/launcher-environment.mjs";
8
10
 
9
11
  export async function main(args = process.argv.slice(2), environment = process.env) {
10
12
  const packageDocument = JSON.parse(
@@ -17,13 +19,11 @@ export async function main(args = process.argv.slice(2), environment = process.e
17
19
  const child = spawnSync(binary, args, {
18
20
  stdio: "inherit",
19
21
  env: {
20
- ...environment,
21
- VICEME_INSTALL_METHOD:
22
- environment.VICEME_INSTALL_METHOD === "npm"
23
- ? "npm"
24
- : environment.VICEME_BINARY_PATH
25
- ? "development"
26
- : "npm",
22
+ ...launcherEnvironment(
23
+ environment,
24
+ fileURLToPath(import.meta.url),
25
+ process.execPath,
26
+ ),
27
27
  VICEME_NPM_PACKAGE_VERSION: packageDocument.version,
28
28
  },
29
29
  windowsHide: false,
@@ -0,0 +1,13 @@
1
+ export function launcherEnvironment(environment, launcherPath, launcherRuntime) {
2
+ return {
3
+ ...environment,
4
+ VICEME_INSTALL_METHOD:
5
+ environment.VICEME_INSTALL_METHOD === "npm"
6
+ ? "npm"
7
+ : environment.VICEME_BINARY_PATH
8
+ ? "development"
9
+ : "npm",
10
+ VICEME_NPM_LAUNCHER_PATH: launcherPath,
11
+ VICEME_NPM_LAUNCHER_RUNTIME: launcherRuntime,
12
+ };
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viceme-ai/cli",
3
- "version": "0.15.1",
3
+ "version": "0.16.0",
4
4
  "description": "Install the ViceMe creator CLI and official Agent Skills",
5
5
  "type": "module",
6
6
  "bin": {