poly-weaver 0.5.1 → 0.6.0

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 (146) hide show
  1. package/dist/agents/implementors/handler.d.ts.map +1 -1
  2. package/dist/agents/implementors/handler.js +2 -1
  3. package/dist/agents/implementors/handler.js.map +1 -1
  4. package/dist/agents/planners/handler.d.ts.map +1 -1
  5. package/dist/agents/planners/handler.js +2 -1
  6. package/dist/agents/planners/handler.js.map +1 -1
  7. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  8. package/dist/agents/reviewers/handler.js +9 -2
  9. package/dist/agents/reviewers/handler.js.map +1 -1
  10. package/dist/agents/runner.d.ts +40 -1
  11. package/dist/agents/runner.d.ts.map +1 -1
  12. package/dist/agents/runner.js +213 -14
  13. package/dist/agents/runner.js.map +1 -1
  14. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  15. package/dist/agents/simplifiers/handler.js +2 -1
  16. package/dist/agents/simplifiers/handler.js.map +1 -1
  17. package/dist/ansi.d.ts +26 -0
  18. package/dist/ansi.d.ts.map +1 -1
  19. package/dist/ansi.js +26 -0
  20. package/dist/ansi.js.map +1 -1
  21. package/dist/cli.js +46 -16
  22. package/dist/cli.js.map +1 -1
  23. package/dist/flow/built-in/default.js +1 -1
  24. package/dist/flow/built-in/default.js.map +1 -1
  25. package/dist/flow/built-in/default.ts +1 -1
  26. package/dist/flow/built-in/why-so-serious.js +1 -1
  27. package/dist/flow/built-in/why-so-serious.js.map +1 -1
  28. package/dist/flow/executor.d.ts.map +1 -1
  29. package/dist/flow/executor.js +7 -2
  30. package/dist/flow/executor.js.map +1 -1
  31. package/dist/flow/types.d.ts +5 -0
  32. package/dist/flow/types.d.ts.map +1 -1
  33. package/dist/flow/types.js.map +1 -1
  34. package/dist/orchestrator.d.ts +10 -4
  35. package/dist/orchestrator.d.ts.map +1 -1
  36. package/dist/orchestrator.js +34 -14
  37. package/dist/orchestrator.js.map +1 -1
  38. package/dist/providers/claude/session.d.ts +3 -1
  39. package/dist/providers/claude/session.d.ts.map +1 -1
  40. package/dist/providers/claude/session.js +2 -2
  41. package/dist/providers/claude/session.js.map +1 -1
  42. package/dist/providers/codex/session.d.ts +6 -3
  43. package/dist/providers/codex/session.d.ts.map +1 -1
  44. package/dist/providers/codex/session.js +24 -4
  45. package/dist/providers/codex/session.js.map +1 -1
  46. package/dist/providers/copilot/session.d.ts +3 -1
  47. package/dist/providers/copilot/session.d.ts.map +1 -1
  48. package/dist/providers/copilot/session.js +15 -2
  49. package/dist/providers/copilot/session.js.map +1 -1
  50. package/dist/providers/types.d.ts +14 -2
  51. package/dist/providers/types.d.ts.map +1 -1
  52. package/dist/providers/types.js.map +1 -1
  53. package/dist/pty/exit.d.ts +13 -5
  54. package/dist/pty/exit.d.ts.map +1 -1
  55. package/dist/pty/exit.js +19 -19
  56. package/dist/pty/exit.js.map +1 -1
  57. package/dist/pty/spawn.d.ts +12 -6
  58. package/dist/pty/spawn.d.ts.map +1 -1
  59. package/dist/pty/spawn.js +22 -70
  60. package/dist/pty/spawn.js.map +1 -1
  61. package/dist/pty/types.d.ts +12 -3
  62. package/dist/pty/types.d.ts.map +1 -1
  63. package/dist/session/locator.d.ts +23 -2
  64. package/dist/session/locator.d.ts.map +1 -1
  65. package/dist/session/locator.js +67 -4
  66. package/dist/session/locator.js.map +1 -1
  67. package/dist/status-bar.d.ts +21 -1
  68. package/dist/status-bar.d.ts.map +1 -1
  69. package/dist/status-bar.js +109 -34
  70. package/dist/status-bar.js.map +1 -1
  71. package/dist/terminal/cleanup.d.ts +21 -0
  72. package/dist/terminal/cleanup.d.ts.map +1 -0
  73. package/dist/terminal/cleanup.js +22 -0
  74. package/dist/terminal/cleanup.js.map +1 -0
  75. package/dist/terminal/host.d.ts +244 -0
  76. package/dist/terminal/host.d.ts.map +1 -0
  77. package/dist/terminal/host.js +642 -0
  78. package/dist/terminal/host.js.map +1 -0
  79. package/dist/terminal/input-router.d.ts +146 -0
  80. package/dist/terminal/input-router.d.ts.map +1 -0
  81. package/dist/terminal/input-router.js +426 -0
  82. package/dist/terminal/input-router.js.map +1 -0
  83. package/dist/terminal/layout.d.ts +55 -0
  84. package/dist/terminal/layout.d.ts.map +1 -0
  85. package/dist/terminal/layout.js +51 -0
  86. package/dist/terminal/layout.js.map +1 -0
  87. package/dist/terminal/output.d.ts +83 -0
  88. package/dist/terminal/output.d.ts.map +1 -0
  89. package/dist/terminal/output.js +107 -0
  90. package/dist/terminal/output.js.map +1 -0
  91. package/dist/terminal/render.d.ts +36 -0
  92. package/dist/terminal/render.d.ts.map +1 -0
  93. package/dist/terminal/render.js +233 -0
  94. package/dist/terminal/render.js.map +1 -0
  95. package/dist/terminal/virtual-terminal.d.ts +54 -0
  96. package/dist/terminal/virtual-terminal.d.ts.map +1 -0
  97. package/dist/terminal/virtual-terminal.js +110 -0
  98. package/dist/terminal/virtual-terminal.js.map +1 -0
  99. package/dist/terminal-input.d.ts +10 -0
  100. package/dist/terminal-input.d.ts.map +1 -1
  101. package/dist/terminal-input.js +46 -0
  102. package/dist/terminal-input.js.map +1 -1
  103. package/dist/user/auto-curate-prompt.d.ts +17 -0
  104. package/dist/user/auto-curate-prompt.d.ts.map +1 -0
  105. package/dist/user/auto-curate-prompt.js +22 -0
  106. package/dist/user/auto-curate-prompt.js.map +1 -0
  107. package/dist/user/curate-handler.d.ts.map +1 -1
  108. package/dist/user/curate-handler.js +10 -2
  109. package/dist/user/curate-handler.js.map +1 -1
  110. package/dist/user/curate-prompt.d.ts +9 -7
  111. package/dist/user/curate-prompt.d.ts.map +1 -1
  112. package/dist/user/curate-prompt.js +2 -341
  113. package/dist/user/curate-prompt.js.map +1 -1
  114. package/dist/user/handler.d.ts +13 -1
  115. package/dist/user/handler.d.ts.map +1 -1
  116. package/dist/user/handler.js +27 -15
  117. package/dist/user/handler.js.map +1 -1
  118. package/dist/user/hard-wrap.d.ts +11 -0
  119. package/dist/user/hard-wrap.d.ts.map +1 -0
  120. package/dist/user/hard-wrap.js +44 -0
  121. package/dist/user/hard-wrap.js.map +1 -0
  122. package/dist/user/host-curate-prompt.d.ts +34 -0
  123. package/dist/user/host-curate-prompt.d.ts.map +1 -0
  124. package/dist/user/host-curate-prompt.js +453 -0
  125. package/dist/user/host-curate-prompt.js.map +1 -0
  126. package/dist/user/host-prompt.d.ts +21 -0
  127. package/dist/user/host-prompt.d.ts.map +1 -0
  128. package/dist/user/host-prompt.js +337 -0
  129. package/dist/user/host-prompt.js.map +1 -0
  130. package/dist/user/index.d.ts +3 -3
  131. package/dist/user/index.d.ts.map +1 -1
  132. package/dist/user/index.js +2 -2
  133. package/dist/user/index.js.map +1 -1
  134. package/dist/user/plan-pane.d.ts +18 -0
  135. package/dist/user/plan-pane.d.ts.map +1 -0
  136. package/dist/user/plan-pane.js +33 -0
  137. package/dist/user/plan-pane.js.map +1 -0
  138. package/dist/user/prompt.d.ts +25 -42
  139. package/dist/user/prompt.d.ts.map +1 -1
  140. package/dist/user/prompt.js +16 -278
  141. package/dist/user/prompt.js.map +1 -1
  142. package/dist/user/split-surface.d.ts +32 -0
  143. package/dist/user/split-surface.d.ts.map +1 -0
  144. package/dist/user/split-surface.js +66 -0
  145. package/dist/user/split-surface.js.map +1 -0
  146. package/package.json +2 -1
