@heyhuynhgiabuu/pi-diff 0.4.0 → 0.5.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.
@@ -1,30 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerReviewDiffCommand = registerReviewDiffCommand;
4
- const node_child_process_1 = require("node:child_process");
5
- const pi_coding_agent_1 = require("@earendil-works/pi-coding-agent");
6
- const pi_tui_1 = require("@earendil-works/pi-tui");
7
- const git_js_1 = require("./git.js");
8
- const model_js_1 = require("./model.js");
9
- const prompt_js_1 = require("./prompt.js");
10
- const session_js_1 = require("./session.js");
11
- const tui_js_1 = require("./tui.js");
1
+ import { execFileSync } from "node:child_process";
2
+ import { copyToClipboard } from "@earendil-works/pi-coding-agent";
3
+ import { Text } from "@earendil-works/pi-tui";
4
+ import { readGitDiff } from "./git.js";
5
+ import { getSelectedPreviewLine, selectPreviewLineForComment, syncPreviewSelection } from "./model.js";
6
+ import { buildReviewDiffPrompt } from "./prompt.js";
7
+ import { addDraftComment, approveAllComments, cloneReviewDiffSession, createDraftComment, createReviewDiffSession, deleteSelectedComment, editSelectedComment, getLatestReviewDiffSession, getSelectedComment, getSelectedFile, getSelectedHunk, getSubmittableComments, persistReviewDiffSession, syncReviewDiffSession, } from "./session.js";
8
+ import { checkHunkAvailable, launchHunkReview } from "./hunk-bridge.js";
9
+ import { ReviewDiffPane } from "./tui.js";
12
10
  const REVIEW_DIFF_POLL_MS = 1000;
