omniharness-cli 0.1.35 → 0.1.37
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/dist/ui/diff.d.ts +20 -0
- package/dist/ui/diff.js +91 -0
- package/dist/ui/diff.js.map +1 -0
- package/dist/ui/palette.d.ts +21 -0
- package/dist/ui/palette.js +37 -0
- package/dist/ui/palette.js.map +1 -0
- package/dist/ui/terminalInterface.js +242 -35
- package/dist/ui/terminalInterface.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal unified-diff detection and segmentation for the TUI.
|
|
3
|
+
*
|
|
4
|
+
* Pure module: given tool output text, decide whether it looks like a
|
|
5
|
+
* unified diff (a file-edit trail such as `git diff` emits) and, if so,
|
|
6
|
+
* split it into styled segments so the Ink renderer can color added lines
|
|
7
|
+
* green and removed lines red. Non-diff text passes through unchanged.
|
|
8
|
+
*/
|
|
9
|
+
import type { MarkdownSegment } from './markdown.js';
|
|
10
|
+
export interface DiffLine {
|
|
11
|
+
/** '+' added, '-' removed, '@' hunk header, ' ' context, 'file' H/---x headers. */
|
|
12
|
+
kind: '+' | '-' | '@' | ' ' | 'file';
|
|
13
|
+
text: string;
|
|
14
|
+
}
|
|
15
|
+
/** Parse unified-diff text into typed lines. Empty/absent input yields []. */
|
|
16
|
+
export declare function parseDiff(text: string): DiffLine[];
|
|
17
|
+
/** True when the output should be presented as a colored diff. */
|
|
18
|
+
export declare function looksLikeDiff(text: string): boolean;
|
|
19
|
+
/** Render unified-diff text into wrapped styled segments (one array per row). */
|
|
20
|
+
export declare function diffSegments(text: string, width: number): MarkdownSegment[][];
|
package/dist/ui/diff.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal unified-diff detection and segmentation for the TUI.
|
|
3
|
+
*
|
|
4
|
+
* Pure module: given tool output text, decide whether it looks like a
|
|
5
|
+
* unified diff (a file-edit trail such as `git diff` emits) and, if so,
|
|
6
|
+
* split it into styled segments so the Ink renderer can color added lines
|
|
7
|
+
* green and removed lines red. Non-diff text passes through unchanged.
|
|
8
|
+
*/
|
|
9
|
+
/** Parse unified-diff text into typed lines. Empty/absent input yields []. */
|
|
10
|
+
export function parseDiff(text) {
|
|
11
|
+
const lines = text.split('\n');
|
|
12
|
+
const out = [];
|
|
13
|
+
let inDiff = false;
|
|
14
|
+
for (const raw of lines) {
|
|
15
|
+
if (raw.startsWith('diff --git ') || raw.startsWith('Index: ')) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (raw.startsWith('+++ ') || raw.startsWith('--- ')) {
|
|
19
|
+
inDiff = true;
|
|
20
|
+
out.push({ kind: 'file', text: raw });
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (raw.startsWith('@@')) {
|
|
24
|
+
inDiff = true;
|
|
25
|
+
out.push({ kind: '@', text: raw });
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (!inDiff)
|
|
29
|
+
continue;
|
|
30
|
+
const marker = raw[0];
|
|
31
|
+
if (marker === '+') {
|
|
32
|
+
out.push({ kind: '+', text: raw.slice(1) });
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (marker === '-') {
|
|
36
|
+
out.push({ kind: '-', text: raw.slice(1) });
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (marker === ' ') {
|
|
40
|
+
out.push({ kind: ' ', text: raw.slice(1) });
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
out.push({ kind: ' ', text: raw });
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
/** True when the output should be presented as a colored diff. */
|
|
48
|
+
export function looksLikeDiff(text) {
|
|
49
|
+
return parseDiff(text).some((line) => line.kind === '+' || line.kind === '-');
|
|
50
|
+
}
|
|
51
|
+
const COLORS = {
|
|
52
|
+
'+': 'green',
|
|
53
|
+
'-': 'red',
|
|
54
|
+
'@': 'cyan',
|
|
55
|
+
' ': undefined,
|
|
56
|
+
file: 'dim',
|
|
57
|
+
};
|
|
58
|
+
const PREFIX = {
|
|
59
|
+
'+': '+ ',
|
|
60
|
+
'-': '- ',
|
|
61
|
+
'@': '@ ',
|
|
62
|
+
' ': ' ',
|
|
63
|
+
file: '',
|
|
64
|
+
};
|
|
65
|
+
/** Render one diff line into styled segments, preserving indentation exactly. */
|
|
66
|
+
function renderLine(line, width) {
|
|
67
|
+
const color = COLORS[line.kind];
|
|
68
|
+
const styled = (text) => ({ text, ...(color ? { color } : {}) });
|
|
69
|
+
const body = line.kind === 'file' ? line.text : `${PREFIX[line.kind]}${line.text}`;
|
|
70
|
+
if (body === '')
|
|
71
|
+
return [[styled('')]];
|
|
72
|
+
// Preserve the raw line verbatim (diff indentation is meaningful); hard-split
|
|
73
|
+
// only when a single line exceeds the column width.
|
|
74
|
+
const rows = [];
|
|
75
|
+
let rest = body;
|
|
76
|
+
while (rest.length > width) {
|
|
77
|
+
rows.push([styled(rest.slice(0, width))]);
|
|
78
|
+
rest = rest.slice(width);
|
|
79
|
+
}
|
|
80
|
+
rows.push([styled(rest)]);
|
|
81
|
+
return rows;
|
|
82
|
+
}
|
|
83
|
+
/** Render unified-diff text into wrapped styled segments (one array per row). */
|
|
84
|
+
export function diffSegments(text, width) {
|
|
85
|
+
const out = [];
|
|
86
|
+
for (const line of parseDiff(text).slice(0, 2000)) {
|
|
87
|
+
out.push(...renderLine(line, width));
|
|
88
|
+
}
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/ui/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACtC,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9E,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9E,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,MAAM,GAAiD;IAC3D,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,MAAM,GAAqC;IAC/C,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,iFAAiF;AACjF,SAAS,UAAU,CAAC,IAAc,EAAE,KAAa;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACnF,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,8EAA8E;IAC9E,oDAAoD;IACpD,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic color palette for the TUI.
|
|
3
|
+
*
|
|
4
|
+
* Pure module: exposes one set of named roles (accent, muted, success, warn,
|
|
5
|
+
* error, info) as Ink color values. When the terminal advertises truecolor
|
|
6
|
+
* (COLORTERM=truecolor|24bit) the roles resolve to 24-bit hex; otherwise they
|
|
7
|
+
* fall back to the closest ANSI-16 named colors so the UI never depends on
|
|
8
|
+
* truecolor support and never renders unreadable/gray secondary text.
|
|
9
|
+
*/
|
|
10
|
+
export interface Palette {
|
|
11
|
+
accent: string;
|
|
12
|
+
muted: string;
|
|
13
|
+
success: string;
|
|
14
|
+
warn: string;
|
|
15
|
+
error: string;
|
|
16
|
+
info: string;
|
|
17
|
+
}
|
|
18
|
+
/** Whether the terminal supports 24-bit color per the COLORTERM convention. */
|
|
19
|
+
export declare function supportsTrueColor(env?: Record<string, string | undefined>): boolean;
|
|
20
|
+
/** Resolve the semantic palette for the current terminal environment. */
|
|
21
|
+
export declare function palette(env?: Record<string, string | undefined>): Palette;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic color palette for the TUI.
|
|
3
|
+
*
|
|
4
|
+
* Pure module: exposes one set of named roles (accent, muted, success, warn,
|
|
5
|
+
* error, info) as Ink color values. When the terminal advertises truecolor
|
|
6
|
+
* (COLORTERM=truecolor|24bit) the roles resolve to 24-bit hex; otherwise they
|
|
7
|
+
* fall back to the closest ANSI-16 named colors so the UI never depends on
|
|
8
|
+
* truecolor support and never renders unreadable/gray secondary text.
|
|
9
|
+
*/
|
|
10
|
+
/** Truecolor palette (24-bit hex values Ink passes to chalk.hex). */
|
|
11
|
+
const TRUE_COLORS = {
|
|
12
|
+
accent: '#7aa2f7',
|
|
13
|
+
muted: '#8b93a7',
|
|
14
|
+
success: '#9ece6a',
|
|
15
|
+
warn: '#e0af68',
|
|
16
|
+
error: '#f7768e',
|
|
17
|
+
info: '#2ac3de',
|
|
18
|
+
};
|
|
19
|
+
/** ANSI-16 fallback used when the terminal has no truecolor support. */
|
|
20
|
+
const ANSI_16 = {
|
|
21
|
+
accent: 'blue',
|
|
22
|
+
muted: 'gray',
|
|
23
|
+
success: 'green',
|
|
24
|
+
warn: 'yellow',
|
|
25
|
+
error: 'red',
|
|
26
|
+
info: 'cyan',
|
|
27
|
+
};
|
|
28
|
+
/** Whether the terminal supports 24-bit color per the COLORTERM convention. */
|
|
29
|
+
export function supportsTrueColor(env = process.env) {
|
|
30
|
+
const colorTerm = env.COLORTERM;
|
|
31
|
+
return colorTerm === 'truecolor' || colorTerm === '24bit';
|
|
32
|
+
}
|
|
33
|
+
/** Resolve the semantic palette for the current terminal environment. */
|
|
34
|
+
export function palette(env = process.env) {
|
|
35
|
+
return supportsTrueColor(env) ? { ...TRUE_COLORS } : { ...ANSI_16 };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/ui/palette.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,qEAAqE;AACrE,MAAM,WAAW,GAAY;IAC3B,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,wEAAwE;AACxE,MAAM,OAAO,GAAY;IACvB,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,MAA0C,OAAO,CAAC,GAAG;IACrF,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,OAAO,CAAC;AAC5D,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAC,MAA0C,OAAO,CAAC,GAAG;IAC3E,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;AACtE,CAAC"}
|
|
@@ -5,7 +5,35 @@ import Spinner from 'ink-spinner';
|
|
|
5
5
|
import { appendPromptHistory, loadPromptHistory } from '../promptHistory.js';
|
|
6
6
|
import { deleteAt, deleteBefore, insertAt, layoutEditor, lineEndAt, lineStartAt, moveHorizontal, moveVerticalWrapped, normalizePaste } from './editor.js';
|
|
7
7
|
import { renderMarkdown } from './markdown.js';
|
|
8
|
+
import { looksLikeDiff, diffSegments } from './diff.js';
|
|
9
|
+
import { palette } from './palette.js';
|
|
8
10
|
import { KITTY_POP, KITTY_PUSH, KITTY_QUERY, isEncodedKey, isKittyQueryResponse, parseRawKey } from './keys.js';
|
|
11
|
+
function describeTarget(name, input) {
|
|
12
|
+
if (input && typeof input === 'object') {
|
|
13
|
+
const record = input;
|
|
14
|
+
if (typeof record.path === 'string')
|
|
15
|
+
return record.path;
|
|
16
|
+
if (typeof record.command === 'string')
|
|
17
|
+
return record.command;
|
|
18
|
+
if (typeof record.query === 'string')
|
|
19
|
+
return record.query.slice(0, 48);
|
|
20
|
+
}
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
function phaseFor(tool) {
|
|
24
|
+
switch (tool) {
|
|
25
|
+
case 'read_file': return 'reading files';
|
|
26
|
+
case 'write_file': return 'editing files';
|
|
27
|
+
case 'run_command': return 'running commands';
|
|
28
|
+
case 'semantic_search': return 'searching the workspace';
|
|
29
|
+
case 'index_workspace': return 'indexing the workspace';
|
|
30
|
+
case 'git_diff': return 'checking the diff';
|
|
31
|
+
case 'update_todo': return 'updating the plan';
|
|
32
|
+
case 'start_preview': return 'starting preview';
|
|
33
|
+
case 'write_memory': return 'remembering';
|
|
34
|
+
default: return tool;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
9
37
|
/** Map a restored transcript message into a rendered line (used on startup). */
|
|
10
38
|
function lineFromMessage(message) {
|
|
11
39
|
switch (message.role) {
|
|
@@ -61,18 +89,19 @@ function labelFor(role, model, toolName, fallback) {
|
|
|
61
89
|
default: return model ?? fallback ?? 'assistant';
|
|
62
90
|
}
|
|
63
91
|
}
|
|
64
|
-
|
|
92
|
+
const PALETTE = palette();
|
|
93
|
+
function colorFor(role, p = PALETTE) {
|
|
65
94
|
switch (role) {
|
|
66
|
-
case 'user': return
|
|
67
|
-
case 'error': return
|
|
68
|
-
case 'thinking': return
|
|
69
|
-
case 'tool': return
|
|
70
|
-
default: return
|
|
95
|
+
case 'user': return p.info;
|
|
96
|
+
case 'error': return p.error;
|
|
97
|
+
case 'thinking': return p.warn;
|
|
98
|
+
case 'tool': return p.muted;
|
|
99
|
+
default: return p.success;
|
|
71
100
|
}
|
|
72
101
|
}
|
|
73
102
|
function SegmentText({ segments, role }) {
|
|
74
|
-
const base = role === 'thinking' ? '
|
|
75
|
-
return _jsx(Text, { color: base, children: segments.map((segment, index) => (_jsx(Text, { bold: segment.bold, italic: segment.italic, strikethrough: segment.strikethrough, underline: segment.underline, dimColor: segment.dim, color: segment.color, children: segment.text }, index))) });
|
|
103
|
+
const base = role === 'thinking' ? PALETTE.warn : role === 'tool' ? PALETTE.muted : role === 'assistant' ? PALETTE.success : role === 'user' ? PALETTE.info : undefined;
|
|
104
|
+
return _jsx(Text, { color: base, children: segments.map((segment, index) => (_jsx(Text, { bold: segment.bold, italic: segment.italic, strikethrough: segment.strikethrough, underline: segment.underline, dimColor: segment.dim, color: segment.color ?? base, children: segment.text }, index))) });
|
|
76
105
|
}
|
|
77
106
|
export function TerminalInterface({ engine }) {
|
|
78
107
|
const { exit } = useApp();
|
|
@@ -83,10 +112,14 @@ export function TerminalInterface({ engine }) {
|
|
|
83
112
|
const inputWidth = Math.max(16, width - 12);
|
|
84
113
|
// Replay a resumed transcript (hydrated by the engine) into the chat area.
|
|
85
114
|
const [lines, setLines] = useState(() => engine.state.messages.map(lineFromMessage));
|
|
115
|
+
const [scrollOffset, setScrollOffset] = useState(0);
|
|
116
|
+
const followTranscriptRef = useRef(true);
|
|
117
|
+
const previousRowCountRef = useRef(0);
|
|
118
|
+
const maxScrollRef = useRef(0);
|
|
119
|
+
const pageSizeRef = useRef(8);
|
|
86
120
|
const promptHistoryRef = useRef([]);
|
|
87
|
-
const [promptHistory, setPromptHistory] = useState([]);
|
|
88
121
|
const historyIdxRef = useRef(-1);
|
|
89
|
-
const syncPromptHistory = (next) => { promptHistoryRef.current = next;
|
|
122
|
+
const syncPromptHistory = (next) => { promptHistoryRef.current = next; };
|
|
90
123
|
const [busy, setBusy] = useState(false);
|
|
91
124
|
const [error, setError] = useState();
|
|
92
125
|
const [pickerOpen, setPickerOpen] = useState(false);
|
|
@@ -94,7 +127,6 @@ export function TerminalInterface({ engine }) {
|
|
|
94
127
|
const [pickerIndex, setPickerIndex] = useState(0);
|
|
95
128
|
const [pickerError, setPickerError] = useState();
|
|
96
129
|
const [mode, setMode] = useState(engine.state.mode);
|
|
97
|
-
const liveRef = useRef({ think: null, answer: null });
|
|
98
130
|
const [approval, setApproval] = useState(null);
|
|
99
131
|
const approvalResolve = useRef(null);
|
|
100
132
|
const [liveThink, setLiveThink] = useState('');
|
|
@@ -102,6 +134,13 @@ export function TerminalInterface({ engine }) {
|
|
|
102
134
|
const [kitty, setKitty] = useState(null);
|
|
103
135
|
const [taskQueue, setTaskQueue] = useState(engine.state.taskQueue);
|
|
104
136
|
const [currentTool, setCurrentTool] = useState();
|
|
137
|
+
// Tool activity rendered as collapsible cards: each completed/ongoing tool
|
|
138
|
+
// call carries its target, status, and optional summary/diff trail.
|
|
139
|
+
const [toolCards, setToolCards] = useState([]);
|
|
140
|
+
const [expandedTool, setExpandedTool] = useState();
|
|
141
|
+
// Run timing: monotonic start time plus a ticking elapsed counter while busy.
|
|
142
|
+
const runStartedAt = useRef(null);
|
|
143
|
+
const [now, setNow] = useState(() => Date.now());
|
|
105
144
|
useEffect(() => {
|
|
106
145
|
let alive = true;
|
|
107
146
|
// Seed history from disk, but only if the user hasn't already submitted a
|
|
@@ -155,11 +194,20 @@ export function TerminalInterface({ engine }) {
|
|
|
155
194
|
setLiveAnswer('');
|
|
156
195
|
break;
|
|
157
196
|
case 'tool_start':
|
|
158
|
-
|
|
197
|
+
setToolCards((current) => [...current, {
|
|
198
|
+
id: `tc-${Date.now().toString(36)}-${current.length}`, name: event.tool,
|
|
199
|
+
target: describeTarget(event.tool, event.input), status: 'running',
|
|
200
|
+
trail: typeof event.input === 'object' && event.input !== null
|
|
201
|
+
&& typeof event.input.content === 'string'
|
|
202
|
+
? String(event.input.content) : undefined,
|
|
203
|
+
}]);
|
|
159
204
|
setCurrentTool(event.tool);
|
|
160
205
|
break;
|
|
161
206
|
case 'tool_result':
|
|
162
|
-
|
|
207
|
+
setToolCards((current) => current.length === 0
|
|
208
|
+
? current
|
|
209
|
+
: current.map((card, index) => index === current.length - 1 ? { ...card, status: 'done', summary: event.summary } : card));
|
|
210
|
+
setCurrentTool(undefined);
|
|
163
211
|
break;
|
|
164
212
|
case 'todos':
|
|
165
213
|
setTaskQueue(event.todos);
|
|
@@ -183,6 +231,10 @@ export function TerminalInterface({ engine }) {
|
|
|
183
231
|
clearTimeout(kittyTimer);
|
|
184
232
|
stdin?.off('data', onKitty);
|
|
185
233
|
stdout.off('resize', onResize);
|
|
234
|
+
const pendingApproval = approvalResolve.current;
|
|
235
|
+
approvalResolve.current = null;
|
|
236
|
+
pendingApproval?.(false);
|
|
237
|
+
engine.stop();
|
|
186
238
|
unsubscribe();
|
|
187
239
|
process.off('exit', onUnload);
|
|
188
240
|
stdout.write(KITTY_POP);
|
|
@@ -236,6 +288,17 @@ export function TerminalInterface({ engine }) {
|
|
|
236
288
|
};
|
|
237
289
|
/** Whether ↑/↓ should browse prompt history instead of moving the text caret. */
|
|
238
290
|
const browsingHistory = () => historyIdxRef.current >= 0 || edit.value === '';
|
|
291
|
+
/** Scroll by rendered transcript rows; positive values move toward older output. */
|
|
292
|
+
const scrollTranscript = (delta) => {
|
|
293
|
+
if (delta > 0 && maxScrollRef.current > 0)
|
|
294
|
+
followTranscriptRef.current = false;
|
|
295
|
+
setScrollOffset((current) => {
|
|
296
|
+
const next = clamp(current + delta, 0, maxScrollRef.current);
|
|
297
|
+
if (next === 0 && delta < 0)
|
|
298
|
+
followTranscriptRef.current = true;
|
|
299
|
+
return next;
|
|
300
|
+
});
|
|
301
|
+
};
|
|
239
302
|
/** Apply a semantic key action, honoring the active overlay (approval, picker). */
|
|
240
303
|
const applyAction = (action) => {
|
|
241
304
|
if (approval && action.kind !== 'submit' && action.kind !== 'escape' && action.kind !== 'ctrlC')
|
|
@@ -265,7 +328,7 @@ export function TerminalInterface({ engine }) {
|
|
|
265
328
|
{ role: 'tool', text: '/help — show commands', toolName: 'commands' },
|
|
266
329
|
{ role: 'tool', text: '/clear — start a fresh conversation', toolName: 'commands' },
|
|
267
330
|
{ role: 'tool', text: '/attach <files> — attach files to the next message', toolName: 'commands' },
|
|
268
|
-
{ role: 'tool', text: 'keys: Ctrl+O models · Ctrl+E mode · Ctrl+C cancel · ↑/↓ prompt history', toolName: 'commands' },
|
|
331
|
+
{ role: 'tool', text: 'keys: Ctrl+O models · Ctrl+E mode · Ctrl+C cancel · PgUp/PgDn scroll · ↑/↓ prompt history', toolName: 'commands' },
|
|
269
332
|
]);
|
|
270
333
|
setEdit({ value: '', cursor: 0 });
|
|
271
334
|
historyIdxRef.current = -1;
|
|
@@ -273,6 +336,16 @@ export function TerminalInterface({ engine }) {
|
|
|
273
336
|
}
|
|
274
337
|
if (raw === '/clear') {
|
|
275
338
|
historyIdxRef.current = -1;
|
|
339
|
+
followTranscriptRef.current = true;
|
|
340
|
+
setScrollOffset(0);
|
|
341
|
+
setTaskQueue([]);
|
|
342
|
+
setError(undefined);
|
|
343
|
+
setCurrentTool(undefined);
|
|
344
|
+
setToolCards([]);
|
|
345
|
+
setExpandedTool(undefined);
|
|
346
|
+
runStartedAt.current = null;
|
|
347
|
+
setLiveThink('');
|
|
348
|
+
setLiveAnswer('');
|
|
276
349
|
syncPromptHistory([]);
|
|
277
350
|
setLines([]);
|
|
278
351
|
void engine.clearHistory().catch(() => { });
|
|
@@ -282,9 +355,16 @@ export function TerminalInterface({ engine }) {
|
|
|
282
355
|
const prompt = attachMatch ? '' : raw;
|
|
283
356
|
if (busy || (!prompt && !attachMatch))
|
|
284
357
|
return;
|
|
358
|
+
followTranscriptRef.current = true;
|
|
359
|
+
setScrollOffset(0);
|
|
285
360
|
setEdit({ value: '', cursor: 0 });
|
|
286
361
|
setBusy(true);
|
|
287
362
|
setError(undefined);
|
|
363
|
+
setToolCards([]);
|
|
364
|
+
setExpandedTool(undefined);
|
|
365
|
+
if (runStartedAt.current === null)
|
|
366
|
+
runStartedAt.current = Date.now();
|
|
367
|
+
setNow(Date.now());
|
|
288
368
|
historyIdxRef.current = -1;
|
|
289
369
|
if (prompt) {
|
|
290
370
|
syncPromptHistory([prompt, ...promptHistoryRef.current.filter((entry) => entry !== prompt)].slice(0, 200));
|
|
@@ -306,6 +386,11 @@ export function TerminalInterface({ engine }) {
|
|
|
306
386
|
}
|
|
307
387
|
finally {
|
|
308
388
|
setBusy(false);
|
|
389
|
+
setCurrentTool(undefined);
|
|
390
|
+
setToolCards((current) => current.map((card) => card.status === 'running' ? { ...card, status: 'error' } : card));
|
|
391
|
+
runStartedAt.current = null;
|
|
392
|
+
setLiveThink('');
|
|
393
|
+
setLiveAnswer('');
|
|
309
394
|
}
|
|
310
395
|
})();
|
|
311
396
|
}
|
|
@@ -430,6 +515,20 @@ export function TerminalInterface({ engine }) {
|
|
|
430
515
|
}
|
|
431
516
|
return;
|
|
432
517
|
}
|
|
518
|
+
if (key.pageUp || (key.ctrl && value.toLowerCase() === 'u')) {
|
|
519
|
+
scrollTranscript(pageSizeRef.current);
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
if (key.pageDown || (key.ctrl && value.toLowerCase() === 'd')) {
|
|
523
|
+
scrollTranscript(-pageSizeRef.current);
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
// Ctrl+T toggles the most recent tool card between collapsed and expanded.
|
|
527
|
+
if (key.ctrl && value.toLowerCase() === 't') {
|
|
528
|
+
const latest = toolCards[toolCards.length - 1];
|
|
529
|
+
setExpandedTool((current) => (latest && current === latest.id) ? undefined : (latest ? latest.id : undefined));
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
433
532
|
if (key.tab) {
|
|
434
533
|
applyAction({ kind: 'tab' });
|
|
435
534
|
return;
|
|
@@ -501,30 +600,138 @@ export function TerminalInterface({ engine }) {
|
|
|
501
600
|
if (metrics.fallback.attempts > 0)
|
|
502
601
|
hud.push(`fb ${metrics.fallback.attempts}`);
|
|
503
602
|
hud.push(`saved ${compression}`);
|
|
603
|
+
// Live statusline fields: model, mode, running phase, tokens/context, elapsed.
|
|
604
|
+
const runningTool = toolCards[toolCards.length - 1];
|
|
605
|
+
const phase = busy && currentTool ? phaseFor(currentTool) : (busy ? 'working' : 'ready');
|
|
606
|
+
const elapsedMs = busy && runStartedAt.current !== null
|
|
607
|
+
? Math.max(0, now - runStartedAt.current)
|
|
608
|
+
: 0;
|
|
609
|
+
const elapsed = busy
|
|
610
|
+
? (elapsedMs >= 60_000 ? `${Math.floor(elapsedMs / 60_000)}m${String(Math.floor((elapsedMs % 60_000) / 1000)).padStart(2, '0')}s` : `${Math.floor(elapsedMs / 1000)}s`)
|
|
611
|
+
: '';
|
|
612
|
+
const contextLabel = metrics.compression.inputTokens > 0
|
|
613
|
+
? `${(metrics.compression.inputTokens / 1000).toFixed(1)}k in`
|
|
614
|
+
: '';
|
|
504
615
|
const contentWidth = Math.max(20, width - 8);
|
|
505
|
-
const
|
|
506
|
-
const
|
|
507
|
-
const out = [];
|
|
508
|
-
for (const line of lines) {
|
|
509
|
-
const label = labelFor(line.role, line.model, line.toolName, engine.state.activeModel);
|
|
510
|
-
const markdown = line.role !== 'tool' && line.role !== 'error';
|
|
511
|
-
const wrapped = markdown
|
|
512
|
-
? renderMarkdown(line.text, contentWidth)
|
|
513
|
-
: wrap(line.text, contentWidth).map((text) => [{ text }]);
|
|
514
|
-
wrapped.forEach((segments, index) => out.push({ role: line.role, segments, label, first: index === 0 }));
|
|
515
|
-
// A dim one-line savings note right under the assistant's answer.
|
|
516
|
-
if (line.saved)
|
|
517
|
-
out.push({ role: 'assistant', segments: [{ text: line.saved }], label: '', first: false, saved: line.saved });
|
|
518
|
-
}
|
|
519
|
-
return out.slice(-messageHeight);
|
|
520
|
-
}, [lines, contentWidth, messageHeight]);
|
|
616
|
+
const terminalRows = stdout.rows ?? 24;
|
|
617
|
+
const editorLayout = useMemo(() => layoutEditor(edit.value, edit.cursor, inputWidth), [edit.value, edit.cursor, inputWidth]);
|
|
521
618
|
const liveThinkLines = useMemo(() => renderMarkdown(liveThink, contentWidth), [liveThink, contentWidth]);
|
|
522
619
|
const liveAnswerLines = useMemo(() => renderMarkdown(liveAnswer, contentWidth), [liveAnswer, contentWidth]);
|
|
523
|
-
|
|
524
|
-
|
|
620
|
+
const liveRows = useMemo(() => {
|
|
621
|
+
const rows = [];
|
|
622
|
+
if (liveThink !== '') {
|
|
623
|
+
rows.push({ key: 'live-think-label', kind: 'label', role: 'thinking' });
|
|
624
|
+
liveThinkLines.forEach((segments, index) => rows.push({ key: `live-think-${index}`, kind: 'content', role: 'thinking', segments }));
|
|
625
|
+
}
|
|
626
|
+
if (liveAnswer !== '') {
|
|
627
|
+
rows.push({ key: 'live-answer-label', kind: 'label', role: 'assistant' });
|
|
628
|
+
liveAnswerLines.forEach((segments, index) => rows.push({ key: `live-answer-${index}`, kind: 'content', role: 'assistant', segments }));
|
|
629
|
+
}
|
|
630
|
+
return rows;
|
|
631
|
+
}, [liveThink, liveAnswer, liveThinkLines, liveAnswerLines]);
|
|
632
|
+
// Cache markdown/wrapping per Line object. Streaming updates create new live
|
|
633
|
+
// text, but completed historical lines retain their rendered rows.
|
|
634
|
+
const rowCacheRef = useRef(null);
|
|
635
|
+
const allRows = useMemo(() => {
|
|
636
|
+
const fallback = engine.state.activeModel;
|
|
637
|
+
let cache = rowCacheRef.current;
|
|
638
|
+
if (cache === null || cache.width !== contentWidth || cache.fallback !== fallback) {
|
|
639
|
+
cache = { width: contentWidth, fallback, rows: new WeakMap() };
|
|
640
|
+
rowCacheRef.current = cache;
|
|
641
|
+
}
|
|
642
|
+
const out = [];
|
|
643
|
+
lines.forEach((line, lineIndex) => {
|
|
644
|
+
let rendered = cache.rows.get(line);
|
|
645
|
+
if (rendered === undefined) {
|
|
646
|
+
const label = labelFor(line.role, line.model, line.toolName, fallback);
|
|
647
|
+
const markdown = line.role !== 'tool' && line.role !== 'error';
|
|
648
|
+
const wrapped = markdown
|
|
649
|
+
? renderMarkdown(line.text, contentWidth)
|
|
650
|
+
: wrap(line.text, contentWidth).map((text) => [{ text }]);
|
|
651
|
+
const next = [];
|
|
652
|
+
wrapped.forEach((segments, rowIndex) => next.push({ key: `message-${lineIndex}-${rowIndex}`, role: line.role, segments, label, first: rowIndex === 0 }));
|
|
653
|
+
if (line.saved)
|
|
654
|
+
next.push({ key: `message-${lineIndex}-saved`, role: 'assistant', segments: [{ text: line.saved }], label: '', first: false, saved: line.saved });
|
|
655
|
+
rendered = next;
|
|
656
|
+
cache.rows.set(line, rendered);
|
|
657
|
+
}
|
|
658
|
+
out.push(...rendered);
|
|
659
|
+
});
|
|
660
|
+
return out;
|
|
661
|
+
}, [lines, contentWidth, engine.state.activeModel]);
|
|
662
|
+
const planRows = taskQueue.length > 0 ? 6 + Math.min(6, taskQueue.length) : 0;
|
|
663
|
+
const pickerGroups = new Set(pickerItems.map((item) => item.group)).size;
|
|
664
|
+
const pickerRows = pickerOpen ? 6 + pickerItems.length + pickerGroups + (pickerError || pickerItems.length === 0 ? 1 : 0) : 0;
|
|
665
|
+
const approvalRows = approval ? 8 : 0;
|
|
666
|
+
const inputRows = 3 + editorLayout.lines.length;
|
|
667
|
+
const footerRows = 3;
|
|
668
|
+
const chromeRows = 3 + footerRows + inputRows + (kitty !== null ? 1 : 0) + planRows + pickerRows + approvalRows;
|
|
669
|
+
const messageHeight = Math.max(3, terminalRows - chromeRows);
|
|
670
|
+
const toolRows = toolCards.length > 0 ? toolCards.length : 0; // one collapsed card per tool call
|
|
671
|
+
const statusRows = (engine.state.preview ? 1 : 0) + (busy ? 1 : 0) + toolRows;
|
|
672
|
+
const storedHeight = Math.max(0, messageHeight - Math.min(messageHeight, liveRows.length + statusRows));
|
|
673
|
+
const liveHeight = Math.max(0, messageHeight - storedHeight - statusRows);
|
|
674
|
+
const visibleLiveRows = liveHeight > 0 ? liveRows.slice(-liveHeight) : [];
|
|
675
|
+
const maxScroll = Math.max(0, allRows.length - storedHeight);
|
|
676
|
+
maxScrollRef.current = maxScroll;
|
|
677
|
+
pageSizeRef.current = Math.max(1, storedHeight - 2);
|
|
678
|
+
const boundedScroll = clamp(scrollOffset, 0, maxScroll);
|
|
679
|
+
const endRow = allRows.length - boundedScroll;
|
|
680
|
+
const startRow = Math.max(0, endRow - storedHeight);
|
|
681
|
+
const visibleRows = allRows.slice(startRow, endRow);
|
|
682
|
+
const hiddenAbove = startRow;
|
|
683
|
+
const hiddenBelow = boundedScroll;
|
|
684
|
+
const scrollStatus = allRows.length === 0
|
|
685
|
+
? 'transcript empty'
|
|
686
|
+
: storedHeight === 0
|
|
687
|
+
? `live output · ${allRows.length} transcript rows`
|
|
688
|
+
: hiddenBelow === 0
|
|
689
|
+
? `showing rows ${startRow + 1}-${endRow} of ${allRows.length} · following latest`
|
|
690
|
+
: `showing rows ${startRow + 1}-${endRow} of ${allRows.length} · ${hiddenAbove} older · ${hiddenBelow} newer`;
|
|
691
|
+
useEffect(() => {
|
|
692
|
+
const previous = previousRowCountRef.current;
|
|
693
|
+
const added = allRows.length - previous;
|
|
694
|
+
previousRowCountRef.current = allRows.length;
|
|
695
|
+
if (previous === 0 || added <= 0)
|
|
696
|
+
return;
|
|
697
|
+
if (followTranscriptRef.current) {
|
|
698
|
+
setScrollOffset(0);
|
|
699
|
+
}
|
|
700
|
+
else {
|
|
701
|
+
setScrollOffset((current) => clamp(current + added, 0, maxScrollRef.current));
|
|
702
|
+
}
|
|
703
|
+
}, [allRows.length]);
|
|
704
|
+
useEffect(() => {
|
|
705
|
+
setScrollOffset((current) => clamp(current, 0, maxScroll));
|
|
706
|
+
}, [maxScroll]);
|
|
707
|
+
// Tick a clock while a run is in flight so the statusline can show elapsed time
|
|
708
|
+
// without re-rendering on every event. runStartedAt is set when a run begins.
|
|
709
|
+
useEffect(() => {
|
|
710
|
+
if (!busy)
|
|
711
|
+
return;
|
|
712
|
+
const id = setInterval(() => setNow(Date.now()), 250);
|
|
713
|
+
return () => clearInterval(id);
|
|
714
|
+
}, [busy]);
|
|
715
|
+
return _jsxs(Box, { flexDirection: "column", width: width, height: terminalRows, paddingX: 2, overflow: "hidden", children: [_jsxs(Box, { justifyContent: "space-between", paddingY: 1, children: [_jsxs(Text, { bold: true, color: "cyan", children: ["OMNIHARNESS ", _jsxs(Text, { dimColor: true, children: ["\u00B7 ", mode, " mode"] })] }), _jsx(Text, { dimColor: true, children: "OMNIROUTE :20128" })] }), _jsxs(Box, { flexDirection: "column", height: messageHeight, overflow: "hidden", children: [lines.length === 0 && _jsxs(Box, { flexDirection: "column", marginTop: 2, children: [_jsx(Text, { color: "cyan", bold: true, children: "Ready when you are." }), _jsxs(Text, { dimColor: true, children: ["Describe the work. OmniHarness routes it through your OmniRoute account. Ctrl+", modeKey, " cycles plan \u00B7 build \u00B7 research \u00B7 crazy."] })] }), visibleRows.map((row, index) => row.saved
|
|
716
|
+
? _jsx(Text, { dimColor: true, children: row.saved }, row.key)
|
|
525
717
|
: row.first
|
|
526
|
-
? _jsxs(Box, { flexDirection: "column", marginTop: index === 0 ? 0 : 1, children: [_jsx(Text, { color: colorFor(row.role), bold: true, children: row.label }), _jsx(SegmentText, { segments: row.segments, role: row.role })] },
|
|
527
|
-
: _jsx(SegmentText, { segments: row.segments, role: row.role },
|
|
718
|
+
? _jsxs(Box, { flexDirection: "column", marginTop: index === 0 ? 0 : 1, children: [_jsx(Text, { color: colorFor(row.role), bold: true, children: row.label }), _jsx(SegmentText, { segments: row.segments, role: row.role })] }, row.key)
|
|
719
|
+
: _jsx(SegmentText, { segments: row.segments, role: row.role }, row.key)), visibleLiveRows.map((row) => row.kind === 'label'
|
|
720
|
+
? _jsx(Text, { color: colorFor(row.role), bold: true, children: row.role === 'thinking' ? 'think' : engine.state.activeModel }, row.key)
|
|
721
|
+
: _jsx(SegmentText, { segments: row.segments, role: row.role }, row.key)), toolCards.slice(-6).map((card) => {
|
|
722
|
+
const expanded = expandedTool === card.id;
|
|
723
|
+
const status = card.status === 'running' ? _jsx(Text, { color: PALETTE.warn, children: "\u2022 running" }) : card.status === 'error' ? _jsx(Text, { color: PALETTE.error, children: "\u2715 error" }) : _jsx(Text, { color: PALETTE.success, children: "\u2713 done" });
|
|
724
|
+
const target = card.target ? ` · ${clip(card.target, Math.max(10, contentWidth - 40))}` : '';
|
|
725
|
+
const badge = expanded ? '▾' : '▸';
|
|
726
|
+
return _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: [badge, " ", card.name, target, " \u00B7 ", status, expanded ? ' · Ctrl+T to collapse' : ''] }), expanded && (card.trail
|
|
727
|
+
? looksLikeDiff(card.trail)
|
|
728
|
+
? diffSegments(card.trail, contentWidth).slice(0, 12).map((segments, index) => _jsx(SegmentText, { segments: segments, role: "tool" }, index))
|
|
729
|
+
// A file-edit trail is the new content; show it as added (green) lines.
|
|
730
|
+
: card.trail.split('\n').slice(0, 12).map((line, index) => _jsx(Text, { color: PALETTE.success, children: line }, index))
|
|
731
|
+
: card.summary
|
|
732
|
+
? _jsx(Text, { dimColor: true, children: clip(card.summary, contentWidth) })
|
|
733
|
+
: _jsx(Text, { dimColor: true, children: "(no output)" }))] }, card.id);
|
|
734
|
+
}), engine.state.preview && _jsxs(Text, { color: "green", dimColor: true, children: ["preview live \u00B7 ", engine.state.preview.url] }), busy && _jsxs(Text, { color: "cyan", children: [_jsx(Spinner, { type: "dots" }), " working in ", mode, " mode on ", engine.state.activeModel, currentTool ? ` · now ${currentTool}` : ''] })] }), taskQueue.length > 0 && _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1, marginTop: 1, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { bold: true, color: "cyan", children: "plan" }), _jsxs(Text, { dimColor: true, children: [taskQueue.filter((item) => item.status === 'done').length, "/", taskQueue.length, " done"] })] }), taskQueue.slice(-6).map((item) => {
|
|
528
735
|
const marker = item.status === 'done' ? '✓' : item.status === 'active' ? '▸' : '○';
|
|
529
736
|
const color = item.status === 'done' ? 'green' : item.status === 'active' ? 'cyan' : undefined;
|
|
530
737
|
return _jsxs(Text, { color: color, dimColor: item.status === 'done', children: [marker, " ", clip(item.title, contentWidth - 4)] }, item.id);
|
|
@@ -535,6 +742,6 @@ export function TerminalInterface({ engine }) {
|
|
|
535
742
|
return _jsxs(Box, { flexDirection: "column", children: [header, _jsxs(Text, { color: index === pickerIndex ? 'cyan' : undefined, children: [index === pickerIndex ? '› ' : ' ', item.id, item.strategy ? _jsxs(Text, { dimColor: true, children: [" \u00B7 ", item.strategy] }) : null, item.id === engine.state.activeModel ? ' ✓' : ''] })] }, item.id);
|
|
536
743
|
})] }), approval && _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "yellow", paddingX: 2, paddingY: 1, marginTop: 1, children: [_jsxs(Text, { bold: true, color: "yellow", children: ["Approve ", approval.tool, "?"] }), _jsxs(Text, { dimColor: true, children: ["args: ", clip(typeof approval.input === 'string' ? approval.input : JSON.stringify(approval.input), contentWidth)] }), _jsx(Text, { dimColor: true, children: "y approve \u00B7 n deny" })] }), _jsx(Box, { borderStyle: "round", borderColor: error ? 'red' : 'cyan', paddingX: 1, marginTop: 1, flexDirection: "column", children: edit.value === ''
|
|
537
744
|
? _jsxs(Text, { color: "cyan", children: ["\u203A ", _jsx(Text, { dimColor: true, children: "type a task and press enter" })] })
|
|
538
|
-
:
|
|
745
|
+
: editorLayout.lines.map((text, index) => _jsxs(Text, { color: "cyan", children: [index === 0 ? '› ' : ' ', text] }, index)) }), kitty !== null && _jsx(Text, { dimColor: true, children: kitty ? 'kitty protocol active — Shift+Enter makes a new line' : 'this terminal can\'t distinguish Shift+Enter from Enter — use Ctrl+J for a new line' }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { color: busy ? PALETTE.info : PALETTE.muted, children: [busy && _jsx(Spinner, { type: "dots" }), phase, elapsed ? ` · ${elapsed}` : ''] }), _jsx(Text, { color: PALETTE.muted, children: [engine.state.activeModel, mode, contextLabel, scrollStatus].filter(Boolean).join(' · ') })] }), _jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { dimColor: true, children: ["Enter send \u00B7 Shift+Enter/Ctrl+J new line \u00B7 Ctrl+O models \u00B7 Ctrl+", modeKey, " mode \u00B7 Ctrl+C cancel/quit \u00B7 /help \u00B7 Ctrl+T tool"] }), hud.length > 0 && _jsx(Text, { dimColor: true, children: hud.join(' · ') })] })] })] });
|
|
539
746
|
}
|
|
540
747
|
//# sourceMappingURL=terminalInterface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalInterface.js","sourceRoot":"","sources":["../../src/ui/terminalInterface.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminalInterface.js","sourceRoot":"","sources":["../../src/ui/terminalInterface.tsx"],"names":[],"mappings":"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"}
|