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.
Files changed (205) hide show
  1. package/dist/cli.js +25 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/index.d.ts.map +1 -1
  4. package/dist/commands/index.js +189 -49
  5. package/dist/commands/index.js.map +1 -1
  6. package/dist/commands/parser.d.ts.map +1 -1
  7. package/dist/commands/parser.js +8 -3
  8. package/dist/commands/parser.js.map +1 -1
  9. package/dist/commands/types.d.ts +2 -0
  10. package/dist/commands/types.d.ts.map +1 -1
  11. package/dist/commands/types.js.map +1 -1
  12. package/dist/core/cost-tracker.d.ts +45 -5
  13. package/dist/core/cost-tracker.d.ts.map +1 -1
  14. package/dist/core/cost-tracker.js +78 -13
  15. package/dist/core/cost-tracker.js.map +1 -1
  16. package/dist/framework/index.d.ts +1 -1
  17. package/dist/framework/index.d.ts.map +1 -1
  18. package/dist/framework/index.js.map +1 -1
  19. package/dist/framework/query.d.ts +25 -0
  20. package/dist/framework/query.d.ts.map +1 -1
  21. package/dist/framework/query.js +196 -49
  22. package/dist/framework/query.js.map +1 -1
  23. package/dist/framework/store.d.ts +6 -1
  24. package/dist/framework/store.d.ts.map +1 -1
  25. package/dist/framework/store.js +10 -1
  26. package/dist/framework/store.js.map +1 -1
  27. package/dist/harness/ledger.d.ts.map +1 -1
  28. package/dist/harness/ledger.js +6 -2
  29. package/dist/harness/ledger.js.map +1 -1
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
  33. package/dist/ink-ui/components/StatusLine.js +0 -2
  34. package/dist/ink-ui/components/StatusLine.js.map +1 -1
  35. package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
  36. package/dist/ink-ui/screens/ReplScreen.js +12 -5
  37. package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
  38. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  39. package/dist/runtime/agent-runtime-controller.js +11 -1
  40. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  41. package/dist/runtime/chat-controller.d.ts.map +1 -1
  42. package/dist/runtime/chat-controller.js +229 -86
  43. package/dist/runtime/chat-controller.js.map +1 -1
  44. package/dist/runtime/rich-text/ansi-parser.d.ts +1 -1
  45. package/dist/runtime/rich-text/ansi-parser.d.ts.map +1 -1
  46. package/dist/runtime/rich-text/ansi-parser.js +93 -55
  47. package/dist/runtime/rich-text/ansi-parser.js.map +1 -1
  48. package/dist/runtime/rich-text/layout.d.ts +2 -11
  49. package/dist/runtime/rich-text/layout.d.ts.map +1 -1
  50. package/dist/runtime/rich-text/layout.js +280 -245
  51. package/dist/runtime/rich-text/layout.js.map +1 -1
  52. package/dist/runtime/rich-text/markdown-parser.js +31 -24
  53. package/dist/runtime/rich-text/markdown-parser.js.map +1 -1
  54. package/dist/runtime/rich-text/types.d.ts +1 -1
  55. package/dist/runtime/rich-text/types.d.ts.map +1 -1
  56. package/dist/runtime/subagents/production.d.ts.map +1 -1
  57. package/dist/runtime/subagents/production.js +28 -3
  58. package/dist/runtime/subagents/production.js.map +1 -1
  59. package/dist/runtime/subagents/result-parser.d.ts.map +1 -1
  60. package/dist/runtime/subagents/result-parser.js +54 -40
  61. package/dist/runtime/subagents/result-parser.js.map +1 -1
  62. package/dist/runtime/subagents/types.d.ts +2 -0
  63. package/dist/runtime/subagents/types.d.ts.map +1 -1
  64. package/dist/runtime/subagents/types.js +5 -1
  65. package/dist/runtime/subagents/types.js.map +1 -1
  66. package/dist/runtime/ui-events.d.ts +13 -0
  67. package/dist/runtime/ui-events.d.ts.map +1 -1
  68. package/dist/runtime/ui-events.js.map +1 -1
  69. package/dist/runtime/ui-view-model.d.ts +9 -0
  70. package/dist/runtime/ui-view-model.d.ts.map +1 -1
  71. package/dist/runtime/ui-view-model.js +59 -37
  72. package/dist/runtime/ui-view-model.js.map +1 -1
  73. package/dist/services/compact/auto-compact.d.ts +15 -2
  74. package/dist/services/compact/auto-compact.d.ts.map +1 -1
  75. package/dist/services/compact/auto-compact.js +56 -24
  76. package/dist/services/compact/auto-compact.js.map +1 -1
  77. package/dist/services/compact/compact.d.ts +2 -0
  78. package/dist/services/compact/compact.d.ts.map +1 -1
  79. package/dist/services/compact/compact.js +22 -5
  80. package/dist/services/compact/compact.js.map +1 -1
  81. package/dist/services/compact/coordinator.d.ts +26 -0
  82. package/dist/services/compact/coordinator.d.ts.map +1 -0
  83. package/dist/services/compact/coordinator.js +44 -0
  84. package/dist/services/compact/coordinator.js.map +1 -0
  85. package/dist/services/compact/index.d.ts +1 -0
  86. package/dist/services/compact/index.d.ts.map +1 -1
  87. package/dist/services/compact/index.js +3 -1
  88. package/dist/services/compact/index.js.map +1 -1
  89. package/dist/services/compact/summary-generator.d.ts +6 -2
  90. package/dist/services/compact/summary-generator.d.ts.map +1 -1
  91. package/dist/services/compact/summary-generator.js +73 -31
  92. package/dist/services/compact/summary-generator.js.map +1 -1
  93. package/dist/services/config-dir.d.ts +11 -1
  94. package/dist/services/config-dir.d.ts.map +1 -1
  95. package/dist/services/config-dir.js +19 -2
  96. package/dist/services/config-dir.js.map +1 -1
  97. package/dist/services/config.d.ts +4 -2
  98. package/dist/services/config.d.ts.map +1 -1
  99. package/dist/services/config.js +40 -0
  100. package/dist/services/config.js.map +1 -1
  101. package/dist/services/doctor.d.ts +2 -0
  102. package/dist/services/doctor.d.ts.map +1 -1
  103. package/dist/services/doctor.js +8 -1
  104. package/dist/services/doctor.js.map +1 -1
  105. package/dist/services/global-config.d.ts +10 -0
  106. package/dist/services/global-config.d.ts.map +1 -1
  107. package/dist/services/global-config.js.map +1 -1
  108. package/dist/services/llm.d.ts +21 -4
  109. package/dist/services/llm.d.ts.map +1 -1
  110. package/dist/services/llm.js +66 -8
  111. package/dist/services/llm.js.map +1 -1
  112. package/dist/services/model-context.d.ts +36 -0
  113. package/dist/services/model-context.d.ts.map +1 -1
  114. package/dist/services/model-context.js +238 -32
  115. package/dist/services/model-context.js.map +1 -1
  116. package/dist/services/redaction.js +1 -1
  117. package/dist/services/redaction.js.map +1 -1
  118. package/dist/services/session-storage.d.ts +39 -1
  119. package/dist/services/session-storage.d.ts.map +1 -1
  120. package/dist/services/session-storage.js +121 -27
  121. package/dist/services/session-storage.js.map +1 -1
  122. package/dist/services/usage-state.d.ts +55 -5
  123. package/dist/services/usage-state.d.ts.map +1 -1
  124. package/dist/services/usage-state.js +185 -59
  125. package/dist/services/usage-state.js.map +1 -1
  126. package/dist/services/verification-profile.d.ts.map +1 -1
  127. package/dist/services/verification-profile.js +3 -2
  128. package/dist/services/verification-profile.js.map +1 -1
  129. package/dist/services/workspace-diff.d.ts.map +1 -1
  130. package/dist/services/workspace-diff.js +34 -3
  131. package/dist/services/workspace-diff.js.map +1 -1
  132. package/dist/services/yaml-config.js +1 -1
  133. package/dist/skills/runtime.d.ts +9 -5
  134. package/dist/skills/runtime.d.ts.map +1 -1
  135. package/dist/skills/runtime.js +157 -12
  136. package/dist/skills/runtime.js.map +1 -1
  137. package/dist/terminal-ui/launch.d.ts +2 -0
  138. package/dist/terminal-ui/launch.d.ts.map +1 -1
  139. package/dist/terminal-ui/launch.js +65 -21
  140. package/dist/terminal-ui/launch.js.map +1 -1
  141. package/dist/terminal-ui/raw-editor.d.ts +9 -0
  142. package/dist/terminal-ui/raw-editor.d.ts.map +1 -1
  143. package/dist/terminal-ui/raw-editor.js +207 -30
  144. package/dist/terminal-ui/raw-editor.js.map +1 -1
  145. package/dist/tools/bash_security.d.ts.map +1 -1
  146. package/dist/tools/bash_security.js +14 -5
  147. package/dist/tools/bash_security.js.map +1 -1
  148. package/dist/tools/index.d.ts.map +1 -1
  149. package/dist/tools/index.js +48 -20
  150. package/dist/tools/index.js.map +1 -1
  151. package/dist/tools/plan.d.ts.map +1 -1
  152. package/dist/tools/plan.js +7 -0
  153. package/dist/tools/plan.js.map +1 -1
  154. package/dist/tools/web.d.ts +10 -0
  155. package/dist/tools/web.d.ts.map +1 -1
  156. package/dist/tools/web.js +81 -1
  157. package/dist/tools/web.js.map +1 -1
  158. package/dist/tui-core/input-parser.d.ts +1 -1
  159. package/dist/tui-core/input-parser.d.ts.map +1 -1
  160. package/dist/tui-core/input-parser.js +20 -1
  161. package/dist/tui-core/input-parser.js.map +1 -1
  162. package/dist/tui-core/style.d.ts +16 -0
  163. package/dist/tui-core/style.d.ts.map +1 -1
  164. package/dist/tui-core/style.js +22 -1
  165. package/dist/tui-core/style.js.map +1 -1
  166. package/dist/tui-ui/inline-surface.d.ts +62 -11
  167. package/dist/tui-ui/inline-surface.d.ts.map +1 -1
  168. package/dist/tui-ui/inline-surface.js +343 -92
  169. package/dist/tui-ui/inline-surface.js.map +1 -1
  170. package/dist/tui-ui/launch.d.ts +1 -0
  171. package/dist/tui-ui/launch.d.ts.map +1 -1
  172. package/dist/tui-ui/launch.js +185 -41
  173. package/dist/tui-ui/launch.js.map +1 -1
  174. package/dist/tui-ui/layout.d.ts +51 -2
  175. package/dist/tui-ui/layout.d.ts.map +1 -1
  176. package/dist/tui-ui/layout.js +226 -76
  177. package/dist/tui-ui/layout.js.map +1 -1
  178. package/dist/tui-ui/runner.d.ts +69 -8
  179. package/dist/tui-ui/runner.d.ts.map +1 -1
  180. package/dist/tui-ui/runner.js +304 -41
  181. package/dist/tui-ui/runner.js.map +1 -1
  182. package/dist/tui-ui/state.d.ts +5 -4
  183. package/dist/tui-ui/state.d.ts.map +1 -1
  184. package/dist/tui-ui/state.js +65 -19
  185. package/dist/tui-ui/state.js.map +1 -1
  186. package/dist/tui-ui/theme.d.ts +13 -0
  187. package/dist/tui-ui/theme.d.ts.map +1 -0
  188. package/dist/tui-ui/theme.js +20 -0
  189. package/dist/tui-ui/theme.js.map +1 -0
  190. package/dist/tui-ui/transcript-cache.d.ts +5 -3
  191. package/dist/tui-ui/transcript-cache.d.ts.map +1 -1
  192. package/dist/tui-ui/transcript-cache.js +16 -9
  193. package/dist/tui-ui/transcript-cache.js.map +1 -1
  194. package/dist/tui-ui/transcript-layout.d.ts +21 -0
  195. package/dist/tui-ui/transcript-layout.d.ts.map +1 -0
  196. package/dist/tui-ui/transcript-layout.js +398 -0
  197. package/dist/tui-ui/transcript-layout.js.map +1 -0
  198. package/dist/ui/status-bar.d.ts +1 -1
  199. package/dist/ui/status-bar.d.ts.map +1 -1
  200. package/dist/ui/status-bar.js +2 -15
  201. package/dist/ui/status-bar.js.map +1 -1
  202. package/dist/ui-v2/components/shell.d.ts.map +1 -1
  203. package/dist/ui-v2/components/shell.js +0 -8
  204. package/dist/ui-v2/components/shell.js.map +1 -1
  205. package/package.json +1 -1
