@viceme-ai/cli 0.13.2 → 0.13.3

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,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.13.3] - 2026-08-13
4
+
5
+ ### Other Changes
6
+
7
+ - 重构 CLI 快速开始与能力说明 (`77292b7`)
8
+
3
9
  ## [0.13.2] - 2026-08-13
4
10
 
5
11
  ### Fixes
package/README.md CHANGED
@@ -1,36 +1,124 @@
1
- # ViceMe CLI
1
+ <h1 align="center">ViceMe CLI</h1>
2
+
3
+ <p align="center">
4
+ <strong>Turn local AI Agent Skills into publishable products—from the conversation you already use.</strong>
5
+ </p>
6
+
7
+ <p align="center">
8
+ Install the CLI and official Agent Skills together, then ask Codex, Claude Code, or WorkBuddy to do the rest.
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="./README.zh.md">简体中文</a> ·
13
+ <a href="#quick-start">Quick Start</a> ·
14
+ <a href="#official-agent-skills">Agent Skills</a> ·
15
+ <a href="#command-reference">Commands</a> ·
16
+ <a href="#security">Security</a>
17
+ </p>
18
+
19
+ ## Why ViceMe CLI?
20
+
21
+ - **Agent-native** — describe what you want in natural language instead of
22
+ memorizing a publication command sequence.
23
+ - **One installation** — the native CLI and matching official Skills are
24
+ installed together for Codex, Claude Code, WorkBuddy, and the shared
25
+ `~/.agents/skills` fallback.
26
+ - **Human-controlled publishing** — the model can suggest bilingual copy and
27
+ media, but only the user decides the price and authorizes public publication.
28
+ - **Deterministic and resumable** — the CLI validates and packages locally,
29
+ preserves publication identity across interruptions, and avoids duplicate
30
+ listings when a response is lost.
31
+ - **Built for Agents and automation** — stable JSON output, error codes, dry
32
+ runs, and explicit state transitions make every action inspectable.
33
+ - **Safe by default** — device authorization, origin-bound profiles, local
34
+ secret checks, immutable digests, and verified uploads protect the release
35
+ path.
36
+
37
+ ## What you can do
38
+
39
+ | Capability | What ViceMe provides |
40
+ | --- | --- |
41
+ | Publish a Skill | Validate a local Skill directory or ZIP, set a CNY price, upload it, review platform suggestions, and publish a paid listing. |
42
+ | Build a component | Ask an Agent to integrate the bundled production danmaku blueprint into a React and Tailwind CSS v4 project. |
43
+ | Set up an Agent | Install, authenticate, update, diagnose, and repair the CLI and official Skills as one compatible release. |
44
+ | Recover safely | Continue the same publication after a network or process interruption without uploading a duplicate product. |
45
+
46
+ ## Quick Start
47
+
48
+ ### With an AI Agent (recommended)
49
+
50
+ 1. Install the CLI and official Skills:
51
+
52
+ ```bash
53
+ curl -fsSL https://s3.viceme.cn/start/install.sh | sh
54
+ ```
55
+
56
+ 2. Start a new Codex, Claude Code, or WorkBuddy conversation so the Agent can
57
+ discover the installed Skills.
58
+ 3. Attach a local Skill directory or ZIP and ask naturally:
59
+
60
+ > Publish this Skill to ViceMe for CNY 1.00.
61
+
62
+ The Agent checks login before reading the package, keeps the selected Profile
63
+ fixed throughout the workflow, validates the Skill, and asks before uploading.
64
+ After ViceMe prepares the bilingual copy and media suggestions, the Agent shows
65
+ the complete review—including the images—and asks once whether to confirm and
66
+ publish it publicly.
67
+
68
+ ```text
69
+ Local Skill → Login → Validate → Confirm price → Upload → Platform analysis
70
+ → Visual review → Confirm and publish → Public product URL
71
+ ```
72
+
73
+ The initial request to “publish” is not permission to make the listing public.
74
+ Public publication happens only after the final review is displayed and the
75
+ user explicitly confirms it.
76
+
77
+ ### From the terminal
78
+
79
+ ```bash
80
+ # Verify the installation and current account.
81
+ viceme doctor
82
+ viceme auth status
83
+
84
+ # Sign in only when auth status reports unauthenticated.
85
+ viceme auth login
86
+
87
+ # Inspect without uploading anything.
88
+ viceme skill inspect --path ./my-skill
2
89
 
3
- ViceMe CLI is the deterministic local companion for the official ViceMe Agent
4
- Skills. Codex, Claude Code, and WorkBuddy use the Skills to guide the user; the
5
- CLI handles installation, device authorization, validation, packaging,
6
- uploads, review, and publication.
90
+ # Preview the exact package and CNY 1.00 price plan.
91
+ viceme skill publish --path ./my-skill --price-minor 100 --dry-run
92
+ ```
7
93
 
8
- [中文](./README.zh.md)
94
+ ## Installation
9
95
 
10
- ## Install
96
+ The official bootstrap installs the native CLI and all official Agent Skills
97
+ from one immutable release.
11
98
 
12
- The official bootstrap installs the native CLI and all three official Skills from
13
- one immutable release.
99
+ ### macOS or Linux
14
100
 
15
- China, macOS or Linux:
101
+ China:
16
102
 
17
103
  ```bash
18
104
  curl -fsSL https://s3.viceme.cn/start/install.sh | sh
19
105
  ```
20
106
 
21
- International, macOS or Linux:
107
+ International:
22
108
 
23
109
  ```bash
24
110
  VICEME_REGION=global sh -c "$(curl -fsSL https://s3.viceme.ai/start/install.sh)"
25
111
  ```
26
112
 
27
- China, Windows PowerShell:
113
+ ### Windows PowerShell
114
+
115
+ China:
28
116
 
29
117
  ```powershell
30
118
  irm https://s3.viceme.cn/start/install.ps1 | iex
31
119
  ```
