@wuyanbin/ai-code-review-cli-remote 1.0.22 → 1.0.24-canary.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.
@@ -13,4 +13,5 @@ export declare const ENV_PLATFORM_URL = "AICR_PLATFORM_URL";
13
13
  export declare const ENV_PROJECT_TOKEN = "AICR_PROJECT_TOKEN";
14
14
  export declare const API_CONFIG_PATH = "/api/modules/code-review/ci/config";
15
15
  export declare const API_RUNS_PATH = "/api/modules/code-review/ci/runs";
16
+ export declare const API_FINDINGS_PATH = "/api/modules/code-review/ci/findings";
16
17
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C,eAAO,MAAM,cAAc,QAAS,CAAC;AAErC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAMR;AAED,eAAO,MAAM,uBAAuB,gCAAsB,CAAC;AAE3D,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,eAAO,MAAM,eAAe,uCAAuC,CAAC;AACpE,eAAO,MAAM,aAAa,qCAAqC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C,eAAO,MAAM,cAAc,QAAS,CAAC;AAErC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAMR;AAED,eAAO,MAAM,uBAAuB,gCAAsB,CAAC;AAE3D,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,eAAO,MAAM,eAAe,uCAAuC,CAAC;AACpE,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAChE,eAAO,MAAM,iBAAiB,yCAAyC,CAAC"}
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.API_RUNS_PATH = exports.API_CONFIG_PATH = exports.ENV_PROJECT_TOKEN = exports.ENV_PLATFORM_URL = exports.DEFAULT_COMMENT_MESSAGE = exports.ENV_MAX_PAGINATION_PAGES = exports.DEFAULT_MAX_PAGINATION_PAGES = exports.API_TIMEOUT_MS = exports.REQUEST_TIMEOUT_MS = void 0;
3
+ exports.API_FINDINGS_PATH = exports.API_RUNS_PATH = exports.API_CONFIG_PATH = exports.ENV_PROJECT_TOKEN = exports.ENV_PLATFORM_URL = exports.DEFAULT_COMMENT_MESSAGE = exports.ENV_MAX_PAGINATION_PAGES = exports.DEFAULT_MAX_PAGINATION_PAGES = exports.API_TIMEOUT_MS = exports.REQUEST_TIMEOUT_MS = void 0;
4
4
  exports.resolveMaxPaginationPages = resolveMaxPaginationPages;
5
5
  exports.REQUEST_TIMEOUT_MS = 180000;
6
6
  exports.API_TIMEOUT_MS = 60000;
@@ -23,4 +23,5 @@ exports.ENV_PLATFORM_URL = "AICR_PLATFORM_URL";
23
23
  exports.ENV_PROJECT_TOKEN = "AICR_PROJECT_TOKEN";
24
24
  exports.API_CONFIG_PATH = "/api/modules/code-review/ci/config";
25
25
  exports.API_RUNS_PATH = "/api/modules/code-review/ci/runs";
