poly-weaver 0.7.1 → 0.8.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 (232) 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 +2 -1
  9. package/dist/agents/reviewers/handler.js.map +1 -1
  10. package/dist/agents/runner.d.ts +25 -0
  11. package/dist/agents/runner.d.ts.map +1 -1
  12. package/dist/agents/runner.js +63 -1
  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 +21 -0
  18. package/dist/ansi.d.ts.map +1 -1
  19. package/dist/ansi.js +45 -0
  20. package/dist/ansi.js.map +1 -1
  21. package/dist/app-header.d.ts +16 -0
  22. package/dist/app-header.d.ts.map +1 -0
  23. package/dist/app-header.js +74 -0
  24. package/dist/app-header.js.map +1 -0
  25. package/dist/cli.js +81 -59
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config.d.ts +1 -0
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +6 -0
  30. package/dist/config.js.map +1 -1
  31. package/dist/dump/collector.d.ts +2 -1
  32. package/dist/dump/collector.d.ts.map +1 -1
  33. package/dist/dump/collector.js +12 -0
  34. package/dist/dump/collector.js.map +1 -1
  35. package/dist/dump/hotkey.d.ts +9 -30
  36. package/dist/dump/hotkey.d.ts.map +1 -1
  37. package/dist/dump/hotkey.js +15 -158
  38. package/dist/dump/hotkey.js.map +1 -1
  39. package/dist/dump/pty-tail-buffer.d.ts +25 -0
  40. package/dist/dump/pty-tail-buffer.d.ts.map +1 -0
  41. package/dist/dump/pty-tail-buffer.js +48 -0
  42. package/dist/dump/pty-tail-buffer.js.map +1 -0
  43. package/dist/dump/service.d.ts +3 -2
  44. package/dist/dump/service.d.ts.map +1 -1
  45. package/dist/dump/service.js +6 -1
  46. package/dist/dump/service.js.map +1 -1
  47. package/dist/dump/types.d.ts +13 -0
  48. package/dist/dump/types.d.ts.map +1 -1
  49. package/dist/dump/types.js.map +1 -1
  50. package/dist/flow/built-in/default-factory.d.ts +21 -0
  51. package/dist/flow/built-in/default-factory.d.ts.map +1 -0
  52. package/dist/flow/built-in/default-factory.js +155 -0
  53. package/dist/flow/built-in/default-factory.js.map +1 -0
  54. package/dist/flow/built-in/default.d.ts +4 -4
  55. package/dist/flow/built-in/default.d.ts.map +1 -1
  56. package/dist/flow/built-in/default.js +3 -141
  57. package/dist/flow/built-in/default.js.map +1 -1
  58. package/dist/flow/built-in/default.ts +5 -169
  59. package/dist/flow/built-in/why-so-serious-factory.d.ts +16 -0
  60. package/dist/flow/built-in/why-so-serious-factory.d.ts.map +1 -0
  61. package/dist/flow/built-in/why-so-serious-factory.js +187 -0
  62. package/dist/flow/built-in/why-so-serious-factory.js.map +1 -0
  63. package/dist/flow/built-in/why-so-serious.d.ts +3 -2
  64. package/dist/flow/built-in/why-so-serious.d.ts.map +1 -1
  65. package/dist/flow/built-in/why-so-serious.js +3 -164
  66. package/dist/flow/built-in/why-so-serious.js.map +1 -1
  67. package/dist/flow/custom/AUTHORING.md +13 -0
  68. package/dist/flow/custom/load.d.ts +16 -1
  69. package/dist/flow/custom/load.d.ts.map +1 -1
  70. package/dist/flow/custom/load.js +69 -18
  71. package/dist/flow/custom/load.js.map +1 -1
  72. package/dist/flow/dsl.js +1 -1
  73. package/dist/flow/dsl.js.map +1 -1
  74. package/dist/flow/executor.d.ts.map +1 -1
  75. package/dist/flow/executor.js +52 -9
  76. package/dist/flow/executor.js.map +1 -1
  77. package/dist/flow/types.d.ts +24 -2
  78. package/dist/flow/types.d.ts.map +1 -1
  79. package/dist/flow/types.js.map +1 -1
  80. package/dist/flow-editor/tui.d.ts.map +1 -1
  81. package/dist/flow-editor/tui.js +9 -18
  82. package/dist/flow-editor/tui.js.map +1 -1
  83. package/dist/orchestrator.d.ts +43 -0
  84. package/dist/orchestrator.d.ts.map +1 -1
  85. package/dist/orchestrator.js +230 -92
  86. package/dist/orchestrator.js.map +1 -1
  87. package/dist/providers/base-completion.d.ts +18 -0
  88. package/dist/providers/base-completion.d.ts.map +1 -1
  89. package/dist/providers/base-completion.js +29 -0
  90. package/dist/providers/base-completion.js.map +1 -1
  91. package/dist/providers/claude/completion-plan-mode.d.ts +9 -1
  92. package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
  93. package/dist/providers/claude/completion-plan-mode.js +58 -4
  94. package/dist/providers/claude/completion-plan-mode.js.map +1 -1
  95. package/dist/providers/claude/plan-mode-pty-monitor.d.ts +51 -0
  96. package/dist/providers/claude/plan-mode-pty-monitor.d.ts.map +1 -0
  97. package/dist/providers/claude/plan-mode-pty-monitor.js +97 -0
  98. package/dist/providers/claude/plan-mode-pty-monitor.js.map +1 -0
  99. package/dist/providers/claude/strategy.d.ts.map +1 -1
  100. package/dist/providers/claude/strategy.js +6 -1
  101. package/dist/providers/claude/strategy.js.map +1 -1
  102. package/dist/providers/claude/tool-tracking.d.ts +1 -0
  103. package/dist/providers/claude/tool-tracking.d.ts.map +1 -1
  104. package/dist/providers/claude/tool-tracking.js +3 -0
  105. package/dist/providers/claude/tool-tracking.js.map +1 -1
  106. package/dist/providers/codex/plan-mode-activator.d.ts +23 -0
  107. package/dist/providers/codex/plan-mode-activator.d.ts.map +1 -0
  108. package/dist/providers/codex/plan-mode-activator.js +207 -0
  109. package/dist/providers/codex/plan-mode-activator.js.map +1 -0
  110. package/dist/providers/codex/session.d.ts +1 -0
  111. package/dist/providers/codex/session.d.ts.map +1 -1
  112. package/dist/providers/codex/session.js +35 -18
  113. package/dist/providers/codex/session.js.map +1 -1
  114. package/dist/providers/codex/strategy.d.ts +2 -1
  115. package/dist/providers/codex/strategy.d.ts.map +1 -1
  116. package/dist/providers/codex/strategy.js +17 -13
  117. package/dist/providers/codex/strategy.js.map +1 -1
  118. package/dist/providers/copilot/session.d.ts.map +1 -1
  119. package/dist/providers/copilot/session.js +11 -20
  120. package/dist/providers/copilot/session.js.map +1 -1
  121. package/dist/providers/types.d.ts +76 -0
  122. package/dist/providers/types.d.ts.map +1 -1
  123. package/dist/providers/types.js.map +1 -1
  124. package/dist/pty/spawn.d.ts.map +1 -1
  125. package/dist/pty/spawn.js +6 -1
  126. package/dist/pty/spawn.js.map +1 -1
  127. package/dist/pty/types.d.ts +7 -2
  128. package/dist/pty/types.d.ts.map +1 -1
  129. package/dist/resume-tui.d.ts +52 -0
  130. package/dist/resume-tui.d.ts.map +1 -0
  131. package/dist/resume-tui.js +344 -0
  132. package/dist/resume-tui.js.map +1 -0
  133. package/dist/session/flow-snapshot.d.ts +14 -0
  134. package/dist/session/flow-snapshot.d.ts.map +1 -0
  135. package/dist/session/flow-snapshot.js +28 -0
  136. package/dist/session/flow-snapshot.js.map +1 -0
  137. package/dist/session/list.d.ts +16 -0
  138. package/dist/session/list.d.ts.map +1 -0
  139. package/dist/session/list.js +89 -0
  140. package/dist/session/list.js.map +1 -0
  141. package/dist/session/locator.d.ts +15 -0
  142. package/dist/session/locator.d.ts.map +1 -1
  143. package/dist/session/locator.js +46 -27
  144. package/dist/session/locator.js.map +1 -1
  145. package/dist/session/lock.d.ts +26 -0
  146. package/dist/session/lock.d.ts.map +1 -0
  147. package/dist/session/lock.js +95 -0
  148. package/dist/session/lock.js.map +1 -0
  149. package/dist/session/manifest.d.ts +80 -0
  150. package/dist/session/manifest.d.ts.map +1 -0
  151. package/dist/session/manifest.js +2 -0
  152. package/dist/session/manifest.js.map +1 -0
  153. package/dist/session/persistence.d.ts +19 -0
  154. package/dist/session/persistence.d.ts.map +1 -0
  155. package/dist/session/persistence.js +68 -0
  156. package/dist/session/persistence.js.map +1 -0
  157. package/dist/session/process-start-time.d.ts +17 -0
  158. package/dist/session/process-start-time.d.ts.map +1 -0
  159. package/dist/session/process-start-time.js +99 -0
  160. package/dist/session/process-start-time.js.map +1 -0
  161. package/dist/session/restore.d.ts +31 -0
  162. package/dist/session/restore.d.ts.map +1 -0
  163. package/dist/session/restore.js +111 -0
  164. package/dist/session/restore.js.map +1 -0
  165. package/dist/session/resume.d.ts +5 -0
  166. package/dist/session/resume.d.ts.map +1 -0
  167. package/dist/session/resume.js +109 -0
  168. package/dist/session/resume.js.map +1 -0
  169. package/dist/session/session-store.d.ts +43 -0
  170. package/dist/session/session-store.d.ts.map +1 -0
  171. package/dist/session/session-store.js +134 -0
  172. package/dist/session/session-store.js.map +1 -0
  173. package/dist/startup-tui.d.ts +10 -11
  174. package/dist/startup-tui.d.ts.map +1 -1
  175. package/dist/startup-tui.js +25 -108
  176. package/dist/startup-tui.js.map +1 -1
  177. package/dist/status-bar.js +1 -26
  178. package/dist/status-bar.js.map +1 -1
  179. package/dist/terminal/host.d.ts +22 -9
  180. package/dist/terminal/host.d.ts.map +1 -1
  181. package/dist/terminal/host.js +67 -78
  182. package/dist/terminal/host.js.map +1 -1
  183. package/dist/terminal/input-router.d.ts +24 -103
  184. package/dist/terminal/input-router.d.ts.map +1 -1
  185. package/dist/terminal/input-router.js +63 -364
  186. package/dist/terminal/input-router.js.map +1 -1
  187. package/dist/terminal/key-event-source.d.ts +52 -0
  188. package/dist/terminal/key-event-source.d.ts.map +1 -0
  189. package/dist/terminal/key-event-source.js +31 -0
  190. package/dist/terminal/key-event-source.js.map +1 -0
  191. package/dist/terminal/key-to-bytes.d.ts +11 -0
  192. package/dist/terminal/key-to-bytes.d.ts.map +1 -0
  193. package/dist/terminal/key-to-bytes.js +81 -0
  194. package/dist/terminal/key-to-bytes.js.map +1 -0
  195. package/dist/terminal/koffi-loader.d.ts +14 -0
  196. package/dist/terminal/koffi-loader.d.ts.map +1 -1
  197. package/dist/terminal/koffi-loader.js.map +1 -1
  198. package/dist/terminal/render.d.ts +1 -2
  199. package/dist/terminal/render.d.ts.map +1 -1
  200. package/dist/terminal/render.js +1 -30
  201. package/dist/terminal/render.js.map +1 -1
  202. package/dist/terminal/stdin-byte-source.d.ts +27 -0
  203. package/dist/terminal/stdin-byte-source.d.ts.map +1 -0
  204. package/dist/terminal/stdin-byte-source.js +92 -0
  205. package/dist/terminal/stdin-byte-source.js.map +1 -0
  206. package/dist/terminal/win32-console-mode.d.ts.map +1 -1
  207. package/dist/terminal/win32-console-mode.js.map +1 -1
  208. package/dist/terminal/win32-console-source.d.ts +26 -0
  209. package/dist/terminal/win32-console-source.d.ts.map +1 -0
  210. package/dist/terminal/win32-console-source.js +275 -0
  211. package/dist/terminal/win32-console-source.js.map +1 -0
  212. package/dist/terminal/win32-key-translator.d.ts +26 -0
  213. package/dist/terminal/win32-key-translator.d.ts.map +1 -0
  214. package/dist/terminal/win32-key-translator.js +87 -0
  215. package/dist/terminal/win32-key-translator.js.map +1 -0
  216. package/dist/terminal-input.d.ts +10 -0
  217. package/dist/terminal-input.d.ts.map +1 -1
  218. package/dist/terminal-input.js +132 -113
  219. package/dist/terminal-input.js.map +1 -1
  220. package/dist/user/host-curate-prompt.d.ts +2 -1
  221. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  222. package/dist/user/host-curate-prompt.js +13 -11
  223. package/dist/user/host-curate-prompt.js.map +1 -1
  224. package/dist/user/host-prompt.d.ts +4 -1
  225. package/dist/user/host-prompt.d.ts.map +1 -1
  226. package/dist/user/host-prompt.js +24 -6
  227. package/dist/user/host-prompt.js.map +1 -1
  228. package/dist/user/prompt.d.ts +7 -9
  229. package/dist/user/prompt.d.ts.map +1 -1
  230. package/dist/user/prompt.js +14 -23
  231. package/dist/user/prompt.js.map +1 -1
  232. package/package.json +1 -1
