@heyhuynhgiabuu/pi-diff 0.6.4 → 0.6.6
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 +37 -181
- package/dist/edit-guard.d.ts +2 -0
- package/dist/edit-guard.d.ts.map +1 -0
- package/dist/edit-guard.js +34 -0
- package/dist/edit-guard.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -160
- package/dist/index.js.map +1 -1
- package/package.json +7 -49
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -53
- package/dist/cli.js.map +0 -1
- package/dist/core/resolve-lines.d.ts +0 -45
- package/dist/core/resolve-lines.d.ts.map +0 -1
- package/dist/core/resolve-lines.js +0 -204
- package/dist/core/resolve-lines.js.map +0 -1
- package/dist/review/command.d.ts +0 -3
- package/dist/review/command.d.ts.map +0 -1
- package/dist/review/command.js +0 -492
- package/dist/review/command.js.map +0 -1
- package/dist/review/export.d.ts +0 -7
- package/dist/review/export.d.ts.map +0 -1
- package/dist/review/export.js +0 -74
- package/dist/review/export.js.map +0 -1
- package/dist/review/file-preview.d.ts +0 -9
- package/dist/review/file-preview.d.ts.map +0 -1
- package/dist/review/file-preview.js +0 -225
- package/dist/review/file-preview.js.map +0 -1
- package/dist/review/hunk-bridge.d.ts +0 -54
- package/dist/review/hunk-bridge.d.ts.map +0 -1
- package/dist/review/hunk-bridge.js +0 -105
- package/dist/review/hunk-bridge.js.map +0 -1
- package/dist/review/interactive.d.ts +0 -27
- package/dist/review/interactive.d.ts.map +0 -1
- package/dist/review/interactive.js +0 -137
- package/dist/review/interactive.js.map +0 -1
- package/dist/review/model.d.ts +0 -33
- package/dist/review/model.d.ts.map +0 -1
- package/dist/review/model.js +0 -197
- package/dist/review/model.js.map +0 -1
- package/dist/review/prompt.d.ts +0 -4
- package/dist/review/prompt.d.ts.map +0 -1
- package/dist/review/prompt.js +0 -40
- package/dist/review/prompt.js.map +0 -1
- package/dist/review/session.d.ts +0 -69
- package/dist/review/session.d.ts.map +0 -1
- package/dist/review/session.js +0 -168
- package/dist/review/session.js.map +0 -1
- package/dist/review/tui.d.ts +0 -57
- package/dist/review/tui.d.ts.map +0 -1
- package/dist/review/tui.js +0 -482
- package/dist/review/tui.js.map +0 -1
- package/prompts/review-diff-agent.md +0 -19
package/dist/review/model.js
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
const DEFAULT_VIEWPORT_WINDOW = 18;
|
|
2
|
-
export function createPreviewLineId(filePath, hunkId, line, lineIndex) {
|
|
3
|
-
return `${filePath}:${hunkId}:${line.type}:${line.oldNum ?? "_"}:${line.newNum ?? "_"}:${lineIndex}`;
|
|
4
|
-
}
|
|
5
|
-
export function createHeaderLineId(filePath, hunkId) {
|
|
6
|
-
return `${filePath}:${hunkId}:header`;
|
|
7
|
-
}
|
|
8
|
-
export function buildViewportLines(file, comments, hunkId) {
|
|
9
|
-
if (!file)
|
|
10
|
-
return [];
|
|
11
|
-
const hunks = hunkId ? file.hunks.filter((hunk) => hunk.id === hunkId) : file.hunks;
|
|
12
|
-
const lines = [];
|
|
13
|
-
for (const hunk of hunks) {
|
|
14
|
-
lines.push({
|
|
15
|
-
id: createHeaderLineId(file.path, hunk.id),
|
|
16
|
-
filePath: file.path,
|
|
17
|
-
hunkId: hunk.id,
|
|
18
|
-
kind: "hunk-header",
|
|
19
|
-
oldNum: hunk.oldStart,
|
|
20
|
-
newNum: hunk.newStart,
|
|
21
|
-
content: hunk.header,
|
|
22
|
-
commentCount: comments.filter((comment) => comment.hunkId === hunk.id && !comment.previewLineId).length,
|
|
23
|
-
isSelectable: false,
|
|
24
|
-
});
|
|
25
|
-
hunk.lines.forEach((line, index) => {
|
|
26
|
-
const id = createPreviewLineId(file.path, hunk.id, line, index);
|
|
27
|
-
lines.push({
|
|
28
|
-
id,
|
|
29
|
-
filePath: file.path,
|
|
30
|
-
hunkId: hunk.id,
|
|
31
|
-
kind: line.type,
|
|
32
|
-
oldNum: line.oldNum,
|
|
33
|
-
newNum: line.newNum,
|
|
34
|
-
content: line.content,
|
|
35
|
-
commentCount: comments.filter((comment) => comment.previewLineId === id).length,
|
|
36
|
-
isSelectable: true,
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return lines;
|
|
41
|
-
}
|
|
42
|
-
export function getSelectedPreviewLine(diff, session) {
|
|
43
|
-
const file = getSelectedFile(diff, session);
|
|
44
|
-
const hunk = getSelectedHunk(diff, session);
|
|
45
|
-
if (!file || !hunk)
|
|
46
|
-
return null;
|
|
47
|
-
const lines = buildViewportLines(file, session.comments, hunk.id);
|
|
48
|
-
if (lines.length === 0)
|
|
49
|
-
return null;
|
|
50
|
-
if (session.selectedPreviewLineId) {
|
|
51
|
-
const selected = lines.find((line) => line.id === session.selectedPreviewLineId);
|
|
52
|
-
if (selected)
|
|
53
|
-
return selected;
|
|
54
|
-
}
|
|
55
|
-
const scrollIndex = clampIndex(session.previewScrollTop ?? 0, lines.length);
|
|
56
|
-
const scrolledLine = lines[scrollIndex];
|
|
57
|
-
if (scrolledLine?.isSelectable)
|
|
58
|
-
return scrolledLine;
|
|
59
|
-
return firstSelectableLine(lines) ?? scrolledLine ?? null;
|
|
60
|
-
}
|
|
61
|
-
export function syncPreviewSelection(session, diff) {
|
|
62
|
-
const file = getSelectedFile(diff, session);
|
|
63
|
-
const hunk = getSelectedHunk(diff, session);
|
|
64
|
-
if (!file || !hunk) {
|
|
65
|
-
session.selectedPreviewLineId = undefined;
|
|
66
|
-
session.previewScrollTop = 0;
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const lines = buildViewportLines(file, session.comments, hunk.id);
|
|
70
|
-
if (lines.length === 0) {
|
|
71
|
-
session.selectedPreviewLineId = undefined;
|
|
72
|
-
session.previewScrollTop = 0;
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const selected = session.selectedPreviewLineId
|
|
76
|
-
? lines.find((line) => line.id === session.selectedPreviewLineId && line.isSelectable)
|
|
77
|
-
: null;
|
|
78
|
-
if (!selected) {
|
|
79
|
-
session.selectedPreviewLineId = firstSelectableLine(lines)?.id;
|
|
80
|
-
}
|
|
81
|
-
clampPreviewScroll(session, lines.length, DEFAULT_VIEWPORT_WINDOW);
|
|
82
|
-
}
|
|
83
|
-
export function moveSelectedPreviewLine(session, diff, delta, windowSize = DEFAULT_VIEWPORT_WINDOW) {
|
|
84
|
-
const file = getSelectedFile(diff, session);
|
|
85
|
-
const hunk = getSelectedHunk(diff, session);
|
|
86
|
-
if (!file || !hunk) {
|
|
87
|
-
session.previewScrollTop = 0;
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const lines = buildViewportLines(file, session.comments, hunk.id);
|
|
91
|
-
if (lines.length === 0) {
|
|
92
|
-
session.previewScrollTop = 0;
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const selectableLines = lines.filter((l) => l.isSelectable);
|
|
96
|
-
if (selectableLines.length === 0)
|
|
97
|
-
return;
|
|
98
|
-
const currentPos = session.selectedPreviewLineId
|
|
99
|
-
? Math.max(0, selectableLines.findIndex((l) => l.id === session.selectedPreviewLineId))
|
|
100
|
-
: 0;
|
|
101
|
-
const newPos = clampIndex(currentPos + delta, selectableLines.length);
|
|
102
|
-
const newLine = selectableLines[newPos];
|
|
103
|
-
session.selectedPreviewLineId = newLine?.id;
|
|
104
|
-
const cursorIndex = lines.findIndex((l) => l.id === newLine?.id);
|
|
105
|
-
session.previewScrollTop =
|
|
106
|
-
cursorIndex >= 0 ? clampScrollTop(Math.max(0, cursorIndex - 1), lines.length, windowSize) : 0;
|
|
107
|
-
}
|
|
108
|
-
export function selectPreviewLineForHunk(session, diff, hunkId) {
|
|
109
|
-
const file = getSelectedFile(diff, session);
|
|
110
|
-
if (!file) {
|
|
111
|
-
session.selectedPreviewLineId = undefined;
|
|
112
|
-
session.previewScrollTop = 0;
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
const lines = buildViewportLines(file, session.comments, hunkId);
|
|
116
|
-
const selected = firstSelectableLine(lines, hunkId);
|
|
117
|
-
session.selectedPreviewLineId = selected?.id;
|
|
118
|
-
session.previewScrollTop = 0;
|
|
119
|
-
if (selected?.hunkId)
|
|
120
|
-
session.selectedHunk = selected.hunkId;
|
|
121
|
-
}
|
|
122
|
-
export function selectPreviewLineForComment(session, diff) {
|
|
123
|
-
const comment = getSelectedComment(session);
|
|
124
|
-
if (!comment)
|
|
125
|
-
return;
|
|
126
|
-
const file = getSelectedFile(diff, session);
|
|
127
|
-
if (!file || file.path !== comment.file) {
|
|
128
|
-
session.selectedFile = comment.file;
|
|
129
|
-
}
|
|
130
|
-
if (comment.hunkId)
|
|
131
|
-
session.selectedHunk = comment.hunkId;
|
|
132
|
-
const nextFile = getSelectedFile(diff, session);
|
|
133
|
-
const nextHunk = getSelectedHunk(diff, session);
|
|
134
|
-
if (!nextFile || !nextHunk)
|
|
135
|
-
return;
|
|
136
|
-
const lines = buildViewportLines(nextFile, session.comments, nextHunk.id);
|
|
137
|
-
if (comment.previewLineId) {
|
|
138
|
-
session.selectedPreviewLineId = comment.previewLineId;
|
|
139
|
-
const selectedIndex = lines.findIndex((line) => line.id === comment.previewLineId);
|
|
140
|
-
session.previewScrollTop = clampScrollTop(Math.max(0, selectedIndex - 1), lines.length, DEFAULT_VIEWPORT_WINDOW);
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
syncPreviewSelection(session, diff);
|
|
144
|
-
}
|
|
145
|
-
export function getViewportState(diff, session, windowSize = DEFAULT_VIEWPORT_WINDOW) {
|
|
146
|
-
const file = getSelectedFile(diff, session);
|
|
147
|
-
const hunk = getSelectedHunk(diff, session);
|
|
148
|
-
const lines = buildViewportLines(file, session.comments, hunk?.id);
|
|
149
|
-
const selectedLine = getSelectedPreviewLine(diff, session);
|
|
150
|
-
const selectedLineIndex = Math.max(0, lines.findIndex((line) => line.id === selectedLine?.id));
|
|
151
|
-
const windowStart = clampScrollTop(session.previewScrollTop ?? 0, lines.length, windowSize);
|
|
152
|
-
const windowEnd = Math.min(lines.length, windowStart + windowSize);
|
|
153
|
-
return {
|
|
154
|
-
file,
|
|
155
|
-
hunk,
|
|
156
|
-
lines,
|
|
157
|
-
selectedLine,
|
|
158
|
-
visibleLines: lines.slice(windowStart, windowEnd),
|
|
159
|
-
selectedLineIndex,
|
|
160
|
-
windowStart,
|
|
161
|
-
windowEnd,
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
function clampPreviewScroll(session, lineCount, windowSize) {
|
|
165
|
-
session.previewScrollTop = clampScrollTop(session.previewScrollTop ?? 0, lineCount, windowSize);
|
|
166
|
-
}
|
|
167
|
-
function clampScrollTop(scrollTop, lineCount, windowSize) {
|
|
168
|
-
if (lineCount <= 0)
|
|
169
|
-
return 0;
|
|
170
|
-
const maxScrollTop = Math.max(0, lineCount - Math.max(1, windowSize));
|
|
171
|
-
return Math.max(0, Math.min(scrollTop, maxScrollTop));
|
|
172
|
-
}
|
|
173
|
-
function firstSelectableLine(lines, hunkId) {
|
|
174
|
-
return lines.find((line) => line.isSelectable && (!hunkId || line.hunkId === hunkId)) ?? null;
|
|
175
|
-
}
|
|
176
|
-
function clampIndex(index, length) {
|
|
177
|
-
return Math.max(0, Math.min(index, Math.max(0, length - 1)));
|
|
178
|
-
}
|
|
179
|
-
function getSelectedFile(diff, session) {
|
|
180
|
-
if (!session.selectedFile)
|
|
181
|
-
return diff.files[0] ?? null;
|
|
182
|
-
return diff.files.find((file) => file.path === session.selectedFile || file.oldPath === session.selectedFile) ?? null;
|
|
183
|
-
}
|
|
184
|
-
function getSelectedHunk(diff, session) {
|
|
185
|
-
const file = getSelectedFile(diff, session);
|
|
186
|
-
if (!file)
|
|
187
|
-
return null;
|
|
188
|
-
if (!session.selectedHunk)
|
|
189
|
-
return file.hunks[0] ?? null;
|
|
190
|
-
return file.hunks.find((hunk) => hunk.id === session.selectedHunk) ?? file.hunks[0] ?? null;
|
|
191
|
-
}
|
|
192
|
-
function getSelectedComment(session) {
|
|
193
|
-
if (!session.selectedCommentId)
|
|
194
|
-
return null;
|
|
195
|
-
return session.comments.find((comment) => comment.id === session.selectedCommentId) ?? null;
|
|
196
|
-
}
|
|
197
|
-
//# sourceMappingURL=model.js.map
|
package/dist/review/model.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/review/model.ts"],"names":[],"mappings":"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"}
|
package/dist/review/prompt.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/review/prompt.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { getSubmittableComments } from "./session.js";
|
|
2
|
-
export function buildReviewDiffPrompt(diff, session) {
|
|
3
|
-
const comments = getSubmittableComments(session);
|
|
4
|
-
const mode = diff.mode.type === "branch" ? `${diff.mode.base}...HEAD` : "working tree";
|
|
5
|
-
const lines = [];
|
|
6
|
-
lines.push("Apply the following code review feedback to the current repository changes.");
|
|
7
|
-
lines.push("Treat these comments as explicit requested fixes from the reviewer.");
|
|
8
|
-
lines.push("");
|
|
9
|
-
lines.push(`Review mode: ${mode}`);
|
|
10
|
-
lines.push(`Changed files: ${diff.files.length}`);
|
|
11
|
-
lines.push(`Comments to address: ${comments.length}`);
|
|
12
|
-
lines.push("");
|
|
13
|
-
lines.push("Requirements:");
|
|
14
|
-
lines.push("- Make the smallest changes needed to address each approved comment.");
|
|
15
|
-
lines.push("- Preserve unrelated work already present in the diff.");
|
|
16
|
-
lines.push("- If any comment is invalid or blocked, explain why instead of forcing a change.");
|
|
17
|
-
lines.push("- After editing, summarize which comments were addressed and which were blocked.");
|
|
18
|
-
lines.push("");
|
|
19
|
-
lines.push("Comments:");
|
|
20
|
-
lines.push("");
|
|
21
|
-
for (const [index, comment] of comments.entries()) {
|
|
22
|
-
const exactLine = comment.newNum ?? comment.oldNum ?? comment.line;
|
|
23
|
-
const anchor = comment.previewLineId ? ` [anchor ${comment.previewLineId}]` : "";
|
|
24
|
-
const location = `${comment.file}${exactLine ? `:${exactLine}` : ""}${comment.hunkId ? ` (${comment.hunkId})` : ""}${anchor}`;
|
|
25
|
-
lines.push(`${index + 1}. ${location}`);
|
|
26
|
-
lines.push(` ${comment.body}`);
|
|
27
|
-
if (comment.status === "edited" && comment.originalBody && comment.originalBody !== comment.body) {
|
|
28
|
-
lines.push(` Original draft: ${comment.originalBody}`);
|
|
29
|
-
}
|
|
30
|
-
lines.push("");
|
|
31
|
-
}
|
|
32
|
-
if (diff.files.length > 0) {
|
|
33
|
-
lines.push("Current changed files:");
|
|
34
|
-
for (const file of diff.files) {
|
|
35
|
-
lines.push(`- ${file.path} (${file.status}, ${file.hunks.length} hunks)`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return `${lines.join("\n").trimEnd()}\n`;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/review/prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/review/session.d.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import type { ReviewDiff, ReviewDiffMode, ReviewFileDiff, ReviewHunk } from "./git.js";
|
|
2
|
-
export declare const REVIEW_DIFF_SESSION_TYPE = "review-diff-session";
|
|
3
|
-
export type ReviewCommentStatus = "approved" | "dismissed" | "edited";
|
|
4
|
-
export interface ReviewDraftComment {
|
|
5
|
-
id: string;
|
|
6
|
-
file: string;
|
|
7
|
-
line?: number;
|
|
8
|
-
hunkId?: string;
|
|
9
|
-
previewLineId?: string;
|
|
10
|
-
oldNum?: number | null;
|
|
11
|
-
newNum?: number | null;
|
|
12
|
-
lineType?: ReviewHunk["lines"][number]["type"];
|
|
13
|
-
body: string;
|
|
14
|
-
createdAt: string;
|
|
15
|
-
status: ReviewCommentStatus;
|
|
16
|
-
originalBody?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface ReviewDiffSession {
|
|
19
|
-
mode: ReviewDiffMode;
|
|
20
|
-
selectedFile?: string;
|
|
21
|
-
selectedHunk?: string;
|
|
22
|
-
selectedPreviewLineId?: string;
|
|
23
|
-
previewScrollTop?: number;
|
|
24
|
-
selectedCommentId?: string;
|
|
25
|
-
comments: ReviewDraftComment[];
|
|
26
|
-
updatedAt: number;
|
|
27
|
-
submittedAt?: number;
|
|
28
|
-
}
|
|
29
|
-
export declare function createReviewDiffSession(mode: ReviewDiffMode): ReviewDiffSession;
|
|
30
|
-
export declare function cloneReviewDiffSession(session: ReviewDiffSession): ReviewDiffSession;
|
|
31
|
-
export declare function getLatestReviewDiffSession(ctx: {
|
|
32
|
-
sessionManager: {
|
|
33
|
-
getBranch(): Array<{
|
|
34
|
-
type: string;
|
|
35
|
-
customType?: string;
|
|
36
|
-
data?: unknown;
|
|
37
|
-
}>;
|
|
38
|
-
};
|
|
39
|
-
}): ReviewDiffSession | null;
|
|
40
|
-
export declare function persistReviewDiffSession(pi: {
|
|
41
|
-
appendEntry(customType: string, data?: unknown): void;
|
|
42
|
-
}, session: ReviewDiffSession): void;
|
|
43
|
-
export declare function syncReviewDiffSession(session: ReviewDiffSession, diff: ReviewDiff): ReviewDiffSession;
|
|
44
|
-
export declare function getSelectedFile(diff: ReviewDiff, session: ReviewDiffSession): ReviewFileDiff | null;
|
|
45
|
-
export declare function getSelectedHunk(diff: ReviewDiff, session: ReviewDiffSession): ReviewHunk | null;
|
|
46
|
-
export declare function getSelectedComment(session: ReviewDiffSession): ReviewDraftComment | null;
|
|
47
|
-
export declare function moveSelectedFile(session: ReviewDiffSession, diff: ReviewDiff, delta: number): void;
|
|
48
|
-
export declare function moveSelectedHunk(session: ReviewDiffSession, diff: ReviewDiff, delta: number): void;
|
|
49
|
-
export declare function moveSelectedComment(session: ReviewDiffSession, delta: number): void;
|
|
50
|
-
export declare function createDraftComment(input: {
|
|
51
|
-
session: ReviewDiffSession;
|
|
52
|
-
file: string;
|
|
53
|
-
body: string;
|
|
54
|
-
line?: number;
|
|
55
|
-
hunkId?: string;
|
|
56
|
-
previewLineId?: string;
|
|
57
|
-
oldNum?: number | null;
|
|
58
|
-
newNum?: number | null;
|
|
59
|
-
lineType?: ReviewHunk["lines"][number]["type"];
|
|
60
|
-
now?: Date;
|
|
61
|
-
}): ReviewDraftComment;
|
|
62
|
-
export declare function addDraftComment(session: ReviewDiffSession, comment: ReviewDraftComment): void;
|
|
63
|
-
export declare function editSelectedComment(session: ReviewDiffSession, body: string): ReviewDraftComment | null;
|
|
64
|
-
export declare function deleteSelectedComment(session: ReviewDiffSession): ReviewDraftComment | null;
|
|
65
|
-
export declare function toggleSelectedCommentStatus(session: ReviewDiffSession, status: Exclude<ReviewCommentStatus, "edited">): ReviewDraftComment | null;
|
|
66
|
-
export declare function approveAllComments(session: ReviewDiffSession): void;
|
|
67
|
-
export declare function getSubmittableComments(session: ReviewDiffSession): ReviewDraftComment[];
|
|
68
|
-
export declare function countCommentStatuses(session: ReviewDiffSession): Record<ReviewCommentStatus, number>;
|
|
69
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/review/session.ts"],"names":[],"mappings":"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"}
|
package/dist/review/session.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
export const REVIEW_DIFF_SESSION_TYPE = "review-diff-session";
|
|
2
|
-
export function createReviewDiffSession(mode) {
|
|
3
|
-
return {
|
|
4
|
-
mode,
|
|
5
|
-
comments: [],
|
|
6
|
-
previewScrollTop: 0,
|
|
7
|
-
updatedAt: Date.now(),
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export function cloneReviewDiffSession(session) {
|
|
11
|
-
return {
|
|
12
|
-
...session,
|
|
13
|
-
comments: session.comments.map((comment) => ({ ...comment })),
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export function getLatestReviewDiffSession(ctx) {
|
|
17
|
-
const entries = ctx.sessionManager.getBranch();
|
|
18
|
-
for (let i = entries.length - 1; i >= 0; i--) {
|
|
19
|
-
const entry = entries[i];
|
|
20
|
-
if (entry.type === "custom" && entry.customType === REVIEW_DIFF_SESSION_TYPE && entry.data?.mode) {
|
|
21
|
-
return entry.data;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
export function persistReviewDiffSession(pi, session) {
|
|
27
|
-
session.updatedAt = Date.now();
|
|
28
|
-
pi.appendEntry(REVIEW_DIFF_SESSION_TYPE, session);
|
|
29
|
-
}
|
|
30
|
-
export function syncReviewDiffSession(session, diff) {
|
|
31
|
-
const next = cloneReviewDiffSession(session);
|
|
32
|
-
const previousFile = next.selectedFile;
|
|
33
|
-
const previousHunk = next.selectedHunk;
|
|
34
|
-
const selectedFile = getSelectedFile(diff, next) ?? diff.files[0] ?? null;
|
|
35
|
-
next.selectedFile = selectedFile?.path;
|
|
36
|
-
const selectedHunk = selectedFile ? (getSelectedHunk(diff, next) ?? selectedFile.hunks[0] ?? null) : null;
|
|
37
|
-
next.selectedHunk = selectedHunk?.id;
|
|
38
|
-
if (next.selectedFile !== previousFile || next.selectedHunk !== previousHunk) {
|
|
39
|
-
next.previewScrollTop = 0;
|
|
40
|
-
}
|
|
41
|
-
if (next.comments.length === 0) {
|
|
42
|
-
next.selectedCommentId = undefined;
|
|
43
|
-
}
|
|
44
|
-
else if (!next.selectedCommentId || !next.comments.some((comment) => comment.id === next.selectedCommentId)) {
|
|
45
|
-
next.selectedCommentId = next.comments[0]?.id;
|
|
46
|
-
}
|
|
47
|
-
return next;
|
|
48
|
-
}
|
|
49
|
-
export function getSelectedFile(diff, session) {
|
|
50
|
-
if (!session.selectedFile)
|
|
51
|
-
return null;
|
|
52
|
-
return diff.files.find((file) => file.path === session.selectedFile || file.oldPath === session.selectedFile) ?? null;
|
|
53
|
-
}
|
|
54
|
-
export function getSelectedHunk(diff, session) {
|
|
55
|
-
const file = getSelectedFile(diff, session);
|
|
56
|
-
if (!file || !session.selectedHunk)
|
|
57
|
-
return null;
|
|
58
|
-
return file.hunks.find((hunk) => hunk.id === session.selectedHunk) ?? null;
|
|
59
|
-
}
|
|
60
|
-
export function getSelectedComment(session) {
|
|
61
|
-
if (!session.selectedCommentId)
|
|
62
|
-
return null;
|
|
63
|
-
return session.comments.find((comment) => comment.id === session.selectedCommentId) ?? null;
|
|
64
|
-
}
|
|
65
|
-
export function moveSelectedFile(session, diff, delta) {
|
|
66
|
-
if (diff.files.length === 0) {
|
|
67
|
-
session.selectedFile = undefined;
|
|
68
|
-
session.selectedHunk = undefined;
|
|
69
|
-
session.previewScrollTop = 0;
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const currentPath = getSelectedFile(diff, session)?.path;
|
|
73
|
-
const currentIndex = Math.max(0, diff.files.findIndex((file) => file.path === currentPath));
|
|
74
|
-
const nextIndex = clampIndex(currentIndex + delta, diff.files.length);
|
|
75
|
-
const file = diff.files[nextIndex];
|
|
76
|
-
session.selectedFile = file?.path;
|
|
77
|
-
session.selectedHunk = file?.hunks[0]?.id;
|
|
78
|
-
session.selectedPreviewLineId = undefined;
|
|
79
|
-
session.previewScrollTop = 0;
|
|
80
|
-
}
|
|
81
|
-
export function moveSelectedHunk(session, diff, delta) {
|
|
82
|
-
const file = getSelectedFile(diff, session);
|
|
83
|
-
if (!file || file.hunks.length === 0) {
|
|
84
|
-
session.selectedHunk = undefined;
|
|
85
|
-
session.previewScrollTop = 0;
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const currentId = getSelectedHunk(diff, session)?.id;
|
|
89
|
-
const currentIndex = Math.max(0, file.hunks.findIndex((hunk) => hunk.id === currentId));
|
|
90
|
-
const nextIndex = clampIndex(currentIndex + delta, file.hunks.length);
|
|
91
|
-
session.selectedHunk = file.hunks[nextIndex]?.id;
|
|
92
|
-
session.selectedPreviewLineId = undefined;
|
|
93
|
-
session.previewScrollTop = 0;
|
|
94
|
-
}
|
|
95
|
-
export function moveSelectedComment(session, delta) {
|
|
96
|
-
if (session.comments.length === 0) {
|
|
97
|
-
session.selectedCommentId = undefined;
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
const currentIndex = Math.max(0, session.comments.findIndex((comment) => comment.id === session.selectedCommentId));
|
|
101
|
-
const nextIndex = clampIndex(currentIndex + delta, session.comments.length);
|
|
102
|
-
session.selectedCommentId = session.comments[nextIndex]?.id;
|
|
103
|
-
}
|
|
104
|
-
export function createDraftComment(input) {
|
|
105
|
-
const next = input.session.comments.length + 1;
|
|
106
|
-
return {
|
|
107
|
-
id: `C${String(next).padStart(3, "0")}`,
|
|
108
|
-
file: input.file,
|
|
109
|
-
line: input.line,
|
|
110
|
-
hunkId: input.hunkId,
|
|
111
|
-
previewLineId: input.previewLineId,
|
|
112
|
-
oldNum: input.oldNum,
|
|
113
|
-
newNum: input.newNum,
|
|
114
|
-
lineType: input.lineType,
|
|
115
|
-
body: input.body,
|
|
116
|
-
createdAt: (input.now ?? new Date()).toISOString(),
|
|
117
|
-
status: "approved",
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
export function addDraftComment(session, comment) {
|
|
121
|
-
session.comments.push(comment);
|
|
122
|
-
session.selectedCommentId = comment.id;
|
|
123
|
-
}
|
|
124
|
-
export function editSelectedComment(session, body) {
|
|
125
|
-
const comment = getSelectedComment(session);
|
|
126
|
-
if (!comment)
|
|
127
|
-
return null;
|
|
128
|
-
if (comment.body !== body) {
|
|
129
|
-
comment.originalBody ??= comment.body;
|
|
130
|
-
comment.body = body;
|
|
131
|
-
comment.status = "edited";
|
|
132
|
-
}
|
|
133
|
-
return comment;
|
|
134
|
-
}
|
|
135
|
-
export function deleteSelectedComment(session) {
|
|
136
|
-
const currentIndex = session.comments.findIndex((comment) => comment.id === session.selectedCommentId);
|
|
137
|
-
if (currentIndex < 0)
|
|
138
|
-
return null;
|
|
139
|
-
const [removed] = session.comments.splice(currentIndex, 1);
|
|
140
|
-
session.selectedCommentId = session.comments[Math.min(currentIndex, session.comments.length - 1)]?.id;
|
|
141
|
-
return removed ?? null;
|
|
142
|
-
}
|
|
143
|
-
export function toggleSelectedCommentStatus(session, status) {
|
|
144
|
-
const comment = getSelectedComment(session);
|
|
145
|
-
if (!comment)
|
|
146
|
-
return null;
|
|
147
|
-
comment.status = comment.status === status ? "approved" : status;
|
|
148
|
-
return comment;
|
|
149
|
-
}
|
|
150
|
-
export function approveAllComments(session) {
|
|
151
|
-
for (const comment of session.comments) {
|
|
152
|
-
comment.status = comment.status === "edited" ? "edited" : "approved";
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
export function getSubmittableComments(session) {
|
|
156
|
-
return session.comments.filter((comment) => comment.status === "approved" || comment.status === "edited");
|
|
157
|
-
}
|
|
158
|
-
export function countCommentStatuses(session) {
|
|
159
|
-
return {
|
|
160
|
-
approved: session.comments.filter((comment) => comment.status === "approved").length,
|
|
161
|
-
dismissed: session.comments.filter((comment) => comment.status === "dismissed").length,
|
|
162
|
-
edited: session.comments.filter((comment) => comment.status === "edited").length,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
function clampIndex(index, length) {
|
|
166
|
-
return Math.max(0, Math.min(index, length - 1));
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/review/session.ts"],"names":[],"mappings":"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"}
|
package/dist/review/tui.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { Theme } from "@earendil-works/pi-coding-agent";
|
|
2
|
-
import { renderReviewFilePreview } from "./file-preview.js";
|
|
3
|
-
import { type ReviewDiff } from "./git.js";
|
|
4
|
-
import { type ReviewDiffSession } from "./session.js";
|
|
5
|
-
export type ReviewDiffPaneAction = {
|
|
6
|
-
type: "cancel";
|
|
7
|
-
} | {
|
|
8
|
-
type: "refresh";
|
|
9
|
-
} | {
|
|
10
|
-
type: "add-comment";
|
|
11
|
-
} | {
|
|
12
|
-
type: "edit-comment";
|
|
13
|
-
} | {
|
|
14
|
-
type: "open-location";
|
|
15
|
-
} | {
|
|
16
|
-
type: "copy-location";
|
|
17
|
-
} | {
|
|
18
|
-
type: "delete-comment";
|
|
19
|
-
} | {
|
|
20
|
-
type: "approve-all";
|
|
21
|
-
} | {
|
|
22
|
-
type: "submit";
|
|
23
|
-
};
|
|
24
|
-
interface ReviewDiffPaneOptions {
|
|
25
|
-
requestRender?: () => void;
|
|
26
|
-
renderFilePreview?: typeof renderReviewFilePreview;
|
|
27
|
-
}
|
|
28
|
-
export declare class ReviewDiffPane {
|
|
29
|
-
private diff;
|
|
30
|
-
private session;
|
|
31
|
-
private theme;
|
|
32
|
-
private onDone;
|
|
33
|
-
private cachedWidth?;
|
|
34
|
-
private cachedLines?;
|
|
35
|
-
private focus;
|
|
36
|
-
private previewKey?;
|
|
37
|
-
private previewLines?;
|
|
38
|
-
private previewPending;
|
|
39
|
-
private previewRenderCache;
|
|
40
|
-
private readonly requestRender?;
|
|
41
|
-
private readonly renderFilePreview;
|
|
42
|
-
constructor(diff: ReviewDiff, session: ReviewDiffSession, theme: Theme, onDone: (action: ReviewDiffPaneAction) => void, options?: ReviewDiffPaneOptions);
|
|
43
|
-
handleInput(data: string): void;
|
|
44
|
-
render(width: number): string[];
|
|
45
|
-
invalidate(): void;
|
|
46
|
-
updateReviewState(diff: ReviewDiff, session: ReviewDiffSession): void;
|
|
47
|
-
private ensurePreview;
|
|
48
|
-
private renderFixedPreviewRows;
|
|
49
|
-
private applyPreviewSelection;
|
|
50
|
-
private move;
|
|
51
|
-
private movePage;
|
|
52
|
-
private moveToBoundary;
|
|
53
|
-
private focusHeader;
|
|
54
|
-
private styleForFocus;
|
|
55
|
-
}
|
|
56
|
-
export {};
|
|
57
|
-
//# sourceMappingURL=tui.d.ts.map
|
package/dist/review/tui.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/review/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAoE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ7G,OAAO,EAKN,KAAK,iBAAiB,EAGtB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,oBAAoB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAYtB,UAAU,qBAAqB;IAC9B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,uBAAuB,CAAC;CACnD;AAED,qBAAa,cAAc;IAYzB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IAdf,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,OAAO,CAAC,KAAK,CAAuD;IACpE,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAW;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;gBAG1D,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EACtD,OAAO,GAAE,qBAA0B;IAMpC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA0H/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAuL/B,UAAU,IAAI,IAAI;IAKlB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAUrE,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;CAGrB"}
|