superun-ai-cli 0.1.0 → 0.1.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/INSTALL.md +24 -12
- package/README.en.md +32 -18
- package/README.md +32 -18
- package/dist/api/agent-command-api.d.ts +1 -1
- package/dist/api/agent-command-api.js +2 -1
- package/dist/api/agent-command-api.js.map +1 -1
- package/dist/commands/chat/message.js +1 -1
- package/dist/commands/chat/message.js.map +1 -1
- package/dist/commands/chat/state.js +3 -0
- package/dist/commands/chat/state.js.map +1 -1
- package/dist/commands/chat/style.js +7 -1
- package/dist/commands/chat/style.js.map +1 -1
- package/dist/commands/chat/wait.js +2 -1
- package/dist/commands/chat/wait.js.map +1 -1
- package/dist/commands/shared.d.ts +1 -0
- package/dist/commands/shared.js +1 -0
- package/dist/commands/shared.js.map +1 -1
- package/dist/contracts/cli-output.d.ts +36 -0
- package/dist/conversation/demo-preview.d.ts +1 -0
- package/dist/conversation/demo-preview.js +10 -1
- package/dist/conversation/demo-preview.js.map +1 -1
- package/dist/conversation/next-actions.d.ts +1 -1
- package/dist/conversation/next-actions.js +38 -10
- package/dist/conversation/next-actions.js.map +1 -1
- package/dist/conversation/session-waiter.d.ts +3 -0
- package/dist/conversation/session-waiter.js +24 -3
- package/dist/conversation/session-waiter.js.map +1 -1
- package/dist/conversation/task-progress-reader.d.ts +10 -0
- package/dist/conversation/task-progress-reader.js +188 -0
- package/dist/conversation/task-progress-reader.js.map +1 -0
- package/dist/conversation/task-progress.d.ts +13 -0
- package/dist/conversation/task-progress.js +214 -0
- package/dist/conversation/task-progress.js.map +1 -0
- package/dist/interactions/parsers/style-selection.d.ts +4 -0
- package/dist/interactions/parsers/style-selection.js +8 -0
- package/dist/interactions/parsers/style-selection.js.map +1 -1
- package/dist/output/writer.d.ts +4 -0
- package/dist/output/writer.js +19 -1
- package/dist/output/writer.js.map +1 -1
- package/dist/runtime.d.ts +4 -2
- package/dist/runtime.js +122 -23
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/INSTALL.md
CHANGED
|
@@ -20,25 +20,25 @@ npm --version
|
|
|
20
20
|
|
|
21
21
|
如果 `superun-ai` 已存在,先检查其路径及 `superun-ai version`,区分 npm 安装和源码目录链接。保留现有凭据及用户未提交的代码,不卸载或覆盖其他工具。
|
|
22
22
|
|
|
23
|
-
## 2.
|
|
23
|
+
## 2. 通过 npm 安装
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
`superun-ai-cli` 已发布到 npm,默认安装公开包,无需 Git、源码构建或 npm 发布账号:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
npm
|
|
28
|
+
npm install -g superun-ai-cli --registry=https://registry.npmjs.org
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
- 明确返回该包的 `E404`:说明 npm 安装尚不可用。有官方仓库访问权限时,从源码安装;没有权限时,请用户提供可访问的官方源码或等待发布。
|
|
33
|
-
- 网络、证书、认证或其他错误:保留真实错误并先排查,不把它们当成“包未发布”,也不要反复重试安装。
|
|
34
|
-
|
|
35
|
-
### 已发布:从 npm 安装
|
|
31
|
+
需要核对当前发布版本时,可以只读查询:
|
|
36
32
|
|
|
37
33
|
```bash
|
|
38
|
-
npm
|
|
34
|
+
npm view superun-ai-cli name version dist-tags --registry=https://registry.npmjs.org --json
|
|
39
35
|
```
|
|
40
36
|
|
|
41
|
-
|
|
37
|
+
- 安装成功后继续验证命令,再引导用户登录 Superun。
|
|
38
|
+
- 如果返回 `E404`、网络、证书、权限或其他错误,如实说明并检查 npm 官方 Registry 的访问情况,不自动切换包名、镜像源或源码安装方式。
|
|
39
|
+
- 更新现有安装时,保留用户的 Superun 凭据;不要求重新导入 PAT。
|
|
40
|
+
|
|
41
|
+
### 可选:用户明确要求从源码安装
|
|
42
42
|
|
|
43
43
|
需要 Git 和仓库访问权限。先确认安装目录;若已有本仓库,复用该目录并检查 `git status` 和 remote,不覆盖未提交改动、不强制切换分支。
|
|
44
44
|
|
|
@@ -52,9 +52,9 @@ npm run build
|
|
|
52
52
|
npm install -g .
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
逐条执行,失败即停。`npm run build` 会先清理 `dist` 再构建。仓库访问失败时,说明需要的访问权限,不索取 GitHub 凭据明文。安装任务不修改包名、版本或发包配置,也不执行 `npm publish`。
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
源码安装可能把全局命令链接到当前目录,因此应保留源码目录。以后修改源码时重新构建;全局命令若不是源码链接,再执行 `npm install -g .`。源码安装与 npm 安装均遵循 npm `latest` 版本检查,不绕过校验。
|
|
58
58
|
|
|
59
59
|
## 3. 单独验证命令安装
|
|
60
60
|
|
|
@@ -67,6 +67,8 @@ superun-ai version
|
|
|
67
67
|
|
|
68
68
|
确认命令可以启动。若提示找不到命令,检查当前终端的 `PATH`、所用 Node.js 安装及 npm 全局目录;不要把它误判为业务登录失败。不要通过全量打印环境变量来排查,避免泄露凭据。
|
|
69
69
|
|
|
70
|
+
业务命令会先检查 npm `latest`,本地版本不一致时自动安装并继续;也可以用 `superun-ai update` 主动同步。若版本校验失败,先处理 Registry 访问或安装错误,不清除 Superun 凭据。
|
|
71
|
+
|
|
70
72
|
## 4. 引导用户登录
|
|
71
73
|
|
|
72
74
|
先查询本地配置状态:
|
|
@@ -115,4 +117,14 @@ superun-ai --help
|
|
|
115
117
|
|
|
116
118
|
只在用户随后提出创作需求时才调用 `chat create`。安装配置本身不代表用户授权创建项目、启用插件、发布应用、改变站点可见性或发 npm 包。
|
|
117
119
|
|
|
120
|
+
## 7. 用户要求卸载时
|
|
121
|
+
|
|
122
|
+
仅在用户明确要求卸载时执行。先清除本地 PAT,成功后再卸载程序;清理失败时先处理错误,不跳过清理:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
superun-ai auth logout && npm uninstall -g superun-ai-cli
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
`npm uninstall` 不会自动执行 `logout`。如果配置过 `SUPERUN_PAT`,提醒用户在自己的终端执行 `unset SUPERUN_PAT`,并从设置它的 Shell 配置或运行环境中移除;子进程无法替用户清除父终端的环境变量。不要输出变量值。此流程不注销浏览器登录,也不撤销服务端 PAT。
|
|
129
|
+
|
|
118
130
|
<!-- @author xiuyu.yi -->
|
package/README.en.md
CHANGED
|
@@ -8,21 +8,31 @@ superun-ai-cli is a command-line tool for project management, conversational cre
|
|
|
8
8
|
|
|
9
9
|
Requires Node.js 22 or newer and npm.
|
|
10
10
|
|
|
11
|
-
>
|
|
11
|
+
> Available on [npm](https://www.npmjs.com/package/superun-ai-cli). Install with npm by default; cloning or compiling the source is not required.
|
|
12
12
|
|
|
13
13
|
### 🤖 Install and configure with an AI agent (recommended)
|
|
14
14
|
|
|
15
15
|
Send the following prompt to Claude Code, Codex, or another AI coding agent. The agent will follow the [installation guide](INSTALL.md) to check your environment, install the CLI, and guide you through login and verification:
|
|
16
16
|
|
|
17
17
|
```text
|
|
18
|
-
Read https://raw.githubusercontent.com/AiGuangInc/superun-ai-cli/refs/heads/main/INSTALL.md and help me install and configure superun-ai-cli.
|
|
18
|
+
Read https://raw.githubusercontent.com/AiGuangInc/superun-ai-cli/refs/heads/main/INSTALL.md and help me install and configure superun-ai-cli. Install from npm. Let me complete Superun login in my browser; do not request or display my PAT in plain text.
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
If the agent already has this repository open, ask it to read `INSTALL.md` in the repository root.
|
|
22
22
|
|
|
23
23
|
### Manual installation
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g superun-ai-cli --registry=https://registry.npmjs.org
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`-g` installs the package globally. Once the global command directory is on your `PATH`, you can run `superun-ai` from any directory. Installing this public package does not require an npm publishing account; sign in to Superun after installation.
|
|
30
|
+
|
|
31
|
+
The package name is `superun-ai-cli`; the shell command is `superun-ai`.
|
|
32
|
+
|
|
33
|
+
### Optional: install from source
|
|
34
|
+
|
|
35
|
+
If you need to change the CLI source, clone the repository with Git and build it:
|
|
26
36
|
|
|
27
37
|
```bash
|
|
28
38
|
git clone https://github.com/AiGuangInc/superun-ai-cli.git
|
|
@@ -32,17 +42,7 @@ npm run build
|
|
|
32
42
|
npm install -g .
|
|
33
43
|
```
|
|
34
44
|
|
|
35
|
-
If you already have a local checkout, use that directory and preserve any uncommitted changes.
|
|
36
|
-
|
|
37
|
-
After the package is published to npm, install it directly without cloning or compiling the source:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install -g superun-ai-cli
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`-g` installs the package globally. Once the global command directory is on your `PATH`, you can run `superun-ai` from any directory.
|
|
44
|
-
|
|
45
|
-
The package name is `superun-ai-cli`; the shell command is `superun-ai`.
|
|
45
|
+
If you already have a local checkout, use that directory and preserve any uncommitted changes. The build clears `dist` before generating files. Keep the source directory if your global command is linked to it.
|
|
46
46
|
|
|
47
47
|
## Help
|
|
48
48
|
|
|
@@ -76,7 +76,7 @@ superun-ai
|
|
|
76
76
|
│ ├── style # Manage creative styles
|
|
77
77
|
│ │ ├── generate <sessionId> # Generate style candidates
|
|
78
78
|
│ │ ├── list <sessionId> # List style batches
|
|
79
|
-
│ │ └── select <sessionId> <choiceId> # Choose a
|
|
79
|
+
│ │ └── select <sessionId> <choiceId> # Choose a style and generate the development plan
|
|
80
80
|
│ ├── demo <sessionId> # View the demo and record it as viewed
|
|
81
81
|
│ ├── develop <sessionId> # Keep the demo and plan development
|
|
82
82
|
│ ├── interaction # Answer or skip interactions
|
|
@@ -147,6 +147,12 @@ superun-ai chat stop <sessionId>
|
|
|
147
147
|
|
|
148
148
|
Write commands support `--no-wait`, returning as soon as the request is accepted. `chat wait` waits for input, a selection, or task completion. When an explicit local waiting limit is reached, it returns the current state with `waitTimedOut: true`; you can continue querying. Ctrl+C only ends local waiting. Use `chat stop` explicitly to stop a remote task.
|
|
149
149
|
|
|
150
|
+
Chat task responses also include `taskProgress`. Its `tasks` list contains all known active main tasks, consultations, background tasks, and style candidates in the current project; `markdown` is a ready-to-display progress card, and `revision` identifies the visible progress snapshot. Background tasks are deduplicated by identity. Tasks belonging to other members or with unknown ownership expose status only. Progress uses Glow message text and tool activity, with independent background-task refreshes; it does not add feature-list or Todo queries or estimate percentages. Incomplete reads are marked with `complete: false` and `warnings`.
|
|
151
|
+
|
|
152
|
+
While `chat wait` or a write command is waiting, changed progress is emitted as newline-delimited JSON on stderr with `event: "task_progress"`; the card is in `data.taskProgress.markdown`. Host agents should read output from the running command and display every task. Update the same card using `taskProgress.id` when supported; otherwise display only changed snapshots. Progress events are not final results: continue waiting on the same process without interrupting or resubmitting the task. stdout still emits a single command result.
|
|
153
|
+
|
|
154
|
+
Overall completion retains the existing session, message, interaction, and background-work rules. `taskProgress` is display-only: a completed item or changed card does not end the wait, and item counts do not determine overall completion. Existing early style-preview notifications, local timeouts, and user-input behavior remain unchanged. Pass `--progress-revision` with the last displayed revision to avoid duplicates across commands; `chat state` and `chat style list` also accept this option.
|
|
155
|
+
|
|
150
156
|
The CLI connects to Superun by default. Use the global `--endpoint <URL>` option to specify an API endpoint and `--locale <language>` to choose the response language.
|
|
151
157
|
|
|
152
158
|
## Answering interactions
|
|
@@ -195,6 +201,10 @@ superun-ai chat publish visibility <sessionId> private
|
|
|
195
201
|
|
|
196
202
|
Style generation defaults to two candidates and supports one to four. Use the returned `choiceId` to select a style. Publishing uses the returned `encryptedId` and tracks the selected version's deployment. Plugin IDs come from `chat plugin list`.
|
|
197
203
|
|
|
204
|
+
Style waiting returns progress as soon as one candidate succeeds and its screenshot is ready, while the batch remains `RUNNING`. Show that candidate and its screenshot link immediately, then follow `QUERY_STYLES` to keep checking the remaining candidates. For example: “Style B is ready; waiting for style A.” Labels A/B/C/D correspond to the original `index` 0/1/2/3, regardless of completion order. Announce each `choiceId` only once and wait for the user's selection after the batch finishes.
|
|
205
|
+
|
|
206
|
+
After the user selects a style, `chat style select` waits for its demo, completes the demo transition and preserves the version internally, then generates the development plan. Show only that the selected style is being used to prepare the plan, without demo-stage prompts or additional questions. Keep the existing plan content and confirmation/adjustment guidance unchanged; the feature-selection step follows plan approval. After `--no-wait` or a local timeout, follow `CONTINUE_STYLE_PLANNING` with `chat wait` to check the current state and resume the transition. `chat state` remains read-only, and existing projects can still use `chat demo` and `chat develop`.
|
|
207
|
+
|
|
198
208
|
After the user explicitly asks to launch the site, use `chat publish status <sessionId> --for-launch` to get the latest pending version from the publishing panel. Show its `changeLog` unchanged, then follow the returned publishing command without a second confirmation. For a deployment already in progress, only track progress. If deployment is complete but the site is not public, finish the visibility step and return the public URL. `status` is always read-only; an ordinary status query does not grant publishing authorization.
|
|
199
209
|
|
|
200
210
|
`chat publish start --indexing allow|deny` controls search-engine indexing, not visitor access. Change site visibility with `chat publish visibility`. If the service requires acknowledgment of cloud costs, review them before explicitly passing `--acknowledge-cloud-fee`.
|
|
@@ -239,9 +249,9 @@ Business commands write one JSON result to stdout. Diagnostics and update progre
|
|
|
239
249
|
|
|
240
250
|
## Updates
|
|
241
251
|
|
|
242
|
-
|
|
252
|
+
The CLI checks npm's `latest` version before business commands. If it differs from the local version, the CLI installs that version and resumes the command. If an update or verification fails, the CLI stops; resolve the reported issue before retrying. Help, `version`, and `auth logout` work offline.
|
|
243
253
|
|
|
244
|
-
|
|
254
|
+
Run `superun-ai update` to sync with npm `latest` explicitly. Source installations use the same version check. Rebuild after changing the source; if the global command is not linked to that checkout, run `npm install -g .` again.
|
|
245
255
|
|
|
246
256
|
```bash
|
|
247
257
|
superun-ai version
|
|
@@ -250,8 +260,12 @@ superun-ai update
|
|
|
250
260
|
|
|
251
261
|
## Uninstalling
|
|
252
262
|
|
|
263
|
+
Clear the local PAT first, then uninstall only if logout succeeds:
|
|
264
|
+
|
|
253
265
|
```bash
|
|
254
|
-
npm uninstall -g superun-ai-cli
|
|
266
|
+
superun-ai auth logout && npm uninstall -g superun-ai-cli
|
|
255
267
|
```
|
|
256
268
|
|
|
269
|
+
`npm uninstall` does not run `logout` automatically. If you configured `SUPERUN_PAT`, also run `unset SUPERUN_PAT` in the current shell and remove it from the shell configuration or environment that sets it. Logging out does not sign you out of the browser or revoke the server-side PAT.
|
|
270
|
+
|
|
257
271
|
<!-- @author xiuyu.yi -->
|
package/README.md
CHANGED
|
@@ -8,21 +8,31 @@ superun-ai-cli 命令行工具,支持项目管理、对话创作、交互问
|
|
|
8
8
|
|
|
9
9
|
需要 Node.js 22 或更新版本,以及 npm。
|
|
10
10
|
|
|
11
|
-
>
|
|
11
|
+
> 已发布到 [npm](https://www.npmjs.com/package/superun-ai-cli),默认通过 npm 安装,无需克隆源码或自行编译。
|
|
12
12
|
|
|
13
13
|
### 🤖 通过 AI Agent 安装配置(推荐)
|
|
14
14
|
|
|
15
15
|
把下面这段话发给 Claude Code、Codex 或其他 AI 编码 Agent,它会根据[安装指南](INSTALL.md)检查环境、安装 CLI,并引导你完成登录与验证:
|
|
16
16
|
|
|
17
17
|
```text
|
|
18
|
-
请阅读 https://raw.githubusercontent.com/AiGuangInc/superun-ai-cli/refs/heads/main/INSTALL.md,帮我安装并配置 superun-ai-cli
|
|
18
|
+
请阅读 https://raw.githubusercontent.com/AiGuangInc/superun-ai-cli/refs/heads/main/INSTALL.md,帮我安装并配置 superun-ai-cli。请通过 npm 安装,登录 Superun 时让我在浏览器完成操作,不要索取或展示 PAT 明文。
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
如果 Agent 已经打开本仓库,也可以直接让它阅读根目录的 `INSTALL.md`。
|
|
22
22
|
|
|
23
23
|
### 手动安装
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g superun-ai-cli --registry=https://registry.npmjs.org
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`-g` 表示全局安装。全局命令目录在 `PATH` 中时,可以在任意目录使用 `superun-ai`。安装公开包不需要 npm 发布账号;安装后登录的是 Superun 账号。
|
|
30
|
+
|
|
31
|
+
安装包名为 `superun-ai-cli`,使用时的命令名为 `superun-ai`。
|
|
32
|
+
|
|
33
|
+
### 可选:从源码安装
|
|
34
|
+
|
|
35
|
+
需要修改 CLI 源码时,可以使用 Git 克隆仓库并构建:
|
|
26
36
|
|
|
27
37
|
```bash
|
|
28
38
|
git clone https://github.com/AiGuangInc/superun-ai-cli.git
|
|
@@ -32,17 +42,7 @@ npm run build
|
|
|
32
42
|
npm install -g .
|
|
33
43
|
```
|
|
34
44
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
正式发布到 npm 后,可直接安装,无需源码和自行编译:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install -g superun-ai-cli
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`-g` 表示全局安装。全局命令目录在 `PATH` 中时,可以在任意目录使用 `superun-ai`。
|
|
44
|
-
|
|
45
|
-
安装包名为 `superun-ai-cli`,使用时的命令名为 `superun-ai`。
|
|
45
|
+
如果本地已有仓库,请使用已有目录,不要覆盖未提交的改动。构建会先清理 `dist` 再生成产物;全局命令若链接到源码目录,应保留该目录。
|
|
46
46
|
|
|
47
47
|
## 查看帮助
|
|
48
48
|
|
|
@@ -76,7 +76,7 @@ superun-ai
|
|
|
76
76
|
│ ├── style # 管理创作风格
|
|
77
77
|
│ │ ├── generate <sessionId> # 生成风格候选
|
|
78
78
|
│ │ ├── list <sessionId> # 查询全部风格批次
|
|
79
|
-
│ │ └── select <sessionId> <choiceId> #
|
|
79
|
+
│ │ └── select <sessionId> <choiceId> # 选择风格并自动生成研发规划
|
|
80
80
|
│ ├── demo <sessionId> # 查看演示快照并记录已查看状态
|
|
81
81
|
│ ├── develop <sessionId> # 保留演示,进入研发并生成规划
|
|
82
82
|
│ ├── interaction # 回答或跳过交互
|
|
@@ -147,6 +147,12 @@ superun-ai chat stop <sessionId>
|
|
|
147
147
|
|
|
148
148
|
写命令支持 `--no-wait`:请求被接受后立即返回。`chat wait` 等待到需要输入、需要选择或任务结束;达到本地等待时限后返回当前状态和 `waitTimedOut: true`,可以继续查询。按 Ctrl+C 只结束本地等待;远端停止需要显式执行 `chat stop`。
|
|
149
149
|
|
|
150
|
+
聊天任务的响应还包含 `taskProgress`:`tasks` 汇总当前项目中可确认的主任务、咨询、后台任务和风格方案,`markdown` 是可直接展示的可视化进度卡,`revision` 标识本次可见进度。多个活跃任务全部展示,同一后台任务按身份去重;其他成员或归属未知的任务仅展示状态。消息过程文案和工具活动来自 Glow 消息接口,后台任务状态独立刷新,不为进度新增功能清单或 Todo 查询,也不估算百分比。读取不完整时通过 `complete: false` 和 `warnings` 明示。
|
|
151
|
+
|
|
152
|
+
`chat wait` 及写命令的默认等待期间,有变化的进度通过 stderr 逐行输出 JSON 事件:`event: "task_progress"`,卡片位于 `data.taskProgress.markdown`。接入 Agent 应持续读取运行中命令的输出并展示全部任务;支持原位更新时按 `taskProgress.id` 更新同一张卡,否则只展示变化的快照。进度事件不是最终结果,应继续等待当前进程,不中断或重新提交任务。stdout 仍只输出一次命令结果。
|
|
153
|
+
|
|
154
|
+
整体结束判断沿用原有会话、消息、交互和后台工作状态逻辑,`taskProgress` 仅用于展示;单项完成或进度卡更新不会结束等待,也不以进度条目数量推断整轮完成。原有单个风格方案就绪提示、本地等待超时及用户问答行为保持不变。`--progress-revision` 可传入上次已展示版本,避免跨命令重复展示;`chat state` 与 `chat style list` 同样支持该参数。
|
|
155
|
+
|
|
150
156
|
默认连接 Superun 服务。全局参数 `--endpoint <URL>` 可指定 API 地址,`--locale <language>` 可指定响应语言。
|
|
151
157
|
|
|
152
158
|
## 回答交互
|
|
@@ -195,6 +201,10 @@ superun-ai chat publish visibility <sessionId> private
|
|
|
195
201
|
|
|
196
202
|
风格默认生成 2 个,支持 1~4 个;使用查询结果中的 `choiceId`。发布使用查询结果中的 `encryptedId`,按目标版本跟踪部署状态。插件 ID 以 `chat plugin list` 返回值为准。
|
|
197
203
|
|
|
204
|
+
风格等待会在单个方案成功且截图就绪时提前返回进度,整批状态仍为 `RUNNING`。调用方应立即提示该方案及截图链接,再按 `QUERY_STYLES` 继续查询剩余方案,例如“方案 B 已生成,继续等待方案 A”。方案 A/B/C/D 固定对应原始 `index` 0/1/2/3,同一 `choiceId` 只提示一次;全部结束后再等待用户选择。
|
|
205
|
+
|
|
206
|
+
用户选择风格后,`chat style select` 默认内部完成演示就绪等待、演示状态衔接和版本保留,再生成研发规划。调用方只提示“已采用方案 B,正在生成研发规划,完成后请你确认”,不展示演示阶段的提示或额外询问。研发规划内容及“确认规划 / 调整功能”引导保持原样,确认规划后才生成供用户选择的开发功能清单。`--no-wait` 或等待超时返回时,按 `CONTINUE_STYLE_PLANNING` 继续执行 `chat wait`;它会核对当前状态后继续衔接。`chat state` 仍只读,旧项目仍可使用 `chat demo` 和 `chat develop`。
|
|
207
|
+
|
|
198
208
|
用户明确回复“上线运营”后,使用 `chat publish status <sessionId> --for-launch` 获取 Glow 发布面板的最新待发布版本,原样展示该版本的 `changeLog`,再按返回的命令直接发布,无需二次确认。发布中的版本只跟踪进度;部署后尚未公开的站点继续执行上线动作,完成后返回正式链接。`status` 始终只读,普通状态查询不会自动获得发布授权。
|
|
199
209
|
|
|
200
210
|
`chat publish start --indexing allow|deny` 控制搜索引擎索引,不限制用户访问;站点上下线使用 `chat publish visibility`。若服务端要求确认云服务费用,了解费用后可显式传入 `--acknowledge-cloud-fee`。
|
|
@@ -239,9 +249,9 @@ superun-ai chat publish visibility <sessionId> private
|
|
|
239
249
|
|
|
240
250
|
## 更新
|
|
241
251
|
|
|
242
|
-
|
|
252
|
+
CLI 会在执行业务命令前检查 npm `latest` 版本,与本地版本不同时自动安装该版本并继续执行。更新或校验失败时会停止执行,请根据错误提示处理后重试。帮助、`version` 和 `auth logout` 可离线使用。
|
|
243
253
|
|
|
244
|
-
|
|
254
|
+
可以执行 `superun-ai update` 主动同步 npm `latest`。从源码安装也遵循相同的版本校验;修改源码后需要重新构建,如果全局命令不是链接到该目录,再执行 `npm install -g .`。
|
|
245
255
|
|
|
246
256
|
```bash
|
|
247
257
|
superun-ai version
|
|
@@ -250,6 +260,10 @@ superun-ai update
|
|
|
250
260
|
|
|
251
261
|
## 卸载
|
|
252
262
|
|
|
263
|
+
先清除本地 PAT,成功后再卸载程序:
|
|
264
|
+
|
|
253
265
|
```bash
|
|
254
|
-
npm uninstall -g superun-ai-cli
|
|
266
|
+
superun-ai auth logout && npm uninstall -g superun-ai-cli
|
|
255
267
|
```
|
|
268
|
+
|
|
269
|
+
`npm uninstall` 不会自动执行 `logout`。如果设置过 `SUPERUN_PAT`,还需在当前终端执行 `unset SUPERUN_PAT`,并从设置它的 Shell 配置或运行环境中移除。`logout` 不会注销浏览器登录,也不会撤销服务端 PAT。
|
|
@@ -23,7 +23,7 @@ export declare class AgentCommandApi {
|
|
|
23
23
|
constructor(client: ApiClient);
|
|
24
24
|
chat(input: ChatInput): Promise<JsonObject>;
|
|
25
25
|
parallel(input: JsonObject): Promise<JsonObject>;
|
|
26
|
-
viewDemo(sessionId: string): Promise<JsonObject>;
|
|
26
|
+
viewDemo(sessionId: string, planningChoiceId?: string): Promise<JsonObject>;
|
|
27
27
|
stop(sessionId: string, scope: 'own' | 'all', messageId?: string): Promise<void>;
|
|
28
28
|
reply(sessionId: string, toolId: string, toolResult?: unknown): Promise<JsonObject>;
|
|
29
29
|
replySingle(input: JsonObject): Promise<JsonObject>;
|
|
@@ -26,7 +26,7 @@ export class AgentCommandApi {
|
|
|
26
26
|
async parallel(input) {
|
|
27
27
|
return object(await this.client.call(`${PREFIX}/glowParallelChat`, input, true));
|
|
28
28
|
}
|
|
29
|
-
async viewDemo(sessionId) {
|
|
29
|
+
async viewDemo(sessionId, planningChoiceId) {
|
|
30
30
|
return object(await this.client.call(`${PREFIX}/fakeGlowChat`, {
|
|
31
31
|
sessionId,
|
|
32
32
|
content: '查看演示',
|
|
@@ -36,6 +36,7 @@ export class AgentCommandApi {
|
|
|
36
36
|
roundExtra: {
|
|
37
37
|
business_type: 'fake_confirm_generate_more_demo',
|
|
38
38
|
showConfirmGenerateMoreDemo: '1',
|
|
39
|
+
...(planningChoiceId ? { cliPlanAfterStyle: planningChoiceId } : {}),
|
|
39
40
|
},
|
|
40
41
|
}, true));
|
|
41
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-command-api.js","sourceRoot":"","sources":["../../src/api/agent-command-api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAmB/C,MAAM,MAAM,GAAG,oCAAoC,CAAC;AACpD,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,KAAgB;QACzB,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,GAAG,MAAM,WAAW,EACpB;YACE,GAAG,KAAK;YACR,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;YAC/B,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;YACrD,GAAG,CAAC,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC;oBACE,+BAA+B,EAAE;wBAC/B,aAAa;wBACb,wBAAwB;wBACxB,GAAG,CAAC,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC;qBACjD;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,EACD,IAAI,CACL,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,KAAiB;QAC9B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,SAAiB;
|
|
1
|
+
{"version":3,"file":"agent-command-api.js","sourceRoot":"","sources":["../../src/api/agent-command-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ export async function sendMessage(context, sessionId, command) {
|
|
|
70
70
|
}
|
|
71
71
|
: {}),
|
|
72
72
|
}));
|
|
73
|
-
context.output.write(await service.accepted(object(response), sessionId, options.wait !== false, {
|
|
73
|
+
context.output.write(await service.accepted({ ...object(response), progressTitle: content }, sessionId, options.wait !== false, {
|
|
74
74
|
...waitOptions(command),
|
|
75
75
|
previousMessageId,
|
|
76
76
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/commands/chat/message.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/commands/chat/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export function registerState(chat, context) {
|
|
|
8
8
|
.command('state <sessionId>')
|
|
9
9
|
.description('查询当前任务和交互')
|
|
10
10
|
.option('--message-id <messageId>', '刷新指定消息快照')
|
|
11
|
+
.option('--progress-revision <revision>', '上次已展示的任务进度版本')
|
|
11
12
|
.option('--include-file <name>', '包含指定可见附件正文,可重复使用', appendValue, [])
|
|
12
13
|
.action(async (sessionId, _options, command) => {
|
|
13
14
|
const service = await runtime(context, command), options = object(command.opts());
|
|
@@ -18,6 +19,8 @@ export function registerState(chat, context) {
|
|
|
18
19
|
view = applySnapshot(view, snapshot.pipeline);
|
|
19
20
|
}
|
|
20
21
|
const result = await service.inspect(view), names = z.array(z.string()).parse(options.includeFile);
|
|
22
|
+
if (result.taskProgress)
|
|
23
|
+
result.taskProgress.changed = result.taskProgress.revision !== options.progressRevision;
|
|
21
24
|
if (names.length)
|
|
22
25
|
result.attachments = await service.query.attachments(sessionId, names);
|
|
23
26
|
context.output.write(service.withGuidance(result));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/commands/chat/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAuB;IAClE,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,0BAA0B,EAAE,UAAU,CAAC;SAC9C,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,QAAQ;gBAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACxC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/commands/chat/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAuB;IAClE,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,0BAA0B,EAAE,UAAU,CAAC;SAC9C,MAAM,CAAC,gCAAgC,EAAE,cAAc,CAAC;SACxD,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,QAAQ;gBAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACxC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,YAAY;YACrB,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC;QAC1F,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -20,23 +20,29 @@ export function registerStyle(chat, context) {
|
|
|
20
20
|
.command('list <sessionId>')
|
|
21
21
|
.description('查询全部风格批次')
|
|
22
22
|
.option('--anchor <preReplyMessageId>', '分支查询锚点')
|
|
23
|
+
.option('--progress-revision <revision>', '上次已展示的任务进度版本')
|
|
23
24
|
.action(async (sessionId, _options, command) => {
|
|
24
25
|
const service = await runtime(context, command), view = await service.load(sessionId), currentAnchor = styleBranchAnchor(view), anchor = text(object(command.opts()).anchor) ?? currentAnchor, choices = await service.choices(sessionId, anchor, view);
|
|
26
|
+
const taskProgress = await service.taskProgress.read(view, choices);
|
|
27
|
+
taskProgress.changed = taskProgress.revision !== object(command.opts()).progressRevision;
|
|
25
28
|
const result = service.withGuidance({
|
|
26
29
|
state: choices.length ? styleBatchState(latestStyleChoices(choices)) : 'COMPLETED',
|
|
27
30
|
sessionId,
|
|
28
31
|
choices,
|
|
32
|
+
taskProgress,
|
|
29
33
|
cursor: { branchAnchor: anchor },
|
|
30
34
|
});
|
|
31
35
|
context.output.write({
|
|
32
36
|
state: result.state,
|
|
33
37
|
sessionId,
|
|
34
38
|
choices,
|
|
39
|
+
taskProgress,
|
|
40
|
+
cursor: result.cursor,
|
|
35
41
|
// 历史批次只供查看;选择命令仅接受当前未决批次。
|
|
36
42
|
nextActions: anchor === currentAnchor ? result.nextActions : [],
|
|
37
43
|
});
|
|
38
44
|
});
|
|
39
|
-
withWait(style.command('select <sessionId> <choiceId>').description('
|
|
45
|
+
withWait(style.command('select <sessionId> <choiceId>').description('选择风格并自动生成研发规划')).action(async (sessionId, choiceId, _options, command) => {
|
|
40
46
|
const service = await runtime(context, command);
|
|
41
47
|
const response = await businessWrite(context, service, sessionId, () => service.selectStyle(sessionId, choiceId));
|
|
42
48
|
context.output.write(await service.accepted(object(response), sessionId, object(command.opts()).wait !== false, waitOptions(command)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/commands/chat/style.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/commands/chat/style.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,11 @@ import { runtime, positive, waitOptions } from '../shared.js';
|
|
|
2
2
|
export function registerWait(chat, context) {
|
|
3
3
|
chat
|
|
4
4
|
.command('wait <sessionId>')
|
|
5
|
-
.description('
|
|
5
|
+
.description('等待当前交互或任务结果,期间持续展示任务进度')
|
|
6
6
|
.option('--message-id <messageId>', '起始消息 ID')
|
|
7
7
|
.option('--timeout <seconds>', '本地等待上限;不传则持续等待', positive)
|
|
8
8
|
.option('--interval <seconds>', '轮询最小间隔', positive)
|
|
9
|
+
.option('--progress-revision <revision>', '上次已展示的任务进度版本;仅输出变化的进度')
|
|
9
10
|
.action(async (sessionId, _options, command) => context.output.write(await (await runtime(context, command)).wait(sessionId, waitOptions(command))));
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=wait.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/commands/chat/wait.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAuB;IACjE,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/commands/chat/wait.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAuB;IACjE,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,0BAA0B,EAAE,SAAS,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,gCAAgC,EAAE,uBAAuB,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE,CACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CACpG,CAAC;AACN,CAAC"}
|
|
@@ -23,6 +23,7 @@ export declare function waitOptions(command: Command): {
|
|
|
23
23
|
timeout?: number;
|
|
24
24
|
interval?: number;
|
|
25
25
|
messageId?: string;
|
|
26
|
+
progressRevision?: string;
|
|
26
27
|
};
|
|
27
28
|
export declare function withWait(command: Command, noWaitDescription?: string): Command;
|
|
28
29
|
export declare function readInput(path: string): Promise<JsonObject>;
|
package/dist/commands/shared.js
CHANGED
|
@@ -48,6 +48,7 @@ export function waitOptions(command) {
|
|
|
48
48
|
timeout: typeof options.timeout === 'number' ? options.timeout : undefined,
|
|
49
49
|
interval: typeof options.interval === 'number' ? options.interval : undefined,
|
|
50
50
|
messageId: text(options.messageId),
|
|
51
|
+
progressRevision: text(options.progressRevision),
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
54
|
export function withWait(command, noWaitDescription = '服务端接受请求后立即返回') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAerD,KAAK,UAAU,qBAAqB,CAClC,OAAuB,EACvB,OAAgB,EAChB,YAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC,QAAQ;QACvB,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY;KACb,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,OAAO,GACX,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC;QAC7C,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxG,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAuB,EACvB,OAAgB,EAChB,YAAY,GAAG,KAAK;IAEpB,OAAO,CAAC,UAAU,KAAK,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC,UAAU,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB,EAAE,OAAgB;IACrE,OAAO,CAAC,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,OAAgB;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,36 @@ export type DevelopmentProgress = {
|
|
|
79
79
|
/** 当前研发轮的快照;规划与问答轮不要求产生快照。 */
|
|
80
80
|
snapshot?: DevelopmentSnapshot;
|
|
81
81
|
};
|
|
82
|
+
export type TaskProgressStatus = 'submitted' | 'queued' | 'running' | 'waiting' | 'needs_input' | 'completed' | 'failed' | 'interrupted' | 'unknown';
|
|
83
|
+
export type TaskProgressItem = {
|
|
84
|
+
id: string;
|
|
85
|
+
kind: 'message' | 'consult' | 'subtask' | 'style' | 'other-member' | 'request';
|
|
86
|
+
title: string;
|
|
87
|
+
status: TaskProgressStatus;
|
|
88
|
+
detail?: string;
|
|
89
|
+
activity?: {
|
|
90
|
+
readCount?: number;
|
|
91
|
+
editCount?: number;
|
|
92
|
+
deployCount?: number;
|
|
93
|
+
toolCount?: number;
|
|
94
|
+
};
|
|
95
|
+
messageId?: string;
|
|
96
|
+
roundId?: string;
|
|
97
|
+
agentId?: string;
|
|
98
|
+
};
|
|
99
|
+
export type TaskProgressSnapshot = {
|
|
100
|
+
/** 同一项目始终更新同一张卡片。 */
|
|
101
|
+
id: string;
|
|
102
|
+
revision: string;
|
|
103
|
+
activeCount: number;
|
|
104
|
+
tasks: Array<TaskProgressItem>;
|
|
105
|
+
/** 可直接展示的 Markdown 进度卡,不包含估算百分比。 */
|
|
106
|
+
markdown: string;
|
|
107
|
+
/** 进度来源是否完整读取,不代表任务是否完成。 */
|
|
108
|
+
complete: boolean;
|
|
109
|
+
warnings: Array<string>;
|
|
110
|
+
changed?: boolean;
|
|
111
|
+
};
|
|
82
112
|
export type CreationResult = {
|
|
83
113
|
state: CreationState;
|
|
84
114
|
sessionId: string;
|
|
@@ -95,14 +125,20 @@ export type CreationResult = {
|
|
|
95
125
|
text: string;
|
|
96
126
|
status?: string;
|
|
97
127
|
}>;
|
|
128
|
+
taskProgress?: TaskProgressSnapshot;
|
|
98
129
|
interactions: Array<Interaction>;
|
|
99
130
|
choices?: Array<Choice>;
|
|
131
|
+
/** 用户选定风格后,自动衔接演示状态与研发规划;不代表已确认规划。 */
|
|
132
|
+
stylePlanning?: {
|
|
133
|
+
choiceId: string;
|
|
134
|
+
};
|
|
100
135
|
demo?: DemoPreview;
|
|
101
136
|
development?: DevelopmentProgress;
|
|
102
137
|
cursor?: {
|
|
103
138
|
messageId?: string;
|
|
104
139
|
etag?: string;
|
|
105
140
|
branchAnchor?: string;
|
|
141
|
+
progressRevision?: string;
|
|
106
142
|
};
|
|
107
143
|
attachments?: Array<Record<string, unknown>>;
|
|
108
144
|
waitTimedOut?: boolean;
|
|
@@ -2,6 +2,7 @@ import type { Choice, DemoPreview } from '../contracts/cli-output.js';
|
|
|
2
2
|
import type { SessionView } from '../contracts/node-wire.js';
|
|
3
3
|
import type { AgentQueryApi } from '../api/agent-query-api.js';
|
|
4
4
|
export declare function isInitialDemoRound(view: SessionView): boolean;
|
|
5
|
+
export declare function demoGenerationStatus(view: SessionView): number;
|
|
5
6
|
export declare function projectDemoPreview(response: unknown, view: SessionView, choices: Array<Choice>): DemoPreview | undefined;
|
|
6
7
|
/** 修改演示可能由本轮收尾回执生成快照,只匹配本轮所属消息。 */
|
|
7
8
|
export declare function findModifiedDemoPreview(query: AgentQueryApi, view: SessionView): Promise<DemoPreview | undefined>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** 从当前创作轮次对应的快照提取演示地址。@author xiuyu.yi */
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { parseWire } from '../contracts/node-wire.js';
|
|
4
|
-
import { enabled, list, text } from '../contracts/value.js';
|
|
4
|
+
import { enabled, list, text, object } from '../contracts/value.js';
|
|
5
5
|
import { currentRound, roundMessage } from './round-selector.js';
|
|
6
6
|
import { findDevelopmentSnapshot } from './development-snapshot.js';
|
|
7
7
|
const snapshotSchema = z.array(z.object({
|
|
@@ -14,6 +14,15 @@ export function isInitialDemoRound(view) {
|
|
|
14
14
|
const message = roundMessage(view, currentRound(view));
|
|
15
15
|
return ['choose_style_v2', 'fake_confirm_generate_more_demo'].includes(String(message?.roundExtra?.business_type));
|
|
16
16
|
}
|
|
17
|
+
export function demoGenerationStatus(view) {
|
|
18
|
+
const message = roundMessage(view, currentRound(view));
|
|
19
|
+
// Node 把演示进度放在当前消息内容中;Session extra 可能尚未由网页回写。
|
|
20
|
+
// 当前轮的生成中标记优先于旧的 Session 完成标记,避免新演示被提前放行。
|
|
21
|
+
const statuses = (message?.displayContents ?? [])
|
|
22
|
+
.map((content) => Number(object(content.extra).demoGenerateStatus))
|
|
23
|
+
.filter((status) => status === 1 || status === 2);
|
|
24
|
+
return statuses.length ? Math.max(...statuses) : Number(view.extra.demoGenerateStatus);
|
|
25
|
+
}
|
|
17
26
|
export function projectDemoPreview(response, view, choices) {
|
|
18
27
|
const round = currentRound(view);
|
|
19
28
|
const selected = choices.find((choice) => choice.selected);
|