@@ -9,6 +9,11 @@
9
9
  * startup TUI) wrap this via composition and map TerminalKey → their own
10
10
  * domain event types.
11
11
  */
12
+ const SUPPRESSED = { tag: "suppressed" };
13
+ const UNRECOGNIZED = { tag: "unrecognized" };
14
+ function keys(...k) {
15
+ return { tag: "keys", keys: k };
16
+ }
12
17
  export class TerminalKeyParser {
13
18
  escapeTimeoutMs;
14
19
  state = "normal";
@@ -30,7 +35,7 @@ export class TerminalKeyParser {
30
35
  }
31
36
  }
32
37
  parseChunk(chunk) {
33
- const keys = [];
38
+ const out = [];
34
39
  for (const byte of chunk) {
35
40
  switch (this.state) {
36
41
  case "normal":
@@ -39,16 +44,15 @@ export class TerminalKeyParser {
39
44
  this.state = "esc";
40
45
  }
41
46
  else if (byte === 0x0d || byte === 0x0a) {
42
- keys.push({ kind: "enter" });
47
+ out.push({ kind: "enter", byte });
43
48
  }
44
49
  else if (byte === 0x7f || byte === 0x08) {
45
- keys.push({ kind: "backspace" });
50
+ out.push({ kind: "backspace" });
46
51
  }
47
52
  else if (byte < 0x20) {
48
- keys.push({ kind: "control", byte });
53
+ out.push({ kind: "control", byte });
49
54
  }
50
55
  else if (byte >= 0xc2 && byte <= 0xf4) {
51
- // UTF-8 multi-byte start byte
52
56
  this.utf8Buffer = [byte];
53
57
  this.utf8Expected = byte < 0xe0 ? 2 : byte < 0xf0 ? 3 : 4;
54
58
  this.state = "utf8";
@@ -58,7 +62,7 @@ export class TerminalKeyParser {
58
62
  }
59
63
  else {
60
64
  const ch = String.fromCharCode(byte);
61
- keys.push({ kind: "printable", char: ch, source: "plain" });
65
+ out.push({ kind: "printable", char: ch, source: "plain" });
62
66
  }
63
67
  break;
64
68
  case "esc":
@@ -70,25 +74,41 @@ export class TerminalKeyParser {
70
74
  this.state = "ss3";
71
75
  }
72
76
  else {
77
+ // Bare ESC + non-CSI/non-SS3 byte: emit escape, then re-process
78
+ // the byte through `normal`. This NEVER produces `raw` — see
79
+ // preservation contract item 3.
73
80
  this.state = "normal";
74
- keys.push({ kind: "escape" });
75
- // Re-process current byte in normal mode
76
- keys.push(...this.parseChunk(Buffer.from([byte])));
81
+ out.push({ kind: "escape" });
82
+ out.push(...this.parseChunk(Buffer.from([byte])));
77
83
  }
78
84
  break;
79
- case "csi":
85
+ case "csi": {
80
86
  if (byte >= 0x40 && byte <= 0x7e) {
81
- keys.push(...this.handleCsi(this.csiParams, String.fromCharCode(byte)));
87
+ const params = this.csiParams;
88
+ const result = this.handleCsi(params, String.fromCharCode(byte));
82
89
  this.state = "normal";
90
+ this.dispatch(out, result, () => {
91
+ // Re-frame the consumed CSI bytes: ESC [ params <final>.
92
+ const paramBytes = Buffer.from(params, "ascii");
93
+ const frame = Buffer.alloc(2 + paramBytes.length + 1);
94
+ frame[0] = 0x1b;
95
+ frame[1] = 0x5b;
96
+ paramBytes.copy(frame, 2);
97
+ frame[2 + paramBytes.length] = byte;
98
+ return frame;
99
+ });
83
100
  }
84
101
  else {
85
102
  this.csiParams += String.fromCharCode(byte);
86
103
  }
87
104
  break;
88
- case "ss3":
105
+ }
106
+ case "ss3": {
107
+ const result = this.handleSs3(byte);
89
108
  this.state = "normal";
90
- keys.push(...this.handleSs3(byte));
109
+ this.dispatch(out, result, () => Buffer.from([0x1b, 0x4f, byte]));
91
110
  break;
111
+ }
92
112
  case "utf8":
93
113
  if (byte >= 0x80 && byte <= 0xbf) {
94
114
  this.utf8Buffer.push(byte);
@@ -97,15 +117,14 @@ export class TerminalKeyParser {
97
117
  this.state = "normal";
98
118
  this.utf8Buffer = [];
99
119
  if (char && !char.includes("\ufffd")) {
100
- keys.push({ kind: "printable", char, source: "plain" });
120
+ out.push({ kind: "printable", char, source: "plain" });
101
121
  }
102
122
  }
103
123
  }
104
124
  else {
105
- // Invalid continuation — discard incomplete sequence, re-process byte
106
125
  this.utf8Buffer = [];
107
126
  this.state = "normal";
108
- keys.push(...this.parseChunk(Buffer.from([byte])));
127
+ out.push(...this.parseChunk(Buffer.from([byte])));
109
128
  }
110
129
  break;
111
130
  }
@@ -120,87 +139,82 @@ export class TerminalKeyParser {
120
139
  }
121
140
  }, this.escapeTimeoutMs);
122
141
  }