13
- function registerReviewDiffCommand(pi, cwd) {
11
+ // ─── Hunk availability cache (checked once per process lifetime) ──────────────
12
+ let _hunkAvailable = undefined;
13
+ let _hunkWarningShown = false;
14
+ async function hunkAvailableCached() {
15
+ if (_hunkAvailable === undefined) {
16
+ _hunkAvailable = await checkHunkAvailable();
17
+ }
18
+ return _hunkAvailable;
19
+ }
20
+ // ─── Helpers for mapping Hunk comments to ReviewDraftComment ─────────────────
21
+ function hunkCommentToDraftComment(comment, index) {
22
+ return {
23
+ id: `H${String(index + 1).padStart(3, "0")}`,
24
+ file: comment.filePath,
25
+ line: comment.newLine || comment.oldLine || undefined,
26
+ oldNum: comment.oldLine || null,
27
+ newNum: comment.newLine || null,
28
+ body: comment.summary,
29
+ createdAt: new Date().toISOString(),
30
+ status: "approved",
31
+ };
32
+ }
33
+ function mapHunkCommentsToDraftComments(hunkComments) {
34
+ return hunkComments.map((comment, index) => hunkCommentToDraftComment(comment, index));
35
+ }
36
+ export function registerReviewDiffCommand(pi, cwd) {
14
37
  let latestSession = null;
15
38
  const reconstruct = (ctx) => {
16
- latestSession = (0, session_js_1.getLatestReviewDiffSession)(ctx);
39
+ latestSession = getLatestReviewDiffSession(ctx);
17
40
  };
18
41
  pi.on?.("session_start", async (_event, ctx) => reconstruct(ctx));
19
- pi.on?.("session_switch", async (_event, ctx) => reconstruct(ctx));
20
- pi.on?.("session_fork", async (_event, ctx) => reconstruct(ctx));
42
+ pi.on?.("session_before_switch", async (_event, ctx) => reconstruct(ctx));
43
+ pi.on?.("session_before_fork", async (_event, ctx) => reconstruct(ctx));
21
44
  pi.on?.("session_tree", async (_event, ctx) => reconstruct(ctx));
22
45
  pi.registerMessageRenderer?.("review-diff-submit", (message, _options, theme) => {
23
- return new pi_tui_1.Text(theme.fg("success", theme.bold("review-diff ")) + message.content, 0, 0);
46
+ const text = typeof message.content === "string" ? message.content : message.content.map((c) => c.text ?? "").join("");
47
+ return new Text(theme.fg("success", theme.bold("review-diff ")) + text, 0, 0);
24
48
  });
25
49
  pi.registerMessageRenderer?.("review-diff-status", (message, _options, theme) => {
50
+ const text = typeof message.content === "string" ? message.content : message.content.map((c) => c.text ?? "").join("");
26
51
  const level = message.details?.level === "error" ? "error" : message.details?.level === "warning" ? "warning" : "muted";
27
- return new pi_tui_1.Text(theme.fg(level, theme.bold("review-diff ")) + message.content, 0, 0);
52
+ return new Text(theme.fg(level, theme.bold("review-diff ")) + text, 0, 0);
28
53
  });
29
54
  pi.registerCommand?.("review-diff", {
30
55
  description: "Open an interactive local Git review overlay and submit drafted comments back to Pi",
@@ -53,168 +78,219 @@ function registerReviewDiffCommand(pi, cwd) {
53
78
  notifyReviewDiff(pi, ctx, error instanceof Error ? error.message : String(error), "error");
54
79
  return;
55
80
  }
56
- let session = latestSession && sameMode(latestSession.mode, mode)
57
- ? (0, session_js_1.cloneReviewDiffSession)(latestSession)
58
- : (0, session_js_1.createReviewDiffSession)(mode);
59
81
  const initialDiff = loadReviewDiff(cwd, mode);
60
82
  if (!initialDiff.ok) {
61
83
  notifyReviewDiff(pi, ctx, initialDiff.message, "error");
62
84
  return;
63
85
  }
64
- let diff = initialDiff.diff;
65
- session = (0, session_js_1.syncReviewDiffSession)(session, diff);
66
- (0, model_js_1.syncPreviewSelection)(session, diff);
67
- (0, session_js_1.persistReviewDiffSession)(pi, session);
68
- latestSession = session;
69
- // eslint-disable-next-line no-constant-condition
70
- while (true) {
71
- const paneResult = await openReviewDiffPane(ctx, cwd, diff, session);
72
- diff = paneResult.diff;
73
- session = paneResult.session;
74
- const action = paneResult.action;
75
- if (action.type === "cancel") {
76
- (0, session_js_1.persistReviewDiffSession)(pi, session);
77
- latestSession = session;
78
- return;
79
- }
80
- if (action.type === "refresh") {
81
- const refreshed = loadReviewDiff(cwd, session.mode);
82
- if (!refreshed.ok) {
83
- notifyReviewDiff(pi, ctx, refreshed.message, "error");
84
- continue;
85
- }
86
- diff = refreshed.diff;
87
- session = (0, session_js_1.syncReviewDiffSession)(session, diff);
88
- (0, model_js_1.syncPreviewSelection)(session, diff);
89
- (0, session_js_1.persistReviewDiffSession)(pi, session);
90
- latestSession = session;
91
- continue;
92
- }
93
- if (action.type === "approve-all") {
94
- (0, session_js_1.approveAllComments)(session);
95
- (0, model_js_1.selectPreviewLineForComment)(session, diff);
96
- (0, model_js_1.syncPreviewSelection)(session, diff);
97
- (0, session_js_1.persistReviewDiffSession)(pi, session);
98
- latestSession = session;
99
- continue;
100
- }
101
- if (action.type === "add-comment") {
102
- const file = (0, session_js_1.getSelectedFile)(diff, session);
103
- const hunk = (0, session_js_1.getSelectedHunk)(diff, session);
104
- const previewLine = (0, model_js_1.getSelectedPreviewLine)(diff, session);
105
- if (!file || !hunk) {
106
- ctx.ui.notify("Select a file and hunk before drafting a comment", "warning");
107
- continue;
108
- }
109
- const lineNumber = previewLine?.newNum ?? previewLine?.oldNum ?? firstChangedLine(hunk) ?? hunk.newStart;
110
- const body = await ctx.ui.editor(`Draft review comment for ${file.path}`, commentSeed(file.path, hunk.id, lineNumber));
111
- if (!body || !body.trim())
112
- continue;
113
- (0, session_js_1.addDraftComment)(session, (0, session_js_1.createDraftComment)({
114
- session,
115
- file: file.path,
116
- body: body.trim(),
117
- line: lineNumber,
118
- hunkId: previewLine?.hunkId ?? hunk.id,
119
- previewLineId: previewLine?.id,
120
- oldNum: previewLine?.oldNum,
121
- newNum: previewLine?.newNum,
122
- lineType: previewLine?.kind === "hunk-header" ? undefined : previewLine?.kind,
123
- }));
124
- (0, model_js_1.syncPreviewSelection)(session, diff);
125
- (0, session_js_1.persistReviewDiffSession)(pi, session);
126
- latestSession = session;
127
- continue;
128
- }
129
- if (action.type === "edit-comment") {
130
- const selected = (0, session_js_1.getSelectedComment)(session);
131
- if (!selected) {
132
- ctx.ui.notify("No drafted comment selected. Press c to draft one first, or Tab to Comments.", "warning");
133
- continue;
134
- }
135
- const body = await ctx.ui.editor(`Edit ${selected.id}`, selected.body);
136
- if (!body || !body.trim())
137
- continue;
138
- (0, session_js_1.editSelectedComment)(session, body.trim());
139
- (0, model_js_1.selectPreviewLineForComment)(session, diff);
140
- (0, session_js_1.persistReviewDiffSession)(pi, session);
141
- latestSession = session;
142
- continue;
143
- }
144
- if (action.type === "open-location") {
145
- const location = buildSelectedLocationText(diff, session);
146
- if (!location) {
147
- ctx.ui.notify("No selected review location to open", "warning");
148
- continue;
149
- }
150
- ctx.ui.setEditorText(location);
151
- ctx.ui.notify("Selected review location loaded into the editor", "info");
152
- (0, session_js_1.persistReviewDiffSession)(pi, session);
153
- latestSession = session;
154
- return;
155
- }
156
- if (action.type === "copy-location") {
157
- const location = buildSelectedLocationText(diff, session);
158
- if (!location) {
159
- ctx.ui.notify("No selected review location to copy", "warning");
160
- continue;
161
- }
162
- try {
163
- await (0, pi_coding_agent_1.copyToClipboard)(location);
164
- ctx.ui.notify("Selected review location copied to clipboard", "info");
165
- }
166
- catch {
167
- ctx.ui.setEditorText(location);
168
- ctx.ui.notify("Clipboard unavailable; selected review location loaded into the editor", "warning");
169
- }
170
- (0, session_js_1.persistReviewDiffSession)(pi, session);
171
- latestSession = session;
172
- continue;
173
- }
174
- if (action.type === "delete-comment") {
175
- const removed = (0, session_js_1.deleteSelectedComment)(session);
176
- if (removed)
177
- ctx.ui.notify(`Removed ${removed.id}`, "info");
178
- (0, model_js_1.selectPreviewLineForComment)(session, diff);
179
- (0, model_js_1.syncPreviewSelection)(session, diff);
180
- (0, session_js_1.persistReviewDiffSession)(pi, session);
181
- latestSession = session;
182
- continue;
183
- }
184
- if (action.type === "submit") {
185
- const comments = (0, session_js_1.getSubmittableComments)(session);
186
- if (comments.length === 0) {
187
- ctx.ui.notify("No approved comments selected for submission", "warning");
188
- continue;
189
- }
190
- const prompt = (0, prompt_js_1.buildReviewDiffPrompt)(diff, session);
191
- if (typeof ctx.isIdle === "function" && !ctx.isIdle()) {
192
- pi.sendUserMessage(prompt, { deliverAs: "followUp" });
193
- }
194
- else {
195
- pi.sendUserMessage(prompt);
196
- }
197
- session.submittedAt = Date.now();
198
- (0, session_js_1.persistReviewDiffSession)(pi, session);
199
- latestSession = session;
200
- pi.sendMessage?.({
201
- customType: "review-diff-submit",
202
- content: `${comments.length} comment(s) queued for Pi from ${session.mode.type === "branch" ? `${session.mode.base}...HEAD` : "working tree"}`,
203
- display: true,
204
- details: { commentCount: comments.length, mode: session.mode },
205
- });
206
- ctx.ui.notify(`Queued ${comments.length} review comment(s) for Pi`, "info");
207
- return;
208
- }
86
+ const diff = initialDiff.diff;
87
+ const available = await hunkAvailableCached();
88
+ if (available) {
89
+ // ── Hunk path ────────────────────────────────────────────────
90
+ await handleHunkReview(pi, ctx, cwd, diff, mode, latestSession);
91
+ return;
209
92
  }
93
+ // ── Fallback path (TUI) ─────────────────────────────────────────
94
+ if (!_hunkWarningShown) {
95
+ _hunkWarningShown = true;
96
+ notifyReviewDiff(pi, ctx, "Hunk not found — using built-in review UI. Install with: npm i -g hunkdiff", "warning");
97
+ }
98
+ await handleTuiReview(pi, ctx, cwd, diff, mode, latestSession);
210
99
  },
211
100
  });
212
101
  }
102
+ /**
103
+ * Hunk review path: pipe git diff to `hunk patch -`, wait for exit,
104
+ * map returned comments to ReviewDraftComment[], and submit.
105
+ */
106
+ async function handleHunkReview(pi, ctx, cwd, diff, mode, latestSession) {
107
+ let session = latestSession && sameMode(latestSession.mode, mode)
108
+ ? cloneReviewDiffSession(latestSession)
109
+ : createReviewDiffSession(mode);
110
+ session = syncReviewDiffSession(session, diff);
111
+ persistReviewDiffSession(pi, session);
112
+ const hunkResult = await launchHunkReview(cwd, diff.raw);
113
+ // Even if the process returned non-zero, attempt to harvest comments
114
+ const hunkComments = hunkResult.comments ?? [];
115
+ if (hunkComments.length > 0) {
116
+ const draftComments = mapHunkCommentsToDraftComments(hunkComments);
117
+ for (const dc of draftComments) {
118
+ addDraftComment(session, dc);
119
+ }
120
+ persistReviewDiffSession(pi, session);
121
+ }
122
+ const comments = getSubmittableComments(session);
123
+ if (comments.length > 0) {
124
+ const prompt = buildReviewDiffPrompt(diff, session);
125
+ if (typeof ctx.isIdle === "function" && !ctx.isIdle()) {
126
+ pi.sendUserMessage(prompt, { deliverAs: "followUp" });
127
+ }
128
+ else {
129
+ pi.sendUserMessage(prompt);
130
+ }
131
+ session.submittedAt = Date.now();
132
+ persistReviewDiffSession(pi, session);
133
+ pi.sendMessage?.({
134
+ customType: "review-diff-submit",
135
+ content: `${comments.length} comment(s) queued for Pi from ${session.mode.type === "branch" ? `${session.mode.base}...HEAD` : "working tree"}`,
136
+ display: true,
137
+ details: { commentCount: comments.length, mode: session.mode },
138
+ });
139
+ ctx.ui.notify(`Queued ${comments.length} review comment(s) for Pi`, "info");
140
+ }
141
+ else {
142
+ ctx.ui.notify("Hunk review completed with no comments to submit.", "info");
143
+ }
144
+ }
145
+ /**
146
+ * Legacy TUI review path: open the ReviewDiffPane overlay with the existing
147
+ * session management, refresh, approve-all, and submit flows.
148
+ */
149
+ async function handleTuiReview(pi, ctx, cwd, diff, mode, latestSession) {
150
+ let session = latestSession && sameMode(latestSession.mode, mode)
151
+ ? cloneReviewDiffSession(latestSession)
152
+ : createReviewDiffSession(mode);
153
+ session = syncReviewDiffSession(session, diff);
154
+ syncPreviewSelection(session, diff);
155
+ persistReviewDiffSession(pi, session);
156
+ // eslint-disable-next-line no-constant-condition
157
+ while (true) {
158
+ const paneResult = await openReviewDiffPane(ctx, cwd, diff, session);
159
+ diff = paneResult.diff;
160
+ session = paneResult.session;
161
+ const action = paneResult.action;
162
+ if (action.type === "cancel") {
163
+ persistReviewDiffSession(pi, session);
164
+ return;
165
+ }
166
+ if (action.type === "refresh") {
167
+ const refreshed = loadReviewDiff(cwd, session.mode);
168
+ if (!refreshed.ok) {
169
+ notifyReviewDiff(pi, ctx, refreshed.message, "error");
170
+ continue;
171
+ }
172
+ diff = refreshed.diff;
173
+ session = syncReviewDiffSession(session, diff);
174
+ syncPreviewSelection(session, diff);
175
+ persistReviewDiffSession(pi, session);
176
+ continue;
177
+ }
178
+ if (action.type === "approve-all") {
179
+ approveAllComments(session);
180
+ selectPreviewLineForComment(session, diff);
181
+ syncPreviewSelection(session, diff);
182
+ persistReviewDiffSession(pi, session);
183
+ continue;
184
+ }
185
+ if (action.type === "add-comment") {
186
+ const file = getSelectedFile(diff, session);
187
+ const hunk = getSelectedHunk(diff, session);
188
+ const previewLine = getSelectedPreviewLine(diff, session);
189
+ if (!file || !hunk) {
190
+ ctx.ui.notify("Select a file and hunk before drafting a comment", "warning");
191
+ continue;
192
+ }
193
+ const lineNumber = previewLine?.newNum ?? previewLine?.oldNum ?? firstChangedLine(hunk) ?? hunk.newStart;
194
+ const body = await ctx.ui.editor(`Draft review comment for ${file.path}`, commentSeed(file.path, hunk.id, lineNumber));
195
+ if (!body || !body.trim())
196
+ continue;
197
+ addDraftComment(session, createDraftComment({
198
+ session,
199
+ file: file.path,
200
+ body: body.trim(),
201
+ line: lineNumber,
202
+ hunkId: previewLine?.hunkId ?? hunk.id,
203
+ previewLineId: previewLine?.id,
204
+ oldNum: previewLine?.oldNum,
205
+ newNum: previewLine?.newNum,
206
+ lineType: previewLine?.kind === "hunk-header" ? undefined : previewLine?.kind,
207
+ }));
208
+ syncPreviewSelection(session, diff);
209
+ persistReviewDiffSession(pi, session);
210
+ continue;
211
+ }
212
+ if (action.type === "edit-comment") {
213
+ const selected = getSelectedComment(session);
214
+ if (!selected) {
215
+ ctx.ui.notify("No drafted comment selected. Press c to draft one first, or Tab to Comments.", "warning");
216
+ continue;
217
+ }
218
+ const body = await ctx.ui.editor(`Edit ${selected.id}`, selected.body);
219
+ if (!body || !body.trim())
220
+ continue;
221
+ editSelectedComment(session, body.trim());
222
+ selectPreviewLineForComment(session, diff);
223
+ persistReviewDiffSession(pi, session);
224
+ continue;
225
+ }
226
+ if (action.type === "open-location") {
227
+ const location = buildSelectedLocationText(diff, session);
228
+ if (!location) {
229
+ ctx.ui.notify("No selected review location to open", "warning");
230
+ continue;
231
+ }
232
+ ctx.ui.setEditorText(location);
233
+ ctx.ui.notify("Selected review location loaded into the editor", "info");
234
+ persistReviewDiffSession(pi, session);
235
+ return;
236
+ }
237
+ if (action.type === "copy-location") {
238
+ const location = buildSelectedLocationText(diff, session);
239
+ if (!location) {
240
+ ctx.ui.notify("No selected review location to copy", "warning");
241
+ continue;
242
+ }
243
+ try {
244
+ await copyToClipboard(location);
245
+ ctx.ui.notify("Selected review location copied to clipboard", "info");
246
+ }
247
+ catch {
248
+ ctx.ui.setEditorText(location);
249
+ ctx.ui.notify("Clipboard unavailable; selected review location loaded into the editor", "warning");
250
+ }
251
+ persistReviewDiffSession(pi, session);
252
+ continue;
253
+ }
254
+ if (action.type === "delete-comment") {
255
+ const removed = deleteSelectedComment(session);
256
+ if (removed)
257
+ ctx.ui.notify(`Removed ${removed.id}`, "info");
258
+ selectPreviewLineForComment(session, diff);
259
+ syncPreviewSelection(session, diff);
260
+ persistReviewDiffSession(pi, session);
261
+ continue;
262
+ }
263
+ if (action.type === "submit") {
264
+ const comments = getSubmittableComments(session);
265
+ if (comments.length === 0) {
266
+ ctx.ui.notify("No approved comments selected for submission", "warning");
267
+ continue;
268
+ }
269
+ const prompt = buildReviewDiffPrompt(diff, session);
270
+ if (typeof ctx.isIdle === "function" && !ctx.isIdle()) {
271
+ pi.sendUserMessage(prompt, { deliverAs: "followUp" });
272
+ }
273
+ else {
274
+ pi.sendUserMessage(prompt);
275
+ }
276
+ session.submittedAt = Date.now();
277
+ persistReviewDiffSession(pi, session);
278
+ pi.sendMessage?.({
279
+ customType: "review-diff-submit",
280
+ content: `${comments.length} comment(s) queued for Pi from ${session.mode.type === "branch" ? `${session.mode.base}...HEAD` : "working tree"}`,
281
+ display: true,
282
+ details: { commentCount: comments.length, mode: session.mode },
283
+ });
284
+ ctx.ui.notify(`Queued ${comments.length} review comment(s) for Pi`, "info");
285
+ return;
286
+ }
287
+ }
288
+ }
213
289
  async function openReviewDiffPane(ctx, cwd, diff, session) {
214
290
  let liveDiff = diff;
215
291
  let liveSession = session;
216
292
  const action = await ctx.ui.custom((tui, theme, _kb, done) => {
217
- const pane = new tui_js_1.ReviewDiffPane(liveDiff, liveSession, theme, done, {
293
+ const pane = new ReviewDiffPane(liveDiff, liveSession, theme, done, {
218
294
  requestRender: () => tui.requestRender(),
219
295
  });
220
296
  let interval = setInterval(() => {
@@ -222,8 +298,8 @@ async function openReviewDiffPane(ctx, cwd, diff, session) {
222
298
  if (!refreshed.ok || refreshed.diff.raw === liveDiff.raw)
223
299
  return;
224
300
  liveDiff = refreshed.diff;
225
- liveSession = (0, session_js_1.syncReviewDiffSession)(liveSession, liveDiff);
226
- (0, model_js_1.syncPreviewSelection)(liveSession, liveDiff);
301
+ liveSession = syncReviewDiffSession(liveSession, liveDiff);
302
+ syncPreviewSelection(liveSession, liveDiff);
227
303
  pane.updateReviewState(liveDiff, liveSession);
228
304
  tui.requestRender();
229
305
  }, REVIEW_DIFF_POLL_MS);
@@ -272,7 +348,7 @@ function parseReviewDiffArgs(args, previousMode) {
272
348
  }
273
349
  function listGitBranches(cwd) {
274
350
  try {
275
- const raw = (0, node_child_process_1.execFileSync)("git", ["branch", "--format=%(refname:short)"], {
351
+ const raw = execFileSync("git", ["branch", "--format=%(refname:short)"], {
276
352
  cwd,
277
353
  encoding: "utf8",
278
354
  stdio: ["ignore", "pipe", "pipe"],
@@ -295,7 +371,7 @@ function sameMode(left, right) {
295
371
  }
296
372
  function loadReviewDiff(cwd, mode) {
297
373
  try {
298
- return { ok: true, diff: (0, git_js_1.readGitDiff)(cwd, mode) };
374
+ return { ok: true, diff: readGitDiff(cwd, mode) };
299
375
  }
300
376
  catch (error) {
301
377
  return { ok: false, message: formatReviewDiffError(error, mode) };
@@ -317,8 +393,10 @@ function formatReviewDiffError(error, mode) {
317
393
  return `Could not read git diff for ${target}: ${detail}`;
318
394
  }
319
395
  function extractGitErrorDetail(error) {
396
+ if (error instanceof Error)
397
+ return error.message;
320
398
  if (!error || typeof error !== "object") {
321
- return error instanceof Error ? error.message : String(error ?? "").trim();
399
+ return String(error ?? "").trim();
322
400
  }
323
401
  const stderr = "stderr" in error ? error.stderr : undefined;
324
402
  if (typeof stderr === "string" && stderr.trim())
@@ -345,9 +423,9 @@ function notifyReviewDiff(pi, ctx, message, level) {
345
423
  console.warn(`review-diff (${level}): ${message}`);
346
424
  }
347
425
  function buildSelectedLocationText(diff, session) {
348
- const file = (0, session_js_1.getSelectedFile)(diff, session);
349
- const hunk = (0, session_js_1.getSelectedHunk)(diff, session);
350
- const previewLine = (0, model_js_1.getSelectedPreviewLine)(diff, session);
426
+ const file = getSelectedFile(diff, session);
427
+ const hunk = getSelectedHunk(diff, session);
428
+ const previewLine = getSelectedPreviewLine(diff, session);
351
429
  if (!file)
352
430
  return null;
353
431
  const line = previewLine?.newNum ?? previewLine?.oldNum ?? (hunk ? (firstChangedLine(hunk) ?? hunk.newStart) : null);
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/review/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/review/command.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatReviewMarkdown = formatReviewMarkdown;
4
- function formatReviewMarkdown(diff, options = {}) {
1
+ export function formatReviewMarkdown(diff, options = {}) {
5
2
  const maxLinesPerHunk = options.maxLinesPerHunk ?? 80;
6
3
  const lines = [];
7
4
  lines.push("# Code Review Context");
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/review/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/review/export.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderReviewFilePreview = renderReviewFilePreview;
4
- const node_path_1 = require("node:path");
5
- const cli_1 = require("@shikijs/cli");
1
+ import { extname } from "node:path";
2
+ import { codeToANSI } from "@shikijs/cli";
6
3
  const THEME = process.env.DIFF_THEME ?? "github-dark";
7
4
  const MAX_HL_CHARS = 80_000;
8
5
  const CACHE_LIMIT = 192;
@@ -55,7 +52,7 @@ const BINARY_EXTS = new Set([
55
52
  "sqlite3",
56
53
  ]);
57
54
  function isBinaryPath(filePath) {
58
- const ext = (0, node_path_1.extname)(filePath).slice(1).toLowerCase();
55
+ const ext = extname(filePath).slice(1).toLowerCase();
59
56
  return BINARY_EXTS.has(ext);
60
57
  }
61
58
  // Return a raw background ANSI escape. Pi theme.bg(token, text) wraps text and is
@@ -112,8 +109,8 @@ const EXT_LANG = {
112
109
  vue: "vue",
113
110
  };
114
111
  const cache = new Map();
115
- (0, cli_1.codeToANSI)("", "typescript", THEME).catch(() => { });
116
- async function renderReviewFilePreview(input) {
112
+ codeToANSI("", "typescript", THEME).catch(() => { });
113
+ export async function renderReviewFilePreview(input) {
117
114
  // Binary files must not be Shiki-rendered: their bytes, when decoded as UTF-8, can
118
115
  // produce wide Unicode characters whose display width exceeds our column budget and
119
116
  // crashes Pi TUI's renderer.
@@ -194,7 +191,7 @@ function truncateAnsi(text, width) {
194
191
  return `${text.slice(0, index)}${RST}`;
195
192
  }
196
193
  function lang(filePath) {
197
- return EXT_LANG[(0, node_path_1.extname)(filePath).slice(1).toLowerCase()];
194
+ return EXT_LANG[extname(filePath).slice(1).toLowerCase()];
198
195
  }
199
196
  async function hlBlock(code, language) {
200
197
  if (!code)
@@ -206,7 +203,7 @@ async function hlBlock(code, language) {
206
203
  if (hit)
207
204
  return touch(key, hit);
208
205
  try {
209
- const ansi = await (0, cli_1.codeToANSI)(code, language, THEME);
206
+ const ansi = await codeToANSI(code, language, THEME);
210
207
  const output = (ansi.endsWith("\n") ? ansi.slice(0, -1) : ansi).split("\n");
211
208
  return touch(key, output);
212
209
  }