superun-ai-cli 0.1.44 → 0.1.65
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 +189 -5
- package/README.md +208 -7
- package/dist/api/agent-query-api.d.ts +27 -0
- package/dist/api/agent-query-api.js +31 -0
- package/dist/api/agent-query-api.js.map +1 -1
- package/dist/api/bill-query-api.d.ts +61 -0
- package/dist/api/bill-query-api.js +92 -0
- package/dist/api/bill-query-api.js.map +1 -0
- package/dist/api/managed-agent-resource-api.d.ts +19 -0
- package/dist/api/managed-agent-resource-api.js +63 -0
- package/dist/api/managed-agent-resource-api.js.map +1 -0
- package/dist/api/market-query-api.d.ts +74 -0
- package/dist/api/market-query-api.js +145 -0
- package/dist/api/market-query-api.js.map +1 -0
- package/dist/api/order-query-api.d.ts +47 -0
- package/dist/api/order-query-api.js +96 -0
- package/dist/api/order-query-api.js.map +1 -0
- package/dist/api/ppt-api.d.ts +258 -0
- package/dist/api/ppt-api.js +111 -0
- package/dist/api/ppt-api.js.map +1 -0
- package/dist/api/publish-api.d.ts +1 -0
- package/dist/api/publish-api.js +3 -0
- package/dist/api/publish-api.js.map +1 -1
- package/dist/api/security-review-api.d.ts +1 -1
- package/dist/api/security-review-api.js +15 -1
- package/dist/api/security-review-api.js.map +1 -1
- package/dist/api/site-analysis-api.d.ts +85 -0
- package/dist/api/site-analysis-api.js +165 -0
- package/dist/api/site-analysis-api.js.map +1 -0
- package/dist/auth/browser-login.d.ts +1 -0
- package/dist/auth/browser-login.js +25 -2
- package/dist/auth/browser-login.js.map +1 -1
- package/dist/auth/credential-status.d.ts +4 -0
- package/dist/auth/credential-status.js +19 -0
- package/dist/auth/credential-status.js.map +1 -0
- package/dist/commands/agent/index.d.ts +3 -0
- package/dist/commands/agent/index.js +68 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/auth/login.js +8 -3
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/status.d.ts +1 -1
- package/dist/commands/auth/status.js +7 -2
- package/dist/commands/auth/status.js.map +1 -1
- package/dist/commands/bill/index.d.ts +3 -0
- package/dist/commands/bill/index.js +106 -0
- package/dist/commands/bill/index.js.map +1 -0
- package/dist/commands/chat/create.js +1 -0
- package/dist/commands/chat/create.js.map +1 -1
- package/dist/commands/chat/interaction.js +39 -6
- package/dist/commands/chat/interaction.js.map +1 -1
- package/dist/commands/chat/message.js +57 -33
- package/dist/commands/chat/message.js.map +1 -1
- package/dist/commands/chat/publish.js +72 -11
- package/dist/commands/chat/publish.js.map +1 -1
- package/dist/commands/chat/security.d.ts +1 -1
- package/dist/commands/chat/security.js +73 -29
- package/dist/commands/chat/security.js.map +1 -1
- package/dist/commands/independent-creation.d.ts +6 -0
- package/dist/commands/independent-creation.js +140 -0
- package/dist/commands/independent-creation.js.map +1 -0
- package/dist/commands/market/index.d.ts +3 -0
- package/dist/commands/market/index.js +111 -0
- package/dist/commands/market/index.js.map +1 -0
- package/dist/commands/order/index.d.ts +3 -0
- package/dist/commands/order/index.js +41 -0
- package/dist/commands/order/index.js.map +1 -0
- package/dist/commands/ppt/index.d.ts +3 -0
- package/dist/commands/ppt/index.js +159 -0
- package/dist/commands/ppt/index.js.map +1 -0
- package/dist/commands/session/diff.d.ts +4 -0
- package/dist/commands/session/diff.js +12 -0
- package/dist/commands/session/diff.js.map +1 -0
- package/dist/commands/session/history.d.ts +3 -0
- package/dist/commands/session/history.js +50 -0
- package/dist/commands/session/history.js.map +1 -0
- package/dist/commands/session/index.js +4 -0
- package/dist/commands/session/index.js.map +1 -1
- package/dist/commands/shared.d.ts +2 -2
- package/dist/commands/shared.js +5 -4
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/site/index.d.ts +3 -0
- package/dist/commands/site/index.js +113 -0
- package/dist/commands/site/index.js.map +1 -0
- package/dist/commands/system/version.js +13 -2
- package/dist/commands/system/version.js.map +1 -1
- package/dist/conversation/agent-friendly.js +2 -2
- package/dist/conversation/managed-agent-create-only.d.ts +26 -0
- package/dist/conversation/managed-agent-create-only.js +287 -0
- package/dist/conversation/managed-agent-create-only.js.map +1 -0
- package/dist/conversation/managed-agent-entry.d.ts +8 -8
- package/dist/conversation/ppt-preflight.d.ts +13 -0
- package/dist/conversation/ppt-preflight.js +68 -0
- package/dist/conversation/ppt-preflight.js.map +1 -0
- package/dist/conversation/project-check-preflight.d.ts +22 -0
- package/dist/conversation/project-check-preflight.js +89 -0
- package/dist/conversation/project-check-preflight.js.map +1 -0
- package/dist/conversation/publish-preflight.d.ts +44 -0
- package/dist/conversation/publish-preflight.js +123 -0
- package/dist/conversation/publish-preflight.js.map +1 -0
- package/dist/conversation/security-entry.d.ts +14 -0
- package/dist/conversation/security-entry.js +49 -0
- package/dist/conversation/security-entry.js.map +1 -0
- package/dist/conversation/security-review.d.ts +1 -1
- package/dist/conversation/security-review.js +1 -1
- package/dist/conversation/security-review.js.map +1 -1
- package/dist/conversation/snapshot-diff.d.ts +44 -0
- package/dist/conversation/snapshot-diff.js +134 -0
- package/dist/conversation/snapshot-diff.js.map +1 -0
- package/dist/interactions/managed-agent-model.d.ts +3 -0
- package/dist/interactions/managed-agent-model.js +2 -0
- package/dist/interactions/managed-agent-model.js.map +1 -1
- package/dist/interactions/managed-agent-wizard.d.ts +1 -1
- package/dist/interactions/managed-agent-wizard.js +38 -6
- package/dist/interactions/managed-agent-wizard.js.map +1 -1
- package/dist/program.js +12 -0
- package/dist/program.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +2 -2
- package/dist/runtime.js.map +1 -1
- package/dist/site-analysis/pagespeed-report.d.ts +48 -0
- package/dist/site-analysis/pagespeed-report.js +163 -0
- package/dist/site-analysis/pagespeed-report.js.map +1 -0
- package/dist/transport/http-client.js +17 -3
- package/dist/transport/http-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CreationRuntime } from '../runtime.js';
|
|
2
|
+
import type { SessionView } from '../contracts/node-wire.js';
|
|
3
|
+
export declare function slidesIntent(value: unknown): boolean | null;
|
|
4
|
+
export declare function pptHead(view: SessionView): {
|
|
5
|
+
role: number;
|
|
6
|
+
messageId: string;
|
|
7
|
+
sessionId: string;
|
|
8
|
+
status?: number | undefined;
|
|
9
|
+
} | undefined;
|
|
10
|
+
export declare function pptPreflight(service: CreationRuntime, sessionId: string, expectedSource?: string): Promise<{
|
|
11
|
+
view: SessionView;
|
|
12
|
+
sourceMessageId: string;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** PPT 专用只读前置校验,不改变通用会话选择和自动衔接。@author xiuyu.yi */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { object } from '../contracts/value.js';
|
|
4
|
+
import { CliError } from '../output/exit-codes.js';
|
|
5
|
+
import { collectInteractions } from '../interactions/registry.js';
|
|
6
|
+
import { hasPendingCreationWork } from './state-resolver.js';
|
|
7
|
+
const chainSchema = z.array(z.object({
|
|
8
|
+
messageId: z.string().min(1),
|
|
9
|
+
sessionId: z.string(),
|
|
10
|
+
role: z.number().int(),
|
|
11
|
+
status: z.number().int().optional(),
|
|
12
|
+
}));
|
|
13
|
+
const TEMPORARY_PREFIXES = ['fake-message-', 'pending-', 'user-', 'assistant-', 'insufficient-credits-'];
|
|
14
|
+
export function slidesIntent(value) {
|
|
15
|
+
return value === '1' || value === 1 ? true : value === '0' || value === 0 ? false : null;
|
|
16
|
+
}
|
|
17
|
+
export function pptHead(view) {
|
|
18
|
+
const parsed = chainSchema.safeParse(object(object(view.pipeline.lanes).chain).messages);
|
|
19
|
+
if (!parsed.success)
|
|
20
|
+
return undefined;
|
|
21
|
+
const persistent = parsed.data.filter((message) => !TEMPORARY_PREFIXES.some((prefix) => message.messageId.startsWith(prefix)) &&
|
|
22
|
+
!/^select-branch-message-.+-batch-\d+$/.test(message.messageId));
|
|
23
|
+
if (persistent.some((message) => message.sessionId !== view.session.sessionId))
|
|
24
|
+
return undefined;
|
|
25
|
+
return persistent.at(-1);
|
|
26
|
+
}
|
|
27
|
+
export async function pptPreflight(service, sessionId, expectedSource) {
|
|
28
|
+
const view = await service.load(sessionId);
|
|
29
|
+
if (view.session.sessionId !== sessionId)
|
|
30
|
+
throw new CliError('PROTOCOL_ERROR', 'PPT 前置查询返回了不同作品');
|
|
31
|
+
if (slidesIntent(view.extra.hasSlidesIntent) !== true)
|
|
32
|
+
throw new CliError('INVALID_ARGUMENT', '当前作品未确认为 PPT 项目,请选择已有 PPT 或新建 PPT 作品', {
|
|
33
|
+
sessionId,
|
|
34
|
+
});
|
|
35
|
+
const compiled = view.session.everDeployed === true ||
|
|
36
|
+
(Number(view.extra.version) >= 2 && slidesIntent(view.extra.hasViewedDemo) === true);
|
|
37
|
+
if (!compiled)
|
|
38
|
+
throw new CliError('INVALID_ARGUMENT', '当前还没有满足幻灯片生成要求的编译演示,请先完成并查看演示', {
|
|
39
|
+
sessionId,
|
|
40
|
+
});
|
|
41
|
+
if (view.session.status !== 3 || view.session.waiting !== false || view.session.errorType)
|
|
42
|
+
throw new CliError('INVALID_ARGUMENT', '当前项目仍在运行、排队、等待回答或异常状态,不能生成或确认本次 PPT', { sessionId, sessionStatus: view.session.status });
|
|
43
|
+
const head = pptHead(view);
|
|
44
|
+
if (!head || head.role !== 2 || head.status !== 1)
|
|
45
|
+
throw new CliError('INVALID_ARGUMENT', '无法确认主线最后一条持久 Agent 消息已正常结束,请先查询项目进度', { sessionId });
|
|
46
|
+
if (expectedSource && head.messageId !== expectedSource)
|
|
47
|
+
throw new CliError('STALE_INTERACTION', 'PPT 来源主线已变化,请重新确认本次操作目标和内容', {
|
|
48
|
+
sessionId,
|
|
49
|
+
sourceMessageId: expectedSource,
|
|
50
|
+
currentSourceMessageId: head.messageId,
|
|
51
|
+
});
|
|
52
|
+
if (!view.pipeline.render || view.session.pendingBranch)
|
|
53
|
+
throw new CliError('INVALID_ARGUMENT', '项目交互状态不完整或仍待选择风格,不能继续 PPT 生成', {
|
|
54
|
+
sessionId,
|
|
55
|
+
});
|
|
56
|
+
const activeSubagentWork = await service.taskProgress.hasPendingSubagentWork(sessionId);
|
|
57
|
+
const checked = { ...view, activeSubagentWork };
|
|
58
|
+
if (activeSubagentWork || hasPendingCreationWork(checked))
|
|
59
|
+
throw new CliError('INVALID_ARGUMENT', '当前仍有后台任务或自动工具未结束,请先等待完成', { sessionId });
|
|
60
|
+
const interactions = collectInteractions(checked);
|
|
61
|
+
if (interactions.length)
|
|
62
|
+
throw new CliError('INVALID_ARGUMENT', '当前还有待回答的问题或选择,请先处理后再生成 PPT', {
|
|
63
|
+
sessionId,
|
|
64
|
+
interactions: interactions.map((binding) => binding.interaction.kind),
|
|
65
|
+
});
|
|
66
|
+
return { view, sourceMessageId: head.messageId };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ppt-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ppt-preflight.js","sourceRoot":"","sources":["../../src/conversation/ppt-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CreationRuntime } from '../runtime.js';
|
|
2
|
+
import { type SessionView } from '../contracts/node-wire.js';
|
|
3
|
+
/** 只验证编辑权限与暂存契约,不强加写入阶段门禁。 */
|
|
4
|
+
export declare function projectEditingState(service: CreationRuntime, sessionId: string): Promise<{
|
|
5
|
+
hasStaging: boolean;
|
|
6
|
+
files: unknown[];
|
|
7
|
+
}>;
|
|
8
|
+
/** 物理主线选取保持统一;不回退到混合展示末轮。 */
|
|
9
|
+
export declare function projectMainlineHead(view: SessionView): {
|
|
10
|
+
status: number;
|
|
11
|
+
role: number;
|
|
12
|
+
messageId: string;
|
|
13
|
+
sessionId: string;
|
|
14
|
+
replyMessageId?: string | undefined;
|
|
15
|
+
extra?: Record<string, unknown> | undefined;
|
|
16
|
+
roundExtra?: Record<string, unknown> | undefined;
|
|
17
|
+
} | undefined;
|
|
18
|
+
export declare function projectCheckPreflight(service: CreationRuntime, view: SessionView, sessionId: string, label: string): Promise<{
|
|
19
|
+
sourceMessageId: string;
|
|
20
|
+
stage: string;
|
|
21
|
+
hasStaging: boolean;
|
|
22
|
+
}>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/** 检查类写操作的主线、阶段与服务端编辑权限门禁。@author xiuyu.yi */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { parseWire } from '../contracts/node-wire.js';
|
|
4
|
+
import { object } from '../contracts/value.js';
|
|
5
|
+
import { CliError } from '../output/exit-codes.js';
|
|
6
|
+
import { currentRound, roundContainingMessage } from './round-selector.js';
|
|
7
|
+
import { collectInteractions } from '../interactions/registry.js';
|
|
8
|
+
import { hasPendingCreationWork } from './state-resolver.js';
|
|
9
|
+
const chainSchema = z.array(z.object({
|
|
10
|
+
messageId: z.string().min(1),
|
|
11
|
+
sessionId: z.string(),
|
|
12
|
+
role: z.number().int(),
|
|
13
|
+
status: z.number().int(),
|
|
14
|
+
replyMessageId: z.string().optional(),
|
|
15
|
+
roundExtra: z.record(z.unknown()).optional(),
|
|
16
|
+
extra: z.record(z.unknown()).optional(),
|
|
17
|
+
}));
|
|
18
|
+
const one = (value) => value === '1' || value === 1;
|
|
19
|
+
/** 只验证编辑权限与暂存契约,不强加写入阶段门禁。 */
|
|
20
|
+
export async function projectEditingState(service, sessionId) {
|
|
21
|
+
if (!/^[A-Za-z0-9_-]+$/.test(sessionId))
|
|
22
|
+
throw new CliError('INVALID_ARGUMENT', '请明确本次单个作品ID');
|
|
23
|
+
const editing = parseWire(z.object({ hasStaging: z.boolean(), files: z.array(z.unknown()) }), await service.client.call('/api/uxa-center/agent/AgentQuery/queryAgentAttachmentGit', {
|
|
24
|
+
sessionId,
|
|
25
|
+
withContent: false,
|
|
26
|
+
}));
|
|
27
|
+
if (editing.hasStaging !== editing.files.length > 0)
|
|
28
|
+
throw new CliError('PROTOCOL_ERROR', '源码暂存状态不完整,未继续操作');
|
|
29
|
+
return editing;
|
|
30
|
+
}
|
|
31
|
+
/** 物理主线选取保持统一;不回退到混合展示末轮。 */
|
|
32
|
+
export function projectMainlineHead(view) {
|
|
33
|
+
const chain = chainSchema.safeParse(object(object(view.pipeline.lanes).chain).messages);
|
|
34
|
+
if (!chain.success || chain.data.some((row) => row.sessionId !== view.session.sessionId))
|
|
35
|
+
throw new CliError('PROTOCOL_ERROR', '无法核对当前物理主线,未发起检查');
|
|
36
|
+
const head = chain.data
|
|
37
|
+
.filter((row) => !/^(?:fake-message-|pending-|user-|assistant-|insufficient-credits-)/.test(row.messageId) &&
|
|
38
|
+
!/^select-branch-message-.+-batch-\d+$/.test(row.messageId))
|
|
39
|
+
.at(-1);
|
|
40
|
+
return head;
|
|
41
|
+
}
|
|
42
|
+
export async function projectCheckPreflight(service, view, sessionId, label) {
|
|
43
|
+
if (!/^[A-Za-z0-9_-]+$/.test(sessionId) || view.session.sessionId !== sessionId)
|
|
44
|
+
throw new CliError('PROTOCOL_ERROR', '检查目标与本次单个作品不一致');
|
|
45
|
+
// 复用有服务端编辑权限检查的只读方法;不以菜单可见或分享可访问代替权限。
|
|
46
|
+
const editing = await projectEditingState(service, sessionId);
|
|
47
|
+
const head = projectMainlineHead(view);
|
|
48
|
+
const round = head ? roundContainingMessage(view, head.messageId) : undefined;
|
|
49
|
+
if (!head ||
|
|
50
|
+
head.role !== 2 ||
|
|
51
|
+
head.status !== 1 ||
|
|
52
|
+
!round ||
|
|
53
|
+
round.sessionId !== sessionId ||
|
|
54
|
+
currentRound(view)?.roundId !== round.roundId ||
|
|
55
|
+
round.status !== 'completed' ||
|
|
56
|
+
view.session.status !== 3 ||
|
|
57
|
+
view.session.waiting !== false ||
|
|
58
|
+
view.session.errorType ||
|
|
59
|
+
view.session.pendingBranch ||
|
|
60
|
+
view.extra.agentRuntime === 'shire')
|
|
61
|
+
throw new CliError('INVALID_ARGUMENT', `当前主线不是已正常结束的常规创作流程,请先处理当前任务,再执行${label}`, { sessionId });
|
|
62
|
+
const rawVersion = view.extra.version;
|
|
63
|
+
const version = typeof rawVersion === 'number'
|
|
64
|
+
? rawVersion
|
|
65
|
+
: typeof rawVersion === 'string' && /^[1-9]\d*$/.test(rawVersion)
|
|
66
|
+
? Number(rawVersion)
|
|
67
|
+
: NaN;
|
|
68
|
+
const extra = object(head.roundExtra);
|
|
69
|
+
if (!Number.isSafeInteger(version) || version < 1 || !one(extra.hasSelectedStyle))
|
|
70
|
+
throw new CliError('INVALID_ARGUMENT', `尚未完成风格选择或流程版本未知,${label}工具当前不可用`, {
|
|
71
|
+
sessionId,
|
|
72
|
+
});
|
|
73
|
+
const stage = version < 4 || one(extra.startDevelopment) ? 'development' : 'demo';
|
|
74
|
+
if (version >= 6 && stage === 'development' && !one(extra.architecturePlanApproved))
|
|
75
|
+
throw new CliError('INVALID_ARGUMENT', `当前研发规划尚未确认,不能执行${label};不会自动确认规划`, {
|
|
76
|
+
sessionId,
|
|
77
|
+
});
|
|
78
|
+
const activeSubagentWork = await service.taskProgress.hasPendingSubagentWork(sessionId);
|
|
79
|
+
const checked = { ...view, activeSubagentWork };
|
|
80
|
+
const blocking = collectInteractions(checked).filter(({ interaction }) => !(interaction.kind === 'SELECT_FEATURES' &&
|
|
81
|
+
interaction.source.variant === 'select_features' &&
|
|
82
|
+
!interaction.source.toolId));
|
|
83
|
+
if (activeSubagentWork || hasPendingCreationWork(checked) || blocking.length)
|
|
84
|
+
throw new CliError('INVALID_ARGUMENT', `当前仍有后台任务或必答问题,请先处理后再执行${label}`, {
|
|
85
|
+
sessionId,
|
|
86
|
+
});
|
|
87
|
+
return { sourceMessageId: head.messageId, stage, hasStaging: editing.hasStaging };
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=project-check-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-check-preflight.js","sourceRoot":"","sources":["../../src/conversation/project-check-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { CreationRuntime } from '../runtime.js';
|
|
2
|
+
export declare function preparePublish(service: CreationRuntime, sessionId: string): Promise<{
|
|
3
|
+
state: string;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
topic: string;
|
|
6
|
+
sourceMessageId: string;
|
|
7
|
+
stage: string;
|
|
8
|
+
publicStatus: number;
|
|
9
|
+
publishUrl: string;
|
|
10
|
+
targetRegion: string | null | undefined;
|
|
11
|
+
deploymentNode: string | null | undefined;
|
|
12
|
+
candidate: {
|
|
13
|
+
encryptedId: string;
|
|
14
|
+
deployStatus: number;
|
|
15
|
+
updatedAt: number;
|
|
16
|
+
websiteIntroduction?: string | null | undefined;
|
|
17
|
+
changeLog?: string | null | undefined;
|
|
18
|
+
changeLogSummary?: string | null | undefined;
|
|
19
|
+
};
|
|
20
|
+
fee: {
|
|
21
|
+
costItems: {
|
|
22
|
+
name: string;
|
|
23
|
+
estimatedDailyCost: number;
|
|
24
|
+
}[];
|
|
25
|
+
itemizedDailyTotal: number;
|
|
26
|
+
itemizedThirtyDayTotal: number;
|
|
27
|
+
currency: string;
|
|
28
|
+
unitsPerToken: number;
|
|
29
|
+
totalsConsistent: boolean;
|
|
30
|
+
confirmationRequired: boolean;
|
|
31
|
+
estimatedDailyTotal: number;
|
|
32
|
+
estimatedMonthlyTotal: number;
|
|
33
|
+
};
|
|
34
|
+
visibilityEffect: {
|
|
35
|
+
afterSuccessfulDeployment: number;
|
|
36
|
+
changesCurrentStatus: boolean;
|
|
37
|
+
privateDeploymentSupported: boolean;
|
|
38
|
+
confirmationRequired: boolean;
|
|
39
|
+
};
|
|
40
|
+
quoteId: string;
|
|
41
|
+
sourcePolicy: string;
|
|
42
|
+
warning: string;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function assertPublishConfirmation(prepared: Awaited<ReturnType<typeof preparePublish>>, encryptedId: string, sourceMessageId: unknown, quoteId: unknown, acknowledged: boolean, sitePublicationAcknowledged?: boolean): void;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/** 当前主线发布准备与费用确认绑定。@author xiuyu.yi */
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { parseWire } from '../contracts/node-wire.js';
|
|
5
|
+
import { CliError } from '../output/exit-codes.js';
|
|
6
|
+
import { projectCheckPreflight } from './project-check-preflight.js';
|
|
7
|
+
const amount = z.number().int().nonnegative().safe();
|
|
8
|
+
const candidateSchema = z.object({
|
|
9
|
+
encryptedId: z.string().min(1),
|
|
10
|
+
updatedAt: amount,
|
|
11
|
+
deployStatus: z.number().int(),
|
|
12
|
+
changeLog: z.string().nullish(),
|
|
13
|
+
changeLogSummary: z.string().nullish(),
|
|
14
|
+
websiteIntroduction: z.string().nullish(),
|
|
15
|
+
});
|
|
16
|
+
const feeSchema = z.object({
|
|
17
|
+
costItems: z.array(z.object({ name: z.string().min(1), estimatedDailyCost: amount })),
|
|
18
|
+
estimatedDailyTotal: amount,
|
|
19
|
+
estimatedMonthlyTotal: amount,
|
|
20
|
+
});
|
|
21
|
+
export async function preparePublish(service, sessionId) {
|
|
22
|
+
const view = await service.load(sessionId);
|
|
23
|
+
const gate = await projectCheckPreflight(service, view, sessionId, '发布当前主线');
|
|
24
|
+
if (gate.hasStaging)
|
|
25
|
+
throw new CliError('INVALID_ARGUMENT', '当前有未合并的源码暂存,请先确认合并或放弃暂存,再发布当前主线;不会自动合并', { sessionId });
|
|
26
|
+
if (gate.stage !== 'development')
|
|
27
|
+
throw new CliError('INVALID_ARGUMENT', '当前仍是演示阶段,本入口只发布研发主线;不会自动进入研发', {
|
|
28
|
+
sessionId,
|
|
29
|
+
});
|
|
30
|
+
const status = parseWire(z.object({
|
|
31
|
+
unPublishedVersion: candidateSchema.nullish(),
|
|
32
|
+
publishUrl: z.string().url().nullish(),
|
|
33
|
+
targetRegion: z.string().nullish(),
|
|
34
|
+
deploymentNode: z.string().nullish(),
|
|
35
|
+
}), await service.publish.status(sessionId));
|
|
36
|
+
if (!['CN', 'INTL'].includes(status.targetRegion ?? ''))
|
|
37
|
+
throw new CliError('PROTOCOL_ERROR', '当前发布区域无法明确确认,请先核对项目发布配置');
|
|
38
|
+
const candidate = status.unPublishedVersion;
|
|
39
|
+
if (!candidate || candidate.deployStatus !== 0)
|
|
40
|
+
throw new CliError('INVALID_ARGUMENT', candidate?.deployStatus === 2
|
|
41
|
+
? '已有发布正在进行,请继续跟踪同一记录,勿重复发布'
|
|
42
|
+
: '当前没有可发布的待发布记录,请先在原项目完成当前改动', { sessionId, encryptedId: candidate?.encryptedId });
|
|
43
|
+
if (view.session.publicStatus !== 0 && view.session.publicStatus !== 1)
|
|
44
|
+
throw new CliError('PROTOCOL_ERROR', '当前站点公开状态未知,请先核对再准备发布');
|
|
45
|
+
if (!status.publishUrl)
|
|
46
|
+
throw new CliError('PROTOCOL_ERROR', '尚未取得正式访问地址,请先核对项目发布配置');
|
|
47
|
+
if (status.publishUrl) {
|
|
48
|
+
const url = new URL(status.publishUrl);
|
|
49
|
+
if (!['https:', 'http:'].includes(url.protocol) || url.username || url.password)
|
|
50
|
+
throw new CliError('PROTOCOL_ERROR', '正式访问地址不符合安全链接格式,未继续发布');
|
|
51
|
+
}
|
|
52
|
+
const rawFee = parseWire(feeSchema, await service.publish.preflightCost(sessionId));
|
|
53
|
+
const costItems = [...rawFee.costItems].sort((a, b) => a.name.localeCompare(b.name) || a.estimatedDailyCost - b.estimatedDailyCost);
|
|
54
|
+
const itemizedDailyTotal = costItems.reduce((total, item) => total + item.estimatedDailyCost, 0);
|
|
55
|
+
if (!Number.isSafeInteger(itemizedDailyTotal * 30))
|
|
56
|
+
throw new CliError('PROTOCOL_ERROR', '费用估算超出支持范围');
|
|
57
|
+
const fee = {
|
|
58
|
+
...rawFee,
|
|
59
|
+
costItems,
|
|
60
|
+
itemizedDailyTotal,
|
|
61
|
+
itemizedThirtyDayTotal: itemizedDailyTotal * 30,
|
|
62
|
+
currency: 'GLOW_TOKEN',
|
|
63
|
+
unitsPerToken: 100,
|
|
64
|
+
totalsConsistent: rawFee.estimatedDailyTotal === itemizedDailyTotal &&
|
|
65
|
+
rawFee.estimatedMonthlyTotal === itemizedDailyTotal * 30,
|
|
66
|
+
confirmationRequired: itemizedDailyTotal > 0 || rawFee.estimatedDailyTotal > 0 || rawFee.estimatedMonthlyTotal > 0,
|
|
67
|
+
};
|
|
68
|
+
// 当前发布成功回调会公开站点,接口没有原子保持未公开的参数。
|
|
69
|
+
const visibilityEffect = {
|
|
70
|
+
afterSuccessfulDeployment: 1,
|
|
71
|
+
changesCurrentStatus: view.session.publicStatus === 0,
|
|
72
|
+
privateDeploymentSupported: false,
|
|
73
|
+
confirmationRequired: view.session.publicStatus === 0,
|
|
74
|
+
};
|
|
75
|
+
const quoteId = createHash('sha256')
|
|
76
|
+
.update(JSON.stringify({
|
|
77
|
+
sessionId,
|
|
78
|
+
sourceMessageId: gate.sourceMessageId,
|
|
79
|
+
candidate,
|
|
80
|
+
fee,
|
|
81
|
+
targetRegion: status.targetRegion,
|
|
82
|
+
deploymentNode: status.deploymentNode,
|
|
83
|
+
publishUrl: status.publishUrl,
|
|
84
|
+
publicStatus: view.session.publicStatus,
|
|
85
|
+
visibilityEffect,
|
|
86
|
+
}))
|
|
87
|
+
.digest('hex');
|
|
88
|
+
return {
|
|
89
|
+
state: 'READY',
|
|
90
|
+
sessionId,
|
|
91
|
+
topic: view.session.topic,
|
|
92
|
+
sourceMessageId: gate.sourceMessageId,
|
|
93
|
+
stage: gate.stage,
|
|
94
|
+
publicStatus: view.session.publicStatus,
|
|
95
|
+
publishUrl: status.publishUrl,
|
|
96
|
+
targetRegion: status.targetRegion,
|
|
97
|
+
deploymentNode: status.deploymentNode,
|
|
98
|
+
candidate,
|
|
99
|
+
fee,
|
|
100
|
+
visibilityEffect,
|
|
101
|
+
quoteId,
|
|
102
|
+
sourcePolicy: 'CURRENT_MAINLINE_ONLY',
|
|
103
|
+
warning: [
|
|
104
|
+
'部署成功会将站点公开,当前接口不支持全程保持未公开;先部署再下线仍会产生公开窗口。',
|
|
105
|
+
...(!fee.totalsConsistent
|
|
106
|
+
? ['服务端汇总与费用明细不一致,请展示两者及差额,不称免费;实际计费须核实。']
|
|
107
|
+
: []),
|
|
108
|
+
].join(' '),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export function assertPublishConfirmation(prepared, encryptedId, sourceMessageId, quoteId, acknowledged, sitePublicationAcknowledged = false) {
|
|
112
|
+
if (prepared.candidate.encryptedId !== encryptedId ||
|
|
113
|
+
prepared.sourceMessageId !== sourceMessageId ||
|
|
114
|
+
prepared.quoteId !== quoteId)
|
|
115
|
+
throw new CliError('STALE_INTERACTION', '当前主线、待发布记录或费用估算已变化,请重新准备并确认', {
|
|
116
|
+
sessionId: prepared.sessionId,
|
|
117
|
+
});
|
|
118
|
+
if (prepared.fee.confirmationRequired && !acknowledged)
|
|
119
|
+
throw new CliError('INVALID_ARGUMENT', '本次发布存在云服务费用估算,请取得用户对当前目标和费用的明确确认后继续', { preparation: prepared });
|
|
120
|
+
if (prepared.visibilityEffect.confirmationRequired && !sitePublicationAcknowledged)
|
|
121
|
+
throw new CliError('INVALID_ARGUMENT', '本次部署会公开当前未公开的站点。仅在用户明确允许公开后传 --acknowledge-site-publication;要求保持未公开时停止,不能先部署再下线冒充全程未公开', { preparation: prepared });
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=publish-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-preflight.js","sourceRoot":"","sources":["../../src/conversation/publish-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 安全扫描独立入口的范围与主线门禁。@author xiuyu.yi */
|
|
2
|
+
import type { CreationRuntime } from '../runtime.js';
|
|
3
|
+
import type { SecurityReviewView } from '../contracts/security-review.js';
|
|
4
|
+
import type { SecurityReviewApi } from '../api/security-review-api.js';
|
|
5
|
+
import type { SessionView } from '../contracts/node-wire.js';
|
|
6
|
+
type Catalog = Awaited<ReturnType<SecurityReviewApi['options']>>;
|
|
7
|
+
export declare function selectSecurityChecks(catalog: Catalog, requested: string[]): string[];
|
|
8
|
+
export declare function securityStartPreflight(service: CreationRuntime, sessionId: string, expectedSource?: string, initialView?: SessionView): Promise<{
|
|
9
|
+
sourceMessageId: string;
|
|
10
|
+
stage: string;
|
|
11
|
+
hasStaging: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function assertExistingSecurityScope(review: SecurityReviewView, requested: string[]): void;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CliError } from '../output/exit-codes.js';
|
|
2
|
+
import { SecurityStatus } from '../contracts/security-review.js';
|
|
3
|
+
import { projectCheckPreflight } from './project-check-preflight.js';
|
|
4
|
+
export function selectSecurityChecks(catalog, requested) {
|
|
5
|
+
if (new Set(catalog.map((item) => item.category)).size !== catalog.length)
|
|
6
|
+
throw new CliError('PROTOCOL_ERROR', '检查目录类别重复,未发起扫描');
|
|
7
|
+
if (!requested.length &&
|
|
8
|
+
catalog.some((item) => typeof item.available !== 'boolean' || typeof item.selectable !== 'boolean'))
|
|
9
|
+
throw new CliError('PROTOCOL_ERROR', '检查目录状态不完整,无法确认全部可用项,未发起扫描');
|
|
10
|
+
const selected = requested.length
|
|
11
|
+
? [...new Set(requested)]
|
|
12
|
+
: catalog
|
|
13
|
+
.filter((item) => item.available === true && item.selectable === true)
|
|
14
|
+
.map((item) => item.category);
|
|
15
|
+
if (!selected.length)
|
|
16
|
+
throw new CliError('INVALID_ARGUMENT', '当前项目暂无明确可执行的安全检查项');
|
|
17
|
+
for (const category of selected) {
|
|
18
|
+
const item = catalog.find((row) => row.category === category);
|
|
19
|
+
if (!item || item.available === false || item.selectable === false)
|
|
20
|
+
throw new CliError('INVALID_ARGUMENT', '指定检查项当前不可用,请查询本项目检查目录', {
|
|
21
|
+
checks: catalog,
|
|
22
|
+
});
|
|
23
|
+
if (item.available !== true || item.selectable !== true)
|
|
24
|
+
throw new CliError('PROTOCOL_ERROR', '指定检查项的可用状态未知,未发起扫描');
|
|
25
|
+
}
|
|
26
|
+
return selected;
|
|
27
|
+
}
|
|
28
|
+
export async function securityStartPreflight(service, sessionId, expectedSource, initialView) {
|
|
29
|
+
const gate = await projectCheckPreflight(service, initialView ?? (await service.load(sessionId)), sessionId, '安全扫描');
|
|
30
|
+
if (gate.stage !== 'development')
|
|
31
|
+
throw new CliError('INVALID_ARGUMENT', '当前仍是演示阶段,请先完成当前主线研发前置,再发起安全扫描', {
|
|
32
|
+
sessionId,
|
|
33
|
+
});
|
|
34
|
+
if (gate.hasStaging)
|
|
35
|
+
throw new CliError('INVALID_ARGUMENT', '当前有未合并源码暂存,请先明确处理,再扫描研发主线;不会自动合并', { sessionId });
|
|
36
|
+
if (expectedSource && gate.sourceMessageId !== expectedSource)
|
|
37
|
+
throw new CliError('STALE_INTERACTION', '扫描提交前主线已变化,请重新确认目标和范围', { sessionId });
|
|
38
|
+
return gate;
|
|
39
|
+
}
|
|
40
|
+
export function assertExistingSecurityScope(review, requested) {
|
|
41
|
+
if (!requested.length)
|
|
42
|
+
return;
|
|
43
|
+
const categories = (review.checks ?? [])
|
|
44
|
+
.filter((item) => item.status !== SecurityStatus.SKIPPED)
|
|
45
|
+
.map((item) => item.category);
|
|
46
|
+
if (categories.length !== new Set(requested).size || requested.some((item) => !categories.includes(item)))
|
|
47
|
+
throw new CliError('INVALID_ARGUMENT', '该项目已有其它范围的扫描在运行,本次未新建或取消扫描,请先查询现有记录', { reviewId: review.reviewId, checks: review.checks });
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=security-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-entry.js","sourceRoot":"","sources":["../../src/conversation/security-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,5 +125,5 @@ export declare function roundSecurityReviewId(view: SessionView, round?: import(
|
|
|
125
125
|
export declare function reportMarkdown(value?: string | null): string | undefined;
|
|
126
126
|
export declare function inspectSecurityReview(api: SecurityReviewApi, view: SessionView, requestedId?: string): Promise<CreationResult | undefined>;
|
|
127
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";
|
|
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\u8986\u76D6\u8303\u56F4\u5FC5\u987B\u4EE5 securityReview.checks \u7684\u5B9E\u9645\u72B6\u6001\u4E3A\u51C6\uFF1ASKIPPED/\u5931\u8D25/\u53D6\u6D88\u4E0D\u7B97\u5DF2\u5B8C\u6210\u68C0\u67E5\uFF1B\u62A5\u544A\u6982\u89C8\u82E5\u58F0\u79F0\u8986\u76D6\u4E86\u672A\u6267\u884C\u9879\uFF0C\u987B\u660E\u786E\u7EA0\u6B63\u8303\u56F4\uFF0C\u4E0D\u590D\u8FF0\u5176\u8D85\u8303\u56F4\u5B89\u5168\u7ED3\u8BBA\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
129
|
export declare function securityNextActions(result: Pick<CreationResult, 'sessionId' | 'state'> & Partial<CreationResult>, command: string[]): NextAction[] | undefined;
|
|
@@ -176,7 +176,7 @@ export function projectSecurityReview(view, review) {
|
|
|
176
176
|
},
|
|
177
177
|
};
|
|
178
178
|
}
|
|
179
|
-
export const SECURITY_REVIEW_INSTRUCTION = '运行中只展示本次安全扫描的 taskProgress.markdown,按同一 id
|
|
179
|
+
export const SECURITY_REVIEW_INSTRUCTION = '运行中只展示本次安全扫描的 taskProgress.markdown,按同一 id 更新列表;不展示历史扫描、不估算百分比、不把检查完成解释为无风险。评估和必要修复由服务端自动执行,只展示阶段状态,不重复发送修复指令、不增加确认、不展开内部派发消息。覆盖范围必须以 securityReview.checks 的实际状态为准:SKIPPED/失败/取消不算已完成检查;报告概览若声称覆盖了未执行项,须明确纠正范围,不复述其超范围安全结论。完成后依据 securityReview.reportResult 展示简洁结果摘要:实际发现的问题及风险、已处理内容、未处理事项和必要的未覆盖范围,数量与结论必须有报告依据。不展开完整报告正文、不提供完整报告或 PDF 下载链接、不另行生成报告文件。宿主支持直接内嵌展示 PDF 时可展示原 PDF,否则只展示结果摘要。正常完成后必须在摘要后接上“接下来,你可以:”,展示 nextActions 中符合条件的继续创作、自动测试、上线运营三项引导,不能省略;若存在当前必须处理的阻碍,先说明具体事项并引导处理。真实业务提问、执行错误和余额不足仍须如实展示。';
|
|
180
180
|
export function securityNextActions(result, command) {
|
|
181
181
|
const review = result.securityReview;
|
|
182
182
|
if (!review || result.interactions?.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-review.js","sourceRoot":"","sources":["../../src/conversation/security-review.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"security-review.js","sourceRoot":"","sources":["../../src/conversation/security-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { CreationRuntime } from '../runtime.js';
|
|
2
|
+
export declare function snapshotDiff(service: CreationRuntime, sessionId: string, oldId: string, newId: string, includeDiff: boolean): Promise<{
|
|
3
|
+
basis: string;
|
|
4
|
+
stagingFilesOnNewVersion: number;
|
|
5
|
+
sourceCompleteness: string;
|
|
6
|
+
warning: string;
|
|
7
|
+
totalChangedFiles: number;
|
|
8
|
+
omittedInternalFiles: number;
|
|
9
|
+
filesTruncated: boolean;
|
|
10
|
+
items: {
|
|
11
|
+
unifiedDiff?: string | undefined;
|
|
12
|
+
diffTruncated?: boolean | undefined;
|
|
13
|
+
filename: string;
|
|
14
|
+
status: "ADDED" | "REMOVED" | "UPDATED";
|
|
15
|
+
addedLines: number;
|
|
16
|
+
removedLines: number;
|
|
17
|
+
}[];
|
|
18
|
+
oldVersion: {
|
|
19
|
+
type: number;
|
|
20
|
+
messageId: string;
|
|
21
|
+
createdAt: number;
|
|
22
|
+
encryptedId: string;
|
|
23
|
+
isCurrentVersion: boolean;
|
|
24
|
+
summary?: string | null | undefined;
|
|
25
|
+
visitUrl?: string | null | undefined;
|
|
26
|
+
bookmarkStatus?: number | null | undefined;
|
|
27
|
+
deployStatus?: number | null | undefined;
|
|
28
|
+
};
|
|
29
|
+
newVersion: {
|
|
30
|
+
type: number;
|
|
31
|
+
messageId: string;
|
|
32
|
+
createdAt: number;
|
|
33
|
+
encryptedId: string;
|
|
34
|
+
isCurrentVersion: boolean;
|
|
35
|
+
summary?: string | null | undefined;
|
|
36
|
+
visitUrl?: string | null | undefined;
|
|
37
|
+
bookmarkStatus?: number | null | undefined;
|
|
38
|
+
deployStatus?: number | null | undefined;
|
|
39
|
+
};
|
|
40
|
+
state: string;
|
|
41
|
+
sessionId: string;
|
|
42
|
+
topic: string;
|
|
43
|
+
previewVersionId: number;
|
|
44
|
+
}>;
|