123
- return keys;
142
+ return out;
143
+ }
144
+ dispatch(out, result, frameBytes) {
145
+ switch (result.tag) {
146
+ case "keys":
147
+ for (const k of result.keys)
148
+ out.push(k);
149
+ return;
150
+ case "suppressed":
151
+ return;
152
+ case "unrecognized":
153
+ out.push({ kind: "raw", bytes: frameBytes() });
154
+ return;
155
+ }
124
156
  }
125
157
  handleSs3(byte) {
126
158
  switch (byte) {
127
159
  case 0x41:
128
- return [{ kind: "arrow", direction: "up" }];
160
+ return keys({ kind: "arrow", direction: "up" });
129
161
  case 0x42:
130
- return [{ kind: "arrow", direction: "down" }];
162
+ return keys({ kind: "arrow", direction: "down" });
131
163
  case 0x43:
132
- return [{ kind: "arrow", direction: "right" }];
164
+ return keys({ kind: "arrow", direction: "right" });
133
165
  case 0x44:
134
- return [{ kind: "arrow", direction: "left" }];
166
+ return keys({ kind: "arrow", direction: "left" });
135
167
  default:
136
- return [
137
- { kind: "escape" },
138
- { kind: "printable", char: "O", source: "plain" },
139
- ...this.parseChunk(Buffer.from([byte])),
140
- ];
168
+ return UNRECOGNIZED;
141
169
  }
142
170
  }
