superun-ai-cli 0.1.22 → 0.1.24

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 (61) hide show
  1. package/README.en.md +24 -15
  2. package/README.md +23 -15
  3. package/dist/api/managed-agent-api.d.ts +31 -0
  4. package/dist/api/managed-agent-api.js +98 -0
  5. package/dist/api/managed-agent-api.js.map +1 -0
  6. package/dist/commands/chat/interaction.d.ts +0 -1
  7. package/dist/commands/chat/interaction.js +15 -16
  8. package/dist/commands/chat/interaction.js.map +1 -1
  9. package/dist/commands/chat/plugin.d.ts +0 -1
  10. package/dist/commands/chat/plugin.js +11 -0
  11. package/dist/commands/chat/plugin.js.map +1 -1
  12. package/dist/contracts/cli-output.d.ts +14 -2
  13. package/dist/contracts/interaction-view.d.ts +64 -0
  14. package/dist/contracts/interaction-view.js +2 -0
  15. package/dist/contracts/interaction-view.js.map +1 -0
  16. package/dist/conversation/managed-agent-entry.d.ts +23 -0
  17. package/dist/conversation/managed-agent-entry.js +56 -0
  18. package/dist/conversation/managed-agent-entry.js.map +1 -0
  19. package/dist/conversation/next-actions.d.ts +1 -1
  20. package/dist/conversation/next-actions.js +48 -26
  21. package/dist/conversation/next-actions.js.map +1 -1
  22. package/dist/conversation/state-resolver.js +21 -5
  23. package/dist/conversation/state-resolver.js.map +1 -1
  24. package/dist/conversation/text-projector.js +3 -1
  25. package/dist/conversation/text-projector.js.map +1 -1
  26. package/dist/interactions/draft-store.d.ts +10 -0
  27. package/dist/interactions/draft-store.js +102 -0
  28. package/dist/interactions/draft-store.js.map +1 -0
  29. package/dist/interactions/handlers/index.js +7 -0
  30. package/dist/interactions/handlers/index.js.map +1 -1
  31. package/dist/interactions/managed-agent-model.d.ts +95 -0
  32. package/dist/interactions/managed-agent-model.js +195 -0
  33. package/dist/interactions/managed-agent-model.js.map +1 -0
  34. package/dist/interactions/managed-agent-wizard.d.ts +18 -0
  35. package/dist/interactions/managed-agent-wizard.js +341 -0
  36. package/dist/interactions/managed-agent-wizard.js.map +1 -0
  37. package/dist/interactions/parsers/style-selection.d.ts +3 -1
  38. package/dist/interactions/parsers/style-selection.js +29 -6
  39. package/dist/interactions/parsers/style-selection.js.map +1 -1
  40. package/dist/interactions/question-pages.d.ts +12 -0
  41. package/dist/interactions/question-pages.js +146 -0
  42. package/dist/interactions/question-pages.js.map +1 -0
  43. package/dist/interactions/questions.js +3 -1
  44. package/dist/interactions/questions.js.map +1 -1
  45. package/dist/interactions/registry.js +33 -14
  46. package/dist/interactions/registry.js.map +1 -1
  47. package/dist/interactions/view-adapter.d.ts +21 -0
  48. package/dist/interactions/view-adapter.js +365 -0
  49. package/dist/interactions/view-adapter.js.map +1 -0
  50. package/dist/output/writer.js +4 -2
  51. package/dist/output/writer.js.map +1 -1
  52. package/dist/runtime.d.ts +7 -0
  53. package/dist/runtime.js +99 -1
  54. package/dist/runtime.js.map +1 -1
  55. package/dist/transport/api-client.d.ts +3 -1
  56. package/dist/transport/api-client.js +7 -0
  57. package/dist/transport/api-client.js.map +1 -1
  58. package/dist/transport/http-client.d.ts +1 -0
  59. package/dist/transport/http-client.js +3 -0
  60. package/dist/transport/http-client.js.map +1 -1
  61. package/package.json +1 -1
package/README.en.md CHANGED
@@ -99,8 +99,7 @@ superun-ai
99
99
  │ ├── demo <sessionId> # View the demo and record it as viewed
100
100
  │ ├── develop <sessionId> # Keep the demo and plan development
101
101
  │ ├── interaction # Answer or skip interactions
102
- │ │ ├── reply <sessionId> <interactionId> # Submit an answer
103
- │ │ └── skip <sessionId> <interactionId> # Skip an eligible interaction
102
+ │ │ └── reply <sessionId> <interactionId> # Submit an answer
104
103
  │ ├── plugin # Query, enable, and disable plugins
105
104
  │ │ ├── list <sessionId> # List available plugins
106
105
  │ │ ├── status <sessionId> <pluginId> # Inspect a plugin
@@ -178,29 +177,39 @@ Overall completion retains the existing session, message, interaction, and backg
178
177
 
179
178
  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.
180
179
 
181
- ## Answering interactions
180
+ ## 回答交互
182
181
 
183
- When the CLI returns `NEEDS_INPUT`, read the questions, allowed `actions`, and `answerSchema` in `interactions`. Always reply using the `interactionId` from that result.
182
+ CLI 与专家团使用同一套交互协议。读取 `data.interactions[].view` 的标题、完整 content、问题 fields、操作 actions 和 links;旧的内部 questions/details/answerSchema 不再作为另一套格式返回,风格选择也归入 interactions。
183
+
184
+ 每个字段保留真实 ID、题目和选项说明。普通问卷可整组、逐题或按宿主容量分批展示;动态后续问题由 CLI 决定。推荐标记只展示,不代表用户已选。密钥字段必须用安全输入,不得降级为普通聊天。
185
+
186
+ 沿 `view.reply.command` 回复,保留 `view.reply.input.response` 的版本,补入所选 actionId 和字段值:
184
187
 
