@krotovm/gitlab-ai-review 1.0.15 → 1.0.17
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 +15 -3
- package/dist/cli.js +313 -3
- package/dist/cli.js.map +1 -1
- package/dist/prompt/index.js +270 -56
- package/dist/prompt/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,9 +75,21 @@ GitLab provides these automatically in Merge Request pipelines:
|
|
|
75
75
|
- `--diff-file=./changes.diff` - Review git-diff content from a file and print to stdout.
|
|
76
76
|
- `--ignore-ext=md,lock` - Exclude file extensions from review (comma-separated only).
|
|
77
77
|
- `--max-diffs=50` - Max number of diffs included in the prompt.
|
|
78
|
-
- `--max-diff-chars=16000` - Max chars per diff chunk.
|
|
79
|
-
- `--max-total-prompt-chars=220000` - Final hard cap for prompt size.
|
|
78
|
+
- `--max-diff-chars=16000` - Max chars per diff chunk (local modes / single-pass fallback).
|
|
79
|
+
- `--max-total-prompt-chars=220000` - Final hard cap for prompt size (local modes / single-pass fallback).
|
|
80
|
+
- `--max-findings=5` - Max findings in the final review (CI multi-pass only).
|
|
81
|
+
- `--max-review-concurrency=5` - Parallel per-file review API calls (CI multi-pass only).
|
|
80
82
|
- `--debug` - Print full error details (stack and API error fields).
|
|
81
83
|
- `--help` - Show help output.
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
## Architecture
|
|
86
|
+
|
|
87
|
+
In CI MR mode, the reviewer uses a three-pass pipeline optimised for large merge requests:
|
|
88
|
+
|
|
89
|
+
1. **Triage** — a fast LLM call classifies each changed file as `NEEDS_REVIEW` or `SKIP` (cosmetic-only changes, docs, config) and produces a short MR summary.
|
|
90
|
+
2. **Per-file review** — only `NEEDS_REVIEW` files are reviewed, each in a dedicated LLM call running in parallel (with tool access to fetch full files or grep the repository). Each file gets full model attention instead of competing for it across a single giant prompt.
|
|
91
|
+
3. **Consolidate** — all per-file findings are merged, deduplicated, ranked by severity, and trimmed to the top N (default 5).
|
|
92
|
+
|
|
93
|
+
If the triage pass fails (API error, unparseable response), the pipeline falls back to the original single-pass approach automatically.
|
|
94
|
+
|
|
95
|
+
Local modes (`--worktree`, `--last-commit`, `--diff-file`) use a simpler single-pass pipeline.
|
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/** @format */
|
|
3
3
|
import OpenAI from "openai";
|
|
4
4
|
import { readFile } from "node:fs/promises";
|
|
5
|
-
import { buildAnswer, buildPrompt, DEFAULT_PROMPT_LIMITS, } from "./prompt/index.js";
|
|
5
|
+
import { buildAnswer, buildConsolidatePrompt, buildFileReviewPrompt, buildPrompt, buildTriagePrompt, DEFAULT_MAX_FINDINGS, DEFAULT_PROMPT_LIMITS, DEFAULT_REVIEW_CONCURRENCY, extractCompletionText, parseTriageResponse, } from "./prompt/index.js";
|
|
6
6
|
import { fetchFileAtRef, fetchMergeRequestChanges, generateAICompletion, postMergeRequestNote, searchRepository, } from "./gitlab/services.js";
|
|
7
7
|
function printHelp() {
|
|
8
8
|
process.stdout.write([
|
|
@@ -29,6 +29,8 @@ function printHelp() {
|
|
|
29
29
|
" --max-diffs=50",
|
|
30
30
|
" --max-diff-chars=16000",
|
|
31
31
|
" --max-total-prompt-chars=220000",
|
|
32
|
+
" --max-findings=5 Max findings in final review (CI multi-pass only).",
|
|
33
|
+
" --max-review-concurrency=5 Parallel per-file review calls (CI multi-pass only).",
|
|
32
34
|
"",
|
|
33
35
|
"Env vars:",
|
|
34
36
|
" OPENAI_API_KEY (required) OpenAI API key.",
|
|
@@ -379,6 +381,7 @@ async function reviewMergeRequestWithTools(params) {
|
|
|
379
381
|
const messages = buildPrompt({
|
|
380
382
|
changes: changes.map((change) => ({ diff: change.diff })),
|
|
381
383
|
limits: promptLimits,
|
|
384
|
+
allowTools: true,
|
|
382
385
|
});
|
|
383
386
|
messages.push({
|
|
384
387
|
role: "user",
|
|
@@ -575,6 +578,309 @@ async function reviewMergeRequestWithTools(params) {
|
|
|
575
578
|
});
|
|
576
579
|
return buildAnswer(finalCompletion);
|
|
577
580
|
}
|
|
581
|
+
// ---------------------------------------------------------------------------
|
|
582
|
+
// Multi-pass pipeline: triage → per-file review → consolidate
|
|
583
|
+
// ---------------------------------------------------------------------------
|
|
584
|
+
const MAX_FILE_TOOL_ROUNDS = 5;
|
|
585
|
+
async function runFileReviewWithTools(params) {
|
|
586
|
+
const { openaiInstance, aiModel, filePath, fileDiff, summary, otherChangedFiles, refs, gitLabProjectApiUrl, projectId, headers, } = params;
|
|
587
|
+
const messages = buildFileReviewPrompt({
|
|
588
|
+
filePath,
|
|
589
|
+
fileDiff,
|
|
590
|
+
summary,
|
|
591
|
+
otherChangedFiles,
|
|
592
|
+
allowTools: true,
|
|
593
|
+
});
|
|
594
|
+
const tools = [
|
|
595
|
+
{
|
|
596
|
+
type: "function",
|
|
597
|
+
function: {
|
|
598
|
+
name: TOOL_NAME_GET_FILE,
|
|
599
|
+
description: "Fetch raw file content at a specific git ref for review context.",
|
|
600
|
+
parameters: {
|
|
601
|
+
type: "object",
|
|
602
|
+
additionalProperties: false,
|
|
603
|
+
properties: {
|
|
604
|
+
path: { type: "string", description: "Repository file path." },
|
|
605
|
+
ref: {
|
|
606
|
+
type: "string",
|
|
607
|
+
description: `Git ref or sha. Prefer "${refs.base}" (base) or "${refs.head}" (head).`,
|
|
608
|
+
},
|
|
609
|
+
},
|
|
610
|
+
required: ["path", "ref"],
|
|
611
|
+
},
|
|
612
|
+
},
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
type: "function",
|
|
616
|
+
function: {
|
|
617
|
+
name: TOOL_NAME_GREP,
|
|
618
|
+
description: "Search the repository for a keyword or pattern. Returns up to 10 matching code fragments with file paths and line numbers.",
|
|
619
|
+
parameters: {
|
|
620
|
+
type: "object",
|
|
621
|
+
additionalProperties: false,
|
|
622
|
+
properties: {
|
|
623
|
+
query: {
|
|
624
|
+
type: "string",
|
|
625
|
+
description: "Search string (keyword, function name, variable, etc.).",
|
|
626
|
+
},
|
|
627
|
+
ref: {
|
|
628
|
+
type: "string",
|
|
629
|
+
description: `Git ref to search in. Prefer "${refs.head}" (head).`,
|
|
630
|
+
},
|
|
631
|
+
},
|
|
632
|
+
required: ["query"],
|
|
633
|
+
},
|
|
634
|
+
},
|
|
635
|
+
},
|
|
636
|
+
];
|
|
637
|
+
for (let round = 0; round < MAX_FILE_TOOL_ROUNDS; round += 1) {
|
|
638
|
+
const completion = await openaiInstance.chat.completions.create({
|
|
639
|
+
model: aiModel,
|
|
640
|
+
temperature: 0.2,
|
|
641
|
+
stream: false,
|
|
642
|
+
messages,
|
|
643
|
+
tools,
|
|
644
|
+
tool_choice: "auto",
|
|
645
|
+
});
|
|
646
|
+
const msg = completion.choices[0]?.message;
|
|
647
|
+
if (msg == null)
|
|
648
|
+
return extractCompletionText(completion) ?? "No issues found.";
|
|
649
|
+
const toolCalls = msg.tool_calls ?? [];
|
|
650
|
+
if (toolCalls.length === 0)
|
|
651
|
+
return extractCompletionText(completion) ?? "No issues found.";
|
|
652
|
+
messages.push({
|
|
653
|
+
role: "assistant",
|
|
654
|
+
content: msg.content ?? "",
|
|
655
|
+
tool_calls: toolCalls,
|
|
656
|
+
});
|
|
657
|
+
for (const toolCall of toolCalls) {
|
|
658
|
+
const argsRaw = toolCall.function.arguments ?? "{}";
|
|
659
|
+
let toolContent;
|
|
660
|
+
if (toolCall.function.name === TOOL_NAME_GET_FILE) {
|
|
661
|
+
toolContent = await handleGetFileTool(argsRaw, gitLabProjectApiUrl, headers);
|
|
662
|
+
}
|
|
663
|
+
else if (toolCall.function.name === TOOL_NAME_GREP) {
|
|
664
|
+
toolContent = await handleGrepTool(argsRaw, refs.head, gitLabProjectApiUrl, headers, projectId);
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
toolContent = JSON.stringify({
|
|
668
|
+
ok: false,
|
|
669
|
+
error: `Unknown tool "${toolCall.function.name}"`,
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
messages.push({
|
|
673
|
+
role: "tool",
|
|
674
|
+
tool_call_id: toolCall.id,
|
|
675
|
+
content: toolContent,
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
messages.push({
|
|
680
|
+
role: "user",
|
|
681
|
+
content: "Tool-call limit reached. Provide your final review now without any tool calls.",
|
|
682
|
+
});
|
|
683
|
+
const final = await openaiInstance.chat.completions.create({
|
|
684
|
+
model: aiModel,
|
|
685
|
+
temperature: 0.2,
|
|
686
|
+
stream: false,
|
|
687
|
+
messages,
|
|
688
|
+
});
|
|
689
|
+
return extractCompletionText(final) ?? "No issues found.";
|
|
690
|
+
}
|
|
691
|
+
async function handleGetFileTool(argsRaw, gitLabProjectApiUrl, headers) {
|
|
692
|
+
try {
|
|
693
|
+
const parsed = JSON.parse(argsRaw);
|
|
694
|
+
const path = parsed.path?.trim();
|
|
695
|
+
const ref = parsed.ref?.trim();
|
|
696
|
+
if (!path || !ref) {
|
|
697
|
+
return JSON.stringify({
|
|
698
|
+
ok: false,
|
|
699
|
+
error: "Both path and ref are required.",
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
const fileText = await fetchFileAtRef({
|
|
703
|
+
gitLabBaseUrl: gitLabProjectApiUrl,
|
|
704
|
+
headers,
|
|
705
|
+
filePath: path,
|
|
706
|
+
ref,
|
|
707
|
+
});
|
|
708
|
+
if (fileText instanceof Error) {
|
|
709
|
+
return JSON.stringify({
|
|
710
|
+
ok: false,
|
|
711
|
+
path,
|
|
712
|
+
ref,
|
|
713
|
+
error: fileText.message,
|
|
714
|
+
});
|
|
715
|
+
}
|
|
716
|
+
return JSON.stringify({
|
|
717
|
+
ok: true,
|
|
718
|
+
path,
|
|
719
|
+
ref,
|
|
720
|
+
content: fileText.slice(0, 30000),
|
|
721
|
+
truncated: fileText.length > 30000,
|
|
722
|
+
});
|
|
723
|
+
}
|
|
724
|
+
catch (error) {
|
|
725
|
+
return JSON.stringify({
|
|
726
|
+
ok: false,
|
|
727
|
+
error: `Failed to parse tool arguments: ${String(error?.message ?? error)}`,
|
|
728
|
+
raw: argsRaw,
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
async function handleGrepTool(argsRaw, defaultRef, gitLabProjectApiUrl, headers, projectId) {
|
|
733
|
+
try {
|
|
734
|
+
const parsed = JSON.parse(argsRaw);
|
|
735
|
+
const query = parsed.query?.trim();
|
|
736
|
+
if (!query) {
|
|
737
|
+
return JSON.stringify({ ok: false, error: "query is required." });
|
|
738
|
+
}
|
|
739
|
+
const ref = parsed.ref?.trim() || defaultRef;
|
|
740
|
+
const results = await searchRepository({
|
|
741
|
+
gitLabBaseUrl: gitLabProjectApiUrl,
|
|
742
|
+
headers,
|
|
743
|
+
query,
|
|
744
|
+
ref,
|
|
745
|
+
projectId,
|
|
746
|
+
});
|
|
747
|
+
if (results instanceof Error) {
|
|
748
|
+
return JSON.stringify({
|
|
749
|
+
ok: false,
|
|
750
|
+
query,
|
|
751
|
+
ref,
|
|
752
|
+
error: results.message,
|
|
753
|
+
});
|
|
754
|
+
}
|
|
755
|
+
const trimmed = results.map((r) => ({
|
|
756
|
+
path: r.path,
|
|
757
|
+
startline: r.startline,
|
|
758
|
+
data: r.data.slice(0, 2000),
|
|
759
|
+
}));
|
|
760
|
+
return JSON.stringify({ ok: true, query, ref, matches: trimmed });
|
|
761
|
+
}
|
|
762
|
+
catch (error) {
|
|
763
|
+
return JSON.stringify({
|
|
764
|
+
ok: false,
|
|
765
|
+
error: `Failed to parse tool arguments: ${String(error?.message ?? error)}`,
|
|
766
|
+
raw: argsRaw,
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
async function mapWithConcurrency(items, concurrency, fn) {
|
|
771
|
+
const results = new Array(items.length);
|
|
772
|
+
let nextIndex = 0;
|
|
773
|
+
async function worker() {
|
|
774
|
+
while (nextIndex < items.length) {
|
|
775
|
+
const idx = nextIndex;
|
|
776
|
+
nextIndex += 1;
|
|
777
|
+
results[idx] = await fn(items[idx]);
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
const workers = Array.from({ length: Math.min(concurrency, items.length) }, () => worker());
|
|
781
|
+
await Promise.all(workers);
|
|
782
|
+
return results;
|
|
783
|
+
}
|
|
784
|
+
async function reviewMergeRequestMultiPass(params) {
|
|
785
|
+
const { openaiInstance, aiModel, promptLimits, changes, refs, gitLabProjectApiUrl, projectId, headers, maxFindings, reviewConcurrency, } = params;
|
|
786
|
+
// --- Pass 1: Triage + Summary ---
|
|
787
|
+
logStep(`Pass 1/3: triaging ${changes.length} file(s)`);
|
|
788
|
+
const triageInputs = changes.map((c) => ({
|
|
789
|
+
path: c.new_path,
|
|
790
|
+
new_file: c.new_file,
|
|
791
|
+
deleted_file: c.deleted_file,
|
|
792
|
+
renamed_file: c.renamed_file,
|
|
793
|
+
diff: c.diff,
|
|
794
|
+
}));
|
|
795
|
+
const triageMessages = buildTriagePrompt(triageInputs);
|
|
796
|
+
let triageResult = null;
|
|
797
|
+
try {
|
|
798
|
+
const triageCompletion = await openaiInstance.chat.completions.create({
|
|
799
|
+
model: aiModel,
|
|
800
|
+
temperature: 0.1,
|
|
801
|
+
stream: false,
|
|
802
|
+
messages: triageMessages,
|
|
803
|
+
response_format: { type: "json_object" },
|
|
804
|
+
});
|
|
805
|
+
const triageText = extractCompletionText(triageCompletion);
|
|
806
|
+
if (triageText != null) {
|
|
807
|
+
triageResult = parseTriageResponse(triageText);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
catch (error) {
|
|
811
|
+
logStep(`Triage pass failed: ${error?.message ?? error}. Falling back to single-pass.`);
|
|
812
|
+
}
|
|
813
|
+
if (triageResult == null) {
|
|
814
|
+
logStep("Triage parse failed. Falling back to single-pass pipeline.");
|
|
815
|
+
return await reviewMergeRequestWithTools({
|
|
816
|
+
openaiInstance,
|
|
817
|
+
aiModel,
|
|
818
|
+
promptLimits,
|
|
819
|
+
changes,
|
|
820
|
+
refs,
|
|
821
|
+
gitLabProjectApiUrl,
|
|
822
|
+
projectId,
|
|
823
|
+
headers,
|
|
824
|
+
});
|
|
825
|
+
}
|
|
826
|
+
const triageMap = new Map(triageResult.files.map((f) => [f.path, f.verdict]));
|
|
827
|
+
const reviewFiles = changes.filter((c) => triageMap.get(c.new_path) !== "SKIP");
|
|
828
|
+
const skippedCount = changes.length - reviewFiles.length;
|
|
829
|
+
logStep(`Triage: ${reviewFiles.length} file(s) to review, ${skippedCount} skipped. Summary: ${triageResult.summary.slice(0, 120)}...`);
|
|
830
|
+
if (reviewFiles.length === 0) {
|
|
831
|
+
const DISCLAIMER = "This comment was generated by an artificial intelligence duck.";
|
|
832
|
+
return `No confirmed bugs or high-value optimizations found.\n\n---\n_${DISCLAIMER}_`;
|
|
833
|
+
}
|
|
834
|
+
// --- Pass 2: Per-file review (parallel with concurrency limit) ---
|
|
835
|
+
logStep(`Pass 2/3: reviewing ${reviewFiles.length} file(s) (concurrency=${reviewConcurrency})`);
|
|
836
|
+
const allChangedPaths = changes.map((c) => c.new_path);
|
|
837
|
+
const perFileFindings = await mapWithConcurrency(reviewFiles, reviewConcurrency, async (change) => {
|
|
838
|
+
const otherFiles = allChangedPaths.filter((p) => p !== change.new_path);
|
|
839
|
+
const findings = await runFileReviewWithTools({
|
|
840
|
+
openaiInstance,
|
|
841
|
+
aiModel,
|
|
842
|
+
filePath: change.new_path,
|
|
843
|
+
fileDiff: change.diff,
|
|
844
|
+
summary: triageResult.summary,
|
|
845
|
+
otherChangedFiles: otherFiles,
|
|
846
|
+
refs,
|
|
847
|
+
gitLabProjectApiUrl,
|
|
848
|
+
projectId,
|
|
849
|
+
headers,
|
|
850
|
+
});
|
|
851
|
+
return { path: change.new_path, findings };
|
|
852
|
+
});
|
|
853
|
+
// --- Pass 3: Consolidate ---
|
|
854
|
+
logStep("Pass 3/3: consolidating findings");
|
|
855
|
+
const consolidateMessages = buildConsolidatePrompt({
|
|
856
|
+
perFileFindings,
|
|
857
|
+
summary: triageResult.summary,
|
|
858
|
+
maxFindings,
|
|
859
|
+
});
|
|
860
|
+
if (consolidateMessages == null) {
|
|
861
|
+
const DISCLAIMER = "This comment was generated by an artificial intelligence duck.";
|
|
862
|
+
return `No confirmed bugs or high-value optimizations found.\n\n---\n_${DISCLAIMER}_`;
|
|
863
|
+
}
|
|
864
|
+
try {
|
|
865
|
+
const consolidateCompletion = await openaiInstance.chat.completions.create({
|
|
866
|
+
model: aiModel,
|
|
867
|
+
temperature: 0.1,
|
|
868
|
+
stream: false,
|
|
869
|
+
messages: consolidateMessages,
|
|
870
|
+
});
|
|
871
|
+
return buildAnswer(consolidateCompletion);
|
|
872
|
+
}
|
|
873
|
+
catch (error) {
|
|
874
|
+
logStep(`Consolidation failed: ${error?.message ?? error}. Returning raw per-file findings.`);
|
|
875
|
+
const DISCLAIMER = "This comment was generated by an artificial intelligence duck.";
|
|
876
|
+
const raw = perFileFindings
|
|
877
|
+
.filter((f) => !f.findings.includes("No issues found.") &&
|
|
878
|
+
!f.findings.includes("No confirmed bugs"))
|
|
879
|
+
.map((f) => f.findings)
|
|
880
|
+
.join("\n");
|
|
881
|
+
return `${raw || "No confirmed bugs or high-value optimizations found."}\n\n---\n_${DISCLAIMER}_`;
|
|
882
|
+
}
|
|
883
|
+
}
|
|
578
884
|
async function main() {
|
|
579
885
|
const cliVersion = await getCliVersion();
|
|
580
886
|
logStep(`gitlab-ai-review v${cliVersion}`);
|
|
@@ -585,6 +891,8 @@ async function main() {
|
|
|
585
891
|
const mode = diffFilePath != null ? "worktree" : parseMode(process.argv);
|
|
586
892
|
const ignoredExtensions = parseIgnoreExtensions(process.argv);
|
|
587
893
|
const promptLimits = parsePromptLimits(process.argv);
|
|
894
|
+
const maxFindings = parseNumberFlag(process.argv, "max-findings", DEFAULT_MAX_FINDINGS, 1);
|
|
895
|
+
const reviewConcurrency = parseNumberFlag(process.argv, "max-review-concurrency", DEFAULT_REVIEW_CONCURRENCY, 1);
|
|
588
896
|
const aiModel = envOrDefault("AI_MODEL", "gpt-4o-mini");
|
|
589
897
|
if (diffFilePath != null) {
|
|
590
898
|
logStep(`Reading diff file: ${diffFilePath}`);
|
|
@@ -654,9 +962,9 @@ async function main() {
|
|
|
654
962
|
process.stdout.write("No changes found in merge request. Skipping review.\n");
|
|
655
963
|
return;
|
|
656
964
|
}
|
|
657
|
-
logStep(`Requesting AI
|
|
965
|
+
logStep(`Requesting AI review with model: ${aiModel} (multi-pass pipeline)`);
|
|
658
966
|
const openaiInstance = new OpenAI({ apiKey: openaiApiKey });
|
|
659
|
-
const answer = await
|
|
967
|
+
const answer = await reviewMergeRequestMultiPass({
|
|
660
968
|
openaiInstance,
|
|
661
969
|
aiModel,
|
|
662
970
|
promptLimits,
|
|
@@ -668,6 +976,8 @@ async function main() {
|
|
|
668
976
|
gitLabProjectApiUrl: new URL(`${ciApiV4Url}/projects/${projectId}`),
|
|
669
977
|
projectId,
|
|
670
978
|
headers,
|
|
979
|
+
maxFindings,
|
|
980
|
+
reviewConcurrency,
|
|
671
981
|
});
|
|
672
982
|
logStep("Posting AI review note to merge request");
|
|
673
983
|
const noteRes = await postMergeRequestNote({
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt/index.js
CHANGED
|
@@ -10,57 +10,55 @@ function truncateWithMarker(value, maxChars, markerLabel) {
|
|
|
10
10
|
const omitted = value.length - maxChars;
|
|
11
11
|
return `${value.slice(0, maxChars)}\n\n[... ${markerLabel} truncated, omitted ${omitted} chars ...]`;
|
|
12
12
|
}
|
|
13
|
-
const QUESTIONS = `\n\nTask:\n
|
|
14
|
-
Produce a single combined list of up to 3 bullets in the required format.\n
|
|
15
|
-
Prioritize: (1) correctness bugs, (2) security issues, (3) clear performance regressions.\n
|
|
16
|
-
If there are no confirmed findings, output exactly: "No confirmed bugs or high-value optimizations found."\n\n`;
|
|
17
13
|
const MESSAGES = [
|
|
18
14
|
{
|
|
19
15
|
role: "system",
|
|
20
16
|
content: [
|
|
21
|
-
"You are a senior developer
|
|
22
|
-
"
|
|
17
|
+
"You are a senior developer reviewing a git diff for correctness bugs, security issues, and performance regressions.",
|
|
18
|
+
"Return at most 3 findings. Prefer no finding over a weakly supported one.",
|
|
23
19
|
"",
|
|
24
|
-
"WORKFLOW
|
|
25
|
-
"1. Parse diff: identify changed files and
|
|
26
|
-
"2.
|
|
27
|
-
"3.
|
|
28
|
-
"4.
|
|
20
|
+
"WORKFLOW:",
|
|
21
|
+
"1. Parse diff: identify all changed files and note any truncation markers (`[... diff #N truncated ...]` or `[... prompt payload truncated ...]`).",
|
|
22
|
+
"2. Triage files: skim every `diff --git` header to classify each file — files that modify logic or functionality need analysis; files with only cosmetic changes (formatting, renaming for clarity, comments) can be skipped. Prioritize files that alter exported function/method signatures, shared data structures, auth, data access, or concurrency.",
|
|
23
|
+
"3. Analyze: for each triaged file, inspect `+` (added) and changed lines for wrong conditions, missing await, off-by-one, type mismatches, cross-file inconsistencies (renamed symbols with stale callers, changed exported signatures with mismatched callers, updated interfaces with mismatched implementations), security gaps, and clear perf regressions.",
|
|
24
|
+
"4. Tool-assisted verification (when tools are available): use get_file_at_ref to read full files (especially truncated ones) and grep_repository to confirm symbol usage or find callers. Do not guess when you can verify.",
|
|
25
|
+
"5. Report only issues that are tool-confirmed or visually obvious from the diff.",
|
|
29
26
|
"",
|
|
30
|
-
"
|
|
31
|
-
"-
|
|
32
|
-
"- Focus on added/changed lines
|
|
33
|
-
"-
|
|
34
|
-
"- If confidence is below medium, skip
|
|
27
|
+
"SCOPE:",
|
|
28
|
+
"- Only flag issues introduced by this diff.",
|
|
29
|
+
"- Focus on added/changed lines (`+`). Context lines (` `) and removed lines (`-`) are reference only.",
|
|
30
|
+
"- Do not comment on untouched code unless required for a proven bug path.",
|
|
31
|
+
"- If confidence is below medium, skip the finding.",
|
|
35
32
|
"",
|
|
36
|
-
"
|
|
37
|
-
"- Only report issues directly supported by
|
|
38
|
-
"- Do not invent behavior, fields, or code paths
|
|
39
|
-
"- Removed (`-`) lines are historical
|
|
40
|
-
"- If a concept is consistently renamed across files (e.g. `*Type` -> `*Percent`), do not flag missing old
|
|
41
|
-
"- Do not report
|
|
33
|
+
"ACCURACY:",
|
|
34
|
+
"- Only report issues directly supported by diff lines and/or visible imports/exports.",
|
|
35
|
+
"- Do not invent behavior, fields, or code paths not visible in evidence.",
|
|
36
|
+
"- Removed (`-`) lines are historical; do not claim current usage based solely on them.",
|
|
37
|
+
"- If a concept is consistently renamed across files (e.g. `*Type` -> `*Percent`), do not flag missing old-name checks without explicit conflicting evidence in current (`+`) lines.",
|
|
38
|
+
"- Do not report `missing dependency` when the dependency is removed from both usage and declarations in these diffs.",
|
|
39
|
+
"- Truncated diffs may hide context. State uncertainty rather than assuming correctness or incorrectness. If tools are available, fetch the full file before reporting.",
|
|
42
40
|
"",
|
|
43
|
-
"
|
|
44
|
-
"- (1) correctness (typo, wrong var, missing await, off-by-one).",
|
|
45
|
-
"- (2) security (secrets, unsafe eval, input without validation).",
|
|
46
|
-
"- (3) perf regressions (new loops, N+1 queries, big arrays).",
|
|
41
|
+
"PRIORITY: (1) correctness (typo, wrong var, missing await, off-by-one), (2) security (secrets, unsafe eval, unvalidated input), (3) perf regressions (N+1 queries, unbounded loops, missing pagination).",
|
|
47
42
|
"",
|
|
48
|
-
"
|
|
49
|
-
"- [high] = deterministic runtime
|
|
43
|
+
"SEVERITY:",
|
|
44
|
+
"- [high] = deterministic runtime or security issue visible in the diff.",
|
|
50
45
|
"- [medium] = well-supported but probabilistic issue.",
|
|
51
46
|
"",
|
|
52
|
-
"
|
|
53
|
-
"- Compare added function/method calls against
|
|
54
|
-
"- Flag
|
|
55
|
-
"-
|
|
47
|
+
"QUICK CHECKS (always perform):",
|
|
48
|
+
"- Compare added function/method calls against imports/exports for spelling mismatches.",
|
|
49
|
+
"- Flag identifier typos that would cause runtime errors (symbol differs by 1-2 chars from a nearby known symbol).",
|
|
50
|
+
"- Pay special attention to alterations in signatures of exported functions, shared types/interfaces, and global data structures — these have the highest cross-file breakage potential.",
|
|
51
|
+
"- On multi-file diffs: verify cross-file consistency — if a signature, interface, type, or enum changes in one file, check that callers/implementers in other changed files still match.",
|
|
56
52
|
"",
|
|
57
|
-
"
|
|
58
|
-
"-
|
|
59
|
-
"-
|
|
60
|
-
"-
|
|
61
|
-
"-
|
|
62
|
-
|
|
63
|
-
"-
|
|
53
|
+
"OUTPUT FORMAT:",
|
|
54
|
+
"- Each finding must use this 4-line markdown block:",
|
|
55
|
+
"- `- [high|medium] <title>`",
|
|
56
|
+
"- ` File: <path>`",
|
|
57
|
+
"- ` Line: ~<N>`",
|
|
58
|
+
"- ` Why: <one concise sentence with key evidence>`",
|
|
59
|
+
"- No headings, no praise, no code blocks. Do not summarize or explain what changed — only report confirmed issues.",
|
|
60
|
+
'- If no confirmed issues: exactly "No confirmed bugs or high-value optimizations found."',
|
|
61
|
+
"- GitLab-flavoured markdown.",
|
|
64
62
|
].join("\n"),
|
|
65
63
|
},
|
|
66
64
|
];
|
|
@@ -70,26 +68,242 @@ export const buildPrompt = ({ changes, limits, allowTools = false, }) => {
|
|
|
70
68
|
...DEFAULT_PROMPT_LIMITS,
|
|
71
69
|
...(limits ?? {}),
|
|
72
70
|
};
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
const totalFiles = changes.length;
|
|
72
|
+
const capped = changes.slice(0, effectiveLimits.maxDiffs);
|
|
73
|
+
const omittedFiles = totalFiles - capped.length;
|
|
74
|
+
let truncatedCount = 0;
|
|
75
|
+
const diffsTrimmed = capped.map((change, index) => {
|
|
76
|
+
if (change.diff.length > effectiveLimits.maxDiffChars)
|
|
77
|
+
truncatedCount += 1;
|
|
78
|
+
return truncateWithMarker(change.diff, effectiveLimits.maxDiffChars, `diff #${index + 1}`);
|
|
79
|
+
});
|
|
76
80
|
const changesText = diffsTrimmed.join("\n\n");
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
const statsFragments = [`${capped.length} file diff(s) included.`];
|
|
82
|
+
if (truncatedCount > 0)
|
|
83
|
+
statsFragments.push(`${truncatedCount} diff(s) truncated due to size limits.`);
|
|
84
|
+
if (omittedFiles > 0)
|
|
85
|
+
statsFragments.push(`${omittedFiles} additional file(s) omitted (max-diffs limit).`);
|
|
86
|
+
const stats = statsFragments.join(" ");
|
|
87
|
+
const toolNote = allowTools
|
|
88
|
+
? "Tools (get_file_at_ref, grep_repository) are available — use them to verify suspicions and inspect truncated or omitted files."
|
|
89
|
+
: "Tools are unavailable in this run; rely only on visible diff evidence.";
|
|
90
|
+
const userContent = [
|
|
91
|
+
`Review the following code changes (git diff format). ${stats}`,
|
|
92
|
+
toolNote,
|
|
93
|
+
"",
|
|
94
|
+
"Changes:",
|
|
95
|
+
changesText || "(no changes provided)",
|
|
96
|
+
"",
|
|
97
|
+
"Produce your review now. Follow the system instructions strictly.",
|
|
98
|
+
].join("\n");
|
|
99
|
+
const boundedContent = truncateWithMarker(userContent, effectiveLimits.maxTotalPromptChars, "prompt payload");
|
|
91
100
|
return [...MESSAGES, { role: "user", content: boundedContent }];
|
|
92
101
|
};
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// Multi-pass pipeline prompts
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
export const DEFAULT_MAX_FINDINGS = 5;
|
|
106
|
+
export const DEFAULT_REVIEW_CONCURRENCY = 5;
|
|
107
|
+
export const DIFF_SNIPPET_CHARS = 300;
|
|
108
|
+
const TRIAGE_SYSTEM = {
|
|
109
|
+
role: "system",
|
|
110
|
+
content: [
|
|
111
|
+
"You are a senior developer triaging files in a merge request.",
|
|
112
|
+
"For each file, decide whether it NEEDS_REVIEW (modifies logic, functionality, security, or performance) or can be SKIPPED (cosmetic-only: formatting, comments, renaming for clarity, docs, auto-generated files).",
|
|
113
|
+
"",
|
|
114
|
+
"Also produce a concise summary (2-4 sentences) of the entire merge request: what it does and which areas it touches.",
|
|
115
|
+
"",
|
|
116
|
+
"Respond with a JSON object (no markdown fences) in this exact schema:",
|
|
117
|
+
'{ "summary": "<MR summary>", "files": [{ "path": "<file path>", "verdict": "NEEDS_REVIEW" | "SKIP" }] }',
|
|
118
|
+
"",
|
|
119
|
+
"Rules:",
|
|
120
|
+
"- When in doubt, verdict is NEEDS_REVIEW.",
|
|
121
|
+
"- Deleted files are SKIP unless the deletion could break dependents.",
|
|
122
|
+
"- New files containing logic are NEEDS_REVIEW.",
|
|
123
|
+
"- Test-only files are SKIP unless they cover security-critical or complex logic.",
|
|
124
|
+
"- Config/CI/docs files are SKIP unless they modify build targets, env vars, or secrets.",
|
|
125
|
+
].join("\n"),
|
|
126
|
+
};
|
|
127
|
+
export function buildTriagePrompt(changes) {
|
|
128
|
+
const fileEntries = changes.map((c) => {
|
|
129
|
+
const flags = [];
|
|
130
|
+
if (c.new_file)
|
|
131
|
+
flags.push("new");
|
|
132
|
+
if (c.deleted_file)
|
|
133
|
+
flags.push("deleted");
|
|
134
|
+
if (c.renamed_file)
|
|
135
|
+
flags.push("renamed");
|
|
136
|
+
const flagStr = flags.length > 0 ? ` [${flags.join(", ")}]` : "";
|
|
137
|
+
const snippet = c.diff.slice(0, DIFF_SNIPPET_CHARS);
|
|
138
|
+
const truncNote = c.diff.length > DIFF_SNIPPET_CHARS ? "..." : "";
|
|
139
|
+
return `### ${c.path}${flagStr}\n\`\`\`\n${snippet}${truncNote}\n\`\`\``;
|
|
140
|
+
});
|
|
141
|
+
return [
|
|
142
|
+
TRIAGE_SYSTEM,
|
|
143
|
+
{
|
|
144
|
+
role: "user",
|
|
145
|
+
content: `Triage these ${changes.length} file(s):\n\n${fileEntries.join("\n\n")}`,
|
|
146
|
+
},
|
|
147
|
+
];
|
|
148
|
+
}
|
|
149
|
+
export function parseTriageResponse(text) {
|
|
150
|
+
try {
|
|
151
|
+
const cleaned = text
|
|
152
|
+
.replace(/```json?\s*/g, "")
|
|
153
|
+
.replace(/```\s*/g, "")
|
|
154
|
+
.trim();
|
|
155
|
+
const parsed = JSON.parse(cleaned);
|
|
156
|
+
if (typeof parsed.summary === "string" && Array.isArray(parsed.files)) {
|
|
157
|
+
return {
|
|
158
|
+
summary: parsed.summary,
|
|
159
|
+
files: parsed.files
|
|
160
|
+
.filter((f) => typeof f.path === "string" &&
|
|
161
|
+
(f.verdict === "NEEDS_REVIEW" || f.verdict === "SKIP"))
|
|
162
|
+
.map((f) => ({
|
|
163
|
+
path: f.path,
|
|
164
|
+
verdict: f.verdict,
|
|
165
|
+
})),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// JSON parse failure — caller will fall back to single-pass.
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
const FILE_REVIEW_SYSTEM = {
|
|
175
|
+
role: "system",
|
|
176
|
+
content: [
|
|
177
|
+
"You are a senior developer reviewing a single file's git diff for correctness bugs, security issues, and performance regressions.",
|
|
178
|
+
"Return at most 2 findings for this file. Prefer no finding over a weakly supported one.",
|
|
179
|
+
"",
|
|
180
|
+
"SCOPE:",
|
|
181
|
+
"- Only flag issues introduced by this diff.",
|
|
182
|
+
"- Focus on added/changed lines (`+`). Context lines (` `) and removed lines (`-`) are reference only.",
|
|
183
|
+
"- Do not comment on untouched code unless required for a proven bug path.",
|
|
184
|
+
"- If confidence is below medium, skip the finding.",
|
|
185
|
+
"",
|
|
186
|
+
"ACCURACY:",
|
|
187
|
+
"- Only report issues directly supported by diff lines and/or visible imports/exports.",
|
|
188
|
+
"- Do not invent behavior, fields, or code paths not visible in evidence.",
|
|
189
|
+
"- Removed (`-`) lines are historical; do not claim current usage based solely on them.",
|
|
190
|
+
"- If a concept is consistently renamed (e.g. `*Type` -> `*Percent`), do not flag missing old-name checks without conflicting evidence in current (`+`) lines.",
|
|
191
|
+
"- Do not report `missing dependency` when the dependency is removed from both usage and declarations.",
|
|
192
|
+
"",
|
|
193
|
+
"PRIORITY: (1) correctness (typo, wrong var, missing await, off-by-one), (2) security (secrets, unsafe eval, unvalidated input), (3) perf regressions (N+1 queries, unbounded loops, missing pagination).",
|
|
194
|
+
"",
|
|
195
|
+
"SEVERITY:",
|
|
196
|
+
"- [high] = deterministic runtime or security issue visible in the diff.",
|
|
197
|
+
"- [medium] = well-supported but probabilistic issue.",
|
|
198
|
+
"",
|
|
199
|
+
"QUICK CHECKS:",
|
|
200
|
+
"- Compare added function/method calls against imports/exports for spelling mismatches.",
|
|
201
|
+
"- Flag identifier typos that would cause runtime errors.",
|
|
202
|
+
"- Check changes to exported function signatures, shared types, and global data structures for cross-file breakage.",
|
|
203
|
+
"",
|
|
204
|
+
"OUTPUT FORMAT:",
|
|
205
|
+
"- Each finding must use this 4-line markdown block:",
|
|
206
|
+
"- `- [high|medium] <title>`",
|
|
207
|
+
"- ` File: <path>`",
|
|
208
|
+
"- ` Line: ~<N>`",
|
|
209
|
+
"- ` Why: <one concise sentence with key evidence>`",
|
|
210
|
+
"- No headings, no praise, no code blocks. Do not summarize what changed.",
|
|
211
|
+
'- If no confirmed issues: exactly "No issues found."',
|
|
212
|
+
"- GitLab-flavoured markdown.",
|
|
213
|
+
].join("\n"),
|
|
214
|
+
};
|
|
215
|
+
export function buildFileReviewPrompt(params) {
|
|
216
|
+
const { filePath, fileDiff, summary, otherChangedFiles, allowTools = false, } = params;
|
|
217
|
+
const toolNote = allowTools
|
|
218
|
+
? "Tools (get_file_at_ref, grep_repository) are available to verify suspicions or read the full file."
|
|
219
|
+
: "Tools are unavailable; rely only on visible diff evidence.";
|
|
220
|
+
const otherFilesNote = otherChangedFiles.length > 0
|
|
221
|
+
? `\nOther files changed in this MR: ${otherChangedFiles.join(", ")}`
|
|
222
|
+
: "";
|
|
223
|
+
return [
|
|
224
|
+
FILE_REVIEW_SYSTEM,
|
|
225
|
+
{
|
|
226
|
+
role: "user",
|
|
227
|
+
content: [
|
|
228
|
+
`MR Summary: ${summary}`,
|
|
229
|
+
otherFilesNote,
|
|
230
|
+
"",
|
|
231
|
+
toolNote,
|
|
232
|
+
"",
|
|
233
|
+
`File: ${filePath}`,
|
|
234
|
+
"Diff:",
|
|
235
|
+
fileDiff,
|
|
236
|
+
"",
|
|
237
|
+
"Review this file now.",
|
|
238
|
+
].join("\n"),
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
}
|
|
242
|
+
export function buildConsolidatePrompt(params) {
|
|
243
|
+
const { perFileFindings, summary, maxFindings } = params;
|
|
244
|
+
const meaningful = perFileFindings.filter((f) => !f.findings.includes("No issues found.") &&
|
|
245
|
+
!f.findings.includes("No confirmed bugs"));
|
|
246
|
+
if (meaningful.length === 0)
|
|
247
|
+
return null;
|
|
248
|
+
const findingsText = meaningful
|
|
249
|
+
.map((f) => `### ${f.path}\n${f.findings}`)
|
|
250
|
+
.join("\n\n");
|
|
251
|
+
return [
|
|
252
|
+
{
|
|
253
|
+
role: "system",
|
|
254
|
+
content: [
|
|
255
|
+
"You consolidate per-file code review findings into a final ranked list.",
|
|
256
|
+
`Select the top ${maxFindings} most important findings. Deduplicate overlapping issues.`,
|
|
257
|
+
"Preserve this exact per-finding markdown block:",
|
|
258
|
+
"`- [high|medium] <title>`",
|
|
259
|
+
"` File: <path>`",
|
|
260
|
+
"` Line: ~<N>`",
|
|
261
|
+
"` Why: <one concise sentence with key evidence>`",
|
|
262
|
+
"Rank by: (1) [high] before [medium], (2) correctness > security > perf.",
|
|
263
|
+
"Do not add new findings. Do not add headings, summaries, or commentary.",
|
|
264
|
+
`If fewer than ${maxFindings} findings exist, return all of them.`,
|
|
265
|
+
'If all findings are low quality after dedup, return exactly: "No confirmed bugs or high-value optimizations found."',
|
|
266
|
+
"GitLab-flavoured markdown.",
|
|
267
|
+
].join("\n"),
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
role: "user",
|
|
271
|
+
content: [
|
|
272
|
+
`MR Summary: ${summary}`,
|
|
273
|
+
"",
|
|
274
|
+
"Per-file findings:",
|
|
275
|
+
findingsText,
|
|
276
|
+
"",
|
|
277
|
+
`Return the top ${maxFindings} findings in the required bullet format.`,
|
|
278
|
+
].join("\n"),
|
|
279
|
+
},
|
|
280
|
+
];
|
|
281
|
+
}
|
|
282
|
+
export function extractCompletionText(completion) {
|
|
283
|
+
if (completion instanceof Error || completion == null)
|
|
284
|
+
return null;
|
|
285
|
+
if (completion.choices.length === 0)
|
|
286
|
+
return null;
|
|
287
|
+
const firstChoice = completion.choices[0];
|
|
288
|
+
const message = firstChoice?.message;
|
|
289
|
+
const raw = message?.content;
|
|
290
|
+
if (typeof raw === "string")
|
|
291
|
+
return raw.trim() || null;
|
|
292
|
+
if (Array.isArray(raw)) {
|
|
293
|
+
const joined = raw
|
|
294
|
+
.map((part) => {
|
|
295
|
+
if (typeof part === "string")
|
|
296
|
+
return part;
|
|
297
|
+
if (part != null && typeof part.text === "string")
|
|
298
|
+
return part.text;
|
|
299
|
+
return "";
|
|
300
|
+
})
|
|
301
|
+
.filter(Boolean)
|
|
302
|
+
.join("\n");
|
|
303
|
+
return joined.trim() || null;
|
|
304
|
+
}
|
|
305
|
+
return null;
|
|
306
|
+
}
|
|
93
307
|
const ERROR_ANSWER = "I'm sorry, I'm not feeling well today. Please ask a human to review this code change.";
|
|
94
308
|
const DISCLAIMER = "This comment was generated by an artificial intelligence duck.";
|
|
95
309
|
function sanitizeGitLabMarkdown(input) {
|
package/dist/prompt/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"AAAA,cAAc;AAad,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,KAAK;IACnB,mBAAmB,EAAE,MAAM;CAC5B,CAAC;AAEF,SAAS,kBAAkB,CACzB,KAAa,EACb,QAAgB,EAChB,WAAmB;IAEnB,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IACxC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,WAAW,uBAAuB,OAAO,aAAa,CAAC;AACvG,CAAC;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED