source dump of claude code
at main 124 lines 12 kB view raw
1import { c as _c } from "react/compiler-runtime"; 2import type { StructuredPatchHunk } from 'diff'; 3import * as React from 'react'; 4import { useTerminalSize } from '../hooks/useTerminalSize.js'; 5import { Box, Text } from '../ink.js'; 6import { count } from '../utils/array.js'; 7import { MessageResponse } from './MessageResponse.js'; 8import { StructuredDiffList } from './StructuredDiffList.js'; 9type Props = { 10 filePath: string; 11 structuredPatch: StructuredPatchHunk[]; 12 firstLine: string | null; 13 fileContent?: string; 14 style?: 'condensed'; 15 verbose: boolean; 16 previewHint?: string; 17}; 18export function FileEditToolUpdatedMessage(t0) { 19 const $ = _c(22); 20 const { 21 filePath, 22 structuredPatch, 23 firstLine, 24 fileContent, 25 style, 26 verbose, 27 previewHint 28 } = t0; 29 const { 30 columns 31 } = useTerminalSize(); 32 const numAdditions = structuredPatch.reduce(_temp2, 0); 33 const numRemovals = structuredPatch.reduce(_temp4, 0); 34 let t1; 35 if ($[0] !== numAdditions) { 36 t1 = numAdditions > 0 ? <>Added <Text bold={true}>{numAdditions}</Text>{" "}{numAdditions > 1 ? "lines" : "line"}</> : null; 37 $[0] = numAdditions; 38 $[1] = t1; 39 } else { 40 t1 = $[1]; 41 } 42 const t2 = numAdditions > 0 && numRemovals > 0 ? ", " : null; 43 let t3; 44 if ($[2] !== numAdditions || $[3] !== numRemovals) { 45 t3 = numRemovals > 0 ? <>{numAdditions === 0 ? "R" : "r"}emoved <Text bold={true}>{numRemovals}</Text>{" "}{numRemovals > 1 ? "lines" : "line"}</> : null; 46 $[2] = numAdditions; 47 $[3] = numRemovals; 48 $[4] = t3; 49 } else { 50 t3 = $[4]; 51 } 52 let t4; 53 if ($[5] !== t1 || $[6] !== t2 || $[7] !== t3) { 54 t4 = <Text>{t1}{t2}{t3}</Text>; 55 $[5] = t1; 56 $[6] = t2; 57 $[7] = t3; 58 $[8] = t4; 59 } else { 60 t4 = $[8]; 61 } 62 const text = t4; 63 if (previewHint) { 64 if (style !== "condensed" && !verbose) { 65 let t5; 66 if ($[9] !== previewHint) { 67 t5 = <MessageResponse><Text dimColor={true}>{previewHint}</Text></MessageResponse>; 68 $[9] = previewHint; 69 $[10] = t5; 70 } else { 71 t5 = $[10]; 72 } 73 return t5; 74 } 75 } else { 76 if (style === "condensed" && !verbose) { 77 return text; 78 } 79 } 80 let t5; 81 if ($[11] !== text) { 82 t5 = <Text>{text}</Text>; 83 $[11] = text; 84 $[12] = t5; 85 } else { 86 t5 = $[12]; 87 } 88 const t6 = columns - 12; 89 let t7; 90 if ($[13] !== fileContent || $[14] !== filePath || $[15] !== firstLine || $[16] !== structuredPatch || $[17] !== t6) { 91 t7 = <StructuredDiffList hunks={structuredPatch} dim={false} width={t6} filePath={filePath} firstLine={firstLine} fileContent={fileContent} />; 92 $[13] = fileContent; 93 $[14] = filePath; 94 $[15] = firstLine; 95 $[16] = structuredPatch; 96 $[17] = t6; 97 $[18] = t7; 98 } else { 99 t7 = $[18]; 100 } 101 let t8; 102 if ($[19] !== t5 || $[20] !== t7) { 103 t8 = <MessageResponse><Box flexDirection="column">{t5}{t7}</Box></MessageResponse>; 104 $[19] = t5; 105 $[20] = t7; 106 $[21] = t8; 107 } else { 108 t8 = $[21]; 109 } 110 return t8; 111} 112function _temp4(acc_0, hunk_0) { 113 return acc_0 + count(hunk_0.lines, _temp3); 114} 115function _temp3(__0) { 116 return __0.startsWith("-"); 117} 118function _temp2(acc, hunk) { 119 return acc + count(hunk.lines, _temp); 120} 121function _temp(_) { 122 return _.startsWith("+"); 123} 124//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHJ1Y3R1cmVkUGF0Y2hIdW5rIiwiUmVhY3QiLCJ1c2VUZXJtaW5hbFNpemUiLCJCb3giLCJUZXh0IiwiY291bnQiLCJNZXNzYWdlUmVzcG9uc2UiLCJTdHJ1Y3R1cmVkRGlmZkxpc3QiLCJQcm9wcyIsImZpbGVQYXRoIiwic3RydWN0dXJlZFBhdGNoIiwiZmlyc3RMaW5lIiwiZmlsZUNvbnRlbnQiLCJzdHlsZSIsInZlcmJvc2UiLCJwcmV2aWV3SGludCIsIkZpbGVFZGl0VG9vbFVwZGF0ZWRNZXNzYWdlIiwidDAiLCIkIiwiX2MiLCJjb2x1bW5zIiwibnVtQWRkaXRpb25zIiwicmVkdWNlIiwiX3RlbXAyIiwibnVtUmVtb3ZhbHMiLCJfdGVtcDQiLCJ0MSIsInQyIiwidDMiLCJ0NCIsInRleHQiLCJ0NSIsInQ2IiwidDciLCJ0OCIsImFjY18wIiwiaHVua18wIiwiYWNjIiwiaHVuayIsImxpbmVzIiwiX3RlbXAzIiwiX18wIiwiXyIsInN0YXJ0c1dpdGgiLCJfdGVtcCJdLCJzb3VyY2VzIjpbIkZpbGVFZGl0VG9vbFVwZGF0ZWRNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0cnVjdHVyZWRQYXRjaEh1bmsgfSBmcm9tICdkaWZmJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUZXJtaW5hbFNpemUgfSBmcm9tICcuLi9ob29rcy91c2VUZXJtaW5hbFNpemUuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgeyBjb3VudCB9IGZyb20gJy4uL3V0aWxzL2FycmF5LmpzJ1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi9NZXNzYWdlUmVzcG9uc2UuanMnXG5pbXBvcnQgeyBTdHJ1Y3R1cmVkRGlmZkxpc3QgfSBmcm9tICcuL1N0cnVjdHVyZWREaWZmTGlzdC5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgZmlsZVBhdGg6IHN0cmluZ1xuICBzdHJ1Y3R1cmVkUGF0Y2g6IFN0cnVjdHVyZWRQYXRjaEh1bmtbXVxuICBmaXJzdExpbmU6IHN0cmluZyB8IG51bGxcbiAgZmlsZUNvbnRlbnQ/OiBzdHJpbmdcbiAgc3R5bGU/OiAnY29uZGVuc2VkJ1xuICB2ZXJib3NlOiBib29sZWFuXG4gIHByZXZpZXdIaW50Pzogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGaWxlRWRpdFRvb2xVcGRhdGVkTWVzc2FnZSh7XG4gIGZpbGVQYXRoLFxuICBzdHJ1Y3R1cmVkUGF0Y2gsXG4gIGZpcnN0TGluZSxcbiAgZmlsZUNvbnRlbnQsXG4gIHN0eWxlLFxuICB2ZXJib3NlLFxuICBwcmV2aWV3SGludCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgeyBjb2x1bW5zIH0gPSB1c2VUZXJtaW5hbFNpemUoKVxuICBjb25zdCBudW1BZGRpdGlvbnMgPSBzdHJ1Y3R1cmVkUGF0Y2gucmVkdWNlKFxuICAgIChhY2MsIGh1bmspID0+IGFjYyArIGNvdW50KGh1bmsubGluZXMsIF8gPT4gXy5zdGFydHNXaXRoKCcrJykpLFxuICAgIDAsXG4gIClcbiAgY29uc3QgbnVtUmVtb3ZhbHMgPSBzdHJ1Y3R1cmVkUGF0Y2gucmVkdWNlKFxuICAgIChhY2MsIGh1bmspID0+IGFjYyArIGNvdW50KGh1bmsubGluZXMsIF8gPT4gXy5zdGFydHNXaXRoKCctJykpLFxuICAgIDAsXG4gIClcblxuICBjb25zdCB0ZXh0ID0gKFxuICAgIDxUZXh0PlxuICAgICAge251bUFkZGl0aW9ucyA+IDAgPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgQWRkZWQgPFRleHQgYm9sZD57bnVtQWRkaXRpb25zfTwvVGV4dD57JyAnfVxuICAgICAgICAgIHtudW1BZGRpdGlvbnMgPiAxID8gJ2xpbmVzJyA6ICdsaW5lJ31cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtudW1BZGRpdGlvbnMgPiAwICYmIG51bVJlbW92YWxzID4gMCA/ICcsICcgOiBudWxsfVxuICAgICAge251bVJlbW92YWxzID4gMCA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICB7bnVtQWRkaXRpb25zID09PSAwID8gJ1InIDogJ3InfWVtb3ZlZCA8VGV4dCBib2xkPntudW1SZW1vdmFsc308L1RleHQ+eycgJ31cbiAgICAgICAgICB7bnVtUmVtb3ZhbHMgPiAxID8gJ2xpbmVzJyA6ICdsaW5lJ31cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1RleHQ+XG4gIClcblxuICAvLyBQbGFuIGZpbGVzOiBpbnZlcnQgY29uZGVuc2VkIGJlaGF2aW9yXG4gIC8vIC0gUmVndWxhciBtb2RlOiBqdXN0IHNob3cgdGhlIGhpbnQgKHVzZXIgY2FuIHR5cGUgL3BsYW4gdG8gc2VlIGZ1bGwgY29udGVudClcbiAgLy8gLSBDb25kZW5zZWQgbW9kZSAoc3ViYWdlbnQgdmlldyk6IHNob3cgdGhlIGRpZmZcbiAgaWYgKHByZXZpZXdIaW50KSB7XG4gICAgaWYgKHN0eWxlICE9PSAnY29uZGVuc2VkJyAmJiAhdmVyYm9zZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lc3NhZ2VSZXNwb25zZT5cbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj57cHJldmlld0hpbnR9PC9UZXh0PlxuICAgICAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgICAgIClcbiAgICB9XG4gIH0gZWxzZSBpZiAoc3R5bGUgPT09ICdjb25kZW5zZWQnICYmICF2ZXJib3NlKSB7XG4gICAgcmV0dXJuIHRleHRcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPE1lc3NhZ2VSZXNwb25zZT5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICA8VGV4dD57dGV4dH08L1RleHQ+XG4gICAgICAgIDxTdHJ1Y3R1cmVkRGlmZkxpc3RcbiAgICAgICAgICBodW5rcz17c3RydWN0dXJlZFBhdGNofVxuICAgICAgICAgIGRpbT17ZmFsc2V9XG4gICAgICAgICAgd2lkdGg9e2NvbHVtbnMgLSAxMn1cbiAgICAgICAgICBmaWxlUGF0aD17ZmlsZVBhdGh9XG4gICAgICAgICAgZmlyc3RMaW5lPXtmaXJzdExpbmV9XG4gICAgICAgICAgZmlsZUNvbnRlbnQ9e2ZpbGVDb250ZW50fVxuICAgICAgICAvPlxuICAgICAgPC9Cb3g+XG4gICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLGNBQWNBLG1CQUFtQixRQUFRLE1BQU07QUFDL0MsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxlQUFlLFFBQVEsNkJBQTZCO0FBQzdELFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLFdBQVc7QUFDckMsU0FBU0MsS0FBSyxRQUFRLG1CQUFtQjtBQUN6QyxTQUFTQyxlQUFlLFFBQVEsc0JBQXNCO0FBQ3RELFNBQVNDLGtCQUFrQixRQUFRLHlCQUF5QjtBQUU1RCxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsUUFBUSxFQUFFLE1BQU07RUFDaEJDLGVBQWUsRUFBRVYsbUJBQW1CLEVBQUU7RUFDdENXLFNBQVMsRUFBRSxNQUFNLEdBQUcsSUFBSTtFQUN4QkMsV0FBVyxDQUFDLEVBQUUsTUFBTTtFQUNwQkMsS0FBSyxDQUFDLEVBQUUsV0FBVztFQUNuQkMsT0FBTyxFQUFFLE9BQU87RUFDaEJDLFdBQVcsQ0FBQyxFQUFFLE1BQU07QUFDdEIsQ0FBQztBQUVELE9BQU8sU0FBQUMsMkJBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBb0M7SUFBQVYsUUFBQTtJQUFBQyxlQUFBO0lBQUFDLFNBQUE7SUFBQUMsV0FBQTtJQUFBQyxLQUFBO0lBQUFDLE9BQUE7SUFBQUM7RUFBQSxJQUFBRSxFQVFuQztFQUNOO0lBQUFHO0VBQUEsSUFBb0JsQixlQUFlLENBQUMsQ0FBQztFQUNyQyxNQUFBbUIsWUFBQSxHQUFxQlgsZUFBZSxDQUFBWSxNQUFPLENBQ3pDQyxNQUE4RCxFQUM5RCxDQUNGLENBQUM7RUFDRCxNQUFBQyxX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QTtFQUFBLElBQUFmLENBQUEsU0FBQU4sV0FBQSxJQUFBTSxDQUFBLFNBQUFULFFBQUEsSUFBQVMsQ0FBQSxTQUFBUCxTQUFBLElBQUFPLENBQUEsU0FBQVIsZUFBQSxJQUFBUSxDQUFBLFNBQUFjLEVBQUE7SUFIckJDLEVBQUEsSUFBQyxrQkFBa0IsQ0FDVnZCLEtBQWUsQ0FBZkEsZ0JBQWMsQ0FBQyxDQUNqQixHQUFLLENBQUwsTUFBSSxDQUFDLENBQ0gsS0FBWSxDQUFaLENBQUFzQixFQUFXLENBQUMsQ0FDVHZCLFFBQVEsQ0FBUkEsU0FBTyxDQUFDLENBQ1BFLFNBQVMsQ0FBVEEsVUFBUSxDQUFDLENBQ1BDLFdBQVcsQ0FBWEEsWUFBVSxDQUFDLEdBQ3hCO0lBQUFNLENBQUEsT0FBQU4sV0FBQTtJQUFBTSxDQUFBLE9BQUFULFFBQUE7SUFBQVMsQ0FBQSxPQUFBUCxTQUFBO0lBQUFPLENBQUEsT0FBQVIsZUFBQTtJQUFBUSxDQUFBLE9BQUFjLEVBQUE7SUFBQWQsQ0FBQSxPQUFBZSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBZixDQUFBO0VBQUE7RUFBQSxJQUFBZ0IsRUFBQTtFQUFBLElBQUFoQixDQUFBLFNBQUFhLEVBQUEsSUFBQWIsQ0FBQSxTQUFBZSxFQUFBO0lBVk5DLEVBQUEsSUFBQyxlQUFlLENBQ2QsQ0FBQyxHQUFHLENBQWUsYUFBUSxDQUFSLFFBQVEsQ0FDekIsQ0FBQUgsRUFBa0IsQ0FDbEIsQ0FBQUUsRUFPQyxDQUNILEVBVkMsR0FBRyxDQVdOLEVBWkMsZUFBZSxDQVlFO0lBQUFmLENBQUEsT0FBQWEsRUFBQTtJQUFBYixDQUFBLE9BQUFlLEVBQUE7SUFBQWYsQ0FBQSxPQUFBZ0IsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWhCLENBQUE7RUFBQTtFQUFBLE9BWmxCZ0IsRUFZa0I7QUFBQTtBQWpFZixTQUFBVCxPQUFBVSxLQUFBLEVBQUFDLE1BQUE7RUFBQSxPQWVZQyxLQUFHLEdBQUdoQyxLQUFLLENBQUNpQyxNQUFJLENBQUFDLEtBQU0sRUFBRUMsTUFBc0IsQ0FBQztBQUFBO0FBZjNELFNBQUFBLE9BQUFDLEdBQUE7RUFBQSxPQWV5Q0MsR0FBQyxDQUFBQyxVQUFXLENBQUMsR0FBRyxDQUFDO0FBQUE7QUFmMUQsU0FBQXBCLE9BQUFjLEdBQUEsRUFBQUMsSUFBQTtFQUFBLE9BV1lELEdBQUcsR0FBR2hDLEtBQUssQ0FBQ2lDLElBQUksQ0FBQUMsS0FBTSxFQUFFSyxLQUFzQixDQUFDO0FBQUE7QUFYM0QsU0FBQUEsTUFBQUYsQ0FBQTtFQUFBLE9BV3lDQSxDQUFDLENBQUFDLFVBQVcsQ0FBQyxHQUFHLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==