185
188
  ```json
186
189
  {
187
- "action": "SUBMIT",
188
- "answers": [
189
- { "questionId": "q0", "selectedIndices": [0], "otherValue": "" }
190
- ]
190
+ "response": {
191
+ "version": "1",
192
+ "revision": "当前 view.revision",
193
+ "actionId": "当前 view.actions 中用户选择的操作 ID",
194
+ "values": {
195
+ "字段 ID": { "optionIds": ["当前选项 ID"] }
196
+ }
197
+ }
191
198
  }
192
199
  ```
193
200
 
194
- ```bash
195
- superun-ai chat interaction reply <sessionId> <interactionId> --input ./answer.json
196
- superun-ai chat interaction skip <sessionId> <interactionId>
197
- ```
201
+ 文本字段使用 `{"text":"用户原文"}`。不能用显示编号代替 optionIds。`chat interaction reply <sessionId> <interactionId> --input <file>` 只接受 response;返回、跳过、撤回等也通过同一入口提交,不再提供独立 skip 命令。
202
+
203
+ 按当前操作的 fieldIds 和 validation 收答:complete 收齐所需必填字段;partial 只保存明确答案,全部填好也不自动执行;none 不要求填写其他字段。用户已经在回答本次提交的问题时,答齐直接提交,不追加“是否提交”;CLI 返回独立确认题时才收集确认。
204
+
205
+ 普通问卷整组答齐并提交后才回复服务端,PRD 沿原流程继续生成风格。原页面中的继续、智能修改、快速创建、确认创建等选项直接复用,不在通用层再生成一套等价按钮。规划、功能选择、密钥和风格的答案由 CLI 转换后交给既有处理器。
206
+
207
+ 托管智能体依次处理设定、知识和记忆、扩展能力及最终确认,保留智能修改、返回与终止流程。本次知识文件为空,不提供附件路径或技能包上传入口;普通 chat create/send 的附件能力不受影响。快速创建、跳过、确认及失败恢复继续使用原业务逻辑,只有最终确认或明确选择快速创建后才创建资源。
198
208
 
199
- Selection indices start at `0`. Skip only when the interaction allows `SKIP`. Completing the requirements questionnaire starts style generation directly; omit `action` or use `GENERATE_STYLES`. The `SUBMIT` example above applies to ordinary questions. Stage transitions, database approvals, and other interactions use their own returned actions.
209
+ 草稿按环境、凭据作用域和交互来源隔离。回答带当前 revision,网页已完成或内容变化时拒绝旧答案。主子角色交接保留 sessionId、interactionId、stepId、revision、原始输出和字段映射;不能因 interactionId 相同而漏掉下一步。
200
210
 
201
- For secret input, submit `{"values":{"requested-key":"secret-value"}}` with only the requested keys. Values are not echoed. Stale or ambiguous interactions are rejected; query the current state again.
211
+ CLI 与专家团须同步升级。本版不维护两套对外交互协议;业务处理器参数只是内部实现,专家团不直接构造。未知必要展示能力应报告缺口,不猜测答案或自动跳过。
202
212
 
203
- `chat interaction reply --no-wait` controls waiting for subsequent creation after the reply has been processed. Some plugin configuration steps must finish in the foreground before submitting their interaction result; this option does not skip those steps. After an interruption, check the plugin and conversation states first.
204
213
 
205
214
  ## Automatic testing and code review
206
215
 
package/README.md CHANGED
@@ -101,8 +101,7 @@ superun-ai
101
101
  │ ├── demo <sessionId> # 查看演示快照并记录已查看状态
102
102
  │ ├── develop <sessionId> # 保留演示,进入研发并生成规划
103
103
  │ ├── interaction # 回答或跳过交互
104
- │ │ ├── reply <sessionId> <interactionId> # 提交回答
105
- │ │ └── skip <sessionId> <interactionId> # 跳过当前交互
104
+ │ │ └── reply <sessionId> <interactionId> # 回复当前交互
106
105
  │ ├── plugin # 查询、启用和禁用插件
107
106
  │ │ ├── list <sessionId> # 查询可用插件
108
107
  │ │ ├── status <sessionId> <pluginId> # 查询插件状态
@@ -186,27 +185,36 @@ superun-ai chat stop <sessionId>
186
185
 
187
186
  ## 回答交互
188
187
 
189
- 当返回 `NEEDS_INPUT` 时,读取 `interactions` 中的问题、允许的 `actions` 和 `answerSchema`。每次回复都使用该结果中的 `interactionId`。
188
+ CLI 与专家团使用同一套交互协议。读取 `data.interactions[].view` 的标题、完整 content、问题 fields、操作 actions 和 links;旧的内部 questions/details/answerSchema 不再作为另一套格式返回,风格选择也归入 interactions。
189
+
190
+ 每个字段保留真实 ID、题目和选项说明。普通问卷可整组、逐题或按宿主容量分批展示;动态后续问题由 CLI 决定。推荐标记只展示,不代表用户已选。密钥字段必须用安全输入,不得降级为普通聊天。
191
+
192
+ 沿 `view.reply.command` 回复,保留 `view.reply.input.response` 的版本,补入所选 actionId 和字段值:
190
193
 
