superun-ai-cli 0.1.29 → 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 +22 -2
- package/README.md +46 -4
- 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/session/index.js +36 -1
- package/dist/commands/session/index.js.map +1 -1
- package/dist/commands/shared.d.ts +6 -0
- package/dist/commands/shared.js +81 -2
- 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 +15 -15
- 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/program.js +2 -0
- package/dist/program.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/dist/session/binding.d.ts +74 -0
- package/dist/session/binding.js +97 -0
- package/dist/session/binding.js.map +1 -0
- package/dist/session/host-context.d.ts +5 -0
- package/dist/session/host-context.js +83 -0
- package/dist/session/host-context.js.map +1 -0
- package/package.json +1 -1
|
@@ -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":"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"}
|
|
@@ -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;
|
|
@@ -80,6 +80,7 @@ export class SessionWaiter {
|
|
|
80
80
|
const replied = new Set(), messages = new Map();
|
|
81
81
|
const progress = new Map();
|
|
82
82
|
let progressRevision = options.progressRevision;
|
|
83
|
+
let reviewId = options.reviewId;
|
|
83
84
|
let responseObserved = !options.requiredMessageId && !options.previousMessageId;
|
|
84
85
|
const inspect = async () => {
|
|
85
86
|
if (!responseObserved) {
|
|
@@ -107,7 +108,9 @@ export class SessionWaiter {
|
|
|
107
108
|
interactions: [],
|
|
108
109
|
taskProgress: submittedTaskProgress(sessionId, options.requiredMessageId ?? options.previousMessageId ?? sessionId),
|
|
109
110
|
};
|
|
110
|
-
|
|
111
|
+
const result = await this.dependencies.inspect(view, options.styleTarget, reviewId);
|
|
112
|
+
reviewId ??= result.securityReview?.reviewId;
|
|
113
|
+
return result;
|
|
111
114
|
};
|
|
112
115
|
while (true) {
|
|
113
116
|
if (this.dependencies.signal?.aborted)
|
|
@@ -165,7 +168,7 @@ export class SessionWaiter {
|
|
|
165
168
|
progressRevision = result.taskProgress.revision;
|
|
166
169
|
}
|
|
167
170
|
const hint = view.pipeline.pollingHint;
|
|
168
|
-
const interval = Math.max((options.interval ?? 0) * 1000, hint?.nextPollAfterMs ?? (unchanged ? 5000 : 2000));
|
|
171
|
+
const interval = Math.max(reviewId ? 5000 : 0, (options.interval ?? 0) * 1000, hint?.nextPollAfterMs ?? (unchanged ? 5000 : 2000));
|
|
169
172
|
try {
|
|
170
173
|
await delay(Math.min(Math.max(interval, 100), deadline - Date.now()), undefined, {
|
|
171
174
|
signal: this.dependencies.signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-waiter.js","sourceRoot":"","sources":["../../src/conversation/session-waiter.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,SAAS,oBAAoB,CAAC,MAAsB,EAAE,WAA6B;IACjF,OAAO,CACL,MAAM,CAAC,KAAK,KAAK,SAAS;QAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY;QAC7B,CAAC,CAAC,WAAW;YACX,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC;QAChG,iBAAiB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CACnD,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"session-waiter.js","sourceRoot":"","sources":["../../src/conversation/session-waiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,11 @@ export declare const wizardDraftSchema: z.ZodObject<{
|
|
|
18
18
|
id: z.ZodString;
|
|
19
19
|
label: z.ZodString;
|
|
20
20
|
}, "strip", z.ZodTypeAny, {
|
|
21
|
-
id: string;
|
|
22
21
|
label: string;
|
|
23
|
-
}, {
|
|
24
22
|
id: string;
|
|
23
|
+
}, {
|
|
25
24
|
label: string;
|
|
25
|
+
id: string;
|
|
26
26
|
}>>;
|
|
27
27
|
skills: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
28
28
|
id: z.ZodString;
|
|
@@ -31,13 +31,13 @@ export declare const wizardDraftSchema: z.ZodObject<{
|
|
|
31
31
|
description: z.ZodOptional<z.ZodString>;
|
|
32
32
|
}, "strip", z.ZodTypeAny, {
|
|
33
33
|
type: "custom" | "builtin";
|
|
34
|
-
id: string;
|
|
35
34
|
label: string;
|
|
35
|
+
id: string;
|
|
36
36
|
description?: string | undefined;
|
|
37
37
|
}, {
|
|
38
38
|
type: "custom" | "builtin";
|
|
39
|
-
id: string;
|
|
40
39
|
label: string;
|
|
40
|
+
id: string;
|
|
41
41
|
description?: string | undefined;
|
|
42
42
|
}>, "many">>;
|
|
43
43
|
agentId: z.ZodOptional<z.ZodString>;
|
|
@@ -46,15 +46,15 @@ export declare const wizardDraftSchema: z.ZodObject<{
|
|
|
46
46
|
confirmed: z.ZodDefault<z.ZodBoolean>;
|
|
47
47
|
quick: z.ZodDefault<z.ZodBoolean>;
|
|
48
48
|
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
stage: "description" | "skills" | "rewrite" | "memory" | "memory_name" | "memory_existing" | "confirm" | "terminate";
|
|
50
|
+
revision: number;
|
|
51
|
+
description: string;
|
|
49
52
|
skills: {
|
|
50
53
|
type: "custom" | "builtin";
|
|
51
|
-
id: string;
|
|
52
54
|
label: string;
|
|
55
|
+
id: string;
|
|
53
56
|
description?: string | undefined;
|
|
54
57
|
}[];
|
|
55
|
-
description: string;
|
|
56
|
-
revision: number;
|
|
57
|
-
stage: "skills" | "description" | "rewrite" | "memory" | "memory_name" | "memory_existing" | "confirm" | "terminate";
|
|
58
58
|
builtinFileSelected: boolean;
|
|
59
59
|
builtinWebSelected: boolean;
|
|
60
60
|
memoryMode: "none" | "new" | "existing";
|
|
@@ -62,33 +62,33 @@ export declare const wizardDraftSchema: z.ZodObject<{
|
|
|
62
62
|
checkpoint: "editing" | "agent_pending" | "memory_pending" | "reply_pending" | "complete" | "stop_pending" | "stopped";
|
|
63
63
|
confirmed: boolean;
|
|
64
64
|
quick: boolean;
|
|
65
|
-
previousStage?: "
|
|
65
|
+
previousStage?: "description" | "skills" | "rewrite" | "memory" | "memory_name" | "memory_existing" | "confirm" | "terminate" | undefined;
|
|
66
66
|
undoDescription?: string | undefined;
|
|
67
67
|
existingMemory?: {
|
|
68
|
-
id: string;
|
|
69
68
|
label: string;
|
|
69
|
+
id: string;
|
|
70
70
|
} | undefined;
|
|
71
71
|
agentId?: string | undefined;
|
|
72
72
|
memoryStoreId?: string | undefined;
|
|
73
73
|
}, {
|
|
74
|
-
|
|
74
|
+
stage: "description" | "skills" | "rewrite" | "memory" | "memory_name" | "memory_existing" | "confirm" | "terminate";
|
|
75
75
|
revision: number;
|
|
76
|
-
|
|
76
|
+
description: string;
|
|
77
77
|
skills?: {
|
|
78
78
|
type: "custom" | "builtin";
|
|
79
|
-
id: string;
|
|
80
79
|
label: string;
|
|
80
|
+
id: string;
|
|
81
81
|
description?: string | undefined;
|
|
82
82
|
}[] | undefined;
|
|
83
|
-
previousStage?: "
|
|
83
|
+
previousStage?: "description" | "skills" | "rewrite" | "memory" | "memory_name" | "memory_existing" | "confirm" | "terminate" | undefined;
|
|
84
84
|
undoDescription?: string | undefined;
|
|
85
85
|
builtinFileSelected?: boolean | undefined;
|
|
86
86
|
builtinWebSelected?: boolean | undefined;
|
|
87
87
|
memoryMode?: "none" | "new" | "existing" | undefined;
|
|
88
88
|
memoryName?: string | undefined;
|
|
89
89
|
existingMemory?: {
|
|
90
|
-
id: string;
|
|
91
90
|
label: string;
|
|
91
|
+
id: string;
|
|
92
92
|
} | undefined;
|
|
93
93
|
agentId?: string | undefined;
|
|
94
94
|
memoryStoreId?: string | undefined;
|
package/dist/output/writer.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class OutputWriter {
|
|
|
14
14
|
dispose(): void;
|
|
15
15
|
startTaskReminder(): void;
|
|
16
16
|
/** stderr 输出过程事件,stdout 仍只输出一次最终结果。 */
|
|
17
|
-
progress(data: Pick<CreationResult, 'sessionId' | 'messageId' | 'taskProgress'> & Partial<Pick<CreationResult, 'autoTest' | 'codeReview' | 'messages'>>): void;
|
|
17
|
+
progress(data: Pick<CreationResult, 'sessionId' | 'messageId' | 'taskProgress'> & Partial<Pick<CreationResult, 'autoTest' | 'codeReview' | 'securityReview' | 'messages'>>): void;
|
|
18
18
|
write(data: unknown): void;
|
|
19
19
|
fail(error: unknown): number;
|
|
20
20
|
private emit;
|
package/dist/output/writer.js
CHANGED
|
@@ -67,6 +67,8 @@ export class OutputWriter {
|
|
|
67
67
|
}
|
|
68
68
|
if (!data.taskProgress)
|
|
69
69
|
return;
|
|
70
|
+
if (data.securityReview && data.taskProgress.changed === false)
|
|
71
|
+
return;
|
|
70
72
|
this.stderr(`${this.serialize({
|
|
71
73
|
schemaVersion: SCHEMA_VERSION,
|
|
72
74
|
event: 'task_progress',
|
|
@@ -74,10 +76,13 @@ export class OutputWriter {
|
|
|
74
76
|
sessionId: data.sessionId,
|
|
75
77
|
messageId: data.messageId,
|
|
76
78
|
taskProgress: data.taskProgress,
|
|
79
|
+
...(data.securityReview ? { securityReview: data.securityReview } : {}),
|
|
77
80
|
},
|
|
78
|
-
instruction:
|
|
79
|
-
?
|
|
80
|
-
:
|
|
81
|
+
instruction: data.securityReview
|
|
82
|
+
? '展示本次安全扫描的 taskProgress.markdown,按同一 id 更新检查列表和阶段状态,不展示历史扫描或内部修复指令。评估和修复自动推进,无需用户确认。继续等待本次报告,不把检查完成或单条消息结束当作整个流程结束,不重复启动任务。'
|
|
83
|
+
: checkName
|
|
84
|
+
? `展示 data.taskProgress.markdown 中实际任务进度,不把功能步骤数当作${checkName}的问题数或通过数。及时展示 conversation_message 中发现的问题和修复说明。继续等待当前命令的最终结果,不重复提交任务、不展示操作菜单。`
|
|
85
|
+
: '每次查询都展示 data.taskProgress.markdown 中当前开发中的功能及步骤,即使 changed 为 false 也展示;不要从历史消息补回已完成的功能或旧步骤。支持原位更新时按卡片 id 更新,否则每次展示当前快照。不追加执行详情或工具次数。这是过程更新,继续等待当前命令的最终结果,不代表整个任务结束,不重复提交任务。',
|
|
81
86
|
})}\n`);
|
|
82
87
|
}
|
|
83
88
|
write(data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/output/writer.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,MAAM,aAAa,GACjB,qJAAqJ,CAAC;AAExJ,MAAM,OAAO,YAAY;IAkBJ;IACA;IAlBX,OAAO,GAAG,KAAK,CAAC;IACP,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,QAAQ,GAAG,KAAK,CAAC;IACR,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,CAAC,MAAM,CACT,GAAG,IAAI,CAAC,SAAS,CAAC;YAChB,aAAa,EAAE,cAAc;YAC7B,KAAK,EAAE,eAAe;YACtB,IAAI;YACJ,WAAW,EACT,qHAAqH;SACxH,CAAC,IAAI,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,YACmB,SAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EACrE,SAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QADrE,WAAM,GAAN,MAAM,CAA+D;QACrE,WAAM,GAAN,MAAM,CAA+D;IACrF,CAAC;IAEJ,cAAc,CAAC,MAAc;QAC3B,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;QAC5D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,uCAAuC;IACvC,QAAQ,CACN,
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/output/writer.ts"],"names":[],"mappings":"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"}
|
package/dist/program.js
CHANGED
|
@@ -18,6 +18,8 @@ export function createProgram(context, hooks) {
|
|
|
18
18
|
.configureOutput({ writeErr: () => undefined });
|
|
19
19
|
program.hook('preAction', async (_root, action) => {
|
|
20
20
|
context.connection = undefined;
|
|
21
|
+
context.sessionBinding = undefined;
|
|
22
|
+
context.selectedSessionId = undefined;
|
|
21
23
|
const rootCommand = action.parent === program;
|
|
22
24
|
const authCommand = action.parent?.name() === 'auth' && action.parent.parent === program;
|
|
23
25
|
const offline = (rootCommand && (action.name() === 'version' || action.name() === 'update')) ||
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,aAAa,CAC3B,OAAuB,EACvB,KAGC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CACV,iDAAiD,CAClD;SACA,OAAO,CAAC,eAAe,CAAC;SACxB,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC;SAC9C,YAAY,EAAE;SACd,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QACzF,MAAM,OAAO,GACX,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC5E,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO;QAC1C,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,aAAa,CAC3B,OAAuB,EACvB,KAGC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CACV,iDAAiD,CAClD;SACA,OAAO,CAAC,eAAe,CAAC;SACxB,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC;SACpC,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC;SAC9C,YAAY,EAAE;SACd,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QAC/B,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;QACnC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QACzF,MAAM,OAAO,GACX,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC5E,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO;QAC1C,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;YAAE,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { IntegrationApi } from './api/integration-api.js';
|
|
|
7
7
|
import { PluginApi } from './api/plugin-api.js';
|
|
8
8
|
import { PublishApi } from './api/publish-api.js';
|
|
9
9
|
import { PreviewVersionApi } from './api/preview-version-api.js';
|
|
10
|
+
import { SecurityReviewApi } from './api/security-review-api.js';
|
|
10
11
|
import type { ApiClient } from './transport/api-client.js';
|
|
11
12
|
import type { OutputWriter } from './output/writer.js';
|
|
12
13
|
import type { SessionView } from './contracts/node-wire.js';
|
|
@@ -31,6 +32,7 @@ export declare class CreationRuntime {
|
|
|
31
32
|
readonly plugin: PluginApi;
|
|
32
33
|
readonly publish: PublishApi;
|
|
33
34
|
readonly previewVersions: PreviewVersionApi;
|
|
35
|
+
readonly security: SecurityReviewApi;
|
|
34
36
|
readonly waiter: SessionWaiter;
|
|
35
37
|
readonly taskProgress: TaskProgressReader;
|
|
36
38
|
readonly autoTestTasks: AutoTestTasks;
|
|
@@ -38,12 +40,12 @@ export declare class CreationRuntime {
|
|
|
38
40
|
constructor(client: ApiClient, output: OutputWriter);
|
|
39
41
|
load(sessionId: string): Promise<SessionView>;
|
|
40
42
|
choices(sessionId: string, anchor?: string, view?: SessionView): Promise<Array<Choice>>;
|
|
41
|
-
inspect(view: SessionView, styleTarget?: StyleWaitTarget): Promise<CreationResult>;
|
|
43
|
+
inspect(view: SessionView, styleTarget?: StyleWaitTarget, reviewId?: string): Promise<CreationResult>;
|
|
42
44
|
private pluginInteraction;
|
|
43
45
|
/** 普通研发与 QA 修复共用入口交付,运行中或真实业务提问时不额外读取路由。 */
|
|
44
46
|
private attachDevelopmentPreview;
|
|
45
47
|
resolveChecks(view: SessionView): Promise<Pick<CreationResult, 'autoTest' | 'codeReview'>>;
|
|
46
|
-
state(sessionId: string): Promise<CreationResult>;
|
|
48
|
+
state(sessionId: string, reviewId?: string): Promise<CreationResult>;
|
|
47
49
|
withGuidance<T extends GuidanceResult>(result: T): T & {
|
|
48
50
|
nextActions: import("./contracts/cli-output.js").NextAction[];
|
|
49
51
|
toolUsage?: {
|
package/dist/runtime.js
CHANGED
|
@@ -7,6 +7,8 @@ import { IntegrationApi } from './api/integration-api.js';
|
|
|
7
7
|
import { PluginApi } from './api/plugin-api.js';
|
|
8
8
|
import { PublishApi } from './api/publish-api.js';
|
|
9
9
|
import { PreviewVersionApi } from './api/preview-version-api.js';
|
|
10
|
+
import { SecurityReviewApi } from './api/security-review-api.js';
|
|
11
|
+
import { inspectSecurityReview } from './conversation/security-review.js';
|
|
10
12
|
import { enabled, object, text } from './contracts/value.js';
|
|
11
13
|
import { getSuperunHostingDomain } from './config/runtime-config.js';
|
|
12
14
|
import { InteractionDraftStore } from './interactions/draft-store.js';
|
|
@@ -52,6 +54,7 @@ export class CreationRuntime {
|
|
|
52
54
|
plugin;
|
|
53
55
|
publish;
|
|
54
56
|
previewVersions;
|
|
57
|
+
security;
|
|
55
58
|
waiter;
|
|
56
59
|
taskProgress;
|
|
57
60
|
autoTestTasks;
|
|
@@ -69,13 +72,14 @@ export class CreationRuntime {
|
|
|
69
72
|
this.plugin = new PluginApi(client);
|
|
70
73
|
this.publish = new PublishApi(client);
|
|
71
74
|
this.previewVersions = new PreviewVersionApi(client);
|
|
75
|
+
this.security = new SecurityReviewApi(client);
|
|
72
76
|
this.taskProgress = new TaskProgressReader(client);
|
|
73
77
|
this.autoTestTasks = new AutoTestTasks(client);
|
|
74
78
|
this.waiter = new SessionWaiter({
|
|
75
79
|
conversation: this.conversation,
|
|
76
80
|
command: this.command,
|
|
77
81
|
load: (id) => this.load(id),
|
|
78
|
-
inspect: (view, styleTarget) => this.inspect(view, styleTarget),
|
|
82
|
+
inspect: (view, styleTarget, reviewId) => this.inspect(view, styleTarget, reviewId),
|
|
79
83
|
onProgress: (result) => {
|
|
80
84
|
// 静默整理清单时不输出内部进度;真实业务提问仍照常返回。
|
|
81
85
|
if (!result.stylePlanning || (result.interactions.length && !pendingStylePlanApproval(result)))
|
|
@@ -107,7 +111,10 @@ export class CreationRuntime {
|
|
|
107
111
|
return [];
|
|
108
112
|
return projectChoices(await this.query.parallel(sessionId, preReplyMessageId), preReplyMessageId, this.client.config.endpoint);
|
|
109
113
|
}
|
|
110
|
-
async inspect(view, styleTarget) {
|
|
114
|
+
async inspect(view, styleTarget, reviewId) {
|
|
115
|
+
const security = !styleTarget ? await inspectSecurityReview(this.security, view, reviewId) : undefined;
|
|
116
|
+
if (security)
|
|
117
|
+
return security;
|
|
111
118
|
const { autoTest, codeReview } = await this.resolveChecks(view);
|
|
112
119
|
const check = codeReview ?? autoTest;
|
|
113
120
|
const anchor = styleTarget?.preReplyMessageId ?? styleBranchAnchor(view);
|
|
@@ -457,8 +464,8 @@ export class CreationRuntime {
|
|
|
457
464
|
}
|
|
458
465
|
throw new CliError('PROTOCOL_ERROR', '后台回执的来源链存在循环或层数过多,无法确认当前结果');
|
|
459
466
|
}
|
|
460
|
-
async state(sessionId) {
|
|
461
|
-
return this.withGuidance(await this.inspect(await this.load(sessionId)));
|
|
467
|
+
async state(sessionId, reviewId) {
|
|
468
|
+
return this.withGuidance(await this.inspect(await this.load(sessionId), undefined, reviewId));
|
|
462
469
|
}
|
|
463
470
|
withGuidance(result) {
|
|
464
471
|
throwCreditResult(result, this.client.config);
|
|
@@ -481,7 +488,7 @@ export class CreationRuntime {
|
|
|
481
488
|
: visible;
|
|
482
489
|
const completed = {
|
|
483
490
|
...output,
|
|
484
|
-
...(hasCompletedCreationResult(visible)
|
|
491
|
+
...(hasCompletedCreationResult(visible) && !visible.securityReview
|
|
485
492
|
? { toolUsage: this.taskProgress.completionSummary(visible.sessionId, visible.messageId) }
|
|
486
493
|
: {}),
|
|
487
494
|
};
|