daedalus-cli 0.5.17 → 0.5.18
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/CHANGELOG.md +5 -0
- package/dist/manual-test.d.ts +2 -0
- package/dist/manual-test.d.ts.map +1 -0
- package/dist/manual-test.js.map +1 -0
- package/dist/tools/builtin/diff-ui.d.ts +5 -1
- package/dist/tools/builtin/diff-ui.d.ts.map +1 -1
- package/dist/tools/builtin/diff-ui.js +157 -1
- package/dist/tools/builtin/diff-ui.js.map +1 -1
- package/dist/tools/builtin/diff-ui.test.d.ts +2 -0
- package/dist/tools/builtin/diff-ui.test.d.ts.map +1 -0
- package/dist/tools/builtin/diff-ui.test.js +74 -0
- package/dist/tools/builtin/diff-ui.test.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.5.18] - 2026-06-19
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Interactive hunk-level diff review and staging: choose `[c]hunks` at the apply diff prompt to accept (`y`), reject (`n`), stage all remaining (`a`), or quit (`q`) at the individual change hunk level
|
|
14
|
+
|
|
10
15
|
## [0.5.17] - 2026-06-19
|
|
11
16
|
|
|
12
17
|
### Added
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-test.d.ts","sourceRoot":"","sources":["../src/manual-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-test.js","sourceRoot":"","sources":["../src/manual-test.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,KAAK,UAAU,IAAI;IACjB,MAAM,UAAU,GAAG;;;;;;;;;QASb,CAAC;IAEP,MAAM,UAAU,GAAG;;;;;;;;;QASb,CAAC;IAEP,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,QAAQ,EAAE,eAAe;QACzB,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;AACtE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as diff from 'diff';
|
|
1
2
|
import { ToolContext } from '../../types.js';
|
|
2
|
-
export type DiffDecision = 'yes' | 'no' | 'all' | 'skip' | 'diff' | 'edit';
|
|
3
|
+
export type DiffDecision = 'yes' | 'no' | 'all' | 'skip' | 'diff' | 'edit' | 'chunks';
|
|
3
4
|
export interface DiffOptions {
|
|
4
5
|
filePath: string;
|
|
5
6
|
oldContent: string;
|
|
@@ -17,5 +18,8 @@ export declare function generateDiffSummary(oldContent: string, newContent: stri
|
|
|
17
18
|
export declare function promptDiffDecision(options: DiffOptions, globalAutoApply?: 'prompt' | 'all' | 'skip', context?: ToolContext): Promise<DiffResult>;
|
|
18
19
|
/** Open editor for manual editing */
|
|
19
20
|
export declare function openEditor(content: string): Promise<string>;
|
|
21
|
+
export declare function formatHunk(hunk: diff.Hunk, index: number, total: number, filePath: string): string;
|
|
22
|
+
export declare function promptHunkDecision(hunk: diff.Hunk, index: number, total: number, filePath: string): Promise<'yes' | 'no' | 'all' | 'quit'>;
|
|
23
|
+
export declare function reviewChunksWorkflow(oldContent: string, newContent: string, filePath: string, prompter?: typeof promptHunkDecision): Promise<string>;
|
|
20
24
|
export declare function runDiffWorkflow(options: DiffOptions, globalAutoApply?: 'prompt' | 'all' | 'skip', context?: ToolContext): Promise<DiffResult>;
|
|
21
25
|
//# sourceMappingURL=diff-ui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-ui.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/diff-ui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diff-ui.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/diff-ui.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CA+CR;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAcR;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,eAAe,GAAE,QAAQ,GAAG,KAAK,GAAG,MAAiB,EACrD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CA4DrB;AAED,qCAAqC;AACrC,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCjE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,CAgCR;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,CA8CxC;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,OAAO,kBAAuC,GACvD,OAAO,CAAC,MAAM,CAAC,CAoEjB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,WAAW,EACpB,eAAe,GAAE,QAAQ,GAAG,KAAK,GAAG,MAAiB,EACrD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CAsDrB"}
|
|
@@ -82,7 +82,7 @@ export async function promptDiffDecision(options, globalAutoApply = 'prompt', co
|
|
|
82
82
|
// Show the diff
|
|
83
83
|
const diffOutput = generateUnifiedDiff(options.oldContent, options.newContent, options.filePath);
|
|
84
84
|
process.stdout.write(diffOutput);
|
|
85
|
-
process.stdout.write(pc.bold(`\nApply this masterpiece? [y]es / [n]o / [a]ll / [s]kip / [d]iff / [e]dit: `));
|
|
85
|
+
process.stdout.write(pc.bold(`\nApply this masterpiece? [y]es / [n]o / [c]hunks / [a]ll / [s]kip / [d]iff / [e]dit: `));
|
|
86
86
|
return new Promise((resolve) => {
|
|
87
87
|
// Raw mode for single keypress
|
|
88
88
|
if (process.stdin.isTTY) {
|
|
@@ -98,6 +98,9 @@ export async function promptDiffDecision(options, globalAutoApply = 'prompt', co
|
|
|
98
98
|
case 'n':
|
|
99
99
|
decision = 'no';
|
|
100
100
|
break;
|
|
101
|
+
case 'c':
|
|
102
|
+
decision = 'chunks';
|
|
103
|
+
break;
|
|
101
104
|
case 'a':
|
|
102
105
|
decision = 'all';
|
|
103
106
|
break;
|
|
@@ -170,12 +173,165 @@ export async function openEditor(content) {
|
|
|
170
173
|
});
|
|
171
174
|
});
|
|
172
175
|
}
|
|
176
|
+
export function formatHunk(hunk, index, total, filePath) {
|
|
177
|
+
let output = '';
|
|
178
|
+
const titleText = ` Hunk ${index + 1} of ${total} for ${filePath} `;
|
|
179
|
+
const borderW = Math.max(78, titleText.length);
|
|
180
|
+
const paddedTitle = titleText.padEnd(borderW);
|
|
181
|
+
output += pc.bold(pc.cyan(`\n\u250c${'\u2500'.repeat(borderW)}\u2510\n`));
|
|
182
|
+
output += pc.bold(pc.cyan(`\u2502${paddedTitle}\u2502\n`));
|
|
183
|
+
output += pc.bold(pc.cyan(`\u251c${'\u2500'.repeat(borderW)}\u2524\n`));
|
|
184
|
+
let lineNumOld = hunk.oldStart;
|
|
185
|
+
let lineNumNew = hunk.newStart;
|
|
186
|
+
for (const line of hunk.lines) {
|
|
187
|
+
if (line.startsWith('\\')) {
|
|
188
|
+
output += pc.bold(pc.yellow(`\u2502 ${line}\n`));
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
if (line.startsWith('+')) {
|
|
192
|
+
output += pc.green(`\u2502 + ${String(lineNumNew).padStart(4)} | ${line.substring(1)}\n`);
|
|
193
|
+
lineNumNew++;
|
|
194
|
+
}
|
|
195
|
+
else if (line.startsWith('-')) {
|
|
196
|
+
output += pc.red(`\u2502 - ${String(lineNumOld).padStart(4)} | ${line.substring(1)}\n`);
|
|
197
|
+
lineNumOld++;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
output += pc.gray(`\u2502 ${String(lineNumOld).padStart(4)} | ${line.substring(1)}\n`);
|
|
201
|
+
lineNumOld++;
|
|
202
|
+
lineNumNew++;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
output += pc.bold(pc.cyan(`\u2514${'\u2500'.repeat(borderW)}\u2518\n`));
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
208
|
+
export async function promptHunkDecision(hunk, index, total, filePath) {
|
|
209
|
+
if (!process.stdin.isTTY) {
|
|
210
|
+
return 'no';
|
|
211
|
+
}
|
|
212
|
+
const hunkOutput = formatHunk(hunk, index, total, filePath);
|
|
213
|
+
process.stdout.write(hunkOutput);
|
|
214
|
+
process.stdout.write(pc.bold(`Stage this hunk? [y]es / [n]o / [a]ll remaining / [q]uit: `));
|
|
215
|
+
return new Promise((resolve) => {
|
|
216
|
+
if (process.stdin.isTTY) {
|
|
217
|
+
process.stdin.setRawMode?.(true);
|
|
218
|
+
}
|
|
219
|
+
const onKey = (key) => {
|
|
220
|
+
const char = key.toString().toLowerCase();
|
|
221
|
+
let choice = null;
|
|
222
|
+
switch (char) {
|
|
223
|
+
case 'y':
|
|
224
|
+
choice = 'yes';
|
|
225
|
+
break;
|
|
226
|
+
case 'n':
|
|
227
|
+
choice = 'no';
|
|
228
|
+
break;
|
|
229
|
+
case 'a':
|
|
230
|
+
choice = 'all';
|
|
231
|
+
break;
|
|
232
|
+
case 'q':
|
|
233
|
+
choice = 'quit';
|
|
234
|
+
break;
|
|
235
|
+
case '\u0003': // Ctrl+C
|
|
236
|
+
process.stdout.write('\n');
|
|
237
|
+
cleanup();
|
|
238
|
+
resolve('quit');
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
if (choice) {
|
|
242
|
+
process.stdout.write(`${choice.toUpperCase()}\n`);
|
|
243
|
+
cleanup();
|
|
244
|
+
resolve(choice);
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
process.stdin.on('data', onKey);
|
|
248
|
+
function cleanup() {
|
|
249
|
+
process.stdin.off('data', onKey);
|
|
250
|
+
if (process.stdin.isTTY) {
|
|
251
|
+
process.stdin.setRawMode?.(false);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
export async function reviewChunksWorkflow(oldContent, newContent, filePath, prompter = promptHunkDecision) {
|
|
257
|
+
const patch = diff.structuredPatch(filePath, filePath, oldContent, newContent);
|
|
258
|
+
const hunks = patch.hunks;
|
|
259
|
+
if (hunks.length === 0) {
|
|
260
|
+
process.stdout.write(pc.yellow('No hunks found to review.\n'));
|
|
261
|
+
return oldContent;
|
|
262
|
+
}
|
|
263
|
+
const oldLines = oldContent.split('\n');
|
|
264
|
+
const outputLines = [];
|
|
265
|
+
let currentLine = 1;
|
|
266
|
+
let autoApplyRemaining = false;
|
|
267
|
+
let quitRemaining = false;
|
|
268
|
+
for (let i = 0; i < hunks.length; i++) {
|
|
269
|
+
const hunk = hunks[i];
|
|
270
|
+
while (currentLine < hunk.oldStart) {
|
|
271
|
+
outputLines.push(oldLines[currentLine - 1]);
|
|
272
|
+
currentLine++;
|
|
273
|
+
}
|
|
274
|
+
let accept = false;
|
|
275
|
+
if (autoApplyRemaining) {
|
|
276
|
+
accept = true;
|
|
277
|
+
}
|
|
278
|
+
else if (quitRemaining) {
|
|
279
|
+
accept = false;
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
const choice = await prompter(hunk, i, hunks.length, filePath);
|
|
283
|
+
if (choice === 'yes') {
|
|
284
|
+
accept = true;
|
|
285
|
+
}
|
|
286
|
+
else if (choice === 'all') {
|
|
287
|
+
accept = true;
|
|
288
|
+
autoApplyRemaining = true;
|
|
289
|
+
}
|
|
290
|
+
else if (choice === 'quit') {
|
|
291
|
+
accept = false;
|
|
292
|
+
quitRemaining = true;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
accept = false;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (accept) {
|
|
299
|
+
for (const line of hunk.lines) {
|
|
300
|
+
if (line.startsWith('\\'))
|
|
301
|
+
continue;
|
|
302
|
+
if (!line.startsWith('-')) {
|
|
303
|
+
outputLines.push(line.substring(1));
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
for (const line of hunk.lines) {
|
|
309
|
+
if (line.startsWith('\\'))
|
|
310
|
+
continue;
|
|
311
|
+
if (!line.startsWith('+')) {
|
|
312
|
+
outputLines.push(line.substring(1));
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
currentLine += hunk.oldLines;
|
|
317
|
+
}
|
|
318
|
+
while (currentLine <= oldLines.length) {
|
|
319
|
+
outputLines.push(oldLines[currentLine - 1]);
|
|
320
|
+
currentLine++;
|
|
321
|
+
}
|
|
322
|
+
return outputLines.join('\n');
|
|
323
|
+
}
|
|
173
324
|
export async function runDiffWorkflow(options, globalAutoApply = 'prompt', context) {
|
|
174
325
|
let currentContent = options.newContent;
|
|
175
326
|
try {
|
|
176
327
|
context?.pauseSpinner?.();
|
|
177
328
|
while (true) {
|
|
178
329
|
const result = await promptDiffDecision({ ...options, newContent: currentContent }, globalAutoApply, context);
|
|
330
|
+
if (result.decision === 'chunks') {
|
|
331
|
+
currentContent = await reviewChunksWorkflow(options.oldContent, currentContent, options.filePath);
|
|
332
|
+
process.stdout.write(pc.green('\n\u2713 Chunk review complete. Showing updated diff...\n'));
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
179
335
|
if (result.decision === 'edit') {
|
|
180
336
|
try {
|
|
181
337
|
const edited = await openEditor(currentContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-ui.js","sourceRoot":"","sources":["../../../src/tools/builtin/diff-ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff-ui.js","sourceRoot":"","sources":["../../../src/tools/builtin/diff-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-ui.test.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/diff-ui.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
2
|
+
import * as diffUI from './diff-ui.js';
|
|
3
|
+
describe('Diff UI / Chunk Staging', () => {
|
|
4
|
+
afterEach(() => {
|
|
5
|
+
vi.restoreAllMocks();
|
|
6
|
+
});
|
|
7
|
+
it('should format a hunk correctly with colored lines and line numbers', () => {
|
|
8
|
+
const hunk = {
|
|
9
|
+
oldStart: 2,
|
|
10
|
+
oldLines: 2,
|
|
11
|
+
newStart: 2,
|
|
12
|
+
newLines: 3,
|
|
13
|
+
lines: [
|
|
14
|
+
' line 1',
|
|
15
|
+
'-line 2',
|
|
16
|
+
'+line 2 - changed',
|
|
17
|
+
'+line 2.5 - added',
|
|
18
|
+
' line 3'
|
|
19
|
+
]
|
|
20
|
+
};
|
|
21
|
+
const formatted = diffUI.formatHunk(hunk, 0, 1, 'test.txt');
|
|
22
|
+
expect(formatted).toContain('Hunk 1 of 1 for test.txt');
|
|
23
|
+
expect(formatted).toContain('- 3 | line 2');
|
|
24
|
+
expect(formatted).toContain('+ 3 | line 2 - changed');
|
|
25
|
+
expect(formatted).toContain('+ 4 | line 2.5 - added');
|
|
26
|
+
});
|
|
27
|
+
it('should reconstruct file content accepting or rejecting chunks', async () => {
|
|
28
|
+
const oldLines = Array.from({ length: 100 }, (_, i) => `line ${i + 1}`);
|
|
29
|
+
const newLines = [...oldLines];
|
|
30
|
+
newLines[1] = 'line 2 - changed';
|
|
31
|
+
newLines[94] = 'line 95 - changed';
|
|
32
|
+
const oldContent = oldLines.join('\n');
|
|
33
|
+
const newContent = newLines.join('\n');
|
|
34
|
+
const mockPrompter = vi.fn()
|
|
35
|
+
.mockResolvedValueOnce('yes')
|
|
36
|
+
.mockResolvedValueOnce('no');
|
|
37
|
+
const result = await diffUI.reviewChunksWorkflow(oldContent, newContent, 'test.txt', mockPrompter);
|
|
38
|
+
const expectedLines = [...oldLines];
|
|
39
|
+
expectedLines[1] = 'line 2 - changed'; // accepted
|
|
40
|
+
// expectedLines[94] remains 'line 95' (rejected)
|
|
41
|
+
expect(result).toBe(expectedLines.join('\n'));
|
|
42
|
+
expect(mockPrompter).toHaveBeenCalledTimes(2);
|
|
43
|
+
});
|
|
44
|
+
it('should accept all remaining hunks when choice is "all"', async () => {
|
|
45
|
+
const oldLines = Array.from({ length: 100 }, (_, i) => `line ${i + 1}`);
|
|
46
|
+
const newLines = [...oldLines];
|
|
47
|
+
newLines[1] = 'line 2 - changed';
|
|
48
|
+
newLines[94] = 'line 95 - changed';
|
|
49
|
+
const oldContent = oldLines.join('\n');
|
|
50
|
+
const newContent = newLines.join('\n');
|
|
51
|
+
const mockPrompter = vi.fn().mockResolvedValueOnce('all');
|
|
52
|
+
const result = await diffUI.reviewChunksWorkflow(oldContent, newContent, 'test.txt', mockPrompter);
|
|
53
|
+
expect(result).toBe(newContent);
|
|
54
|
+
expect(mockPrompter).toHaveBeenCalledTimes(1);
|
|
55
|
+
});
|
|
56
|
+
it('should reject all remaining hunks when choice is "quit"', async () => {
|
|
57
|
+
const oldLines = Array.from({ length: 100 }, (_, i) => `line ${i + 1}`);
|
|
58
|
+
const newLines = [...oldLines];
|
|
59
|
+
newLines[1] = 'line 2 - changed';
|
|
60
|
+
newLines[94] = 'line 95 - changed';
|
|
61
|
+
const oldContent = oldLines.join('\n');
|
|
62
|
+
const newContent = newLines.join('\n');
|
|
63
|
+
const mockPrompter = vi.fn()
|
|
64
|
+
.mockResolvedValueOnce('yes')
|
|
65
|
+
.mockResolvedValueOnce('quit');
|
|
66
|
+
const result = await diffUI.reviewChunksWorkflow(oldContent, newContent, 'test.txt', mockPrompter);
|
|
67
|
+
const expectedLines = [...oldLines];
|
|
68
|
+
expectedLines[1] = 'line 2 - changed'; // accepted
|
|
69
|
+
// expectedLines[94] remains 'line 95' (rejected due to quit)
|
|
70
|
+
expect(result).toBe(expectedLines.join('\n'));
|
|
71
|
+
expect(mockPrompter).toHaveBeenCalledTimes(2);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=diff-ui.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-ui.test.js","sourceRoot":"","sources":["../../../src/tools/builtin/diff-ui.test.ts"],"names":[],"mappings":"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"}
|