191
194
  ```json
192
195
  {
193
- "action": "SUBMIT",
194
- "answers": [
195
- { "questionId": "q0", "selectedIndices": [0], "otherValue": "" }
196
- ]
196
+ "response": {
197
+ "version": "1",
198
+ "revision": "当前 view.revision",
199
+ "actionId": "当前 view.actions 中用户选择的操作 ID",
200
+ "values": {
201
+ "字段 ID": { "optionIds": ["当前选项 ID"] }
202
+ }
203
+ }
197
204
  }
198
205
  ```
199
206
 
200
- ```bash
201
- superun-ai chat interaction reply <sessionId> <interactionId> --input ./answer.json
202
- superun-ai chat interaction skip <sessionId> <interactionId>
203
- ```
207
+ 文本字段使用 `{"text":"用户原文"}`。不能用显示编号代替 optionIds。`chat interaction reply <sessionId> <interactionId> --input <file>` 只接受 response;返回、跳过、撤回等也通过同一入口提交,不再提供独立 skip 命令。
208
+
209
+ 按当前操作的 fieldIds 和 validation 收答:complete 收齐所需必填字段;partial 只保存明确答案,全部填好也不自动执行;none 不要求填写其他字段。用户已经在回答本次提交的问题时,答齐直接提交,不追加“是否提交”;CLI 返回独立确认题时才收集确认。
210
+
211
+ 普通问卷整组答齐并提交后才回复服务端,PRD 沿原流程继续生成风格。原页面中的继续、智能修改、快速创建、确认创建等选项直接复用,不在通用层再生成一套等价按钮。规划、功能选择、密钥和风格的答案由 CLI 转换后交给既有处理器。
204
212
 
205
- 选择下标从 `0` 开始。只有交互声明支持 `SKIP` 时才可跳过。需求问卷答齐后直接生成风格,`action` 可省略或填写 `GENERATE_STYLES`;上面的 `SUBMIT` 示例适用于普通问答。阶段交接、数据库变更确认等交互应使用各自返回的动作。
213
+ 托管智能体依次处理设定、知识和记忆、扩展能力及最终确认,保留智能修改、返回与终止流程。本次知识文件为空,不提供附件路径或技能包上传入口;普通 chat create/send 的附件能力不受影响。快速创建、跳过、确认及失败恢复继续使用原业务逻辑,只有最终确认或明确选择快速创建后才创建资源。
206
214
 
207
- 密钥输入使用 `{"values":{"请求的键名":"密钥值"}}`,只提交当前交互要求的键;内容不会回显。过期或存在歧义的交互会被拒绝,请重新查询状态。
215
+ 草稿按环境、凭据作用域和交互来源隔离。回答带当前 revision,网页已完成或内容变化时拒绝旧答案。主子角色交接保留 sessionId、interactionId、stepId、revision、原始输出和字段映射;不能因 interactionId 相同而漏掉下一步。
208
216
 
209
- `chat interaction reply --no-wait` 控制回答处理完成后的创作等待。部分插件配置需要在前台等待配置结束并提交交互结果,这一步不会因该选项被省略;中断后应先查询插件与会话状态。
217
+ CLI 与专家团须同步升级。本版不维护两套对外交互协议;业务处理器参数只是内部实现,专家团不直接构造。未知必要展示能力应报告缺口,不猜测答案或自动跳过。
210
218
 
211
219
  ## 自动测试
212
220
 
@@ -288,7 +296,7 @@ superun-ai chat state <sessionId>
288
296
 
289
297
  回执按持久化的任务与父消息关联逐层回溯;即使来源消息已被隐藏或并入其他展示轮,也只返回本次最新报告。来源缺失、冲突或循环时明确报错,不用最近的历史审查结果代替。
290
298
 
291
- 遇到修复方式等确认卡时,先展示对应的问题说明,再展示全部问题和选项。如果展示管线省略了提问前的正文,CLI 从同一条消息的服务端解析快照恢复该提问对应的可见说明;不读取模型推理,不用旧报告替代当前确认依据。
299
+ 遇到修复方式等确认卡时,先展示对应的问题说明,再逐题展示问题及完整选项。如果展示管线省略了提问前的正文,CLI 从同一条消息的服务端解析快照恢复该提问对应的可见说明;不读取模型推理,不用旧报告替代当前确认依据。
292
300
 
293
301
  结果使用 `codeReview.phase=review|repair` 区分审查与后续修复,`reportMessages` 是本次最新结果,`previousReportMessages` 如有返回仅用于追溯问题编号。`sourceMessageId` 校验后续回复来源。`nextActions.when` 是候选动作的展示和执行条件,接入 Agent 应按实际报告筛选,不能直接展示所有候选。无有效报告时不猜问题数或通过状态。
294
302
 
