poly-weaver 0.10.1 → 0.10.3

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 (185) hide show
  1. package/README.md +5 -8
  2. package/dist/agents/implementors/adapter.d.ts +1 -1
  3. package/dist/agents/implementors/adapter.d.ts.map +1 -1
  4. package/dist/agents/implementors/adapter.js +2 -2
  5. package/dist/agents/implementors/adapter.js.map +1 -1
  6. package/dist/agents/implementors/index.d.ts.map +1 -1
  7. package/dist/agents/implementors/index.js +1 -1
  8. package/dist/agents/implementors/index.js.map +1 -1
  9. package/dist/agents/interviewers/adapter.d.ts +1 -1
  10. package/dist/agents/interviewers/adapter.d.ts.map +1 -1
  11. package/dist/agents/interviewers/adapter.js +2 -2
  12. package/dist/agents/interviewers/adapter.js.map +1 -1
  13. package/dist/agents/interviewers/index.d.ts.map +1 -1
  14. package/dist/agents/interviewers/index.js +1 -1
  15. package/dist/agents/interviewers/index.js.map +1 -1
  16. package/dist/agents/planners/adapter.d.ts +1 -1
  17. package/dist/agents/planners/adapter.d.ts.map +1 -1
  18. package/dist/agents/planners/adapter.js +2 -2
  19. package/dist/agents/planners/adapter.js.map +1 -1
  20. package/dist/agents/planners/index.d.ts.map +1 -1
  21. package/dist/agents/planners/index.js +1 -1
  22. package/dist/agents/planners/index.js.map +1 -1
  23. package/dist/agents/registry.d.ts +1 -0
  24. package/dist/agents/registry.d.ts.map +1 -1
  25. package/dist/agents/registry.js.map +1 -1
  26. package/dist/agents/reviewers/adapter.d.ts +1 -1
  27. package/dist/agents/reviewers/adapter.d.ts.map +1 -1
  28. package/dist/agents/reviewers/adapter.js +3 -3
  29. package/dist/agents/reviewers/adapter.js.map +1 -1
  30. package/dist/agents/reviewers/handler.d.ts.map +1 -1
  31. package/dist/agents/reviewers/handler.js +7 -0
  32. package/dist/agents/reviewers/handler.js.map +1 -1
  33. package/dist/agents/reviewers/index.d.ts.map +1 -1
  34. package/dist/agents/reviewers/index.js +1 -1
  35. package/dist/agents/reviewers/index.js.map +1 -1
  36. package/dist/agents/reviewers/prompts.d.ts +2 -2
  37. package/dist/agents/reviewers/prompts.d.ts.map +1 -1
  38. package/dist/agents/reviewers/prompts.js +12 -2
  39. package/dist/agents/reviewers/prompts.js.map +1 -1
  40. package/dist/agents/reviewers/types.d.ts +3 -1
  41. package/dist/agents/reviewers/types.d.ts.map +1 -1
  42. package/dist/agents/reviewers/types.js.map +1 -1
  43. package/dist/agents/runner.d.ts +3 -2
  44. package/dist/agents/runner.d.ts.map +1 -1
  45. package/dist/agents/runner.js +48 -10
  46. package/dist/agents/runner.js.map +1 -1
  47. package/dist/agents/simplifiers/adapter.d.ts +1 -1
  48. package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
  49. package/dist/agents/simplifiers/adapter.js +2 -2
  50. package/dist/agents/simplifiers/adapter.js.map +1 -1
  51. package/dist/agents/simplifiers/index.d.ts.map +1 -1
  52. package/dist/agents/simplifiers/index.js +1 -1
  53. package/dist/agents/simplifiers/index.js.map +1 -1
  54. package/dist/cli.js +20 -6
  55. package/dist/cli.js.map +1 -1
  56. package/dist/flow/built-in/default-factory.d.ts.map +1 -1
  57. package/dist/flow/built-in/default-factory.js +1 -2
  58. package/dist/flow/built-in/default-factory.js.map +1 -1
  59. package/dist/flow/index.d.ts +1 -1
  60. package/dist/flow/index.d.ts.map +1 -1
  61. package/dist/flow/index.js +1 -1
  62. package/dist/flow/index.js.map +1 -1
  63. package/dist/flow/params.d.ts +1 -0
  64. package/dist/flow/params.d.ts.map +1 -1
  65. package/dist/flow/params.js +14 -0
  66. package/dist/flow/params.js.map +1 -1
  67. package/dist/markdown.js +59 -29
  68. package/dist/markdown.js.map +1 -1
  69. package/dist/offscreen/controller.d.ts +21 -0
  70. package/dist/offscreen/controller.d.ts.map +1 -0
  71. package/dist/offscreen/controller.js +185 -0
  72. package/dist/offscreen/controller.js.map +1 -0
  73. package/dist/offscreen/fork-launch.d.ts +31 -0
  74. package/dist/offscreen/fork-launch.d.ts.map +1 -0
  75. package/dist/offscreen/fork-launch.js +76 -0
  76. package/dist/offscreen/fork-launch.js.map +1 -0
  77. package/dist/offscreen/fork.d.ts +21 -0
  78. package/dist/offscreen/fork.d.ts.map +1 -0
  79. package/dist/offscreen/fork.js +122 -0
  80. package/dist/offscreen/fork.js.map +1 -0
  81. package/dist/offscreen/keys.d.ts +6 -0
  82. package/dist/offscreen/keys.d.ts.map +1 -0
  83. package/dist/offscreen/keys.js +16 -0
  84. package/dist/offscreen/keys.js.map +1 -0
  85. package/dist/offscreen/registry.d.ts +6 -0
  86. package/dist/offscreen/registry.d.ts.map +1 -0
  87. package/dist/offscreen/registry.js +27 -0
  88. package/dist/offscreen/registry.js.map +1 -0
  89. package/dist/offscreen/resolve.d.ts +10 -0
  90. package/dist/offscreen/resolve.d.ts.map +1 -0
  91. package/dist/offscreen/resolve.js +111 -0
  92. package/dist/offscreen/resolve.js.map +1 -0
  93. package/dist/offscreen/surface.d.ts +4 -0
  94. package/dist/offscreen/surface.d.ts.map +1 -0
  95. package/dist/offscreen/surface.js +24 -0
  96. package/dist/offscreen/surface.js.map +1 -0
  97. package/dist/orchestrator.d.ts +5 -1
  98. package/dist/orchestrator.d.ts.map +1 -1
  99. package/dist/orchestrator.js +25 -6
  100. package/dist/orchestrator.js.map +1 -1
  101. package/dist/providers/claude/session.d.ts +4 -0
  102. package/dist/providers/claude/session.d.ts.map +1 -1
  103. package/dist/providers/claude/session.js +7 -2
  104. package/dist/providers/claude/session.js.map +1 -1
  105. package/dist/providers/codex/session.d.ts +4 -0
  106. package/dist/providers/codex/session.d.ts.map +1 -1
  107. package/dist/providers/codex/session.js +68 -3
  108. package/dist/providers/codex/session.js.map +1 -1
  109. package/dist/providers/copilot/session.d.ts +6 -0
  110. package/dist/providers/copilot/session.d.ts.map +1 -1
  111. package/dist/providers/copilot/session.js +13 -4
  112. package/dist/providers/copilot/session.js.map +1 -1
  113. package/dist/providers/copilot/strategy.d.ts.map +1 -1
  114. package/dist/providers/copilot/strategy.js +6 -1
  115. package/dist/providers/copilot/strategy.js.map +1 -1
  116. package/dist/providers/trust.d.ts +12 -0
  117. package/dist/providers/trust.d.ts.map +1 -0
  118. package/dist/providers/trust.js +220 -0
  119. package/dist/providers/trust.js.map +1 -0
  120. package/dist/providers/types.d.ts +7 -0
  121. package/dist/providers/types.d.ts.map +1 -1
  122. package/dist/session/locator.d.ts +7 -1
  123. package/dist/session/locator.d.ts.map +1 -1
  124. package/dist/session/locator.js +10 -3
  125. package/dist/session/locator.js.map +1 -1
  126. package/dist/session/resume.d.ts.map +1 -1
  127. package/dist/session/resume.js +16 -3
  128. package/dist/session/resume.js.map +1 -1
  129. package/dist/status-bar.d.ts +0 -2
  130. package/dist/status-bar.d.ts.map +1 -1
  131. package/dist/status-bar.js +1 -17
  132. package/dist/status-bar.js.map +1 -1
  133. package/dist/terminal/host.d.ts +8 -0
  134. package/dist/terminal/host.d.ts.map +1 -1
  135. package/dist/terminal/host.js +32 -19
  136. package/dist/terminal/host.js.map +1 -1
  137. package/dist/terminal/input-router.d.ts +10 -3
  138. package/dist/terminal/input-router.d.ts.map +1 -1
  139. package/dist/terminal/input-router.js +22 -5
  140. package/dist/terminal/input-router.js.map +1 -1
  141. package/dist/terminal/key-to-bytes.d.ts +4 -1
  142. package/dist/terminal/key-to-bytes.d.ts.map +1 -1
  143. package/dist/terminal/key-to-bytes.js +6 -5
  144. package/dist/terminal/key-to-bytes.js.map +1 -1
  145. package/dist/terminal/render.d.ts +12 -1
  146. package/dist/terminal/render.d.ts.map +1 -1
  147. package/dist/terminal/render.js +37 -5
  148. package/dist/terminal/render.js.map +1 -1
  149. package/dist/terminal/win32-console-source.d.ts.map +1 -1
  150. package/dist/terminal/win32-console-source.js +3 -1
  151. package/dist/terminal/win32-console-source.js.map +1 -1
  152. package/dist/terminal-input.d.ts +2 -0
  153. package/dist/terminal-input.d.ts.map +1 -1
  154. package/dist/terminal-input.js +26 -6
  155. package/dist/terminal-input.js.map +1 -1
  156. package/dist/user/curate-handler.d.ts +6 -1
  157. package/dist/user/curate-handler.d.ts.map +1 -1
  158. package/dist/user/curate-handler.js +11 -2
  159. package/dist/user/curate-handler.js.map +1 -1
  160. package/dist/user/curate-prompt.d.ts +5 -1
  161. package/dist/user/curate-prompt.d.ts.map +1 -1
  162. package/dist/user/curate-prompt.js.map +1 -1
  163. package/dist/user/handler.d.ts +6 -1
  164. package/dist/user/handler.d.ts.map +1 -1
  165. package/dist/user/handler.js +12 -1
  166. package/dist/user/handler.js.map +1 -1
  167. package/dist/user/host-curate-prompt.d.ts +2 -1
  168. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  169. package/dist/user/host-curate-prompt.js +87 -32
  170. package/dist/user/host-curate-prompt.js.map +1 -1
  171. package/dist/user/host-prompt.d.ts +2 -3
  172. package/dist/user/host-prompt.d.ts.map +1 -1
  173. package/dist/user/host-prompt.js +46 -26
  174. package/dist/user/host-prompt.js.map +1 -1
  175. package/dist/user/index.d.ts +1 -1
  176. package/dist/user/index.d.ts.map +1 -1
  177. package/dist/user/prompt.d.ts +6 -0
  178. package/dist/user/prompt.d.ts.map +1 -1
  179. package/dist/user/prompt.js.map +1 -1
  180. package/dist/user/shortcut-hints.d.ts +2 -0
  181. package/dist/user/shortcut-hints.d.ts.map +1 -0
  182. package/dist/user/shortcut-hints.js +15 -0
  183. package/dist/user/shortcut-hints.js.map +1 -0
  184. package/docs/startup-tui.png +0 -0
  185. package/package.json +3 -2
