@wuyanbin/ai-code-review-cli-remote 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -0
- package/dist/core/agent-runtime.d.ts +88 -0
- package/dist/core/agent-runtime.d.ts.map +1 -0
- package/dist/core/agent-runtime.js +187 -0
- package/dist/core/agent-runtime.js.map +1 -0
- package/dist/core/cursor-rules.d.ts +20 -2
- package/dist/core/cursor-rules.d.ts.map +1 -1
- package/dist/core/cursor-rules.js +67 -26
- package/dist/core/cursor-rules.js.map +1 -1
- package/dist/core/default-ignore.d.ts +4 -11
- package/dist/core/default-ignore.d.ts.map +1 -1
- package/dist/core/default-ignore.js +34 -8
- package/dist/core/default-ignore.js.map +1 -1
- package/dist/core/incremental.d.ts +15 -4
- package/dist/core/incremental.d.ts.map +1 -1
- package/dist/core/incremental.js +60 -2
- package/dist/core/incremental.js.map +1 -1
- package/dist/core/model.d.ts +8 -0
- package/dist/core/model.d.ts.map +1 -1
- package/dist/core/model.js +19 -1
- package/dist/core/model.js.map +1 -1
- package/dist/core/prompt.d.ts +3 -0
- package/dist/core/prompt.d.ts.map +1 -1
- package/dist/core/prompt.js +24 -15
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/reviewer.d.ts.map +1 -1
- package/dist/core/reviewer.js +3 -1
- package/dist/core/reviewer.js.map +1 -1
- package/dist/core/summarizer.d.ts +4 -1
- package/dist/core/summarizer.d.ts.map +1 -1
- package/dist/core/summarizer.js +4 -2
- package/dist/core/summarizer.js.map +1 -1
- package/dist/core/summary-compose.d.ts +68 -0
- package/dist/core/summary-compose.d.ts.map +1 -0
- package/dist/core/summary-compose.js +205 -0
- package/dist/core/summary-compose.js.map +1 -0
- package/dist/core/verdict.d.ts +39 -2
- package/dist/core/verdict.d.ts.map +1 -1
- package/dist/core/verdict.js +128 -21
- package/dist/core/verdict.js.map +1 -1
- package/dist/core/verification.d.ts +96 -0
- package/dist/core/verification.d.ts.map +1 -0
- package/dist/core/verification.js +363 -0
- package/dist/core/verification.js.map +1 -0
- package/dist/core/verify-tools.d.ts +80 -0
- package/dist/core/verify-tools.d.ts.map +1 -0
- package/dist/core/verify-tools.js +436 -0
- package/dist/core/verify-tools.js.map +1 -0
- package/dist/gitlab/api.d.ts +6 -3
- package/dist/gitlab/api.d.ts.map +1 -1
- package/dist/gitlab/api.js +13 -6
- package/dist/gitlab/api.js.map +1 -1
- package/dist/platform/findings.d.ts +1 -1
- package/dist/platform/findings.d.ts.map +1 -1
- package/dist/platform/findings.js +12 -2
- package/dist/platform/findings.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +79 -19
- package/dist/runner.js.map +1 -1
- package/dist/shared/identity.d.ts +8 -0
- package/dist/shared/identity.d.ts.map +1 -1
- package/dist/shared/identity.js +21 -0
- package/dist/shared/identity.js.map +1 -1
- package/dist/shared/run-budget.d.ts +20 -0
- package/dist/shared/run-budget.d.ts.map +1 -0
- package/dist/shared/run-budget.js +53 -0
- package/dist/shared/run-budget.js.map +1 -0
- package/dist/types.d.ts +31 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,qBAAqB,EACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,qBAAqB,EACrB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AA+DlB;;;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"}
|
|
@@ -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
|
|
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
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/platform/findings.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AA+IA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAichD"}
|
package/dist/runner.js
CHANGED
|
@@ -4,11 +4,14 @@ 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");
|
|
10
11
|
const reviewer_1 = require("./core/reviewer");
|
|
11
12
|
const summarizer_1 = require("./core/summarizer");
|
|
13
|
+
const diff_1 = require("./core/diff");
|
|
14
|
+
const summary_compose_1 = require("./core/summary-compose");
|
|
12
15
|
const verdict_1 = require("./core/verdict");
|
|
13
16
|
const run_report_fields_1 = require("./core/run-report-fields");
|
|
14
17
|
const findings_1 = require("./platform/findings");
|
|
@@ -193,23 +196,21 @@ async function reviewMain() {
|
|
|
193
196
|
changeScope,
|
|
194
197
|
baseline: !knownSnapshot.lastReviewedSha,
|
|
195
198
|
humanResolved: gitlabContext
|
|
196
|
-
? (0, api_1.
|
|
197
|
-
: new
|
|
199
|
+
? (0, api_1.collectHumanResolutions)(gitlabContext)
|
|
200
|
+
: new Map(),
|
|
198
201
|
});
|
|
199
202
|
}
|
|
200
203
|
// keptUntouched 保活候选交模型复核裁决,新建 finding 与存活已知 finding 交模型
|
|
201
|
-
//
|
|
202
|
-
// 复核/判重失败或关闭时行为与未引入时完全一致。
|
|
204
|
+
// 判重;两者并行,不拉长关键路径。复核/判重失败或关闭时行为与未引入时完全一致。
|
|
203
205
|
const revalidationCandidates = reconciled?.revalidationCandidates ?? [];
|
|
204
206
|
const semanticPairs = reconciled ? (0, semantic_match_1.selectSemanticPairs)(reconciled) : [];
|
|
205
|
-
const [revalidationVerdicts, semanticMatches
|
|
207
|
+
const [revalidationVerdicts, semanticMatches] = await Promise.all([
|
|
206
208
|
revalidationCandidates.length > 0
|
|
207
209
|
? (0, revalidation_1.revalidateFindings)(revalidationCandidates, config)
|
|
208
210
|
: Promise.resolve(new Map()),
|
|
209
211
|
semanticPairs.length > 0
|
|
210
212
|
? (0, semantic_match_1.judgeSemanticMatches)(semanticPairs, config)
|
|
211
213
|
: Promise.resolve([]),
|
|
212
|
-
(0, summarizer_1.generateSummary)(diff, config, result.comments),
|
|
213
214
|
]);
|
|
214
215
|
// 先复核后判重:applySemanticMatches 按应用时的已知方状态放行已收口者
|
|
215
216
|
if (reconciled && revalidationVerdicts.size > 0) {
|
|
@@ -218,6 +219,17 @@ async function reviewMain() {
|
|
|
218
219
|
if (reconciled && semanticMatches.length > 0) {
|
|
219
220
|
reconciled = (0, incremental_1.applySemanticMatches)(reconciled, semanticMatches);
|
|
220
221
|
}
|
|
222
|
+
// 取证验证:复核 / 判重之后、发布之前,对本次新建的 finding 逐条取证,只有
|
|
223
|
+
// CONFIRMED 进入发布集与准入判定,其余置 SUPPRESSED 入库不发评论。无状态运行
|
|
224
|
+
// (快照拉取失败)时候选为本次模型输出全集。整 run 截止自启动起算。
|
|
225
|
+
const verificationCandidates = (0, verification_1.selectVerificationCandidates)(reconciled, result.comments);
|
|
226
|
+
const verification = await (0, verification_1.verifyFindings)(verificationCandidates, config, diff, { startedAt });
|
|
227
|
+
if (reconciled && verification.verdicts.size > 0) {
|
|
228
|
+
reconciled = (0, incremental_1.applyVerificationVerdicts)(reconciled, verification.verdicts);
|
|
229
|
+
}
|
|
230
|
+
const suppressedCount = verification.counts.refuted +
|
|
231
|
+
verification.counts.unsure +
|
|
232
|
+
verification.counts.skipped;
|
|
221
233
|
let activeComments = result.comments;
|
|
222
234
|
let blockingComments = result.comments;
|
|
223
235
|
let reconciledFindings = null;
|
|
@@ -225,7 +237,7 @@ async function reviewMain() {
|
|
|
225
237
|
activeComments = reconciled.activeComments;
|
|
226
238
|
blockingComments = reconciled.blockingComments;
|
|
227
239
|
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}`);
|
|
240
|
+
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
241
|
if (revalidationVerdicts.size > 0) {
|
|
230
242
|
console.error(`[revalidation] checked=${revalidationVerdicts.size} fixed=${reconciled.stats.revalidatedFixed} present=${reconciled.stats.revalidatedPresent} unsure=${reconciled.stats.revalidatedUnsure}`);
|
|
231
243
|
}
|
|
@@ -233,10 +245,46 @@ async function reviewMain() {
|
|
|
233
245
|
console.error(`[semantic] pairs=${semanticPairs.length} matched=${semanticMatches.length} wontFix=${reconciled.stats.semanticWontFix} duplicate=${reconciled.stats.semanticDuplicate}`);
|
|
234
246
|
}
|
|
235
247
|
}
|
|
248
|
+
else if (verification.verdicts.size > 0) {
|
|
249
|
+
// 无状态运行没有对账结果可回写:直接从发布集与准入集里过滤未证实的意见
|
|
250
|
+
activeComments = (0, verification_1.applyVerificationToComments)(result.comments, verification.verdicts);
|
|
251
|
+
blockingComments = activeComments;
|
|
252
|
+
}
|
|
253
|
+
// 摘要只读 findings 清单,几秒级:放在验证之后串行,确保摘要里的问题列表与发布集一致。
|
|
254
|
+
// 合入前检查项先按文件路径确定性识别,再喂给摘要模型避免重复。
|
|
255
|
+
const diffDigest = (0, diff_1.summarizeDiffFiles)(diff);
|
|
256
|
+
const mergeChecklist = (0, summary_compose_1.detectMergeChecklist)(diffDigest.files.map((f) => f.file), diff);
|
|
257
|
+
const summaryMarkdown = await (0, summarizer_1.generateSummary)(diff, config, activeComments, {
|
|
258
|
+
checklist: mergeChecklist,
|
|
259
|
+
});
|
|
260
|
+
const modelSummary = (0, summary_compose_1.parseModelSummary)(summaryMarkdown);
|
|
236
261
|
const verdict = (0, verdict_1.computeVerdict)(blockingComments);
|
|
237
|
-
console.error(`[runner] review complete comments=${activeComments.length}
|
|
238
|
-
|
|
239
|
-
|
|
262
|
+
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=${
|
|
263
|
+
// 准入口径:computeVerdict 只看 P0,日志按同一口径计数,不把摘要里的 P1 算成阻断
|
|
264
|
+
blockingComments.filter((c) => c.severity === "P0").length} verdict=${verdict}`);
|
|
265
|
+
// 发布分流:只有 P0(经取证验证)发行内评论并参与准入;P1 / P2 只进摘要汇总,
|
|
266
|
+
// 不发行内评论、不验证,但照常入库对账(锚点消失会自动收口,列表跨 push 稳定)。
|
|
267
|
+
// 首次升级时,旧版本发过的 P1 行内线程会被评论生命周期治理当作 stale 标记 resolved。
|
|
268
|
+
const inlineComments = activeComments.filter((c) => c.severity === "P0");
|
|
269
|
+
const digestComments = activeComments.filter((c) => c.severity !== "P0");
|
|
270
|
+
const reviewScope = {
|
|
271
|
+
mode: knownSnapshot
|
|
272
|
+
? knownSnapshot.lastReviewedSha
|
|
273
|
+
? "incremental"
|
|
274
|
+
: "baseline"
|
|
275
|
+
: "stateless",
|
|
276
|
+
fromSha: knownSnapshot?.lastReviewedSha ?? null,
|
|
277
|
+
toSha: commitSha ?? null,
|
|
278
|
+
changedFiles: diffDigest.files.length,
|
|
279
|
+
added: diffDigest.totalAdded,
|
|
280
|
+
removed: diffDigest.totalRemoved,
|
|
281
|
+
...(result.coverage ? { reviewedFiles: result.coverage.reviewedFiles } : {}),
|
|
282
|
+
};
|
|
283
|
+
const reviewDelta = reconciled && reviewScope.mode === "incremental"
|
|
284
|
+
? (0, summary_compose_1.buildReviewDelta)(reconciled.stats)
|
|
285
|
+
: null;
|
|
286
|
+
// 覆盖缺口与敏感预警作为附加段,排在主要变更之后、页脚说明之前
|
|
287
|
+
const appendix = [];
|
|
240
288
|
// 未审到的文件必须让 MR 作者看见:静默漏审比不审更糟——
|
|
241
289
|
// 使用者会以为「已评审」而实际上那些文件根本没进过模型。
|
|
242
290
|
if ((0, reviewer_1.hasCoverageGap)(result.coverage)) {
|
|
@@ -253,7 +301,7 @@ async function reviewMain() {
|
|
|
253
301
|
}
|
|
254
302
|
const coverageSection = [
|
|
255
303
|
"",
|
|
256
|
-
"
|
|
304
|
+
"### ℹ️ 本次未完整覆盖",
|
|
257
305
|
"",
|
|
258
306
|
`已评审 ${c.reviewedFiles} 个文件。以下文件未进入本次评审,其结论不代表这些文件没有问题:`,
|
|
259
307
|
"",
|
|
@@ -264,7 +312,7 @@ async function reviewMain() {
|
|
|
264
312
|
"建议把生成物 / vendor 目录加入项目配置的 `review.ignore`,或拆分该 MR 后重新触发。",
|
|
265
313
|
"",
|
|
266
314
|
].join("\n");
|
|
267
|
-
|
|
315
|
+
appendix.push(coverageSection);
|
|
268
316
|
console.error(`[runner] coverage gap reviewed=${c.reviewedFiles} oversized=${c.oversizedFiles.length} ` +
|
|
269
317
|
`budgetSkipped=${c.budgetSkippedFiles.length} failed=${c.failedShardFiles.length}`);
|
|
270
318
|
}
|
|
@@ -275,18 +323,29 @@ async function reviewMain() {
|
|
|
275
323
|
});
|
|
276
324
|
const alertSection = [
|
|
277
325
|
"",
|
|
278
|
-
"
|
|
326
|
+
"### ⚠️ 敏感代码预警",
|
|
279
327
|
"",
|
|
280
328
|
"| 风险 | 文件 | 说明 |",
|
|
281
329
|
"|------|------|------|",
|
|
282
330
|
...alertLines,
|
|
283
331
|
"",
|
|
284
332
|
].join("\n");
|
|
285
|
-
|
|
333
|
+
appendix.push(alertSection);
|
|
286
334
|
}
|
|
287
|
-
const fullMarkdown =
|
|
288
|
-
|
|
289
|
-
:
|
|
335
|
+
const fullMarkdown = (0, verdict_1.buildVerdictMarkdown)(verdict, activeComments, blockingComments, {
|
|
336
|
+
suppressedCount,
|
|
337
|
+
verificationIncomplete: verification.budgetExhausted,
|
|
338
|
+
digestComments,
|
|
339
|
+
scope: reviewScope,
|
|
340
|
+
...(reviewDelta ? { delta: reviewDelta } : {}),
|
|
341
|
+
links: {
|
|
342
|
+
projectUrl: process.env.CI_PROJECT_URL ?? null,
|
|
343
|
+
sha: commitSha ?? null,
|
|
344
|
+
},
|
|
345
|
+
summary: modelSummary,
|
|
346
|
+
checklist: mergeChecklist,
|
|
347
|
+
appendix,
|
|
348
|
+
});
|
|
290
349
|
// 所有耗时模型工作完成后、第一笔外部写入前重新读取 MR head。
|
|
291
350
|
// 旧 pipeline 只输出空 rdjson 并正常退出,绝不覆盖新提交的评论/finding。
|
|
292
351
|
const mergeRequest = await (0, api_1.fetchGitlabMergeRequest)({
|
|
@@ -313,7 +372,7 @@ async function reviewMain() {
|
|
|
313
372
|
console.error(`[runner] MR head freshness unknown pipelineCommit=${commitSha ? "present" : "missing"} currentHead=${mergeRequestHeadSha ? "present" : "missing"}; continuing`);
|
|
314
373
|
}
|
|
315
374
|
await (0, api_1.postGitlabDiscussions)({
|
|
316
|
-
comments:
|
|
375
|
+
comments: inlineComments,
|
|
317
376
|
diff,
|
|
318
377
|
token: config.gitlab?.token,
|
|
319
378
|
context: gitlabContext,
|
|
@@ -338,7 +397,8 @@ async function reviewMain() {
|
|
|
338
397
|
await (0, report_1.postRunReport)({
|
|
339
398
|
status: "SUCCESS",
|
|
340
399
|
modelUsed: config.ai.model,
|
|
341
|
-
|
|
400
|
+
// 「评论数」= 真正发到 MR 的行内评论(经验证的 P0);P1 只在摘要汇总,计入 severityCounts 不计入评论数
|
|
401
|
+
commentCount: inlineComments.length,
|
|
342
402
|
verdict,
|
|
343
403
|
duration: Date.now() - startedAt,
|
|
344
404
|
mrIid,
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;AAkIA,gCAoXC;AAtfD,8CAAwE;AACxE,0CAA8D;AAC9D,oDAO4B;AAC5B,sDAAyD;AACzD,0DAG+B;AAC/B,wCAAoD;AACpD,8CAKyB;AACzB,kDAAoD;AACpD,4CAAsE;AACtE,gEAIkC;AAClC,kDAA2E;AAC3E,8CAAkD;AAClD,sCAYsB;AAQtB,gCAAgC;AAChC,SAAS,cAAc,CAAC,KAAe,EAAE,KAAK,GAAG,CAAC;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACzC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,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,sCAAsC;AACtC,SAAS,uBAAuB;IAI9B,MAAM,KAAK,GAAG,IAAA,4BAAoB,GAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;SAC9C,GAAG,CACF,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACf,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,YAAY,GAAG,CAChE;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CAAC,KAAK,CACX,iBAAiB,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,KAAK,CAAC,WAAW,WAAW,KAAK,CAAC,KAAK,CAAC,YAAY,cAAc,KAAK,CAAC,KAAK,CAAC,eAAe,eAAe,KAAK,CAAC,KAAK,CAAC,gBAAgB,GACxL,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,EAClC,EAAE,CACH,CAAC;IACF,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;QACpC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;KACvC,CAAC;AACJ,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;IAE5E,wDAAwD;IACxD,6CAA6C;IAC7C,sBAAsB;IACtB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACtD,IAAI,IAAA,kBAAY,EAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CACX,+CAA+C,IAAI,CAAC,SAAS,CAC3D,UAAU,CACX,wDAAwD,CAC1D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,MAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAA,yBAAgB,GAAE,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,0BAAiB,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,4BAAsB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,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,+CAA+C;IAC/C,2CAA2C;IAC3C,6CAA6C;IAC7C,MAAM,WAAW,GAAG,MAAM,IAAA,6BAAuB,EAAC;QAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;KAC5B,CAAC,CAAC;IACH,IAAI,IAAA,yBAAmB,EAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CACX,sGAAsG,CACvG,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,IAAA,0BAAoB,EAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CACX,kCAAkC,WAAW,EAAE,KAAK,wCAAwC,CAC7F,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,MAAM,kBAAkB,GAAG,IAAA,kCAA4B,EACrD,SAAS,EACT,WAAW,EAAE,SAAS,EAAE,QAAQ,CACjC,CAAC;IACF,IAAI,kBAAkB,KAAK,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CACX,6DAA6D,SAAS,gBAAgB,WAAW,EAAE,SAAS,EAAE,QAAQ,0CAA0C,CACjK,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,mDAAmD;IACnD,yDAAyD;IACzD,mDAAmD;IACnD,eAAe;IACf,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,IAAA,mCAA6B,EAAC,WAAW,CAAC,CAAC;QAChE,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CACX,8FACE,YAAY,IAAI,SAClB,4CAA4C,CAC7C,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CACX,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,gDAAgD;IAChD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAkB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IACrE,yDAAyD;IACzD,+CAA+C;IAC/C,wDAAwD;IACxD,kDAAkD;IAClD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,iCAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAU,EAAC,IAAI,EAAE,MAAM,EAAE;QAC5C,GAAG,CAAC,IAAA,wCAA6B,EAAC,UAAU,CAAC;YAC3C,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC3B,CAAC,CAAC,EAAE,CAAC;QACP,MAAM;KACP,CAAC,CAAC;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,uCAAuC,MAAM,mBAAmB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CACzF,CAAC;IACJ,CAAC;IAED,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;YACL,GAAG,uBAAuB,EAAE;SAC7B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GACjB,CAAC,MAAM,IAAA,wBAAkB,EAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;IAE3E,iDAAiD;IACjD,IAAI,UAAU,GAA2B,IAAI,CAAC;IAC9C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,aAAa,CAAC,eAAe;YAC/C,CAAC,CAAC,MAAM,IAAA,wCAA0B,EAAC,aAAa,CAAC,eAAe,EAAE;gBAC9D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QACT,UAAU,GAAG,IAAA,+BAAiB,EAAC;YAC7B,KAAK,EAAE,aAAa,CAAC,QAAQ;YAC7B,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,IAAI;YACJ,YAAY,EAAE,WAAW,EAAE,YAAY,IAAI,IAAI;YAC/C,WAAW;YACX,QAAQ,EAAE,CAAC,aAAa,CAAC,eAAe;YACxC,aAAa,EAAE,aAAa;gBAC1B,CAAC,CAAC,IAAA,sCAAgC,EAAC,aAAa,CAAC;gBACjD,CAAC,CAAC,IAAI,GAAG,EAAU;SACtB,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,uCAAuC;IACvC,0BAA0B;IAC1B,MAAM,sBAAsB,GAAG,UAAU,EAAE,sBAAsB,IAAI,EAAE,CAAC;IACxE,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,IAAA,oCAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,CAAC,oBAAoB,EAAE,eAAe,EAAE,eAAe,CAAC,GAC5D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,sBAAsB,CAAC,MAAM,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAA,iCAAkB,EAAC,sBAAsB,EAAE,MAAM,CAAC;YACpD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAA+B,CAAC;QAC3D,aAAa,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,IAAA,qCAAoB,EAAC,aAAa,EAAE,MAAM,CAAC;YAC7C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAqB,CAAC;QAC1C,IAAA,4BAAe,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;KAC/C,CAAC,CAAC;IACL,+CAA+C;IAC/C,IAAI,UAAU,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChD,UAAU,GAAG,IAAA,uCAAyB,EAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,UAAU,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,UAAU,GAAG,IAAA,kCAAoB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,cAAc,GAAgB,MAAM,CAAC,QAAQ,CAAC;IAClD,IAAI,gBAAgB,GAAgB,MAAM,CAAC,QAAQ,CAAC;IACpD,IAAI,kBAAkB,GAA+B,IAAI,CAAC;IAC1D,IAAI,UAAU,EAAE,CAAC;QACf,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QAC3C,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QAC/C,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC;QACzC,OAAO,CAAC,KAAK,CACX,oCAAoC,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,UAAU,CAAC,KAAK,CAAC,IAAI,iBAAiB,UAAU,CAAC,KAAK,CAAC,YAAY,kBAAkB,UAAU,CAAC,KAAK,CAAC,aAAa,UAAU,UAAU,CAAC,KAAK,CAAC,KAAK,qBAAqB,UAAU,CAAC,KAAK,CAAC,gBAAgB,uBAAuB,UAAU,CAAC,KAAK,CAAC,kBAAkB,qBAAqB,UAAU,CAAC,KAAK,CAAC,gBAAgB,oBAAoB,UAAU,CAAC,KAAK,CAAC,eAAe,YAAY,UAAU,CAAC,KAAK,CAAC,OAAO,YAAY,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CACzf,CAAC;QACF,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CACX,0BAA0B,oBAAoB,CAAC,IAAI,UAAU,UAAU,CAAC,KAAK,CAAC,gBAAgB,YAAY,UAAU,CAAC,KAAK,CAAC,kBAAkB,WAAW,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAC7L,CAAC;QACJ,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CACX,oBAAoB,aAAa,CAAC,MAAM,YAAY,eAAe,CAAC,MAAM,YAAY,UAAU,CAAC,KAAK,CAAC,eAAe,cAAc,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE,CACzK,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,wBAAc,EAAC,gBAAgB,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CACX,qCAAqC,cAAc,CAAC,MAAM,aAAa,gBAAgB,CAAC,MAAM,YAAY,OAAO,EAAE,CACpH,CAAC;IAEF,MAAM,cAAc,GAAG,IAAA,8BAAoB,EACzC,OAAO,EACP,cAAc,EACd,gBAAgB,CACjB,CAAC;IACF,IAAI,QAAQ,GAAG,eAAe,CAAC;IAE/B,gCAAgC;IAChC,8BAA8B;IAC9B,IAAI,IAAA,yBAAc,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAS,CAAC;QAC3B,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CACP,eAAe,CAAC,CAAC,cAAc,CAAC,MAAM,MAAM,cAAc,CACxD,CAAC,CAAC,cAAc,CACjB,IAAI,CACN,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CACP,kBACE,CAAC,CAAC,kBAAkB,CAAC,MACvB,MAAM,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAC/C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CACP,cAAc,CAAC,CAAC,gBAAgB,CAAC,MAAM,MAAM,cAAc,CACzD,CAAC,CAAC,gBAAgB,CACnB,IAAI,CACN,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,GAAG;YACtB,EAAE;YACF,eAAe;YACf,EAAE;YACF,OAAO,CAAC,CAAC,aAAa,kCAAkC;YACxD,EAAE;YACF,mBAAmB;YACnB,0BAA0B;YAC1B,GAAG,IAAI;YACP,EAAE;YACF,0DAA0D;YAC1D,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;QACnE,OAAO,CAAC,KAAK,CACX,kCAAkC,CAAC,CAAC,aAAa,cAAc,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG;YACvF,iBAAiB,CAAC,CAAC,kBAAkB,CAAC,MAAM,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,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,oCAAoC;IACpC,mDAAmD;IACnD,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAuB,EAAC;QACjD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;KAC5B,CAAC,CAAC;IACH,uCAAuC;IACvC,iCAAiC;IACjC,IAAI,IAAA,0BAAoB,EAAC,YAAY,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CACX,kBAAkB,YAAY,EAAE,KAAK,mFAAmF,CACzH,CAAC;QACF,uBAAuB,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,mBAAmB,GAAG,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAA,kCAA4B,EAChD,SAAS,EACT,mBAAmB,CACpB,CAAC;IACF,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CACX,sDAAsD,SAAS,gBAAgB,mBAAmB,EAAE,CACrG,CAAC;QACF,iDAAiD;QACjD,uBAAuB,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAgB,GAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CACX,qDACE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAC1B,gBAAgB,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,cAAc,CAC1E,CAAC;IACJ,CAAC;IAED,MAAM,IAAA,2BAAqB,EAAC;QAC1B,QAAQ,EAAE,cAAc;QACxB,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;QAC3B,OAAO,EAAE,aAAa;QACtB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,oBAAW,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEzD,MAAM,IAAA,uBAAiB,EAAC;QACtB,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;QAC3B,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;QAChC,cAAc,GAAG,MAAM,IAAA,2BAAgB,EAAC;YACtC,KAAK;YACL,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,+CAA+C;IAC/C,MAAM,SAAS,GAAG,IAAA,oCAAgB,GAAE,CAAC;IACrC,MAAM,IAAA,sBAAa,EAAC;QAClB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK;QAC1B,YAAY,EAAE,cAAc,CAAC,MAAM;QACnC,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QAChC,KAAK;QACL,GAAG,uBAAuB,EAAE;QAC5B,GAAG,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,cAAc,EAAE,IAAA,yCAAqB,EAAC,cAAc,CAAC;QACrD,WAAW,EAAE,IAAA,oCAAgB,EAAC,cAAc,CAAC;QAC7C,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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"}
|
|
@@ -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"}
|
package/dist/shared/identity.js
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
40
|
-
|
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACnD,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,oDAAoD;IACpD,YAAY,EAAE,OAAO,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;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;
|
|
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
|
+
"version": "1.4.1",
|
|
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
|
},
|