@wuyanbin/ai-code-review-cli-remote 1.3.0 → 1.4.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.
Files changed (61) hide show
  1. package/README.md +73 -0
  2. package/dist/core/agent-runtime.d.ts +81 -0
  3. package/dist/core/agent-runtime.d.ts.map +1 -0
  4. package/dist/core/agent-runtime.js +186 -0
  5. package/dist/core/agent-runtime.js.map +1 -0
  6. package/dist/core/cursor-rules.d.ts +20 -2
  7. package/dist/core/cursor-rules.d.ts.map +1 -1
  8. package/dist/core/cursor-rules.js +67 -26
  9. package/dist/core/cursor-rules.js.map +1 -1
  10. package/dist/core/default-ignore.d.ts +4 -11
  11. package/dist/core/default-ignore.d.ts.map +1 -1
  12. package/dist/core/default-ignore.js +34 -8
  13. package/dist/core/default-ignore.js.map +1 -1
  14. package/dist/core/incremental.d.ts +15 -4
  15. package/dist/core/incremental.d.ts.map +1 -1
  16. package/dist/core/incremental.js +60 -2
  17. package/dist/core/incremental.js.map +1 -1
  18. package/dist/core/model.d.ts +8 -0
  19. package/dist/core/model.d.ts.map +1 -1
  20. package/dist/core/model.js +19 -1
  21. package/dist/core/model.js.map +1 -1
  22. package/dist/core/prompt.d.ts.map +1 -1
  23. package/dist/core/prompt.js +8 -6
  24. package/dist/core/prompt.js.map +1 -1
  25. package/dist/core/reviewer.d.ts.map +1 -1
  26. package/dist/core/reviewer.js +3 -1
  27. package/dist/core/reviewer.js.map +1 -1
  28. package/dist/core/verdict.d.ts +18 -1
  29. package/dist/core/verdict.d.ts.map +1 -1
  30. package/dist/core/verdict.js +49 -2
  31. package/dist/core/verdict.js.map +1 -1
  32. package/dist/core/verification.d.ts +96 -0
  33. package/dist/core/verification.d.ts.map +1 -0
  34. package/dist/core/verification.js +363 -0
  35. package/dist/core/verification.js.map +1 -0
  36. package/dist/core/verify-tools.d.ts +67 -0
  37. package/dist/core/verify-tools.d.ts.map +1 -0
  38. package/dist/core/verify-tools.js +396 -0
  39. package/dist/core/verify-tools.js.map +1 -0
  40. package/dist/gitlab/api.d.ts +6 -3
  41. package/dist/gitlab/api.d.ts.map +1 -1
  42. package/dist/gitlab/api.js +13 -6
  43. package/dist/gitlab/api.js.map +1 -1
  44. package/dist/platform/findings.d.ts +1 -1
  45. package/dist/platform/findings.d.ts.map +1 -1
  46. package/dist/platform/findings.js +12 -2
  47. package/dist/platform/findings.js.map +1 -1
  48. package/dist/runner.d.ts.map +1 -1
  49. package/dist/runner.js +38 -11
  50. package/dist/runner.js.map +1 -1
  51. package/dist/shared/identity.d.ts +8 -0
  52. package/dist/shared/identity.d.ts.map +1 -1
  53. package/dist/shared/identity.js +21 -0
  54. package/dist/shared/identity.js.map +1 -1
  55. package/dist/shared/run-budget.d.ts +20 -0
  56. package/dist/shared/run-budget.d.ts.map +1 -0
  57. package/dist/shared/run-budget.js +53 -0
  58. package/dist/shared/run-budget.js.map +1 -0
  59. package/dist/types.d.ts +31 -3
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +2 -1
@@ -15,6 +15,13 @@ function resolvePlatform(env) {
15
15
  function isSeverity(value) {
16
16
  return value === "P0" || value === "P1" || value === "P2";
17
17
  }
18
+ function isVerificationVerdict(value) {
19
+ return (value === "CONFIRMED" || value === "REFUTED" || value === "UNSURE" || value === "SKIPPED");
20
+ }
21
+ /** 平台返回的非终态 / 粘性终态;其余终态(FIXED、MR 终态)不会下发,未知值按不存在处理 */
22
+ function isKnownStatus(value) {
23
+ return value === "OPEN" || value === "WONT_FIX" || value === "SUPPRESSED";
24
+ }
18
25
  function parseKnownFinding(raw) {
19
26
  if (!raw || typeof raw !== "object")
20
27
  return null;
@@ -27,7 +34,7 @@ function parseKnownFinding(raw) {
27
34
  !record.message ||
28
35
  typeof record.line !== "number" ||
29
36
  !isSeverity(record.severity) ||
30
- (record.status !== "OPEN" && record.status !== "WONT_FIX")) {
37
+ !isKnownStatus(record.status)) {
31
38
  return null;
32
39
  }
33
40
  return {
@@ -42,12 +49,15 @@ function parseKnownFinding(raw) {
42
49
  ...(typeof record.suggestion === "string"
43
50
  ? { suggestion: record.suggestion }
44
51
  : {}),
52
+ ...(isVerificationVerdict(record.verificationVerdict)
53
+ ? { verificationVerdict: record.verificationVerdict }
54
+ : {}),
45
55
  // 非法值只丢字段:一个可选标注不能让整条已知 finding 失效
46
56
  ...((0, confidence_1.isConfidence)(record.confidence) ? { confidence: record.confidence } : {}),
47
57
  };
48
58
  }
49
59
  /**
50
- * 拉取 MR 已知 findings。任何失败(网络、404 老平台、解析)都返回 null,
60
+ * 拉取 MR 已知 findings(OPEN / WONT_FIX / SUPPRESSED)。任何失败(网络、404 老平台、解析)都返回 null,
51
61
  * 调用方退化为无状态评审 —— 持久化层故障绝不能阻塞 CR 流水线。
52
62
  */
53
63
  async function fetchKnownFindings(mrIid, env = process.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAkIA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoXhD"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAwIA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA+ZhD"}
package/dist/runner.js CHANGED
@@ -4,6 +4,7 @@ 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 verification_1 = require("./core/verification");
7
8
  const revalidation_1 = require("./core/revalidation");
8
9
  const semantic_match_1 = require("./core/semantic-match");
9
10
  const model_1 = require("./core/model");
@@ -193,23 +194,21 @@ async function reviewMain() {
193
194
  changeScope,
194
195
  baseline: !knownSnapshot.lastReviewedSha,
195
196
  humanResolved: gitlabContext
196
- ? (0, api_1.collectHumanResolvedFingerprints)(gitlabContext)
197
- : new Set(),
197
+ ? (0, api_1.collectHumanResolutions)(gitlabContext)
198
+ : new Map(),
198
199
  });
199
200
  }
