mirror of
http://10.0.2.1:3031/sauer/claude-code.git
synced 2026-06-30 12:26:58 +10:00
251 lines
25 KiB
TypeScript
251 lines
25 KiB
TypeScript
|
|
import { c as _c } from "react/compiler-runtime";
|
||
|
|
import React from 'react';
|
||
|
|
import type { DeepImmutable } from 'src/types/utils.js';
|
||
|
|
import { useElapsedTime } from '../../hooks/useElapsedTime.js';
|
||
|
|
import type { KeyboardEvent } from '../../ink/events/keyboard-event.js';
|
||
|
|
import { Box, Text } from '../../ink.js';
|
||
|
|
import { useKeybindings } from '../../keybindings/useKeybinding.js';
|
||
|
|
import type { DreamTaskState } from '../../tasks/DreamTask/DreamTask.js';
|
||
|
|
import { plural } from '../../utils/stringUtils.js';
|
||
|
|
import { Byline } from '../design-system/Byline.js';
|
||
|
|
import { Dialog } from '../design-system/Dialog.js';
|
||
|
|
import { KeyboardShortcutHint } from '../design-system/KeyboardShortcutHint.js';
|
||
|
|
type Props = {
|
||
|
|
task: DeepImmutable<DreamTaskState>;
|
||
|
|
onDone: () => void;
|
||
|
|
onBack?: () => void;
|
||
|
|
onKill?: () => void;
|
||
|
|
};
|
||
|
|
|
||
|
|
// How many recent turns to render. Earlier turns collapse to a count.
|
||
|
|
const VISIBLE_TURNS = 6;
|
||
|
|
export function DreamDetailDialog(t0) {
|
||
|
|
const $ = _c(70);
|
||
|
|
const {
|
||
|
|
task,
|
||
|
|
onDone,
|
||
|
|
onBack,
|
||
|
|
onKill
|
||
|
|
} = t0;
|
||
|
|
const elapsedTime = useElapsedTime(task.startTime, task.status === "running", 1000, 0);
|
||
|
|
let t1;
|
||
|
|
if ($[0] !== onDone) {
|
||
|
|
t1 = {
|
||
|
|
"confirm:yes": onDone
|
||
|
|
};
|
||
|
|
$[0] = onDone;
|
||
|
|
$[1] = t1;
|
||
|
|
} else {
|
||
|
|
t1 = $[1];
|
||
|
|
}
|
||
|
|
let t2;
|
||
|
|
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t2 = {
|
||
|
|
context: "Confirmation"
|
||
|
|
};
|
||
|
|
$[2] = t2;
|
||
|
|
} else {
|
||
|
|
t2 = $[2];
|
||
|
|
}
|
||
|
|
useKeybindings(t1, t2);
|
||
|
|
let t3;
|
||
|
|
if ($[3] !== onBack || $[4] !== onDone || $[5] !== onKill || $[6] !== task.status) {
|
||
|
|
t3 = e => {
|
||
|
|
if (e.key === " ") {
|
||
|
|
e.preventDefault();
|
||
|
|
onDone();
|
||
|
|
} else {
|
||
|
|
if (e.key === "left" && onBack) {
|
||
|
|
e.preventDefault();
|
||
|
|
onBack();
|
||
|
|
} else {
|
||
|
|
if (e.key === "x" && task.status === "running" && onKill) {
|
||
|
|
e.preventDefault();
|
||
|
|
onKill();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
$[3] = onBack;
|
||
|
|
$[4] = onDone;
|
||
|
|
$[5] = onKill;
|
||
|
|
$[6] = task.status;
|
||
|
|
$[7] = t3;
|
||
|
|
} else {
|
||
|
|
t3 = $[7];
|
||
|
|
}
|
||
|
|
const handleKeyDown = t3;
|
||
|
|
let T0;
|
||
|
|
let T1;
|
||
|
|
let T2;
|
||
|
|
let t10;
|
||
|
|
let t11;
|
||
|
|
let t12;
|
||
|
|
let t13;
|
||
|
|
let t14;
|
||
|
|
let t15;
|
||
|
|
let t16;
|
||
|
|
let t4;
|
||
|
|
let t5;
|
||
|
|
let t6;
|
||
|
|
let t7;
|
||
|
|
let t8;
|
||
|
|
let t9;
|
||
|
|
if ($[8] !== elapsedTime || $[9] !== handleKeyDown || $[10] !== onBack || $[11] !== onDone || $[12] !== onKill || $[13] !== task.filesTouched.length || $[14] !== task.sessionsReviewing || $[15] !== task.status || $[16] !== task.turns) {
|
||
|
|
const visibleTurns = task.turns.filter(_temp);
|
||
|
|
const shown = visibleTurns.slice(-VISIBLE_TURNS);
|
||
|
|
const hidden = visibleTurns.length - shown.length;
|
||
|
|
T2 = Box;
|
||
|
|
t13 = "column";
|
||
|
|
t14 = 0;
|
||
|
|
t15 = true;
|
||
|
|
t16 = handleKeyDown;
|
||
|
|
T1 = Dialog;
|
||
|
|
t8 = "Memory consolidation";
|
||
|
|
const t17 = task.sessionsReviewing;
|
||
|
|
let t18;
|
||
|
|
if ($[33] !== task.sessionsReviewing) {
|
||
|
|
t18 = plural(task.sessionsReviewing, "session");
|
||
|
|
$[33] = task.sessionsReviewing;
|
||
|
|
$[34] = t18;
|
||
|
|
} else {
|
||
|
|
t18 = $[34];
|
||
|
|
}
|
||
|
|
let t19;
|
||
|
|
if ($[35] !== task.filesTouched.length) {
|
||
|
|
t19 = task.filesTouched.length > 0 && <>{" "}· {task.filesTouched.length}{" "}{plural(task.filesTouched.length, "file")} touched</>;
|
||
|
|
$[35] = task.filesTouched.length;
|
||
|
|
$[36] = t19;
|
||
|
|
} else {
|
||
|
|
t19 = $[36];
|
||
|
|
}
|
||
|
|
if ($[37] !== elapsedTime || $[38] !== t18 || $[39] !== t19 || $[40] !== task.sessionsReviewing) {
|
||
|
|
t9 = <Text dimColor={true}>{elapsedTime} · reviewing {t17}{" "}{t18}{t19}</Text>;
|
||
|
|
$[37] = elapsedTime;
|
||
|
|
$[38] = t18;
|
||
|
|
$[39] = t19;
|
||
|
|
$[40] = task.sessionsReviewing;
|
||
|
|
$[41] = t9;
|
||
|
|
} else {
|
||
|
|
t9 = $[41];
|
||
|
|
}
|
||
|
|
t10 = onDone;
|
||
|
|
t11 = "background";
|
||
|
|
if ($[42] !== onBack || $[43] !== onKill || $[44] !== task.status) {
|
||
|
|
t12 = exitState => exitState.pending ? <Text>Press {exitState.keyName} again to exit</Text> : <Byline>{onBack && <KeyboardShortcutHint shortcut={"\u2190"} action="go back" />}<KeyboardShortcutHint shortcut="Esc/Enter/Space" action="close" />{task.status === "running" && onKill && <KeyboardShortcutHint shortcut="x" action="stop" />}</Byline>;
|
||
|
|
$[42] = onBack;
|
||
|
|
$[43] = onKill;
|
||
|
|
$[44] = task.status;
|
||
|
|
$[45] = t12;
|
||
|
|
} else {
|
||
|
|
t12 = $[45];
|
||
|
|
}
|
||
|
|
T0 = Box;
|
||
|
|
t4 = "column";
|
||
|
|
t5 = 1;
|
||
|
|
let t20;
|
||
|
|
if ($[46] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t20 = <Text bold={true}>Status:</Text>;
|
||
|
|
$[46] = t20;
|
||
|
|
} else {
|
||
|
|
t20 = $[46];
|
||
|
|
}
|
||
|
|
if ($[47] !== task.status) {
|
||
|
|
t6 = <Text>{t20}{" "}{task.status === "running" ? <Text color="background">running</Text> : task.status === "completed" ? <Text color="success">{task.status}</Text> : <Text color="error">{task.status}</Text>}</Text>;
|
||
|
|
$[47] = task.status;
|
||
|
|
$[48] = t6;
|
||
|
|
} else {
|
||
|
|
t6 = $[48];
|
||
|
|
}
|
||
|
|
t7 = shown.length === 0 ? <Text dimColor={true}>{task.status === "running" ? "Starting\u2026" : "(no text output)"}</Text> : <>{hidden > 0 && <Text dimColor={true}>({hidden} earlier {plural(hidden, "turn")})</Text>}{shown.map(_temp2)}</>;
|
||
|
|
$[8] = elapsedTime;
|
||
|
|
$[9] = handleKeyDown;
|
||
|
|
$[10] = onBack;
|
||
|
|
$[11] = onDone;
|
||
|
|
$[12] = onKill;
|
||
|
|
$[13] = task.filesTouched.length;
|
||
|
|
$[14] = task.sessionsReviewing;
|
||
|
|
$[15] = task.status;
|
||
|
|
$[16] = task.turns;
|
||
|
|
$[17] = T0;
|
||
|
|
$[18] = T1;
|
||
|
|
$[19] = T2;
|
||
|
|
$[20] = t10;
|
||
|
|
$[21] = t11;
|
||
|
|
$[22] = t12;
|
||
|
|
$[23] = t13;
|
||
|
|
$[24] = t14;
|
||
|
|
$[25] = t15;
|
||
|
|
$[26] = t16;
|
||
|
|
$[27] = t4;
|
||
|
|
$[28] = t5;
|
||
|
|
$[29] = t6;
|
||
|
|
$[30] = t7;
|
||
|
|
$[31] = t8;
|
||
|
|
$[32] = t9;
|
||
|
|
} else {
|
||
|
|
T0 = $[17];
|
||
|
|
T1 = $[18];
|
||
|
|
T2 = $[19];
|
||
|
|
t10 = $[20];
|
||
|
|
t11 = $[21];
|
||
|
|
t12 = $[22];
|
||
|
|
t13 = $[23];
|
||
|
|
t14 = $[24];
|
||
|
|
t15 = $[25];
|
||
|
|
t16 = $[26];
|
||
|
|
t4 = $[27];
|
||
|
|
t5 = $[28];
|
||
|
|
t6 = $[29];
|
||
|
|
t7 = $[30];
|
||
|
|
t8 = $[31];
|
||
|
|
t9 = $[32];
|
||
|
|
}
|
||
|
|
let t17;
|
||
|
|
if ($[49] !== T0 || $[50] !== t4 || $[51] !== t5 || $[52] !== t6 || $[53] !== t7) {
|
||
|
|
t17 = <T0 flexDirection={t4} gap={t5}>{t6}{t7}</T0>;
|
||
|
|
$[49] = T0;
|
||
|
|
$[50] = t4;
|
||
|
|
$[51] = t5;
|
||
|
|
$[52] = t6;
|
||
|
|
$[53] = t7;
|
||
|
|
$[54] = t17;
|
||
|
|
} else {
|
||
|
|
t17 = $[54];
|
||
|
|
}
|
||
|
|
let t18;
|
||
|
|
if ($[55] !== T1 || $[56] !== t10 || $[57] !== t11 || $[58] !== t12 || $[59] !== t17 || $[60] !== t8 || $[61] !== t9) {
|
||
|
|
t18 = <T1 title={t8} subtitle={t9} onCancel={t10} color={t11} inputGuide={t12}>{t17}</T1>;
|
||
|
|
$[55] = T1;
|
||
|
|
$[56] = t10;
|
||
|
|
$[57] = t11;
|
||
|
|
$[58] = t12;
|
||
|
|
$[59] = t17;
|
||
|
|
$[60] = t8;
|
||
|
|
$[61] = t9;
|
||
|
|
$[62] = t18;
|
||
|
|
} else {
|
||
|
|
t18 = $[62];
|
||
|
|
}
|
||
|
|
let t19;
|
||
|
|
if ($[63] !== T2 || $[64] !== t13 || $[65] !== t14 || $[66] !== t15 || $[67] !== t16 || $[68] !== t18) {
|
||
|
|
t19 = <T2 flexDirection={t13} tabIndex={t14} autoFocus={t15} onKeyDown={t16}>{t18}</T2>;
|
||
|
|
$[63] = T2;
|
||
|
|
$[64] = t13;
|
||
|
|
$[65] = t14;
|
||
|
|
$[66] = t15;
|
||
|
|
$[67] = t16;
|
||
|
|
$[68] = t18;
|
||
|
|
$[69] = t19;
|
||
|
|
} else {
|
||
|
|
t19 = $[69];
|
||
|
|
}
|
||
|
|
return t19;
|
||
|
|
}
|
||
|
|
function _temp2(turn, i) {
|
||
|
|
return <Box key={i} flexDirection="column"><Text wrap="wrap">{turn.text}</Text>{turn.toolUseCount > 0 && <Text dimColor={true}>{" "}({turn.toolUseCount}{" "}{plural(turn.toolUseCount, "tool")})</Text>}</Box>;
|
||
|
|
}
|
||
|
|
function _temp(t) {
|
||
|
|
return t.text !== "";
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkRlZXBJbW11dGFibGUiLCJ1c2VFbGFwc2VkVGltZSIsIktleWJvYXJkRXZlbnQiLCJCb3giLCJUZXh0IiwidXNlS2V5YmluZGluZ3MiLCJEcmVhbVRhc2tTdGF0ZSIsInBsdXJhbCIsIkJ5bGluZSIsIkRpYWxvZyIsIktleWJvYXJkU2hvcnRjdXRIaW50IiwiUHJvcHMiLCJ0YXNrIiwib25Eb25lIiwib25CYWNrIiwib25LaWxsIiwiVklTSUJMRV9UVVJOUyIsIkRyZWFtRGV0YWlsRGlhbG9nIiwidDAiLCIkIiwiX2MiLCJlbGFwc2VkVGltZSIsInN0YXJ0VGltZSIsInN0YXR1cyIsInQxIiwidDIiLCJTeW1ib2wiLCJmb3IiLCJjb250ZXh0IiwidDMiLCJlIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVLZXlEb3duIiwiVDAiLCJUMSIsIlQyIiwidDEwIiwidDExIiwidDEyIiwidDEzIiwidDE0IiwidDE1IiwidDE2IiwidDQiLCJ0NSIsInQ2IiwidDciLCJ0OCIsInQ5IiwiZmlsZXNUb3VjaGVkIiwibGVuZ3RoIiwic2Vzc2lvbnNSZXZpZXdpbmciLCJ0dXJucyIsInZpc2libGVUdXJucyIsImZpbHRlciIsIl90ZW1wIiwic2hvd24iLCJzbGljZSIsImhpZGRlbiIsInQxNyIsInQxOCIsInQxOSIsImV4aXRTdGF0ZSIsInBlbmRpbmciLCJrZXlOYW1lIiwidDIwIiwibWFwIiwiX3RlbXAyIiwidHVybiIsImkiLCJ0ZXh0IiwidG9vbFVzZUNvdW50IiwidCJdLCJzb3VyY2VzIjpbIkRyZWFtRGV0YWlsRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBJbW11dGFibGUgfSBmcm9tICdzcmMvdHlwZXMvdXRpbHMuanMnXG5pbXBvcnQgeyB1c2VFbGFwc2VkVGltZSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUVsYXBzZWRUaW1lLmpzJ1xuaW1wb3J0IHR5cGUgeyBLZXlib2FyZEV2ZW50IH0gZnJvbSAnLi4vLi4vaW5rL2V2ZW50cy9rZXlib2FyZC1ldmVudC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4va2V5YmluZGluZ3MvdXNlS2V5YmluZGluZy5qcydcbmltcG9ydCB0eXBlIHsgRHJlYW1UYXNrU3RhdGUgfSBmcm9tICcuLi8uLi90YXNrcy9EcmVhbVRhc2svRHJlYW1UYXNrLmpzJ1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5nVXRpbHMuanMnXG5pbXBvcnQgeyBCeWxpbmUgfSBmcm9tICcuLi9kZXNpZ24tc3lzdGVtL0J5bGluZS5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vRGlhbG9nLmpzJ1xuaW1wb3J0IHsgS2V5Ym9hcmRTaG9ydGN1dEhpbnQgfSBmcm9tICcuLi9kZXNpZ24tc3lzdGVtL0tleWJvYXJkU2hvcnRjdXRIaW50LmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICB0YXNrOiBEZWVwSW1tdXRhYmxlPERyZWFtVGFza1N0YXRlPlxuICBvbkRvbmU6ICgpID0+IHZvaWRcbiAgb25CYWNrPzogKCkgPT4gdm9pZFxuICBvbktpbGw/OiAoKSA9PiB2b2lkXG59XG5cbi8vIEhvdyBtYW55IHJlY2VudCB0dXJucyB0byByZW5kZXIuIEVhcmxpZXIgdHVybnMgY29sbGFwc2UgdG8gYSBjb3VudC5cbmNvbnN0IFZJU0lCTEVfVFVSTlMgPSA2XG5cbmV4cG9ydCBmdW5jdGlvbiBEcmVhbURldGFpbERpYWxvZyh7XG4gIHRhc2ssXG4gIG9uRG9uZSxcbiAgb25CYWNrLFxuICBvbktpbGwsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGVsYXBzZWRUaW1lID0gdXNlRWxhcHNlZFRpbWUoXG4gICAgdGFzay5zdGFydFRpbWUsXG4gICAgdGFzay5zdGF0dXMgPT09ICdydW5uaW5nJyxcbiAgICAxMDAwLFxuICAgIDAsXG4gIClcblxuICAvLyBEaWFsb2cgaGFuZGxlcyBjb25maXJtOm5vIChFc2MpIOKGkiBvbkNhbmNlbC4gV2lyZSBjb25maXJtOnllcyAoRW50ZXIveSkgdG9vLlxuICB1c2VLZXliaW5kaW5ncyh7ICdjb25maXJtOnllcyc6IG9uRG9uZSB9LCB7IGNvbnRleHQ6ICdDb25maXJtYXRpb24nIH0pXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnICcpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgb25Eb25lKClcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnbGVmdCcgJiYgb25CYWNrKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIG9uQmFjaygpXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ3gnICYmIHRhc2suc3RhdHVzID09PSAncnVubmluZycgJiYgb25LaWxsKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIG9uS2lsbCgpXG4gICAgfVxuICB9XG5cbiAgLy8gVHVybnMgd2l0aCB0ZXh0IHRvIHNob3cuIFRvb2wtb25seSB0dXJucyAodGV4dD0nJykgYXJlIGRyb3BwZWQgZW50aXJlbHkg4oCUXG4gIC8vIHRoZSBwZXItdHVybiB0b29sVXNlQ291bnQgYWxyZWFkeSBjYXB0dXJlcyB0aGF0IHdvcmsuXG4gIGNvbnN0IHZpc2libGVUdXJucyA9IHRhc2sudHVybnMuZmlsdGVyKHQgPT4gdC50ZXh0ICE9PSAnJylcbiAgY29uc3Qgc2hvd24gPSB2aXNpYmxlVHVybnMuc2xpY2UoLVZJU0lCTEVfVFVSTlMpXG4gIGNvbnN0IGhpZGRlbiA9IHZpc2libGVUdXJucy5sZW5ndGggLSBzaG93bi5sZW5ndGhcblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICBhdXRvRm9jdXNcbiAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICA+XG4gICAgICA8RGlhbG9nXG4gICAgICAgIHRpdGxlPVwiTWVtb3J5IGNvbnNvbGlkYXRpb25cIlxuICAgICAgICBzdWJ0aXRsZT17XG4gICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICB7ZWxhcHNlZFRpbWV9IMK3IHJldmlld2luZyB7dGFzay5zZXNzaW9uc1Jldmlld2luZ317JyAnfVxuICAgICAgICAgICAge3BsdXJhbCh0YXNrLnNlc3Npb25zUmV2aWV3aW5nLCAnc2Vzc2lvbicpfVxuICAgICAgICAgICA
|