32
120
 
33
- International, Windows PowerShell:
121
+ International:
34
122
 
35
123
  ```powershell
36
124
  $env:VICEME_REGION="global"; irm https://s3.viceme.ai/start/install.ps1 | iex
@@ -42,9 +130,8 @@ If the bootstrap cannot be used, npm is the fallback:
42
130
  npx --yes @viceme-ai/cli@latest install
43
131
  ```
44
132
 
45
- The installer always writes the compatibility fallback to
46
- `~/.agents/skills`. It also installs into the native user directory of every
47
- detected supported Agent:
133
+ The installer writes the compatibility fallback to `~/.agents/skills` and the
134
+ native user directory of every detected supported Agent:
48
135
 
49
136
  | Agent | Native directory |
50
137
  | --- | --- |
@@ -55,9 +142,47 @@ detected supported Agent:
55
142
  Select a target explicitly with `viceme install --agent codex`, `claude`,
56
143
  `workbuddy`, or `agents`. Run `viceme doctor` after installation or repair.
57
144
 
58
- ## Authentication and profiles
145
+ ## Official Agent Skills
146
+
147
+ | Skill | Use it when you want to... |
148
+ | --- | --- |
149
+ | `viceme-shared` | install ViceMe, sign in with a device code, manage Profiles, update, diagnose, or repair the local setup. |
150
+ | `viceme-publish` | validate, upload, review, resume, or publish a local Skill directory or ZIP as a paid ViceMe listing. |
151
+ | `viceme-danmaku` | build or adapt the bundled production React and Tailwind CSS v4 danmaku component in an existing project. |
152
+
153
+ The Agent Skills own the conversational workflow and approval rules. The CLI
154
+ owns deterministic local work and API calls. This separation lets an Agent
155
+ explain decisions while the same command contract remains reproducible from a
156
+ terminal or automation.
157
+
158
+ ## How Skill publishing works
159
+
160
+ The current publication flow accepts one local directory containing a root
161
+ `SKILL.md`, or one local ZIP. Common GitHub ZIPs with a single wrapping
162
+ directory are normalized automatically. Remote URLs and multi-Skill bundles
163
+ are not accepted.
164
+
165
+ | Stage | Responsibility |
166
+ | --- | --- |
167
+ | Login | Device authorization happens before package inspection. Every command remains pinned to the same Profile and API origin. |
168
+ | Inspect | Local validation rejects unsafe paths, special files, excessive content, sensitive files, and common secret patterns. |
169
+ | Price and upload | The user supplies an exact CNY price in fen and explicitly allows the deterministic package to be uploaded. |
170
+ | Analysis | ViceMe proposes short Chinese and English summaries, bilingual usage instructions, a cover, and an ordered gallery. Suggestions are never treated as user decisions. |
171
+ | 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. |
172
+ | Publish | One explicit final confirmation authorizes review confirmation followed by immediate, irreversible public publication. |
173
+
174
+ If the upload or response is interrupted, continue the existing publication:
175
+
176
+ ```bash
177
+ viceme --profile <publication-profile> skill publish --resume <publication-id>
178
+ ```
59
179
 
60
- Each profile is bound to one region, one API endpoint, and one device-authorized
180
+ Never create a second publication merely because the previous response was
181
+ unknown. Query or resume the existing ID first.
182
+
183
+ ## Authentication and Profiles
184
+
185
+ Each Profile binds one region, one API endpoint, and one device-authorized
61
186
  account. Profiles without a custom endpoint use the selected region's official
62
187
  ViceMe API.
63
188
 
@@ -70,35 +195,24 @@ viceme profile list
70
195
  viceme profile use default
71
196
  ```
72
197
 
73
- To remove every legacy/test Profile and all of their local credentials before
74
- creating a clean test Profile:
75
-
76
- ```bash
77
- viceme profile remove --all --yes
78
- ```
79
-
80
- This destructive command recreates one unauthenticated `default` Profile; it
81
- does not leave the CLI with an invalid empty configuration.
82
-
83
- For a test or private ViceMe deployment, persist the endpoint in a dedicated
84
- profile before signing in:
198
+ For a test or private deployment, persist a generic HTTPS endpoint in a
199
+ dedicated Profile before signing in:
85
200
 
86
201
  ```bash
87
202
  viceme profile add \
88
- --name shop-dev \
203
+ --name private-cn \
89
204
  --region cn \
90
- --api-base-url https://viceme-shop-web.preview.tencent-zeabur.cn/api \
205
+ --api-base-url https://api.example.com \
91
206
  --use
92
207
  viceme auth login
93
208
  ```
94
209
 
95
- `profile list` reports the effective endpoint. `VICEME_API_BASE_URL` remains a
96
- one-process CI/debug override and is never written to profile configuration.
210
+ `VICEME_API_BASE_URL` is a one-process CI/debug override, not Profile state.
97
211
  Remote custom endpoints require HTTPS; only localhost and loopback development
98
- may use HTTP. Remove and recreate a profile to change its endpoint so an
99
- existing credential cannot silently move to another origin.
212
+ may use HTTP. Credentials are isolated by Profile and API origin, and an Agent
213
+ must never switch to another Profile merely because it is already signed in.
100
214
 
101
- For an Agent workflow that cannot wait in one turn:
215
+ For an Agent that cannot wait in one turn:
102
216
 
103
217
  ```bash
104
218
  viceme auth login --no-wait