@@ -1,7 +1,7 @@
1
1
  import { TerminalKeyParser } from "../terminal-input.js";
2
- import { bold, dim, green, reset, yellow, clearToEol, cursorUp } from "../ansi.js";
3
2
  import { DUMP_HOTKEY_BYTE } from "../dump/hotkey.js";
4
- import { DEFAULT_GATES } from "../providers/registry.js";
3
+ /** Lines moved per single mouse-wheel notch in prompt scroll handling. */
4
+ export const PROMPT_WHEEL_LINES_PER_EVENT = 3;
5
5
  /**
6
6
  * Stateful parser for raw stdin bytes in normal VT mode and passive kitty keyboard
7
7
  * protocol mode.
@@ -10,9 +10,6 @@ export class RawInputParser {
10
10
  parser = new TerminalKeyParser();
11
11
  deferredHandler;
12
12
  constructor() {
13
- // Bare ESC in legacy VT mode arrives via the underlying TerminalKeyParser's
14
- // escape timeout; surface it through our own deferred callback so consumers
15
- // that subscribe see Esc as an event and can react to it.
16
13
  this.parser.onDeferredKeys((keys) => {
17
14
  if (!this.deferredHandler)
18
15
  return;
@@ -47,7 +44,7 @@ export class RawInputParser {
47
44
  if (key.byte === 0x03)
48
45
  return [{ type: "ctrl-c" }];
49
46
  if (key.byte === 0x04)
50
- return [{ type: "submit" }]; // Ctrl+D
47
+ return [{ type: "submit" }];
51
48
  if (key.byte === 0x09)
52
49
  return [{ type: "tab" }];
53
50
  return [];
@@ -56,9 +53,20 @@ export class RawInputParser {
56
53
  return [{ type: "arrow", direction: key.direction }];
57
54
  }
58
55
  return [];
56
+ case "page":
57
+ return [{ type: "scroll-page", direction: key.direction }];
58
+ case "home":
59
+ return [{ type: "scroll-home" }];
60
+ case "end":
61
+ return [{ type: "scroll-end" }];
62
+ case "wheel": {
63
+ const delta = key.direction === "up"
64
+ ? -PROMPT_WHEEL_LINES_PER_EVENT
65
+ : PROMPT_WHEEL_LINES_PER_EVENT;
66
+ return [{ type: "scroll-lines", delta }];
67
+ }
59
68
  case "kitty-key": {
60
69
  const ctrl = ((key.modifiers - 1) & 0x04) !== 0;
61
- // Ctrl+Enter → submit (modifiers bit 2 = Ctrl)
62
70
  if ((key.keyCode === 13 || key.keyCode === 10) && ctrl) {
63
71
  return [{ type: "submit" }];
64
72
  }
@@ -68,12 +76,9 @@ export class RawInputParser {
68
76
  if (key.keyCode === 100 && ctrl) {
69
77
  return [{ type: "submit" }];
70
78
  }
71
- // Ctrl+] → dump (keyCode 93, Ctrl modifier bit set)
72
79
  if (key.keyCode === 93 && ctrl) {
73
80
  return [{ type: "dump" }];
74
81
  }
75
- // Plain Tab (no Ctrl). Shift+Tab still produces tab; Ctrl+Tab is a
76
- // shortcut consumers haven't asked for, so we drop it for now.
77
82
  if (key.keyCode === 9 && !ctrl) {
78
83
  return [{ type: "tab" }];
79
84
  }
@@ -88,274 +93,7 @@ export class RawInputParser {
88
93
  }
89
94
  }
90
95
  /**
91
- * Interactive user prompt handler.
92
- * Displays the plan (unless nativePlanMode gate suppresses it) and collects multiline input.
93
- * Empty input = accept, non-empty = comments for revision.
94
- *
95
- * Uses a raw stdin reader instead of readline so that input works in
96
- * both standard VT mode and passive kitty keyboard protocol mode.
97
- */
98
- export class InteractiveUserPrompt {
99
- gates;
100
- onDumpRequested;
101
- constructor(gates = DEFAULT_GATES, onDumpRequested) {
102
- this.gates = gates;
103
- this.onDumpRequested = onDumpRequested;
104
- }
105
- async prompt(plan, phase, context) {
106
- // Non-TTY stdin: auto-accept (same as AutoUserPrompt)
107
- if (!process.stdin.isTTY) {
108
- return { accepted: true };
109
- }
110
- if (this.shouldDisplayPlan(context)) {
111
- this.printPlan(plan, phase, context);
112
- }
113
- const contextMsg = context?.isFirstReview === true
114
- ? "Review the generated plan."
115
- : context?.verdictSource === "user"
116
- ? "Revised plan addressing your feedback."
117
- : context?.verdictApproved === true
118
- ? "Reviewer approved this plan."
119
- : "Max iterations reached \u2014 plan was not approved by reviewer.";
120
- console.log(`${dim}${"─".repeat(3)} User Review ${"─".repeat(45)}${reset}`);
121
- console.log(`${yellow}${contextMsg}${reset}`);
122
- return this.collectDecision("Type feedback (multi-line, Ctrl+D to submit)");
123
- }
124
- /** True unless the provider already streamed the plan natively (planner → user). */
125
- shouldDisplayPlan(context) {
126
- return !(this.gates.nativePlanMode && context?.previousStepRole === "planner");
127
- }
128
- printPlan(plan, phase, context) {
129
- const header = context?.isFirstReview === true
130
- ? "Generated Plan"
131
- : context?.verdictSource === "user"
132
- ? "Revised Plan"
133
- : context?.verdictApproved === true
134
- ? "Approved Plan"
135
- : "Unapproved Plan (Max Iterations Reached)";
136
- const sep = "═".repeat(60);
137
- console.log(`\n${sep}`);
138
- console.log(` ${header}`);
139
- console.log(sep);
140
- console.log(plan);
141
- console.log(`${sep}\n`);
142
- }
143
- /**
144
- * Two-row selector: "Approve" row and multiline feedback input area.
145
- * `❯` arrow moves between rows to indicate which is active.
146
- * Input row is active by default — just start typing.
147
- * Enter inserts a newline; Ctrl+D submits.
148
- * Approve requires ↑ then Enter.
149
- */
150
- collectDecision(placeholder) {
151
- const ACTIVE = " \u276f "; // 2 spaces + ❯ + space
152
- const INACTIVE = " "; // 4 spaces
153
- const HINT = `${INACTIVE}${dim}Ctrl+D to submit${reset}`;
154
- return new Promise((resolve) => {
155
- process.stdin.setRawMode(true);
156
- process.stdin.resume();
157
- let mode = "input";
158
- let lines = [""];
159
- let placeholderVisible = true;
160
- let renderedRows = 1; // 1 input row (no decorative continuation rows)
161
- const parser = new RawInputParser();
162
- // Initial render: approve (inactive), input (active + placeholder), 2 continuation rows
163
- process.stdout.write(`${INACTIVE}${dim}Approve${reset}\n`);
164
- process.stdout.write(`${ACTIVE}${dim}${placeholder}${reset}\n`);
165
- // Position cursor on input line, right after ACTIVE prefix
166
- process.stdout.write(`${cursorUp}\r\x1b[${ACTIVE.length}C`);
167
- const done = (result) => {
168
- process.stdin.removeListener("data", onData);
169
- process.stdin.setRawMode(false);
170
- process.stdin.resume();
171
- // Move cursor below all rendered rows
172
- const curRow = mode === "approve" ? 0 : lines.length;
173
- const rowsDown = renderedRows - curRow;
174
- if (rowsDown > 0) {
175
- process.stdout.write(`\x1b[${rowsDown}B`);
176
- }
177
- process.stdout.write("\n");
178
- resolve(result);
179
- };
180
- const renderApproveMode = () => {
181
- // Move from last typed line to first input line
182
- if (lines.length > 1) {
183
- process.stdout.write(`\x1b[${lines.length - 1}A`);
184
- }
185
- // Redraw first input line as inactive
186
- process.stdout.write(`\r${clearToEol}`);
187
- process.stdout.write(`${INACTIVE}${dim}${lines[0] || placeholder}${reset}`);
188
- // Move to approve, redraw as active
189
- process.stdout.write(`${cursorUp}\r${clearToEol}`);
190
- process.stdout.write(`${ACTIVE}${bold}${green}Approve (Enter)${reset}`);
191
- // Cursor stays on approve line.
192
- };
193
- const renderInputMode = () => {
194
- // Redraw approve as inactive
195
- process.stdout.write(`\r${clearToEol}`);
196
- process.stdout.write(`${INACTIVE}${dim}Approve${reset}`);
197
- // Move to first input line, redraw as active
198
- process.stdout.write(`\n\r${clearToEol}`);
199
- if (lines[0]) {
200
- process.stdout.write(`${ACTIVE}${lines[0]}`);
201
- placeholderVisible = false;
202
- }
203
- else {
204
- process.stdout.write(`${ACTIVE}${dim}${placeholder}${reset}`);
205
- process.stdout.write(`\x1b[${placeholder.length}D`);
206
- placeholderVisible = true;
207
- }
208
- // Move to last typed line
209
- if (lines.length > 1) {
210
- process.stdout.write(`\x1b[${lines.length - 1}B`);
211
- const lastLine = lines[lines.length - 1];
212
- process.stdout.write(`\r\x1b[${INACTIVE.length + lastLine.length}C`);
213
- }
214
- if (!placeholderVisible)
215
- drawHint();
216
- };
217
- const clearPlaceholder = () => {
218
- if (placeholderVisible) {
219
- process.stdout.write(`\r${clearToEol}${ACTIVE}`);
220
- // Clear decorative continuation rows below
221
- const extra = renderedRows - 1;
222
- for (let i = 0; i < extra; i++) {
223
- process.stdout.write(`\n\r${clearToEol}`);
224
- }
225
- if (extra > 0) {
226
- process.stdout.write(`\x1b[${extra}A`);
227
- }
228
- renderedRows = 1;
229
- placeholderVisible = false;
230
- }
231
- };
232
- const drawHint = () => {
233
- const col = INACTIVE.length + lines[lines.length - 1].length;
234
- process.stdout.write(`\n\r${clearToEol}${HINT}${cursorUp}\r`);
235
- if (col > 0)
236
- process.stdout.write(`\x1b[${col}C`);
237
- renderedRows = Math.max(renderedRows, lines.length + 1);
238
- };
239
- const clearHint = () => {
240
- const col = INACTIVE.length + lines[lines.length - 1].length;
241
- process.stdout.write(`\n\r${clearToEol}${cursorUp}\r`);
242
- if (col > 0)
243
- process.stdout.write(`\x1b[${col}C`);
244
- };
245
- const showPlaceholder = () => {
246
- process.stdout.write(`\r${clearToEol}${ACTIVE}${dim}${placeholder}${reset}`);
247
- process.stdout.write(`\x1b[${placeholder.length}D`);
248
- const extraRows = renderedRows - 1;
249
- for (let i = 0; i < extraRows; i++) {
250
- process.stdout.write(`\n\r${clearToEol}`);
251
- }
252
- if (extraRows > 0) {
253
- process.stdout.write(`\x1b[${extraRows}A`);
254
- }
255
- renderedRows = 1;
256
- placeholderVisible = true;
257
- };
258
- const onData = (chunk) => {
259
- const events = parser.parseChunk(chunk);
260
- for (const event of events) {
261
- if (event.type === "dump") {
262
- this.onDumpRequested?.();
263
- continue;
264
- }
265
- if (event.type === "ctrl-c") {
266
- done({ accepted: true });
267
- return;
268
- }
269
- if (event.type === "submit") {
270
- if (mode === "approve") {
271
- done({ accepted: true });
272
- return;
273
- }
274
- // Input mode: submit full text if non-empty
275
- const text = lines.join("\n").trim();
276
- if (text) {
277
- done({ accepted: false, comments: text });
278
- return;
279
- }
280
- // Empty input — ignore
281
- continue;
282
- }
283
- if (event.type === "newline") {
284
- if (mode === "approve") {
285
- done({ accepted: true });
286
- return;
287
- }
288
- // Input mode: insert newline
289
- clearPlaceholder();
290
- clearHint();
291
- lines.push("");
292
- process.stdout.write(`\n${INACTIVE}`);
293
- drawHint();
294
- continue;
295
- }
296
- if (event.type === "arrow") {
297
- if (event.direction === "up" && mode === "input") {
298
- mode = "approve";
299
- renderApproveMode();
300
- }
301
- else if (event.direction === "down" && mode === "approve") {
302
- mode = "input";
303
- renderInputMode();
304
- }
305
- continue;
306
- }
307
- if (event.type === "insert") {
308
- if (mode === "approve") {
309
- // Switch to input first, then insert
310
- mode = "input";
311
- renderInputMode();
312
- }
313
- const wasPlaceholder = placeholderVisible;
314
- clearPlaceholder();
315
- lines[lines.length - 1] += event.text;
316
- process.stdout.write(event.text);
317
- if (wasPlaceholder)
318
- drawHint();
319
- continue;
320
- }
321
- if (event.type === "backspace") {
322
- if (mode === "approve") {
323
- // Switch to input mode for backspace
324
- mode = "input";
325
- renderInputMode();
326
- }
327
- const lastIdx = lines.length - 1;
328
- if (lines[lastIdx].length > 0) {
329
- lines[lastIdx] = lines[lastIdx].slice(0, -1);
330
- process.stdout.write("\b \b");
331
- if (lines.length === 1 && lines[0] === "") {
332
- showPlaceholder();
333
- }
334
- }
335
- else if (lines.length > 1) {
336
- // Backspace across newline boundary
337
- clearHint();
338
- lines.pop();
339
- process.stdout.write(`\r${clearToEol}${cursorUp}`);
340
- if (lines.length === 1 && lines[0] === "") {
341
- showPlaceholder();
342
- }
343
- else {
344
- const prevLine = lines[lines.length - 1];
345
- process.stdout.write(`\r\x1b[${INACTIVE.length + prevLine.length}C`);
346
- drawHint();
347
- }
348
- }
349
- continue;
350
- }
351
- }
352
- };
353
- process.stdin.on("data", onData);
354
- });
355
- }
356
- }
357
- /**
358
- * No-op handler that always accepts. Used for --auto mode and as the default.
96
+ * No-op handler that always accepts. Used for `auto=true` flow runs.
359
97
  */