26
+ exports.API_FINDINGS_PATH = "/api/modules/code-review/ci/findings";
26
27
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAWA,8DAQC;AAnBY,QAAA,kBAAkB,GAAG,MAAO,CAAC;AAC7B,QAAA,cAAc,GAAG,KAAM,CAAC;AAExB,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAClC,QAAA,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,gCAAwB,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,oCAA4B,CAAC;AACnC,CAAC;AAEY,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAE9C,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAEzC,QAAA,eAAe,GAAG,oCAAoC,CAAC;AACvD,QAAA,aAAa,GAAG,kCAAkC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAWA,8DAQC;AAnBY,QAAA,kBAAkB,GAAG,MAAO,CAAC;AAC7B,QAAA,cAAc,GAAG,KAAM,CAAC;AAExB,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAClC,QAAA,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,gCAAwB,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,oCAA4B,CAAC;AACnC,CAAC;AAEY,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAE9C,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAEzC,QAAA,eAAe,GAAG,oCAAoC,CAAC;AACvD,QAAA,aAAa,GAAG,kCAAkC,CAAC;AACnD,QAAA,iBAAiB,GAAG,sCAAsC,CAAC"}
@@ -1,29 +1,49 @@
1
- import type { AIComment, FindingRecord, HistoricalFinding } from "../types";
2
- export interface MergeFindingsInput {
3
- /** 本次增量审查新审出的评论。 */
4
- freshComments: AIComment[];
5
- /** 平台下发的历史 ACTIVE finding。 */
6
- historicalActive: HistoricalFinding[];
7
- /** 全量 diff(merge-base..HEAD),用于判定历史 finding 是否仍存在。 */
8
- fullDiff: string;
1
+ import type { AIComment, KnownFinding, ReconciledFinding } from "../types";
2
+ export interface ReconcileInput {
3
+ /** 平台已知 findings(OPEN / WONT_FIX) */
4
+ known: KnownFinding[];
5
+ /** 本次模型输出(已对齐、过滤后) */
6
+ current: AIComment[];
7
+ /** MR 全量 diff */
8
+ diff: string;
9
+ /**
10
+ * 自上次评审以来改动的文件集合(normalize 后路径)。
11
+ * null 表示无法计算(force-push / 浅克隆),新 finding 一律 blocking(安全优先)。
12
+ */
13
+ changedFiles: Set<string> | null;
14
+ /** 首轮评审(无 lastReviewedSha):所有新 finding 均为 baseline,blocking */
15
+ baseline: boolean;
16
+ /** GitLab 上被人工 resolve 的 fingerprint 集合 */
17
+ humanResolved: Set<string>;
9
18
  }
10
- export interface MergeFindingsResult {
11
- /** 仍存在的 finding(新审出 + 历史沿用),用于发评论与 verdict。 */
12
- active: AIComment[];
13
- /** 本次上报落库的 finding 全集(ACTIVE + RESOLVED)。 */
14
- reportFindings: FindingRecord[];
19
+ export interface ReconcileResult {
20
+ /** 全量对账结果,回写平台 */
21
+ findings: ReconciledFinding[];
22
+ /** 合并后的 OPEN 集合,发布到 GitLab */
23
+ activeComments: AIComment[];
24
+ /** OPEN 且 blocking,作为准入判定输入 */
25
+ blockingComments: AIComment[];
26
+ stats: {
27
+ new: number;
28
+ kept: number;
29
+ fixed: number;
30
+ wontFix: number;
31
+ advisory: number;
32
+ };
15
33
  }
16
34
  /**
17
- * 判定历史 finding 的问题代码是否仍存在于改动后的代码中。
18
- * 以 file + 归一化 code 文本在全量 diff 当前版本侧行中查找;
19
- * finding 无 code 时无法判定,保守视为仍存在。
35
+ * 将本次模型输出与已知 finding 集合对账,得到收敛后的状态全集。
36
+ *
37
+ * 收敛契约:finding 集合只因「代码变化」或「人工 dismiss」收缩,
38
+ * 不因模型本次漏报而收缩;新增 blocking finding 只能来自 baseline
39
+ * 或上次评审之后改动过的文件,其余晚发现的存量问题降级为 advisory。
20
40
  */
21
- export declare function findingStillPresent(currentLinesByFile: Map<string, Set<string>>, finding: HistoricalFinding): boolean;
41
+ export declare function reconcileFindings(input: ReconcileInput): ReconcileResult;
22
42
  /**
23
- * 合并本次增量审查结果与历史 finding:
24
- * - 新审出的 finding 标记 ACTIVE(措辞最新)。
25
- * - 历史 ACTIVE 中本次未重新审到者:代码仍在 → 沿用 ACTIVE(用历史措辞);否则 RESOLVED。
26
- * - active 列表用于发评论与 verdict;reportFindings 为落库全集。
43
+ * 计算 sinceSha..HEAD 改动的文件集合(normalize 后路径)。
44
+ * sha 不存在(force-push / 浅克隆)等任何失败都返回 null,由调用方按全量 blocking 处理。
27
45
  */
28
- export declare function mergeFindings(input: MergeFindingsInput): MergeFindingsResult;
46
+ export declare function listChangedFiles(sinceSha: string, options?: {
47
+ cwd?: string;
48
+ }): Promise<Set<string> | null>;
29
49
  //# sourceMappingURL=incremental.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../src/core/incremental.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,8BAA8B;IAC9B,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,6CAA6C;IAC7C,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAaD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAC5C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAMT;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA6C5E"}
1
+ {"version":3,"file":"incremental.d.ts","sourceRoot":"","sources":["../../src/core/incremental.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAMlB,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,sBAAsB;IACtB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACjC,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,8BAA8B;IAC9B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,+BAA+B;IAC/B,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAqBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAgIxE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAqB7B"}
@@ -1,82 +1,170 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findingStillPresent = findingStillPresent;
4
- exports.mergeFindings = mergeFindings;
5
- const identity_1 = require("../shared/identity");
3
+ exports.reconcileFindings = reconcileFindings;
4
+ exports.listChangedFiles = listChangedFiles;
5
+ const node_child_process_1 = require("node:child_process");
6
+ const node_util_1 = require("node:util");
6
7
  const diff_1 = require("./diff");
7
- const reviewer_1 = require("./reviewer");
8
+ const identity_1 = require("../shared/identity");
9
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
10
+ function codeKey(file, code) {
11
+ const trimmed = code?.trim();
12
+ if (!trimmed)
13
+ return null;
14
+ return `${(0, diff_1.normalizePath)(file)}\0${trimmed}`;
15
+ }
8
16
  function toComment(finding) {
9
17
  return {
10
18
  file: finding.file,
11
19
  line: finding.line,
12
20
  severity: finding.severity,
13
21
  message: finding.message,
14
- ...(finding.code ? { code: finding.code } : {}),
15
- ...(finding.suggestion ? { suggestion: finding.suggestion } : {}),
22
+ ...(finding.code !== undefined ? { code: finding.code } : {}),
23
+ ...(finding.suggestion !== undefined
24
+ ? { suggestion: finding.suggestion }
25
+ : {}),
16
26
  };
17
27
  }
18
28
  /**
19
- * 判定历史 finding 的问题代码是否仍存在于改动后的代码中。
20
- * 以 file + 归一化 code 文本在全量 diff 当前版本侧行中查找;
21
- * finding 无 code 时无法判定,保守视为仍存在。
22
- */
23
- function findingStillPresent(currentLinesByFile, finding) {
24
- const code = finding.code?.trim();
25
- if (!code)
26
- return true;
27
- const lines = currentLinesByFile.get((0, diff_1.normalizePath)(finding.file));
28
- if (!lines)
29
- return false;
30
- return lines.has(code);
31
- }
32
- /**
33
- * 合并本次增量审查结果与历史 finding:
34
- * - 新审出的 finding 标记 ACTIVE(措辞最新)。
35
- * - 历史 ACTIVE 中本次未重新审到者:代码仍在 → 沿用 ACTIVE(用历史措辞);否则 RESOLVED。
36
- * - active 列表用于发评论与 verdict;reportFindings 为落库全集。
29
+ * 将本次模型输出与已知 finding 集合对账,得到收敛后的状态全集。
30
+ *
31
+ * 收敛契约:finding 集合只因「代码变化」或「人工 dismiss」收缩,
32
+ * 不因模型本次漏报而收缩;新增 blocking finding 只能来自 baseline
33
+ * 或上次评审之后改动过的文件,其余晚发现的存量问题降级为 advisory。
37
34
  */
38
- function mergeFindings(input) {
39
- const currentLines = (0, diff_1.collectCurrentSideLines)(input.fullDiff);
40
- const freshByFingerprint = new Map();
41
- for (const comment of input.freshComments) {
42
- const fp = (0, identity_1.buildCommentFingerprint)(comment);
43
- if (!freshByFingerprint.has(fp))
44
- freshByFingerprint.set(fp, comment);
35
+ function reconcileFindings(input) {
36
+ const added = (0, diff_1.collectAddedLines)(input.diff);
37
+ /** 在 diff 新增行中按内容定位代码行,用于漏报保活与行号重对齐 */
38
+ const findAddedLine = (file, code) => {
39
+ const trimmed = code?.trim();
40
+ if (!trimmed)
41
+ return null;
42
+ const lines = added.get((0, diff_1.normalizePath)(file));
43
+ if (!lines)
44
+ return null;
45
+ return lines.find((item) => item.content.trim() === trimmed)?.line ?? null;
46
+ };
47
+ // 模型未返回 code 时从 diff 新增行回填,保证 fingerprint 稳定、下次可比对
48
+ const current = input.current.map((comment) => {
49
+ if (comment.code?.trim())
50
+ return comment;
51
+ const lines = added.get((0, diff_1.normalizePath)(comment.file));
52
+ const hit = lines?.find((item) => item.line === comment.line);
53
+ return hit ? { ...comment, code: hit.content } : comment;
54
+ });
55
+ // 双级索引:fingerprint 精确匹配优先,file+code 兜底(容忍 severity 翻动)
56
+ const byFingerprint = new Map();
57
+ const byCode = new Map();
58
+ for (const finding of input.known) {
59
+ byFingerprint.set(finding.fingerprint, finding);
60
+ const key = codeKey(finding.file, finding.code);
61
+ if (key && !byCode.has(key))
62
+ byCode.set(key, finding);
63
+ }
64
+ const matchedFingerprints = new Set();
65
+ const matchedCurrent = new Map();
66
+ const newComments = [];
67
+ for (const comment of current) {
68
+ const fingerprint = (0, identity_1.buildCommentFingerprint)(comment);
69
+ const match = byFingerprint.get(fingerprint) ??
70
+ byCode.get(codeKey(comment.file, comment.code) ?? "\0") ??
71
+ null;
72
+ if (match) {
73
+ // 同一 known 被多条 current 命中时首条生效,重复项丢弃
74
+ if (!matchedFingerprints.has(match.fingerprint)) {
75
+ matchedFingerprints.add(match.fingerprint);
76
+ matchedCurrent.set(match.fingerprint, comment);
77
+ }
78
+ }
79
+ else {
80
+ newComments.push(comment);
81
+ }
82
+ }
83
+ const findings = [];
84
+ const stats = { new: 0, kept: 0, fixed: 0, wontFix: 0, advisory: 0 };
85
+ for (const known of input.known) {
86
+ const base = { ...known };
87
+ if (known.status === "WONT_FIX" || input.humanResolved.has(known.fingerprint)) {
88
+ // 人工 dismiss 终态:即使模型再次报告也不复活
89
+ findings.push({ ...base, status: "WONT_FIX" });
90
+ stats.wontFix += 1;
91
+ continue;
92
+ }
93
+ const reported = matchedCurrent.get(known.fingerprint);
94
+ if (reported) {
95
+ // 再次报告:行号/描述取最新,severity 保留已存值避免翻动
96
+ findings.push({
97
+ ...base,
98
+ status: "OPEN",
99
+ line: reported.line,
100
+ message: reported.message,
101
+ ...(reported.suggestion !== undefined
102
+ ? { suggestion: reported.suggestion }
103
+ : {}),
104
+ });
105
+ stats.kept += 1;
106
+ continue;
107
+ }
108
+ const aliveLine = findAddedLine(known.file, known.code);
109
+ if (aliveLine !== null) {
110
+ // 模型漏报但代码未变:保持 OPEN(收敛契约核心),行号重对齐
111
+ findings.push({ ...base, status: "OPEN", line: aliveLine });
112
+ stats.kept += 1;
113
+ continue;
114
+ }
115
+ // 代码行已从 diff 消失(或无 code 可比对):判定已修复
116
+ findings.push({ ...base, status: "FIXED" });
117
+ stats.fixed += 1;
45
118
  }
46
- const activeComments = [...freshByFingerprint.values()];
47
- const reportFindings = [];
48
- for (const [fp, comment] of freshByFingerprint) {
49
- reportFindings.push({
50
- fingerprint: fp,
51
- file: comment.file,
119
+ for (const comment of newComments) {
120
+ const file = (0, diff_1.normalizePath)(comment.file);
121
+ const blocking = input.baseline ||
122
+ input.changedFiles === null ||
123
+ input.changedFiles.has(file);
124
+ findings.push({
125
+ fingerprint: (0, identity_1.buildCommentFingerprint)(comment),
126
+ file,
52
127
  line: comment.line,
53
128
  severity: comment.severity,
54
- ...(comment.code ? { code: comment.code } : {}),
55
129
  message: comment.message,
56
- ...(comment.suggestion ? { suggestion: comment.suggestion } : {}),
57
- status: "ACTIVE",
58
- });
59
- }
60
- for (const finding of input.historicalActive) {
61
- if (freshByFingerprint.has(finding.fingerprint))
62
- continue;
63
- const present = findingStillPresent(currentLines, finding);
64
- reportFindings.push({
65
- fingerprint: finding.fingerprint,
66
- file: finding.file,
67
- line: finding.line,
68
- severity: finding.severity,
69
- ...(finding.code ? { code: finding.code } : {}),
70
- message: finding.message,
71
- ...(finding.suggestion ? { suggestion: finding.suggestion } : {}),
72
- status: present ? "ACTIVE" : "RESOLVED",
130
+ status: "OPEN",
131
+ blocking,
132
+ ...(comment.code !== undefined ? { code: comment.code } : {}),
133
+ ...(comment.suggestion !== undefined
134
+ ? { suggestion: comment.suggestion }
135
+ : {}),
73
136
  });
74
- if (present)
75
- activeComments.push(toComment(finding));
137
+ stats.new += 1;
138
+ if (!blocking)
139
+ stats.advisory += 1;
76
140
  }
141
+ const open = findings
142
+ .filter((f) => f.status === "OPEN")
143
+ .sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line);
77
144
  return {
78
- active: (0, reviewer_1.sortCommentsDeterministically)(activeComments),
79
- reportFindings,
145
+ findings,
146
+ activeComments: open.map(toComment),
147
+ blockingComments: open.filter((f) => f.blocking).map(toComment),
148
+ stats,
80
149
  };
81
150
  }
151
+ /**
152
+ * 计算 sinceSha..HEAD 改动的文件集合(normalize 后路径)。
153
+ * sha 不存在(force-push / 浅克隆)等任何失败都返回 null,由调用方按全量 blocking 处理。
154
+ */
155
+ async function listChangedFiles(sinceSha, options = {}) {
156
+ try {
157
+ const { stdout } = await execFileAsync("git", ["diff", "--name-only", `${sinceSha}..HEAD`], { cwd: options.cwd, maxBuffer: 10 * 1024 * 1024 });
158
+ const files = stdout
159
+ .split("\n")
160
+ .map((line) => line.trim())
161
+ .filter(Boolean)
162
+ .map(diff_1.normalizePath);
163
+ return new Set(files);
164
+ }
165
+ catch (error) {
166
+ console.error(`[findings] incremental diff unavailable (${error instanceof Error ? error.message.split("\n")[0] : error}), treating all new findings as blocking`);
167
+ return null;
168
+ }
169
+ }
82
170
  //# sourceMappingURL=incremental.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/core/incremental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../src/core/incremental.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import type { AIComment, Verdict } from "../types";
2
2
  export declare function computeVerdict(comments: AIComment[]): Verdict;
3
- export declare function buildVerdictMarkdown(verdict: Verdict, comments: AIComment[]): string;
3
+ /**
4
+ * @param comments 合并后的 OPEN 全集(表格统计口径)
5
+ * @param blockingComments 参与准入判定的子集;省略时等于 comments(无持久化的降级路径)
6
+ */
7
+ export declare function buildVerdictMarkdown(verdict: Verdict, comments: AIComment[], blockingComments?: AIComment[]): string;
4
8
  //# sourceMappingURL=verdict.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verdict.d.ts","sourceRoot":"","sources":["../../src/core/verdict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAG7D;AAaD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,EAAE,GACpB,MAAM,CAwBR"}
1
+ {"version":3,"file":"verdict.d.ts","sourceRoot":"","sources":["../../src/core/verdict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAG7D;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,EAAE,EACrB,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAC7B,MAAM,CAoCR"}
@@ -16,13 +16,22 @@ function buildSeverityTable(p0, p1, p2) {
16
16
  "",
17
17
  ];
18
18
  }
19
- function buildVerdictMarkdown(verdict, comments) {
19
+ /**
20
+ * @param comments 合并后的 OPEN 全集(表格统计口径)
21
+ * @param blockingComments 参与准入判定的子集;省略时等于 comments(无持久化的降级路径)
22
+ */
23
+ function buildVerdictMarkdown(verdict, comments, blockingComments) {
20
24
  const p0 = comments.filter((c) => c.severity === "P0").length;
21
25
  const p1 = comments.filter((c) => c.severity === "P1").length;
22
26
  const p2 = comments.filter((c) => c.severity === "P2").length;
27
+ const blockingP0 = (blockingComments ?? comments).filter((c) => c.severity === "P0").length;
28
+ const advisoryP0 = p0 - blockingP0;
23
29
  if (verdict === "PASSED") {
24
30
  const parts = ["## ✅ PASSED", ""];
25
- if (p1 > 0) {
31
+ if (advisoryP0 > 0) {
32
+ parts.push(`本次改动范围内无需修复的 P0 问题;另有 ${advisoryP0} 个存量 P0 为非阻塞提示,建议排期修复。`, "");
33
+ }
34
+ else if (p1 > 0) {
26
35
  parts.push(`无 P0 问题,仍有 ${p1} 个 P1 问题建议关注,但不阻断合入。`, "");
27
36
  }
28
37
  else {
@@ -32,7 +41,10 @@ function buildVerdictMarkdown(verdict, comments) {
32
41
  return parts.join("\n");
33
42
  }
34
43
  const parts = ["## ⚠️ ACTION REQUIRED", ""];
35
- parts.push(`发现 ${p0} 个 P0 问题,需修复后再次触发审查。`, "");
44
+ parts.push(`发现 ${blockingP0} 个 P0 问题,需修复后再次触发审查。`, "");
45
+ if (advisoryP0 > 0) {
46
+ parts.push(`另有 ${advisoryP0} 个存量 P0 为非阻塞提示,不计入准入判定。`, "");
47
+ }
36
48
  parts.push(...buildSeverityTable(p0, p1, p2));
37
49
  return parts.join("\n");
38
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verdict.js","sourceRoot":"","sources":["../../src/core/verdict.ts"],"names":[],"mappings":";;AAEA,wCAGC;AAaD,oDA2BC;AA3CD,SAAgB,cAAc,CAAC,QAAqB;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACnE,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IAC5D,OAAO;QACL,aAAa;QACb,iBAAiB;QACjB,wBAAwB,EAAE,IAAI;QAC9B,qBAAqB,EAAE,IAAI;QAC3B,qBAAqB,EAAE,IAAI;QAC3B,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAClC,OAAgB,EAChB,QAAqB;IAErB,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAE9D,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CACR,cAAc,EAAE,sBAAsB,EACtC,EAAE,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"verdict.js","sourceRoot":"","sources":["../../src/core/verdict.ts"],"names":[],"mappings":";;AAEA,wCAGC;AAiBD,oDAwCC;AA5DD,SAAgB,cAAc,CAAC,QAAqB;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACnE,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IAC5D,OAAO;QACL,aAAa;QACb,iBAAiB;QACjB,wBAAwB,EAAE,IAAI;QAC9B,qBAAqB,EAAE,IAAI;QAC3B,qBAAqB,EAAE,IAAI;QAC3B,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,OAAgB,EAChB,QAAqB,EACrB,gBAA8B;IAE9B,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,UAAU,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAC3B,CAAC,MAAM,CAAC;IACT,MAAM,UAAU,GAAG,EAAE,GAAG,UAAU,CAAC;IAEnC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CACR,yBAAyB,UAAU,wBAAwB,EAC3D,EAAE,CACH,CAAC;QACJ,CAAC;aAAM,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CACR,cAAc,EAAE,sBAAsB,EACtC,EAAE,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -12,6 +12,10 @@ interface GitlabNote {
12
12
  system: boolean;
13
13
  body?: string;
14
14
  resolved?: boolean;
15
+ resolved_by?: {
16
+ id: number;
17
+ username?: string;
18
+ } | null;
15
19
  }
16
20
  interface GitlabDiscussion {
17
21
  id: string;
@@ -27,6 +31,11 @@ export interface GitlabReviewContext {
27
31
  user: GitlabUser | null;
28
32
  discussions: GitlabDiscussion[];
29
33
  }
34
+ /**
35
+ * 收集被「人工」resolve 的 finding fingerprint:bot 评论所在 discussion 被
36
+ * resolve 且 resolver 不是 bot 自己(bot 的 resolve 是 FIXED 收口,不算 dismiss)。
37
+ */
38
+ export declare function collectHumanResolvedFingerprints(context: GitlabReviewContext): Set<string>;
30
39
  /**
31
40
  * Fetch the per-run shared read context (current user + all discussions) once.
32
41
  * Returns null when there is no token or no GitLab CI context, in which case the
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/gitlab/api.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAUD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAkQD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAatC;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,GAAG,OAAO,CAAC,OAAO,CAAC,CA4HnB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,GAAG,OAAO,CAAC,OAAO,CAAC,CA4DnB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/gitlab/api.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACxD;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAUD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAkQD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,mBAAmB,GAC3B,GAAG,CAAC,MAAM,CAAC,CAqBb;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAatC;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,GAAG,OAAO,CAAC,OAAO,CAAC,CA4HnB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,GAAG,OAAO,CAAC,OAAO,CAAC,CA4DnB"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectHumanResolvedFingerprints = collectHumanResolvedFingerprints;
3
4
  exports.fetchGitlabContext = fetchGitlabContext;
4
5
  exports.postGitlabDiscussions = postGitlabDiscussions;
5
6
  exports.postGitlabSummary = postGitlabSummary;
@@ -206,6 +207,31 @@ function isLineValid(validLines, file, line) {
206
207
  return true;
207
208
  return validLines.has(`${(0, diff_1.normalizePath)(file)}:${line}`);
208
209
  }
210
+ /**
211
+ * 收集被「人工」resolve 的 finding fingerprint:bot 评论所在 discussion 被
212
+ * resolve 且 resolver 不是 bot 自己(bot 的 resolve 是 FIXED 收口,不算 dismiss)。
213
+ */
214
+ function collectHumanResolvedFingerprints(context) {
215
+ const resolved = new Set();
216
+ if (!context.user)
217
+ return resolved;
218
+ for (const discussion of context.discussions) {
219
+ for (const note of discussion.notes) {
220
+ if (note.author.id !== context.user.id || note.system || !note.body) {
221
+ continue;
222
+ }
223
+ const fingerprint = (0, identity_1.extractHiddenMarker)(note.body, identity_1.COMMENT_MARKER_PREFIX);
224
+ if (!fingerprint)
225
+ continue;
226
+ if (note.resolved &&
227
+ note.resolved_by &&
228
+ note.resolved_by.id !== context.user.id) {
229
+ resolved.add(fingerprint);
230
+ }
231
+ }
232
+ }
233
+ return resolved;
234
+ }
209
235
  /**
210
236
  * Fetch the per-run shared read context (current user + all discussions) once.
211
237
  * Returns null when there is no token or no GitLab CI context, in which case the
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/gitlab/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/gitlab/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
1
  import type { CodeReviewConfig } from "../types";
2
2
  type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
3
+ /**
4
+ * 平台鉴权失败(401/403)。区别于网络/服务异常:此时项目 Token 已显式配置
5
+ * 但被平台拒绝,意味着 CI 变量 AICR_PROJECT_TOKEN 失效或与平台不一致。
6
+ * 必须显式上抛,避免静默回退到本地默认配置后误报「未配置模型」。
7
+ */
8
+ export declare class PlatformAuthError extends Error {
9
+ readonly status: number;
10
+ constructor(status: number);
11
+ }
3
12
  export interface LoadReviewConfigOptions {
4
13
  cwd?: string;
5
14
  env?: NodeJS.ProcessEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAoB,gBAAgB,EAAY,MAAM,UAAU,CAAC;AAE7E,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1E,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAkLD,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAiB3B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAoB,gBAAgB,EAAY,MAAM,UAAU,CAAC;AAE7E,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1E;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM;CAO3B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAuLD,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAiB3B"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatformAuthError = void 0;
3
4
  exports.loadReviewConfig = loadReviewConfig;
4
5
  const node_fs_1 = require("node:fs");
5
6
  const promises_1 = require("node:fs/promises");
@@ -7,6 +8,19 @@ const node_path_1 = require("node:path");
7
8
  const node_module_1 = require("node:module");
8
9
  const constants_1 = require("../constants");
9
10
  const http_1 = require("../shared/http");
11
+ /**
12
+ * 平台鉴权失败(401/403)。区别于网络/服务异常:此时项目 Token 已显式配置
13
+ * 但被平台拒绝,意味着 CI 变量 AICR_PROJECT_TOKEN 失效或与平台不一致。
14
+ * 必须显式上抛,避免静默回退到本地默认配置后误报「未配置模型」。
15
+ */
16
+ class PlatformAuthError extends Error {
17
+ constructor(status) {
18
+ super(`平台鉴权失败 (status=${status}):AICR_PROJECT_TOKEN 无效或已失效,请在平台对该项目执行「修复」或「重置 Token」以同步 CI 变量`);
19
+ this.name = "PlatformAuthError";
20
+ this.status = status;
21
+ }
22
+ }
23
+ exports.PlatformAuthError = PlatformAuthError;
10
24
  const LOCAL_CONFIG_FILES = [
11
25
  ".aicr.config.js",
12
26
  "aicr.config.js",
@@ -90,6 +104,9 @@ async function loadDevhubConfig(env, fetchImpl) {
90
104
  method: "GET",
91
105
  headers: { Authorization: `Bearer ${token}` },
92
106
  });
107
+ if (resp.status === 401 || resp.status === 403) {
108
+ throw new PlatformAuthError(resp.status);
109
+ }
93
110
  if (!resp.ok) {
94
111
  console.error(`[config] Devhub 配置获取失败 status=${resp.status}`);
95
112
  return null;
@@ -103,6 +120,9 @@ async function loadDevhubConfig(env, fetchImpl) {
103
120
  return config;
104
121
  }
105
122
  catch (error) {
123
+ // 鉴权失败必须上抛,不能被当作普通网络异常静默回退。
124
+ if (error instanceof PlatformAuthError)
125
+ throw error;
106
126
  console.error("[config] Devhub 配置获取异常,回退本地配置:", error instanceof Error ? error.message : String(error));
107
127
  return null;
108
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":";;AAqMA,4CAmBC;AAxND,qCAAqC;AACrC,+CAAuD;AACvD,yCAAoC;AACpC,6CAA4C;AAC5C,4CAKsB;AACtB,yCAAkD;AAWlD,MAAM,kBAAkB,GAAG;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;CAClB,CAAC;AACF,MAAM,aAAa,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AAEhD,SAAS,oBAAoB,CAAC,GAAsB;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,4BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAM;QAC3E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,MAAO,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc,EACd,QAAiB,EACjB,QAAiB;IAEjB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACzE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,GAA8B,EAC9B,MAA0B,EAC1B,GAAsB;IAEtB,OAAO;QACL,MAAM;QACN,EAAE,EAAE;YACF,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI;YAClB,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ;YAC1B,SAAS,EAAE,kBAAkB,CAC3B,GAAG,CAAC,EAAE,EAAE,SAAS,EACjB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAChB,GAAG,CAAC,EAAE,EAAE,QAAQ,CACjB;YACD,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,eAAe;YACvC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,IAAI,2CAA2C;YACzE,MAAM,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE;SAClD;QACD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;QACjC,SAAS,EAAE;YACT,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;YAC1C,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;SACjD;QACD,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzC,WAAW,EAAE,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC;QAClD,aAAa,EAAE,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC;QACxD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAsB,EACtB,SAAoB;IAEpB,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,GAAG,GAAG,GAAG,WAAW,GAAG,2BAAe,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA8B,CAAC;QAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,CACX,2CAA2C,CAC5C,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAsB;IAEtB,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACxC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,oBAAU,EAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,MAAM,IAAA,mBAAQ,EAAC,SAAS,EAAE,MAAM,CAAC,CACL,CAAC;QAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC1D,OAAO,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAsB,EACtB,MAAwB;IAExB,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACxC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO;IACrD,MAAM,IAAA,oBAAS,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAW,EACX,GAAsB;IAEtB,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;YAAE,SAAS;QAChC,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAEN,CAAC;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,UAAmC,EAAE;IAErC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,SAAS,GACb,OAAO,CAAC,SAAS;QACjB,CAAC,CAAC,GAAW,EAAE,IAAkB,EAAE,EAAE,CACnC,IAAA,uBAAgB,EAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,0BAAc,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/platform/config.ts"],"names":[],"mappings":";;;AA0NA,4CAmBC;AA7OD,qCAAqC;AACrC,+CAAuD;AACvD,yCAAoC;AACpC,6CAA4C;AAC5C,4CAKsB;AACtB,yCAAkD;AAKlD;;;;GAIG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAE1C,YAAY,MAAc;QACxB,KAAK,CACH,kBAAkB,MAAM,gEAAgE,CACzF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AATD,8CASC;AAQD,MAAM,kBAAkB,GAAG;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;CAClB,CAAC;AACF,MAAM,aAAa,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AAEhD,SAAS,oBAAoB,CAAC,GAAsB;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,4BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,GAAG,CAAC;AACV,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAM;QAC3E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,MAAO,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc,EACd,QAAiB,EACjB,QAAiB;IAEjB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACzE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,GAA8B,EAC9B,MAA0B,EAC1B,GAAsB;IAEtB,OAAO;QACL,MAAM;QACN,EAAE,EAAE;YACF,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI;YAClB,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ;YAC1B,SAAS,EAAE,kBAAkB,CAC3B,GAAG,CAAC,EAAE,EAAE,SAAS,EACjB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAChB,GAAG,CAAC,EAAE,EAAE,QAAQ,CACjB;YACD,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,eAAe;YACvC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,IAAI,2CAA2C;YACzE,MAAM,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE;SAClD;QACD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;QACjC,SAAS,EAAE;YACT,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;YAC1C,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC;SACjD;QACD,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzC,WAAW,EAAE,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC;QAClD,aAAa,EAAE,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC;QACxD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAsB,EACtB,SAAoB;IAEpB,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,GAAG,GAAG,GAAG,WAAW,GAAG,2BAAe,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA8B,CAAC;QAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,CACX,2CAA2C,CAC5C,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4BAA4B;QAC5B,IAAI,KAAK,YAAY,iBAAiB;YAAE,MAAM,KAAK,CAAC;QACpD,OAAO,CAAC,KAAK,CACX,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAsB;IAEtB,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACxC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,oBAAU,EAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,MAAM,IAAA,mBAAQ,EAAC,SAAS,EAAE,MAAM,CAAC,CACL,CAAC;QAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC1D,OAAO,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAsB,EACtB,MAAwB;IAExB,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACxC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO;IACrD,MAAM,IAAA,oBAAS,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAW,EACX,GAAsB;IAEtB,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;YAAE,SAAS;QAChC,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAEN,CAAC;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,UAAmC,EAAE;IAErC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,SAAS,GACb,OAAO,CAAC,SAAS;QACjB,CAAC,CAAC,GAAW,EAAE,IAAkB,EAAE,EAAE,CACnC,IAAA,uBAAgB,EAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,0BAAc,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { KnownFindingsSnapshot, ReconciledFinding } from "../types";
2
+ /**
3
+ * 拉取 MR 已知 findings。任何失败(网络、404 老平台、解析)都返回 null,
4
+ * 调用方退化为无状态评审 —— 持久化层故障绝不能阻塞 CR 流水线。
5
+ */
6
+ export declare function fetchKnownFindings(mrIid: string, env?: NodeJS.ProcessEnv): Promise<KnownFindingsSnapshot | null>;
7
+ /** 回写对账结果。失败仅记录日志,不影响本次评审结论。 */
8
+ export declare function postFindingsSync(payload: {
9
+ mrIid: string;
10
+ findings: ReconciledFinding[];
11
+ }, env?: NodeJS.ProcessEnv): Promise<boolean>;
12
+ //# sourceMappingURL=findings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,UAAU,CAAC;AA+ClB;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAyCvC;AAED,gCAAgC;AAChC,wBAAsB,gBAAgB,CACpC,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B,EACD,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,OAAO,CAAC,CA8BlB"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchKnownFindings = fetchKnownFindings;
4
+ exports.postFindingsSync = postFindingsSync;
5
+ const constants_1 = require("../constants");
6
+ const http_1 = require("../shared/http");
7
+ function resolvePlatform(env) {
8
+ const url = env[constants_1.ENV_PLATFORM_URL]?.replace(/\/+$/, "");
9
+ const token = env[constants_1.ENV_PROJECT_TOKEN];
10
+ if (!url || !token)
11
+ return null;
12
+ return { url, token };
13
+ }
14
+ function isSeverity(value) {
15
+ return value === "P0" || value === "P1" || value === "P2";
16
+ }
17
+ function parseKnownFinding(raw) {
18
+ if (!raw || typeof raw !== "object")
19
+ return null;
20
+ const record = raw;
21
+ if (typeof record.fingerprint !== "string" ||
22
+ !record.fingerprint ||
23
+ typeof record.file !== "string" ||
24
+ !record.file ||
25
+ typeof record.message !== "string" ||
26
+ !record.message ||
27
+ typeof record.line !== "number" ||
28
+ !isSeverity(record.severity) ||
29
+ (record.status !== "OPEN" && record.status !== "WONT_FIX")) {
30
+ return null;
31
+ }
32
+ return {
33
+ fingerprint: record.fingerprint,
34
+ file: record.file,
35
+ line: record.line,
36
+ severity: record.severity,
37
+ message: record.message,
38
+ status: record.status,
39
+ blocking: record.blocking !== false,
40
+ ...(typeof record.code === "string" ? { code: record.code } : {}),
41
+ ...(typeof record.suggestion === "string"
42
+ ? { suggestion: record.suggestion }
43
+ : {}),
44
+ };
45
+ }
46
+ /**
47
+ * 拉取 MR 已知 findings。任何失败(网络、404 老平台、解析)都返回 null,
48
+ * 调用方退化为无状态评审 —— 持久化层故障绝不能阻塞 CR 流水线。
49
+ */
50
+ async function fetchKnownFindings(mrIid, env = process.env) {
51
+ const platform = resolvePlatform(env);
52
+ if (!platform)
53
+ return null;
54
+ try {
55
+ const resp = await (0, http_1.fetchWithTimeout)(`${platform.url}${constants_1.API_FINDINGS_PATH}?mrIid=${encodeURIComponent(mrIid)}`, { headers: { Authorization: `Bearer ${platform.token}` } }, constants_1.API_TIMEOUT_MS);
56
+ if (!resp.ok) {
57
+ console.error(`[findings] fetch failed status=${resp.status}`);
58
+ return null;
59
+ }
60
+ const json = await (0, http_1.parseJsonSafe)(resp);
61
+ if (!json)
62
+ return null;
63
+ const findings = (Array.isArray(json.findings) ? json.findings : [])
64
+ .map(parseKnownFinding)
65
+ .filter((f) => f !== null);
66
+ const lastReviewedSha = typeof json.lastReviewedSha === "string" && json.lastReviewedSha
67
+ ? json.lastReviewedSha
68
+ : null;
69
+ console.error(`[findings] fetched known=${findings.length} lastReviewedSha=${lastReviewedSha ?? "(none)"}`);
70
+ return { lastReviewedSha, findings };
71
+ }
72
+ catch (error) {
73
+ console.error("[findings] fetch error:", error instanceof Error ? error.message : String(error));
74
+ return null;
75
+ }
76
+ }
77
+ /** 回写对账结果。失败仅记录日志,不影响本次评审结论。 */
78
+ async function postFindingsSync(payload, env = process.env) {
79
+ const platform = resolvePlatform(env);
80
+ if (!platform)
81
+ return false;
82
+ try {
83
+ const resp = await (0, http_1.fetchWithTimeout)(`${platform.url}${constants_1.API_FINDINGS_PATH}`, {
84
+ method: "PUT",
85
+ headers: {
86
+ "Content-Type": "application/json",
87
+ Authorization: `Bearer ${platform.token}`,
88
+ },
89
+ body: JSON.stringify(payload),
90
+ }, constants_1.API_TIMEOUT_MS);
91
+ if (!resp.ok) {
92
+ console.error(`[findings] sync failed status=${resp.status}`);
93
+ return false;
94
+ }
95
+ console.error(`[findings] synced count=${payload.findings.length}`);
96
+ return true;
97
+ }
98
+ catch (error) {
99
+ console.error("[findings] sync error:", error instanceof Error ? error.message : String(error));
100
+ return false;
101
+ }
102
+ }
103
+ //# sourceMappingURL=findings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":";;AA+DA,gDA4CC;AAGD,4CAoCC;AAlJD,4CAKsB;AACtB,yCAAiE;AAQjE,SAAS,eAAe,CAAC,GAAsB;IAI7C,MAAM,GAAG,GAAG,GAAG,CAAC,4BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,IACE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,CAAC,MAAM,CAAC,WAAW;QACnB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,MAAM,CAAC,IAAI;QACZ,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,OAAO;QACf,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5B,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,EAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,KAAK;QACnC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;YACvC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;YACnC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAgB,EACjC,GAAG,QAAQ,CAAC,GAAG,GAAG,6BAAiB,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EACxE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAC1D,0BAAc,CACf,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAa,EAG7B,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAChD,MAAM,eAAe,GACnB,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe;YAC9D,CAAC,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,IAAI,CAAC;QAEX,OAAO,CAAC,KAAK,CACX,4BAA4B,QAAQ,CAAC,MAAM,oBACzC,eAAe,IAAI,QACrB,EAAE,CACH,CAAC;QACF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,yBAAyB,EACzB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gCAAgC;AACzB,KAAK,UAAU,gBAAgB,CACpC,OAGC,EACD,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAgB,EACjC,GAAG,QAAQ,CAAC,GAAG,GAAG,6BAAiB,EAAE,EACrC;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,QAAQ,CAAC,KAAK,EAAE;aAC1C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,EACD,0BAAc,CACf,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,wBAAwB,EACxB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -6,6 +6,7 @@ export interface RunReportPayload {
6
6
  verdict?: Verdict;
7
7
  duration?: number;
8
8
  mrIid?: string | number;
9
+ commitSha?: string;
9
10
  sensitiveAlerts?: Array<{
10
11
  file: string;
11
12
  reason: string;
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/platform/report.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACtC,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAGD,wBAAsB,aAAa,CACjC,OAAO,EAAE,gBAAgB,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/platform/report.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACtC,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAGD,wBAAsB,aAAa,CACjC,OAAO,EAAE,gBAAgB,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/platform/report.ts"],"names":[],"mappings":";;AAyBA,sCAiCC;AA1DD,4CAKsB;AACtB,yCAAkD;AAkBlD,SAAS;AACF,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,WAAW,GAAG,GAAG,CAAC,4BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnC,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAgB,EACjC,GAAG,WAAW,GAAG,yBAAa,EAAE,EAChC;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,EACD,0BAAc,CACf,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,oBAAoB,EACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/platform/report.ts"],"names":[],"mappings":";;AA0BA,sCAiCC;AA3DD,4CAKsB;AACtB,yCAAkD;AAmBlD,SAAS;AACF,KAAK,UAAU,aAAa,CACjC,OAAyB,EACzB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,WAAW,GAAG,GAAG,CAAC,4BAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,6BAAiB,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnC,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAgB,EACjC,GAAG,WAAW,GAAG,yBAAa,EAAE,EAChC;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,EACD,0BAAc,CACf,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,oBAAoB,EACpB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AA8DA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAiGhD"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAiEA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA0JhD"}
package/dist/runner.js CHANGED
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reviewMain = reviewMain;
4
4
  const config_1 = require("./platform/config");
5
5
  const output_1 = require("./core/output");
6
+ const incremental_1 = require("./core/incremental");
6
7
  const reviewer_1 = require("./core/reviewer");
7
8
  const summarizer_1 = require("./core/summarizer");
8
9
  const verdict_1 = require("./core/verdict");
10
+ const findings_1 = require("./platform/findings");
9
11
  const report_1 = require("./platform/report");
10
12
  const api_1 = require("./gitlab/api");
11
13
  const readStdin = () => new Promise((resolve, reject) => {
@@ -57,7 +59,18 @@ async function reviewMain() {
57
59
  console.log(JSON.stringify((0, output_1.buildEmptyRdjson)()));
58
60
  return;
59
61
  }
60
- const config = await (0, config_1.loadReviewConfig)();
62
+ let config;
63
+ try {
64
+ config = await (0, config_1.loadReviewConfig)();
65
+ }
66
+ catch (error) {
67
+ if (error instanceof config_1.PlatformAuthError) {
68
+ console.error(`[runner] review failed: ${error.message}`);
69
+ console.log(JSON.stringify((0, output_1.buildEmptyRdjson)()));
70
+ return;
71
+ }
72
+ throw error;
73
+ }
61
74
  logConfigDetails(config);
62
75
  const mrIid = process.env.CI_MERGE_REQUEST_IID;
63
76
  if (!config.ai.apiKey) {
@@ -65,7 +78,11 @@ async function reviewMain() {
65
78
  console.log(JSON.stringify((0, output_1.buildEmptyRdjson)()));
66
79
  return;
67
80
  }
68
- const result = await (0, reviewer_1.reviewCode)(diff, config);
81
+ // 已知 findings 拉取与模型评审无依赖,并行执行;拉取失败 fail-open 退化为无状态评审
82
+ const [result, knownSnapshot] = await Promise.all([
83
+ (0, reviewer_1.reviewCode)(diff, config),
84
+ mrIid ? (0, findings_1.fetchKnownFindings)(mrIid) : Promise.resolve(null),
85
+ ]);
69
86
  if (!result) {
70
87
  console.error("[runner] review failed: model returned no valid result");
71
88
  console.log(JSON.stringify((0, output_1.buildEmptyRdjson)()));
@@ -77,17 +94,40 @@ async function reviewMain() {
77
94
  });
78
95
  return;
79
96
  }
80
- const verdict = (0, verdict_1.computeVerdict)(result.comments);
81
- console.error(`[runner] review complete comments=${result.comments.length} verdict=${verdict}`);
82
97
  const gitlabContext = (await (0, api_1.fetchGitlabContext)({ token: config.gitlab?.token })) ?? undefined;
98
+ // 与平台已知 findings 对账:漏报保活、修复收口、人工 dismiss 终态、增量准入
99
+ let activeComments = result.comments;
100
+ let blockingComments = result.comments;
101
+ let reconciledFindings = null;
102
+ if (knownSnapshot) {
103
+ const changedFiles = knownSnapshot.lastReviewedSha
104
+ ? await (0, incremental_1.listChangedFiles)(knownSnapshot.lastReviewedSha)
105
+ : null;
106
+ const reconciled = (0, incremental_1.reconcileFindings)({
107
+ known: knownSnapshot.findings,
108
+ current: result.comments,
109
+ diff,
110
+ changedFiles,
111
+ baseline: !knownSnapshot.lastReviewedSha,
112
+ humanResolved: gitlabContext
113
+ ? (0, api_1.collectHumanResolvedFingerprints)(gitlabContext)
114
+ : new Set(),
115
+ });
116
+ activeComments = reconciled.activeComments;
117
+ blockingComments = reconciled.blockingComments;
118
+ reconciledFindings = reconciled.findings;
119
+ console.error(`[runner] findings reconciled new=${reconciled.stats.new} kept=${reconciled.stats.kept} fixed=${reconciled.stats.fixed} wontFix=${reconciled.stats.wontFix} advisory=${reconciled.stats.advisory}`);
120
+ }
121
+ const verdict = (0, verdict_1.computeVerdict)(blockingComments);
122
+ console.error(`[runner] review complete comments=${activeComments.length} blocking=${blockingComments.length} verdict=${verdict}`);
83
123
  await (0, api_1.postGitlabDiscussions)({
84
- comments: result.comments,
124
+ comments: activeComments,
85
125
  diff,
86
126
  token: config.gitlab?.token,
87
127
  context: gitlabContext,
88
128
  });
89
- console.log(JSON.stringify((0, output_1.buildRdjson)(result.comments)));
90
- const verdictSection = (0, verdict_1.buildVerdictMarkdown)(verdict, result.comments);
129
+ console.log(JSON.stringify((0, output_1.buildRdjson)(activeComments)));
130
+ const verdictSection = (0, verdict_1.buildVerdictMarkdown)(verdict, activeComments, blockingComments);
91
131
  let markdown = await (0, summarizer_1.generateSummary)(diff, config);
92
132
  if (result.sensitiveAlerts && result.sensitiveAlerts.length > 0) {
93
133
  const alertLines = result.sensitiveAlerts.map((a) => {
@@ -113,13 +153,24 @@ async function reviewMain() {
113
153
  token: config.gitlab?.token,
114
154
  context: gitlabContext,
115
155
  });
156
+ let findingsSynced = false;
157
+ if (mrIid && reconciledFindings) {
158
+ findingsSynced = await (0, findings_1.postFindingsSync)({
159
+ mrIid,
160
+ findings: reconciledFindings,
161
+ });
162
+ }
163
+ // commitSha 推进 lastReviewedSha;只有 finding 集合同步成功时才能推进,
164
+ // 避免平台基线前移但 finding 未落库,导致后续新问题被误降级为 advisory。
165
+ const commitSha = process.env.CI_COMMIT_SHA;
116
166
  await (0, report_1.postRunReport)({
117
167
  status: "SUCCESS",
118
168
  modelUsed: config.ai.model,
119
- commentCount: result.comments.length,
169
+ commentCount: activeComments.length,
120
170
  verdict,
121
171
  duration: Date.now() - startedAt,
122
172
  mrIid,
173
+ ...(commitSha && findingsSynced ? { commitSha } : {}),
123
174
  sensitiveAlerts: result.sensitiveAlerts?.map(({ file, reason, riskLevel }) => ({
124
175
  file,
125
176
  reason,
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;AA8DA,gCAiGC;AA/JD,8CAAqD;AACrD,0CAA8D;AAC9D,8CAA6C;AAC7C,kDAAoD;AACpD,4CAAsE;AACtE,8CAAkD;AAClD,sCAIsB;AAGtB,MAAM,SAAS,GAAG,GAAoB,EAAE,CACtC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACjC,IAAI,IAAI,KAAK,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,SAAS,gBAAgB,CAAC,MAAwB;IAChD,MAAM,KAAK,GAAG;QACZ,sBAAsB;QACtB,kBAAkB,MAAM,CAAC,MAAM,EAAE;QACjC,kBAAkB,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,GACjD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EACpD,EAAE;QACF,kBAAkB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE;QACvC,kBAAkB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtC,kBAAkB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE;KAC3D,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,OAAO;AACA,KAAK,UAAU,UAAU;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAgB,GAAE,CAAC;IACxC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAU,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,MAAM,IAAA,sBAAa,EAAC;YAClB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,KAAK;SACN,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,wBAAc,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CACX,qCAAqC,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,OAAO,EAAE,CACjF,CAAC;IAEF,MAAM,aAAa,GACjB,CAAC,MAAM,IAAA,wBAAkB,EAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;IAC3E,MAAM,IAAA,2BAAqB,EAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;QAC3B,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,oBAAW,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,IAAA,8BAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,QAAQ,GAAG,MAAM,IAAA,4BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClD,MAAM,IAAI,GACR,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACzE,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,QACzD,CAAC,CAAC,MACJ,IAAI,CAAC;QACP,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG;YACnB,EAAE;YACF,cAAc;YACd,EAAE;YACF,kBAAkB;YAClB,wBAAwB;YACxB,GAAG,UAAU;YACb,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ;QAC3B,CAAC,CAAC,GAAG,cAAc,YAAY,QAAQ,EAAE;QACzC,CAAC,CAAC,cAAc,CAAC;IAEnB,MAAM,IAAA,uBAAiB,EAAC;QACtB,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;QAC3B,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,MAAM,IAAA,sBAAa,EAAC;QAClB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK;QAC1B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QACpC,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QAChC,KAAK;QACL,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,CAC1C,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI;YACJ,MAAM;YACN,SAAS;SACV,CAAC,CACH;QACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -30,6 +30,35 @@ export interface AIComment {
30
30
  suggestion?: string;
31
31
  }
32
32
  export type Verdict = "PASSED" | "ACTION_REQUIRED";
33
+ export type FindingStatus = "OPEN" | "FIXED" | "WONT_FIX";
34
+ /** 平台持久化的 finding(GET 拉取,只含 OPEN / WONT_FIX) */
35
+ export interface KnownFinding {
36
+ fingerprint: string;
37
+ file: string;
38
+ line: number;
39
+ code?: string;
40
+ severity: Severity;
41
+ message: string;
42
+ suggestion?: string;
43
+ status: "OPEN" | "WONT_FIX";
44
+ blocking: boolean;
45
+ }
46
+ /** 对账后的 finding(PUT 回写,含状态推导结果) */
47
+ export interface ReconciledFinding {
48
+ fingerprint: string;
49
+ file: string;
50
+ line: number;
51
+ code?: string;
52
+ severity: Severity;
53
+ message: string;
54
+ suggestion?: string;
55
+ status: FindingStatus;
56
+ blocking: boolean;
57
+ }
58
+ export interface KnownFindingsSnapshot {
59
+ lastReviewedSha: string | null;
60
+ findings: KnownFinding[];
61
+ }
33
62
  export interface SensitiveConfig {
34
63
  files: string[];
35
64
  keywords: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,WAAW,EAAE,KAAK,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE;gBAAE,KAAK,EAAE;oBAAE,IAAI,EAAE,MAAM,CAAC;oBAAC,MAAM,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC;SACpD,CAAC;QACF,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;KACxC,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuyanbin/ai-code-review-cli-remote",
3
- "version": "1.0.22",
3
+ "version": "1.0.24-canary.0",
4
4
  "description": "AI Code Review remote client - sends diffs to AICR platform for review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",