@@ -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 PROMPT_TOP_ROWS = 3;
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 promptTop = height - PROMPT_TOP_ROWS;
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 transcriptRows = Math.max(0, Math.min(options.maxTranscriptRows ?? statusRow, statusRow));
22
- renderTranscript(frame, state, transcriptRows);
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, transcriptRows);
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
- function renderTranscript(frame, state, maxRows) {
31
- const entries = [
32
- ...(0, state_1.staticTuiTranscriptEntries)(state),
33
- ...(0, state_1.liveTuiTranscriptEntries)(state),
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 lines = entries.flatMap(entry => formatTranscriptEntry(entry, frame.width));
36
- const maxOffset = Math.max(0, lines.length - maxRows);
37
- const scrollOffset = Math.min(Math.max(0, state.transcriptScrollOffset), maxOffset);
38
- const start = Math.max(0, lines.length - maxRows - scrollOffset);
39
- const visible = lines.slice(start, start + maxRows);
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 = right
51
- ? `${left}${' '.repeat(Math.max(1, available - (0, string_width_1.default)(right)))}${truncateCells(right, available)}`
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
- function renderPrompt(frame, state, top) {
56
- const width = frame.width;
57
- (0, frame_1.writeFrameText)(frame, top, 0, `┌${'─'.repeat(width - 2)}┐`);
58
- (0, frame_1.writeFrameText)(frame, top + 1, 0, '│ ');
59
- (0, frame_1.writeFrameText)(frame, top + 1, 2, truncateCells(`› ${state.prompt.value}`, width - 4));
60
- (0, frame_1.writeFrameText)(frame, top + 1, width - 1, '│');
61
- (0, frame_1.writeFrameText)(frame, top + 2, 0, `└${'─'.repeat(width - 2)}┘`);
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
- 'PageUp/PageDown transcript history Ctrl+C interrupt / twice exits',
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 formatTranscriptEntry(entry, width) {
196
- const prefix = transcriptPrefix(entry);
197
- const rawLines = entry.content.split('\n');
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 promptCursorColumn(value, cursor, width) {
223
- const prompt = (0, ui_view_model_1.createPromptState)({ value, cursor });
224
- return Math.min(width - 2, 4 + (0, string_width_1.default)(prompt.textBeforeCursor));
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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"}
@@ -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 { type TuiRenderSchedulerDeps } from './render-scheduler';
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
- /** Disable scheduler for backward-compat synchronous tests (default: true). */
18
- noScheduler?: boolean;
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 lastRenderResult;
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
- render(): TuiTerminalRenderResult;
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,EAIL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAYjB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,SAAS;IAYR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,gBAAgB,CAAwC;IAChE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAqD;gBAE5D,OAAO,EAAE,gBAAgB;IAgBtD,QAAQ,IAAI,UAAU;IAItB,YAAY,IAAI,QAAQ,GAAG,IAAI;IAI/B,mBAAmB,IAAI,uBAAuB,GAAG,IAAI;IAIrD,cAAc,IAAI,MAAM,EAAE;IAI1B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY3C,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAUnC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,EAAE;IAelD,MAAM,IAAI,uBAAuB;IAcjC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,QAAQ;IAoLhB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,gBAAgB;CAMzB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/tui-ui/runner.ts"],"names":[],"mappings":"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"}