@@ -0,0 +1,31 @@
1
+ import type { ApiClient } from '../transport/api-client.js';
2
+ export type ResourceOption = {
3
+ id: string;
4
+ label: string;
5
+ };
6
+ export type SkillOption = ResourceOption & {
7
+ type: 'builtin' | 'custom';
8
+ description?: string;
9
+ };
10
+ export type WizardCatalog = {
11
+ memories: ResourceOption[];
12
+ skills: SkillOption[];
13
+ warnings: string[];
14
+ };
15
+ export declare class ManagedAgentApi {
16
+ private readonly client;
17
+ constructor(client: ApiClient);
18
+ private get;
19
+ catalog(sessionId: string): Promise<WizardCatalog>;
20
+ contract(sessionId: string, family: 'agents' | 'memory_stores'): Promise<{
21
+ defaultValue: Record<string, unknown>;
22
+ createSchema: Record<string, unknown>;
23
+ }>;
24
+ create(sessionId: string, family: 'agents' | 'memory_stores', body: Record<string, unknown>): Promise<string>;
25
+ rewrite(sessionId: string, request: {
26
+ messageId: string;
27
+ toolId: string;
28
+ currentDescription: string;
29
+ instruction: string;
30
+ }): Promise<string>;
31
+ }
@@ -0,0 +1,98 @@
1
+ /** Glow 同源托管智能体接口;不提供文件或技能包上传。@author xiuyu.yi */
2
+ import { z } from 'zod';
3
+ import { object, text } from '../contracts/value.js';
4
+ import { CliError } from '../output/exit-codes.js';
5
+ const base = '/web-api/managed-agent-v2';
6
+ const resourceList = z.object({
7
+ items: z.array(z.object({ entityId: z.string(), data: z.record(z.unknown()), unavailable: z.boolean().optional() })),
8
+ });
9
+ export class ManagedAgentApi {
10
+ client;
11
+ constructor(client) {
12
+ this.client = client;
13
+ }
14
+ async get(sessionId, path) {
15
+ return (await this.client.request(`${base}${path}`, undefined, { method: 'GET', sessionId, native: true })).data;
16
+ }
17
+ async catalog(sessionId) {
18
+ const results = await Promise.allSettled([
19
+ this.get(sessionId, '/resource-bootstrap?family=memory_stores'),
20
+ this.get(sessionId, '/resource-bootstrap?family=skills'),
21
+ this.get(sessionId, '/v1/capabilities'),
22
+ ]);
23
+ const warnings = [];
24
+ const resources = (index, family) => {
25
+ const result = results[index];
26
+ if (result?.status === 'fulfilled') {
27
+ const parsed = resourceList.safeParse(object(result.value)[family]);
28
+ if (parsed.success)
29
+ return parsed.data.items.filter((item) => !item.unavailable && item.entityId);
30
+ }
31
+ warnings.push(family === 'memory_stores'
32
+ ? '已有记忆库加载失败,可重试或选择新建/不使用。'
33
+ : '自定义技能目录加载失败,可重试或跳过。');
34
+ return [];
35
+ };
36
+ const memories = resources(0, 'memory_stores').map((item) => ({
37
+ id: item.entityId,
38
+ label: text(item.data.name) || item.entityId,
39
+ }));
40
+ const custom = resources(1, 'skills').map((item) => ({
41
+ id: item.entityId,
42
+ label: text(item.data.display_title) || text(item.data.name) || item.entityId,
43
+ type: 'custom',
44
+ description: text(item.data.description),
45
+ }));
46
+ const result = results[2];
47
+ const parsed = z
48
+ .object({
49
+ skills: z.object({
50
+ type: z.string().optional(),
51
+ data: z.array(z.object({
52
+ skill_id: z.string(),
53
+ display_title: z.string().optional(),
54
+ description: z.string().optional(),
55
+ })),
56
+ }),
57
+ })
58
+ .safeParse(result.status === 'fulfilled' ? result.value : undefined);
59
+ if (!parsed.success)
60
+ warnings.push('内置技能目录加载失败,可重试或跳过。');
61
+ const builtin = parsed.success
62
+ ? parsed.data.skills.data.map((item) => ({
63
+ id: item.skill_id,
64
+ label: item.display_title || item.skill_id,
65
+ type: parsed.data.skills.type === 'custom' ? 'custom' : 'builtin',
66
+ description: item.description,
67
+ }))
68
+ : [];
69
+ return {
70
+ memories,
71
+ skills: [...new Map([...builtin, ...custom].map((item) => [`${item.type}:${item.id}`, item])).values()],
72
+ warnings,
73
+ };
74
+ }
75
+ async contract(sessionId, family) {
76
+ const parsed = z
77
+ .object({ defaultValue: z.record(z.unknown()), createSchema: z.record(z.unknown()) })
78
+ .safeParse(await this.get(sessionId, `/v1/configuration-schema/${family}`));
79
+ if (!parsed.success)
80
+ throw new CliError('PROTOCOL_ERROR', '智能体配置契约不完整,未创建资源');
81
+ return parsed.data;
82
+ }
83
+ async create(sessionId, family, body) {
84
+ const raw = (await this.client.request(`${base}/v1/${family}`, body, { sessionId, native: true, write: true })).data;
85
+ const id = text(object(raw).id) || text(object(raw).entityId);
86
+ if (!id)
87
+ throw new CliError('OUTCOME_UNKNOWN', '资源创建响应缺少 ID,请到网页核对,勿重复创建');
88
+ return id;
89
+ }
90
+ async rewrite(sessionId, request) {
91
+ const raw = (await this.client.request(`${base}/ai-rewrite-description`, { ...request, locale: this.client.config.locale }, { sessionId, write: true })).data;
92
+ const description = text(object(raw).workDescription);
93
+ if (!description?.trim() || description.length > 4000)
94
+ throw new CliError('PROTOCOL_ERROR', '智能修改结果无效,保留当前设定');
95
+ return description;
96
+ }
97
+ }
98
+ //# sourceMappingURL=managed-agent-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-agent-api.js","sourceRoot":"","sources":["../../src/api/managed-agent-api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /** 提交当前交互的回答。@author xiuyu.yi */
2
1
  import type { Command } from 'commander';
3
2
  import type { CommandContext } from '../shared.js';
4
3
  export declare function registerInteraction(chat: Command, context: CommandContext): void;
@@ -1,22 +1,21 @@
1
+ /** 提交当前交互的回答。@author xiuyu.yi */
2
+ import { CliError } from '../../output/exit-codes.js';
1
3
  import { runtime, readInput, withWait, waitOptions, businessWrite } from '../shared.js';
2
4
  import { object, requiredText } from '../../contracts/value.js';
