superun-ai-cli 0.1.1 → 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.
Files changed (39) hide show
  1. package/README.en.md +11 -1
  2. package/README.md +11 -1
  3. package/dist/api/agent-command-api.d.ts +1 -1
  4. package/dist/api/agent-command-api.js +2 -1
  5. package/dist/api/agent-command-api.js.map +1 -1
  6. package/dist/commands/chat/message.js +1 -1
  7. package/dist/commands/chat/message.js.map +1 -1
  8. package/dist/commands/chat/state.js +3 -0
  9. package/dist/commands/chat/state.js.map +1 -1
  10. package/dist/commands/chat/style.js +7 -1
  11. package/dist/commands/chat/style.js.map +1 -1
  12. package/dist/commands/chat/wait.js +2 -1
  13. package/dist/commands/chat/wait.js.map +1 -1
  14. package/dist/commands/shared.d.ts +1 -0
  15. package/dist/commands/shared.js +1 -0
  16. package/dist/commands/shared.js.map +1 -1
  17. package/dist/contracts/cli-output.d.ts +36 -0
  18. package/dist/conversation/next-actions.d.ts +1 -1
  19. package/dist/conversation/next-actions.js +38 -10
  20. package/dist/conversation/next-actions.js.map +1 -1
  21. package/dist/conversation/session-waiter.d.ts +3 -0
  22. package/dist/conversation/session-waiter.js +24 -3
  23. package/dist/conversation/session-waiter.js.map +1 -1
  24. package/dist/conversation/task-progress-reader.d.ts +10 -0
  25. package/dist/conversation/task-progress-reader.js +188 -0
  26. package/dist/conversation/task-progress-reader.js.map +1 -0
  27. package/dist/conversation/task-progress.d.ts +13 -0
  28. package/dist/conversation/task-progress.js +214 -0
  29. package/dist/conversation/task-progress.js.map +1 -0
  30. package/dist/interactions/parsers/style-selection.d.ts +4 -0
  31. package/dist/interactions/parsers/style-selection.js +8 -0
  32. package/dist/interactions/parsers/style-selection.js.map +1 -1
  33. package/dist/output/writer.d.ts +4 -0
  34. package/dist/output/writer.js +19 -1
  35. package/dist/output/writer.js.map +1 -1
  36. package/dist/runtime.d.ts +4 -2
  37. package/dist/runtime.js +118 -18
  38. package/dist/runtime.js.map +1 -1
  39. package/package.json +1 -1
