@heyhuynhgiabuu/pi-diff 0.2.2 → 0.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.
- package/README.md +117 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +55 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/diff.d.ts +14 -0
- package/dist/core/diff.d.ts.map +1 -0
- package/dist/core/diff.js +72 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1738 -0
- package/dist/index.js.map +1 -0
- package/dist/review/command.d.ts +2 -0
- package/dist/review/command.d.ts.map +1 -0
- package/dist/review/command.js +365 -0
- package/dist/review/command.js.map +1 -0
- package/dist/review/export.d.ts +7 -0
- package/dist/review/export.d.ts.map +1 -0
- package/dist/review/export.js +77 -0
- package/dist/review/export.js.map +1 -0
- package/dist/review/file-preview.d.ts +9 -0
- package/dist/review/file-preview.d.ts.map +1 -0
- package/dist/review/file-preview.js +228 -0
- package/dist/review/file-preview.js.map +1 -0
- package/dist/review/git.d.ts +49 -0
- package/dist/review/git.d.ts.map +1 -0
- package/dist/review/git.js +200 -0
- package/dist/review/git.js.map +1 -0
- package/dist/review/hunk-preview.d.ts +25 -0
- package/dist/review/hunk-preview.d.ts.map +1 -0
- package/dist/review/hunk-preview.js +973 -0
- package/dist/review/hunk-preview.js.map +1 -0
- package/dist/review/interactive.d.ts +27 -0
- package/dist/review/interactive.d.ts.map +1 -0
- package/dist/review/interactive.js +146 -0
- package/dist/review/interactive.js.map +1 -0
- package/dist/review/model.d.ts +33 -0
- package/dist/review/model.d.ts.map +1 -0
- package/dist/review/model.js +208 -0
- package/dist/review/model.js.map +1 -0
- package/dist/review/prompt.d.ts +4 -0
- package/dist/review/prompt.d.ts.map +1 -0
- package/dist/review/prompt.js +43 -0
- package/dist/review/prompt.js.map +1 -0
- package/dist/review/session.d.ts +69 -0
- package/dist/review/session.d.ts.map +1 -0
- package/dist/review/session.js +190 -0
- package/dist/review/session.js.map +1 -0
- package/dist/review/tui.d.ts +57 -0
- package/dist/review/tui.d.ts.map +1 -0
- package/dist/review/tui.js +486 -0
- package/dist/review/tui.js.map +1 -0
- package/media/review-diff.png +0 -0
- package/package.json +73 -5
- package/prompts/review-diff-agent.md +19 -0
- package/biome.json +0 -29
- package/src/index.ts +0 -1635
- package/tsconfig.json +0 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hunk-preview.js","sourceRoot":"","sources":["../../src/review/hunk-preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReviewDiff } from "./git.js";
|
|
2
|
+
export interface ReviewPanelOptions {
|
|
3
|
+
file?: string;
|
|
4
|
+
hunkId?: string;
|
|
5
|
+
maxFiles?: number;
|
|
6
|
+
maxHunks?: number;
|
|
7
|
+
maxLinesPerHunk?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ReviewComment {
|
|
10
|
+
id: string;
|
|
11
|
+
file: string;
|
|
12
|
+
line?: number;
|
|
13
|
+
hunkId?: string;
|
|
14
|
+
body: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function formatInteractiveReviewPanel(diff: ReviewDiff, comments?: ReviewComment[], options?: ReviewPanelOptions): string;
|
|
18
|
+
export declare function formatReviewComments(comments: ReviewComment[]): string;
|
|
19
|
+
export declare function createReviewComment(input: {
|
|
20
|
+
comments: ReviewComment[];
|
|
21
|
+
file: string;
|
|
22
|
+
body: string;
|
|
23
|
+
line?: number;
|
|
24
|
+
hunkId?: string;
|
|
25
|
+
now?: Date;
|
|
26
|
+
}): ReviewComment;
|
|
27
|
+
//# sourceMappingURL=interactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/review/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,UAAU,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,aAAa,EAAO,EAC9B,OAAO,GAAE,kBAAuB,GAC9B,MAAM,CAsDR;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CActE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,IAAI,CAAC;CACX,GAAG,aAAa,CAUhB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatInteractiveReviewPanel = formatInteractiveReviewPanel;
|
|
4
|
+
exports.formatReviewComments = formatReviewComments;
|
|
5
|
+
exports.createReviewComment = createReviewComment;
|
|
6
|
+
function formatInteractiveReviewPanel(diff, comments = [], options = {}) {
|
|
7
|
+
const maxFiles = options.maxFiles ?? 40;
|
|
8
|
+
const maxHunks = options.maxHunks ?? 20;
|
|
9
|
+
const maxLinesPerHunk = options.maxLinesPerHunk ?? 80;
|
|
10
|
+
const selectedFile = options.file ? findFile(diff, options.file) : null;
|
|
11
|
+
const selectedHunk = selectedFile && options.hunkId ? findHunk(selectedFile, options.hunkId) : null;
|
|
12
|
+
const lines = [];
|
|
13
|
+
lines.push("# Interactive Code Review");
|
|
14
|
+
lines.push("");
|
|
15
|
+
lines.push(`Mode: ${diff.mode.type === "branch" ? `${diff.mode.base}...HEAD` : "working tree"}`);
|
|
16
|
+
lines.push(`Files changed: ${diff.files.length}`);
|
|
17
|
+
lines.push(`Comments drafted: ${comments.length}`);
|
|
18
|
+
lines.push("");
|
|
19
|
+
lines.push("## Available actions");
|
|
20
|
+
lines.push("");
|
|
21
|
+
lines.push('- Focus a file: `review_git_diff({ file: "path/to/file.ts" })`');
|
|
22
|
+
lines.push('- Focus a hunk: `review_git_diff({ file: "path/to/file.ts", hunkId: "path:old:new" })`');
|
|
23
|
+
lines.push('- Draft an inline comment: `review_git_comment({ file: "path", line: 42, body: "..." })`');
|
|
24
|
+
lines.push("- List drafted comments: `review_git_comments({})`");
|
|
25
|
+
lines.push("- Clear drafted comments: `review_git_comments({ clear: true })`");
|
|
26
|
+
lines.push("");
|
|
27
|
+
lines.push("Destructive actions such as revert/discard are intentionally not implemented yet.");
|
|
28
|
+
lines.push("");
|
|
29
|
+
lines.push("## Changed files");
|
|
30
|
+
lines.push("");
|
|
31
|
+
for (const file of diff.files.slice(0, maxFiles)) {
|
|
32
|
+
const selected = selectedFile?.path === file.path ? "▶ " : " ";
|
|
33
|
+
lines.push(`${selected}${formatFileSummary(file)}`);
|
|
34
|
+
for (const hunk of file.hunks.slice(0, 3)) {
|
|
35
|
+
lines.push(` - ${hunk.id} ${hunk.header}`);
|
|
36
|
+
}
|
|
37
|
+
if (file.hunks.length > 3)
|
|
38
|
+
lines.push(` - … ${file.hunks.length - 3} more hunks`);
|
|
39
|
+
}
|
|
40
|
+
if (diff.files.length > maxFiles)
|
|
41
|
+
lines.push(` … ${diff.files.length - maxFiles} more files`);
|
|
42
|
+
lines.push("");
|
|
43
|
+
if (selectedFile) {
|
|
44
|
+
lines.push(formatFilePanel(selectedFile, comments, { ...options, maxHunks, maxLinesPerHunk }, selectedHunk));
|
|
45
|
+
}
|
|
46
|
+
else if (diff.files.length > 0) {
|
|
47
|
+
lines.push("## Next step");
|
|
48
|
+
lines.push("");
|
|
49
|
+
lines.push('Pick a file from the changed-file list and call `review_git_diff({ file: "..." })` to inspect it.');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
lines.push("No changes found.");
|
|
53
|
+
}
|
|
54
|
+
if (comments.length > 0) {
|
|
55
|
+
lines.push("");
|
|
56
|
+
lines.push(formatReviewComments(comments));
|
|
57
|
+
}
|
|
58
|
+
return `${lines.join("\n").trimEnd()}\n`;
|
|
59
|
+
}
|
|
60
|
+
function formatReviewComments(comments) {
|
|
61
|
+
const lines = [];
|
|
62
|
+
lines.push("## Drafted review comments");
|
|
63
|
+
lines.push("");
|
|
64
|
+
if (comments.length === 0) {
|
|
65
|
+
lines.push("No drafted comments.");
|
|
66
|
+
return lines.join("\n");
|
|
67
|
+
}
|
|
68
|
+
for (const comment of comments) {
|
|
69
|
+
const loc = `${comment.file}${comment.line ? `:${comment.line}` : ""}${comment.hunkId ? ` (${comment.hunkId})` : ""}`;
|
|
70
|
+
lines.push(`- ${comment.id} — ${loc}`);
|
|
71
|
+
lines.push(` ${comment.body}`);
|
|
72
|
+
}
|
|
73
|
+
return lines.join("\n");
|
|
74
|
+
}
|
|
75
|
+
function createReviewComment(input) {
|
|
76
|
+
const next = input.comments.length + 1;
|
|
77
|
+
return {
|
|
78
|
+
id: `C${String(next).padStart(3, "0")}`,
|
|
79
|
+
file: input.file,
|
|
80
|
+
line: input.line,
|
|
81
|
+
hunkId: input.hunkId,
|
|
82
|
+
body: input.body,
|
|
83
|
+
createdAt: (input.now ?? new Date()).toISOString(),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function formatFilePanel(file, comments, options, selectedHunk) {
|
|
87
|
+
const lines = [];
|
|
88
|
+
const hunks = selectedHunk ? [selectedHunk] : file.hunks.slice(0, options.maxHunks);
|
|
89
|
+
lines.push(`## File: ${file.path}`);
|
|
90
|
+
lines.push("");
|
|
91
|
+
lines.push(`Status: ${file.status}`);
|
|
92
|
+
if (file.oldPath && file.oldPath !== file.path)
|
|
93
|
+
lines.push(`Old path: ${file.oldPath}`);
|
|
94
|
+
lines.push(`Changes: +${countLines(file, "add")}/-${countLines(file, "del")}, ${file.hunks.length} hunks`);
|
|
95
|
+
const fileComments = comments.filter((comment) => comment.file === file.path);
|
|
96
|
+
if (fileComments.length > 0)
|
|
97
|
+
lines.push(`Drafted comments on this file: ${fileComments.length}`);
|
|
98
|
+
lines.push("");
|
|
99
|
+
for (const hunk of hunks) {
|
|
100
|
+
lines.push(formatHunk(file, hunk, options.maxLinesPerHunk));
|
|
101
|
+
lines.push("");
|
|
102
|
+
}
|
|
103
|
+
if (!selectedHunk && file.hunks.length > hunks.length) {
|
|
104
|
+
lines.push(`… ${file.hunks.length - hunks.length} more hunks. Focus by hunkId to inspect one hunk.`);
|
|
105
|
+
}
|
|
106
|
+
if (options.hunkId && !selectedHunk) {
|
|
107
|
+
lines.push(`Hunk not found: ${options.hunkId}`);
|
|
108
|
+
}
|
|
109
|
+
return lines.join("\n").trimEnd();
|
|
110
|
+
}
|
|
111
|
+
function formatHunk(file, hunk, maxLines) {
|
|
112
|
+
const lines = [];
|
|
113
|
+
lines.push(`### Hunk ${hunk.id}`);
|
|
114
|
+
lines.push("");
|
|
115
|
+
lines.push("```diff");
|
|
116
|
+
lines.push(hunk.header);
|
|
117
|
+
for (const line of hunk.lines.slice(0, maxLines)) {
|
|
118
|
+
const marker = line.type === "add" ? "+" : line.type === "del" ? "-" : " ";
|
|
119
|
+
const number = line.type === "del" ? line.oldNum : line.newNum;
|
|
120
|
+
const gutter = number === null ? "" : String(number).padStart(4, " ");
|
|
121
|
+
lines.push(`${marker}${gutter} ${line.content}`);
|
|
122
|
+
}
|
|
123
|
+
if (hunk.lines.length > maxLines)
|
|
124
|
+
lines.push(` … ${hunk.lines.length - maxLines} more lines omitted`);
|
|
125
|
+
lines.push("```");
|
|
126
|
+
lines.push("");
|
|
127
|
+
lines.push(`Comment here: review_git_comment({ file: "${file.path}", hunkId: "${hunk.id}", line: ${firstChangedLine(hunk) ?? hunk.newStart}, body: "..." })`);
|
|
128
|
+
return lines.join("\n");
|
|
129
|
+
}
|
|
130
|
+
function formatFileSummary(file) {
|
|
131
|
+
return `${file.path} (${file.status}, +${countLines(file, "add")}/-${countLines(file, "del")}, ${file.hunks.length} hunks)`;
|
|
132
|
+
}
|
|
133
|
+
function countLines(file, type) {
|
|
134
|
+
return file.hunks.reduce((sum, hunk) => sum + hunk.lines.filter((line) => line.type === type).length, 0);
|
|
135
|
+
}
|
|
136
|
+
function firstChangedLine(hunk) {
|
|
137
|
+
const changed = hunk.lines.find((line) => line.type === "add" || line.type === "del");
|
|
138
|
+
return changed?.newNum ?? changed?.oldNum ?? null;
|
|
139
|
+
}
|
|
140
|
+
function findFile(diff, path) {
|
|
141
|
+
return diff.files.find((file) => file.path === path || file.oldPath === path || file.newPath === path) ?? null;
|
|
142
|
+
}
|
|
143
|
+
function findHunk(file, hunkId) {
|
|
144
|
+
return (file.hunks.find((hunk) => hunk.id === hunkId || `${file.path}:${hunk.oldStart}:${hunk.newStart}` === hunkId) ?? null);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/review/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ReviewDiff, ReviewFileDiff, ReviewHunk, ReviewLine } from "./git.js";
|
|
2
|
+
import type { ReviewDiffSession, ReviewDraftComment } from "./session.js";
|
|
3
|
+
export interface ReviewViewportLine {
|
|
4
|
+
id: string;
|
|
5
|
+
filePath: string;
|
|
6
|
+
hunkId: string;
|
|
7
|
+
kind: "hunk-header" | ReviewLine["type"];
|
|
8
|
+
oldNum: number | null;
|
|
9
|
+
newNum: number | null;
|
|
10
|
+
content: string;
|
|
11
|
+
commentCount: number;
|
|
12
|
+
isSelectable: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ReviewViewportState {
|
|
15
|
+
file: ReviewFileDiff | null;
|
|
16
|
+
hunk: ReviewHunk | null;
|
|
17
|
+
lines: ReviewViewportLine[];
|
|
18
|
+
selectedLine: ReviewViewportLine | null;
|
|
19
|
+
visibleLines: ReviewViewportLine[];
|
|
20
|
+
selectedLineIndex: number;
|
|
21
|
+
windowStart: number;
|
|
22
|
+
windowEnd: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function createPreviewLineId(filePath: string, hunkId: string, line: ReviewLine, lineIndex: number): string;
|
|
25
|
+
export declare function createHeaderLineId(filePath: string, hunkId: string): string;
|
|
26
|
+
export declare function buildViewportLines(file: ReviewFileDiff | null, comments: ReviewDraftComment[], hunkId?: string): ReviewViewportLine[];
|
|
27
|
+
export declare function getSelectedPreviewLine(diff: ReviewDiff, session: ReviewDiffSession): ReviewViewportLine | null;
|
|
28
|
+
export declare function syncPreviewSelection(session: ReviewDiffSession, diff: ReviewDiff): void;
|
|
29
|
+
export declare function moveSelectedPreviewLine(session: ReviewDiffSession, diff: ReviewDiff, delta: number, windowSize?: number): void;
|
|
30
|
+
export declare function selectPreviewLineForHunk(session: ReviewDiffSession, diff: ReviewDiff, hunkId?: string): void;
|
|
31
|
+
export declare function selectPreviewLineForComment(session: ReviewDiffSession, diff: ReviewDiff): void;
|
|
32
|
+
export declare function getViewportState(diff: ReviewDiff, session: ReviewDiffSession, windowSize?: number): ReviewViewportState;
|
|
33
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/review/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjH;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,cAAc,GAAG,IAAI,EAC3B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,MAAM,CAAC,EAAE,MAAM,GACb,kBAAkB,EAAE,CAgCtB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,IAAI,CAc9G;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAqBvF;AAED,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,SAA0B,GAClC,IAAI,CA0BN;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAY5G;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAmB9F;AAED,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,SAA0B,GAClC,mBAAmB,CAqBrB"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPreviewLineId = createPreviewLineId;
|
|
4
|
+
exports.createHeaderLineId = createHeaderLineId;
|
|
5
|
+
exports.buildViewportLines = buildViewportLines;
|
|
6
|
+
exports.getSelectedPreviewLine = getSelectedPreviewLine;
|
|
7
|
+
exports.syncPreviewSelection = syncPreviewSelection;
|
|
8
|
+
exports.moveSelectedPreviewLine = moveSelectedPreviewLine;
|
|
9
|
+
exports.selectPreviewLineForHunk = selectPreviewLineForHunk;
|
|
10
|
+
exports.selectPreviewLineForComment = selectPreviewLineForComment;
|
|
11
|
+
exports.getViewportState = getViewportState;
|
|
12
|
+
const DEFAULT_VIEWPORT_WINDOW = 18;
|
|
13
|
+
function createPreviewLineId(filePath, hunkId, line, lineIndex) {
|
|
14
|
+
return `${filePath}:${hunkId}:${line.type}:${line.oldNum ?? "_"}:${line.newNum ?? "_"}:${lineIndex}`;
|
|
15
|
+
}
|
|
16
|
+
function createHeaderLineId(filePath, hunkId) {
|
|
17
|
+
return `${filePath}:${hunkId}:header`;
|
|
18
|
+
}
|
|
19
|
+
function buildViewportLines(file, comments, hunkId) {
|
|
20
|
+
if (!file)
|
|
21
|
+
return [];
|
|
22
|
+
const hunks = hunkId ? file.hunks.filter((hunk) => hunk.id === hunkId) : file.hunks;
|
|
23
|
+
const lines = [];
|
|
24
|
+
for (const hunk of hunks) {
|
|
25
|
+
lines.push({
|
|
26
|
+
id: createHeaderLineId(file.path, hunk.id),
|
|
27
|
+
filePath: file.path,
|
|
28
|
+
hunkId: hunk.id,
|
|
29
|
+
kind: "hunk-header",
|
|
30
|
+
oldNum: hunk.oldStart,
|
|
31
|
+
newNum: hunk.newStart,
|
|
32
|
+
content: hunk.header,
|
|
33
|
+
commentCount: comments.filter((comment) => comment.hunkId === hunk.id && !comment.previewLineId).length,
|
|
34
|
+
isSelectable: false,
|
|
35
|
+
});
|
|
36
|
+
hunk.lines.forEach((line, index) => {
|
|
37
|
+
const id = createPreviewLineId(file.path, hunk.id, line, index);
|
|
38
|
+
lines.push({
|
|
39
|
+
id,
|
|
40
|
+
filePath: file.path,
|
|
41
|
+
hunkId: hunk.id,
|
|
42
|
+
kind: line.type,
|
|
43
|
+
oldNum: line.oldNum,
|
|
44
|
+
newNum: line.newNum,
|
|
45
|
+
content: line.content,
|
|
46
|
+
commentCount: comments.filter((comment) => comment.previewLineId === id).length,
|
|
47
|
+
isSelectable: true,
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return lines;
|
|
52
|
+
}
|
|
53
|
+
function getSelectedPreviewLine(diff, session) {
|
|
54
|
+
const file = getSelectedFile(diff, session);
|
|
55
|
+
const hunk = getSelectedHunk(diff, session);
|
|
56
|
+
if (!file || !hunk)
|
|
57
|
+
return null;
|
|
58
|
+
const lines = buildViewportLines(file, session.comments, hunk.id);
|
|
59
|
+
if (lines.length === 0)
|
|
60
|
+
return null;
|
|
61
|
+
if (session.selectedPreviewLineId) {
|
|
62
|
+
const selected = lines.find((line) => line.id === session.selectedPreviewLineId);
|
|
63
|
+
if (selected)
|
|
64
|
+
return selected;
|
|
65
|
+
}
|
|
66
|
+
const scrollIndex = clampIndex(session.previewScrollTop ?? 0, lines.length);
|
|
67
|
+
const scrolledLine = lines[scrollIndex];
|
|
68
|
+
if (scrolledLine?.isSelectable)
|
|
69
|
+
return scrolledLine;
|
|
70
|
+
return firstSelectableLine(lines) ?? scrolledLine ?? null;
|
|
71
|
+
}
|
|
72
|
+
function syncPreviewSelection(session, diff) {
|
|
73
|
+
const file = getSelectedFile(diff, session);
|
|
74
|
+
const hunk = getSelectedHunk(diff, session);
|
|
75
|
+
if (!file || !hunk) {
|
|
76
|
+
session.selectedPreviewLineId = undefined;
|
|
77
|
+
session.previewScrollTop = 0;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const lines = buildViewportLines(file, session.comments, hunk.id);
|
|
81
|
+
if (lines.length === 0) {
|
|
82
|
+
session.selectedPreviewLineId = undefined;
|
|
83
|
+
session.previewScrollTop = 0;
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const selected = session.selectedPreviewLineId
|
|
87
|
+
? lines.find((line) => line.id === session.selectedPreviewLineId && line.isSelectable)
|
|
88
|
+
: null;
|
|
89
|
+
if (!selected) {
|
|
90
|
+
session.selectedPreviewLineId = firstSelectableLine(lines)?.id;
|
|
91
|
+
}
|
|
92
|
+
clampPreviewScroll(session, lines.length, DEFAULT_VIEWPORT_WINDOW);
|
|
93
|
+
}
|
|
94
|
+
function moveSelectedPreviewLine(session, diff, delta, windowSize = DEFAULT_VIEWPORT_WINDOW) {
|
|
95
|
+
const file = getSelectedFile(diff, session);
|
|
96
|
+
const hunk = getSelectedHunk(diff, session);
|
|
97
|
+
if (!file || !hunk) {
|
|
98
|
+
session.previewScrollTop = 0;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const lines = buildViewportLines(file, session.comments, hunk.id);
|
|
102
|
+
if (lines.length === 0) {
|
|
103
|
+
session.previewScrollTop = 0;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const selectableLines = lines.filter((l) => l.isSelectable);
|
|
107
|
+
if (selectableLines.length === 0)
|
|
108
|
+
return;
|
|
109
|
+
const currentPos = session.selectedPreviewLineId
|
|
110
|
+
? Math.max(0, selectableLines.findIndex((l) => l.id === session.selectedPreviewLineId))
|
|
111
|
+
: 0;
|
|
112
|
+
const newPos = clampIndex(currentPos + delta, selectableLines.length);
|
|
113
|
+
const newLine = selectableLines[newPos];
|
|
114
|
+
session.selectedPreviewLineId = newLine?.id;
|
|
115
|
+
const cursorIndex = lines.findIndex((l) => l.id === newLine?.id);
|
|
116
|
+
session.previewScrollTop =
|
|
117
|
+
cursorIndex >= 0 ? clampScrollTop(Math.max(0, cursorIndex - 1), lines.length, windowSize) : 0;
|
|
118
|
+
}
|
|
119
|
+
function selectPreviewLineForHunk(session, diff, hunkId) {
|
|
120
|
+
const file = getSelectedFile(diff, session);
|
|
121
|
+
if (!file) {
|
|
122
|
+
session.selectedPreviewLineId = undefined;
|
|
123
|
+
session.previewScrollTop = 0;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const lines = buildViewportLines(file, session.comments, hunkId);
|
|
127
|
+
const selected = firstSelectableLine(lines, hunkId);
|
|
128
|
+
session.selectedPreviewLineId = selected?.id;
|
|
129
|
+
session.previewScrollTop = 0;
|
|
130
|
+
if (selected?.hunkId)
|
|
131
|
+
session.selectedHunk = selected.hunkId;
|
|
132
|
+
}
|
|
133
|
+
function selectPreviewLineForComment(session, diff) {
|
|
134
|
+
const comment = getSelectedComment(session);
|
|
135
|
+
if (!comment)
|
|
136
|
+
return;
|
|
137
|
+
const file = getSelectedFile(diff, session);
|
|
138
|
+
if (!file || file.path !== comment.file) {
|
|
139
|
+
session.selectedFile = comment.file;
|
|
140
|
+
}
|
|
141
|
+
if (comment.hunkId)
|
|
142
|
+
session.selectedHunk = comment.hunkId;
|
|
143
|
+
const nextFile = getSelectedFile(diff, session);
|
|
144
|
+
const nextHunk = getSelectedHunk(diff, session);
|
|
145
|
+
if (!nextFile || !nextHunk)
|
|
146
|
+
return;
|
|
147
|
+
const lines = buildViewportLines(nextFile, session.comments, nextHunk.id);
|
|
148
|
+
if (comment.previewLineId) {
|
|
149
|
+
session.selectedPreviewLineId = comment.previewLineId;
|
|
150
|
+
const selectedIndex = lines.findIndex((line) => line.id === comment.previewLineId);
|
|
151
|
+
session.previewScrollTop = clampScrollTop(Math.max(0, selectedIndex - 1), lines.length, DEFAULT_VIEWPORT_WINDOW);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
syncPreviewSelection(session, diff);
|
|
155
|
+
}
|
|
156
|
+
function getViewportState(diff, session, windowSize = DEFAULT_VIEWPORT_WINDOW) {
|
|
157
|
+
const file = getSelectedFile(diff, session);
|
|
158
|
+
const hunk = getSelectedHunk(diff, session);
|
|
159
|
+
const lines = buildViewportLines(file, session.comments, hunk?.id);
|
|
160
|
+
const selectedLine = getSelectedPreviewLine(diff, session);
|
|
161
|
+
const selectedLineIndex = Math.max(0, lines.findIndex((line) => line.id === selectedLine?.id));
|
|
162
|
+
const windowStart = clampScrollTop(session.previewScrollTop ?? 0, lines.length, windowSize);
|
|
163
|
+
const windowEnd = Math.min(lines.length, windowStart + windowSize);
|
|
164
|
+
return {
|
|
165
|
+
file,
|
|
166
|
+
hunk,
|
|
167
|
+
lines,
|
|
168
|
+
selectedLine,
|
|
169
|
+
visibleLines: lines.slice(windowStart, windowEnd),
|
|
170
|
+
selectedLineIndex,
|
|
171
|
+
windowStart,
|
|
172
|
+
windowEnd,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function clampPreviewScroll(session, lineCount, windowSize) {
|
|
176
|
+
session.previewScrollTop = clampScrollTop(session.previewScrollTop ?? 0, lineCount, windowSize);
|
|
177
|
+
}
|
|
178
|
+
function clampScrollTop(scrollTop, lineCount, windowSize) {
|
|
179
|
+
if (lineCount <= 0)
|
|
180
|
+
return 0;
|
|
181
|
+
const maxScrollTop = Math.max(0, lineCount - Math.max(1, windowSize));
|
|
182
|
+
return Math.max(0, Math.min(scrollTop, maxScrollTop));
|
|
183
|
+
}
|
|
184
|
+
function firstSelectableLine(lines, hunkId) {
|
|
185
|
+
return lines.find((line) => line.isSelectable && (!hunkId || line.hunkId === hunkId)) ?? null;
|
|
186
|
+
}
|
|
187
|
+
function clampIndex(index, length) {
|
|
188
|
+
return Math.max(0, Math.min(index, Math.max(0, length - 1)));
|
|
189
|
+
}
|
|
190
|
+
function getSelectedFile(diff, session) {
|
|
191
|
+
if (!session.selectedFile)
|
|
192
|
+
return diff.files[0] ?? null;
|
|
193
|
+
return diff.files.find((file) => file.path === session.selectedFile || file.oldPath === session.selectedFile) ?? null;
|
|
194
|
+
}
|
|
195
|
+
function getSelectedHunk(diff, session) {
|
|
196
|
+
const file = getSelectedFile(diff, session);
|
|
197
|
+
if (!file)
|
|
198
|
+
return null;
|
|
199
|
+
if (!session.selectedHunk)
|
|
200
|
+
return file.hunks[0] ?? null;
|
|
201
|
+
return file.hunks.find((hunk) => hunk.id === session.selectedHunk) ?? file.hunks[0] ?? null;
|
|
202
|
+
}
|
|
203
|
+
function getSelectedComment(session) {
|
|
204
|
+
if (!session.selectedCommentId)
|
|
205
|
+
return null;
|
|
206
|
+
return session.comments.find((comment) => comment.id === session.selectedCommentId) ?? null;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/review/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/review/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAyC1F"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildReviewDiffPrompt = buildReviewDiffPrompt;
|
|
4
|
+
const session_js_1 = require("./session.js");
|
|
5
|
+
function buildReviewDiffPrompt(diff, session) {
|
|
6
|
+
const comments = (0, session_js_1.getSubmittableComments)(session);
|
|
7
|
+
const mode = diff.mode.type === "branch" ? `${diff.mode.base}...HEAD` : "working tree";
|
|
8
|
+
const lines = [];
|
|
9
|
+
lines.push("Apply the following code review feedback to the current repository changes.");
|
|
10
|
+
lines.push("Treat these comments as explicit requested fixes from the reviewer.");
|
|
11
|
+
lines.push("");
|
|
12
|
+
lines.push(`Review mode: ${mode}`);
|
|
13
|
+
lines.push(`Changed files: ${diff.files.length}`);
|
|
14
|
+
lines.push(`Comments to address: ${comments.length}`);
|
|
15
|
+
lines.push("");
|
|
16
|
+
lines.push("Requirements:");
|
|
17
|
+
lines.push("- Make the smallest changes needed to address each approved comment.");
|
|
18
|
+
lines.push("- Preserve unrelated work already present in the diff.");
|
|
19
|
+
lines.push("- If any comment is invalid or blocked, explain why instead of forcing a change.");
|
|
20
|
+
lines.push("- After editing, summarize which comments were addressed and which were blocked.");
|
|
21
|
+
lines.push("");
|
|
22
|
+
lines.push("Comments:");
|
|
23
|
+
lines.push("");
|
|
24
|
+
for (const [index, comment] of comments.entries()) {
|
|
25
|
+
const exactLine = comment.newNum ?? comment.oldNum ?? comment.line;
|
|
26
|
+
const anchor = comment.previewLineId ? ` [anchor ${comment.previewLineId}]` : "";
|
|
27
|
+
const location = `${comment.file}${exactLine ? `:${exactLine}` : ""}${comment.hunkId ? ` (${comment.hunkId})` : ""}${anchor}`;
|
|
28
|
+
lines.push(`${index + 1}. ${location}`);
|
|
29
|
+
lines.push(` ${comment.body}`);
|
|
30
|
+
if (comment.status === "edited" && comment.originalBody && comment.originalBody !== comment.body) {
|
|
31
|
+
lines.push(` Original draft: ${comment.originalBody}`);
|
|
32
|
+
}
|
|
33
|
+
lines.push("");
|
|
34
|
+
}
|
|
35
|
+
if (diff.files.length > 0) {
|
|
36
|
+
lines.push("Current changed files:");
|
|
37
|
+
for (const file of diff.files) {
|
|
38
|
+
lines.push(`- ${file.path} (${file.status}, ${file.hunks.length} hunks)`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return `${lines.join("\n").trimEnd()}\n`;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/review/prompt.ts"],"names":[],"mappings":"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"}
|