3
5
  export function registerInteraction(chat, context) {
4
6
  const interaction = chat.command('interaction').description('回答或跳过交互');
5
- for (const action of ['reply', 'skip']) {
6
- const command = withWait(interaction
7
- .command(`${action} <sessionId> <interactionId>`)
8
- .description(action === 'reply' ? '提交回答' : '跳过当前交互'), '本次回答处理结束后,不继续等待后续创作');
9
- if (action === 'reply')
10
- command.requiredOption('--input <file>', '回答 JSON 文件,- 表示标准输入');
11
- command.action(async (sessionId, interactionId, _options, current) => {
12
- const options = object(current.opts()), service = await runtime(context, current);
13
- const input = action === 'skip' ? { action: 'SKIP' } : await readInput(requiredText(options.input, 'input'));
14
- const response = await businessWrite(context, service, sessionId, () => service.reply(sessionId, interactionId, input));
15
- context.output.write(await service.accepted(object(response), sessionId, options.wait !== false, {
16
- ...waitOptions(current),
17
- submittedInteractionId: interactionId,
18
- }));
19
- });
20
- }
7
+ const command = withWait(interaction.command('reply <sessionId> <interactionId>').description('回复当前交互'), '本次回答处理结束后,不继续等待后续创作');
8
+ command.requiredOption('--input <file>', 'response JSON 文件,- 表示标准输入');
9
+ command.action(async (sessionId, interactionId, _options, current) => {
10
+ const options = object(current.opts()), service = await runtime(context, current);
11
+ const input = await readInput(requiredText(options.input, 'input'));
12
+ if (!('response' in input))
13
+ throw new CliError('INVALID_ARGUMENT', '请按当前交互的 view.reply 使用 response 格式回答');
14
+ const response = await businessWrite(context, service, sessionId, () => service.reply(sessionId, interactionId, input));
15
+ context.output.write(await service.accepted(object(response), sessionId, options.wait !== false, {
16
+ ...waitOptions(current),
17
+ submittedInteractionId: interactionId,
18
+ }));
19
+ });
21
20
  }
22
21
  //# sourceMappingURL=interaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/commands/chat/interaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,OAAuB;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACvE,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CACtB,WAAW;aACR,OAAO,CAAC,GAAG,MAAM,8BAA8B,CAAC;aAChD,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EACtD,qBAAqB,CACtB,CAAC;QACF,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,aAAqB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;YACrG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EACpC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,KAAK,GACT,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACjG,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CACrE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAC/C,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;gBAC1E,GAAG,WAAW,CAAC,OAAO,CAAC;gBACvB,sBAAsB,EAAE,aAAa;aACtC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/commands/chat/interaction.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,OAAuB;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,QAAQ,CACtB,WAAW,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAC9E,qBAAqB,CACtB,CAAC;IACF,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,aAAqB,EAAE,QAAiB,EAAE,OAAgB,EAAE,EAAE;QACrG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EACpC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CACrE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAC/C,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;YAC1E,GAAG,WAAW,CAAC,OAAO,CAAC;YACvB,sBAAsB,EAAE,aAAa;SACtC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,3 @@
1
- /** 插件查询与生命周期操作。@author xiuyu.yi */
2
1
  import type { Command } from 'commander';
3
2
  import type { CommandContext } from '../shared.js';
4
3
  export declare function registerPlugin(chat: Command, context: CommandContext): void;
@@ -1,3 +1,5 @@
1
+ /** 插件查询与生命周期操作。@author xiuyu.yi */
2
+ import { managedAgentEnableEntry } from '../../conversation/managed-agent-entry.js';
1
3
  import { runtime, readInput, withWait, waitOptions, pollOperation, businessWrite } from '../shared.js';
2
4
  import { integrationKey } from '../../interactions/handlers/reply-plugin.js';
3
5
  import { object, requiredText, text } from '../../contracts/value.js';