@@ -106,155 +220,73 @@ viceme auth login --device-code <device-code>
106
220
  ```
107
221
 
108
222
  The user completes authorization in the browser. Never copy an access token
109
- into the conversation. Credentials are isolated by profile and API origin, so
110
- sign in again after creating a profile for a different endpoint.
111
-
112
- ## Publish a Skill
113
-
114
- The first release accepts a local directory containing `SKILL.md` or a local
115
- ZIP. GitHub URLs, remote downloads, and multi-Skill bundles are not accepted.
116
-
117
- Authenticate before inspecting the package, then keep every command pinned to
118
- the Profile returned by `auth status`. An Agent must not switch to another
119
- Profile merely because that Profile is already signed in.
120
-
121
- ```bash
122
- viceme auth status
123
- viceme --profile <publication-profile> auth login # only when unauthenticated
124
- ```
125
-
126
- Inspect without side effects:
127
-
128
- ```bash
129
- viceme --profile <publication-profile> skill inspect --path ./my-skill
130
- ```
131
-
132
- Show the exact deterministic package and price plan:
133
-
134
- ```bash
135
- viceme --profile <publication-profile> skill publish --path ./my-skill --price-minor 100 --dry-run
136
- ```
223
+ into the conversation.
137
224
 
138
- Start the resumable upload and listing analysis:
225
+ ## Command reference
139
226
 
140
- ```bash
141
- viceme --profile <publication-profile> skill publish --path ./my-skill --price-minor 100
142
- ```
143
-
144
- Then follow the authoritative publication state:
145
-
146
- ```bash
147
- viceme publication get <publication-id>
148
- viceme publication wait <publication-id>
149
- viceme publication review <publication-id>
150
- viceme publication asset upload <publication-id> --role cover --path ./cover.png
151
- viceme publication asset upload <publication-id> --role gallery --path ./demo.png
152
- viceme publication update <publication-id> --input ./listing-draft.json
153
- viceme publication confirm <publication-id> --review-digest <digest>
154
- viceme publication publish <publication-id> --review-digest <digest>
155
- ```
156
-
157
- The model proposes `summaryZhCn`, `summaryEnUs`, `usageInstructionsZhCn`,
158
- `usageInstructionsEnUs` derived from the validated `SKILL.md`, and package
159
- images, but it never confirms them or decides the price. Each summary has a maximum display width of
160
- 30: ASCII counts as 1 and Chinese/non-ASCII counts as 2. The Agent must show the
161
- exact bilingual summaries, both usage instructions, price, cover, and ordered gallery
162
- to the user and receive explicit confirmation before `confirm` and again before
163
- public `publish`.
164
-
165
- Resume after a connection loss with the same publication:
166
-
167
- ```bash
168
- viceme --profile <publication-profile> skill publish --resume <publication-id>
169
- ```
170
-
171
- Do not create a second publication when the server response is unknown. Query
172
- or resume the existing ID first.
173
-
174
- ## Output contract
227
+ | Command | Purpose |
228
+ | --- | --- |
229
+ | `viceme version` | Show the CLI and bundled Skill versions. |
230
+ | `viceme doctor` | Check the CLI, active Profile, credentials, API readiness, and installed official Skills. |
231
+ | `viceme auth status` | Show whether the active Profile is signed in. |
232
+ | `viceme profile list` | Show Profiles and their effective API endpoints. |
233
+ | `viceme skill inspect --path <path>` | Validate a local Skill without side effects. |
234
+ | `viceme skill publish --path <path> --price-minor <fen> --dry-run` | Preview the exact deterministic package and price. |
235
+ | `viceme skill publish --path <path> --price-minor <fen>` | Upload the package and start listing analysis. |
236
+ | `viceme publication wait <id>` | Wait for background analysis without re-uploading. |
237
+ | `viceme publication review <id>` | Read the authoritative bilingual copy, price, selected media, and review state. |
238
+ | `viceme publication asset upload ...` | Replace or add a cover or gallery image before confirmation. |
239
+ | `viceme publication update ...` | Replace the complete listing draft from a strict JSON file. |
240
+ | `viceme publication confirm ...` | Confirm the exact current review digest. |
241
+ | `viceme publication publish ...` | Make a confirmed listing public. |
242
+ | `viceme update` | Update the CLI and matching official Skills together. |
243
+
244
+ Run `viceme <command> --help` for the full flags and JSON fields.
245
+
246
+ ## Output and updates
175
247
 
176
248
  Business output is JSON by default. Successful output is the only content on
177
- stdout; progress and diagnostics use stderr.
249
+ stdout; progress and diagnostics use stderr. Errors use a non-zero exit code
250
+ and a stable `error.code`, so Agents and automation never need to parse message
251
+ text.
178
252
 
179
253
  ```json
180
254
  {
181
255
  "ok": true,
182
256
  "data": {},
183
257
  "meta": {
184
- "cliVersion": "0.10.1",
258
+ "cliVersion": "<version>",
185
259
  "requestId": "optional"
186
260
  }
187
261
  }
188
262
  ```
189
263
 
190
- Errors use a non-zero exit code and a stable `error.code`. Agent Skills branch
191
- on the exit code, `ok`, `error.code`, and `retryable`, never on message text.
192
-
193
- ## Update
264
+ Released installations check their authoritative release channel at most once
265
+ every 24 hours. When a newer version is available, ordinary JSON responses
266
+ include `_notice.update` with the current version, latest version, and
267
+ `viceme update`. Discovery is fail-open and never changes the business
268
+ command's exit code.
194
269
 
195
270
  ```bash
196
271
  viceme update --check
197
272
  viceme update
