@wuyanbin/ai-code-review-cli-remote 1.4.2 → 1.6.0
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.md +34 -10
- package/dist/core/agent-runtime.d.ts +1 -1
- package/dist/core/agent-runtime.d.ts.map +1 -1
- package/dist/core/agent-runtime.js +7 -2
- package/dist/core/agent-runtime.js.map +1 -1
- package/dist/core/incremental.d.ts +24 -0
- package/dist/core/incremental.d.ts.map +1 -1
- package/dist/core/incremental.js +48 -0
- package/dist/core/incremental.js.map +1 -1
- package/dist/core/inheritance.d.ts +73 -0
- package/dist/core/inheritance.d.ts.map +1 -0
- package/dist/core/inheritance.js +293 -0
- package/dist/core/inheritance.js.map +1 -0
- package/dist/core/model.d.ts.map +1 -1
- package/dist/core/model.js +3 -0
- package/dist/core/model.js.map +1 -1
- package/dist/core/summary-compose.d.ts +15 -0
- package/dist/core/summary-compose.d.ts.map +1 -1
- package/dist/core/summary-compose.js +16 -1
- package/dist/core/summary-compose.js.map +1 -1
- package/dist/core/verdict.d.ts +4 -4
- package/dist/core/verdict.d.ts.map +1 -1
- package/dist/core/verdict.js +23 -13
- package/dist/core/verdict.js.map +1 -1
- package/dist/gitlab/api.d.ts +40 -4
- package/dist/gitlab/api.d.ts.map +1 -1
- package/dist/gitlab/api.js +187 -63
- package/dist/gitlab/api.js.map +1 -1
- package/dist/platform/config.d.ts +4 -1
- package/dist/platform/config.d.ts.map +1 -1
- package/dist/platform/config.js +22 -5
- package/dist/platform/config.js.map +1 -1
- package/dist/platform/findings.d.ts +9 -1
- package/dist/platform/findings.d.ts.map +1 -1
- package/dist/platform/findings.js +72 -3
- package/dist/platform/findings.js.map +1 -1
- package/dist/platform/report.d.ts +13 -0
- package/dist/platform/report.d.ts.map +1 -1
- package/dist/platform/report.js +2 -0
- package/dist/platform/report.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +206 -25
- package/dist/runner.js.map +1 -1
- package/dist/shared/ci-auth.d.ts +14 -0
- package/dist/shared/ci-auth.d.ts.map +1 -0
- package/dist/shared/ci-auth.js +37 -0
- package/dist/shared/ci-auth.js.map +1 -0
- package/dist/shared/cli-version.d.ts +9 -0
- package/dist/shared/cli-version.d.ts.map +1 -0
- package/dist/shared/cli-version.js +46 -0
- package/dist/shared/cli-version.js.map +1 -0
- package/dist/types.d.ts +29 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/runner.js
CHANGED
|
@@ -4,6 +4,10 @@ exports.reviewMain = reviewMain;
|
|
|
4
4
|
const config_1 = require("./platform/config");
|
|
5
5
|
const output_1 = require("./core/output");
|
|
6
6
|
const incremental_1 = require("./core/incremental");
|
|
7
|
+
const inheritance_1 = require("./core/inheritance");
|
|
8
|
+
const cursor_rules_1 = require("./core/cursor-rules");
|
|
9
|
+
const cli_version_1 = require("./shared/cli-version");
|
|
10
|
+
const identity_1 = require("./shared/identity");
|
|
7
11
|
const verification_1 = require("./core/verification");
|
|
8
12
|
const revalidation_1 = require("./core/revalidation");
|
|
9
13
|
const semantic_match_1 = require("./core/semantic-match");
|
|
@@ -17,6 +21,56 @@ const run_report_fields_1 = require("./core/run-report-fields");
|
|
|
17
21
|
const findings_1 = require("./platform/findings");
|
|
18
22
|
const report_1 = require("./platform/report");
|
|
19
23
|
const api_1 = require("./gitlab/api");
|
|
24
|
+
/**
|
|
25
|
+
* 按平台下发的继承块制定计划:同代码直接整体复用;同 head 不同 diff 先算来源 diff 与差集,
|
|
26
|
+
* 来源 diff 算不出就放弃继承(退化为普通首轮)。
|
|
27
|
+
*/
|
|
28
|
+
async function planInheritance(source, diff, commitSha) {
|
|
29
|
+
const selected = (0, inheritance_1.selectInheritedFindings)(source.findings, diff);
|
|
30
|
+
const { dropped } = selected;
|
|
31
|
+
let inherited = selected.inherited;
|
|
32
|
+
if (source.match === "full") {
|
|
33
|
+
// 来源因预算 / 上限 / 时限没排上验证的(SUPPRESSED + SKIPPED)不继承:整体复用零模型调用,
|
|
34
|
+
// 继承过来会永远沉默;不继承则下次增量评审若再报按新建走取证
|
|
35
|
+
const unverified = inherited.filter((f) => f.status === "SUPPRESSED" && f.verificationVerdict === "SKIPPED").length;
|
|
36
|
+
if (unverified > 0) {
|
|
37
|
+
inherited = inherited.filter((f) => !(f.status === "SUPPRESSED" && f.verificationVerdict === "SKIPPED"));
|
|
38
|
+
}
|
|
39
|
+
console.error(`[inherit] mode=full source=!${source.sourceMrIid} inherited=${inherited.length} dropped=${dropped} skippedUnverified=${unverified}`);
|
|
40
|
+
return {
|
|
41
|
+
mode: "full",
|
|
42
|
+
source,
|
|
43
|
+
inherited,
|
|
44
|
+
dropped,
|
|
45
|
+
reviewedHunks: 0,
|
|
46
|
+
reducedDiff: "",
|
|
47
|
+
scope: { changedFiles: new Set(), hunks: new Map() },
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (!source.sourceTargetBranch) {
|
|
51
|
+
console.error(`[inherit] source diff unavailable (source target branch unknown); falling back to plain baseline review`);
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const sourceDiff = await (0, inheritance_1.loadSourceDiff)(source.sourceTargetBranch, {
|
|
55
|
+
...(commitSha ? { headSha: commitSha } : {}),
|
|
56
|
+
mergeBaseSha: source.sourceMergeBaseSha,
|
|
57
|
+
});
|
|
58
|
+
if (sourceDiff.diff === null) {
|
|
59
|
+
console.error(`[inherit] source diff unavailable (${sourceDiff.reason}); falling back to plain baseline review`);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const split = (0, inheritance_1.splitDeltaHunks)(diff, (0, inheritance_1.collectCoveredLines)(sourceDiff.diff));
|
|
63
|
+
console.error(`[inherit] mode=partial source=!${source.sourceMrIid} sourceMergeBase=${sourceDiff.mergeBase.slice(0, 8)}(${sourceDiff.mergeBaseSource}) inherited=${inherited.length} dropped=${dropped} reviewedHunks=${split.reviewedHunks} totalHunks=${split.totalHunks}`);
|
|
64
|
+
return {
|
|
65
|
+
mode: "partial",
|
|
66
|
+
source,
|
|
67
|
+
inherited,
|
|
68
|
+
dropped,
|
|
69
|
+
reviewedHunks: split.reviewedHunks,
|
|
70
|
+
reducedDiff: split.reducedDiff,
|
|
71
|
+
scope: (0, inheritance_1.buildPartialChangeScope)(split),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
20
74
|
/** 覆盖缺口表格里的文件列:只列前几个,避免把评论撑爆 */
|
|
21
75
|
function formatFileList(files, limit = 5) {
|
|
22
76
|
const shown = files.slice(0, limit).map((f) => `\`${f}\``);
|
|
@@ -56,7 +110,6 @@ function logConfigDetails(config) {
|
|
|
56
110
|
if (config.ignore.length > 0) {
|
|
57
111
|
lines.push(` ignore : ${config.ignore.join(", ")}`);
|
|
58
112
|
}
|
|
59
|
-
lines.push(` gitlabToken: ${config.gitlab?.token ? "***" : "(missing)"}`);
|
|
60
113
|
lines.push(`────────────────`);
|
|
61
114
|
for (const line of lines) {
|
|
62
115
|
console.error(`[runner] ${line}`);
|
|
@@ -109,6 +162,15 @@ async function reviewMain() {
|
|
|
109
162
|
logConfigDetails(config);
|
|
110
163
|
const mrIid = process.env.CI_MERGE_REQUEST_IID;
|
|
111
164
|
const commitSha = (0, api_1.resolvePipelineHeadSha)(process.env);
|
|
165
|
+
// 每次 run 都带:自身版本、送审 diff 哈希、merge-base(只记录不参与匹配),否则没有 run 能成为继承来源
|
|
166
|
+
const cliVersion = (0, cli_version_1.readCliVersion)();
|
|
167
|
+
const diffHash = (0, inheritance_1.hashDiff)(diff);
|
|
168
|
+
const mergeBaseSha = (0, cursor_rules_1.resolveRulesBase)(process.cwd())?.sha ?? null;
|
|
169
|
+
const runIdentity = {
|
|
170
|
+
...(cliVersion ? { cliVersion } : {}),
|
|
171
|
+
diffHash,
|
|
172
|
+
...(mergeBaseSha ? { mergeBaseSha } : {}),
|
|
173
|
+
};
|
|
112
174
|
if (!config.ai.apiKey) {
|
|
113
175
|
console.error("[runner] review failed: 未配置模型 API Key");
|
|
114
176
|
console.log(JSON.stringify((0, output_1.buildEmptyRdjson)()));
|
|
@@ -117,9 +179,7 @@ async function reviewMain() {
|
|
|
117
179
|
// 模型调用前预检:一次 MR 实时读取给 Draft / 终态 / stale 三道闸,把
|
|
118
180
|
// 「先花钱评审再丢弃写入」变成「先拒绝再花钱」——手动触发旧 pipeline 的
|
|
119
181
|
// job 会在这里被挡下。读取失败 fail-open 继续,由写前守卫(见下)兜底。
|
|
120
|
-
const preflightMr = await (0, api_1.fetchGitlabMergeRequest)({
|
|
121
|
-
token: config.gitlab?.token,
|
|
122
|
-
});
|
|
182
|
+
const preflightMr = await (0, api_1.fetchGitlabMergeRequest)({});
|
|
123
183
|
if ((0, api_1.isMergeRequestDraft)(preflightMr)) {
|
|
124
184
|
console.error("[runner] review refused: MR is draft per GitLab; mark it ready and trigger the job on a new pipeline");
|
|
125
185
|
console.log(JSON.stringify((0, output_1.buildEmptyRdjson)()));
|
|
@@ -151,21 +211,59 @@ async function reviewMain() {
|
|
|
151
211
|
}
|
|
152
212
|
// 先取 findings 快照判定 baseline(决定是否为 user 内容打缓存断点)再评审。
|
|
153
213
|
// 快照是一次毫秒级平台请求,串行代价可忽略;拉取失败 fail-open 退化为无状态评审。
|
|
154
|
-
const knownSnapshot = mrIid
|
|
214
|
+
const knownSnapshot = mrIid
|
|
215
|
+
? await (0, findings_1.fetchKnownFindings)(mrIid, process.env, {
|
|
216
|
+
...(commitSha ? { headSha: commitSha } : {}),
|
|
217
|
+
diffHash,
|
|
218
|
+
...(cliVersion ? { cliVersion } : {}),
|
|
219
|
+
})
|
|
220
|
+
: null;
|
|
155
221
|
const isBaseline = !!knownSnapshot && !knownSnapshot.lastReviewedSha;
|
|
222
|
+
// 跨 MR 继承:平台在首轮且本 MR 无记录时按 head 找到来源 run。同代码整体复用零模型调用;
|
|
223
|
+
// 同 head 不同 diff 只把差集 hunk 送模型;来源 diff 算不出退化为普通首轮。
|
|
224
|
+
// 清理运行(空 diff)没有东西可继承,不白拉来源分支
|
|
225
|
+
const inherit = knownSnapshot?.inheritance && !isCleanupRun
|
|
226
|
+
? await planInheritance(knownSnapshot.inheritance, diff, commitSha)
|
|
227
|
+
: null;
|
|
156
228
|
// baseline 双趟的 prompt 逐字节相同:趟 1 写入 prompt cache,趟 2 全量命中
|
|
157
229
|
// baseline(首轮全量审)多趟提召回:仅首轮多付成本;非 baseline 与无状态
|
|
158
230
|
// 运行(snapshot 为 null)保持单趟。多趟由 reviewCode 在**分片内部相邻发起**,
|
|
159
231
|
// 而不是在这里整体重跑——后者会让趟 1 写入的 prompt cache 在趟 2 前就过期。
|
|
160
232
|
const passes = isBaseline ? reviewer_1.BASELINE_REVIEW_PASSES : 1;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
233
|
+
let result;
|
|
234
|
+
if (inherit && (inherit.mode === "full" || inherit.reviewedHunks === 0)) {
|
|
235
|
+
// 整体复用,或差集为空:不调主评审;整体复用把来源 run 的敏感预警原样带上(摘要与上报)
|
|
236
|
+
result = {
|
|
237
|
+
comments: [],
|
|
238
|
+
...(inherit.mode === "full" && inherit.source.sourceSensitiveAlerts.length > 0
|
|
239
|
+
? {
|
|
240
|
+
sensitiveAlerts: inherit.source.sourceSensitiveAlerts.map((alert) => ({
|
|
241
|
+
...alert,
|
|
242
|
+
confirmed: true,
|
|
243
|
+
})),
|
|
244
|
+
}
|
|
245
|
+
: {}),
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
else if (inherit) {
|
|
249
|
+
result = await (0, reviewer_1.reviewCode)(inherit.reducedDiff, config, {
|
|
250
|
+
...((0, reviewer_1.shouldCacheBaselineUserPrompt)(true) ? { cacheUserPrompt: true } : {}),
|
|
251
|
+
passes: reviewer_1.BASELINE_REVIEW_PASSES,
|
|
252
|
+
});
|
|
253
|
+
if (result) {
|
|
254
|
+
console.error(`[runner] inherited partial multi-pass passes=${reviewer_1.BASELINE_REVIEW_PASSES} reviewedHunks=${inherit.reviewedHunks} mergedComments=${result.comments.length}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
result = await (0, reviewer_1.reviewCode)(diff, config, {
|
|
259
|
+
...((0, reviewer_1.shouldCacheBaselineUserPrompt)(isBaseline)
|
|
260
|
+
? { cacheUserPrompt: true }
|
|
261
|
+
: {}),
|
|
262
|
+
passes,
|
|
263
|
+
});
|
|
264
|
+
if (result && passes > 1) {
|
|
265
|
+
console.error(`[runner] baseline multi-pass passes=${passes} mergedComments=${result.comments.length}`);
|
|
266
|
+
}
|
|
169
267
|
}
|
|
170
268
|
if (!result) {
|
|
171
269
|
console.error("[runner] review failed: model returned no valid result");
|
|
@@ -176,13 +274,34 @@ async function reviewMain() {
|
|
|
176
274
|
duration: Date.now() - startedAt,
|
|
177
275
|
mrIid,
|
|
178
276
|
...summarizeUsageForReport(),
|
|
277
|
+
...runIdentity,
|
|
179
278
|
});
|
|
180
279
|
return;
|
|
181
280
|
}
|
|
182
|
-
const gitlabContext = (await (0, api_1.fetchGitlabContext)({
|
|
281
|
+
const gitlabContext = (await (0, api_1.fetchGitlabContext)({})) ?? undefined;
|
|
183
282
|
// 与平台已知 findings 对账:漏报保活、修复收口、人工 dismiss 终态、增量准入
|
|
184
283
|
let reconciled = null;
|
|
185
|
-
|
|
284
|
+
const inheritedFingerprints = new Set(inherit?.inherited.map((finding) => finding.fingerprint) ?? []);
|
|
285
|
+
if (inherit?.mode === "full") {
|
|
286
|
+
// 同代码:继承集直接成对账结果,不走对账逻辑
|
|
287
|
+
reconciled = (0, incremental_1.buildInheritedReconcileResult)(inherit.inherited);
|
|
288
|
+
}
|
|
289
|
+
else if (inherit) {
|
|
290
|
+
// 部分继承:继承集作已知方、差集评审作本次输出;范围按未覆盖行,继承锚点永远「未触碰」。
|
|
291
|
+
// 继承标记在复核 / 判重 / 取证全部应用之后统一打(见下)
|
|
292
|
+
reconciled = (0, incremental_1.reconcileFindings)({
|
|
293
|
+
known: inherit.inherited,
|
|
294
|
+
current: result.comments,
|
|
295
|
+
diff,
|
|
296
|
+
changedFiles: inherit.scope.changedFiles,
|
|
297
|
+
changeScope: inherit.scope,
|
|
298
|
+
baseline: false,
|
|
299
|
+
humanResolved: gitlabContext
|
|
300
|
+
? (0, api_1.collectHumanResolutions)(gitlabContext)
|
|
301
|
+
: new Map(),
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
else if (knownSnapshot) {
|
|
186
305
|
const changeScope = knownSnapshot.lastReviewedSha
|
|
187
306
|
? await (0, incremental_1.loadIncrementalChangeScope)(knownSnapshot.lastReviewedSha, {
|
|
188
307
|
...(commitSha ? { headSha: commitSha } : {}),
|
|
@@ -202,7 +321,8 @@ async function reviewMain() {
|
|
|
202
321
|
}
|
|
203
322
|
// keptUntouched 保活候选交模型复核裁决,新建 finding 与存活已知 finding 交模型
|
|
204
323
|
// 判重;两者并行,不拉长关键路径。复核/判重失败或关闭时行为与未引入时完全一致。
|
|
205
|
-
|
|
324
|
+
// 继承运行不复核:继承的 OPEN 条目没有进入本次送审范围,没有新证据可裁决
|
|
325
|
+
const revalidationCandidates = inherit ? [] : reconciled?.revalidationCandidates ?? [];
|
|
206
326
|
const semanticPairs = reconciled ? (0, semantic_match_1.selectSemanticPairs)(reconciled) : [];
|
|
207
327
|
const [revalidationVerdicts, semanticMatches] = await Promise.all([
|
|
208
328
|
revalidationCandidates.length > 0
|
|
@@ -227,6 +347,9 @@ async function reviewMain() {
|
|
|
227
347
|
if (reconciled && verification.verdicts.size > 0) {
|
|
228
348
|
reconciled = (0, incremental_1.applyVerificationVerdicts)(reconciled, verification.verdicts);
|
|
229
349
|
}
|
|
350
|
+
if (reconciled && inheritedFingerprints.size > 0) {
|
|
351
|
+
reconciled = (0, incremental_1.markInheritedFindings)(reconciled, inheritedFingerprints);
|
|
352
|
+
}
|
|
230
353
|
const suppressedCount = verification.counts.refuted +
|
|
231
354
|
verification.counts.unsure +
|
|
232
355
|
verification.counts.skipped;
|
|
@@ -254,9 +377,13 @@ async function reviewMain() {
|
|
|
254
377
|
// 合入前检查项先按文件路径确定性识别,再喂给摘要模型避免重复。
|
|
255
378
|
const diffDigest = (0, diff_1.summarizeDiffFiles)(diff);
|
|
256
379
|
const mergeChecklist = (0, summary_compose_1.detectMergeChecklist)(diffDigest.files.map((f) => f.file), diff);
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
380
|
+
// 同代码整体复用:零模型调用,摘要的模型段(概述 / 主要变更 / 模型补充的检查项)不生成,
|
|
381
|
+
// 以一行指向来源 MR 摘要代替;CLI 按路径识别的检查项照常。
|
|
382
|
+
const summaryMarkdown = inherit?.mode === "full"
|
|
383
|
+
? null
|
|
384
|
+
: await (0, summarizer_1.generateSummary)(diff, config, activeComments, {
|
|
385
|
+
checklist: mergeChecklist,
|
|
386
|
+
});
|
|
260
387
|
const modelSummary = (0, summary_compose_1.parseModelSummary)(summaryMarkdown);
|
|
261
388
|
const verdict = (0, verdict_1.computeVerdict)(blockingComments);
|
|
262
389
|
console.error(`[runner] review complete comments=${activeComments.length} inline=${activeComments.filter((c) => c.severity === "P0").length} digest=${activeComments.filter((c) => c.severity !== "P0").length} blocking=${
|
|
@@ -279,12 +406,26 @@ async function reviewMain() {
|
|
|
279
406
|
added: diffDigest.totalAdded,
|
|
280
407
|
removed: diffDigest.totalRemoved,
|
|
281
408
|
...(result.coverage ? { reviewedFiles: result.coverage.reviewedFiles } : {}),
|
|
409
|
+
...(inherit
|
|
410
|
+
? {
|
|
411
|
+
inheritance: {
|
|
412
|
+
mode: inherit.mode,
|
|
413
|
+
sourceMrIid: inherit.source.sourceMrIid,
|
|
414
|
+
inheritedCount: inherit.inherited.length,
|
|
415
|
+
reviewedHunks: inherit.reviewedHunks,
|
|
416
|
+
wontFixInherited: inherit.inherited.filter((f) => f.status === "WONT_FIX").length,
|
|
417
|
+
},
|
|
418
|
+
}
|
|
419
|
+
: {}),
|
|
282
420
|
};
|
|
283
421
|
const reviewDelta = reconciled && reviewScope.mode === "incremental"
|
|
284
422
|
? (0, summary_compose_1.buildReviewDelta)(reconciled.stats)
|
|
285
423
|
: null;
|
|
286
424
|
// 覆盖缺口与敏感预警作为附加段,排在主要变更之后、页脚说明之前
|
|
287
425
|
const appendix = [];
|
|
426
|
+
if (inherit?.mode === "full") {
|
|
427
|
+
appendix.push(`概述、主要变更与模型补充的检查项见 MR !${inherit.source.sourceMrIid} 的评审摘要(本次未调用模型)。`);
|
|
428
|
+
}
|
|
288
429
|
// 未审到的文件必须让 MR 作者看见:静默漏审比不审更糟——
|
|
289
430
|
// 使用者会以为「已评审」而实际上那些文件根本没进过模型。
|
|
290
431
|
if ((0, reviewer_1.hasCoverageGap)(result.coverage)) {
|
|
@@ -350,9 +491,7 @@ async function reviewMain() {
|
|
|
350
491
|
});
|
|
351
492
|
// 所有耗时模型工作完成后、第一笔外部写入前重新读取 MR head。
|
|
352
493
|
// 旧 pipeline 只输出空 rdjson 并正常退出,绝不覆盖新提交的评论/finding。
|
|
353
|
-
const mergeRequest = await (0, api_1.fetchGitlabMergeRequest)({
|
|
354
|
-
token: config.gitlab?.token,
|
|
355
|
-
});
|
|
494
|
+
const mergeRequest = await (0, api_1.fetchGitlabMergeRequest)({});
|
|
356
495
|
// MR 已合并/关闭:终态 MR 上的写入毫无意义且有害——评论无人处理,
|
|
357
496
|
// 而重跑流水线会让模型复报的问题重新入库、继续占据待处理计数。
|
|
358
497
|
if ((0, api_1.isMergeRequestClosed)(mergeRequest)) {
|
|
@@ -373,17 +512,44 @@ async function reviewMain() {
|
|
|
373
512
|
if (headFreshness === "unknown") {
|
|
374
513
|
console.error(`[runner] MR head freshness unknown pipelineCommit=${commitSha ? "present" : "missing"} currentHead=${mergeRequestHeadSha ? "present" : "missing"}; continuing`);
|
|
375
514
|
}
|
|
515
|
+
// 继承评论的来源行每次运行都要保留:本次新继承的条目 + 平台快照里已标 inheritedFromMrIid 的历史继承行
|
|
516
|
+
const inheritedByFingerprint = new Map();
|
|
517
|
+
for (const known of knownSnapshot?.findings ?? []) {
|
|
518
|
+
if (known.inheritedFromMrIid)
|
|
519
|
+
inheritedByFingerprint.set(known.fingerprint, known.inheritedFromMrIid);
|
|
520
|
+
}
|
|
521
|
+
if (inherit) {
|
|
522
|
+
for (const fingerprint of inheritedFingerprints) {
|
|
523
|
+
inheritedByFingerprint.set(fingerprint, inherit.source.sourceMrIid);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
// 「原讨论」链接:只对本次要发的行内评论里确有继承条目的来源 MR 各拉一次讨论
|
|
527
|
+
const inheritedNoteUrls = new Map();
|
|
528
|
+
const sourceMrsToLookup = new Set(inlineComments
|
|
529
|
+
.map((comment) => inheritedByFingerprint.get((0, identity_1.buildCommentFingerprint)(comment)))
|
|
530
|
+
.filter((source) => !!source));
|
|
531
|
+
for (const sourceMrIid of sourceMrsToLookup) {
|
|
532
|
+
const urls = await (0, api_1.fetchSourceDiscussionNoteUrls)({
|
|
533
|
+
sourceMrIid,
|
|
534
|
+
userId: gitlabContext?.user?.id,
|
|
535
|
+
});
|
|
536
|
+
for (const [fingerprint, url] of urls) {
|
|
537
|
+
if (inheritedByFingerprint.get(fingerprint) === sourceMrIid)
|
|
538
|
+
inheritedNoteUrls.set(fingerprint, url);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
376
541
|
await (0, api_1.postGitlabDiscussions)({
|
|
377
542
|
comments: inlineComments,
|
|
378
543
|
diff,
|
|
379
|
-
token: config.gitlab?.token,
|
|
380
544
|
context: gitlabContext,
|
|
381
545
|
...(mergeRequest ? { mergeRequest } : {}),
|
|
546
|
+
...(inheritedByFingerprint.size > 0
|
|
547
|
+
? { inherited: { byFingerprint: inheritedByFingerprint, noteUrls: inheritedNoteUrls } }
|
|
548
|
+
: {}),
|
|
382
549
|
});
|
|
383
550
|
console.log(JSON.stringify((0, output_1.buildRdjson)(activeComments)));
|
|
384
551
|
await (0, api_1.postGitlabSummary)({
|
|
385
552
|
markdown: fullMarkdown,
|
|
386
|
-
token: config.gitlab?.token,
|
|
387
553
|
context: gitlabContext,
|
|
388
554
|
});
|
|
389
555
|
let findingsSynced = false;
|
|
@@ -391,6 +557,7 @@ async function reviewMain() {
|
|
|
391
557
|
findingsSynced = await (0, findings_1.postFindingsSync)({
|
|
392
558
|
mrIid,
|
|
393
559
|
findings: reconciledFindings,
|
|
560
|
+
...(inherit ? { inheritedFromMrIid: inherit.source.sourceMrIid } : {}),
|
|
394
561
|
});
|
|
395
562
|
}
|
|
396
563
|
// commitSha 推进 lastReviewedSha;只有 finding 集合同步成功时才能推进,
|
|
@@ -398,7 +565,10 @@ async function reviewMain() {
|
|
|
398
565
|
const mrContext = (0, run_report_fields_1.resolveMrContext)();
|
|
399
566
|
await (0, report_1.postRunReport)({
|
|
400
567
|
status: "SUCCESS",
|
|
401
|
-
|
|
568
|
+
// 同代码整体复用没有调模型:模型位置显示来源 run 的模型
|
|
569
|
+
modelUsed: inherit?.mode === "full" && inherit.source.sourceModelUsed
|
|
570
|
+
? inherit.source.sourceModelUsed
|
|
571
|
+
: config.ai.model,
|
|
402
572
|
// 「评论数」= 真正发到 MR 的行内评论(经验证的 P0);P1 只在摘要汇总,计入 severityCounts 不计入评论数
|
|
403
573
|
commentCount: inlineComments.length,
|
|
404
574
|
verdict,
|
|
@@ -412,6 +582,8 @@ async function reviewMain() {
|
|
|
412
582
|
...(mrContext.authorEmail ? { authorEmail: mrContext.authorEmail } : {}),
|
|
413
583
|
severityCounts: (0, run_report_fields_1.computeSeverityCounts)(activeComments),
|
|
414
584
|
topFindings: (0, run_report_fields_1.buildTopFindings)(activeComments),
|
|
585
|
+
// 评论经平台代理的发布结果;平台只用于卡片提示、不持久化(规格「评论未发布的可见性」)
|
|
586
|
+
commentPublish: (0, api_1.summarizeCommentPublish)(),
|
|
415
587
|
// 飞书卡片「较上次修复 N」用;平台只用于通知、不持久化
|
|
416
588
|
...(reviewDelta
|
|
417
589
|
? { findingsDelta: { new: reviewDelta.new, fixed: reviewDelta.fixed, open: reviewDelta.open } }
|
|
@@ -422,6 +594,15 @@ async function reviewMain() {
|
|
|
422
594
|
riskLevel,
|
|
423
595
|
})),
|
|
424
596
|
sensitiveOverflow: result.sensitiveOverflow,
|
|
597
|
+
...runIdentity,
|
|
598
|
+
...(inherit
|
|
599
|
+
? {
|
|
600
|
+
inheritance: inherit.mode,
|
|
601
|
+
inheritedFromMrIid: inherit.source.sourceMrIid,
|
|
602
|
+
inheritedCount: inherit.inherited.length,
|
|
603
|
+
reviewedHunks: inherit.reviewedHunks,
|
|
604
|
+
}
|
|
605
|
+
: {}),
|
|
425
606
|
});
|
|
426
607
|
}
|
|
427
608
|
//# sourceMappingURL=runner.js.map
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 平台请求的 CI job 绑定(规格「CI 请求绑定运行中的 job」)。
|
|
3
|
+
*
|
|
4
|
+
* 平台要求每个凭项目 Token 的请求同时携带 GitLab 注入的 `CI_JOB_TOKEN`,用它向 GitLab
|
|
5
|
+
* 确认 job 正在运行且属于该项目。job 令牌只发给平台:模型请求只在 endpoint 指向平台网关时附带,
|
|
6
|
+
* 网关关闭、直连模型厂商时绝不附带,避免把 CI 令牌交给第三方。
|
|
7
|
+
*/
|
|
8
|
+
export declare const JOB_TOKEN_HEADER = "x-aicr-job-token";
|
|
9
|
+
export declare function ciJobHeaders(env?: NodeJS.ProcessEnv): Record<string, string>;
|
|
10
|
+
/** endpoint 是否指向平台模型网关;无法解析的地址按非网关处理 */
|
|
11
|
+
export declare function isPlatformGatewayEndpoint(endpoint: string | undefined): boolean;
|
|
12
|
+
/** 模型请求的 job 头:只有平台网关才附带 */
|
|
13
|
+
export declare function gatewayJobHeaders(endpoint: string | undefined, env?: NodeJS.ProcessEnv): Record<string, string>;
|
|
14
|
+
//# sourceMappingURL=ci-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-auth.d.ts","sourceRoot":"","sources":["../../src/shared/ci-auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAKnD,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGzF;AAED,wCAAwC;AACxC,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQ/E;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 平台请求的 CI job 绑定(规格「CI 请求绑定运行中的 job」)。
|
|
4
|
+
*
|
|
5
|
+
* 平台要求每个凭项目 Token 的请求同时携带 GitLab 注入的 `CI_JOB_TOKEN`,用它向 GitLab
|
|
6
|
+
* 确认 job 正在运行且属于该项目。job 令牌只发给平台:模型请求只在 endpoint 指向平台网关时附带,
|
|
7
|
+
* 网关关闭、直连模型厂商时绝不附带,避免把 CI 令牌交给第三方。
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.JOB_TOKEN_HEADER = void 0;
|
|
11
|
+
exports.ciJobHeaders = ciJobHeaders;
|
|
12
|
+
exports.isPlatformGatewayEndpoint = isPlatformGatewayEndpoint;
|
|
13
|
+
exports.gatewayJobHeaders = gatewayJobHeaders;
|
|
14
|
+
exports.JOB_TOKEN_HEADER = "x-aicr-job-token";
|
|
15
|
+
/** 平台网关的路径前缀,与平台 `GATEWAY_PATH_BY_FORMAT` 对齐 */
|
|
16
|
+
const GATEWAY_PATH_PREFIXES = ["/api/ai/anthropic", "/api/ai/openai"];
|
|
17
|
+
function ciJobHeaders(env = process.env) {
|
|
18
|
+
const token = env.CI_JOB_TOKEN?.trim();
|
|
19
|
+
return token ? { [exports.JOB_TOKEN_HEADER]: token } : {};
|
|
20
|
+
}
|
|
21
|
+
/** endpoint 是否指向平台模型网关;无法解析的地址按非网关处理 */
|
|
22
|
+
function isPlatformGatewayEndpoint(endpoint) {
|
|
23
|
+
if (!endpoint)
|
|
24
|
+
return false;
|
|
25
|
+
try {
|
|
26
|
+
const { pathname } = new URL(endpoint);
|
|
27
|
+
return GATEWAY_PATH_PREFIXES.some((prefix) => pathname.startsWith(prefix));
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** 模型请求的 job 头:只有平台网关才附带 */
|
|
34
|
+
function gatewayJobHeaders(endpoint, env = process.env) {
|
|
35
|
+
return isPlatformGatewayEndpoint(endpoint) ? ciJobHeaders(env) : {};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=ci-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-auth.js","sourceRoot":"","sources":["../../src/shared/ci-auth.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAOH,oCAGC;AAGD,8DAQC;AAGD,8CAKC;AA3BY,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,gDAAgD;AAChD,MAAM,qBAAqB,GAAG,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AAEtE,SAAgB,YAAY,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IACvC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,wCAAwC;AACxC,SAAgB,yBAAyB,CAAC,QAA4B;IACpE,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,SAAgB,iBAAiB,CAC/B,QAA4B,EAC5B,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 运行时读取自身版本(design D4):从本模块所在目录向上找本包的 package.json,
|
|
3
|
+
* 适配发布包(dist/shared → 包根)与测试编译目录(.tmp-test-build/src/shared → 包根)。
|
|
4
|
+
* 读不到返回 null,调用方不传 cliVersion,平台视为无版本、不复用。进程内只读一次。
|
|
5
|
+
*/
|
|
6
|
+
export declare function readCliVersion(startDir?: string): string | null;
|
|
7
|
+
/** 测试用:清掉进程内缓存 */
|
|
8
|
+
export declare function resetCliVersionCache(): void;
|
|
9
|
+
//# sourceMappingURL=cli-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-version.d.ts","sourceRoot":"","sources":["../../src/shared/cli-version.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI,CAI1E;AAED,kBAAkB;AAClB,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readCliVersion = readCliVersion;
|
|
4
|
+
exports.resetCliVersionCache = resetCliVersionCache;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const PACKAGE_NAME = "@wuyanbin/ai-code-review-cli-remote";
|
|
8
|
+
const MAX_WALK_UP = 6;
|
|
9
|
+
let cached;
|
|
10
|
+
/**
|
|
11
|
+
* 运行时读取自身版本(design D4):从本模块所在目录向上找本包的 package.json,
|
|
12
|
+
* 适配发布包(dist/shared → 包根)与测试编译目录(.tmp-test-build/src/shared → 包根)。
|
|
13
|
+
* 读不到返回 null,调用方不传 cliVersion,平台视为无版本、不复用。进程内只读一次。
|
|
14
|
+
*/
|
|
15
|
+
function readCliVersion(startDir = __dirname) {
|
|
16
|
+
if (cached !== undefined)
|
|
17
|
+
return cached;
|
|
18
|
+
cached = locateVersion(startDir);
|
|
19
|
+
return cached;
|
|
20
|
+
}
|
|
21
|
+
/** 测试用:清掉进程内缓存 */
|
|
22
|
+
function resetCliVersionCache() {
|
|
23
|
+
cached = undefined;
|
|
24
|
+
}
|
|
25
|
+
function locateVersion(startDir) {
|
|
26
|
+
let dir = startDir;
|
|
27
|
+
for (let depth = 0; depth <= MAX_WALK_UP; depth += 1) {
|
|
28
|
+
const candidate = (0, node_path_1.join)(dir, "package.json");
|
|
29
|
+
try {
|
|
30
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(candidate, "utf8"));
|
|
31
|
+
if (parsed.name === PACKAGE_NAME && typeof parsed.version === "string") {
|
|
32
|
+
const version = parsed.version.trim();
|
|
33
|
+
return version || null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// 不存在或不是 JSON:继续向上
|
|
38
|
+
}
|
|
39
|
+
const parent = (0, node_path_1.dirname)(dir);
|
|
40
|
+
if (parent === dir)
|
|
41
|
+
break;
|
|
42
|
+
dir = parent;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=cli-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-version.js","sourceRoot":"","sources":["../../src/shared/cli-version.ts"],"names":[],"mappings":";;AAaA,wCAIC;AAGD,oDAEC;AAtBD,qCAAuC;AACvC,yCAA0C;AAE1C,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAC3D,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,IAAI,MAAiC,CAAC;AAEtC;;;;GAIG;AACH,SAAgB,cAAc,CAAC,WAAmB,SAAS;IACzD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kBAAkB;AAClB,SAAgB,oBAAoB;IAClC,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,SAAS,EAAE,MAAM,CAAC,CAGxD,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO,OAAO,IAAI,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|