poly-weaver 1.0.0 → 1.1.1

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 (227) hide show
  1. package/dist/agents/implementors/adapter.d.ts +2 -0
  2. package/dist/agents/implementors/adapter.d.ts.map +1 -1
  3. package/dist/agents/implementors/adapter.js +8 -4
  4. package/dist/agents/implementors/adapter.js.map +1 -1
  5. package/dist/agents/implementors/handler.d.ts.map +1 -1
  6. package/dist/agents/implementors/handler.js +33 -6
  7. package/dist/agents/implementors/handler.js.map +1 -1
  8. package/dist/agents/implementors/prompts.d.ts +5 -4
  9. package/dist/agents/implementors/prompts.d.ts.map +1 -1
  10. package/dist/agents/implementors/prompts.js +14 -13
  11. package/dist/agents/implementors/prompts.js.map +1 -1
  12. package/dist/agents/implementors/types.d.ts +6 -4
  13. package/dist/agents/implementors/types.d.ts.map +1 -1
  14. package/dist/agents/interviewers/adapter.d.ts.map +1 -1
  15. package/dist/agents/interviewers/adapter.js +2 -1
  16. package/dist/agents/interviewers/adapter.js.map +1 -1
  17. package/dist/agents/interviewers/completion-warning.d.ts +5 -0
  18. package/dist/agents/interviewers/completion-warning.d.ts.map +1 -0
  19. package/dist/agents/interviewers/completion-warning.js +20 -0
  20. package/dist/agents/interviewers/completion-warning.js.map +1 -0
  21. package/dist/agents/interviewers/handler.d.ts.map +1 -1
  22. package/dist/agents/interviewers/handler.js +5 -0
  23. package/dist/agents/interviewers/handler.js.map +1 -1
  24. package/dist/agents/interviewers/types.d.ts +2 -0
  25. package/dist/agents/interviewers/types.d.ts.map +1 -1
  26. package/dist/agents/plan-steering.d.ts +16 -0
  27. package/dist/agents/plan-steering.d.ts.map +1 -0
  28. package/dist/agents/plan-steering.js +102 -0
  29. package/dist/agents/plan-steering.js.map +1 -0
  30. package/dist/agents/planners/adapter.d.ts +3 -1
  31. package/dist/agents/planners/adapter.d.ts.map +1 -1
  32. package/dist/agents/planners/adapter.js +13 -20
  33. package/dist/agents/planners/adapter.js.map +1 -1
  34. package/dist/agents/planners/handler.d.ts.map +1 -1
  35. package/dist/agents/planners/handler.js +44 -55
  36. package/dist/agents/planners/handler.js.map +1 -1
  37. package/dist/agents/planners/prompts.d.ts +6 -5
  38. package/dist/agents/planners/prompts.d.ts.map +1 -1
  39. package/dist/agents/planners/prompts.js +32 -18
  40. package/dist/agents/planners/prompts.js.map +1 -1
  41. package/dist/agents/planners/types.d.ts +8 -12
  42. package/dist/agents/planners/types.d.ts.map +1 -1
  43. package/dist/agents/prompt-utils.d.ts +2 -0
  44. package/dist/agents/prompt-utils.d.ts.map +1 -1
  45. package/dist/agents/prompt-utils.js +5 -0
  46. package/dist/agents/prompt-utils.js.map +1 -1
  47. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  48. package/dist/agents/reviewers/adapter.js +6 -2
  49. package/dist/agents/reviewers/adapter.js.map +1 -1
  50. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  51. package/dist/agents/reviewers/handler.js +22 -7
  52. package/dist/agents/reviewers/handler.js.map +1 -1
  53. package/dist/agents/reviewers/prompts.d.ts +4 -4
  54. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  55. package/dist/agents/reviewers/prompts.js +43 -23
  56. package/dist/agents/reviewers/prompts.js.map +1 -1
  57. package/dist/agents/reviewers/types.d.ts +7 -4
  58. package/dist/agents/reviewers/types.d.ts.map +1 -1
  59. package/dist/agents/reviewers/types.js.map +1 -1
  60. package/dist/agents/runner.d.ts +4 -4
  61. package/dist/agents/runner.d.ts.map +1 -1
  62. package/dist/agents/runner.js +13 -3
  63. package/dist/agents/runner.js.map +1 -1
  64. package/dist/crosscheck/coordinator.d.ts.map +1 -1
  65. package/dist/crosscheck/coordinator.js +1 -0
  66. package/dist/crosscheck/coordinator.js.map +1 -1
  67. package/dist/crosscheck/live-agent-session.d.ts +3 -0
  68. package/dist/crosscheck/live-agent-session.d.ts.map +1 -1
  69. package/dist/crosscheck/live-agent-session.js +12 -2
  70. package/dist/crosscheck/live-agent-session.js.map +1 -1
  71. package/dist/flow/artifacts.d.ts +8 -1
  72. package/dist/flow/artifacts.d.ts.map +1 -1
  73. package/dist/flow/artifacts.js +82 -0
  74. package/dist/flow/artifacts.js.map +1 -1
  75. package/dist/flow/built-in/default-factory.d.ts.map +1 -1
  76. package/dist/flow/built-in/default-factory.js +0 -2
  77. package/dist/flow/built-in/default-factory.js.map +1 -1
  78. package/dist/flow/executor.d.ts +1 -2
  79. package/dist/flow/executor.d.ts.map +1 -1
  80. package/dist/flow/executor.js +25 -29
  81. package/dist/flow/executor.js.map +1 -1
  82. package/dist/flow/non-default-feedback.d.ts +14 -0
  83. package/dist/flow/non-default-feedback.d.ts.map +1 -0
  84. package/dist/flow/non-default-feedback.js +45 -0
  85. package/dist/flow/non-default-feedback.js.map +1 -0
  86. package/dist/flow/types.d.ts +11 -5
  87. package/dist/flow/types.d.ts.map +1 -1
  88. package/dist/flow/types.js +1 -2
  89. package/dist/flow/types.js.map +1 -1
  90. package/dist/managed-spec.d.ts +2 -0
  91. package/dist/managed-spec.d.ts.map +1 -1
  92. package/dist/managed-spec.js +22 -0
  93. package/dist/managed-spec.js.map +1 -1
  94. package/dist/offscreen/agent-viewer.d.ts +4 -1
  95. package/dist/offscreen/agent-viewer.d.ts.map +1 -1
  96. package/dist/offscreen/agent-viewer.js +58 -2
  97. package/dist/offscreen/agent-viewer.js.map +1 -1
  98. package/dist/offscreen/controller.d.ts +1 -1
  99. package/dist/offscreen/controller.d.ts.map +1 -1
  100. package/dist/offscreen/controller.js.map +1 -1
  101. package/dist/offscreen/fork.d.ts +2 -1
  102. package/dist/offscreen/fork.d.ts.map +1 -1
  103. package/dist/offscreen/fork.js +11 -2
  104. package/dist/offscreen/fork.js.map +1 -1
  105. package/dist/orchestrator.d.ts +1 -2
  106. package/dist/orchestrator.d.ts.map +1 -1
  107. package/dist/orchestrator.js +5 -10
  108. package/dist/orchestrator.js.map +1 -1
  109. package/dist/prompts.d.ts +0 -16
  110. package/dist/prompts.d.ts.map +1 -1
  111. package/dist/prompts.js +0 -35
  112. package/dist/prompts.js.map +1 -1
  113. package/dist/providers/base-completion.d.ts +12 -2
  114. package/dist/providers/base-completion.d.ts.map +1 -1
  115. package/dist/providers/base-completion.js +111 -2
  116. package/dist/providers/base-completion.js.map +1 -1
  117. package/dist/providers/claude/completion.d.ts +3 -1
  118. package/dist/providers/claude/completion.d.ts.map +1 -1
  119. package/dist/providers/claude/completion.js +40 -4
  120. package/dist/providers/claude/completion.js.map +1 -1
  121. package/dist/providers/claude/session.d.ts +1 -32
  122. package/dist/providers/claude/session.d.ts.map +1 -1
  123. package/dist/providers/claude/session.js +1 -138
  124. package/dist/providers/claude/session.js.map +1 -1
  125. package/dist/providers/claude/strategy.d.ts.map +1 -1
  126. package/dist/providers/claude/strategy.js +3 -1
  127. package/dist/providers/claude/strategy.js.map +1 -1
  128. package/dist/providers/codex/completion.d.ts +3 -1
  129. package/dist/providers/codex/completion.d.ts.map +1 -1
  130. package/dist/providers/codex/completion.js +36 -5
  131. package/dist/providers/codex/completion.js.map +1 -1
  132. package/dist/providers/codex/session.d.ts +1 -1
  133. package/dist/providers/codex/session.d.ts.map +1 -1
  134. package/dist/providers/codex/session.js +1 -1
  135. package/dist/providers/codex/session.js.map +1 -1
  136. package/dist/providers/codex/strategy.d.ts.map +1 -1
  137. package/dist/providers/codex/strategy.js +3 -1
  138. package/dist/providers/codex/strategy.js.map +1 -1
  139. package/dist/providers/completion-gate.d.ts +14 -0
  140. package/dist/providers/completion-gate.d.ts.map +1 -0
  141. package/dist/providers/completion-gate.js +36 -0
  142. package/dist/providers/completion-gate.js.map +1 -0
  143. package/dist/providers/copilot/observation.d.ts +2 -3
  144. package/dist/providers/copilot/observation.d.ts.map +1 -1
  145. package/dist/providers/copilot/observation.js +28 -25
  146. package/dist/providers/copilot/observation.js.map +1 -1
  147. package/dist/providers/copilot/session.d.ts +0 -33
  148. package/dist/providers/copilot/session.d.ts.map +1 -1
  149. package/dist/providers/copilot/session.js +0 -149
  150. package/dist/providers/copilot/session.js.map +1 -1
  151. package/dist/providers/copilot/trust.js +1 -1
  152. package/dist/providers/copilot/trust.js.map +1 -1
  153. package/dist/providers/types.d.ts +9 -14
  154. package/dist/providers/types.d.ts.map +1 -1
  155. package/dist/providers/types.js.map +1 -1
  156. package/dist/session/restore.d.ts +2 -1
  157. package/dist/session/restore.d.ts.map +1 -1
  158. package/dist/session/restore.js +26 -3
  159. package/dist/session/restore.js.map +1 -1
  160. package/dist/session/session-store.d.ts.map +1 -1
  161. package/dist/session/session-store.js +9 -2
  162. package/dist/session/session-store.js.map +1 -1
  163. package/dist/terminal/color-negotiation.d.ts +37 -0
  164. package/dist/terminal/color-negotiation.d.ts.map +1 -0
  165. package/dist/terminal/color-negotiation.js +154 -0
  166. package/dist/terminal/color-negotiation.js.map +1 -0
  167. package/dist/terminal/color-protocol.d.ts +36 -0
  168. package/dist/terminal/color-protocol.d.ts.map +1 -0
  169. package/dist/terminal/color-protocol.js +88 -0
  170. package/dist/terminal/color-protocol.js.map +1 -0
  171. package/dist/terminal/host-input-mode.d.ts.map +1 -1
  172. package/dist/terminal/host-input-mode.js +6 -2
  173. package/dist/terminal/host-input-mode.js.map +1 -1
  174. package/dist/terminal/host.d.ts +15 -4
  175. package/dist/terminal/host.d.ts.map +1 -1
  176. package/dist/terminal/host.js +158 -59
  177. package/dist/terminal/host.js.map +1 -1
  178. package/dist/terminal/input-session.d.ts +23 -0
  179. package/dist/terminal/input-session.d.ts.map +1 -0
  180. package/dist/terminal/input-session.js +97 -0
  181. package/dist/terminal/input-session.js.map +1 -0
  182. package/dist/terminal/key-event-source.d.ts +5 -1
  183. package/dist/terminal/key-event-source.d.ts.map +1 -1
  184. package/dist/terminal/key-event-source.js +1 -0
  185. package/dist/terminal/key-event-source.js.map +1 -1
  186. package/dist/terminal/layout.d.ts +7 -4
  187. package/dist/terminal/layout.d.ts.map +1 -1
  188. package/dist/terminal/layout.js +5 -3
  189. package/dist/terminal/layout.js.map +1 -1
  190. package/dist/terminal/output.d.ts +9 -2
  191. package/dist/terminal/output.d.ts.map +1 -1
  192. package/dist/terminal/output.js +13 -3
  193. package/dist/terminal/output.js.map +1 -1
  194. package/dist/terminal/stdin-byte-source.d.ts +13 -8
  195. package/dist/terminal/stdin-byte-source.d.ts.map +1 -1
  196. package/dist/terminal/stdin-byte-source.js +84 -40
  197. package/dist/terminal/stdin-byte-source.js.map +1 -1
  198. package/dist/terminal/virtual-terminal.d.ts +2 -0
  199. package/dist/terminal/virtual-terminal.d.ts.map +1 -1
  200. package/dist/terminal/virtual-terminal.js +17 -0
  201. package/dist/terminal/virtual-terminal.js.map +1 -1
  202. package/dist/terminal-input.d.ts +19 -2
  203. package/dist/terminal-input.d.ts.map +1 -1
  204. package/dist/terminal-input.js +162 -6
  205. package/dist/terminal-input.js.map +1 -1
  206. package/dist/user/curate-handler.d.ts +1 -5
  207. package/dist/user/curate-handler.d.ts.map +1 -1
  208. package/dist/user/curate-handler.js +32 -69
  209. package/dist/user/curate-handler.js.map +1 -1
  210. package/dist/user/handler.d.ts.map +1 -1
  211. package/dist/user/handler.js +18 -1
  212. package/dist/user/handler.js.map +1 -1
  213. package/dist/user/host-prompt.d.ts.map +1 -1
  214. package/dist/user/host-prompt.js +5 -4
  215. package/dist/user/host-prompt.js.map +1 -1
  216. package/dist/user/prompt.d.ts +3 -0
  217. package/dist/user/prompt.d.ts.map +1 -1
  218. package/dist/user/prompt.js.map +1 -1
  219. package/dist/user/review-feedback.d.ts +43 -0
  220. package/dist/user/review-feedback.d.ts.map +1 -0
  221. package/dist/user/review-feedback.js +184 -0
  222. package/dist/user/review-feedback.js.map +1 -0
  223. package/dist/user/review-plan-pane.d.ts +5 -0
  224. package/dist/user/review-plan-pane.d.ts.map +1 -0
  225. package/dist/user/review-plan-pane.js +26 -0
  226. package/dist/user/review-plan-pane.js.map +1 -0
  227. package/package.json +2 -2
