superun-ai-cli 0.1.30 → 0.1.32
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/README.en.md +1 -0
- package/README.md +25 -2
- package/dist/api/security-review-api.d.ts +20 -0
- package/dist/api/security-review-api.js +75 -0
- package/dist/api/security-review-api.js.map +1 -0
- package/dist/commands/chat/index.js +2 -0
- package/dist/commands/chat/index.js.map +1 -1
- package/dist/commands/chat/security.d.ts +4 -0
- package/dist/commands/chat/security.js +57 -0
- package/dist/commands/chat/security.js.map +1 -0
- package/dist/commands/chat/state.js +6 -2
- package/dist/commands/chat/state.js.map +1 -1
- package/dist/commands/chat/stop.js +17 -0
- package/dist/commands/chat/stop.js.map +1 -1
- package/dist/commands/chat/wait.js +5 -1
- package/dist/commands/chat/wait.js.map +1 -1
- package/dist/commands/shared.d.ts +1 -0
- package/dist/commands/shared.js +2 -0
- package/dist/commands/shared.js.map +1 -1
- package/dist/contracts/cli-output.d.ts +4 -1
- package/dist/contracts/security-review.d.ts +102 -0
- package/dist/contracts/security-review.js +47 -0
- package/dist/contracts/security-review.js.map +1 -0
- package/dist/conversation/next-actions.d.ts +1 -1
- package/dist/conversation/next-actions.js +22 -10
- package/dist/conversation/next-actions.js.map +1 -1
- package/dist/conversation/security-review.d.ts +129 -0
- package/dist/conversation/security-review.js +246 -0
- package/dist/conversation/security-review.js.map +1 -0
- package/dist/conversation/session-waiter.d.ts +3 -1
- package/dist/conversation/session-waiter.js +5 -2
- package/dist/conversation/session-waiter.js.map +1 -1
- package/dist/interactions/managed-agent-model.d.ts +13 -13
- package/dist/output/writer.d.ts +1 -1
- package/dist/output/writer.js +8 -3
- package/dist/output/writer.js.map +1 -1
- package/dist/runtime.d.ts +4 -2
- package/dist/runtime.js +12 -5
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** 安全扫描接口和 CLI 输出共用的数据契约。@author xiuyu.yi */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
const status = z.number().int().min(0).max(5);
|
|
4
|
+
const checkSchema = z.object({
|
|
5
|
+
category: z.string().min(1),
|
|
6
|
+
label: z.string().optional(),
|
|
7
|
+
status,
|
|
8
|
+
statusDesc: z.string().optional(),
|
|
9
|
+
});
|
|
10
|
+
export const securityReviewSchema = z.object({
|
|
11
|
+
found: z.boolean(),
|
|
12
|
+
reviewId: z.string().min(1).optional(),
|
|
13
|
+
reviewSeqNo: z.number().optional(),
|
|
14
|
+
stage: z.number().int().min(0).max(8).optional(),
|
|
15
|
+
stageDesc: z.string().optional(),
|
|
16
|
+
currentCheckCategory: z.string().nullish(),
|
|
17
|
+
checks: z.array(checkSchema).optional(),
|
|
18
|
+
assessmentStatus: status.nullish(),
|
|
19
|
+
remediationRequired: z.boolean().nullish(),
|
|
20
|
+
remediationStatus: status.nullish(),
|
|
21
|
+
reportStatus: status.nullish(),
|
|
22
|
+
reportStatusDesc: z.string().optional(),
|
|
23
|
+
reportResult: z.string().nullish(),
|
|
24
|
+
reportPdfUrl: z.string().nullish(),
|
|
25
|
+
reportGeneratedAt: z.union([z.number(), z.string()]).nullish(),
|
|
26
|
+
invalidatedReason: z.string().nullish(),
|
|
27
|
+
});
|
|
28
|
+
export const SecurityStage = {
|
|
29
|
+
CREATED: 0,
|
|
30
|
+
CHECKING: 1,
|
|
31
|
+
ASSESSING: 2,
|
|
32
|
+
REMEDIATING: 3,
|
|
33
|
+
REPORTING: 4,
|
|
34
|
+
COMPLETED: 5,
|
|
35
|
+
FAILED: 6,
|
|
36
|
+
CANCELLED: 7,
|
|
37
|
+
INVALIDATED: 8,
|
|
38
|
+
};
|
|
39
|
+
export const SecurityStatus = {
|
|
40
|
+
SKIPPED: 0,
|
|
41
|
+
PENDING: 1,
|
|
42
|
+
RUNNING: 2,
|
|
43
|
+
SUCCEEDED: 3,
|
|
44
|
+
FAILED: 4,
|
|
45
|
+
CANCELLED: 5,
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=security-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-review.js","sourceRoot":"","sources":["../../src/contracts/security-review.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE;IAClC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;IAC1C,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE;IACnC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE;IAC9B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAClC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;IAC9D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;CACxC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;CACN,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;CACJ,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' | 'messageId' | 'cursor' | 'demo' | 'development' | 'stylePlanning' | 'styleGeneration' | 'taskProgress' | 'toolUsage' | 'autoTest' | 'codeReview' | 'securityReview' | 'replyMessageId'>>;
|
|
4
4
|
/** 只静默确认风格选择后这一轮规划;实际业务问题仍交给用户。 */
|
|
5
5
|
export declare function pendingStylePlanApproval(result: GuidanceResult): import("../contracts/cli-output.js").Interaction | undefined;
|
|
6
6
|
/** 研发结束后选择后续功能仍是本轮完成结果,不能退回过程卡或漏掉工具统计。 */
|
|
@@ -4,6 +4,7 @@ import { COMMAND_NAME } from '../config/constants.js';
|
|
|
4
4
|
import { AUTO_TEST_RESULT_INSTRUCTION } from './auto-test.js';
|
|
5
5
|
import { CODE_REVIEW_RESULT_INSTRUCTION } from './code-review.js';
|
|
6
6
|
import { routingInstruction } from './project-routing.js';
|
|
7
|
+
import { securityNextActions, SECURITY_REVIEW_INSTRUCTION } from './security-review.js';
|
|
7
8
|
/** 只静默确认风格选择后这一轮规划;实际业务问题仍交给用户。 */
|
|
8
9
|
export function pendingStylePlanApproval(result) {
|
|
9
10
|
const interaction = result.interactions?.[0];
|
|
@@ -48,15 +49,17 @@ export function buildNextActions(result, config) {
|
|
|
48
49
|
const silentPlanning = result.stylePlanning && (!result.interactions?.length || pendingStylePlanApproval(result));
|
|
49
50
|
const progressInstruction = silentPlanning
|
|
50
51
|
? '只展示一次“已采用所选方案,正在整理开发功能清单”(使用实际方案编号),随后静默等待结果;不展示 taskProgress 进度卡、内部步骤或中间演示和规划正文。每 5 分钟的任务提醒照常展示。'
|
|
51
|
-
: result.
|
|
52
|
-
?
|
|
53
|
-
: result.
|
|
54
|
-
?
|
|
55
|
-
:
|
|
56
|
-
?
|
|
57
|
-
:
|
|
58
|
-
? '
|
|
59
|
-
:
|
|
52
|
+
: result.securityReview
|
|
53
|
+
? SECURITY_REVIEW_INSTRUCTION
|
|
54
|
+
: result.codeReview
|
|
55
|
+
? CODE_REVIEW_RESULT_INSTRUCTION
|
|
56
|
+
: result.autoTest
|
|
57
|
+
? AUTO_TEST_RESULT_INSTRUCTION
|
|
58
|
+
: completed
|
|
59
|
+
? '整轮已结束,按 messages 顺序原样展示本轮完成说明,保留服务端返回的内容、预览链接和后续引导。不改写为步骤表或结束卡片,不以 taskProgress.markdown 替代原始回复。'
|
|
60
|
+
: result.taskProgress
|
|
61
|
+
? '每次查询都展示 taskProgress.markdown 进度卡,即使 changed 为 false 也展示。按 Glow 开发中列表展示当前返回的功能和步骤,不从历史消息补回已完成的功能或旧步骤;等待中的功能只展示标题与状态。不追加执行详情或工具次数。界面支持原位更新时按 taskProgress.id 更新同一张卡,否则每次展示当前快照。保留状态待同步提示,不虚构阶段或百分比。'
|
|
62
|
+
: '';
|
|
60
63
|
const waitInstruction = action.requiresUserInput
|
|
61
64
|
? result.codeReview
|
|
62
65
|
? '后续动作需要用户明确授权;若用户已明确要求审查后接着测试,满足当前结果条件后沿用该授权,无需重复确认。否则等待用户选择,不自动修复未确认的业务规则或发布。'
|
|
@@ -83,6 +86,9 @@ export function buildNextActions(result, config) {
|
|
|
83
86
|
function nextActionsForState(result, config) {
|
|
84
87
|
// 显式保留连接地址,避免调用方执行下一步时切回默认环境;凭据不进入命令。
|
|
85
88
|
const command = [COMMAND_NAME, '--endpoint', config.endpoint, '--locale', config.locale, 'chat'];
|
|
89
|
+
const securityActions = securityNextActions(result, command);
|
|
90
|
+
if (securityActions)
|
|
91
|
+
return securityActions;
|
|
86
92
|
const styleActions = styleNextActions(result, command);
|
|
87
93
|
if (styleActions)
|
|
88
94
|
return styleActions;
|
|
@@ -269,7 +275,7 @@ function developmentActions(result, command) {
|
|
|
269
275
|
? `先展示本轮原始结果。${routingInstruction('preview')} 单端使用“本轮创作已完成,点击〔查看预览〕查看效果。”;多端使用“本轮创作已完成,可以分别查看以下入口:”,随后逐端列出链接,并说明“点击对应链接查看各端效果。以上为预览链接,本次改动尚未正式发布。”;只有可确认本次改动尚未发布时才使用后一状态说明,否则仅说明预览不代表发布。〔链接〕必须替换为真实可点击链接。`
|
|
270
276
|
: '先按 messages 顺序展示原始对话,不把规划确认当作研发完成。';
|
|
271
277
|
const multiple = result.development?.routing?.hasMultipleSides === true;
|
|
272
|
-
const instruction = `${previewInstruction}
|
|
278
|
+
const instruction = `${previewInstruction} 接着说明“接下来,你可以:”,然后按以下五条独立列表原样展示,不合并或改名:\n- **代码审查**:检查本轮改动。\n- **自动测试**:${multiple ? '告诉我需要验证哪个端的什么功能。' : '验证指定功能。'}\n- **安全扫描**:检查项目安全风险,必要时自动修复并生成审计报告。\n- **继续创作**:${multiple ? '告诉我想调整哪个端、什么功能。' : '告诉我想新增或调整的内容。'}\n- **上线运营**:将本次成果发布为正式版本。`;
|
|
273
279
|
return [
|
|
274
280
|
{
|
|
275
281
|
action: 'CODE_REVIEW',
|
|
@@ -283,6 +289,12 @@ function developmentActions(result, command) {
|
|
|
283
289
|
requiresUserInput: true,
|
|
284
290
|
command: [...command, 'test', '--', result.sessionId],
|
|
285
291
|
},
|
|
292
|
+
{
|
|
293
|
+
action: 'SECURITY_SCAN',
|
|
294
|
+
instruction: `${instruction} 用户选择安全扫描或安全审查后直接执行,不增加费用或耗时提示、二次确认、检查项选择。默认执行全部可用检查项;用户主动指定范围时用 --check 传实际 category,不扩大范围。已有扫描时跟进本次进度,修复由后端自动推进,不重复发送扫描或修复聊天消息。`,
|
|
295
|
+
requiresUserInput: true,
|
|
296
|
+
command: [...command, 'security', '--', result.sessionId],
|
|
297
|
+
},
|
|
286
298
|
{
|
|
287
299
|
action: 'CONTINUE_CHAT',
|
|
288
300
|
instruction: `${instruction} 用户直接提出需求后,将原文放入 content,通过 --input - 继续当前会话;不强制先回复继续研发或选择推荐功能。如果有 details.features,保留真实 id、标题和说明供参考;只有用户明确选择其中条目时,才使用对应 interactionId 的 SELECT 和 featureIds 提交,不默认全选。`,
|
|
@@ -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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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import type { CreationResult, NextAction } from '../contracts/cli-output.js';
|
|
2
|
+
import type { SessionView } from '../contracts/node-wire.js';
|
|
3
|
+
import type { SecurityReviewApi } from '../api/security-review-api.js';
|
|
4
|
+
import type { SecurityReviewView } from '../contracts/security-review.js';
|
|
5
|
+
/** 只从当前轮认领扫描;不把历史扫描或继承到普通研发轮的标记当成当前任务。 */
|
|
6
|
+
export declare function roundSecurityReviewId(view: SessionView, round?: import("zod").objectOutputType<{
|
|
7
|
+
roundId: import("zod").ZodString;
|
|
8
|
+
sessionId: import("zod").ZodString;
|
|
9
|
+
anchorUserMessageId: import("zod").ZodString;
|
|
10
|
+
status: import("zod").ZodEnum<["running", "completed", "failed", "interrupted"]>;
|
|
11
|
+
time: import("zod").ZodObject<{
|
|
12
|
+
timestamp: import("zod").ZodNumber;
|
|
13
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
14
|
+
timestamp: import("zod").ZodNumber;
|
|
15
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
16
|
+
timestamp: import("zod").ZodNumber;
|
|
17
|
+
}, import("zod").ZodTypeAny, "passthrough">>;
|
|
18
|
+
userItems: import("zod").ZodArray<import("zod").ZodObject<{
|
|
19
|
+
id: import("zod").ZodString;
|
|
20
|
+
kind: import("zod").ZodString;
|
|
21
|
+
variant: import("zod").ZodString;
|
|
22
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
23
|
+
intent: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
|
+
source: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
25
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
26
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
27
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
28
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
29
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
30
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
31
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
32
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
33
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
34
|
+
payload: import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
35
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
36
|
+
id: import("zod").ZodString;
|
|
37
|
+
kind: import("zod").ZodString;
|
|
38
|
+
variant: import("zod").ZodString;
|
|
39
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
40
|
+
intent: import("zod").ZodOptional<import("zod").ZodString>;
|
|
41
|
+
source: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
42
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
43
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
44
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
45
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
46
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
47
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
48
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
49
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
50
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
51
|
+
payload: import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
52
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
53
|
+
id: import("zod").ZodString;
|
|
54
|
+
kind: import("zod").ZodString;
|
|
55
|
+
variant: import("zod").ZodString;
|
|
56
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
57
|
+
intent: import("zod").ZodOptional<import("zod").ZodString>;
|
|
58
|
+
source: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
59
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
60
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
61
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
62
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
63
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
64
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
65
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
66
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
67
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
68
|
+
payload: import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
69
|
+
}, import("zod").ZodTypeAny, "passthrough">>, "many">;
|
|
70
|
+
agentItems: import("zod").ZodArray<import("zod").ZodObject<{
|
|
71
|
+
id: import("zod").ZodString;
|
|
72
|
+
kind: import("zod").ZodString;
|
|
73
|
+
variant: import("zod").ZodString;
|
|
74
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
75
|
+
intent: import("zod").ZodOptional<import("zod").ZodString>;
|
|
76
|
+
source: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
77
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
78
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
79
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
80
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
81
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
82
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
83
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
84
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
85
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
86
|
+
payload: import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
87
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
88
|
+
id: import("zod").ZodString;
|
|
89
|
+
kind: import("zod").ZodString;
|
|
90
|
+
variant: import("zod").ZodString;
|
|
91
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
92
|
+
intent: import("zod").ZodOptional<import("zod").ZodString>;
|
|
93
|
+
source: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
94
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
95
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
96
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
97
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
98
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
99
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
100
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
101
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
102
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
103
|
+
payload: import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
104
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
105
|
+
id: import("zod").ZodString;
|
|
106
|
+
kind: import("zod").ZodString;
|
|
107
|
+
variant: import("zod").ZodString;
|
|
108
|
+
role: import("zod").ZodOptional<import("zod").ZodString>;
|
|
109
|
+
intent: import("zod").ZodOptional<import("zod").ZodString>;
|
|
110
|
+
source: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
111
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
112
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
113
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
114
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
115
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
116
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
117
|
+
messageId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
118
|
+
contentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
119
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
120
|
+
payload: import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
121
|
+
}, import("zod").ZodTypeAny, "passthrough">>, "many">;
|
|
122
|
+
activity: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
123
|
+
meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
124
|
+
}, import("zod").ZodTypeAny, "passthrough"> | undefined): string | undefined;
|
|
125
|
+
export declare function reportMarkdown(value?: string | null): string | undefined;
|
|
126
|
+
export declare function inspectSecurityReview(api: SecurityReviewApi, view: SessionView, requestedId?: string): Promise<CreationResult | undefined>;
|
|
127
|
+
export declare function projectSecurityReview(view: SessionView, review: SecurityReviewView): CreationResult;
|
|
128
|
+
export declare const SECURITY_REVIEW_INSTRUCTION = "\u8FD0\u884C\u4E2D\u53EA\u5C55\u793A\u672C\u6B21\u5B89\u5168\u626B\u63CF\u7684 taskProgress.markdown\uFF0C\u6309\u540C\u4E00 id \u66F4\u65B0\u5217\u8868\uFF1B\u4E0D\u5C55\u793A\u5386\u53F2\u626B\u63CF\u3001\u4E0D\u4F30\u7B97\u767E\u5206\u6BD4\u3001\u4E0D\u628A\u68C0\u67E5\u5B8C\u6210\u89E3\u91CA\u4E3A\u65E0\u98CE\u9669\u3002\u8BC4\u4F30\u548C\u5FC5\u8981\u4FEE\u590D\u7531\u670D\u52A1\u7AEF\u81EA\u52A8\u6267\u884C\uFF0C\u53EA\u5C55\u793A\u9636\u6BB5\u72B6\u6001\uFF0C\u4E0D\u91CD\u590D\u53D1\u9001\u4FEE\u590D\u6307\u4EE4\u3001\u4E0D\u589E\u52A0\u786E\u8BA4\u3001\u4E0D\u5C55\u5F00\u5185\u90E8\u6D3E\u53D1\u6D88\u606F\u3002\u5B8C\u6210\u540E\u4F9D\u636E securityReview.reportResult \u5C55\u793A\u7B80\u6D01\u7ED3\u679C\u6458\u8981\uFF1A\u5B9E\u9645\u53D1\u73B0\u7684\u95EE\u9898\u53CA\u98CE\u9669\u3001\u5DF2\u5904\u7406\u5185\u5BB9\u3001\u672A\u5904\u7406\u4E8B\u9879\u548C\u5FC5\u8981\u7684\u672A\u8986\u76D6\u8303\u56F4\uFF0C\u6570\u91CF\u4E0E\u7ED3\u8BBA\u5FC5\u987B\u6709\u62A5\u544A\u4F9D\u636E\u3002\u4E0D\u5C55\u5F00\u5B8C\u6574\u62A5\u544A\u6B63\u6587\u3001\u4E0D\u63D0\u4F9B\u5B8C\u6574\u62A5\u544A\u6216 PDF \u4E0B\u8F7D\u94FE\u63A5\u3001\u4E0D\u53E6\u884C\u751F\u6210\u62A5\u544A\u6587\u4EF6\u3002\u5BBF\u4E3B\u652F\u6301\u76F4\u63A5\u5185\u5D4C\u5C55\u793A PDF \u65F6\u53EF\u5C55\u793A\u539F PDF\uFF0C\u5426\u5219\u53EA\u5C55\u793A\u7ED3\u679C\u6458\u8981\u3002\u6B63\u5E38\u5B8C\u6210\u540E\u5FC5\u987B\u5728\u6458\u8981\u540E\u63A5\u4E0A\u201C\u63A5\u4E0B\u6765\uFF0C\u4F60\u53EF\u4EE5\uFF1A\u201D\uFF0C\u5C55\u793A nextActions \u4E2D\u7B26\u5408\u6761\u4EF6\u7684\u7EE7\u7EED\u521B\u4F5C\u3001\u81EA\u52A8\u6D4B\u8BD5\u3001\u4E0A\u7EBF\u8FD0\u8425\u4E09\u9879\u5F15\u5BFC\uFF0C\u4E0D\u80FD\u7701\u7565\uFF1B\u82E5\u5B58\u5728\u5F53\u524D\u5FC5\u987B\u5904\u7406\u7684\u963B\u788D\uFF0C\u5148\u8BF4\u660E\u5177\u4F53\u4E8B\u9879\u5E76\u5F15\u5BFC\u5904\u7406\u3002\u771F\u5B9E\u4E1A\u52A1\u63D0\u95EE\u3001\u6267\u884C\u9519\u8BEF\u548C\u4F59\u989D\u4E0D\u8DB3\u4ECD\u987B\u5982\u5B9E\u5C55\u793A\u3002";
|
|
129
|
+
export declare function securityNextActions(result: Pick<CreationResult, 'sessionId' | 'state'> & Partial<CreationResult>, command: string[]): NextAction[] | undefined;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/** 将本次安全扫描投影为会话进度与报告,不另行触发修复。@author xiuyu.yi */
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { text } from '../contracts/value.js';
|
|
4
|
+
import { currentRound, roundMessage } from './round-selector.js';
|
|
5
|
+
import { collectInteractions } from '../interactions/registry.js';
|
|
6
|
+
import { projectText } from './text-projector.js';
|
|
7
|
+
import { SecurityStage, SecurityStatus } from '../contracts/security-review.js';
|
|
8
|
+
import { securityActive } from '../api/security-review-api.js';
|
|
9
|
+
import { CliError } from '../output/exit-codes.js';
|
|
10
|
+
const STATUS_LABELS = ['已跳过', '等待中', '进行中', '已完成', '失败', '已取消'];
|
|
11
|
+
const statusLabel = (status) => STATUS_LABELS[status] ?? '状态待同步';
|
|
12
|
+
const STAGE_LABELS = [
|
|
13
|
+
'正在准备安全检查',
|
|
14
|
+
'安全检查进行中',
|
|
15
|
+
'安全评估进行中',
|
|
16
|
+
'安全修复进行中',
|
|
17
|
+
'审计报告生成中',
|
|
18
|
+
'安全扫描已完成',
|
|
19
|
+
'安全扫描未完成',
|
|
20
|
+
'安全扫描已取消',
|
|
21
|
+
'本次扫描已失效',
|
|
22
|
+
];
|
|
23
|
+
/** 只从当前轮认领扫描;不把历史扫描或继承到普通研发轮的标记当成当前任务。 */
|
|
24
|
+
export function roundSecurityReviewId(view, round = currentRound(view)) {
|
|
25
|
+
if (!round)
|
|
26
|
+
return undefined;
|
|
27
|
+
const card = round.agentItems.find((item) => item.variant === 'security_scan');
|
|
28
|
+
if (card)
|
|
29
|
+
return text(card.payload.reviewId);
|
|
30
|
+
// BFF 会把后台回执并入修复轮,末条 Agent 消息可能已变成 sub_agent_report。
|
|
31
|
+
const anchor = view.pipeline.messages.find((message) => message.messageId === round.anchorUserMessageId);
|
|
32
|
+
const extra = anchor?.roundExtra ?? roundMessage(view, round)?.roundExtra ?? {};
|
|
33
|
+
if (extra.business_type === 'security_remediation')
|
|
34
|
+
return text(extra.securityRemediationReviewId);
|
|
35
|
+
const message = roundMessage(view, round);
|
|
36
|
+
if (message?.roundExtra?.business_type === 'sub_agent_report' &&
|
|
37
|
+
message.roundExtra.securityRemediationAgentMessageId === message.messageId)
|
|
38
|
+
return text(message.roundExtra.securityRemediationReviewId);
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
function ownedRound(view, round, reviewId) {
|
|
42
|
+
return roundSecurityReviewId(view, round) === reviewId;
|
|
43
|
+
}
|
|
44
|
+
export function reportMarkdown(value) {
|
|
45
|
+
if (!value?.trim())
|
|
46
|
+
return undefined;
|
|
47
|
+
try {
|
|
48
|
+
const parsed = JSON.parse(value);
|
|
49
|
+
if (typeof parsed === 'string')
|
|
50
|
+
return parsed.trim() || undefined;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
/* 报告已是 Markdown 时直接保留。 */
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
const cell = (value) => value.replace(/\|/g, '\\|').replace(/[\r\n]+/g, ' ');
|
|
58
|
+
export async function inspectSecurityReview(api, view, requestedId) {
|
|
59
|
+
const reviewId = requestedId ?? roundSecurityReviewId(view);
|
|
60
|
+
if (!reviewId)
|
|
61
|
+
return undefined;
|
|
62
|
+
let review = await api.query(view.session.sessionId, reviewId);
|
|
63
|
+
if (!review.found)
|
|
64
|
+
throw new CliError('INVALID_ARGUMENT', '未找到指定安全扫描,请核对扫描 ID', {
|
|
65
|
+
sessionId: view.session.sessionId,
|
|
66
|
+
reviewId,
|
|
67
|
+
});
|
|
68
|
+
if (!securityActive(review))
|
|
69
|
+
review = await api.query(view.session.sessionId, reviewId, true);
|
|
70
|
+
if (!review.found)
|
|
71
|
+
throw new CliError('PROTOCOL_ERROR', '本次安全扫描详情暂未同步,请继续查询', {
|
|
72
|
+
sessionId: view.session.sessionId,
|
|
73
|
+
reviewId,
|
|
74
|
+
});
|
|
75
|
+
return projectSecurityReview(view, review);
|
|
76
|
+
}
|
|
77
|
+
export function projectSecurityReview(view, review) {
|
|
78
|
+
const reviewId = review.reviewId;
|
|
79
|
+
const stage = review.stage;
|
|
80
|
+
const body = reportMarkdown(review.reportResult);
|
|
81
|
+
const ready = stage === SecurityStage.COMPLETED &&
|
|
82
|
+
review.reportStatus === SecurityStatus.SUCCEEDED &&
|
|
83
|
+
!!body &&
|
|
84
|
+
Array.isArray(review.checks);
|
|
85
|
+
let state = ready
|
|
86
|
+
? 'COMPLETED'
|
|
87
|
+
: stage === SecurityStage.CANCELLED
|
|
88
|
+
? 'CANCELLED'
|
|
89
|
+
: stage === SecurityStage.FAILED || stage === SecurityStage.INVALIDATED
|
|
90
|
+
? 'FAILED'
|
|
91
|
+
: 'RUNNING';
|
|
92
|
+
const owned = (view.pipeline.render?.rounds ?? []).filter((round) => ownedRound(view, round, reviewId));
|
|
93
|
+
// 普通功能推荐不是扫描需要用户回答的问题。真实修复交互仍沿用原协议。
|
|
94
|
+
const bindings = securityActive(review)
|
|
95
|
+
? collectInteractions(view).filter((binding) => owned.some((round) => round.roundId === binding.round.roundId) &&
|
|
96
|
+
binding.interaction.kind !== 'SELECT_FEATURES')
|
|
97
|
+
: [];
|
|
98
|
+
if (bindings.length)
|
|
99
|
+
state = 'NEEDS_INPUT';
|
|
100
|
+
const current = owned.at(-1);
|
|
101
|
+
let notice = STAGE_LABELS[stage ?? 0] ?? '扫描状态待同步';
|
|
102
|
+
if (stage === SecurityStage.COMPLETED && !ready)
|
|
103
|
+
notice = '审计报告正在同步,请继续等待';
|
|
104
|
+
if (stage === SecurityStage.INVALIDATED)
|
|
105
|
+
notice = '安全修复未完成,本次扫描结果已失效,请重新扫描';
|
|
106
|
+
if (stage === SecurityStage.FAILED && review.reportStatus === SecurityStatus.FAILED)
|
|
107
|
+
notice = '审计报告生成失败,可重试生成报告,无需重新扫描或修复';
|
|
108
|
+
if (review.reportStatus === SecurityStatus.SKIPPED && !securityActive(review))
|
|
109
|
+
notice += ';本次未生成审计报告';
|
|
110
|
+
const rows = (review.checks ?? []).map((check) => [
|
|
111
|
+
check.label || check.category,
|
|
112
|
+
check.statusDesc || statusLabel(check.status),
|
|
113
|
+
]);
|
|
114
|
+
rows.push(['安全评估', review.assessmentStatus == null ? '等待中' : statusLabel(review.assessmentStatus)], [
|
|
115
|
+
'安全修复',
|
|
116
|
+
review.remediationStatus === SecurityStatus.SKIPPED
|
|
117
|
+
? '无需修复'
|
|
118
|
+
: review.remediationStatus == null
|
|
119
|
+
? '等待中'
|
|
120
|
+
: statusLabel(review.remediationStatus),
|
|
121
|
+
], [
|
|
122
|
+
'审计报告',
|
|
123
|
+
review.reportStatus == null ? '等待中' : review.reportStatusDesc || statusLabel(review.reportStatus),
|
|
124
|
+
]);
|
|
125
|
+
const markdown = [
|
|
126
|
+
`**本次安全扫描${review.reviewSeqNo === undefined ? '' : `(第 ${review.reviewSeqNo} 次)`}**`,
|
|
127
|
+
'',
|
|
128
|
+
notice,
|
|
129
|
+
'',
|
|
130
|
+
'| 检查项 | 状态 |',
|
|
131
|
+
'| --- | --- |',
|
|
132
|
+
...rows.map(([name, label]) => `| ${cell(name)} | ${cell(label)} |`),
|
|
133
|
+
].join('\n');
|
|
134
|
+
const id = `security:${reviewId}`;
|
|
135
|
+
const taskStatus = state === 'COMPLETED'
|
|
136
|
+
? 'completed'
|
|
137
|
+
: state === 'FAILED'
|
|
138
|
+
? 'failed'
|
|
139
|
+
: state === 'CANCELLED'
|
|
140
|
+
? 'interrupted'
|
|
141
|
+
: state === 'NEEDS_INPUT'
|
|
142
|
+
? 'needs_input'
|
|
143
|
+
: 'running';
|
|
144
|
+
const messages = ready
|
|
145
|
+
? [
|
|
146
|
+
{
|
|
147
|
+
id: `${id}:report`,
|
|
148
|
+
role: 'assistant',
|
|
149
|
+
text: '本次安全扫描已完成。',
|
|
150
|
+
},
|
|
151
|
+
]
|
|
152
|
+
: bindings.length
|
|
153
|
+
? projectText(owned).messages.filter((message) => message.role === 'assistant')
|
|
154
|
+
: state === 'FAILED' || state === 'CANCELLED'
|
|
155
|
+
? [{ id: `${id}:result`, role: 'assistant', text: notice }]
|
|
156
|
+
: [];
|
|
157
|
+
const { found: _found, ...details } = review;
|
|
158
|
+
return {
|
|
159
|
+
state,
|
|
160
|
+
sessionId: view.session.sessionId,
|
|
161
|
+
topic: view.session.topic,
|
|
162
|
+
messageId: roundMessage(view, current)?.messageId,
|
|
163
|
+
replyMessageId: current?.anchorUserMessageId,
|
|
164
|
+
messages,
|
|
165
|
+
progress: [],
|
|
166
|
+
interactions: bindings.map((binding) => binding.interaction),
|
|
167
|
+
securityReview: { ...details, reviewId, reportResult: ready ? body : undefined },
|
|
168
|
+
taskProgress: {
|
|
169
|
+
id,
|
|
170
|
+
revision: createHash('sha256').update(markdown).digest('hex').slice(0, 16),
|
|
171
|
+
activeCount: state === 'RUNNING' || state === 'NEEDS_INPUT' ? 1 : 0,
|
|
172
|
+
tasks: [{ id, kind: 'security', title: '安全扫描', status: taskStatus, detail: notice }],
|
|
173
|
+
markdown,
|
|
174
|
+
complete: Array.isArray(review.checks),
|
|
175
|
+
warnings: [],
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
export const SECURITY_REVIEW_INSTRUCTION = '运行中只展示本次安全扫描的 taskProgress.markdown,按同一 id 更新列表;不展示历史扫描、不估算百分比、不把检查完成解释为无风险。评估和必要修复由服务端自动执行,只展示阶段状态,不重复发送修复指令、不增加确认、不展开内部派发消息。完成后依据 securityReview.reportResult 展示简洁结果摘要:实际发现的问题及风险、已处理内容、未处理事项和必要的未覆盖范围,数量与结论必须有报告依据。不展开完整报告正文、不提供完整报告或 PDF 下载链接、不另行生成报告文件。宿主支持直接内嵌展示 PDF 时可展示原 PDF,否则只展示结果摘要。正常完成后必须在摘要后接上“接下来,你可以:”,展示 nextActions 中符合条件的继续创作、自动测试、上线运营三项引导,不能省略;若存在当前必须处理的阻碍,先说明具体事项并引导处理。真实业务提问、执行错误和余额不足仍须如实展示。';
|
|
180
|
+
export function securityNextActions(result, command) {
|
|
181
|
+
const review = result.securityReview;
|
|
182
|
+
if (!review || result.interactions?.length)
|
|
183
|
+
return undefined;
|
|
184
|
+
const target = ['--review-id', review.reviewId, '--', result.sessionId];
|
|
185
|
+
if (['ACCEPTED', 'RUNNING', 'QUEUED'].includes(result.state))
|
|
186
|
+
return [
|
|
187
|
+
{
|
|
188
|
+
action: 'WAIT_SECURITY_SCAN',
|
|
189
|
+
requiresUserInput: false,
|
|
190
|
+
instruction: '持续跟进本次扫描直到报告生成,不把扫描消息结束或修复任务启动当作完成,不展示后置菜单。',
|
|
191
|
+
command: [
|
|
192
|
+
...command,
|
|
193
|
+
'wait',
|
|
194
|
+
...(result.taskProgress?.revision ? ['--progress-revision', result.taskProgress.revision] : []),
|
|
195
|
+
...target,
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
action: 'CANCEL_SECURITY_SCAN',
|
|
200
|
+
when: '仅在用户主动要求停止本次扫描或自动修复时执行;不作为等待期间的操作菜单展示。',
|
|
201
|
+
requiresUserInput: true,
|
|
202
|
+
instruction: '用户明确要求停止后,取消本次扫描及自动修复,不调用普通会话停止命令。',
|
|
203
|
+
command: [...command, 'stop', ...target],
|
|
204
|
+
},
|
|
205
|
+
];
|
|
206
|
+
if (result.state !== 'COMPLETED')
|
|
207
|
+
return [
|
|
208
|
+
{
|
|
209
|
+
action: review.stage === SecurityStage.FAILED && review.reportStatus === SecurityStatus.FAILED
|
|
210
|
+
? 'RETRY_SECURITY_REPORT'
|
|
211
|
+
: 'RESTART_SECURITY_SCAN',
|
|
212
|
+
requiresUserInput: true,
|
|
213
|
+
instruction: review.stage === SecurityStage.FAILED && review.reportStatus === SecurityStatus.FAILED
|
|
214
|
+
? '说明报告生成失败。用户要求重试时只重试报告,不重新扫描或修复。'
|
|
215
|
+
: '如实说明扫描失败、取消或失效的状态与原因。用户要求重新扫描后再执行,不自动重启。',
|
|
216
|
+
command: review.stage === SecurityStage.FAILED && review.reportStatus === SecurityStatus.FAILED
|
|
217
|
+
? [...command, 'security', '--retry-report', review.reviewId, '--', result.sessionId]
|
|
218
|
+
: [...command, 'security', '--', result.sessionId],
|
|
219
|
+
},
|
|
220
|
+
];
|
|
221
|
+
const when = '扫描及报告已完成,且没有当前必须优先处理的遗留问题或阻碍时展示。仅有未来接入真实数据等条件下才需要处理的注意事项时,先说明该事项,再照常展示完成后的三项引导,不省略菜单,也不宣称无风险。';
|
|
222
|
+
return [
|
|
223
|
+
{
|
|
224
|
+
action: 'CONTINUE_CHAT',
|
|
225
|
+
when,
|
|
226
|
+
requiresUserInput: true,
|
|
227
|
+
instruction: '展示“- **继续创作**:告诉我想新增或调整的内容。”,收到需求后原样提交 content。',
|
|
228
|
+
command: [...command, 'send', '--input', '-', '--', result.sessionId],
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
action: 'AUTO_TEST',
|
|
232
|
+
when,
|
|
233
|
+
requiresUserInput: true,
|
|
234
|
+
instruction: '展示“- **自动测试**:验证相关功能或修复效果。”,用户选择后按实际范围执行。',
|
|
235
|
+
command: [...command, 'test', '--', result.sessionId],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
action: 'REVIEW_PUBLISH',
|
|
239
|
+
when,
|
|
240
|
+
requiresUserInput: true,
|
|
241
|
+
instruction: '展示“- **上线运营**:将成果发布为正式版本。”,只有用户明确要求上线才按现有发布流程执行。',
|
|
242
|
+
command: [...command, 'publish', 'status', '--for-launch', '--', result.sessionId],
|
|
243
|
+
},
|
|
244
|
+
];
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=security-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-review.js","sourceRoot":"","sources":["../../src/conversation/security-review.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;AACzE,MAAM,YAAY,GAAG;IACnB,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,qBAAqB,CAAC,IAAiB,EAAE,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC;IAC/E,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,qDAAqD;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;IAChF,IAAI,KAAK,CAAC,aAAa,KAAK,sBAAsB;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnG,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,IACE,OAAO,EAAE,UAAU,EAAE,aAAa,KAAK,kBAAkB;QACzD,OAAO,CAAC,UAAU,CAAC,iCAAiC,KAAK,OAAO,CAAC,SAAS;QAE1E,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB,EAAE,KAAgB,EAAE,QAAgB;IACvE,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,QAAQ,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAsB,EACtB,IAAiB,EACjB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,WAAW,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,KAAK;QACf,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,EAAE;YAC3D,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,QAAQ;SACT,CAAC,CAAC;IACL,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAAE,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9F,IAAI,CAAC,MAAM,CAAC,KAAK;QACf,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,EAAE;YACzD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,QAAQ;SACT,CAAC,CAAC;IACL,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAiB,EAAE,MAA0B;IACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAS,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,KAAK,GACT,KAAK,KAAK,aAAa,CAAC,SAAS;QACjC,MAAM,CAAC,YAAY,KAAK,cAAc,CAAC,SAAS;QAChD,CAAC,CAAC,IAAI;QACN,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,KAAK,GAA4B,KAAK;QACxC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS;YACjC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,KAAK,KAAK,aAAa,CAAC,WAAW;gBACrE,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,SAAS,CAAC;IAClB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxG,oCAAoC;IACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,CAC9B,CAAC,OAAO,EAAE,EAAE,CACV,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9D,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,iBAAiB,CACjD;QACH,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,QAAQ,CAAC,MAAM;QAAE,KAAK,GAAG,aAAa,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC;IACnD,IAAI,KAAK,KAAK,aAAa,CAAC,SAAS,IAAI,CAAC,KAAK;QAAE,MAAM,GAAG,gBAAgB,CAAC;IAC3E,IAAI,KAAK,KAAK,aAAa,CAAC,WAAW;QAAE,MAAM,GAAG,yBAAyB,CAAC;IAC5E,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,cAAc,CAAC,MAAM;QACjF,MAAM,GAAG,4BAA4B,CAAC;IACxC,IAAI,MAAM,CAAC,YAAY,KAAK,cAAc,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC3E,MAAM,IAAI,YAAY,CAAC;IACzB,MAAM,IAAI,GAAuB,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACpE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ;QAC7B,KAAK,CAAC,UAAU,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CACP,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EACxF;QACE,MAAM;QACN,MAAM,CAAC,iBAAiB,KAAK,cAAc,CAAC,OAAO;YACjD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI;gBAChC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC;KAC5C,EACD;QACE,MAAM;QACN,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;KAClG,CACF,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,WAAW,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,KAAK,IAAI;QACpF,EAAE;QACF,MAAM;QACN,EAAE;QACF,cAAc;QACd,eAAe;QACf,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,EAAE,GAAG,YAAY,QAAQ,EAAE,CAAC;IAClC,MAAM,UAAU,GACd,KAAK,KAAK,WAAW;QACnB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,KAAK,KAAK,QAAQ;YAClB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,KAAK,KAAK,WAAW;gBACrB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,KAAK,KAAK,aAAa;oBACvB,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,SAAS,CAAC;IACtB,MAAM,QAAQ,GAA+B,KAAK;QAChD,CAAC,CAAC;YACE;gBACE,EAAE,EAAE,GAAG,EAAE,SAAS;gBAClB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,YAAY;aACnB;SACF;QACH,CAAC,CAAC,QAAQ,CAAC,MAAM;YACf,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;YAC/E,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW;gBAC3C,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC3D,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;IAC7C,OAAO;QACL,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;QACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS;QACjD,cAAc,EAAE,OAAO,EAAE,mBAAmB;QAC5C,QAAQ;QACR,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5D,cAAc,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;QAChF,YAAY,EAAE;YACZ,EAAE;YACF,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1E,WAAW,EAAE,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACpF,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GACtC,uZAAuZ,CAAC;AAE1Z,MAAM,UAAU,mBAAmB,CACjC,MAA6E,EAC7E,OAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IACrC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IAC7D,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1D,OAAO;YACL;gBACE,MAAM,EAAE,oBAAoB;gBAC5B,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,6CAA6C;gBAC1D,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV,MAAM;oBACN,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/F,GAAG,MAAM;iBACV;aACF;YACD;gBACE,MAAM,EAAE,sBAAsB;gBAC9B,IAAI,EAAE,wCAAwC;gBAC9C,iBAAiB,EAAE,IAAI;gBACvB,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;aACzC;SACF,CAAC;IACJ,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;QAC9B,OAAO;YACL;gBACE,MAAM,EACJ,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,cAAc,CAAC,MAAM;oBACpF,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,uBAAuB;gBAC7B,iBAAiB,EAAE,IAAI;gBACvB,WAAW,EACT,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,cAAc,CAAC,MAAM;oBACpF,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,0CAA0C;gBAChD,OAAO,EACL,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,cAAc,CAAC,MAAM;oBACpF,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;oBACrF,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;aACvD;SACF,CAAC;IACJ,MAAM,IAAI,GACR,+FAA+F,CAAC;IAClG,OAAO;QACL;YACE,MAAM,EAAE,eAAe;YACvB,IAAI;YACJ,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,iDAAiD;YAC9D,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;SACtE;QACD;YACE,MAAM,EAAE,WAAW;YACnB,IAAI;YACJ,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;SACtD;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI;YACJ,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,kDAAkD;YAC/D,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;SACnF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,6 +4,8 @@ import type { ConversationApi } from '../api/conversation-api.js';
|
|
|
4
4
|
import type { AgentCommandApi } from '../api/agent-command-api.js';
|
|
5
5
|
import type { StyleWaitTarget } from '../interactions/parsers/style-selection.js';
|
|
6
6
|
export type WaitOptions = {
|
|
7
|
+
/** 跨越扫描和自动修复消息轮次,始终跟进同一次扫描。 */
|
|
8
|
+
reviewId?: string;
|
|
7
9
|
timeout?: number;
|
|
8
10
|
interval?: number;
|
|
9
11
|
messageId?: string;
|
|
@@ -22,7 +24,7 @@ export declare class SessionWaiter {
|
|
|
22
24
|
conversation: ConversationApi;
|
|
23
25
|
command: AgentCommandApi;
|
|
24
26
|
load: (sessionId: string) => Promise<SessionView>;
|
|
25
|
-
inspect: (view: SessionView, styleTarget?: StyleWaitTarget) => Promise<CreationResult>;
|
|
27
|
+
inspect: (view: SessionView, styleTarget?: StyleWaitTarget, reviewId?: string) => Promise<CreationResult>;
|
|
26
28
|
/** 只展示过程,不结束等待,也不参与整体状态判断。 */
|
|
27
29
|
onProgress?: (result: CreationResult) => void;
|
|
28
30
|
signal?: AbortSignal;
|