@@ -7,6 +7,8 @@ import { cursorToVisual, renderWrappedLine, softWrapLine } from "../text-editing
7
7
  import { clipToWidth, tagFor, userAddedTag, wrapToWidth, } from "./curate-prompt.js";
8
8
  import { buildPlanPane } from "./plan-pane.js";
9
9
  import { buildSplitSurface, computeSplitMetrics } from "./split-surface.js";
10
+ import { renderShortcutHints } from "./shortcut-hints.js";
11
+ import { OffscreenController } from "../offscreen/controller.js";
10
12
  const DECISION_CYCLE = ["keep", "drop", "revise"];
11
13
  const PLAN_PAGE_OVERLAP = 1;
12
14
  const COLLAPSE_AT_COLS = 100;
@@ -41,7 +43,7 @@ export class HostBackedCuratePrompt {
41
43
  constructor(host) {
42
44
  this.host = host;
43
45
  }
44
- async prompt(verdict, planText) {
46
+ async prompt(verdict, planText, context = {}) {
45
47
  if (!this.host.isInteractive || verdict.issues.length === 0) {
46
48
  return {
47
49
  decisions: verdict.issues.map((_, index) => ({ index, decision: "keep" })),
@@ -61,14 +63,19 @@ export class HostBackedCuratePrompt {
61
63
  const parser = new EmacsInputParser();
62
64
  return new Promise((resolve, reject) => {
63
65
  let detach;
64
- const finish = (result) => {
66
+ let offscreenController;
67
+ const cleanup = () => {
68
+ offscreenController?.dispose();
69
+ offscreenController = undefined;
65
70
  detach?.();
66
71
  detach = undefined;
72
+ };
73
+ const finish = (result) => {
74
+ cleanup();
67
75
  resolve(result);
68
76
  };
69
77
  const failWith = (err) => {
70
- detach?.();
71
- detach = undefined;
78
+ cleanup();
72
79
  reject(err);
73
80
  };
74
81
  const submit = () => {
@@ -163,6 +170,14 @@ export class HostBackedCuratePrompt {
163
170
  dirty = true;
164
171
  continue;
165
172
  }
173
+ if (event.type === "arrow") {
174
+ if (event.direction === "left" || event.direction === "right") {
175
+ dirty = applyCurateTextBufferEvent(state.editing, {
176
+ type: event.direction === "left" ? "ctrl-b" : "ctrl-f",
177
+ }) || dirty;
178
+ }
179
+ continue;
180
+ }
166
181
  if (isTextBufferEvent(event)) {
167
182
  dirty = applyCurateTextBufferEvent(state.editing, event) || dirty;
168
183
  continue;
@@ -322,18 +337,21 @@ export class HostBackedCuratePrompt {
322
337
  this.host.scheduleParentUiRender();
323
338
  return finished;
324
339
  };
325
- const mode = {
340
+ const baseMode = {
326
341
  getSurface: () => {
327
342
  const layout = this.host.getLayout();
328
343
  const cols = Math.max(20, layout.columns);
329
344
  const rows = Math.max(1, layout.childRows);
330
- return buildSurface(verdict, plan, state, cols, rows);
345
+ return buildSurface(verdict, plan, state, cols, rows, context);
331
346
  },
332
347
  onEvents: (keys) => {
333
348
  processEvents(parser.mapKeys(keys));
334
349
  return true;
335
350
  },
336
351
  };
352
+ const mode = context.offscreen
353
+ ? (offscreenController = new OffscreenController(this.host, context.offscreen.workdir, context.offscreen.slots)).wrap(baseMode)
354
+ : baseMode;
337
355
  detach = this.host.attachParentUi(mode);
338
356
  });
339
357
  }
@@ -399,7 +417,17 @@ function renderMultilineEditor(buffer, width, firstPrefix, continuationPrefix) {
399
417
  cursorCol: Math.min(Math.max(0, width - 1), cursorPrefixWidth + cursor.visCol),
400
418
  };
401
419
  }
402
- function buildLeftPane(verdict, state, width, rows) {
420
+ function buildLeftPane(verdict, state, width, rows, offscreenHint) {
421
+ const pinnedHint = offscreenHint
422
+ ? clipToWidth(offscreenHint, width)
423
+ : undefined;
424
+ const scrollRows = pinnedHint ? Math.max(0, rows - 1) : rows;
425
+ if (scrollRows === 0) {
426
+ return {
427
+ lines: [pinnedHint ?? ""],
428
+ cursor: { row: 0, col: 0 },
429
+ };
430
+ }
403
431
  const issues = verdict.issues;
404
432
  const lines = [];
405
433
  const n = issues.length;
@@ -536,23 +564,42 @@ function buildLeftPane(verdict, state, width, rows) {
536
564
  rowEnds[rowIndex] = lines.length;
537
565
  }
538
566
  lines.push("");
539
- const helpRows = [];
567
+ let helpTokens;
540
568
  if (state.editing) {
541
- helpRows.push("Ctrl+J Newline · Enter Submit · Esc Cancel");
569
+ helpTokens = ["Ctrl+J Newline", "Enter Submit", "Esc Cancel"];
542
570
  }
543
571
  else if (state.cursor < issues.length) {
544
- helpRows.push("↑/↓ Navigate · k/d/r Set · a Add · n Next Citation · Tab Cycle · Enter Edit · Ctrl+D Submit · Ctrl+C Quit");
572
+ helpTokens = [
573
+ "↑/↓ Navigate",
574
+ "k/d/r Set",
575
+ "a Add",
576
+ "n Next Citation",
577
+ "Tab Cycle",
578
+ "Enter Edit",
579
+ "Ctrl+D Submit",
580
+ "Ctrl+C Quit",
581
+ ];
545
582
  }
546
583
  else if (state.cursor < issues.length + state.userAdded.length) {
547
- helpRows.push("↑/↓ Navigate · a Add · Enter Edit · d Delete · Ctrl+D Submit · Ctrl+C Quit");
584
+ helpTokens = [
585
+ "↑/↓ Navigate",
586
+ "a Add",
587
+ "Enter Edit",
588
+ "d Delete",
589
+ "Ctrl+D Submit",
590
+ "Ctrl+C Quit",
591
+ ];
548
592
  }
549
593
  else {
550
- helpRows.push("↑/↓ Navigate · Enter/a Add · Ctrl+D Submit · Ctrl+C Quit");
594
+ helpTokens = [
595
+ "↑/↓ Navigate",
596
+ "Enter/a Add",
597
+ "Ctrl+D Submit",
598
+ "Ctrl+C Quit",
599
+ ];
551
600
  }
552
- for (const row of helpRows) {
553
- for (const l of wrapToWidth(row, width)) {
554
- lines.push(`${dim}${l}${reset}`);
555
- }
601
+ for (const l of wrapToWidth(renderShortcutHints(helpTokens), width)) {
602
+ lines.push(l);
556
603
  }
557
604
  const activeStart = rowStarts[state.cursor] ?? 0;
558
605
  const activeEndExclusive = rowEnds[state.cursor] ?? lines.length;
@@ -560,14 +607,14 @@ function buildLeftPane(verdict, state, width, rows) {
560
607
  // fall back to the editor row (when editing) or the header row.
561
608
  let scrollTop = 0;
562
609
  const total = lines.length;
563
- if (total > rows) {
610
+ if (total > scrollRows) {
564
611
  // Default: anchor to the start of the active issue.
565
612
  scrollTop = activeStart;
566
613
  // If the block fits and there is room above, pull the window up so we
567
614
  // also include some preceding context rather than leaving blank rows
568
615
  // below.
569
- if (activeEndExclusive - scrollTop < rows) {
570
- scrollTop = Math.max(0, total - rows);
616
+ if (activeEndExclusive - scrollTop < scrollRows) {
617
+ scrollTop = Math.max(0, total - scrollRows);
571
618
  if (scrollTop > activeStart)
572
619
  scrollTop = activeStart;
573
620
  }
@@ -575,14 +622,14 @@ function buildLeftPane(verdict, state, width, rows) {
575
622
  if (editorRow !== undefined) {
576
623
  if (editorRow < scrollTop)
577
624
  scrollTop = editorRow;
578
- if (editorRow >= scrollTop + rows)
579
- scrollTop = editorRow - rows + 1;
625
+ if (editorRow >= scrollTop + scrollRows)
626
+ scrollTop = editorRow - scrollRows + 1;
580
627
  }
581
628
  // Clamp.
582
629
  if (scrollTop < 0)
583
630
  scrollTop = 0;
584
- if (scrollTop + rows > total)
585
- scrollTop = total - rows;
631
+ if (scrollTop + scrollRows > total)
632
+ scrollTop = total - scrollRows;
586
633
  }
587
634
  let cursorRow;
588
635
  let cursorCol;
@@ -595,22 +642,25 @@ function buildLeftPane(verdict, state, width, rows) {
595
642
  cursorRow = activeStart - scrollTop;
596
643
  cursorCol = 0;
597
644
  }
598
- // Slice / pad to exactly `rows`.
645
+ // Slice / pad to exactly `scrollRows`; the offscreen hint row, when present,
646
+ // is pinned below this scrollable issue window.
599
647
  if (scrollTop > 0) {
600
648
  lines.splice(0, scrollTop);
601
649
  }
602
- while (lines.length < rows)
650
+ while (lines.length < scrollRows)
603
651
  lines.push("");
604
- if (lines.length > rows)
605
- lines.splice(rows, lines.length - rows);
652
+ if (lines.length > scrollRows)
653
+ lines.splice(scrollRows, lines.length - scrollRows);
606
654
  if (cursorRow < 0)
607
655
  cursorRow = 0;
608
- if (cursorRow >= rows)
609
- cursorRow = rows - 1;
656
+ if (cursorRow >= scrollRows)
657
+ cursorRow = scrollRows - 1;
610
658
  if (cursorCol < 0)
611
659
  cursorCol = 0;
612
660
  if (cursorCol >= width)
613
661
  cursorCol = Math.max(0, width - 1);
662
+ if (pinnedHint)
663
+ lines.push(pinnedHint);
614
664
  return {
615
665
  lines: lines.map((l) => clipToWidth(l, width)),
616
666
  cursor: { row: cursorRow, col: cursorCol },
@@ -640,7 +690,8 @@ function computeNarrowPlanRows(rows) {
640
690
  // visible.
641
691
  return Math.max(3, Math.floor((rows - 1) / 2));
642
692
  }
643
- function buildSurface(verdict, plan, state, cols, rows) {
693
+ function buildSurface(verdict, plan, state, cols, rows, context) {
694
+ const hint = offscreenHint(context);
644
695
  const split = computeSplitMetrics({ cols, rows, collapseAt: COLLAPSE_AT_COLS });
645
696
  if (split.collapsed) {
646
697
  // Narrow stack: plan on top, divider rule, issues below. Both panes are
@@ -649,7 +700,7 @@ function buildSurface(verdict, plan, state, cols, rows) {
649
700
  const planRows = computeNarrowPlanRows(rows);
650
701
  const issueRows = Math.max(1, rows - 1 - planRows);
651
702
  const right = buildRightPane(verdict, plan, state, cols, planRows);
652
- const left = buildLeftPane(verdict, state, cols, issueRows);
703
+ const left = buildLeftPane(verdict, state, cols, issueRows, hint);
653
704
  const separator = `${dim}${"─".repeat(cols)}${reset}`;
654
705
  const lines = [...right, separator, ...left.lines];
655
706
  while (lines.length < rows)
@@ -666,10 +717,14 @@ function buildSurface(verdict, plan, state, cols, rows) {
666
717
  cursor: { row: cursorRow, col: left.cursor.col },
667
718
  };
668
719
  }
669
- const left = buildLeftPane(verdict, state, split.leftWidth, rows);
720
+ const left = buildLeftPane(verdict, state, split.leftWidth, rows, hint);
670
721
  const right = buildRightPane(verdict, plan, state, split.rightWidth, rows);
671
722
  return buildSplitSurface({ lines: left.lines, cursor: left.cursor }, { lines: right }, { cols, rows, collapseAt: COLLAPSE_AT_COLS });
672
723
  }
724
+ function offscreenHint(context) {
725
+ const labels = context.offscreen?.slots.map((slot) => slot.hint) ?? [];
726
+ return labels.length > 0 ? renderShortcutHints(labels) : undefined;
727
+ }
673
728
  function planMetrics(plan, host) {
674
729
  const layout = host.getLayout();
675
730
  const cols = Math.max(20, layout.columns);
@@ -1 +1 @@
1
- {"version":3,"file":"host-curate-prompt.js","sourceRoot":"","sources":["../../src/user/host-curate-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-curate-prompt.js","sourceRoot":"","sources":["../../src/user/host-curate-prompt.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,8 @@ import type { TerminalHost } from "../terminal/host.js";
3
3
  /**
4
4
  * Host-backed user-review prompt with a top-down stack layout.
5
5
  *
6
- * Plan on top (header rule + scrollable body), full-width dim ─ separator, a
7
- * blank top-margin row, the controls block (Approve + bounded feedback editor
8
- * + optional hint), and a blank bottom-margin row above the host status bar.
6
+ * Plan on top (header rule + scrollable body), full-width dim ─ separator, and
7
+ * a controls block (Approve + bounded feedback editor + compact hint row).
9
8
  *
10
9
  * Key handling:
11
10
  * - ↑/↓ toggles between Approve and the editor (does NOT scroll the plan).
@@ -1 +1 @@
1
- {"version":3,"file":"host-prompt.d.ts","sourceRoot":"","sources":["../../src/user/host-prompt.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAUzF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CA0J7B"}
1
+ {"version":3,"file":"host-prompt.d.ts","sourceRoot":"","sources":["../../src/user/host-prompt.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAUzF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CA+K7B"}
@@ -3,20 +3,21 @@ import { AgentInterruptedError } from "../agents/runner.js";
3
3
  import { EmacsInputParser } from "./prompt.js";
4
4
  import { clipToWidth } from "./curate-prompt.js";
5
5
  import { buildPlanPane } from "./plan-pane.js";
6
+ import { renderShortcutHints } from "./shortcut-hints.js";
6
7
  import { applyTextBufferEvent, isTextBufferEvent, } from "../text-editing/emacs-input.js";
7
8
  import { cursorToVisual, renderWrappedLine, softWrapLine } from "../text-editing/soft-wrap.js";
9
+ import { OffscreenController } from "../offscreen/controller.js";
8
10
  /** Maximum visible rows for the multiline feedback editor. */
9
11
  const FEEDBACK_EDITOR_MAX_ROWS = 5;
10
12
  /** Lines of overlap when paging the plan (PageUp/PageDown). */
11
13
  const PLAN_PAGE_OVERLAP = 1;
12
- const ACTIVE_PREFIX = " ";
13
- const INACTIVE_PREFIX = " ";
14
+ const ACTIVE_PREFIX = " ❯";
15
+ const INACTIVE_PREFIX = " ";
14
16
  /**
15
17
  * Host-backed user-review prompt with a top-down stack layout.
16
18
  *
17
- * Plan on top (header rule + scrollable body), full-width dim ─ separator, a
18
- * blank top-margin row, the controls block (Approve + bounded feedback editor
19
- * + optional hint), and a blank bottom-margin row above the host status bar.
19
+ * Plan on top (header rule + scrollable body), full-width dim ─ separator, and
20
+ * a controls block (Approve + bounded feedback editor + compact hint row).
20
21
  *
21
22
  * Key handling:
22
23
  * - ↑/↓ toggles between Approve and the editor (does NOT scroll the plan).
@@ -48,17 +49,22 @@ export class HostBackedUserPrompt {
48
49
  };
49
50
  const parser = new EmacsInputParser();
50
51
  let detach;
51
- const finish = (result) => {
52
+ let offscreenController;
53
+ const cleanup = () => {
54
+ offscreenController?.dispose();
55
+ offscreenController = undefined;
52
56
  detach?.();
53
57
  detach = undefined;
58
+ };
59
+ const finish = (result) => {
60
+ cleanup();
54
61
  resolve(result);
55
62
  };
56
63
  const failWith = (err) => {
57
- detach?.();
58
- detach = undefined;
64
+ cleanup();
59
65
  reject(err);
60
66
  };
61
- const mode = {
67
+ const baseMode = {
62
68
  getSurface: () => {
63
69
  const layout = this.host.getLayout();
64
70
  const cols = Math.max(20, layout.columns);
@@ -118,6 +124,12 @@ export class HostBackedUserPrompt {
118
124
  state.mode = "input";
119
125
  dirty = true;
120
126
  }
127
+ else if (state.mode === "input" &&
128
+ (event.direction === "left" || event.direction === "right")) {
129
+ dirty = applyFeedbackTextBufferEvent(state, {
130
+ type: event.direction === "left" ? "ctrl-b" : "ctrl-f",
131
+ }) || dirty;
132
+ }
121
133
  continue;
122
134
  }
123
135
  if (event.type === "scroll-page") {
@@ -178,6 +190,9 @@ export class HostBackedUserPrompt {
178
190
  return true;
179
191
  },
180
192
  };
193
+ const mode = context.offscreen
194
+ ? (offscreenController = new OffscreenController(this.host, context.offscreen.workdir, context.offscreen.slots)).wrap(baseMode)
195
+ : baseMode;
181
196
  detach = this.host.attachParentUi(mode);
182
197
  });
183
198
  }
@@ -210,7 +225,7 @@ function applyFeedbackTextBufferEvent(state, event) {
210
225
  *
211
226
  * Returns its natural height (1..7 rows). Cursor is pane-local.
212
227
  */
213
- function buildControlsBlock(state, width) {
228
+ function buildControlsBlock(state, width, offscreenHint) {
214
229
  const activePrefixWidth = visibleLength(ACTIVE_PREFIX);
215
230
  const inactivePrefixWidth = visibleLength(INACTIVE_PREFIX);
216
231
  const bodyWidth = Math.max(1, width - inactivePrefixWidth);
@@ -218,10 +233,7 @@ function buildControlsBlock(state, width) {
218
233
  ? `${ACTIVE_PREFIX}${bold}${green}Approve (Enter)${reset}`
219
234
  : `${INACTIVE_PREFIX}${dim}Approve${reset}`;
220
235
  const showPlaceholder = state.lines.length === 1 && state.lines[0].length === 0;
221
- const showHint = !showPlaceholder && state.mode === "input";
222
- const hintRow = showHint
223
- ? `${INACTIVE_PREFIX}${dim}Ctrl+D Submit${reset}`
224
- : undefined;
236
+ const hasFeedback = state.lines.some((line) => line.length > 0);
225
237
  const visualRows = [];
226
238
  let cursorVisualRow = 0;
227
239
  let cursorVisCol = 0;
@@ -262,7 +274,7 @@ function buildControlsBlock(state, width) {
262
274
  if (state.feedbackScrollTop < 0)
263
275
  state.feedbackScrollTop = 0;
264
276
  }
265
- const placeholder = "Type feedback (Ctrl+J Newline · Ctrl+D Submit)";
277
+ const placeholder = "Type feedback";
266
278
  const editorBody = [];
267
279
  if (showPlaceholder) {
268
280
  let first;
@@ -292,10 +304,18 @@ function buildControlsBlock(state, width) {
292
304
  editorBody.push(`${prefix}${visual.body}`);
293
305
  }
294
306
  }
307
+ const tokens = [];
308
+ if (state.mode === "input")
309
+ tokens.push("Ctrl+J Newline");
310
+ if (hasFeedback)
311
+ tokens.push("Ctrl+D Submit");
312
+ if (offscreenHint)
313
+ tokens.push(offscreenHint);
295
314
  const lines = [
296
315
  approveRow,
297
316
  ...editorBody,
298
- ...(hintRow ? [hintRow] : []),
317
+ `${dim}${"─".repeat(width)}${reset}`,
318
+ `${INACTIVE_PREFIX}${renderShortcutHints(tokens)}`,
299
319
  ];
300
320
  const approveRowInBlock = 0;
301
321
  const editorStart = 1;
@@ -328,11 +348,10 @@ function buildControlsBlock(state, width) {
328
348
  }
329
349
  /**
330
350
  * Compute the plan area's available height given total `rows` and the natural
331
- * controls block height. Reserves 1 row for the dim ─ separator, 1 for the
332
- * top-margin blank, and 1 for the bottom-margin blank.
351
+ * controls block height. Reserves 1 row for the dim ─ separator.
333
352
  */
334
353
  function computePlanRows(controlsHeight, rows) {
335
- return Math.max(1, rows - controlsHeight - 3);
354
+ return Math.max(1, rows - controlsHeight - 1);
336
355
  }
337
356
  function buildPlanLines(plan, context, state, width, planRows) {
338
357
  const pane = buildPlanPane(plan, context.phaseLabel, width, context.artifactKind ?? "plan");
@@ -355,16 +374,14 @@ function buildPlanLines(plan, context, state, width, planRows) {
355
374
  };
356
375
  }
357
376
  function buildSurface(plan, context, state, cols, rows) {
358
- const controls = buildControlsBlock(state, cols);
377
+ const controls = buildControlsBlock(state, cols, primaryOffscreenHint(context));
359
378
  const planRows = computePlanRows(controls.lines.length, rows);
360
379
  const { lines: planLines } = buildPlanLines(plan, context, state, cols, planRows);
361
380
  const separator = `${dim}${"─".repeat(cols)}${reset}`;
362
381
  const composed = [
363
382
  ...planLines,
364
383
  separator,
365
- "",
366
384
  ...controls.lines,
367
- "",
368
385
  ];
369
386
  // Pad / clip to exactly `rows` rows. The plan area is the only flex region;
370
387
  // controls + separator + margins remain anchored to the bottom.
@@ -374,9 +391,9 @@ function buildSurface(plan, context, state, cols, rows) {
374
391
  // Clip from the top of the plan area; never clip controls.
375
392
  composed.splice(0, composed.length - rows);
376
393
  }
377
- // Cursor row sits in the controls block: planRows + 1 (separator) + 1 (top
378
- // margin) + controls.cursor.row.
379
- let cursorRow = planRows + 1 + 1 + controls.cursor.row;
394
+ // Cursor row sits in the controls block: planRows + 1 (separator) +
395
+ // controls.cursor.row.
396
+ let cursorRow = planRows + 1 + controls.cursor.row;
380
397
  if (cursorRow < 0)
381
398
  cursorRow = 0;
382
399
  if (cursorRow >= rows)
@@ -390,9 +407,12 @@ function planMetrics(plan, context, state, host) {
390
407
  const layout = host.getLayout();
391
408
  const cols = Math.max(20, layout.columns);
392
409
  const rows = Math.max(1, layout.childRows);
393
- const controls = buildControlsBlock(state, cols);
410
+ const controls = buildControlsBlock(state, cols, primaryOffscreenHint(context));
394
411
  const planHeight = computePlanRows(controls.lines.length, rows);
395
412
  const pane = buildPlanPane(plan, context.phaseLabel, cols, context.artifactKind ?? "plan");
396
413
  return { planHeight, planLines: pane.lines.length };
397
414
  }
415
+ function primaryOffscreenHint(context) {
416
+ return context.offscreen?.slots.find((slot) => slot.binding === "primary")?.hint;
417
+ }
398
418
  //# sourceMappingURL=host-prompt.js.map