198
273
  ```
199
274
 
200
- Released npm and standalone installations check their own authoritative release
201
- channel at most once every 24 hours. When a newer version is cached, normal JSON
202
- responses include `_notice.update` with the current version, latest version, and
203
- the recovery command `viceme update`. Discovery is fail-open and never changes
204
- the business command's exit code. Set `VICEME_NO_UPDATE_NOTIFIER=1` only for
205
- automation that intentionally suppresses this hint.
206
-
207
- Bootstrap installations read the selected region's official S3 release index,
208
- verify the exact binary checksum, refresh the matching official Skills, and
209
- activate the binary atomically. npm installations update through the exact npm
210
- package version. Updates never inherit `VICEME_ACCESS_TOKEN` into child
211
- processes.
212
-
213
- Binary or npm-launcher activation, all three official Skills, and profile config are
214
- one recoverable local generation. Standalone and npm activation share an outer
215
- activation lock, a delegated member-commit lock, and a durable active-generation
216
- record containing the semantic version, installation method, and immutable
217
- identity. One startup coordinator inspects
218
- both standalone and npm journals regardless of which launcher entered the
219
- process. Every ordinary command reconciles an interrupted outer journal before
220
- business logic; a recovered process whose version, method, or immutable identity
221
- changed must be restarted. The lock-internal generation fence rejects a late
222
- older updater. Every mutation entry repeats the same two-journal arbitration
223
- after it owns the activation lock and before any staging or network install, so
224
- a process paused after startup cannot introduce a second recovery protocol. The
225
- first phase also rejects switching between standalone and npm
226
- before any mutation; reinstall explicitly after removing the previous generation
227
- instead of mixing recovery protocols. Every Skills/config transaction holds or
228
- revalidates the same generation authority immediately before commit. npm child
229
- activation is bound to the exact committing journal by a one-time nonce and
230
- target version; its member lock prevents a parent crash from admitting a newer
231
- generation while the child still commits. A committed target is only cleaned up
232
- after a crash—it is never reapplied or rolled back. Private
233
- journals can therefore only restore the complete previous generation or finish
234
- the complete target generation. Installation commits after local Skill/version
235
- integrity checks; an unavailable active-profile API is reported as a warning so
236
- stale profile state cannot block an upgrade. `viceme doctor` remains the
237
- explicit network-readiness check before business commands.
238
-
239
- ## First-phase implementation status
240
-
241
- The installation, device authorization, deterministic package upload, manual or
242
- suggested listing media, review confirmation, publication, cancellation, and
243
- terminal recovery paths are implemented. Local acceptance uses real Shop API,
244
- PostgreSQL, Redis, and S3-compatible storage. `make check`, npm package/cold-start
245
- tests, race tests, and Darwin/Linux/Windows amd64/arm64 builds pass. A real LLM
246
- provider sandbox remains an environment acceptance item; without credentials,
247
- analysis fails closed and the manual media path remains available.
248
-
249
- ## Security boundaries
275
+ The updater verifies the exact release, refreshes the matching official Skills,
276
+ and recovers interrupted activation as one compatible local generation.
277
+
278
+ ## Security
250
279
 
251
280
  - Local packaging rejects path traversal, absolute paths, symlinks, special
252
281
  files, oversized content, sensitive files, and common secret patterns.
253
- - The API independently validates the immutable ZIP and object metadata.
254
- - Presigned upload URLs are never written to the pending-operation store.
255
- - LLM analysis receives only filtered text, metadata, and image thumbnails.
256
- - A publication cannot become public until the current review digest, price,
257
- cover, and ordered gallery have been confirmed.
282
+ - The API independently validates the immutable ZIP, digest, and object
283
+ metadata instead of trusting a client-reported result.
284
+ - Credentials remain in the CLI's secure local store and are scoped to a
285
+ Profile and API origin; they are never part of Agent conversation state.
286
+ - Presigned upload URLs are not written to the local pending-operation store.
287
+ - Model analysis receives only filtered text, metadata, and image thumbnails.
288
+ - Public publication requires the exact reviewed copy, price, cover, and
289
+ ordered gallery to be displayed and explicitly authorized.
258
290
 
259
291
  ## Development
260
292
 
@@ -266,6 +298,6 @@ make npm-package-check
266
298
  make release-manifest
267
299
  ```
268
300
 
269
- The CLI and `viceme-shared` / `viceme-publish` / `viceme-danmaku` Skills are versioned and released
270
- together. Release artifacts are published to GitHub, npm, `s3.viceme.cn`, and
271
- `s3.viceme.ai` from the same reviewed commit.
301
+ The CLI and official Agent Skills are versioned and released together. GitHub,
302
+ npm, `s3.viceme.cn`, and `s3.viceme.ai` artifacts come from the same reviewed
303
+ commit.
package/README.zh.md CHANGED
@@ -1,34 +1,116 @@
1
- # ViceMe CLI
1
+ <h1 align="center">ViceMe CLI</h1>
2
+
3
+ <p align="center">
4
+ <strong>在熟悉的 Agent 对话中,把本地 AI Agent Skill 变成可发布的商品。</strong>
5
+ </p>
6
+
7
+ <p align="center">
8
+ 一次安装 CLI 与官方 Agent Skills,然后直接让 Codex、Claude Code 或 WorkBuddy 完成后续流程。
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="./README.md">English</a> ·
13
+ <a href="#快速开始">快速开始</a> ·
14
+ <a href="#官方-agent-skills">Agent Skills</a> ·
15
+ <a href="#命令参考">命令参考</a> ·
16
+ <a href="#安全边界">安全边界</a>
17
+ </p>
18
+
19
+ ## 为什么使用 ViceMe CLI?
20
+
21
+ - **Agent 原生**——用自然语言描述目标,不需要记住一整套发布命令和状态流转。
22
+ - **一次安装**——原生 CLI 与匹配版本的官方 Skills 一起安装到 Codex、Claude
23
+ Code、WorkBuddy,并写入 `~/.agents/skills` 兼容目录。
24
+ - **由用户控制发布**——模型可以建议双语文案和素材,但价格与最终公开发布只能由
25
+ 用户决定。
26
+ - **确定且可恢复**——CLI 在本地校验和打包;中断后继续同一个发布任务,响应丢失
27
+ 也不会重复创建商品。
28
+ - **同时适合 Agent 和自动化**——稳定 JSON、错误码、Dry Run 和明确状态让每个动作
29
+ 都可检查、可复现。
30
+ - **默认安全**——设备码授权、绑定 Origin 的 Profile、本地 Secret 检查、不可变摘要
31
+ 和已验证上传共同保护发布链路。
32
+
33
+ ## 能做什么
34
+
35
+ | 能力 | ViceMe 提供的内容 |
36
+ | --- | --- |
37
+ | 发布 Skill | 校验本地 Skill 目录或 ZIP、设置人民币价格、上传、审核平台建议,并发布付费商品。 |
38
+ | 构建组件 | 让 Agent 把随包提供的生产级弹幕蓝图接入 React 与 Tailwind CSS v4 项目。 |
39
+ | 配置 Agent | 把 CLI 与官方 Skills 作为同一个兼容版本安装、登录、更新、诊断和修复。 |
40
+ | 安全恢复 | 网络或进程中断后继续原发布任务,不重复上传和创建商品。 |
41
+
42
+ ## 快速开始
43
+
44
+ ### 使用 AI Agent(推荐)
45
+
46
+ 1. 一次安装 CLI 与官方 Skills:
47
+
48
+ ```bash
49
+ curl -fsSL https://s3.viceme.cn/start/install.sh | sh
50
+ ```
51
+
52
+ 2. 新建一个 Codex、Claude Code 或 WorkBuddy 对话,让 Agent 重新发现刚安装的
53
+ Skills。
54
+ 3. 附上本地 Skill 目录或 ZIP,然后直接说:
55
+
56
+ > 帮我把这个 Skill 以人民币 1 元发布到 ViceMe。
57
+
58
+ Agent 会先检查登录状态,在整个流程中固定使用同一个 Profile,再校验 Skill,并在
59
+ 上传前询问许可。ViceMe 完成双语文案和素材建议后,Agent 会把完整审核稿和图片直接
60
+ 展示出来,最后只询问一次是否确认并立即公开发布。
61
+
62
+ ```text
63
+ 本地 Skill → 登录 → 校验 → 确认价格 → 上传 → 平台分析
64
+ → 图文审核 → 确认并发布 → 公开商品链接
65
+ ```
66
+
67
+ 最初的“帮我发布”不等于授权公开上架。只有完整审核稿已经展示、用户明确确认后,
68
+ 商品才会公开。
69
+
70
+ ### 直接使用终端
2
71
 
