openhorse 0.2.21 → 0.2.22
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/cli.js +25 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +189 -49
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/parser.d.ts.map +1 -1
- package/dist/commands/parser.js +8 -3
- package/dist/commands/parser.js.map +1 -1
- package/dist/commands/types.d.ts +2 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/core/cost-tracker.d.ts +45 -5
- package/dist/core/cost-tracker.d.ts.map +1 -1
- package/dist/core/cost-tracker.js +78 -13
- package/dist/core/cost-tracker.js.map +1 -1
- package/dist/framework/index.d.ts +1 -1
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/query.d.ts +25 -0
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +196 -49
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/store.d.ts +6 -1
- package/dist/framework/store.d.ts.map +1 -1
- package/dist/framework/store.js +10 -1
- package/dist/framework/store.js.map +1 -1
- package/dist/harness/ledger.d.ts.map +1 -1
- package/dist/harness/ledger.js +6 -2
- package/dist/harness/ledger.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.js +0 -2
- package/dist/ink-ui/components/StatusLine.js.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.js +12 -5
- package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +11 -1
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +229 -86
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/rich-text/ansi-parser.d.ts +1 -1
- package/dist/runtime/rich-text/ansi-parser.d.ts.map +1 -1
- package/dist/runtime/rich-text/ansi-parser.js +93 -55
- package/dist/runtime/rich-text/ansi-parser.js.map +1 -1
- package/dist/runtime/rich-text/layout.d.ts +2 -11
- package/dist/runtime/rich-text/layout.d.ts.map +1 -1
- package/dist/runtime/rich-text/layout.js +280 -245
- package/dist/runtime/rich-text/layout.js.map +1 -1
- package/dist/runtime/rich-text/markdown-parser.js +31 -24
- package/dist/runtime/rich-text/markdown-parser.js.map +1 -1
- package/dist/runtime/rich-text/types.d.ts +1 -1
- package/dist/runtime/rich-text/types.d.ts.map +1 -1
- package/dist/runtime/subagents/production.d.ts.map +1 -1
- package/dist/runtime/subagents/production.js +28 -3
- package/dist/runtime/subagents/production.js.map +1 -1
- package/dist/runtime/subagents/result-parser.d.ts.map +1 -1
- package/dist/runtime/subagents/result-parser.js +54 -40
- package/dist/runtime/subagents/result-parser.js.map +1 -1
- package/dist/runtime/subagents/types.d.ts +2 -0
- package/dist/runtime/subagents/types.d.ts.map +1 -1
- package/dist/runtime/subagents/types.js +5 -1
- package/dist/runtime/subagents/types.js.map +1 -1
- package/dist/runtime/ui-events.d.ts +13 -0
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/runtime/ui-view-model.d.ts +9 -0
- package/dist/runtime/ui-view-model.d.ts.map +1 -1
- package/dist/runtime/ui-view-model.js +59 -37
- package/dist/runtime/ui-view-model.js.map +1 -1
- package/dist/services/compact/auto-compact.d.ts +15 -2
- package/dist/services/compact/auto-compact.d.ts.map +1 -1
- package/dist/services/compact/auto-compact.js +56 -24
- package/dist/services/compact/auto-compact.js.map +1 -1
- package/dist/services/compact/compact.d.ts +2 -0
- package/dist/services/compact/compact.d.ts.map +1 -1
- package/dist/services/compact/compact.js +22 -5
- package/dist/services/compact/compact.js.map +1 -1
- package/dist/services/compact/coordinator.d.ts +26 -0
- package/dist/services/compact/coordinator.d.ts.map +1 -0
- package/dist/services/compact/coordinator.js +44 -0
- package/dist/services/compact/coordinator.js.map +1 -0
- package/dist/services/compact/index.d.ts +1 -0
- package/dist/services/compact/index.d.ts.map +1 -1
- package/dist/services/compact/index.js +3 -1
- package/dist/services/compact/index.js.map +1 -1
- package/dist/services/compact/summary-generator.d.ts +6 -2
- package/dist/services/compact/summary-generator.d.ts.map +1 -1
- package/dist/services/compact/summary-generator.js +73 -31
- package/dist/services/compact/summary-generator.js.map +1 -1
- package/dist/services/config-dir.d.ts +11 -1
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +19 -2
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts +4 -2
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +40 -0
- package/dist/services/config.js.map +1 -1
- package/dist/services/doctor.d.ts +2 -0
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +8 -1
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/global-config.d.ts +10 -0
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/llm.d.ts +21 -4
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +66 -8
- package/dist/services/llm.js.map +1 -1
- package/dist/services/model-context.d.ts +36 -0
- package/dist/services/model-context.d.ts.map +1 -1
- package/dist/services/model-context.js +238 -32
- package/dist/services/model-context.js.map +1 -1
- package/dist/services/redaction.js +1 -1
- package/dist/services/redaction.js.map +1 -1
- package/dist/services/session-storage.d.ts +39 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +121 -27
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/usage-state.d.ts +55 -5
- package/dist/services/usage-state.d.ts.map +1 -1
- package/dist/services/usage-state.js +185 -59
- package/dist/services/usage-state.js.map +1 -1
- package/dist/services/verification-profile.d.ts.map +1 -1
- package/dist/services/verification-profile.js +3 -2
- package/dist/services/verification-profile.js.map +1 -1
- package/dist/services/workspace-diff.d.ts.map +1 -1
- package/dist/services/workspace-diff.js +34 -3
- package/dist/services/workspace-diff.js.map +1 -1
- package/dist/services/yaml-config.js +1 -1
- package/dist/skills/runtime.d.ts +9 -5
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +157 -12
- package/dist/skills/runtime.js.map +1 -1
- package/dist/terminal-ui/launch.d.ts +2 -0
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +65 -21
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/terminal-ui/raw-editor.d.ts +9 -0
- package/dist/terminal-ui/raw-editor.d.ts.map +1 -1
- package/dist/terminal-ui/raw-editor.js +207 -30
- package/dist/terminal-ui/raw-editor.js.map +1 -1
- package/dist/tools/bash_security.d.ts.map +1 -1
- package/dist/tools/bash_security.js +14 -5
- package/dist/tools/bash_security.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +48 -20
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/plan.d.ts.map +1 -1
- package/dist/tools/plan.js +7 -0
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/web.d.ts +10 -0
- package/dist/tools/web.d.ts.map +1 -1
- package/dist/tools/web.js +81 -1
- package/dist/tools/web.js.map +1 -1
- package/dist/tui-core/input-parser.d.ts +1 -1
- package/dist/tui-core/input-parser.d.ts.map +1 -1
- package/dist/tui-core/input-parser.js +20 -1
- package/dist/tui-core/input-parser.js.map +1 -1
- package/dist/tui-core/style.d.ts +16 -0
- package/dist/tui-core/style.d.ts.map +1 -1
- package/dist/tui-core/style.js +22 -1
- package/dist/tui-core/style.js.map +1 -1
- package/dist/tui-ui/inline-surface.d.ts +62 -11
- package/dist/tui-ui/inline-surface.d.ts.map +1 -1
- package/dist/tui-ui/inline-surface.js +343 -92
- package/dist/tui-ui/inline-surface.js.map +1 -1
- package/dist/tui-ui/launch.d.ts +1 -0
- package/dist/tui-ui/launch.d.ts.map +1 -1
- package/dist/tui-ui/launch.js +185 -41
- package/dist/tui-ui/launch.js.map +1 -1
- package/dist/tui-ui/layout.d.ts +51 -2
- package/dist/tui-ui/layout.d.ts.map +1 -1
- package/dist/tui-ui/layout.js +226 -76
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/runner.d.ts +69 -8
- package/dist/tui-ui/runner.d.ts.map +1 -1
- package/dist/tui-ui/runner.js +304 -41
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/tui-ui/state.d.ts +5 -4
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +65 -19
- package/dist/tui-ui/state.js.map +1 -1
- package/dist/tui-ui/theme.d.ts +13 -0
- package/dist/tui-ui/theme.d.ts.map +1 -0
- package/dist/tui-ui/theme.js +20 -0
- package/dist/tui-ui/theme.js.map +1 -0
- package/dist/tui-ui/transcript-cache.d.ts +5 -3
- package/dist/tui-ui/transcript-cache.d.ts.map +1 -1
- package/dist/tui-ui/transcript-cache.js +16 -9
- package/dist/tui-ui/transcript-cache.js.map +1 -1
- package/dist/tui-ui/transcript-layout.d.ts +21 -0
- package/dist/tui-ui/transcript-layout.d.ts.map +1 -0
- package/dist/tui-ui/transcript-layout.js +398 -0
- package/dist/tui-ui/transcript-layout.js.map +1 -0
- package/dist/ui/status-bar.d.ts +1 -1
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +2 -15
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/ui-v2/components/shell.d.ts.map +1 -1
- package/dist/ui-v2/components/shell.js +0 -8
- package/dist/ui-v2/components/shell.js.map +1 -1
- package/package.json +1 -1
package/dist/tui-ui/layout.js
CHANGED
|
@@ -3,42 +3,157 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.measureTuiLiveFrameHeight = measureTuiLiveFrameHeight;
|
|
6
7
|
exports.renderTuiUiFrame = renderTuiUiFrame;
|
|
8
|
+
exports.renderTuiLiveFrame = renderTuiLiveFrame;
|
|
7
9
|
const string_width_1 = __importDefault(require("string-width"));
|
|
8
10
|
const frame_1 = require("../tui-core/frame");
|
|
9
11
|
const ui_view_model_1 = require("../runtime/ui-view-model");
|
|
10
12
|
const format_1 = require("../services/format");
|
|
11
13
|
const state_1 = require("./state");
|
|
14
|
+
const transcript_layout_1 = require("./transcript-layout");
|
|
12
15
|
const MIN_WIDTH = 24;
|
|
13
16
|
const MIN_HEIGHT = 8;
|
|
14
|
-
const
|
|
17
|
+
const PROMPT_BORDER_ROWS = 2;
|
|
18
|
+
const MAX_TIMELINE_ROWS = 6;
|
|
19
|
+
const STATUS_ROWS = 1;
|
|
20
|
+
/**
|
|
21
|
+
* Compute a dynamic layout budget for the given terminal height and prompt.
|
|
22
|
+
*
|
|
23
|
+
* The prompt box grows with the number of prompt lines (multi-line prompts get
|
|
24
|
+
* a taller box); the timeline strip appears only when there is activity to show
|
|
25
|
+
* (tools running / subtasks). Remaining rows go to the transcript, which is the
|
|
26
|
+
* scrollable history region. For a single-line prompt with no activity this
|
|
27
|
+
* collapses to the original fixed layout (prompt = 3 rows at the bottom).
|
|
28
|
+
*/
|
|
29
|
+
function computeBudget(height, promptValue, timelineCount) {
|
|
30
|
+
const totalPromptLines = Math.max(1, promptValue.split('\n').length);
|
|
31
|
+
const maxPromptLines = Math.max(1, height - PROMPT_BORDER_ROWS - STATUS_ROWS);
|
|
32
|
+
const promptLineCount = Math.min(totalPromptLines, maxPromptLines);
|
|
33
|
+
const promptRows = PROMPT_BORDER_ROWS + promptLineCount;
|
|
34
|
+
const maxTimelineRows = Math.max(0, height - promptRows - STATUS_ROWS);
|
|
35
|
+
const timelineRows = timelineCount > 0
|
|
36
|
+
? Math.min(MAX_TIMELINE_ROWS, timelineCount, maxTimelineRows)
|
|
37
|
+
: 0;
|
|
38
|
+
const transcriptRows = Math.max(0, height - promptRows - STATUS_ROWS - timelineRows);
|
|
39
|
+
return { promptLineCount, promptRows, timelineRows, transcriptRows };
|
|
40
|
+
}
|
|
41
|
+
function countTimelineEntries(state) {
|
|
42
|
+
return activeSubtaskTimelineEntries(state).length + activeToolStarts(state).length;
|
|
43
|
+
}
|
|
44
|
+
function activeToolStarts(state) {
|
|
45
|
+
const finishedCallIds = new Set(state.runtimeToolEvents
|
|
46
|
+
.filter(event => event.type === 'finished')
|
|
47
|
+
.map(event => event.callId));
|
|
48
|
+
return state.runtimeToolEvents.filter(event => event.type === 'started' && !finishedCallIds.has(event.callId));
|
|
49
|
+
}
|
|
50
|
+
function activeSubtaskTimelineEntries(state) {
|
|
51
|
+
return state.subtaskTimeline.filter(entry => entry.state === 'queued' || entry.state === 'running');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Measure the cursor-owned live block. Idle TUI state stays compact like an
|
|
55
|
+
* ordinary shell prompt; streaming transcript and overlays grow the block only
|
|
56
|
+
* as needed, up to the surface's viewport-derived limit.
|
|
57
|
+
*/
|
|
58
|
+
function measureTuiLiveFrameHeight(state, width, maxHeight, options = {}) {
|
|
59
|
+
const safeWidth = Math.max(MIN_WIDTH, Math.floor(width));
|
|
60
|
+
const transcriptWidth = resolveTranscriptWidth(safeWidth, options.transcriptWidth);
|
|
61
|
+
const safeMaxHeight = Math.max(MIN_HEIGHT, Math.floor(maxHeight));
|
|
62
|
+
if (state.overlay)
|
|
63
|
+
return safeMaxHeight;
|
|
64
|
+
const promptLines = Math.min(Math.max(1, state.prompt.value.split('\n').length), Math.max(1, safeMaxHeight - PROMPT_BORDER_ROWS - STATUS_ROWS));
|
|
65
|
+
const promptRows = PROMPT_BORDER_ROWS + promptLines;
|
|
66
|
+
const timelineRows = Math.min(MAX_TIMELINE_ROWS, countTimelineEntries(state));
|
|
67
|
+
const fixedRows = promptRows + STATUS_ROWS + timelineRows;
|
|
68
|
+
const transcriptRows = (0, state_1.liveTuiTranscriptRecords)(state)
|
|
69
|
+
.flatMap(entry => layoutRecord(entry, transcriptWidth, options))
|
|
70
|
+
.length;
|
|
71
|
+
return Math.min(safeMaxHeight, Math.max(MIN_HEIGHT, fixedRows + transcriptRows));
|
|
72
|
+
}
|
|
15
73
|
function renderTuiUiFrame(state, options) {
|
|
16
74
|
const width = Math.max(MIN_WIDTH, Math.floor(options.width));
|
|
17
75
|
const height = Math.max(MIN_HEIGHT, Math.floor(options.height));
|
|
18
76
|
const frame = (0, frame_1.createTuiFrame)(width, height);
|
|
19
|
-
const
|
|
77
|
+
const budget = computeBudget(height, state.prompt.value, countTimelineEntries(state));
|
|
78
|
+
// Honour an explicit cap on the transcript region (used by a test to pin a
|
|
79
|
+
// small tail); otherwise the whole transcript region is used.
|
|
80
|
+
const transcriptRows = Math.max(0, Math.min(options.maxTranscriptRows ?? budget.transcriptRows, budget.transcriptRows));
|
|
81
|
+
const promptTop = height - budget.promptRows;
|
|
82
|
+
const statusRow = promptTop - 1;
|
|
83
|
+
const timelineTop = statusRow - budget.timelineRows;
|
|
84
|
+
renderTranscript(frame, state, 0, transcriptRows, options);
|
|
85
|
+
if (budget.timelineRows > 0)
|
|
86
|
+
renderTimeline(frame, state, timelineTop, budget.timelineRows);
|
|
87
|
+
renderStatus(frame, state, statusRow);
|
|
88
|
+
renderPrompt(frame, state, promptTop, width, budget.promptLineCount);
|
|
89
|
+
// Overlay covers the region above status (transcript + timeline).
|
|
90
|
+
renderOverlay(frame, state, statusRow);
|
|
91
|
+
return frame;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Render the live-region frame for InlineTerminalSurface.
|
|
95
|
+
*
|
|
96
|
+
* This frame contains ONLY the ephemeral content that sits at the bottom of
|
|
97
|
+
* the terminal: live (uncommitted) transcript entries, timeline (if any),
|
|
98
|
+
* overlay (if active), status bar, and prompt. Committed transcript entries are
|
|
99
|
+
* written to scrollback by surface.commit() and are NOT included in this frame.
|
|
100
|
+
*
|
|
101
|
+
* The frame height should be sized to fill the terminal viewport's bottom band
|
|
102
|
+
* (see InlineTerminalSurface.getLiveBandRows); the dynamic budget allocates the
|
|
103
|
+
* band rows between transcript / timeline / status / prompt.
|
|
104
|
+
*/
|
|
105
|
+
function renderTuiLiveFrame(state, options) {
|
|
106
|
+
const width = Math.max(MIN_WIDTH, Math.floor(options.width));
|
|
107
|
+
const height = Math.max(MIN_HEIGHT, Math.floor(options.height));
|
|
108
|
+
const frame = (0, frame_1.createTuiFrame)(width, height);
|
|
109
|
+
const budget = computeBudget(height, state.prompt.value, countTimelineEntries(state));
|
|
110
|
+
const promptTop = height - budget.promptRows;
|
|
20
111
|
const statusRow = promptTop - 1;
|
|
21
|
-
const
|
|
22
|
-
|
|
112
|
+
const timelineTop = statusRow - budget.timelineRows;
|
|
113
|
+
renderLiveTranscript(frame, state, 0, budget.transcriptRows, options);
|
|
114
|
+
if (budget.timelineRows > 0)
|
|
115
|
+
renderTimeline(frame, state, timelineTop, budget.timelineRows);
|
|
23
116
|
renderStatus(frame, state, statusRow);
|
|
24
|
-
renderPrompt(frame, state, promptTop);
|
|
25
|
-
renderOverlay(frame, state,
|
|
26
|
-
const cursorColumn = promptCursorColumn(state.prompt.value, state.prompt.cursor, width);
|
|
27
|
-
(0, frame_1.setFrameCursor)(frame, promptTop + 1, cursorColumn, true);
|
|
117
|
+
renderPrompt(frame, state, promptTop, width, budget.promptLineCount);
|
|
118
|
+
renderOverlay(frame, state, statusRow);
|
|
28
119
|
return frame;
|
|
29
120
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
121
|
+
/** Render (live) transcript entries into [startRow, startRow + maxRows). */
|
|
122
|
+
function renderLiveTranscript(frame, state, startRow, maxRows, options) {
|
|
123
|
+
const width = resolveTranscriptWidth(frame.width, options.transcriptWidth);
|
|
124
|
+
const rows = (0, state_1.liveTuiTranscriptRecords)(state)
|
|
125
|
+
.flatMap(entry => layoutRecord(entry, width, options));
|
|
126
|
+
const visible = rows.slice(Math.max(0, rows.length - maxRows));
|
|
127
|
+
visible.forEach((row, index) => {
|
|
128
|
+
(0, transcript_layout_1.writeStyledRowToFrame)(frame, startRow + index, row);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function renderTranscript(frame, state, startRow, maxRows, options) {
|
|
132
|
+
const width = resolveTranscriptWidth(frame.width, options.transcriptWidth);
|
|
133
|
+
const records = [
|
|
134
|
+
...(0, state_1.staticTuiTranscriptRecords)(state),
|
|
135
|
+
...(0, state_1.liveTuiTranscriptRecords)(state),
|
|
34
136
|
];
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
137
|
+
const rows = records.flatMap(entry => layoutRecord(entry, width, options));
|
|
138
|
+
const visible = rows.slice(Math.max(0, rows.length - maxRows));
|
|
139
|
+
visible.forEach((row, index) => {
|
|
140
|
+
(0, transcript_layout_1.writeStyledRowToFrame)(frame, startRow + index, row);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/** Render the activity timeline (subtasks + running tools) just above status. */
|
|
144
|
+
function renderTimeline(frame, state, top, maxRows) {
|
|
145
|
+
const items = [];
|
|
146
|
+
for (const t of activeSubtaskTimelineEntries(state)) {
|
|
147
|
+
const mark = t.state === 'running' ? '▶' : '◦';
|
|
148
|
+
const label = t.summary ?? t.objective ?? t.role;
|
|
149
|
+
items.push(`${mark} ${t.taskId.slice(0, 8)} ${t.state} ${truncateCells(label, 24)}`);
|
|
150
|
+
}
|
|
151
|
+
for (const e of activeToolStarts(state)) {
|
|
152
|
+
items.push(`⚙ #${e.sequence} ${e.name} running`);
|
|
153
|
+
}
|
|
154
|
+
const visible = items.slice(-maxRows);
|
|
40
155
|
visible.forEach((line, index) => {
|
|
41
|
-
(0, frame_1.writeFrameText)(frame, index, 0, line);
|
|
156
|
+
(0, frame_1.writeFrameText)(frame, top + index, 0, truncateCells(line, frame.width));
|
|
42
157
|
});
|
|
43
158
|
}
|
|
44
159
|
function renderStatus(frame, state, row) {
|
|
@@ -46,19 +161,81 @@ function renderStatus(frame, state, row) {
|
|
|
46
161
|
return;
|
|
47
162
|
const left = state.processing ? 'working' : 'ready';
|
|
48
163
|
const right = state.statusMessage ? state.statusMessage : '';
|
|
164
|
+
const activity = [];
|
|
165
|
+
if (state.statusState.activeTools > 0)
|
|
166
|
+
activity.push(`tools:${state.statusState.activeTools}`);
|
|
167
|
+
if (state.statusState.activeSubtasks > 0)
|
|
168
|
+
activity.push(`sub:${state.statusState.activeSubtasks}`);
|
|
169
|
+
const activityStr = activity.length ? `[${activity.join(' ')}] ` : '';
|
|
170
|
+
const rightFull = right ? `${right} ${activityStr}`.trimEnd() : activityStr.trimEnd();
|
|
49
171
|
const available = Math.max(0, frame.width - (0, string_width_1.default)(left) - 1);
|
|
50
|
-
const status =
|
|
51
|
-
? `${left}${' '.repeat(Math.max(1, available - (0, string_width_1.default)(
|
|
172
|
+
const status = rightFull
|
|
173
|
+
? `${left}${' '.repeat(Math.max(1, available - (0, string_width_1.default)(rightFull)))}${truncateCells(rightFull, available)}`
|
|
52
174
|
: left;
|
|
53
175
|
(0, frame_1.writeFrameText)(frame, row, 0, truncateCells(status, frame.width));
|
|
54
176
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Render a bounded prompt viewport. The underlying prompt value is never
|
|
179
|
+
* truncated; only the lines around the cursor are painted when the terminal is
|
|
180
|
+
* too short to show the full multi-line value.
|
|
181
|
+
*/
|
|
182
|
+
function renderPrompt(frame, state, top, width, visibleLineCount) {
|
|
183
|
+
const value = state.prompt.value;
|
|
184
|
+
const lines = value.split('\n');
|
|
185
|
+
const innerWidth = Math.max(0, width - 2);
|
|
186
|
+
const { line: cursorLine, col: cursorCol } = lineColOfCursor(value, state.prompt.cursor);
|
|
187
|
+
const viewportStart = Math.max(0, Math.min(cursorLine, lines.length - visibleLineCount));
|
|
188
|
+
const viewportLines = lines.slice(viewportStart, viewportStart + visibleLineCount);
|
|
189
|
+
(0, frame_1.writeFrameText)(frame, top, 0, `┌${'─'.repeat(innerWidth)}┐`);
|
|
190
|
+
for (let i = 0; i < viewportLines.length; i++) {
|
|
191
|
+
const absoluteLine = viewportStart + i;
|
|
192
|
+
const prefix = absoluteLine === 0 ? '› ' : ' ';
|
|
193
|
+
const fixed = ` ${prefix}`;
|
|
194
|
+
const bodyWidth = Math.max(0, innerWidth - (0, string_width_1.default)(fixed) - 1);
|
|
195
|
+
const viewport = absoluteLine === cursorLine
|
|
196
|
+
? promptLineViewport(viewportLines[i], cursorCol, bodyWidth)
|
|
197
|
+
: { text: truncateCells(viewportLines[i], bodyWidth), cursorCells: 0 };
|
|
198
|
+
const content = `${fixed}${viewport.text}`;
|
|
199
|
+
const padding = ' '.repeat(Math.max(0, innerWidth - (0, string_width_1.default)(content)));
|
|
200
|
+
(0, frame_1.writeFrameText)(frame, top + 1 + i, 0, `│${content}${padding}│`);
|
|
201
|
+
}
|
|
202
|
+
(0, frame_1.writeFrameText)(frame, top + 1 + viewportLines.length, 0, `└${'─'.repeat(innerWidth)}┘`);
|
|
203
|
+
const cursorPrefix = cursorLine === 0 ? '› ' : ' ';
|
|
204
|
+
const cursorFixed = ` ${cursorPrefix}`;
|
|
205
|
+
const cursorBodyWidth = Math.max(0, innerWidth - (0, string_width_1.default)(cursorFixed) - 1);
|
|
206
|
+
const cursorViewport = promptLineViewport(lines[cursorLine], cursorCol, cursorBodyWidth);
|
|
207
|
+
const cursorColumn = 1 + (0, string_width_1.default)(cursorFixed) + cursorViewport.cursorCells;
|
|
208
|
+
(0, frame_1.setFrameCursor)(frame, top + 1 + cursorLine - viewportStart, cursorColumn, true);
|
|
209
|
+
}
|
|
210
|
+
function promptLineViewport(value, cursor, width) {
|
|
211
|
+
if (width <= 0)
|
|
212
|
+
return { text: '', cursorCells: 0 };
|
|
213
|
+
const safeCursor = Math.max(0, Math.min(cursor, value.length));
|
|
214
|
+
const before = Array.from(graphemeIterate(value.slice(0, safeCursor)));
|
|
215
|
+
const after = value.slice(safeCursor);
|
|
216
|
+
let visibleBefore = before.join('');
|
|
217
|
+
let marker = '';
|
|
218
|
+
if ((0, string_width_1.default)(visibleBefore) > width) {
|
|
219
|
+
marker = '…';
|
|
220
|
+
const available = Math.max(0, width - (0, string_width_1.default)(marker));
|
|
221
|
+
let used = 0;
|
|
222
|
+
const tail = [];
|
|
223
|
+
for (let index = before.length - 1; index >= 0; index -= 1) {
|
|
224
|
+
const grapheme = before[index];
|
|
225
|
+
const graphemeWidth = Math.max(0, (0, string_width_1.default)(grapheme));
|
|
226
|
+
if (used + graphemeWidth > available)
|
|
227
|
+
break;
|
|
228
|
+
tail.unshift(grapheme);
|
|
229
|
+
used += graphemeWidth;
|
|
230
|
+
}
|
|
231
|
+
visibleBefore = tail.join('');
|
|
232
|
+
}
|
|
233
|
+
const left = `${marker}${visibleBefore}`;
|
|
234
|
+
const visibleAfter = truncateCells(after, Math.max(0, width - (0, string_width_1.default)(left)));
|
|
235
|
+
return {
|
|
236
|
+
text: `${left}${visibleAfter}`,
|
|
237
|
+
cursorCells: (0, string_width_1.default)(left),
|
|
238
|
+
};
|
|
62
239
|
}
|
|
63
240
|
function renderOverlay(frame, state, maxRows) {
|
|
64
241
|
if (!state.overlay || maxRows <= 0)
|
|
@@ -175,7 +352,7 @@ function renderOverlay(frame, state, maxRows) {
|
|
|
175
352
|
'Shortcuts',
|
|
176
353
|
'/ commands @ files ? shortcuts',
|
|
177
354
|
'Enter submit/select Tab complete Esc cancel',
|
|
178
|
-
'
|
|
355
|
+
'scroll terminal (↑/↓) to review history Ctrl+C interrupt / twice exits',
|
|
179
356
|
].map(row => truncateCells(row, frame.width));
|
|
180
357
|
rows.slice(0, maxRows).forEach((line, index) => {
|
|
181
358
|
(0, frame_1.writeFrameText)(frame, index, 0, line);
|
|
@@ -192,55 +369,13 @@ function pickerStartIndex(selectedIndex, visibleCount, total) {
|
|
|
192
369
|
const desired = selectedIndex - halfWindow;
|
|
193
370
|
return Math.min(total - visibleCount, Math.max(0, desired));
|
|
194
371
|
}
|
|
195
|
-
function
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const lines = rawLines.length > 0 ? rawLines : [''];
|
|
199
|
-
return lines.flatMap((line, index) => {
|
|
200
|
-
const text = `${index === 0 ? prefix : ' '}${line}`;
|
|
201
|
-
return wrapCells(text, width);
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
function transcriptPrefix(entry) {
|
|
205
|
-
switch (entry.role) {
|
|
206
|
-
case 'user':
|
|
207
|
-
return '› ';
|
|
208
|
-
case 'tool':
|
|
209
|
-
return '• ';
|
|
210
|
-
case 'error':
|
|
211
|
-
return '! ';
|
|
212
|
-
case 'command':
|
|
213
|
-
return '/ ';
|
|
214
|
-
case 'status':
|
|
215
|
-
return '= ';
|
|
216
|
-
case 'assistant':
|
|
217
|
-
case 'system':
|
|
218
|
-
default:
|
|
219
|
-
return '';
|
|
220
|
-
}
|
|
372
|
+
function layoutRecord(entry, width, options) {
|
|
373
|
+
return options.layoutTranscriptRecord?.(entry, width)
|
|
374
|
+
?? (0, transcript_layout_1.layoutTranscriptEntry)(entry, { width, theme: options.theme });
|
|
221
375
|
}
|
|
222
|
-
function
|
|
223
|
-
const
|
|
224
|
-
return Math.
|
|
225
|
-
}
|
|
226
|
-
function wrapCells(value, width) {
|
|
227
|
-
if (width <= 0)
|
|
228
|
-
return [''];
|
|
229
|
-
const rows = [];
|
|
230
|
-
let current = '';
|
|
231
|
-
let currentWidth = 0;
|
|
232
|
-
for (const char of graphemeIterate(value)) {
|
|
233
|
-
const charWidth = Math.max(0, (0, string_width_1.default)(char));
|
|
234
|
-
if (currentWidth > 0 && currentWidth + charWidth > width) {
|
|
235
|
-
rows.push(current);
|
|
236
|
-
current = '';
|
|
237
|
-
currentWidth = 0;
|
|
238
|
-
}
|
|
239
|
-
current += char;
|
|
240
|
-
currentWidth += charWidth;
|
|
241
|
-
}
|
|
242
|
-
rows.push(current);
|
|
243
|
-
return rows;
|
|
376
|
+
function resolveTranscriptWidth(frameWidth, requested) {
|
|
377
|
+
const normalized = requested === undefined ? frameWidth : Math.floor(requested);
|
|
378
|
+
return Math.max(1, Math.min(frameWidth, normalized));
|
|
244
379
|
}
|
|
245
380
|
function truncateCells(value, width) {
|
|
246
381
|
if (width <= 0)
|
|
@@ -256,6 +391,21 @@ function truncateCells(value, width) {
|
|
|
256
391
|
}
|
|
257
392
|
return output;
|
|
258
393
|
}
|
|
394
|
+
/** Map an absolute character cursor to {line, col} within a multi-line value. */
|
|
395
|
+
function lineColOfCursor(value, cursor) {
|
|
396
|
+
const lines = value.split('\n');
|
|
397
|
+
const safeCursor = Math.max(0, Math.min(cursor, value.length));
|
|
398
|
+
let offset = 0;
|
|
399
|
+
for (let i = 0; i < lines.length; i++) {
|
|
400
|
+
const lineLen = lines[i].length;
|
|
401
|
+
if (safeCursor <= offset + lineLen) {
|
|
402
|
+
return { line: i, col: safeCursor - offset };
|
|
403
|
+
}
|
|
404
|
+
offset += lineLen + 1; // +1 for the newline separator
|
|
405
|
+
}
|
|
406
|
+
const last = lines.length - 1;
|
|
407
|
+
return { line: last, col: lines[last].length };
|
|
408
|
+
}
|
|
259
409
|
/** Iterate by grapheme cluster (not code point) to preserve ZWJ emoji etc. */
|
|
260
410
|
function* graphemeIterate(text) {
|
|
261
411
|
const Segmenter = Intl.Segmenter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"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"}
|
package/dist/tui-ui/runner.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type TuiFrame } from '../tui-core/frame';
|
|
2
|
+
import type { TuiTheme } from '../tui-core/style';
|
|
2
3
|
import { type TuiInputEvent } from '../tui-core/input-parser';
|
|
3
|
-
import { type TuiTerminalRenderResult } from '../tui-core/terminal-writer';
|
|
4
4
|
import type { UiEventSink } from '../runtime/ui-events';
|
|
5
|
-
import {
|
|
5
|
+
import { InlineTerminalSurface } from './inline-surface';
|
|
6
|
+
import { type TuiRenderScheduler, type TuiRenderSchedulerDeps } from './render-scheduler';
|
|
6
7
|
import { type TuiUiAction, type TuiUiState } from './state';
|
|
7
8
|
export interface TuiRunnerOptions {
|
|
8
9
|
output: Pick<NodeJS.WriteStream, 'write'>;
|
|
@@ -14,37 +15,97 @@ export interface TuiRunnerOptions {
|
|
|
14
15
|
onPermissionDecision?: (requestId: string, approved: boolean) => void | Promise<void>;
|
|
15
16
|
/** Inject scheduler deps for testing (fake timers). */
|
|
16
17
|
schedulerDeps?: Partial<TuiRenderSchedulerDeps>;
|
|
17
|
-
/**
|
|
18
|
-
|
|
18
|
+
/** Inline surface for committed scrollback + live region rendering. */
|
|
19
|
+
surface?: InlineTerminalSurface;
|
|
20
|
+
/** Fatal surface failures must restore terminal ownership and stop the renderer. */
|
|
21
|
+
onSurfaceError?: (error: unknown) => void;
|
|
22
|
+
/** Immutable transcript theme for this runner instance. */
|
|
23
|
+
theme?: TuiTheme;
|
|
24
|
+
themeId?: string;
|
|
19
25
|
}
|
|
20
26
|
export interface TuiRunnerCounters {
|
|
21
27
|
layoutCount: number;
|
|
22
28
|
paintCount: number;
|
|
23
29
|
changedRows: number;
|
|
30
|
+
commitCount: number;
|
|
24
31
|
}
|
|
25
32
|
export declare class TuiRunner {
|
|
26
33
|
private readonly options;
|
|
27
34
|
readonly events: UiEventSink;
|
|
28
35
|
private readonly parser;
|
|
29
|
-
private readonly writer;
|
|
30
36
|
private readonly scheduler;
|
|
37
|
+
private readonly surface;
|
|
38
|
+
private readonly transcriptCache;
|
|
39
|
+
private readonly theme;
|
|
40
|
+
private readonly themeId;
|
|
41
|
+
private history;
|
|
42
|
+
private surfaceFailed;
|
|
31
43
|
private state;
|
|
32
44
|
private width;
|
|
33
45
|
private height;
|
|
34
46
|
private lastFrame;
|
|
35
|
-
private
|
|
47
|
+
private surfaceResizePending;
|
|
48
|
+
private resizeEpoch;
|
|
49
|
+
private surfaceResizeGeneration;
|
|
36
50
|
readonly counters: TuiRunnerCounters;
|
|
37
51
|
constructor(options: TuiRunnerOptions);
|
|
38
52
|
getState(): TuiUiState;
|
|
39
53
|
getLastFrame(): TuiFrame | null;
|
|
40
|
-
getLastRenderResult(): TuiTerminalRenderResult | null;
|
|
41
54
|
getVisibleRows(): string[];
|
|
55
|
+
/** Get the scheduler for external lifecycle management (flush, stop). */
|
|
56
|
+
getScheduler(): TuiRenderScheduler;
|
|
57
|
+
/** Stop stale-width paints as soon as the terminal reports SIGWINCH. */
|
|
58
|
+
beginResize(width?: number): void;
|
|
42
59
|
resize(width: number, height: number): void;
|
|
43
60
|
dispatch(action: TuiUiAction): void;
|
|
44
61
|
feedInput(chunk: Buffer | string): TuiInputEvent[];
|
|
45
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Render the full frame (legacy path for tests without surface).
|
|
64
|
+
* Uses renderTuiUiFrame which includes both static and live transcript.
|
|
65
|
+
*/
|
|
66
|
+
renderFullFrame(): TuiFrame;
|
|
67
|
+
/**
|
|
68
|
+
* Render the live region via InlineTerminalSurface.
|
|
69
|
+
* When surface is available, only ephemeral content (live transcript, overlay,
|
|
70
|
+
* status, prompt) is painted into the live region.
|
|
71
|
+
* When no surface (test mode), renders the full frame including committed
|
|
72
|
+
* transcript so tests can inspect complete content via getLastFrame().
|
|
73
|
+
*/
|
|
74
|
+
private renderLive;
|
|
75
|
+
/** Build a compact live-region frame that grows only for active content. */
|
|
76
|
+
private buildLiveFrame;
|
|
77
|
+
/**
|
|
78
|
+
* Try to commit any newly-finalized transcript entries to scrollback.
|
|
79
|
+
* Called after each dispatch. Only commits entries that are committable
|
|
80
|
+
* but not yet queued.
|
|
81
|
+
*/
|
|
82
|
+
private tryCommit;
|
|
83
|
+
/** Layout a transcript record once per revision/width/theme combination. */
|
|
84
|
+
private layoutTranscriptRecord;
|
|
85
|
+
private get transcriptWidth();
|
|
86
|
+
private transcriptLayoutOptions;
|
|
87
|
+
private handleSurfaceError;
|
|
46
88
|
private applyInputEvent;
|
|
47
89
|
private applyKey;
|
|
90
|
+
/** Navigate to previous history entry. */
|
|
91
|
+
private historyBack;
|
|
92
|
+
/** Navigate to next history entry (or back to draft). */
|
|
93
|
+
private historyForward;
|
|
94
|
+
/**
|
|
95
|
+
* Up in a multi-line prompt moves the cursor to the previous visual line;
|
|
96
|
+
* only at the first line does it fall back to command history (matching
|
|
97
|
+
* shell/editor behaviour). Single-line prompts behave exactly as before.
|
|
98
|
+
*/
|
|
99
|
+
private moveCursorUpOrHistory;
|
|
100
|
+
/**
|
|
101
|
+
* Down in a multi-line prompt moves the cursor to the next visual line;
|
|
102
|
+
* only at the last line does it fall back to command history.
|
|
103
|
+
*/
|
|
104
|
+
private moveCursorDownOrHistory;
|
|
105
|
+
/** Home: move to the start of the current visual line (not whole buffer). */
|
|
106
|
+
private moveCursorLineHome;
|
|
107
|
+
/** End: move to the end of the current visual line (not whole buffer). */
|
|
108
|
+
private moveCursorLineEnd;
|
|
48
109
|
private submitPrompt;
|
|
49
110
|
private reportSubmitFailure;
|
|
50
111
|
private updatePrompt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/tui-ui/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/tui-ui/runner.ts"],"names":[],"mappings":"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"}
|