143
171
  handleCsi(params, finalByte) {
144
172
  // Standard arrow keys: CSI A/B/C/D (with optional params like "1;1")
145
- if (finalByte === "A") {
146
- return [{ kind: "arrow", direction: "up" }];
147
- }
148
- if (finalByte === "B") {
149
- return [{ kind: "arrow", direction: "down" }];
150
- }
151
- if (finalByte === "C") {
152
- return [{ kind: "arrow", direction: "right" }];
153
- }
154
- if (finalByte === "D") {
155
- return [{ kind: "arrow", direction: "left" }];
156
- }
173
+ if (finalByte === "A")
174
+ return keys({ kind: "arrow", direction: "up" });
175
+ if (finalByte === "B")
176
+ return keys({ kind: "arrow", direction: "down" });
177
+ if (finalByte === "C")
178
+ return keys({ kind: "arrow", direction: "right" });
179
+ if (finalByte === "D")
180
+ return keys({ kind: "arrow", direction: "left" });
157
181
  // CSI Z: standard Shift+Tab — normalize to Kitty protocol representation
158
- if (finalByte === "Z") {
159
- return [{ kind: "kitty-key", keyCode: 9, modifiers: 2 }];
160
- }
161
- // Navigation keys via CSI ~ form: PageUp/PageDown/Home/End. Modifier
162
- // params (e.g. "1;5") are accepted; we keep semantics modifier-agnostic
163
- // because consumers want the navigation event regardless of modifiers.
182
+ if (finalByte === "Z")
183
+ return keys({ kind: "kitty-key", keyCode: 9, modifiers: 2 });
184
+ // CSI ~ form: PageUp / PageDown / Home / End.
164
185
  if (finalByte === "~") {
165
186
  const code = parseInt(params.split(";")[0] ?? "", 10) || 0;
166
187
  switch (code) {
167
- case 5:
168
- return [{ kind: "page", direction: "up" }];
169
- case 6:
170
- return [{ kind: "page", direction: "down" }];
188
+ case 5: return keys({ kind: "page", direction: "up" });
189
+ case 6: return keys({ kind: "page", direction: "down" });
171
190
  case 1:
172
- case 7:
173
- return [{ kind: "home" }];
191
+ case 7: return keys({ kind: "home" });
174
192
  case 4:
175
- case 8:
176
- return [{ kind: "end" }];
193
+ case 8: return keys({ kind: "end" });
177
194
  }
178
- return [];
179
- }
180
- // CSI H/F (with optional modifier params): Home / End
181
- if (finalByte === "H") {
182
- return [{ kind: "home" }];
183
- }
184
- if (finalByte === "F") {
185
- return [{ kind: "end" }];
195
+ return UNRECOGNIZED;
186
196
  }
197
+ if (finalByte === "H")
198
+ return keys({ kind: "home" });
199
+ if (finalByte === "F")
200
+ return keys({ kind: "end" });
187
201
  // SGR mouse encoding: CSI < Cb ; Cx ; Cy M (press) or m (release).
188
- // Wheel events: Cb=64 (up) / Cb=65 (down). Other Cb values are mouse
189
- // clicks/motion which the parser does not surface as a TerminalKey.
202
+ // Wheel events: Cb=64 (up) / Cb=65 (down) surface as `wheel`.
203
+ // Non-wheel SGR mouse (clicks, motion, releases) `unrecognized` so
204
+ // the router forwards them verbatim to the child PTY via `raw`.
190
205
  if (params.startsWith("<") && (finalByte === "M" || finalByte === "m")) {
191
206
  const cb = parseInt(params.slice(1).split(";")[0] ?? "", 10);
192
207
  if (cb === 64)
193
- return [{ kind: "wheel", direction: "up" }];
208
+ return keys({ kind: "wheel", direction: "up" });
194
209
  if (cb === 65)
195
- return [{ kind: "wheel", direction: "down" }];
196
- return [];
210
+ return keys({ kind: "wheel", direction: "down" });
211
+ return UNRECOGNIZED;
197
212
  }
198
213
  if (finalByte !== "u" && finalByte !== "_") {
199
- return [];
214
+ return UNRECOGNIZED;
200
215
  }
201
216
  const parts = params.split(";");
202
217
  // Win32-input-mode: CSI Vk;Sc;Uc;Kd;Cs;Rc _ (6 fields, finalByte '_')
203
- // Enabled by \x1b[?9001h — Claude Code uses this on Windows Terminal.
204
218
  if (finalByte === "_" && parts.length === 6) {
205
219
  return this.handleWin32Input(parts);
206
220
  }
@@ -208,52 +222,49 @@ export class TerminalKeyParser {
208
222
  const modifiers = parseInt(parts[1]?.split(":")[0] ?? "1", 10) || 1;
209
223
  const eventType = this.parseKittyEventType(parts[1]);
210
224
  // Ignore key-release events
211
- if (eventType === 3) {
212
- return [];
213
- }
225
+ if (eventType === 3)
226
+ return SUPPRESSED;
214
227
  // Enter with Ctrl modifier → kitty-key (so consumer can distinguish Ctrl+Enter)
215
228
  if ((keyCode === 13 || keyCode === 10) && (modifiers - 1) & 0x04) {
216
- return [{ kind: "kitty-key", keyCode, modifiers }];
229
+ return keys({ kind: "kitty-key", keyCode, modifiers });
217
230
  }
218
231
  // Enter (no Ctrl)
219
232
  if (keyCode === 13 || keyCode === 10) {
220
- return [{ kind: "enter" }];
233
+ return keys({ kind: "enter", byte: keyCode === 10 ? 0x0a : 0x0d });
221
234
  }
222
235
  // Backspace
223
236
  if (keyCode === 127 || keyCode === 8) {
224
- return [{ kind: "backspace" }];
237
+ return keys({ kind: "backspace" });
225
238
  }
226
239
  // Special keycodes → kitty-key (consumer decides semantics)
227
240
  if (keyCode === 9 || keyCode === 27 || keyCode === 3) {
228
- return [{ kind: "kitty-key", keyCode, modifiers }];
241
+ return keys({ kind: "kitty-key", keyCode, modifiers });
229
242
  }
230
243
  // Ctrl-modified printable keys are shortcuts, not text input.
231
244
  if (keyCode >= 32 && keyCode < 127 && ((modifiers - 1) & 0x04) !== 0) {
232
- return [{ kind: "kitty-key", keyCode, modifiers }];
245
+ return keys({ kind: "kitty-key", keyCode, modifiers });
233
246
  }
234
- // Kitty functional keycodes — normalize to standard events so consumers
235
- // don't need to know about the extended keycode table. These appear when
236
- // the terminal is in "report all keys as escape codes" mode (flag 0x08).
237
- // Keycodes from the kitty keyboard protocol functional key table.
247
+ // Kitty functional keycodes — normalize to standard events.
238
248
  switch (keyCode) {
239
249
  case 57344: // Escape
240
- return [{ kind: "kitty-key", keyCode: 27, modifiers }];
250
+ return keys({ kind: "kitty-key", keyCode: 27, modifiers });
241
251
  case 57345: // Enter
242
252
  if ((modifiers - 1) & 0x04)
243
- return [{ kind: "kitty-key", keyCode: 13, modifiers }];
244
- return [{ kind: "enter" }];
253
+ return keys({ kind: "kitty-key", keyCode: 13, modifiers });
254
+ // No source byte — kitty Enter convention picks CR.
255
+ return keys({ kind: "enter", byte: 0x0d });
245
256
  case 57346: // Tab
246
- return [{ kind: "kitty-key", keyCode: 9, modifiers }];
257
+ return keys({ kind: "kitty-key", keyCode: 9, modifiers });
247
258
  case 57347: // Backspace
248
- return [{ kind: "backspace" }];
259
+ return keys({ kind: "backspace" });
249
260
  case 57350: // Left
250
- return [{ kind: "arrow", direction: "left" }];
261
+ return keys({ kind: "arrow", direction: "left" });
251
262
  case 57351: // Right
252
- return [{ kind: "arrow", direction: "right" }];
263
+ return keys({ kind: "arrow", direction: "right" });
253
264
  case 57352: // Up
254
- return [{ kind: "arrow", direction: "up" }];
265
+ return keys({ kind: "arrow", direction: "up" });
255
266
  case 57353: // Down
256
- return [{ kind: "arrow", direction: "down" }];
267
+ return keys({ kind: "arrow", direction: "down" });
257
268
  }
258
269
  // Kitty text event (_): extract codepoints
259
270
  if (finalByte === "_" && parts.length >= 3) {
@@ -261,77 +272,85 @@ export class TerminalKeyParser {
261
272
  .split(":")
262
273
  .map(Number)
263
274
  .filter((cp) => cp >= 32);
264
- return cps.map((cp) => ({
265
- kind: "printable",
266
- char: String.fromCodePoint(cp),
267
- source: "kitty-text",
268
- }));
275
+ return {
276
+ tag: "keys",
277
+ keys: cps.map((cp) => ({
278
+ kind: "printable",
279
+ char: String.fromCodePoint(cp),
280
+ source: "kitty-text",
281
+ })),
282
+ };
269
283
  }
270
284
  // Printable keycodes via 'u'
271
285
  if (keyCode >= 32 && keyCode < 127) {
272
286
  const ch = String.fromCharCode(keyCode);
273
- return [{ kind: "printable", char: ch, source: "kitty-u" }];
287
+ return keys({ kind: "printable", char: ch, source: "kitty-u" });
274
288
  }
275
- return [];
289
+ return UNRECOGNIZED;
276
290
  }
277
291
  /**
278
292
  * Win32-input-mode: CSI Vk;Sc;Uc;Kd;Cs;Rc _
279
293
  * Vk = virtual key code, Sc = scan code, Uc = unicode char,
280
294
  * Kd = key-down(1)/up(0), Cs = control-key-state bitmask, Rc = repeat count.
295
+ *
296
+ * This path never returns `unrecognized`. The byte-stream Win32-input-mode
297
+ * frames come from a structured source (Windows Terminal forwarding console
298
+ * input through ConPTY), so every recognized shape we don't act on is a
299
+ * protocol artifact that should be dropped, not forwarded as `raw`.
281
300
  */
282
301
  handleWin32Input(parts) {
283
- const uc = parseInt(parts[2], 10) || 0; // Unicode character
284
- const kd = parseInt(parts[3], 10) || 0; // Key down
285
- const cs = parseInt(parts[4], 10) || 0; // Control key state
302
+ const uc = parseInt(parts[2], 10) || 0;
303
+ const kd = parseInt(parts[3], 10) || 0;
304
+ const cs = parseInt(parts[4], 10) || 0;
286
305
  // Only process key-down events
287
306
  if (kd !== 1)
288
- return [];
307
+ return SUPPRESSED;
289
308
  // Modifier-only keys (Ctrl=17, Shift=16, Alt=18) — ignore
290
309
  const vk = parseInt(parts[0], 10) || 0;
291
310
  if (vk === 16 || vk === 17 || vk === 18)
292
- return [];
311
+ return SUPPRESSED;
293
312
  // Navigation keys (VK_PRIOR=33, VK_NEXT=34, VK_END=35, VK_HOME=36)
294
313
  if (vk === 33)
295
- return [{ kind: "page", direction: "up" }];
314
+ return keys({ kind: "page", direction: "up" });
296
315
  if (vk === 34)
297
- return [{ kind: "page", direction: "down" }];
316
+ return keys({ kind: "page", direction: "down" });
298
317
  if (vk === 35)
299
- return [{ kind: "end" }];
318
+ return keys({ kind: "end" });
300
319
  if (vk === 36)
301
- return [{ kind: "home" }];
320
+ return keys({ kind: "home" });
302
321
  // Arrow keys (VK_LEFT=37, VK_UP=38, VK_RIGHT=39, VK_DOWN=40)
303
322
  if (vk >= 37 && vk <= 40) {
304
323
  const dir = ["left", "up", "right", "down"][vk - 37];
305
- return [{ kind: "arrow", direction: dir }];
324
+ return keys({ kind: "arrow", direction: dir });
306
325
  }
307
326
  const ctrl = (cs & 0x000c) !== 0; // LEFT_CTRL(0x08) | RIGHT_CTRL(0x04)
308
327
  // Enter
309
328
  if (uc === 13 || uc === 10) {
310
329
  if (ctrl)
311
- return [{ kind: "kitty-key", keyCode: 13, modifiers: 5 }];
312
- return [{ kind: "enter" }];
330
+ return keys({ kind: "kitty-key", keyCode: 13, modifiers: 5 });
331
+ return keys({ kind: "enter", byte: uc });
313
332
  }
314
333
  // Backspace (VK_BACK=8)
315
334
  if (vk === 8)
316
- return [{ kind: "backspace" }];
335
+ return keys({ kind: "backspace" });
317
336
  // Escape (VK_ESCAPE=27)
318
337
  if (vk === 27)
319
- return [{ kind: "escape" }];
338
+ return keys({ kind: "escape" });
320
339
  // Tab (VK_TAB=9)
321
340
  if (vk === 9) {
322
341
  const shift = (cs & 0x0010) !== 0;
323
- return [{ kind: "kitty-key", keyCode: 9, modifiers: shift ? 2 : 1 }];
342
+ return keys({ kind: "kitty-key", keyCode: 9, modifiers: shift ? 2 : 1 });
324
343
  }
325
344
  // Control characters (Ctrl-generated control bytes below ASCII 32)
326
345
  if (ctrl && uc >= 1 && uc < 32) {
327
- return [{ kind: "control", byte: uc }];
346
+ return keys({ kind: "control", byte: uc });
328
347
  }
329
348
  // Printable characters
330
349
  if (uc >= 32) {
331
350
  const ch = String.fromCharCode(uc);
332
- return [{ kind: "printable", char: ch, source: "plain" }];
351
+ return keys({ kind: "printable", char: ch, source: "plain" });
333
352
  }
334
- return [];
353
+ return SUPPRESSED;
335
354
  }
336
355
  parseKittyEventType(modsAndEvent) {
337
356
  if (!modsAndEvent)
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-input.js","sourceRoot":"","sources":["../src/terminal-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-input.js","sourceRoot":"","sources":["../src/terminal-input.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,8 @@ import type { TerminalHost } from "../terminal/host.js";
23
23
  * - Enter on a revise row begins or finishes the inline edit; Esc cancels.
24
24
  * - PageUp/PageDown/Home/End/wheel scrolls the plan.
25
25
  * - Up/Down moves the cursor among issues.
26
- * - Ctrl+D submits, Ctrl+C accepts all (keep all).
26
+ * - Ctrl+D submits; Ctrl+C quits poly-weaver (exit code 130). Inside the
27
+ * inline revise editor (`state.editing`), Ctrl+C cancels the edit only.
27
28
  * - Ctrl+] is consumed by the host's `InputRouter` for dump capture.
28
29
  */
29
30
  export declare class HostBackedCuratePrompt implements CuratePromptHandler {
@@ -1 +1 @@
1
- {"version":3,"file":"host-curate-prompt.d.ts","sourceRoot":"","sources":["../../src/user/host-curate-prompt.ts"],"names":[],"mappings":"AASA,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAMzF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAiM/E"}
1
+ {"version":3,"file":"host-curate-prompt.d.ts","sourceRoot":"","sources":["../../src/user/host-curate-prompt.ts"],"names":[],"mappings":"AAWA,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAMzF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAiM/E"}
@@ -1,4 +1,5 @@
1
1
  import { bold, cyan, dim, reset, visibleLength, } from "../ansi.js";
2
+ import { AgentInterruptedError } from "../agents/runner.js";
2
3
  import { renderMarkdown } from "../markdown.js";
3
4
  import { RawInputParser } from "./prompt.js";
4
5
  import { clipToWidth, tagFor, wrapToWidth, } from "./curate-prompt.js";
@@ -29,7 +30,8 @@ const COLLAPSE_AT_COLS = 100;
29
30
  * - Enter on a revise row begins or finishes the inline edit; Esc cancels.
30
31
  * - PageUp/PageDown/Home/End/wheel scrolls the plan.
31
32
  * - Up/Down moves the cursor among issues.
32
- * - Ctrl+D submits, Ctrl+C accepts all (keep all).
33
+ * - Ctrl+D submits; Ctrl+C quits poly-weaver (exit code 130). Inside the
34
+ * inline revise editor (`state.editing`), Ctrl+C cancels the edit only.
33
35
  * - Ctrl+] is consumed by the host's `InputRouter` for dump capture.
34
36
  */
35
37
  export class HostBackedCuratePrompt {
@@ -53,13 +55,18 @@ export class HostBackedCuratePrompt {
53
55
  planScrollTop: 0,
54
56
  };
55
57
  const parser = new RawInputParser();
56
- return new Promise((resolve) => {
58
+ return new Promise((resolve, reject) => {
57
59
  let detach;
58
60
  const finish = (result) => {
59
61
  detach?.();
60
62
  detach = undefined;
61
63
  resolve(result);
62
64
  };
65
+ const failWith = (err) => {
66
+ detach?.();
67
+ detach = undefined;
68
+ reject(err);
69
+ };
63
70
  const submit = () => {
64
71
  for (let i = 0; i < state.decisions.length; i++) {
65
72
  if (state.decisions[i] === "revise" && !state.comments[i]) {
@@ -115,9 +122,7 @@ export class HostBackedCuratePrompt {
115
122
  continue;
116
123
  }
117
124
  if (event.type === "ctrl-c") {
118
- finish({
119
- decisions: issues.map((_, i) => ({ index: i, decision: "keep" })),
120
- });
125
+ failWith(new AgentInterruptedError("Interrupted"));
121
126
  finished = true;
122
127
  continue;
123
128
  }
@@ -217,14 +222,11 @@ export class HostBackedCuratePrompt {
217
222
  const rows = Math.max(1, layout.childRows);
218
223
  return buildSurface(verdict, plan, state, cols, rows);
219
224
  },
220
- onInput: (chunk) => {
221
- processEvents(parser.parseChunk(chunk));
225
+ onEvents: (keys) => {
226
+ processEvents(parser.mapKeys(keys));
222
227
  return true;
223
228
  },
224
229
  };
225
- parser.onDeferred((events) => {
226
- processEvents(events);
227
- });
228
230
  detach = this.host.attachParentUi(mode);
229
231
  });
230
232
  }
@@ -324,7 +326,7 @@ function buildLeftPane(verdict, state, width, rows) {
324
326
  helpRows.push("Enter submit · Esc cancel");
325
327
  }
326
328
  else {
327
- helpRows.push("↑/↓ navigate · k/d/r set · Tab cycle · Enter edit · Ctrl+D submit · Ctrl+C keep-all");
329
+ helpRows.push("↑/↓ navigate · k/d/r set · Tab cycle · Enter edit · Ctrl+D submit · Ctrl+C quit");
328
330
  }
329
331
  for (const row of helpRows) {
330
332
  for (const l of wrapToWidth(row, width)) {