3
- ViceMe CLI 是官方 ViceMe Agent Skills 的确定性本地执行器。Codex、Claude
4
- Code 和 WorkBuddy 通过 Skills 引导用户;CLI 负责安装、设备授权、本地检查、
5
- 确定性打包、上传、审核和发布。
72
+ ```bash
73
+ # 检查安装和当前账户。
74
+ viceme doctor
75
+ viceme auth status
6
76
 
7
- [English](./README.md)
77
+ # 仅在未登录时发起设备码登录。
78
+ viceme auth login
79
+
80
+ # 只读校验,不上传任何内容。
81
+ viceme skill inspect --path ./my-skill
82
+
83
+ # 预览确定性发布包与人民币 1 元的价格计划。
84
+ viceme skill publish --path ./my-skill --price-minor 100 --dry-run
85
+ ```
8
86
 
9
87
  ## 安装
10
88
 
11
- 官方 Bootstrap 从同一个不可变 Release 一次安装原生 CLI 和三个官方 Skills。
89
+ 官方 Bootstrap 从同一个不可变 Release 一次安装原生 CLI 和全部官方 Agent Skills。
12
90
 
13
- 中国区 macOS / Linux
91
+ ### macOS Linux
92
+
93
+ 中国区:
14
94
 
15
95
  ```bash
16
96
  curl -fsSL https://s3.viceme.cn/start/install.sh | sh
17
97
  ```
18
98
 
19
- 海外 macOS / Linux:
99
+ 海外:
20
100
 
21
101
  ```bash
22
102
  VICEME_REGION=global sh -c "$(curl -fsSL https://s3.viceme.ai/start/install.sh)"
23
103
  ```
24
104
 
25
- 中国区 Windows PowerShell
105
+ ### Windows PowerShell
106
+
107
+ 中国区:
26
108
 
27
109
  ```powershell
28
110
  irm https://s3.viceme.cn/start/install.ps1 | iex
29
111
  ```
30
112
 
31
- 海外 Windows PowerShell:
113
+ 海外:
32
114
 
33
115
  ```powershell
34
116
  $env:VICEME_REGION="global"; irm https://s3.viceme.ai/start/install.ps1 | iex
@@ -40,8 +122,7 @@ $env:VICEME_REGION="global"; irm https://s3.viceme.ai/start/install.ps1 | iex
40
122
  npx --yes @viceme-ai/cli@latest install
41
123
  ```
42
124
 
43
- 安装器始终写入兼容 fallback `~/.agents/skills`,并为检测到的 Agent 写入
44
- 各自的用户级目录:
125
+ 安装器始终写入兼容目录 `~/.agents/skills`,并为检测到的 Agent 写入原生用户目录:
45
126
 
46
127
  | Agent | 原生目录 |
47
128
  | --- | --- |
@@ -49,12 +130,45 @@ npx --yes @viceme-ai/cli@latest install
49
130
  | Claude Code | `~/.claude/skills` |
50
131
  | WorkBuddy | `~/.workbuddy/skills` |
51
132
 