package/README.en.md CHANGED
@@ -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 completed style
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`.
package/README.md CHANGED
@@ -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`。
@@ -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":"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"}
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,EAAE,gBAAyB;QACzD,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,GAAG,MAAM,eAAe,EACxB;YACE,SAAS;YACT,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;YAC9D,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE;gBACV,aAAa,EAAE,iCAAiC;gBAChD,2BAA2B,EAAE,GAAG;gBAChC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE;SACF,EACD,IAAI,CACL,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,KAAoB,EAAE,SAAkB;QACpE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,GAAG,MAAM,OAAO,EAChB,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAClG,IAAI,CACL,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,MAAc,EAAE,UAAoB;QACjE,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,GAAG,MAAM,qBAAqB,EAC9B;YACE,SAAS;YACT,eAAe,EAAE;gBACf,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;aAC5F;SACF,EACD,IAAI,CACL,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,KAAiB;QACjC,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,SAAiB,EAAE,KAAiB;QACxE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAChG,CAAC;IACD,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,IAAY,EACZ,OAAgB,EAChB,cAAuB;QAEvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,GAAG,MAAM,qBAAqB,EAC9B,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,EACvF,IAAI,CACL,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,KAKlB;QACC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,KAA6B;QACjE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -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('选择已完成的风格')).action(async (sessionId, choiceId, _options, command) => {
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,aAAa,CAAC;SAC1B,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,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"}
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>;
@@ -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":"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"}
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;
@@ -1,4 +1,4 @@
1
1
  import type { RuntimeConfig } from '../config/runtime-config.js';
2
2
  import type { CreationResult, NextAction } from '../contracts/cli-output.js';
3
- export type GuidanceResult = Pick<CreationResult, 'state' | 'sessionId'> & Partial<Pick<CreationResult, 'interactions' | 'choices' | 'messageId' | 'cursor' | 'demo' | 'development'>>;
3
+ export type GuidanceResult = Pick<CreationResult, 'state' | 'sessionId'> & Partial<Pick<CreationResult, 'interactions' | 'choices' | 'messageId' | 'cursor' | 'demo' | 'development' | 'stylePlanning' | 'taskProgress'>>;
4
4
  export declare function buildNextActions(result: GuidanceResult, config: Pick<RuntimeConfig, 'endpoint' | 'locale'>): Array<NextAction>;
@@ -1,6 +1,6 @@
1
1
  /** 根据当前结果提供操作引导,不替用户作答或执行操作。@author xiuyu.yi */
2
2
  import { COMMAND_NAME } from '../config/constants.js';
3
- import { latestStyleChoices } from '../interactions/parsers/style-selection.js';
3
+ import { latestStyleChoices, readyStyleChoices, styleChoiceLabel, } from '../interactions/parsers/style-selection.js';
4
4
  const QUESTIONNAIRE_INSTRUCTION = '请一次性向用户完整展示当前交互 questions 中的全部问题和选项:保留原始问题、选项标签及说明,标明题号、选项编号、multiSelect 单选/多选规则和 allowOther 自定义回答能力;展示编号须与 question.id、options.index 对应,不要只概括问题、逐题提问或省略选项。提示用户“请按题号回答,例如1A、2B,也可以补充自己的要求”,示例不代表固定题数或默认答案。收集整份问卷的回答;若用户仅回答部分题目,保留已答内容并一次性展示剩余问题及选项,不要替用户选择推荐项,答案齐全后再统一提交';
5
5
  const PLAN_REVIEW_INSTRUCTION = '请按 messages 顺序展示原始规划对话,与产品页面保持一致,不自行摘要、改写或追加 attachments 中的完整研发规划。然后展示:\n- **确认规划**:回复 **“确认规划”** 继续。\n- **调整功能**:直接告诉我需要增加或修改的内容。\n每次调整后都要等待并展示更新方案,再次给出这两个入口;如果服务端再次提问,先回答问题再等待方案。补充要求不等于确认,不能确认旧方案。';
6
6
  const FEATURE_SELECTION_INSTRUCTION = '请按 messages 顺序展示原始对话和功能清单,保留展示编号与 details.features 中真实 id 的对应关系;无需额外生成或链接功能清单文档,也不追加勾选状态提示。此时功能尚待选择开发,不展示“继续创作”或“上线运营”入口。最后只提示:“请回复要开发的功能编号或具体需求。”';
@@ -19,23 +19,42 @@ const INTERACTION_INSTRUCTIONS = {
19
19
  START_EXECUTION: '请用户确认开始执行当前计划',
20
20
  };
21
21
  export function buildNextActions(result, config) {
22
- return nextActionsForState(result, config).map((action) => action.requiresUserInput
23
- ? {
22
+ return nextActionsForState(result, config).map((action) => {
23
+ const progressInstruction = result.taskProgress
24
+ ? result.taskProgress.changed === false
25
+ ? '任务进度未变化,不重复展示进度卡;仍按下方引导处理结果。'
26
+ : '先展示 taskProgress.markdown 进度卡,完整展示全部任务,不只展示最后一个。界面支持原位更新时按 taskProgress.id 更新同一张卡,否则只在进度变化时展示新快照。保留状态待同步提示,不虚构阶段或百分比。'
27
+ : '';
28
+ const waitInstruction = action.requiresUserInput
29
+ ? '等待用户明确响应,不设置答题倒计时;未收到响应时保持当前步骤,不自动选择、提交、跳过或继续。'
30
+ : '';
31
+ return {
24
32
  ...action,
25
- instruction: `${action.instruction} 等待用户明确响应,不设置答题倒计时;未收到响应时保持当前步骤,不自动选择、提交、跳过或继续。`,
26
- }
27
- : action);
33
+ instruction: [progressInstruction, action.instruction, waitInstruction].filter(Boolean).join(' '),
34
+ };
35
+ });
28
36
  }
29
37
  function nextActionsForState(result, config) {
30
38
  // 显式保留连接地址,避免调用方执行下一步时切回默认环境;凭据不进入命令。
31
39
  const command = [COMMAND_NAME, '--endpoint', config.endpoint, '--locale', config.locale, 'chat'];
40
+ const progressRevision = result.taskProgress?.revision ?? result.cursor?.progressRevision;
41
+ const progressOptions = progressRevision ? ['--progress-revision', progressRevision] : [];
42
+ if (result.stylePlanning && ['ACCEPTED', 'RUNNING', 'QUEUED', 'COMPLETED'].includes(result.state))
43
+ return [
44
+ {
45
+ action: 'CONTINUE_STYLE_PLANNING',
46
+ instruction: '用户已选定风格,提示已采用该方案、正在生成研发规划。继续等待,CLI 会内部完成演示状态衔接并生成规划;不展示演示完成提示、使用场景说明或演示链接,不询问是否查看演示或是否开始研发。不要声称用户已实际查看演示。生成规划后沿用原有规划展示和确认引导;遇到问题或错误原样展示,不自动确认规划或选择开发功能。',
47
+ requiresUserInput: false,
48
+ command: [...command, 'wait', ...progressOptions, '--', result.sessionId],
49
+ },
50
+ ];
32
51
  if (result.development?.snapshot?.status === 'PENDING')
33
52
  return [
34
53
  {
35
54
  action: 'WAIT',
36
55
  instruction: '本轮任务已结束,正在同步对应的研发快照;继续查询,不重复提交研发需求,不使用旧演示链接代替本轮快照。',
37
56
  requiresUserInput: false,
38
- command: [...command, 'wait', '--', result.sessionId],
57
+ command: [...command, 'wait', ...progressOptions, '--', result.sessionId],
39
58
  },
40
59
  ];
41
60
  if (result.state === 'NEEDS_INPUT' || result.state === 'NEEDS_SELECTION') {
@@ -105,7 +124,7 @@ function nextActionsForState(result, config) {
105
124
  return [
106
125
  {
107
126
  action: 'SELECT_STYLE',
108
- instruction: `请向用户展示 choices 中的 screenshotUrl;仅在用户选择风格 ${choice.index + 1} 后执行此命令,继续创作。`,
127
+ instruction: `请按原始 index 对应的 A/B/C/D 展示本批方案及 screenshotUrl 可点击链接,说明选定风格后会生成研发规划供用户确认;仅在用户选择${styleChoiceLabel(choice)}(风格 ${choice.index + 1})后执行此命令。CLI 会静默完成演示衔接并生成研发规划,不再询问是否查看演示或是否开始研发;规划仍按原流程展示并等待确认。`,
109
128
  requiresUserInput: true,
110
129
  choiceId: choice.choiceId,
111
130
  command: [...command, 'style', 'select', '--', result.sessionId, choice.choiceId],
@@ -152,18 +171,27 @@ function nextActionsForState(result, config) {
152
171
  }
153
172
  if (['ACCEPTED', 'RUNNING', 'QUEUED'].includes(result.state)) {
154
173
  const anchor = result.cursor?.branchAnchor;
174
+ const styles = latestStyleChoices(result.choices ?? []);
175
+ const ready = readyStyleChoices(styles).sort((left, right) => left.index - right.index);
176
+ const pending = styles
177
+ .filter((choice) => choice.status === 'running' || (choice.status === 'success' && !choice.screenshotUrl))
178
+ .sort((left, right) => left.index - right.index);
179
+ const styleProgress = ready.length
180
+ ? `已生成${ready.map(styleChoiceLabel).join('、')}。${pending.length ? `继续等待${pending.map(styleChoiceLabel).join('、')}。` : ''}`
181
+ : '风格仍在生成。';
155
182
  return [
156
183
  {
157
184
  action: anchor ? 'QUERY_STYLES' : 'WAIT',
158
185
  instruction: anchor
159
- ? '风格仍在生成,继续查询本批候选直到截图就绪,再交给用户选择;不要重复生成。'
186
+ ? `${styleProgress} 请立即提示本次新完成的方案,并展示对应 screenshotUrl 的可点击链接,不要等整批完成后才提示。按原始 index 固定对应 A/B/C/D,以 choiceId 区分候选,同一候选已提示过就不重复提示;没有新完成方案时继续等待。继续查询本批剩余候选,全部结束后再展示本批结果并等待用户选择,不自动选中已完成方案,不重复生成。`
160
187
  : '任务尚未结束,继续等待下一步问题或结果;不要重复提交。',
161
188
  requiresUserInput: false,
162
189
  command: anchor
163
- ? [...command, 'style', 'list', '--anchor', anchor, '--', result.sessionId]
190
+ ? [...command, 'style', 'list', '--anchor', anchor, ...progressOptions, '--', result.sessionId]
164
191
  : [
165
192
  ...command,
166
193
  'wait',
194
+ ...progressOptions,
167
195
  ...(result.messageId ? ['--message-id', result.messageId] : []),
168
196
  '--',
169
197
  result.sessionId,
@@ -1 +1 @@
1
- {"version":3,"file":"next-actions.js","sourceRoot":"","sources":["../../src/conversation/next-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next-actions.js","sourceRoot":"","sources":["../../src/conversation/next-actions.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export type WaitOptions = {
7
7
  timeout?: number;
8
8
  interval?: number;
9
9
  messageId?: string;
10
+ progressRevision?: string;
10
11
  /** 写请求返回的消息须先进入轮次模型,避免把旧规划当作本次结果。 */
11
12
  requiredMessageId?: string;
12
13
  /** 排队响应没有新消息 ID 时,仍须等到旧轮次发生切换。 */
@@ -22,6 +23,8 @@ export declare class SessionWaiter {
22
23
  command: AgentCommandApi;
23
24
  load: (sessionId: string) => Promise<SessionView>;
24
25
  inspect: (view: SessionView, styleTarget?: StyleWaitTarget) => Promise<CreationResult>;
26
+ /** 只展示过程,不结束等待,也不参与整体状态判断。 */
27
+ onProgress?: (result: CreationResult) => void;
25
28
  signal?: AbortSignal;
26
29
  });
27
30
  wait(sessionId: string, options?: WaitOptions): Promise<CreationResult>;
@@ -5,6 +5,15 @@ import { pendingAutomaticTools } from '../auto-tools/registry.js';
5
5
  import { replyReadLogs } from '../auto-tools/read-logs.js';
6
6
  import { CliError } from '../output/exit-codes.js';
7
7
  import { pendingTool } from '../interactions/context.js';
8
+ import { readyStyleChoices } from '../interactions/parsers/style-selection.js';
9
+ import { submittedTaskProgress } from './task-progress.js';
10
+ function hasReadyStylePreview(result, styleTarget) {
11
+ return (result.state === 'RUNNING' &&
12
+ !!result.cursor?.branchAnchor &&
13
+ (!styleTarget ||
14
+ styleTarget.choiceIds.every((id) => result.choices?.some((choice) => choice.choiceId === id))) &&
15
+ readyStyleChoices(result.choices ?? []).length > 0);
16
+ }
8
17
  export function applySnapshot(view, pipeline) {
9
18
  const messages = new Map(view.pipeline.messages.map((message) => [message.messageId, message]));
10
19
  for (const message of pipeline.messages)
@@ -62,6 +71,7 @@ export class SessionWaiter {
62
71
  let etag, target = options.messageId, unchanged = 0;
63
72
  const replied = new Set(), messages = new Map();
64
73
  const progress = new Map();
74
+ let progressRevision = options.progressRevision;
65
75
  let responseObserved = !options.requiredMessageId && !options.previousMessageId;
66
76
  const inspect = async () => {
67
77
  if (!responseObserved) {
@@ -85,6 +95,7 @@ export class SessionWaiter {
85
95
  messages: [],
86
96
  progress: [],
87
97
  interactions: [],
98
+ taskProgress: submittedTaskProgress(sessionId, options.requiredMessageId ?? options.previousMessageId ?? sessionId),
88
99
  };
89
100
  return this.dependencies.inspect(view, options.styleTarget);
90
101
  };
@@ -109,8 +120,9 @@ export class SessionWaiter {
109
120
  return { ...value, interactions, state: interactions.length ? 'NEEDS_INPUT' : 'RUNNING' };
110
121
  };
111
122
  result = suppressSubmitted(result);
112
- if (!['RUNNING', 'QUEUED'].includes(result.state)) {
113
- // 终态和交互退出前重读全量,防止快照漏掉新轮或服务端刚完成的交接。
123
+ if (!['RUNNING', 'QUEUED'].includes(result.state) ||
124
+ hasReadyStylePreview(result, options.styleTarget)) {
125
+ // 终态、交互或单个风格就绪时重读全量,防止漏掉新轮或服务端刚完成的交接。
114
126
  view = await this.dependencies.load(sessionId);
115
127
  result = suppressSubmitted(await inspect());
116
128
  }
@@ -118,7 +130,12 @@ export class SessionWaiter {
118
130
  messages.set(item.id, item);
119
131
  for (const item of result.progress)
120
132
  progress.set(item.id, item);
121
- if (!['RUNNING', 'QUEUED'].includes(result.state))
133
+ if (result.taskProgress) {
134
+ result.taskProgress.changed = result.taskProgress.revision !== progressRevision;
135
+ result.cursor = { ...result.cursor, progressRevision: result.taskProgress.revision };
136
+ }
137
+ // 单个方案可预览就交还进度,调用方按 QUERY_STYLES 继续查询,不停止远端生成。
138
+ if (!['RUNNING', 'QUEUED'].includes(result.state) || hasReadyStylePreview(result, options.styleTarget))
122
139
  return {
123
140
  ...result,
124
141
  messages: [...messages.values()],
@@ -133,6 +150,10 @@ export class SessionWaiter {
133
150
  waitTimedOut: true,
134
151
  cursor: { ...result.cursor, etag },
135
152
  };
153
+ if (result.taskProgress?.changed && this.dependencies.onProgress) {
154
+ this.dependencies.onProgress(result);
155
+ progressRevision = result.taskProgress.revision;
156
+ }
136
157
  const hint = view.pipeline.pollingHint;
137
158
  const interval = Math.max((options.interval ?? 0) * 1000, hint?.nextPollAfterMs ?? (unchanged ? 5000 : 2000));
138
159
  try {