200
201
  // keptUntouched 保活候选交模型复核裁决,新建 finding 与存活已知 finding 交模型
201
- // 判重;两者与摘要生成(本来就有的独立模型调用)三路并行,不拉长关键路径。
202
- // 复核/判重失败或关闭时行为与未引入时完全一致。
202
+ // 判重;两者并行,不拉长关键路径。复核/判重失败或关闭时行为与未引入时完全一致。
203
203
  const revalidationCandidates = reconciled?.revalidationCandidates ?? [];
204
204
  const semanticPairs = reconciled ? (0, semantic_match_1.selectSemanticPairs)(reconciled) : [];
205
- const [revalidationVerdicts, semanticMatches, summaryMarkdown] = await Promise.all([
205
+ const [revalidationVerdicts, semanticMatches] = await Promise.all([
206
206
  revalidationCandidates.length > 0
207
207
  ? (0, revalidation_1.revalidateFindings)(revalidationCandidates, config)
208
208
  : Promise.resolve(new Map()),
209
209
  semanticPairs.length > 0
210
210
  ? (0, semantic_match_1.judgeSemanticMatches)(semanticPairs, config)
211
211
  : Promise.resolve([]),
212
- (0, summarizer_1.generateSummary)(diff, config, result.comments),
213
212
  ]);
214
213
  // 先复核后判重:applySemanticMatches 按应用时的已知方状态放行已收口者
215
214
  if (reconciled && revalidationVerdicts.size > 0) {
@@ -218,6 +217,17 @@ async function reviewMain() {
218
217
  if (reconciled && semanticMatches.length > 0) {
219
218
  reconciled = (0, incremental_1.applySemanticMatches)(reconciled, semanticMatches);
220
219
  }
220
+ // 取证验证:复核 / 判重之后、发布之前,对本次新建的 finding 逐条取证,只有
221
+ // CONFIRMED 进入发布集与准入判定,其余置 SUPPRESSED 入库不发评论。无状态运行
222
+ // (快照拉取失败)时候选为本次模型输出全集。整 run 截止自启动起算。
223
+ const verificationCandidates = (0, verification_1.selectVerificationCandidates)(reconciled, result.comments);
224
+ const verification = await (0, verification_1.verifyFindings)(verificationCandidates, config, diff, { startedAt });
225
+ if (reconciled && verification.verdicts.size > 0) {
226
+ reconciled = (0, incremental_1.applyVerificationVerdicts)(reconciled, verification.verdicts);
227
+ }
228
+ const suppressedCount = verification.counts.refuted +
229
+ verification.counts.unsure +
230
+ verification.counts.skipped;
221
231
  let activeComments = result.comments;
222
232
  let blockingComments = result.comments;
223
233
  let reconciledFindings = null;
@@ -225,7 +235,7 @@ async function reviewMain() {
225
235
  activeComments = reconciled.activeComments;
226
236
  blockingComments = reconciled.blockingComments;
227
237
  reconciledFindings = reconciled.findings;
228
- console.error(`[runner] findings reconciled new=${reconciled.stats.new} kept=${reconciled.stats.kept} keptReported=${reconciled.stats.keptReported} keptUntouched=${reconciled.stats.keptUntouched} fixed=${reconciled.stats.fixed} fixedRevalidated=${reconciled.stats.fixedRevalidated} fixedMissingAnchor=${reconciled.stats.fixedMissingAnchor} severityMigrated=${reconciled.stats.severityMigrated} ambiguousAnchor=${reconciled.stats.ambiguousAnchor} wontFix=${reconciled.stats.wontFix} dropped=${reconciled.stats.dropped}`);
238
+ console.error(`[runner] findings reconciled new=${reconciled.stats.new} kept=${reconciled.stats.kept} keptReported=${reconciled.stats.keptReported} keptUntouched=${reconciled.stats.keptUntouched} fixed=${reconciled.stats.fixed} fixedRevalidated=${reconciled.stats.fixedRevalidated} fixedMissingAnchor=${reconciled.stats.fixedMissingAnchor} severityMigrated=${reconciled.stats.severityMigrated} ambiguousAnchor=${reconciled.stats.ambiguousAnchor} wontFix=${reconciled.stats.wontFix} suppressed=${reconciled.stats.suppressed} dropped=${reconciled.stats.dropped}`);
229
239
  if (revalidationVerdicts.size > 0) {
230
240
  console.error(`[revalidation] checked=${revalidationVerdicts.size} fixed=${reconciled.stats.revalidatedFixed} present=${reconciled.stats.revalidatedPresent} unsure=${reconciled.stats.revalidatedUnsure}`);
231
241
  }
@@ -233,9 +243,25 @@ async function reviewMain() {
233
243
  console.error(`[semantic] pairs=${semanticPairs.length} matched=${semanticMatches.length} wontFix=${reconciled.stats.semanticWontFix} duplicate=${reconciled.stats.semanticDuplicate}`);
234
244
  }
235
245
  }
246
+ else if (verification.verdicts.size > 0) {
247
+ // 无状态运行没有对账结果可回写:直接从发布集与准入集里过滤未证实的意见
248
+ activeComments = (0, verification_1.applyVerificationToComments)(result.comments, verification.verdicts);
249
+ blockingComments = activeComments;
250
+ }
251
+ // 摘要只读 findings 清单,几秒级:放在验证之后串行,确保摘要里的问题列表与发布集一致
252
+ const summaryMarkdown = await (0, summarizer_1.generateSummary)(diff, config, activeComments);
236
253
  const verdict = (0, verdict_1.computeVerdict)(blockingComments);
237
- console.error(`[runner] review complete comments=${activeComments.length} blocking=${blockingComments.length} verdict=${verdict}`);
238
- const verdictSection = (0, verdict_1.buildVerdictMarkdown)(verdict, activeComments, blockingComments);
254
+ 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=${blockingComments.length} verdict=${verdict}`);
255
+ // 发布分流:只有 P0(经取证验证)发行内评论并参与准入;P1 / P2 只进摘要汇总,
256
+ // 不发行内评论、不验证,但照常入库对账(锚点消失会自动收口,列表跨 push 稳定)。
257
+ // 首次升级时,旧版本发过的 P1 行内线程会被评论生命周期治理当作 stale 标记 resolved。
258
+ const inlineComments = activeComments.filter((c) => c.severity === "P0");
259
+ const digestComments = activeComments.filter((c) => c.severity !== "P0");
260
+ const verdictSection = (0, verdict_1.buildVerdictMarkdown)(verdict, activeComments, blockingComments, {
261
+ suppressedCount,
262
+ verificationIncomplete: verification.budgetExhausted,
263
+ digestComments,
264
+ });
239
265
  let markdown = summaryMarkdown;
240
266
  // 未审到的文件必须让 MR 作者看见:静默漏审比不审更糟——
241
267
  // 使用者会以为「已评审」而实际上那些文件根本没进过模型。
@@ -313,7 +339,7 @@ async function reviewMain() {
313
339
  console.error(`[runner] MR head freshness unknown pipelineCommit=${commitSha ? "present" : "missing"} currentHead=${mergeRequestHeadSha ? "present" : "missing"}; continuing`);
314
340
  }
315
341
  await (0, api_1.postGitlabDiscussions)({
316
- comments: activeComments,
342
+ comments: inlineComments,
317
343
  diff,
318
344
  token: config.gitlab?.token,
319
345
  context: gitlabContext,
@@ -338,7 +364,8 @@ async function reviewMain() {
338
364
  await (0, report_1.postRunReport)({
339
365
  status: "SUCCESS",
340
366
  modelUsed: config.ai.model,
341
- commentCount: activeComments.length,
367
+ // 「评论数」= 真正发到 MR 的行内评论(经验证的 P0);P1 只在摘要汇总,计入 severityCounts 不计入评论数
368
+ commentCount: inlineComments.length,
342
369
  verdict,
343
370
  duration: Date.now() - startedAt,
344
371
  mrIid,
@@ -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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"}
@@ -23,4 +23,12 @@ export declare function extractHiddenMarker(body: string, kind: string): string
23
23
  * 否则后续运行会继续命中旧 note 而不是新位置的讨论。
24
24
  */
25
25
  export declare function stripHiddenMarker(body: string, kind: string): string;
26
+ /**
27
+ * 本次 run 的标识,随每一次模型调用以 `x-aicr-run-id` 头发送,网关据此按 run
28
+ * 计数与限额。取 `CI_JOB_ID`(能直接在 GitLab 定位 job),缺失时生成随机 UUID;
29
+ * 进程内只算一次,保证同一 run 的全部调用共用同一个 id。
30
+ */
31
+ export declare function resolveRunId(env?: NodeJS.ProcessEnv): string;
32
+ /** 测试用:清空缓存,使下一次 resolveRunId 重新解析 */
33
+ export declare function resetRunId(): void;
26
34
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/shared/identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAQlE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAWlE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpE"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/shared/identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAQlE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAWlE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpE;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKzE;AAED,sCAAsC;AACtC,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
@@ -7,6 +7,8 @@ exports.buildContentFingerprint = buildContentFingerprint;
7
7
  exports.buildHiddenMarker = buildHiddenMarker;
8
8
  exports.extractHiddenMarker = extractHiddenMarker;
9
9
  exports.stripHiddenMarker = stripHiddenMarker;
10
+ exports.resolveRunId = resolveRunId;
11
+ exports.resetRunId = resetRunId;
10
12
  const node_crypto_1 = require("node:crypto");
11
13
  const diff_1 = require("../core/diff");
12
14
  exports.COMMENT_MARKER_PREFIX = "aicr-comment";
@@ -61,4 +63,23 @@ function stripHiddenMarker(body, kind) {
61
63
  .replace(new RegExp(`<!--\\s*${escaped}:[a-f0-9-]+\\s*-->`, "g"), "")
62
64
  .trim();
63
65
  }
66
+ /** 与平台网关清洗规则一致:`[A-Za-z0-9_-]{1,64}`,不合规的 CI_JOB_ID 视为缺失 */
67
+ const RUN_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
68
+ let cachedRunId = null;
69
+ /**
70
+ * 本次 run 的标识,随每一次模型调用以 `x-aicr-run-id` 头发送,网关据此按 run
71
+ * 计数与限额。取 `CI_JOB_ID`(能直接在 GitLab 定位 job),缺失时生成随机 UUID;
72
+ * 进程内只算一次,保证同一 run 的全部调用共用同一个 id。
73
+ */
74
+ function resolveRunId(env = process.env) {
75
+ if (cachedRunId)
76
+ return cachedRunId;
77
+ const jobId = env.CI_JOB_ID?.trim();
78
+ cachedRunId = jobId && RUN_ID_PATTERN.test(jobId) ? jobId : (0, node_crypto_1.randomUUID)();
79
+ return cachedRunId;
80
+ }
81
+ /** 测试用:清空缓存,使下一次 resolveRunId 重新解析 */
82
+ function resetRunId() {
83
+ cachedRunId = null;
84
+ }
64
85
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/shared/identity.ts"],"names":[],"mappings":";;;AAOA,gCAEC;AAUD,0DAQC;AAMD,0DAWC;AAED,8CAEC;AAED,kDAIC;AAMD,8CAKC;AAjED,6CAAyC;AAEzC,uCAA6C;AAEhC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AACvC,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,OAAkB;IACxD,OAAO,UAAU,CACf;QACE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1B,OAAO,CAAC,QAAQ;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAkB;IACxD,OAAO,UAAU,CACf;QACE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1B,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QACtB,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IACjE,OAAO,QAAQ,IAAI,IAAI,WAAW,MAAM,CAAC;AAC3C,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,OAAO,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,IAAY,EAAE,IAAY;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,OAAO,oBAAoB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;SACpE,IAAI,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/shared/identity.ts"],"names":[],"mappings":";;;AAOA,gCAEC;AAUD,0DAQC;AAMD,0DAWC;AAED,8CAEC;AAED,kDAIC;AAMD,8CAKC;AAWD,oCAKC;AAGD,gCAEC;AAtFD,6CAAqD;AAErD,uCAA6C;AAEhC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AACvC,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,OAAkB;IACxD,OAAO,UAAU,CACf;QACE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1B,OAAO,CAAC,QAAQ;KACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAkB;IACxD,OAAO,UAAU,CACf;QACE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1B,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;QACtB,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IACjE,OAAO,QAAQ,IAAI,IAAI,WAAW,MAAM,CAAC;AAC3C,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,OAAO,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,IAAY,EAAE,IAAY;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,OAAO,oBAAoB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;SACpE,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,4DAA4D;AAC5D,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC;;;;GAIG;AACH,SAAgB,YAAY,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC/D,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IACpC,WAAW,GAAG,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,wBAAU,GAAE,CAAC;IACzE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,sCAAsC;AACtC,SAAgB,UAAU;IACxB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * run 级模型预算信号。
3
+ *
4
+ * 平台网关按 `x-aicr-run-id` 对每次 run 硬限调用次数与 prompt token,超限返回
5
+ * HTTP 403、错误类型 `run_budget_exceeded`(刻意选 403 而非 429:SDK 与 fetchWithRetry
6
+ * 都不重试 403,避免放大)。任何一处模型调用收到该错误后在这里置位:验证编排层据此
7
+ * 停止派发新候选、未完成者记 SKIPPED;主评审阶段收到时只按一次调用失败处理。
8
+ * CLI 单进程只跑一个 run,模块级单例零侵入调用链(与 model.ts 的用量累计器同理)。
9
+ */
10
+ export declare const RUN_BUDGET_EXCEEDED_TYPE = "run_budget_exceeded";
11
+ export declare function isRunBudgetExceeded(status: number, body: unknown): boolean;
12
+ export declare class RunBudgetSignal {
13
+ private exhaustedBy;
14
+ get exhausted(): boolean;
15
+ /** 首次置位记日志;重复置位静默(并发候选可能同时收到 403) */
16
+ markExhausted(source: string): void;
17
+ reset(): void;
18
+ }
19
+ export declare const runBudget: RunBudgetSignal;
20
+ //# sourceMappingURL=run-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-budget.d.ts","sourceRoot":"","sources":["../../src/shared/run-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAgB9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAE1E;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAuB;IAE1C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,qCAAqC;IACrC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQnC,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,SAAS,iBAAwB,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runBudget = exports.RunBudgetSignal = exports.RUN_BUDGET_EXCEEDED_TYPE = void 0;
4
+ exports.isRunBudgetExceeded = isRunBudgetExceeded;
5
+ /**
6
+ * run 级模型预算信号。
7
+ *
8
+ * 平台网关按 `x-aicr-run-id` 对每次 run 硬限调用次数与 prompt token,超限返回
9
+ * HTTP 403、错误类型 `run_budget_exceeded`(刻意选 403 而非 429:SDK 与 fetchWithRetry
10
+ * 都不重试 403,避免放大)。任何一处模型调用收到该错误后在这里置位:验证编排层据此
11
+ * 停止派发新候选、未完成者记 SKIPPED;主评审阶段收到时只按一次调用失败处理。
12
+ * CLI 单进程只跑一个 run,模块级单例零侵入调用链(与 model.ts 的用量累计器同理)。
13
+ */
14
+ exports.RUN_BUDGET_EXCEEDED_TYPE = "run_budget_exceeded";
15
+ /** 从 Anthropic 错误体(`{ type: "error", error: { type, message } }`)或裸 error 对象取错误类型 */
16
+ function extractErrorType(body) {
17
+ if (!body || typeof body !== "object")
18
+ return null;
19
+ const record = body;
20
+ const nested = record.error;
21
+ if (nested && typeof nested === "object") {
22
+ const type = nested.type;
23
+ if (typeof type === "string")
24
+ return type;
25
+ }
26
+ return typeof record.type === "string" && record.type !== "error"
27
+ ? record.type
28
+ : null;
29
+ }
30
+ function isRunBudgetExceeded(status, body) {
31
+ return status === 403 && extractErrorType(body) === exports.RUN_BUDGET_EXCEEDED_TYPE;
32
+ }
33
+ class RunBudgetSignal {
34
+ constructor() {
35
+ this.exhaustedBy = null;
36
+ }
37
+ get exhausted() {
38
+ return this.exhaustedBy !== null;
39
+ }
40
+ /** 首次置位记日志;重复置位静默(并发候选可能同时收到 403) */
41
+ markExhausted(source) {
42
+ if (this.exhaustedBy !== null)
43
+ return;
44
+ this.exhaustedBy = source;
45
+ console.error(`[budget] run budget exceeded (reported by ${source}); no further model calls will be dispatched`);
46
+ }
47
+ reset() {
48
+ this.exhaustedBy = null;
49
+ }
50
+ }
51
+ exports.RunBudgetSignal = RunBudgetSignal;
52
+ exports.runBudget = new RunBudgetSignal();
53
+ //# sourceMappingURL=run-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-budget.js","sourceRoot":"","sources":["../../src/shared/run-budget.ts"],"names":[],"mappings":";;;AAyBA,kDAEC;AA3BD;;;;;;;;GAQG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D,qFAAqF;AACrF,SAAS,gBAAgB,CAAC,IAAa;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,GAAI,MAAkC,CAAC,IAAI,CAAC;QACtD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAC/D,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAc,EAAE,IAAa;IAC/D,OAAO,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,gCAAwB,CAAC;AAC/E,CAAC;AAED,MAAa,eAAe;IAA5B;QACU,gBAAW,GAAkB,IAAI,CAAC;IAkB5C,CAAC;IAhBC,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IACnC,CAAC;IAED,qCAAqC;IACrC,aAAa,CAAC,MAAc;QAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,CAAC,KAAK,CACX,6CAA6C,MAAM,8CAA8C,CAClG,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF;AAnBD,0CAmBC;AAEY,QAAA,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -36,8 +36,27 @@ export interface AIComment {
36
36
  confidence?: Confidence;
37
37
  }
38
38
  export type Verdict = "PASSED" | "ACTION_REQUIRED";
39
- export type FindingStatus = "OPEN" | "FIXED" | "WONT_FIX";
40
- /** 平台持久化的 finding(GET 拉取,只含 OPEN / WONT_FIX) */
39
+ /**
40
+ * CLI 可写的 finding 状态。`SUPPRESSED` 为取证验证未通过的终态;
41
+ * `MERGED_UNADDRESSED` / `MR_CLOSED` 只能由平台写入,CLI 既不读也不写。
42
+ */
43
+ export type FindingStatus = "OPEN" | "FIXED" | "WONT_FIX" | "SUPPRESSED";
44
+ /** 取证验证结论;SKIPPED 表示因预算 / 截止 / 上限未验证 */
45
+ export type VerificationVerdict = "CONFIRMED" | "REFUTED" | "UNSURE" | "SKIPPED";
46
+ export interface VerificationEvidence {
47
+ file: string;
48
+ line: number;
49
+ snippet: string;
50
+ }
51
+ /** 随 finding 上报的验证结论(PUT /ci/findings 的可选 verification 字段) */
52
+ export interface FindingVerification {
53
+ verdict: VerificationVerdict;
54
+ reason?: string;
55
+ evidence: VerificationEvidence[];
56
+ /** ISO 时间 */
57
+ verifiedAt?: string;
58
+ }
59
+ /** 平台持久化的 finding(GET 拉取,只含 OPEN / WONT_FIX / SUPPRESSED) */
41
60
  export interface KnownFinding {
42
61
  fingerprint: string;
43
62
  file: string;
@@ -46,9 +65,14 @@ export interface KnownFinding {
46
65
  severity: Severity;
47
66
  message: string;
48
67
  suggestion?: string;
49
- status: "OPEN" | "WONT_FIX";
68
+ status: "OPEN" | "WONT_FIX" | "SUPPRESSED";
50
69
  blocking: boolean;
51
70
  confidence?: Confidence;
71
+ /**
72
+ * SUPPRESSED 的验证结论。SKIPPED(没排上验证、不是判断结果)不粘性:模型再报时
73
+ * 重新进入候选;REFUTED / UNSURE 粘性。老平台不下发该字段,按粘性处理。
74
+ */
75
+ verificationVerdict?: VerificationVerdict;
52
76
  }
53
77
  /** 对账后的 finding(PUT 回写,含状态推导结果) */
54
78
  export interface ReconciledFinding {
@@ -62,6 +86,10 @@ export interface ReconciledFinding {
62
86
  status: FindingStatus;
63
87
  blocking: boolean;
64
88
  confidence?: Confidence;
89
+ /** 本次取证验证的结论(CONFIRMED 的 finding 仍为 OPEN,但记录结论与证据) */
90
+ verification?: FindingVerification;
91
+ /** bot 讨论被人工 resolve 的时间(ISO),供平台判定逐条 / 批量驳回 */
92
+ resolvedAt?: string;
65
93
  }
66
94
  export interface KnownFindingsSnapshot {
67
95
  lastReviewedSha: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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.3.0",
3
+ "version": "1.4.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",
@@ -33,6 +33,7 @@
33
33
  "README.md"
34
34
  ],
35
35
  "dependencies": {
36
+ "@anthropic-ai/sdk": "0.135.0",
36
37
  "jsonrepair": "^3.14.0",
37
38
  "zod": "^4.4.3"
38
39
  },