52
- 可通过 `viceme install --agent codex`、`claude`、`workbuddy` 或 `agents`
53
- 指定目标。安装或修复后运行 `viceme doctor`。
133
+ 可通过 `viceme install --agent codex`、`claude`、`workbuddy` 或 `agents` 指定
134
+ 目标。安装或修复后运行 `viceme doctor`。
135
+
136
+ ## 官方 Agent Skills
137
+
138
+ | Skill | 适用场景 |
139
+ | --- | --- |
140
+ | `viceme-shared` | 安装 ViceMe、设备码登录、管理 Profile、更新、诊断或修复本地环境。 |
141
+ | `viceme-publish` | 把本地 Skill 目录或 ZIP 校验、上传、审核、恢复或发布为 ViceMe 付费商品。 |
142
+ | `viceme-danmaku` | 在已有项目中构建或适配随包提供的生产级 React 与 Tailwind CSS v4 弹幕组件。 |
143
+
144
+ Agent Skills 负责对话流程和授权规则;CLI 负责确定性本地操作与 API 调用。因此 Agent
145
+ 可以解释每一步决策,而相同的命令契约仍可在终端或自动化中复现。
146
+
147
+ ## Skill 发布流程
148
+
149
+ 当前发布流程接受一个包含根级 `SKILL.md` 的本地目录,或一个本地 ZIP。常见的、只有
150
+ 一层外包装目录的 GitHub ZIP 会被自动规范化。不接受远程 URL 和多 Skill 批量包。
151
+
152
+ | 阶段 | 责任边界 |
153
+ | --- | --- |
154
+ | 登录 | 解析包之前先完成设备码授权;所有后续命令固定使用同一个 Profile 与 API Origin。 |
155
+ | 校验 | 本地拒绝危险路径、特殊文件、超限内容、敏感文件和常见 Secret 模式。 |
156
+ | 定价与上传 | 用户以“分”为单位提供人民币价格,并明确允许上传确定性发布包。 |
157
+ | 平台分析 | ViceMe 建议中英文短简介、中英文使用说明、封面和有序画廊;建议不能替代用户决定。 |
158
+ | 图文审核 | Agent 展示精确文案、价格、封面和所有画廊图片。短简介最大显示宽度为 30:ASCII 计 1,中文及其他非 ASCII 计 2。 |
159
+ | 公开发布 | 用户只需做一次最终明确确认;随后完成审核确认并立即、不可逆地公开上架。 |
160
+
161
+ 上传或响应中断后,继续原来的 Publication:
162
+
163
+ ```bash
164
+ viceme --profile <publication-profile> skill publish --resume <publication-id>
165
+ ```
166
+
167
+ 不能因为上一次响应未知就创建第二个 Publication,应先查询或恢复原 ID。
54
168
 
55
169
  ## 登录与 Profile
56
170
 
57
- 每个 Profile 绑定一个区域、一个 API Endpoint 和一个通过设备码授权的账户。未配置
171
+ 每个 Profile 绑定一个区域、一个 API Endpoint 和一个通过设备码授权的账户。没有
58
172
  自定义 Endpoint 的 Profile 使用对应区域的 ViceMe 官方 API。
59
173
 
60
174
  ```bash
@@ -66,163 +180,89 @@ viceme profile list
66
180
  viceme profile use default
67
181
  ```
68
182
 
69
- 需要清除历史/测试 Profile 及其本地凭据时,使用一次批量清理:
70
-
71
- ```bash
72
- viceme profile remove --all --yes
73
- ```
74
-
75
- 该破坏性命令会重新创建一个未登录的 `default` Profile,不会让 CLI 留在无有效
76
- Profile 的状态。
77
-
78
- 连接测试环境或私有 ViceMe 部署时,先把 Endpoint 持久化到独立 Profile,再登录:
183
+ 连接测试环境或私有部署时,使用通用 HTTPS 占位地址创建独立 Profile,再登录:
79
184
 
80
185
  ```bash
81
186
  viceme profile add \
82
- --name shop-dev \
187
+ --name private-cn \
83
188
  --region cn \
84
- --api-base-url https://viceme-shop-web.preview.tencent-zeabur.cn/api \
189
+ --api-base-url https://api.example.com \
85
190
  --use
86
191
  viceme auth login
87
192
  ```
88
193
 
89
- `profile list` 会显示实际生效的 Endpoint。`VICEME_API_BASE_URL` 仅保留为单进程
90
- CI / 调试覆盖,不会被写入 Profile。远程自定义 Endpoint 必须使用 HTTPS;只有
91
- localhostloopback 本地开发可以使用 HTTP。要修改 Endpoint,应删除并重新创建
92
- Profile,不能把既有凭据静默迁移到另一个 Origin。
194
+ `VICEME_API_BASE_URL` 只是单进程 CI / 调试覆盖,不是 Profile 状态。远程自定义
195
+ Endpoint 必须使用 HTTPS;只有 localhost loopback 本地开发可以使用 HTTP。
196
+ 凭据按 Profile API Origin 隔离;Agent 不能因为另一个 Profile 已登录就擅自切换。
93
197
 
94
- Agent 无法在同一个回合等待浏览器授权时使用分段流程:
198
+ Agent 无法在同一回合等待浏览器授权时使用分段流程:
95
199
 
96
200
  ```bash
97
201
  viceme auth login --no-wait
98
202
  viceme auth login --device-code <device-code>
99
203
  ```
100
204
 
101
- 用户在浏览器完成授权。不要在对话中复制 Access Token。凭据按 Profile 和 API
102
- Origin 隔离,因此为新 Endpoint 创建 Profile 后需要单独登录一次。
103
-
104
- ## 发布 Skill
105
-
106
- 第一版接受包含 `SKILL.md` 的本地目录或本地 ZIP,不接受 GitHub URL、远程下载和
107
- 多 Skill 批量包。
108
-
109
- 解析 Skill 之前先完成登录,并把后续所有命令固定到 `auth status` 返回的 Profile。
110
- Agent 不得因为另一个 Profile 已经登录就擅自切换过去。
111
-
112
- ```bash
113
- viceme auth status
114
- viceme --profile <publication-profile> auth login # 仅在未登录时执行
115
- ```
116
-
117
- 只读检查:
118
-
119
- ```bash
120
- viceme --profile <publication-profile> skill inspect --path ./my-skill
121
- ```
122
-
123
- 查看确定性发布包和价格计划:
124
-
125
- ```bash
126
- viceme --profile <publication-profile> skill publish --path ./my-skill --price-minor 100 --dry-run
127
- ```
205
+ 用户在浏览器完成授权。不要在对话中复制 Access Token
128
206
 
129
- 开始可恢复的上传与 Listing 分析:
207
+ ## 命令参考
130
208
 