@@ -0,0 +1,88 @@
1
+ export const COLOR_PREFIX_TIMEOUT_MS = 50;
2
+ export const COLOR_FRAME_TIMEOUT_MS = 1_000;
3
+ export const MAX_COLOR_FRAME_BYTES = 64 * 1024;
4
+ export const MAX_PALETTE_INDEX = 65_535;
5
+ export const COLOR_REPORT_HEADERS = ["\x1b]10;", "\x1b]11;", "\x1b]4;", "\x1b[?997;"];
6
+ export const inputClock = {
7
+ now: () => performance.now(),
8
+ setTimeout: (callback, ms) => setTimeout(callback, ms),
9
+ clearTimeout: (timer) => clearTimeout(timer),
10
+ };
11
+ function paletteIndex(value) {
12
+ if (!/^\d{1,5}$/.test(value))
13
+ return undefined;
14
+ const index = Number(value);
15
+ return index <= MAX_PALETTE_INDEX ? index : undefined;
16
+ }
17
+ function isColor(value) {
18
+ return /^rgb:[\da-f]{1,4}\/[\da-f]{1,4}\/[\da-f]{1,4}$/i.test(value)
19
+ || /^#(?:[\da-f]{3}|[\da-f]{6}|[\da-f]{9}|[\da-f]{12})$/i.test(value)
20
+ || (/^rgbi:(?:\d*\.?\d+)\/(?:\d*\.?\d+)\/(?:\d*\.?\d+)$/i.test(value)
21
+ && value.slice(5).split("/").every((part) => Number(part) <= 1));
22
+ }
23
+ /** Extract only read components; never forward an agent's original OSC payload. */
24
+ export function parseColorQueries(command, data) {
25
+ if (data.length > MAX_COLOR_FRAME_BYTES)
26
+ return [];
27
+ const parts = data.split(";");
28
+ const queries = [];
29
+ if (command === 4) {
30
+ for (let i = 0; i + 1 < parts.length; i += 2) {
31
+ const index = paletteIndex(parts[i]);
32
+ if (index !== undefined && parts[i + 1] === "?")
33
+ queries.push({ kind: "palette", index });
34
+ }
35
+ }
36
+ else if (command === 10 || command === 11) {
37
+ for (let i = 0; i < parts.length && command + i <= 11; i++) {
38
+ if (parts[i] === "?")
39
+ queries.push({ kind: command + i === 10 ? "foreground" : "background" });
40
+ }
41
+ }
42
+ return queries;
43
+ }
44
+ export function colorIdentity(query) {
45
+ return query.kind === "palette" ? `palette:${query.index}` : query.kind;
46
+ }
47
+ export function encodeColorQuery(query) {
48
+ switch (query.kind) {
49
+ case "appearance": return "\x1b[?996n";
50
+ case "foreground": return "\x1b]10;?\x07";
51
+ case "background": return "\x1b]11;?\x07";
52
+ case "palette": return `\x1b]4;${query.index};?\x07`;
53
+ }
54
+ }
55
+ export function encodeColorReport(report) {
56
+ switch (report.kind) {
57
+ case "appearance": return `\x1b[?997;${report.value}n`;
58
+ case "foreground": return `\x1b]10;${report.value}\x07`;
59
+ case "background": return `\x1b]11;${report.value}\x07`;
60
+ case "palette": return `\x1b]4;${report.index};${report.value}\x07`;
61
+ }
62
+ }
63
+ /** The framer has already removed the terminator and enforced byte/time bounds. */
64
+ export function parseColorReports(header, body) {
65
+ if (header === "\x1b[?997;") {
66
+ return body === "1" || body === "2" ? [{ kind: "appearance", value: body }] : [];
67
+ }
68
+ const parts = body.split(";");
69
+ const reports = [];
70
+ if (header === "\x1b]4;") {
71
+ for (let i = 0; i + 1 < parts.length; i += 2) {
72
+ const index = paletteIndex(parts[i]);
73
+ if (index !== undefined && isColor(parts[i + 1])) {
74
+ reports.push({ kind: "palette", index, value: parts[i + 1] });
75
+ }
76
+ }
77
+ }
78
+ else {
79
+ const command = header === "\x1b]10;" ? 10 : 11;
80
+ for (let i = 0; i < parts.length && command + i <= 11; i++) {
81
+ if (isColor(parts[i])) {
82
+ reports.push({ kind: command + i === 10 ? "foreground" : "background", value: parts[i] });
83
+ }
84
+ }
85
+ }
86
+ return reports;
87
+ }
88
+ //# sourceMappingURL=color-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-protocol.js","sourceRoot":"","sources":["../../src/terminal/color-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"host-input-mode.d.ts","sourceRoot":"","sources":["../../src/terminal/host-input-mode.ts"],"names":[],"mappings":"AAyBA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAIrE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAItE;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,IAAI,CAQrF;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAMnD"}
1
+ {"version":3,"file":"host-input-mode.d.ts","sourceRoot":"","sources":["../../src/terminal/host-input-mode.ts"],"names":[],"mappings":"AAyBA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAIrE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAOtE;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,IAAI,CAQrF;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAMnD"}
@@ -20,8 +20,12 @@ export function enableHostInputModes(out) {
20
20
  export function disableHostInputModes(out) {
21
21
  if (kittyDepth === 0)
22
22
  return;
23
- out.write(BRACKETED_PASTE_OFF + KITTY_POP);
24
- kittyDepth--;
23
+ try {
24
+ out.write(BRACKETED_PASTE_OFF + KITTY_POP);
25
+ }
26
+ finally {
27
+ kittyDepth--;
28
+ }
25
29
  }
26
30
  export function enableRightClickPasteMouseMode(out) {
27
31
  out.write(MOUSE_BUTTON_EVENT_ON + MOUSE_SGR_ON);
@@ -1 +1 @@
1
- {"version":3,"file":"host-input-mode.js","sourceRoot":"","sources":["../../src/terminal/host-input-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,WAAqC,CAAC;AAE1C,SAAS,iBAAiB;IACxB,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,GAAG,EAAE;QACjB,IAAI,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACzE,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAA0B;IAC7D,iBAAiB,EAAE,CAAC;IACpB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAA0B;IAC9D,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO;IAC7B,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAA0B;IACvE,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,CAAC,CAAC;IAChD,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,UAAU,GAAG,CAAC,CAAC;IACf,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5C,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"host-input-mode.js","sourceRoot":"","sources":["../../src/terminal/host-input-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,WAAqC,CAAC;AAE1C,SAAS,iBAAiB;IACxB,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,GAAG,EAAE;QACjB,IAAI,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACzE,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAA0B;IAC7D,iBAAiB,EAAE,CAAC;IACpB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAA0B;IAC9D,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO;IAC7B,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAA0B;IACvE,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,CAAC,CAAC;IAChD,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,GAAG,KAAK,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,UAAU,GAAG,CAAC,CAAC;IACf,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5C,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -3,6 +3,7 @@ import { VirtualTerminal } from "./virtual-terminal.js";
3
3
  import { BufferOrchestrationOutput, type OrchestrationOutput } from "./output.js";
4
4
  import { type ParentUiMode } from "./input-router.js";
5
5
  import { type KeyEventSource } from "./key-event-source.js";
6
+ import { type RegisterTerminalColors } from "./color-negotiation.js";
6
7
  import { type MouseMode } from "./mouse-mode-tracker.js";
7
8
  import { copyToClipboard } from "./clipboard-write.js";
8
9
  import { type DocSurfaceSelectionPane, type SelectionRegion } from "./selection.js";
@@ -42,10 +43,10 @@ export interface TerminalHostOptions {
42
43
  /**
43
44
  * I/O surface handed to a callback running inside `runIsolatedAltScreen`.
44
45
  * The callback owns the alternate screen for its duration; the host has
45
- * left its own alt screen and removed its stdin listener.
46
+ * left its own alt screen. The supplied source borrows the host's framing owner.
46
47
  */
47
48
  export interface IsolatedAltScreenIo {
48
- stdin: NodeJS.ReadStream;
49
+ source: KeyEventSource;
49
50
  stdout: NodeJS.WriteStream;
50
51
  /** Current terminal columns. */
51
52
  columns: number;
@@ -174,6 +175,12 @@ export declare class TerminalHost implements FeedbackSink {
174
175
  private suspended;
175
176
  private resizeListener;
176
177
  private source;
178
+ private isolatedSource;
179
+ private inputSession;
180
+ private colorBroker;
181
+ private childColors;
182
+ private reportUnsubscribe;
183
+ private readonly colorStreamError;
177
184
  private readonly injectedSource;
178
185
  private sourceUnsubscribe;
179
186
  private sourceResizeUnsubscribe;
@@ -240,6 +247,7 @@ export declare class TerminalHost implements FeedbackSink {
240
247
  isAgentSplitOpen(): boolean;
241
248
  setAgentSplitCollaborator(collaborator: AgentSplitCollaborator | undefined): void;
242
249
  openAgentSplit(pane: ArtifactPaneController): void;
250
+ invalidateAgentSplit(pane: ArtifactPaneController): void;
243
251
  closeAgentSplit(): void;
244
252
  /** Replace the status model after construction. */
245
253
  attachStatusBar(bar: StatusBar): void;
@@ -269,6 +277,7 @@ export declare class TerminalHost implements FeedbackSink {
269
277
  * The returned function detaches the child idempotently.
270
278
  */
271
279
  attachChild(handle: PtyHandle): () => void;
280
+ private attachRegisteredChild;
272
281
  detachChild(handle?: PtyHandle): void;
273
282
  /**
274
283
  * Discard the current child surface (VT screen + scrollback) and
@@ -283,6 +292,7 @@ export declare class TerminalHost implements FeedbackSink {
283
292
  clearMouseModeSource(source: string): void;
284
293
  /** Dispose the current `VirtualTerminal` and create a fresh one sized to the current layout. */
285
294
  private resetVirtualTerminal;
295
+ registerTerminalColors: RegisterTerminalColors;
286
296
  /**
287
297
  * Reset the per-child negotiation trackers (kitty keyboard + mouse modes)
288
298
  * and re-derive the host's mouse capture from the now-empty child mode set.
@@ -306,7 +316,7 @@ export declare class TerminalHost implements FeedbackSink {
306
316
  * - leaves its own alternate screen,
307
317
  * - disables reflected child mouse reporting so the foreign UI is not
308
318
  * flooded with mouse sequences,
309
- * - removes its stdin data listener,
319
+ * - releases its keyboard lease while retaining the framing reader,
310
320
  * - restores the prior raw-mode state,
311
321
  * - blocks `scheduleRender()`/`renderNow()` until resume,
312
322
  * - keeps the virtual terminal, output buffer, router, and status bar
@@ -314,7 +324,7 @@ export declare class TerminalHost implements FeedbackSink {
314
324
  * repaint after resume.
315
325
  *
316
326
  * On resume the host re-enters its alt screen, re-applies still-active
317
- * child-requested mouse modes, re-installs its raw-mode stdin listener,
327
+ * child-requested mouse modes, reacquires a borrowed raw-mode input lease,
318
328
  * recomputes layout, resizes the attached child if any, and schedules a
319
329
  * repaint.
320
330
  *
@@ -393,6 +403,7 @@ export declare class TerminalHost implements FeedbackSink {
393
403
  private handleChildAlternateChange;
394
404
  private renderUiSurfaceRows;
395
405
  private renderMessageRows;
406
+ private messageRows;
396
407
  private handleResize;
397
408
  private notifyParentUiResize;
398
409
  private computeLayout;
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/terminal/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/terminal/host.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,12 @@ import { ALT_SCREEN_OFF, ALT_SCREEN_ON, BEGIN_SYNC_UPDATE, CLEAR_SCREEN, CURSOR_
2
2
  import { computeTerminalLayout } from "./layout.js";
3
3
  import { VirtualTerminal } from "./virtual-terminal.js";
4
4
  import { composeAbsoluteRow, renderChildViewportRows, renderViewportLines, renderStatusRowBody, shouldShowVtCursor, } from "./render.js";
5
- import { BufferOrchestrationOutput, formatOrchestrationMessage, } from "./output.js";
5
+ import { BufferOrchestrationOutput, formatOrchestrationMessageRows, } from "./output.js";
6
6
  import { InputRouter, parseSgrMouseFrame, } from "./input-router.js";
7
7
  import { createKeyEventSource } from "./key-event-source.js";
8
+ import { TerminalInputSession } from "./input-session.js";
9
+ import { resolveWindowsTerminalShiftEnterBytes } from "./windows-terminal-shift-enter.js";
10
+ import { ColorNegotiation } from "./color-negotiation.js";
8
11
  import { ChildKittyNegotiator } from "./kitty-negotiator.js";
9
12
  import { MouseModeReconciler, MouseModeTracker, } from "./mouse-mode-tracker.js";
10
13
  import { buildOsc52Forward } from "./osc52.js";
@@ -60,6 +63,12 @@ export class TerminalHost {
60
63
  suspended = false;
61
64
  resizeListener;
62
65
  source;
66
+ isolatedSource;
67
+ inputSession;
68
+ colorBroker;
69
+ childColors;
70
+ reportUnsubscribe;
71
+ colorStreamError = () => { this.colorBroker?.fail(); };
63
72
  injectedSource;
64
73
  sourceUnsubscribe;
65
74
  sourceResizeUnsubscribe;
@@ -233,6 +242,12 @@ export class TerminalHost {
233
242
  this.invalidateFrameCache();
234
243
  this.scheduleRender();
235
244
  }
245
+ invalidateAgentSplit(pane) {
246
+ if (!this.agentSplit?.open || this.agentSplit.pane !== pane)
247
+ return;
248
+ this.invalidateFrameCache();
249
+ this.scheduleRender();
250
+ }
236
251
  closeAgentSplit() {
237
252
  if (this.agentSplit?.open !== true)
238
253
  return;
@@ -273,54 +288,99 @@ export class TerminalHost {
273
288
  return;
274
289
  this.started = true;
275
290
  this.stopped = false;
276
- this.layout = this.computeLayout();
277
- this.resetVirtualTerminal();
278
- this.stdout.write(ALT_SCREEN_ON + CLEAR_SCREEN + CURSOR_HOME + HIDE_CURSOR);
279
- this.reconcileHostMouseCapture();
280
- if (this.stdin.isTTY) {
281
- this.startSource();
282
- this.stdout.write(QUERY_SYNC_UPDATE);
291
+ try {
292
+ if (this.stdin.isTTY && !this.injectedSource) {
293
+ this.inputSession = new TerminalInputSession(this.stdin, resolveWindowsTerminalShiftEnterBytes());
294
+ this.colorBroker = new ColorNegotiation({
295
+ enabled: this.stdout.isTTY === true,
296
+ writeQuery: (data, onError) => { this.stdout.write(data, onError); },
297
+ warn: (message) => this.output.warn(message),
298
+ });
299
+ const broker = this.colorBroker;
300
+ this.reportUnsubscribe = this.inputSession.onReport((report) => broker.receive(report));
301
+ this.stdin.on("error", this.colorStreamError);
302
+ this.stdout.on("error", this.colorStreamError);
303
+ }
304
+ this.layout = this.computeLayout();
305
+ this.resetVirtualTerminal();
306
+ this.stdout.write(ALT_SCREEN_ON + CLEAR_SCREEN + CURSOR_HOME + HIDE_CURSOR);
307
+ this.reconcileHostMouseCapture();
308
+ if (this.stdin.isTTY) {
309
+ this.startSource();
310
+ this.stdout.write(QUERY_SYNC_UPDATE);
311
+ }
312
+ this.resizeListener = () => this.handleResize();
313
+ this.stdout.on("resize", this.resizeListener);
314
+ this.scheduleRender();
315
+ }
316
+ catch (error) {
317
+ try {
318
+ this.stop();
319
+ }
320
+ catch (cleanupError) {
321
+ throw new AggregateError([error, cleanupError], "Terminal host start and cleanup failed");
322
+ }
323
+ throw error;
283
324
  }
284
- this.resizeListener = () => this.handleResize();
285
- this.stdout.on("resize", this.resizeListener);
286
- this.scheduleRender();
287
325
  }
288
326
  startSource() {
289
327
  this.source = this.injectedSource
290
- ?? createKeyEventSource({ stdin: this.stdin, stdout: this.stdout });
291
- this.source.start();
328
+ ?? createKeyEventSource({ stdin: this.stdin, stdout: this.stdout, inputSession: this.inputSession });
292
329
  this.sourceUnsubscribe = this.source.onEvents((events) => {
293
330
  this.router.handleEvents(events);
294
331
  });
295
332
  this.sourceResizeUnsubscribe = this.source.onResize((size) => this.handleResize(size));
333
+ this.source.start();
296
334
  }
297
335
  stopSource() {
298
336
  this.sourceUnsubscribe?.();
299
337
  this.sourceUnsubscribe = undefined;
300
338
  this.sourceResizeUnsubscribe?.();
301
339
  this.sourceResizeUnsubscribe = undefined;
302
- this.source?.stop();
340
+ const source = this.source;
303
341
  this.source = undefined;
342
+ source?.stop();
304
343
  }
305
344
  stop() {
306
345
  if (!this.started || this.stopped)
307
346
  return;
308
347
  this.stopped = true;
309
348
  this.resetDragScrollState();
310
- this.stopSource();
349
+ const errors = [];
350
+ const cleanup = (action) => {
351
+ try {
352
+ action();
353
+ }
354
+ catch (error) {
355
+ errors.push(error);
356
+ }
357
+ };
358
+ cleanup(() => this.stopSource());
359
+ cleanup(() => this.isolatedSource?.stop());
360
+ this.isolatedSource = undefined;
361
+ this.colorBroker?.dispose();
362
+ this.colorBroker = undefined;
363
+ this.reportUnsubscribe?.();
364
+ this.reportUnsubscribe = undefined;
365
+ cleanup(() => this.inputSession?.dispose());
366
+ this.inputSession = undefined;
367
+ this.stdin.removeListener("error", this.colorStreamError);
368
+ this.stdout.removeListener("error", this.colorStreamError);
311
369
  if (this.resizeListener) {
312
370
  this.stdout.removeListener("resize", this.resizeListener);
313
371
  this.resizeListener = undefined;
314
372
  }
315
- this.detachChild();
373
+ cleanup(() => this.detachChild());
316
374
  this.router.destroy();
317
375
  this.vt?.dispose();
318
376
  this.vt = undefined;
319
377
  this.mouseModes.clearAll();
320
- this.stdout.write(MOUSE_OFF + RESET_SCROLL_REGION + CLEAR_SCREEN + CURSOR_HOME + ALT_SCREEN_OFF + SHOW_CURSOR);
378
+ cleanup(() => this.stdout.write(MOUSE_OFF + RESET_SCROLL_REGION + CLEAR_SCREEN + CURSOR_HOME + ALT_SCREEN_OFF + SHOW_CURSOR));
321
379
  // Drop any lingering subscribers — once the host has stopped, late
322
380
  // interrupt callbacks would see torn-down state.
323
381
  this.interruptListeners.clear();
382
+ if (errors.length > 0)
383
+ throw new AggregateError(errors, "Terminal host cleanup failed");
324
384
  }
325
385
  /**
326
386
  * Attach a PTY handle to the host. The host begins routing PTY data
@@ -336,6 +396,25 @@ export class TerminalHost {
336
396
  */
337
397
  attachChild(handle) {
338
398
  this.detachChild();
399
+ const colors = this.registerTerminalColors((data) => handle.write(data));
400
+ this.childColors = colors;
401
+ try {
402
+ return this.attachRegisteredChild(handle);
403
+ }
404
+ catch (error) {
405
+ colors.dispose();
406
+ this.childColors = undefined;
407
+ try {
408
+ this.detachChild(handle);
409
+ }
410
+ catch (cleanupError) {
411
+ throw new AggregateError([error, cleanupError], "Terminal child attachment and cleanup failed");
412
+ }
413
+ throw error;
414
+ }
415
+ }
416
+ attachRegisteredChild(handle) {
417
+ const colors = this.childColors;
339
418
  // Each agent run starts with a fresh VT and empty scrollback so prior
340
419
  // child output cannot remain visible or be reached via PageUp.
341
420
  this.resetVirtualTerminal();
@@ -345,6 +424,7 @@ export class TerminalHost {
345
424
  this.router.attachChild(handle);
346
425
  this.agentSplit?.collaborator?.onChildAttached?.();
347
426
  const boundHandle = handle;
427
+ handle.onExit(() => colors?.dispose());
348
428
  let lastChildAlternate = this.vt?.isAlternate === true;
349
429
  handle.onData((data) => {
350
430
  // Skip render writes if a different child has been attached or the
@@ -420,6 +500,8 @@ export class TerminalHost {
420
500
  return;
421
501
  if (!this.childHandle)
422
502
  return;
503
+ this.childColors?.dispose();
504
+ this.childColors = undefined;
423
505
  this.clearSelection({ schedule: false });
424
506
  const collaborator = this.agentSplit?.collaborator;
425
507
  if (this.agentSplit?.open === true) {
@@ -468,13 +550,18 @@ export class TerminalHost {
468
550
  this.clearSelection({ schedule: false });
469
551
  this.vt?.dispose();
470
552
  const rect = this.childViewportRect();
553
+ const colors = this.childColors;
471
554
  this.vt = new VirtualTerminal(rect.cols, rect.rows, {
472
555
  onOscClipboard: (data) => this.forwardOscClipboard(data),
556
+ onColorQuery: (query) => colors?.query(query),
473
557
  });
474
558
  this.lastAppliedChildRect = rect;
475
559
  // A fresh VT means the cached frame no longer reflects the screen.
476
560
  this.invalidateFrameCache();
477
561
  }
562
+ registerTerminalColors = (writeReply, signal) => {
563
+ return this.colorBroker?.register(writeReply, signal) ?? { query() { }, dispose() { } };
564
+ };
478
565
  /**
479
566
  * Reset the per-child negotiation trackers (kitty keyboard + mouse modes)
480
567
  * and re-derive the host's mouse capture from the now-empty child mode set.
@@ -535,7 +622,7 @@ export class TerminalHost {
535
622
  * - leaves its own alternate screen,
536
623
  * - disables reflected child mouse reporting so the foreign UI is not
537
624
  * flooded with mouse sequences,
538
- * - removes its stdin data listener,
625
+ * - releases its keyboard lease while retaining the framing reader,
539
626
  * - restores the prior raw-mode state,
540
627
  * - blocks `scheduleRender()`/`renderNow()` until resume,
541
628
  * - keeps the virtual terminal, output buffer, router, and status bar
@@ -543,7 +630,7 @@ export class TerminalHost {
543
630
  * repaint after resume.
544
631
  *
545
632
  * On resume the host re-enters its alt screen, re-applies still-active
546
- * child-requested mouse modes, re-installs its raw-mode stdin listener,
633
+ * child-requested mouse modes, reacquires a borrowed raw-mode input lease,
547
634
  * recomputes layout, resizes the attached child if any, and schedules a
548
635
  * repaint.
549
636
  *
@@ -558,37 +645,51 @@ export class TerminalHost {
558
645
  throw new Error("TerminalHost.runIsolatedAltScreen: already suspended");
559
646
  }
560
647
  this.suspended = true;
561
- this.stopSource();
562
- this.reconcileHostMouseCapture();
563
- this.mouseModes.setReflectionEnabled(false);
564
- this.stdout.write(MOUSE_OFF + RESET_SCROLL_REGION + CLEAR_SCREEN + CURSOR_HOME + ALT_SCREEN_OFF + SHOW_CURSOR);
565
- const layoutSnapshot = this.layout ?? this.computeLayout();
566
- const io = {
567
- stdin: this.stdin,
568
- stdout: this.stdout,
569
- columns: layoutSnapshot.columns,
570
- rows: layoutSnapshot.rows,
571
- triggerDump: () => this.onDump?.(),
572
- };
648
+ this.colorBroker?.setSuspended(true);
649
+ let isolatedSource;
573
650
  try {
651
+ this.stopSource();
652
+ this.reconcileHostMouseCapture();
653
+ this.mouseModes.setReflectionEnabled(false);
654
+ this.stdout.write(MOUSE_OFF + RESET_SCROLL_REGION + CLEAR_SCREEN + CURSOR_HOME + ALT_SCREEN_OFF + SHOW_CURSOR);
655
+ const layoutSnapshot = this.layout ?? this.computeLayout();
656
+ isolatedSource = this.injectedSource
657
+ ?? createKeyEventSource({ stdin: this.stdin, stdout: this.stdout, inputSession: this.inputSession });
658
+ this.isolatedSource = isolatedSource;
659
+ const io = {
660
+ source: isolatedSource,
661
+ stdout: this.stdout,
662
+ columns: layoutSnapshot.columns,
663
+ rows: layoutSnapshot.rows,
664
+ triggerDump: () => { if (this.isActive)
665
+ this.onDump?.(); },
666
+ };
574
667
  return await run(io);
575
668
  }
576
669
  finally {
577
- this.reconcileHostMouseCapture();
578
- this.stdout.write(ALT_SCREEN_ON
579
- + CLEAR_SCREEN
580
- + CURSOR_HOME
581
- + HIDE_CURSOR
582
- + this.mouseModes.setReflectionEnabled(true));
583
- if (this.stdin.isTTY) {
584
- this.startSource();
670
+ try {
671
+ isolatedSource?.stop();
672
+ }
673
+ finally {
674
+ this.isolatedSource = undefined;
675
+ if (!this.stopped) {
676
+ this.reconcileHostMouseCapture();
677
+ this.stdout.write(ALT_SCREEN_ON
678
+ + CLEAR_SCREEN
679
+ + CURSOR_HOME
680
+ + HIDE_CURSOR
681
+ + this.mouseModes.setReflectionEnabled(true));
682
+ if (this.stdin.isTTY)
683
+ this.startSource();
684
+ this.suspended = false;
685
+ this.colorBroker?.setSuspended(false);
686
+ this.layout = this.computeLayout();
687
+ this.applyChildViewportSize();
688
+ this.invalidateFrameCache();
689
+ this.notifyParentUiResize();
690
+ this.scheduleRender();
691
+ }
585
692
  }
586
- this.suspended = false;
587
- this.layout = this.computeLayout();
588
- this.applyChildViewportSize();
589
- this.invalidateFrameCache();
590
- this.notifyParentUiResize();
591
- this.scheduleRender();
592
693
  }
593
694
  }
594
695
  invalidateFrameCache() {
@@ -1677,19 +1778,16 @@ export class TerminalHost {
1677
1778
  renderMessageRows(rows, layout) {
1678
1779
  if (layout.warningRows === 0 || layout.warningStartRow === undefined)
1679
1780
  return;
1680
- const messages = this.bufferOutput.snapshot();
1681
- if (messages.length === 0)
1682
- return;
1683
- // Show the newest messages when the buffer has more than the strip
1684
- // can hold. The strip is sized to `layout.warningRows`, capped at 3
1685
- // by `computeTerminalLayout`.
1686
- const slice = messages.slice(-layout.warningRows);
1687
- for (let i = 0; i < slice.length; i++) {
1688
- const text = formatOrchestrationMessage(slice[i]);
1689
- const padded = padOrClip(text, layout.columns);
1781
+ const lines = this.messageRows(layout.columns).slice(-layout.warningRows);
1782
+ for (let i = 0; i < lines.length; i++) {
1783
+ const padded = padOrClip(lines[i], layout.columns);
1690
1784
  rows[layout.warningStartRow - 1 + i] = `\x1b[2K\x1b[0m${padded}`;
1691
1785
  }
1692
1786
  }
1787
+ messageRows(columns) {
1788
+ return this.bufferOutput.snapshot().slice(-3)
1789
+ .flatMap((message) => formatOrchestrationMessageRows(message, columns));
1790
+ }
1693
1791
  handleResize(size) {
1694
1792
  if (!this.isActive)
1695
1793
  return;
@@ -1735,13 +1833,14 @@ export class TerminalHost {
1735
1833
  // Layout policy lives here, not in StatusBar.reservedRows. The status
1736
1834
  // row is reserved whenever a status bar is attached and we have a TTY
1737
1835
  // — `computeTerminalLayout` enforces the rows >= 2 rule. The warning
1738
- // strip height tracks the current buffer size (capped at 3 by the
1739
- // layout function).
1836
+ // strip keeps the newest three messages, expanding opt-in wrapped text.
1740
1837
  const statusEnabled = this.statusBar !== undefined
1741
1838
  && this.stdout.isTTY === true
1742
1839
  && !this.parentUiSuppressesStatusBar();
1743
- const warningRows = this.bufferOutput.snapshot().length;
1744
- return computeTerminalLayout({ columns, rows, statusEnabled, warningRows });
1840
+ const warningRows = this.messageRows(columns).length;
1841
+ return computeTerminalLayout({
1842
+ columns, rows, statusEnabled, warningRows, maxWarningRows: warningRows,
1843
+ });
1745
1844
  }
1746
1845
  parentUiSuppressesStatusBar() {
1747
1846
  return this.parentUi !== undefined