@@ -32,6 +34,15 @@ export function registerPlugin(chat, context) {
32
34
  command.action(async (sessionId, pluginId, _options, current) => {
33
35
  const service = await runtime(context, current), options = object(current.opts());
34
36
  let result = await service.plugin.operate('status', sessionId, pluginId);
37
+ if (action === 'enable' &&
38
+ integrationKey(pluginId) === 'SUPERUN_MANAGED_AGENT_V2' &&
39
+ result.state === 'NOT_ENABLED') {
40
+ if (options.input)
41
+ throw new CliError('INVALID_ARGUMENT', '首次启用通用智能体请通过交互配置,不接受直接配置或附件');
42
+ const response = await businessWrite(context, service, sessionId, () => service.command.chat({ sessionId, ...managedAgentEnableEntry() }));
43
+ context.output.write(await service.accepted(object(response), sessionId, options.wait !== false, waitOptions(current)));
44
+ return;
45
+ }
35
46
  const completed = action === 'enable'
36
47
  ? result.state === 'ENABLED'
37
48
  : ['NOT_ENABLED', 'DISABLED', 'PAUSED'].includes(String(result.state));
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/commands/chat/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/commands/chat/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- /** 面向终端、Agent 和 MCP 调用方的稳定输出协议。@author xiuyu.yi */
1
+ /** 创作内部结果模型;交互由输出层统一投影为 view。@author xiuyu.yi */
2
2
  export type CreationState = 'ACCEPTED' | 'QUEUED' | 'RUNNING' | 'PAUSED' | 'NEEDS_INPUT' | 'NEEDS_SELECTION' | 'COMPLETED' | 'FAILED' | 'INTERRUPTED' | 'CANCELLED';
3
- export type InteractionKind = 'PRD_CLARIFICATION' | 'ASK_USER_TOOL' | 'ASK_USER_MESSAGE' | 'SECRET_INPUT' | 'PLUGIN_SECRET_INPUT' | 'PLUGIN_ACTION' | 'DDL_CONFIRMATION' | 'STYLE_SELECTION' | 'ENTER_IDEATION' | 'APPROVE_ARCHITECTURE_PLAN' | 'SELECT_FEATURES' | 'START_EXECUTION';
3
+ export type InteractionKind = 'PRD_CLARIFICATION' | 'ASK_USER_TOOL' | 'ASK_USER_MESSAGE' | 'SECRET_INPUT' | 'PLUGIN_SECRET_INPUT' | 'PLUGIN_ACTION' | 'DDL_CONFIRMATION' | 'STYLE_SELECTION' | 'ENTER_IDEATION' | 'APPROVE_ARCHITECTURE_PLAN' | 'SELECT_FEATURES' | 'START_EXECUTION' | 'MANAGED_AGENT_WIZARD' | 'UNSUPPORTED';
4
4
  export type Question = {
5
5
  id: string;
6
6
  question: string;
@@ -16,6 +16,15 @@ export type Question = {
16
16
  recommendedIndices?: Array<number>;
17
17
  };
18
18
  export type Interaction = {
19
+ view?: import('./interaction-view.js').InteractionView;
20
+ page?: {
21
+ id: string;
22
+ revision: string;
23
+ index?: number;
24
+ total?: number;
25
+ title: string;
26
+ };
27
+ supported?: boolean;
19
28
  interactionId: string;
20
29
  kind: InteractionKind;
21
30
  source: {
@@ -57,6 +66,7 @@ export type NextAction = {
57
66
  /** 回复的固定字段,用户数据仍需按对应交互的 answerSchema 补齐。 */
58
67
  input?: {
59
68
  action: string;
69
+ pageRevision?: string;
60
70
  };
61
71
  };
62
72
  export type DemoPreview = {
@@ -179,6 +189,8 @@ export type CreationResult = {
179
189
  };
180
190
  interactions: Array<Interaction>;
181
191
  choices?: Array<Choice>;
192
+ /** 内部风格视图,输出时归入统一 interactions。 */
193
+ selectionView?: import('./interaction-view.js').InteractionView;
182
194
  /** 当前等待的批次与同轮全部方案分开,追加不会隐藏旧方案。 */
183
195
  styleGeneration?: {
184
196
  choiceIds: Array<string>;
@@ -0,0 +1,64 @@
1
+ /** CLI 与宿主之间的版本化展示契约,不暴露业务处理器参数。@author xiuyu.yi */
2
+ export type FieldValue = {
3
+ optionIds?: string[];
4
+ text?: string;
5
+ };
6
+ export type InteractionField = {
7
+ id: string;
8
+ type: 'single' | 'multi' | 'text' | 'secret';
9
+ label: string;
10
+ header?: string;
11
+ required: boolean;
12
+ allowOther: boolean;
13
+ options: Array<{
14
+ id: string;
15
+ label: string;
16
+ description?: string;
17
+ preview?: string;
18
+ recommended?: boolean;
19
+ }>;
20
+ /** 仅已保存的非敏感答案,不代表推荐项或替用户确认。 */
21
+ value?: FieldValue;
22
+ };
23
+ export type InteractionViewAction = {
24
+ id: string;
25
+ label: string;
26
+ description?: string;
27
+ fieldIds: string[];
28
+ validation: 'complete' | 'partial' | 'none';
29
+ requiresUserInput: boolean;
30
+ };
31
+ export type InteractionView = {
32
+ version: '1';
33
+ reply?: {
34
+ command: string[];
35
+ input: {
36
+ response: {
37
+ version: '1';
38
+ revision: string;
39
+ };
40
+ };
41
+ };
42
+ interactionId: string;
43
+ revision: string;
44
+ stepId: string;
45
+ title: string;
46
+ supported: boolean;
47
+ capabilities: string[];
48
+ content: Array<{
49
+ type: 'markdown' | 'notice';
50
+ text: string;
51
+ }>;
52
+ fields: InteractionField[];
53
+ actions: InteractionViewAction[];
54
+ links: Array<{
55
+ label: string;
56
+ url: string;
57
+ }>;
58
+ };
59
+ export type InteractionResponse = {
60
+ version: '1';
61
+ revision: string;
62
+ actionId: string;
63
+ values?: Record<string, FieldValue>;
64
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interaction-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction-view.js","sourceRoot":"","sources":["../../src/contracts/interaction-view.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ /** Glow 首次启用入口协议,来源 origin/pre 24c9d848bb。@author xiuyu.yi */
2
+ /** 完整通用智能体创建 Skill;前端只负责把入口意图无损交给它。 */
3
+ export declare const MANAGED_AGENT_CREATION_SKILL_ID = "skill.superun_managed_agent_v2";
4
+ export type ManagedAgentEntryAction = 'enable' | 'create';
5
+ /**
6
+ * 给创建 Skill 的入口上下文。产品判断本身由 Skill/Agent 完成,客户端不解析自然语言意图。
7
+ */
8
+ export declare function buildManagedAgentIntentRoutingArgs(action: ManagedAgentEntryAction): string;
9
+ /** 保留 Glow 的入口语义,不在 CLI 自行决定产品类型。 */
10
+ export declare function managedAgentEnableEntry(): {
11
+ content: string;
12
+ roundExtra: {
13
+ special_skill_scope: string;
14
+ };
15
+ businessParams: {
16
+ skill_display: {
17
+ skillId: string;
18
+ name: string;
19
+ category: string;
20
+ description: string;
21
+ };
22
+ };
23
+ };
@@ -0,0 +1,56 @@
1
+ /** Glow 首次启用入口协议,来源 origin/pre 24c9d848bb。@author xiuyu.yi */
2
+ /** 完整通用智能体创建 Skill;前端只负责把入口意图无损交给它。 */
3
+ export const MANAGED_AGENT_CREATION_SKILL_ID = 'skill.superun_managed_agent_v2';
4
+ const ENTRY_SOURCE = {
5
+ enable: '用户在功能列表或详情页主动点击了 superun 通用智能体的“启用”',
6
+ create: '用户在已启用的 superun 通用智能体中主动点击了“新建”',
7
+ };
8
+ /**
9
+ * 给创建 Skill 的入口上下文。产品判断本身由 Skill/Agent 完成,客户端不解析自然语言意图。
10
+ */
11
+ export function buildManagedAgentIntentRoutingArgs(action) {
12
+ return [
13
+ `请${action === 'enable' ? '启用' : '新建'}「superun 通用智能体」前先执行产品适配判断。`,
14
+ `入口事实:${ENTRY_SOURCE[action]},因此 initial_product_intent=superun_managed_agent。`,
15
+ '本命令仅用于启用或新建智能体的入口:“智能体”页新建、“测试”页没有智能体且没有会话时的空态新建,以及配置会话时选择新建智能体。“测试”页已有内容时的新建是配置临时会话,“文件”和“技能”页的新建是添加对应资源;不能仅凭“新建”文案重新创建智能体。',
16
+ '产品适配判断必须发生在配置向导之前;尚未确定进入通用智能体分支时,不得调用 ManagedAgentWizard 或创建通用智能体资源。',
17
+ '若当前对话已足以确认用户需要有持续上下文、记忆、资料、工具行动、长期任务或可复用角色的智能体,直接进入下述向导准备阶段,不再询问产品类型。',
18
+ '若信息不足,只用 AskUserQuestion 补齐区分 superun AI 与通用智能体所缺的信息。',
19
+ '只要产品适配判断 superun AI 更合适(包括补充信息后的判断),都必须再用 AskUserQuestion 展示一次最终能力选择,不能直接宣布已选择 superun AI。第一项为“使用 Superun AI(推荐)”并按当前需求写一句具体推荐理由,第二项为“仍使用 Superun 通用智能体”并说明会进入配置向导。',
20
+ '用户选择通用智能体后,进入下述向导准备阶段;用户选择 Superun AI 后,立即调用 PluginEnable(plugin_name=SUPERUN_AI、mode=auto),启用成功后继续完成用户原始任务,不调用 ManagedAgentWizard。不得让用户再去右侧功能列表手动勾选,也不得在启用或原始任务完成前用说明文字结束任务流。',
21
+ 'AskUserQuestion 返回答案后必须在同一任务流中执行所选分支;回答卡片、推荐结论或 PluginEnable 成功都不是原始任务的终点。',
22
+ '任何“跳过并继续”都必须遵循 initial_product_intent,继续通用智能体流程并进入下述向导准备阶段;不得把跳过解释为接受推荐。用户明确选择“不要启用”或“暂不创建”时停止能力流程。',
23
+ '向导准备阶段:先检查通用智能体插件状态;尚未启用时按现有 Skill 约定完成插件启用确认并等待启用成功,已启用时复用现有插件。',
24
+ '确定通用智能体分支且插件已可用后,根据原始需求与已补充的答案整理完整工作说明,调用 ManagedAgentWizard,参数 work_description 为该工作说明(最多 4000 字符)。工作说明只包含用户任务,不包含产品路由指令。',
25
+ 'ManagedAgentWizard 负责智能体设定、知识文件、记忆库和拓展能力(可选 Skill)的配置,以及最终创建确认;当前向导不支持配置 MCP。不要在向导前重复发起这些配置问答或旧的创建确认表单,也不要绕过向导直接创建 Agent。',
26
+ '第一步的“智能修改”只按用户要求更新当前设定,成功后可撤回,取消或失败会保留原设定;修改完成不表示智能体已创建,也不需要在主对话重复生成一遍。创建时以用户最终提交的当前设定为准,不用初始 work_description 覆盖它。',
27
+ '用户可以在第一步点击“快速创建”,按当前智能体设定直接提交,并清空本次知识文件、记忆库和可选 Skill;第二步“跳过此步骤”清空文件和记忆库选择,第三步“跳过此步骤”清空可选 Skill。是否需要补充提示以最终提交结果为准,不根据需求文案或点击历史猜测。',
28
+ '调用 ManagedAgentWizard 后等待原工具回填;收到 success=true、status=completed 和 agentId 后,复用返回的 agentId、fileIds/attachmentIds、memoryStoreId、skillIds 与 mcpServers 继续用户原始任务,不得再次创建同一个 Agent。未收到成功结果时,不执行依赖这些资源的后续任务;取消时停止创建流程。',
29
+ '创建成功后的第一次后续回复,先报告实际创建结果,再按下述规则用用户的语言简短说明后续配置入口;同一次创建只提示一次,重试回填、刷新或后续对话不重复。使用完整原工具结果判断,不能把只展示 agentId/status 的卡片当作全部配置;字段缺失、类型异常或结果被裁剪时先恢复原结果,无法恢复则不猜测可选项是否未配置。',
30
+ '三类可选提示独立判断,以下入口均位于“superun 通用智能体”面板:fileIds/attachmentIds 合并去重后为空时,提示可在“文件”页上传知识文件,并在“测试 → 新建 → 配置新会话”中选择文件使用;完整结果中的 memoryStoreId 未提供或为空时,提示可在“高级 → 记忆库”创建、管理,并在“测试 → 新建 → 配置新会话”的“高级设置 → 记忆库”中选择;skillIds 明确为空数组时,提示可在“智能体 → 对应智能体详情 → 技能”添加拓展能力,自定义技能可先在“技能”页点击“新建”上传。已选择的对应项目不再提示补配。',
31
+ '文件页无文件时操作按钮是“上传”,已有文件时是“新建”;默认只说“在文件页上传”,不要把按钮名称或位置说死。“测试”页通过临时会话试用智能体,测试配置不会自动接入网站或应用;只有原任务包含产品接入时才继续完成对应接入工作。',
32
+ '每次创建成功都要提示 MCP 的配置入口,不以 mcpServers 是否为空决定是否提示:“智能体创建完成后,你还可以在智能体详情的「能力与连接 → MCP 连接」中接入 MCP 服务。”这是入口说明,不表示已经接通或当前一定没有 MCP。',
33
+ '这些说明只表达后续可按需配置,不追问、不自动补配被跳过的能力,也不写入所创建智能体的设定;必选内置能力不属于可选 Skill,skillIds 为空不表示智能体没有能力。文件和记忆库上传、创建成功也不表示已在运行会话中生效。创建失败、取消或等待中不发送成功后的配置提示;原任务包含产品开发、接入或执行时,提示后继续原任务。',
34
+ '上述自动启用只适用于用户在最终能力选择中明确选中的 Superun AI;产品适配本身不授权自动启用或创建通用智能体。通用智能体仍保留必要的插件启用确认,最终创建由用户点击向导中的“创建智能体”或第一步的“快速创建”确认。',
35
+ '用户询问费用时,简短说明使用助手会消耗算力,并从 superun 余额扣除,具体用量可在“消费明细”中查看;不编造价格或用量,也不把计费说明固定附加到每次创建成功回复中。',
36
+ ].join('\n');
37
+ }
38
+ /** 保留 Glow 的入口语义,不在 CLI 自行决定产品类型。 */
39
+ export function managedAgentEnableEntry() {
40
+ const name = '启用 superun 通用智能体';
41
+ const escape = (value) => value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
42
+ const content = `<command-message>${name}</command-message>\n<command-name>${MANAGED_AGENT_CREATION_SKILL_ID}</command-name>\n<command-args>${escape(buildManagedAgentIntentRoutingArgs('enable'))}</command-args>\n<command-type>skill</command-type>`;
43
+ return {
44
+ content,
45
+ roundExtra: { special_skill_scope: 'official' },
46
+ businessParams: {
47
+ skill_display: {
48
+ skillId: MANAGED_AGENT_CREATION_SKILL_ID,
49
+ name,
50
+ category: 'business',
51
+ description: '给你的产品配一个能聊天、会做事的 AI 助手。',
52
+ },
53
+ },
54
+ };
55
+ }
56
+ //# sourceMappingURL=managed-agent-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-agent-entry.js","sourceRoot":"","sources":["../../src/conversation/managed-agent-entry.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,uCAAuC;AACvC,MAAM,CAAC,MAAM,+BAA+B,GAAG,gCAAgC,CAAC;AAIhF,MAAM,YAAY,GAA4C;IAC5D,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,iCAAiC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,MAA+B;IAChF,OAAO;QACL,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,4BAA4B;QACjE,QAAQ,YAAY,CAAC,MAAM,CAAC,mDAAmD;QAC/E,8HAA8H;QAC9H,sEAAsE;QACtE,uEAAuE;QACvE,uDAAuD;QACvD,qKAAqK;QACrK,gLAAgL;QAChL,4EAA4E;QAC5E,qGAAqG;QACrG,kEAAkE;QAClE,4HAA4H;QAC5H,2HAA2H;QAC3H,qHAAqH;QACrH,kIAAkI;QAClI,iNAAiN;QACjN,gKAAgK;QAChK,0RAA0R;QAC1R,iHAAiH;QACjH,2HAA2H;QAC3H,mKAAmK;QACnK,iHAAiH;QACjH,uFAAuF;KACxF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3G,MAAM,OAAO,GAAG,oBAAoB,IAAI,qCAAqC,+BAA+B,kCAAkC,MAAM,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC,qDAAqD,CAAC;IACxP,OAAO;QACL,OAAO;QACP,UAAU,EAAE,EAAE,mBAAmB,EAAE,UAAU,EAAE;QAC/C,cAAc,EAAE;YACd,aAAa,EAAE;gBACb,OAAO,EAAE,+BAA+B;gBACxC,IAAI;gBACJ,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,yBAAyB;aACvC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
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' | 'stylePlanning' | 'styleGeneration' | 'taskProgress' | 'toolUsage' | 'autoTest' | 'codeReview' | 'replyMessageId'>>;
3
+ export type GuidanceResult = Pick<CreationResult, 'state' | 'sessionId'> & Partial<Pick<CreationResult, 'interactions' | 'choices' | 'selectionView' | 'messageId' | 'cursor' | 'demo' | 'development' | 'stylePlanning' | 'styleGeneration' | 'taskProgress' | 'toolUsage' | 'autoTest' | 'codeReview' | 'replyMessageId'>>;
4
4
  /** 只静默确认风格选择后这一轮规划;实际业务问题仍交给用户。 */
5
5
  export declare function pendingStylePlanApproval(result: GuidanceResult): import("../contracts/cli-output.js").Interaction | undefined;
6
6
  /** 研发结束后选择后续功能仍是本轮完成结果,不能退回过程卡或漏掉工具统计。 */