131
- ```bash
132
- viceme --profile <publication-profile> skill publish --path ./my-skill --price-minor 100
133
- ```
134
-
135
- 之后以服务端 Publication 状态为准:
136
-
137
- ```bash
138
- viceme publication get <publication-id>
139
- viceme publication wait <publication-id>
140
- viceme publication review <publication-id>
141
- viceme publication asset upload <publication-id> --role cover --path ./cover.png
142
- viceme publication asset upload <publication-id> --role gallery --path ./demo.png
143
- viceme publication update <publication-id> --input ./listing-draft.json
144
- viceme publication confirm <publication-id> --review-digest <digest>
145
- viceme publication publish <publication-id> --review-digest <digest>
146
- ```
147
-
148
- 模型会建议 `summaryZhCn`、`summaryEnUs`、根据已验证 `SKILL.md` 生成的
149
- `usageInstructionsZhCn`、`usageInstructionsEnUs` 和包内图片,但不能替用户确认,也不能决定价格。
150
- 每版短简介的最大显示宽度为 30:ASCII 计 1,中文及其他非 ASCII 计 2。Agent 必须把双语
151
- 短简介、中英文使用说明、价格、封面和有序展示素材的完整 Draft 展示给用户,在 `confirm` 前获得明确确认,
152
- 并在真正公开的 `publish` 前再次确认。
153
-
154
- 网络中断后继续同一个发布操作:
155
-
156
- ```bash
157
- viceme --profile <publication-profile> skill publish --resume <publication-id>
158
- ```
159
-
160
- 响应未知时不能创建第二个 Publication,应先查询或恢复原 ID。
161
-
162
- ## 输出契约
163
-
164
- 业务结果默认使用 JSON。成功时 stdout 只包含最终结果;进度和诊断只写 stderr。
209
+ | 命令 | 用途 |
210
+ | --- | --- |
211
+ | `viceme version` | 显示 CLI 与随包 Skills 版本。 |
212
+ | `viceme doctor` | 检查 CLI、当前 Profile、凭据、API readiness 和已安装官方 Skills。 |
213
+ | `viceme auth status` | 显示当前 Profile 是否已登录。 |
214
+ | `viceme profile list` | 显示 Profile 及其实际 API Endpoint。 |
215
+ | `viceme skill inspect --path <path>` | 无副作用校验本地 Skill。 |
216
+ | `viceme skill publish --path <path> --price-minor <fen> --dry-run` | 预览确定性发布包与价格。 |
217
+ | `viceme skill publish --path <path> --price-minor <fen>` | 上传发布包并启动 Listing 分析。 |
218
+ | `viceme publication wait <id>` | 等待后台分析,不重复上传。 |
219
+ | `viceme publication review <id>` | 读取权威双语文案、价格、选定素材和审核状态。 |
220
+ | `viceme publication asset upload ...` | 确认前替换或新增封面、画廊图片。 |
221
+ | `viceme publication update ...` | 用严格 JSON 文件替换完整 Listing Draft。 |
222
+ | `viceme publication confirm ...` | 确认当前精确 Review Digest。 |
223
+ | `viceme publication publish ...` | 公开已经确认的 Listing。 |
224
+ | `viceme update` | 同时更新 CLI 与匹配版本的官方 Skills。 |
225
+
226
+ 运行 `viceme <command> --help` 查看完整参数和 JSON 字段。
227
+
228
+ ## 输出与更新
229
+
230
+ 业务结果默认使用 JSON。成功时 stdout 只包含最终结果,进度和诊断写入 stderr。
231
+ 失败使用非零退出码和稳定的 `error.code`,因此 Agent 与自动化不需要解析 message 文本。
165
232
 
166
233
  ```json
167
234
  {
168
235
  "ok": true,
169
236
  "data": {},
170
237
  "meta": {
171
- "cliVersion": "0.10.1",
238
+ "cliVersion": "<version>",
172
239
  "requestId": "optional"
173
240
  }
174
241
  }
175
242
  ```
176
243
 
177
- 失败使用非零退出码和稳定的 `error.code`。Agent Skills 只能依据退出码、`ok`、
178
- `error.code` `retryable` 分支,不能解析 message 文本。
179
-
180
- ## 更新
244
+ 正式安装最多每 24 小时读取一次权威发布渠道。发现新版本后,普通 JSON 响应通过
245
+ `_notice.update` 返回当前版本、最新版本和 `viceme update`。检查失败不会改变业务
246
+ 命令的退出码。
181
247
 
182
248
  ```bash
183
249
  viceme update --check
184
250
  viceme update
185
251
  ```
186
252
 