360
98
  export class AutoUserPrompt {
361
99
  async prompt() {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/user/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/user/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { HostUiSurface } from "../terminal/host.js";
2
+ export interface SplitPane {
3
+ /** Already-styled lines for this pane. Caller wraps to `width`. */
4
+ lines: string[];
5
+ /** Pane-local cursor (col is within the pane width). */
6
+ cursor?: {
7
+ row: number;
8
+ col: number;
9
+ };
10
+ }
11
+ export interface SplitSurfaceOptions {
12
+ cols: number;
13
+ rows: number;
14
+ /** When `cols < collapseAt`, only the left pane renders full-width. */
15
+ collapseAt: number;
16
+ }
17
+ export interface SplitMetrics {
18
+ collapsed: boolean;
19
+ leftWidth: number;
20
+ /** undefined when collapsed. */
21
+ rightWidth?: number;
22
+ }
23
+ export declare function computeSplitMetrics(opts: SplitSurfaceOptions): SplitMetrics;
24
+ /**
25
+ * Compose left + right panes into a single full-height parent UI surface.
26
+ * Pads each pane to exactly `rows` rows so the surface has stable height.
27
+ * Renders a `dim │ reset` divider per row when not collapsed.
28
+ *
29
+ * `right === null` collapses the layout to a single full-width column.
30
+ */
31
+ export declare function buildSplitSurface(left: SplitPane, right: SplitPane | null, opts: SplitSurfaceOptions): HostUiSurface;
32
+ //# sourceMappingURL=split-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-surface.d.ts","sourceRoot":"","sources":["../../src/user/split-surface.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAS3E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,IAAI,EAAE,mBAAmB,GACxB,aAAa,CAiDf"}
@@ -0,0 +1,66 @@
1
+ import { dim, reset, visibleLength } from "../ansi.js";
2
+ import { clipToWidth } from "./curate-prompt.js";
3
+ export function computeSplitMetrics(opts) {
4
+ const cols = Math.max(1, opts.cols);
5
+ const collapsed = cols < opts.collapseAt;
6
+ if (collapsed) {
7
+ return { collapsed: true, leftWidth: cols };
8
+ }
9
+ const leftWidth = Math.max(1, Math.floor((cols - 1) / 2));
10
+ const rightWidth = Math.max(1, cols - 1 - leftWidth);
11
+ return { collapsed: false, leftWidth, rightWidth };
12
+ }
13
+ /**
14
+ * Compose left + right panes into a single full-height parent UI surface.
15
+ * Pads each pane to exactly `rows` rows so the surface has stable height.
16
+ * Renders a `dim │ reset` divider per row when not collapsed.
17
+ *
18
+ * `right === null` collapses the layout to a single full-width column.
19
+ */
20
+ export function buildSplitSurface(left, right, opts) {
21
+ const metrics = computeSplitMetrics(opts);
22
+ const rows = Math.max(1, opts.rows);
23
+ const padPane = (lines, width) => {
24
+ const out = [];
25
+ for (let i = 0; i < rows; i++) {
26
+ const raw = lines[i] ?? "";
27
+ out.push(clipToWidth(raw, width));
28
+ }
29
+ return out;
30
+ };
31
+ if (metrics.collapsed || right === null) {
32
+ const leftLines = padPane(left.lines, metrics.leftWidth);
33
+ const surface = { lines: leftLines };
34
+ if (left.cursor) {
35
+ const r = Math.min(rows - 1, Math.max(0, left.cursor.row));
36
+ const c = Math.min(metrics.leftWidth - 1, Math.max(0, left.cursor.col));
37
+ surface.cursor = { row: r, col: c };
38
+ }
39
+ return surface;
40
+ }
41
+ const leftLines = padPane(left.lines, metrics.leftWidth);
42
+ const rightLines = padPane(right.lines, metrics.rightWidth);
43
+ const lines = [];
44
+ const divider = `${dim}│${reset}`;
45
+ for (let i = 0; i < rows; i++) {
46
+ const lp = leftLines[i];
47
+ const rp = rightLines[i];
48
+ // Pad left pane visible width to leftWidth so divider lines up.
49
+ const lpVis = visibleLength(lp);
50
+ const lpPadded = lpVis < metrics.leftWidth
51
+ ? lp + " ".repeat(metrics.leftWidth - lpVis)
52
+ : lp;
53
+ lines.push(`${lpPadded}${divider}${rp}`);
54
+ }
55
+ const surface = { lines };
56
+ if (left.cursor) {
57
+ const r = Math.min(rows - 1, Math.max(0, left.cursor.row));
58
+ const c = Math.min(metrics.leftWidth - 1, Math.max(0, left.cursor.col));
59
+ surface.cursor = { row: r, col: c };
60
+ }
61
+ // Right pane cursor is intentionally ignored — the host hides the real
62
+ // cursor while the parent UI is active, focus/selection is conveyed by
63
+ // styling, and only the left pane has an editable buffer.
64
+ return surface;
65
+ }
66
+ //# sourceMappingURL=split-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-surface.js","sourceRoot":"","sources":["../../src/user/split-surface.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poly-weaver",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Orchestrates pluggable AI coding agents in an iterative plan-review loop",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,6 +26,7 @@
26
26
  "access": "public"
27
27
  },
28
28
  "dependencies": {
29
+ "@xterm/headless": "^6.0.0",
29
30
  "ajv": "^8.17.1",
30
31
  "commander": "^13.1.0",
31
32
  "node-pty": "^1.0.0",