187
- 正式发布的 npm 与 Standalone 安装会分别读取自身的权威发布渠道,并将检查频率限制为
188
- 每 24 小时最多一次。缓存发现新版本后,普通命令的 JSON 响应会通过 `_notice.update`
189
- 返回当前版本、最新版本与恢复命令 `viceme update`。检查失败不会改变业务命令的退出码;
190
- 只有明确不需要提示的自动化才应设置 `VICEME_NO_UPDATE_NOTIFIER=1`。
191
-
192
- Bootstrap 安装会读取当前 Profile 所在区域的官方 S3 Release 索引,校验精确二进制
193
- Checksum,用新二进制修复同版本官方 Skills 后原子激活。npm 安装通过精确 npm 包版本
194
- 更新。更新子进程不会继承 `VICEME_ACCESS_TOKEN`。
195
-
196
- 二进制或 npm launcher、三份官方 Skills 和 Profile 配置属于同一个可恢复的本地版本。
197
- Standalone 与 npm 激活共用外层激活锁、委托成员提交锁,并持久化包含语义版本、安装方式和不可变身份的
198
- active-generation。唯一的启动协调器不区分当前入口,始终检查 Standalone 和 npm 两类 Journal。
199
- 所有普通命令必须先恢复未完成的外层 Journal;如果恢复后当前进程的版本、安装方式或不可变身份
200
- 不再等于 active generation,本次命令会停止并要求重新执行。锁内 generation fence 会拒绝迟到
201
- 的旧版本更新。每个真实写入口拿到 activation lock 后、开始暂存或联网安装前,都会再次对两类
202
- Journal 做相同仲裁,避免通过启动检查后暂停的旧进程引入第二套恢复协议。第一阶段也会在任何
203
- 文件变更前拒绝 Standalone 与 npm 的原地切换,不能把两套
204
- 恢复协议混合使用。每个 Skills/配置事务都必须持有同一代际权限,或在最终提交前重新验证。
205
- npm 内部安装子进程必须匹配 Journal 中的一次性 nonce、目标版本和 Skill 目标;成员提交锁会阻止
206
- 父进程崩溃后,新一代在旧子进程尚未提交完毕时进入。目标一旦越过语义提交点,崩溃恢复只能完成本地清理,不能重新联网安装或回滚。私有
207
- Journal 因此只能完整恢复上一代或完整完成目标版本。安装提交前必须通过本地 Skill/版本完整性
208
- 校验;当前 Profile 的 API 不可达只产生警告,避免旧 Profile 阻断升级。正式业务命令前再用
209
- `viceme doctor` 明确检查网络 readiness。
210
-
211
- ## 第一阶段实施状态
212
-
213
- 安装、设备码授权、确定性包上传、建议或人工展示素材、Review 确认、发布、取消和终态恢复均已
214
- 实现。本地验收使用真实 Shop API、PostgreSQL、Redis 和 S3 兼容存储;`make check`、npm
215
- 打包与冷启动、race test,以及 Darwin/Linux/Windows 的 amd64/arm64 构建均通过。真实 LLM
216
- Provider sandbox 仍属于部署环境验收项;没有凭据时分析 fail closed,人工素材流程仍可完成发布。
253
+ 更新器会校验精确 Release、刷新匹配版本的官方 Skills,并把中断的激活过程恢复成
254
+ 一个完整、兼容的本地版本。
217
255
 
218
256
  ## 安全边界
219
257
 
220
258
  - 本地打包拒绝路径穿越、绝对路径、符号链接、特殊文件、超限内容、敏感文件和常见
221
259
  Secret 模式。
222
- - API 独立校验不可变 ZIP 与对象元数据,不能信任 CLI 自报结果。
260
+ - API 独立校验不可变 ZIP、Digest 与对象元数据,不信任客户端自报结果。
261
+ - 凭据保存在 CLI 的本地安全存储中,并绑定 Profile 与 API Origin,不进入 Agent
262
+ 对话状态。
223
263
  - Pending operation 不保存预签名上传 URL。
224
- - LLM 只接收经过筛选的文本、元数据和图片缩略图。
225
- - 未确认当前 Review Digest、价格、封面和有序展示素材时,Publication 不能公开。
264
+ - 模型分析只接收筛选后的文本、元数据和图片缩略图。
265
+ - 公开发布前必须展示并明确授权当前精确文案、价格、封面和有序画廊。
226
266
 
227
267
  ## 开发
228
268
 
@@ -234,5 +274,5 @@ make npm-package-check
234
274
  make release-manifest
235
275
  ```
236
276
 
237
- CLI、`viceme-shared`、`viceme-publish` `viceme-danmaku` 同版本发布。GitHub、npm
238
- `s3.viceme.cn` 与 `s3.viceme.ai` 的产物都来自同一个已评审 Commit。
277
+ CLI 与官方 Agent Skills 同版本发布。GitHub、npm、`s3.viceme.cn` 和
278
+ `s3.viceme.ai` 的产物来自同一个已评审 Commit。
package/checksums.txt CHANGED
@@ -1,6 +1,6 @@
1
- 137e75353d159cde61ac32bc91d3ce3113cbdc12df5d57988978583ae7ae83fc viceme_0.13.2_darwin_amd64
2
- 1a381f15bc0b6dc75c3f7fea59e526abe7a0bf750721818fbf246fb548e06d58 viceme_0.13.2_darwin_arm64
3
- c6d81285653ce89250ed78c5876b229decf46b09e6f32a3b92b77607c2cdc67d viceme_0.13.2_linux_amd64
4
- 9b1933186cbe9fdae463564d7b98f0c0b92182789c9625d6f13f04252cbb5fe1 viceme_0.13.2_linux_arm64
5
- df476ed1399e000790785f2688d90f7b99e9b1e8512e260eb35f00f127055b3e viceme_0.13.2_windows_amd64.exe
6
- a948177283efc0b79e4c4e29cb8a95a6387ebdf28ac7447d1bc37f8d9eed3c79 viceme_0.13.2_windows_arm64.exe
1
+ ee90f715e854583ee7de0b52781efc0ed874b2f585eda35ffe7d0f2dfb88c41c viceme_0.13.3_darwin_amd64
2
+ 219127b27b84175e10fc0e715d1a2d85e29490e2c1d5094dcaba68983afaf62b viceme_0.13.3_darwin_arm64
3
+ 7132d24f754d1f4ee297d25f637d9400d30f3d41ea52989709cfdfc0ab552f3c viceme_0.13.3_linux_amd64
4
+ 7f132d392cf1f61e2ba07ab487251d3a9b9ae95ea31d6119f3e810bbdf7cd9a4 viceme_0.13.3_linux_arm64
5
+ fbea228d82623c7496de8ffc3bb1473931c37ac9f908380b1bc2f6bb91cdd3ab viceme_0.13.3_windows_amd64.exe
6
+ f58dcf648cd69f9c45741c2c54e8d3ffa424cc97415d223c27c44c92ee8be97e viceme_0.13.3_windows_arm64.exe
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viceme-ai/cli",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Install the ViceMe creator CLI and official Agent Skills",
5
5
  "type": "module",
6
6
  "bin": {