poly-weaver 1.1.0 → 1.2.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 (236) hide show
  1. package/dist/agents/implementors/index.d.ts +2 -2
  2. package/dist/agents/implementors/index.d.ts.map +1 -1
  3. package/dist/agents/implementors/index.js.map +1 -1
  4. package/dist/agents/index.d.ts.map +1 -1
  5. package/dist/agents/index.js +7 -6
  6. package/dist/agents/index.js.map +1 -1
  7. package/dist/agents/interviewers/index.d.ts +2 -2
  8. package/dist/agents/interviewers/index.d.ts.map +1 -1
  9. package/dist/agents/planners/index.d.ts +2 -2
  10. package/dist/agents/planners/index.d.ts.map +1 -1
  11. package/dist/agents/planners/index.js.map +1 -1
  12. package/dist/agents/registry.d.ts +2 -1
  13. package/dist/agents/registry.d.ts.map +1 -1
  14. package/dist/agents/registry.js +1 -1
  15. package/dist/agents/registry.js.map +1 -1
  16. package/dist/agents/reviewers/index.d.ts +2 -2
  17. package/dist/agents/reviewers/index.d.ts.map +1 -1
  18. package/dist/agents/reviewers/index.js.map +1 -1
  19. package/dist/agents/runner.d.ts +3 -1
  20. package/dist/agents/runner.d.ts.map +1 -1
  21. package/dist/agents/runner.js +106 -64
  22. package/dist/agents/runner.js.map +1 -1
  23. package/dist/agents/simplifiers/adapter.d.ts.map +1 -1
  24. package/dist/agents/simplifiers/adapter.js +1 -0
  25. package/dist/agents/simplifiers/adapter.js.map +1 -1
  26. package/dist/agents/simplifiers/dsl.d.ts +1 -0
  27. package/dist/agents/simplifiers/dsl.d.ts.map +1 -1
  28. package/dist/agents/simplifiers/dsl.js +1 -0
  29. package/dist/agents/simplifiers/dsl.js.map +1 -1
  30. package/dist/agents/simplifiers/handler.d.ts.map +1 -1
  31. package/dist/agents/simplifiers/handler.js +1 -0
  32. package/dist/agents/simplifiers/handler.js.map +1 -1
  33. package/dist/agents/simplifiers/index.d.ts +2 -2
  34. package/dist/agents/simplifiers/index.d.ts.map +1 -1
  35. package/dist/agents/simplifiers/index.js.map +1 -1
  36. package/dist/agents/simplifiers/prompts.d.ts +1 -0
  37. package/dist/agents/simplifiers/prompts.d.ts.map +1 -1
  38. package/dist/agents/simplifiers/prompts.js +1 -1
  39. package/dist/agents/simplifiers/prompts.js.map +1 -1
  40. package/dist/agents/simplifiers/types.d.ts +1 -0
  41. package/dist/agents/simplifiers/types.d.ts.map +1 -1
  42. package/dist/cleanup.d.ts +9 -0
  43. package/dist/cleanup.d.ts.map +1 -0
  44. package/dist/cleanup.js +35 -0
  45. package/dist/cleanup.js.map +1 -0
  46. package/dist/cli.js +30 -13
  47. package/dist/cli.js.map +1 -1
  48. package/dist/config.d.ts +5 -3
  49. package/dist/config.d.ts.map +1 -1
  50. package/dist/config.js.map +1 -1
  51. package/dist/crosscheck/coordinator.d.ts.map +1 -1
  52. package/dist/crosscheck/coordinator.js +52 -36
  53. package/dist/crosscheck/coordinator.js.map +1 -1
  54. package/dist/crosscheck/live-agent-session.d.ts +8 -1
  55. package/dist/crosscheck/live-agent-session.d.ts.map +1 -1
  56. package/dist/crosscheck/live-agent-session.js +62 -31
  57. package/dist/crosscheck/live-agent-session.js.map +1 -1
  58. package/dist/dump/collector.d.ts.map +1 -1
  59. package/dist/dump/collector.js +1 -0
  60. package/dist/dump/collector.js.map +1 -1
  61. package/dist/dump/observer-diagnostics.d.ts +6 -0
  62. package/dist/dump/observer-diagnostics.d.ts.map +1 -0
  63. package/dist/dump/observer-diagnostics.js +19 -0
  64. package/dist/dump/observer-diagnostics.js.map +1 -0
  65. package/dist/dump/service.d.ts.map +1 -1
  66. package/dist/dump/service.js +2 -3
  67. package/dist/dump/service.js.map +1 -1
  68. package/dist/dump/types.d.ts +2 -0
  69. package/dist/dump/types.d.ts.map +1 -1
  70. package/dist/flow/built-in/simplify-factory.d.ts.map +1 -1
  71. package/dist/flow/built-in/simplify-factory.js +4 -1
  72. package/dist/flow/built-in/simplify-factory.js.map +1 -1
  73. package/dist/flow/built-in/simplify.d.ts +1 -0
  74. package/dist/flow/built-in/simplify.d.ts.map +1 -1
  75. package/dist/flow/built-in/simplify.js +3 -2
  76. package/dist/flow/built-in/simplify.js.map +1 -1
  77. package/dist/flow/dsl.d.ts +1 -0
  78. package/dist/flow/dsl.d.ts.map +1 -1
  79. package/dist/flow/dsl.js +1 -0
  80. package/dist/flow/dsl.js.map +1 -1
  81. package/dist/flow/executor.d.ts.map +1 -1
  82. package/dist/flow/executor.js +3 -3
  83. package/dist/flow/executor.js.map +1 -1
  84. package/dist/flow/params.d.ts +3 -1
  85. package/dist/flow/params.d.ts.map +1 -1
  86. package/dist/flow/params.js +85 -121
  87. package/dist/flow/params.js.map +1 -1
  88. package/dist/flow/types.d.ts +5 -2
  89. package/dist/flow/types.d.ts.map +1 -1
  90. package/dist/flow/types.js.map +1 -1
  91. package/dist/offscreen/controller.d.ts +1 -1
  92. package/dist/offscreen/controller.d.ts.map +1 -1
  93. package/dist/offscreen/controller.js +67 -45
  94. package/dist/offscreen/controller.js.map +1 -1
  95. package/dist/offscreen/fork.d.ts +6 -3
  96. package/dist/offscreen/fork.d.ts.map +1 -1
  97. package/dist/offscreen/fork.js +57 -33
  98. package/dist/offscreen/fork.js.map +1 -1
  99. package/dist/offscreen/inquiry-pane.d.ts.map +1 -1
  100. package/dist/offscreen/inquiry-pane.js +7 -2
  101. package/dist/offscreen/inquiry-pane.js.map +1 -1
  102. package/dist/offscreen/inquiry-sender.d.ts +1 -0
  103. package/dist/offscreen/inquiry-sender.d.ts.map +1 -1
  104. package/dist/offscreen/inquiry-sender.js +12 -2
  105. package/dist/offscreen/inquiry-sender.js.map +1 -1
  106. package/dist/offscreen/registry.d.ts.map +1 -1
  107. package/dist/offscreen/registry.js +14 -12
  108. package/dist/offscreen/registry.js.map +1 -1
  109. package/dist/orchestrator.d.ts.map +1 -1
  110. package/dist/orchestrator.js +20 -24
  111. package/dist/orchestrator.js.map +1 -1
  112. package/dist/preview-panel.d.ts +4 -1
  113. package/dist/preview-panel.d.ts.map +1 -1
  114. package/dist/preview-panel.js +114 -55
  115. package/dist/preview-panel.js.map +1 -1
  116. package/dist/providers/configuration-presentation.d.ts.map +1 -1
  117. package/dist/providers/configuration-presentation.js +5 -8
  118. package/dist/providers/configuration-presentation.js.map +1 -1
  119. package/dist/providers/copilot/capability-discovery.d.ts +16 -0
  120. package/dist/providers/copilot/capability-discovery.d.ts.map +1 -0
  121. package/dist/providers/copilot/capability-discovery.js +238 -0
  122. package/dist/providers/copilot/capability-discovery.js.map +1 -0
  123. package/dist/providers/copilot/capability-extension/extension.d.mts +2 -0
  124. package/dist/providers/copilot/capability-extension/extension.d.mts.map +1 -0
  125. package/dist/providers/copilot/capability-extension/extension.mjs +46 -0
  126. package/dist/providers/copilot/capability-extension/extension.mjs.map +1 -0
  127. package/dist/providers/copilot/completion.d.ts +2 -0
  128. package/dist/providers/copilot/completion.d.ts.map +1 -1
  129. package/dist/providers/copilot/completion.js +27 -0
  130. package/dist/providers/copilot/completion.js.map +1 -1
  131. package/dist/providers/copilot/model-capabilities.d.ts +21 -0
  132. package/dist/providers/copilot/model-capabilities.d.ts.map +1 -0
  133. package/dist/providers/copilot/model-capabilities.js +76 -0
  134. package/dist/providers/copilot/model-capabilities.js.map +1 -0
  135. package/dist/providers/copilot/observation.d.ts +123 -15
  136. package/dist/providers/copilot/observation.d.ts.map +1 -1
  137. package/dist/providers/copilot/observation.js +807 -179
  138. package/dist/providers/copilot/observation.js.map +1 -1
  139. package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/extension.mjs +332 -66
  140. package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/extension.mjs.map +1 -1
  141. package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.d.mts +17 -0
  142. package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.d.mts.map +1 -0
  143. package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.mjs +54 -0
  144. package/dist/providers/copilot/observer-extension/com.github.copilot/extensions/poly-weaver-observer/history-evidence.mjs.map +1 -0
  145. package/dist/providers/copilot/strategy.d.ts +8 -8
  146. package/dist/providers/copilot/strategy.d.ts.map +1 -1
  147. package/dist/providers/copilot/strategy.js +61 -145
  148. package/dist/providers/copilot/strategy.js.map +1 -1
  149. package/dist/providers/copilot/trust.js +1 -1
  150. package/dist/providers/copilot/trust.js.map +1 -1
  151. package/dist/providers/fork-cleanup.d.ts.map +1 -1
  152. package/dist/providers/fork-cleanup.js +3 -19
  153. package/dist/providers/fork-cleanup.js.map +1 -1
  154. package/dist/providers/initialization.d.ts +14 -0
  155. package/dist/providers/initialization.d.ts.map +1 -0
  156. package/dist/providers/initialization.js +74 -0
  157. package/dist/providers/initialization.js.map +1 -0
  158. package/dist/providers/invoke.d.ts.map +1 -1
  159. package/dist/providers/invoke.js +54 -32
  160. package/dist/providers/invoke.js.map +1 -1
  161. package/dist/providers/observer-run.d.ts.map +1 -1
  162. package/dist/providers/observer-run.js +3 -2
  163. package/dist/providers/observer-run.js.map +1 -1
  164. package/dist/providers/option-catalog.d.ts +12 -8
  165. package/dist/providers/option-catalog.d.ts.map +1 -1
  166. package/dist/providers/option-catalog.js +25 -13
  167. package/dist/providers/option-catalog.js.map +1 -1
  168. package/dist/providers/registry.d.ts +3 -1
  169. package/dist/providers/registry.d.ts.map +1 -1
  170. package/dist/providers/registry.js +20 -9
  171. package/dist/providers/registry.js.map +1 -1
  172. package/dist/providers/session-launch.d.ts.map +1 -1
  173. package/dist/providers/session-launch.js +2 -1
  174. package/dist/providers/session-launch.js.map +1 -1
  175. package/dist/providers/types.d.ts +35 -8
  176. package/dist/providers/types.d.ts.map +1 -1
  177. package/dist/providers/types.js +1 -1
  178. package/dist/providers/types.js.map +1 -1
  179. package/dist/pty/exit.d.ts +3 -1
  180. package/dist/pty/exit.d.ts.map +1 -1
  181. package/dist/pty/exit.js +39 -6
  182. package/dist/pty/exit.js.map +1 -1
  183. package/dist/pty/spawn.d.ts.map +1 -1
  184. package/dist/pty/spawn.js +7 -3
  185. package/dist/pty/spawn.js.map +1 -1
  186. package/dist/pty/types.d.ts +1 -1
  187. package/dist/pty/types.d.ts.map +1 -1
  188. package/dist/session/resume.d.ts.map +1 -1
  189. package/dist/session/resume.js +7 -0
  190. package/dist/session/resume.js.map +1 -1
  191. package/dist/startup-tui.d.ts +1 -0
  192. package/dist/startup-tui.d.ts.map +1 -1
  193. package/dist/startup-tui.js +17 -6
  194. package/dist/startup-tui.js.map +1 -1
  195. package/dist/terminal/color-negotiation.d.ts +37 -0
  196. package/dist/terminal/color-negotiation.d.ts.map +1 -0
  197. package/dist/terminal/color-negotiation.js +154 -0
  198. package/dist/terminal/color-negotiation.js.map +1 -0
  199. package/dist/terminal/color-protocol.d.ts +36 -0
  200. package/dist/terminal/color-protocol.d.ts.map +1 -0
  201. package/dist/terminal/color-protocol.js +88 -0
  202. package/dist/terminal/color-protocol.js.map +1 -0
  203. package/dist/terminal/host-input-mode.d.ts.map +1 -1
  204. package/dist/terminal/host-input-mode.js +6 -2
  205. package/dist/terminal/host-input-mode.js.map +1 -1
  206. package/dist/terminal/host.d.ts +13 -4
  207. package/dist/terminal/host.d.ts.map +1 -1
  208. package/dist/terminal/host.js +147 -51
  209. package/dist/terminal/host.js.map +1 -1
  210. package/dist/terminal/input-session.d.ts +23 -0
  211. package/dist/terminal/input-session.d.ts.map +1 -0
  212. package/dist/terminal/input-session.js +97 -0
  213. package/dist/terminal/input-session.js.map +1 -0
  214. package/dist/terminal/key-event-source.d.ts +5 -1
  215. package/dist/terminal/key-event-source.d.ts.map +1 -1
  216. package/dist/terminal/key-event-source.js +1 -0
  217. package/dist/terminal/key-event-source.js.map +1 -1
  218. package/dist/terminal/stdin-byte-source.d.ts +13 -8
  219. package/dist/terminal/stdin-byte-source.d.ts.map +1 -1
  220. package/dist/terminal/stdin-byte-source.js +84 -40
  221. package/dist/terminal/stdin-byte-source.js.map +1 -1
  222. package/dist/terminal/virtual-terminal.d.ts +2 -0
  223. package/dist/terminal/virtual-terminal.d.ts.map +1 -1
  224. package/dist/terminal/virtual-terminal.js +17 -0
  225. package/dist/terminal/virtual-terminal.js.map +1 -1
  226. package/dist/terminal-input.d.ts +19 -2
  227. package/dist/terminal-input.d.ts.map +1 -1
  228. package/dist/terminal-input.js +162 -6
  229. package/dist/terminal-input.js.map +1 -1
  230. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  231. package/dist/user/host-curate-prompt.js +9 -5
  232. package/dist/user/host-curate-prompt.js.map +1 -1
  233. package/dist/user/host-prompt.d.ts.map +1 -1
  234. package/dist/user/host-prompt.js +9 -5
  235. package/dist/user/host-prompt.js.map +1 -1
  236. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-session.d.ts","sourceRoot":"","sources":["../../src/terminal/input-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpF,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,wFAAwF;AACxF,qBAAa,oBAAoB;IAY7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU;IAXnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IACpE,OAAO,CAAC,MAAM,CAA8E;IAC5F,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAGnB;gBAGS,KAAK,EAAE,MAAM,CAAC,UAAU,EACjC,yBAAyB,CAAC,EAAE,MAAM,EAClC,KAAK,GAAE,UAAuB;IAYhC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IAM7D,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,UAAU;IA0B9D,UAAU,IAAI,IAAI;IAIlB,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,OAAO;CAUhB"}
@@ -0,0 +1,97 @@
1
+ import { TerminalKeyParser } from "../terminal-input.js";
2
+ import { inputClock } from "./color-protocol.js";
3
+ const MAX_DEFERRED_KEYS = 256;
4
+ /** One reader/parser lifetime, independent of replaceable hosted keyboard consumers. */
5
+ export class TerminalInputSession {
6
+ stdin;
7
+ parser;
8
+ reports = new Set();
9
+ active;
10
+ deferred = [];
11
+ disposed = false;
12
+ read = (chunk) => {
13
+ if (this.disposed)
14
+ return;
15
+ this.deliver(this.parser.parseChunk(chunk));
16
+ };
17
+ constructor(stdin, configuredShiftEnterBytes, clock = inputClock) {
18
+ this.stdin = stdin;
19
+ this.parser = new TerminalKeyParser(50, configuredShiftEnterBytes, clock);
20
+ this.parser.onDeferredKeys((events) => this.deliver(events));
21
+ this.parser.onReport((report) => {
22
+ if (this.disposed)
23
+ return;
24
+ for (const callback of this.reports)
25
+ callback(report);
26
+ });
27
+ stdin.pause();
28
+ stdin.on("data", this.read);
29
+ }
30
+ onReport(callback) {
31
+ this.assertLive();
32
+ this.reports.add(callback);
33
+ return () => { this.reports.delete(callback); };
34
+ }
35
+ acquire(callback) {
36
+ this.assertLive();
37
+ if (this.active)
38
+ throw new Error("Terminal input already has an active consumer");
39
+ const lease = { callback, enabled: false };
40
+ this.active = lease;
41
+ return {
42
+ setEnabled: (enabled) => {
43
+ if (this.disposed || this.active !== lease)
44
+ return;
45
+ lease.enabled = enabled;
46
+ if (!enabled) {
47
+ this.stdin.pause();
48
+ return;
49
+ }
50
+ const deferred = this.deferred;
51
+ this.deferred = [];
52
+ if (deferred.length > 0)
53
+ callback(deferred);
54
+ if (!this.disposed && this.active === lease && lease.enabled)
55
+ this.stdin.resume();
56
+ },
57
+ release: () => {
58
+ if (this.active !== lease)
59
+ return;
60
+ this.active = undefined;
61
+ this.stdin.pause();
62
+ },
63
+ };
64
+ }
65
+ assertLive() {
66
+ if (this.disposed)
67
+ throw new Error("Terminal input session has been disposed");
68
+ }
69
+ dispose() {
70
+ if (this.disposed)
71
+ return;
72
+ this.disposed = true;
73
+ this.active = undefined;
74
+ this.stdin.removeListener("data", this.read);
75
+ try {
76
+ this.stdin.pause();
77
+ }
78
+ finally {
79
+ this.parser.dispose();
80
+ this.reports.clear();
81
+ this.deferred = [];
82
+ }
83
+ }
84
+ deliver(events) {
85
+ if (this.disposed || events.length === 0)
86
+ return;
87
+ if (this.active?.enabled)
88
+ this.active.callback(events);
89
+ else {
90
+ if (this.deferred.length + events.length > MAX_DEFERRED_KEYS) {
91
+ throw new Error("Terminal input deferred-key limit exceeded");
92
+ }
93
+ this.deferred.push(...events);
94
+ }
95
+ }
96
+ }
97
+ //# sourceMappingURL=input-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-session.js","sourceRoot":"","sources":["../../src/terminal/input-session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { TerminalKey } from "../terminal-input.js";
2
+ import type { TerminalInputSession } from "./input-session.js";
2
3
  export interface KeyEventSourceOptions {
3
4
  /** Override stdin. Default: `process.stdin`. */
4
5
  stdin?: NodeJS.ReadStream;
@@ -6,6 +7,8 @@ export interface KeyEventSourceOptions {
6
7
  stdout?: NodeJS.WritableStream;
7
8
  /** Request SGR mouse frames for semantic right-click paste gestures. */
8
9
  enableRightClickPaste?: boolean;
10
+ /** Borrow a live framing owner across hosted UI handoffs; otherwise stop disposes private input. */
11
+ inputSession?: TerminalInputSession;
9
12
  }
10
13
  /** Post-resize terminal size carried by a `KeyEventSource.onResize` callback. */
11
14
  export interface ResizeSize {
@@ -20,7 +23,8 @@ export interface ResizeSize {
20
23
  * - Multiple subscribers may attach via `onEvents`; each event burst
21
24
  * fans out to all of them.
22
25
  * - `start()` / `stop()` are idempotent; the source owns raw-mode and
23
- * host input-mode setup on its injected stdout.
26
+ * host input-mode setup on its injected stdout. Private stop tears down
27
+ * input; borrowed stop retains its owner's framing and deadlines.
24
28
  * - Deferred bare-Esc events surface through the same subscriber
25
29
  * callback as regular events.
26
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"key-event-source.d.ts","sourceRoot":"","sources":["../../src/terminal/key-event-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC1B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,iFAAiF;AACjF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,GAAE,qBAA0B,GAC/B,cAAc,CAUhB"}
1
+ {"version":3,"file":"key-event-source.d.ts","sourceRoot":"","sources":["../../src/terminal/key-event-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC1B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oGAAoG;IACpG,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,iFAAiF;AACjF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,GAAE,qBAA0B,GAC/B,cAAc,CAWhB"}
@@ -10,6 +10,7 @@ export function createKeyEventSource(opts = {}) {
10
10
  const stdin = opts.stdin ?? process.stdin;
11
11
  return new StdinByteSource(stdin, opts.stdout ?? process.stdout, resolveWindowsTerminalShiftEnterBytes(), {
12
12
  enableRightClickPaste: opts.enableRightClickPaste === true,
13
+ inputSession: opts.inputSession,
13
14
  });
14
15
  }
15
16
  //# sourceMappingURL=key-event-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-event-source.js","sourceRoot":"","sources":["../../src/terminal/key-event-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AAyC1F;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA8B,EAAE;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC1C,OAAO,IAAI,eAAe,CACxB,KAAK,EACL,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAC7B,qCAAqC,EAAE,EACvC;QACE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,KAAK,IAAI;KAC3D,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"key-event-source.js","sourceRoot":"","sources":["../../src/terminal/key-event-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AA6C1F;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA8B,EAAE;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC1C,OAAO,IAAI,eAAe,CACxB,KAAK,EACL,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAC7B,qCAAqC,EAAE,EACvC;QACE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,KAAK,IAAI;QAC1D,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CACF,CAAC;AACJ,CAAC"}
@@ -1,27 +1,32 @@
1
- import { type TerminalKey } from "../terminal-input.js";
1
+ import type { TerminalKey } from "../terminal-input.js";
2
+ import { TerminalInputSession } from "./input-session.js";
3
+ import type { InputClock } from "./color-protocol.js";
2
4
  import type { KeyEventSource, ResizeSize } from "./key-event-source.js";
3
5
  interface StdinByteSourceOptions {
4
6
  enableRightClickPaste?: boolean;
7
+ inputSession?: TerminalInputSession;
8
+ clock?: InputClock;
5
9
  }
6
10
  /**
7
11
  * Default `KeyEventSource`. Owns raw-mode on its injected stdin and
8
12
  * optional VT input-mode negotiation on its injected stdout.
9
13
  *
10
- * Internally drives a `TerminalKeyParser`; consumers only see the
11
- * structured `TerminalKey[]` stream — the byte-level parser is no
12
- * longer part of any consumer's surface.
14
+ * A private start owns a fresh input session through stop. Hosted sources
15
+ * borrow only a consumer lease; their owner's parser survives handoffs.
13
16
  */
14
17
  export declare class StdinByteSource implements KeyEventSource {
15
18
  private readonly stdin;
16
19
  private readonly out;
20
+ private readonly configuredShiftEnterBytes?;
17
21
  private readonly options;
18
- private readonly parser;
19
22
  private readonly subscribers;
20
- private dataListener;
23
+ private readonly ownership;
24
+ private activation;
21
25
  private disableRightClickPasteMouseMode;
22
26
  private prevRawMode;
23
- private started;
24
- constructor(stdin: NodeJS.ReadStream, out?: NodeJS.WritableStream, configuredShiftEnterBytes?: Buffer, options?: StdinByteSourceOptions);
27
+ private modesEnabled;
28
+ private rawAcquired;
29
+ constructor(stdin: NodeJS.ReadStream, out?: NodeJS.WritableStream, configuredShiftEnterBytes?: Buffer | undefined, options?: StdinByteSourceOptions);
25
30
  start(): void;
26
31
  stop(): void;
27
32
  onEvents(cb: (events: TerminalKey[]) => void): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"stdin-byte-source.d.ts","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExE,UAAU,sBAAsB;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,cAAc;IASlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAEpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,+BAA+B,CAA2B;IAClE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAGL,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,GAAG,GAAE,MAAM,CAAC,cAA+B,EAC5D,yBAAyB,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,sBAA2B;IAMvD,KAAK,IAAI,IAAI;IAqBb,IAAI,IAAI,IAAI;IAqBZ,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAKzD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrD,OAAO,CAAC,MAAM;CAcf"}
1
+ {"version":3,"file":"stdin-byte-source.d.ts","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAmB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExE,UAAU,sBAAsB;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAUlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4E;IACtG,OAAO,CAAC,UAAU,CAAmE;IACrF,OAAO,CAAC,+BAA+B,CAA2B;IAClE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;gBAGT,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,GAAG,GAAE,MAAM,CAAC,cAA+B,EAC3C,yBAAyB,CAAC,EAAE,MAAM,YAAA,EAClC,OAAO,GAAE,sBAA2B;IAWvD,KAAK,IAAI,IAAI;IA8Bb,IAAI,IAAI,IAAI;IA8BZ,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IASzD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAOrD,OAAO,CAAC,MAAM;CAiBf"}
@@ -1,75 +1,114 @@
1
- import { TerminalKeyParser, } from "../terminal-input.js";
1
+ import { TerminalInputSession } from "./input-session.js";
2
2
  import { disableHostInputModes, enableHostInputModes, enableRightClickPasteMouseMode, } from "./host-input-mode.js";
3
3
  /**
4
4
  * Default `KeyEventSource`. Owns raw-mode on its injected stdin and
5
5
  * optional VT input-mode negotiation on its injected stdout.
6
6
  *
7
- * Internally drives a `TerminalKeyParser`; consumers only see the
8
- * structured `TerminalKey[]` stream — the byte-level parser is no
9
- * longer part of any consumer's surface.
7
+ * A private start owns a fresh input session through stop. Hosted sources
8
+ * borrow only a consumer lease; their owner's parser survives handoffs.
10
9
  */
11
10
  export class StdinByteSource {
12
11
  stdin;
13
12
  out;
13
+ configuredShiftEnterBytes;
14
14
  options;
15
- parser;
16
15
  subscribers = new Set();
17
- dataListener;
16
+ ownership;
17
+ activation;
18
18
  disableRightClickPasteMouseMode;
19
19
  prevRawMode = false;
20
- started = false;
20
+ modesEnabled = false;
21
+ rawAcquired = false;
21
22
  constructor(stdin, out = process.stdout, configuredShiftEnterBytes, options = {}) {
22
23
  this.stdin = stdin;
23
24
  this.out = out;
25
+ this.configuredShiftEnterBytes = configuredShiftEnterBytes;
24
26
  this.options = options;
25
- this.parser = new TerminalKeyParser(50, configuredShiftEnterBytes);
26
- this.parser.onDeferredKeys((keys) => this.fanOut(keys));
27
+ if (options.inputSession && options.inputSession.stdin !== stdin) {
28
+ throw new Error("Borrowed terminal input session uses a different stream");
29
+ }
30
+ options.inputSession?.assertLive();
31
+ this.ownership = options.inputSession
32
+ ? { kind: "borrowed", session: options.inputSession }
33
+ : { kind: "private" };
27
34
  }
28
35
  start() {
29
- if (this.started)
36
+ if (this.activation)
30
37
  return;
31
- this.started = true;
32
- if (this.stdin.isTTY) {
33
- this.prevRawMode = this.stdin.isRaw === true;
34
- this.stdin.setRawMode(true);
35
- enableHostInputModes(this.out);
36
- if (this.options.enableRightClickPaste === true) {
37
- this.disableRightClickPasteMouseMode = enableRightClickPasteMouseMode(this.out);
38
+ const session = this.ownership.kind === "borrowed" ? this.ownership.session
39
+ : new TerminalInputSession(this.stdin, this.configuredShiftEnterBytes, this.options.clock);
40
+ try {
41
+ const lease = session.acquire((events) => this.fanOut(events));
42
+ this.activation = { session, lease };
43
+ if (this.stdin.isTTY) {
44
+ this.prevRawMode = this.stdin.isRaw === true;
45
+ this.rawAcquired = true;
46
+ this.stdin.setRawMode(true);
47
+ enableHostInputModes(this.out);
48
+ this.modesEnabled = true;
49
+ if (this.options.enableRightClickPaste === true) {
50
+ this.disableRightClickPasteMouseMode = enableRightClickPasteMouseMode(this.out);
51
+ }
38
52
  }
39
- this.stdin.resume();
53
+ lease.setEnabled(this.subscribers.size > 0);
54
+ }
55
+ catch (error) {
56
+ try {
57
+ this.stop();
58
+ }
59
+ catch (cleanupError) {
60
+ throw new AggregateError([error, cleanupError], "Terminal input start and cleanup failed");
61
+ }
62
+ finally {
63
+ if (this.ownership.kind === "private")
64
+ session.dispose();
65
+ }
66
+ throw error;
40
67
  }
41
- this.dataListener = (chunk) => {
42
- const events = this.parser.parseChunk(chunk);
43
- if (events.length > 0)
44
- this.fanOut(events);
45
- };
46
- this.stdin.on("data", this.dataListener);
47
68
  }
48
69
  stop() {
49
- if (!this.started)
70
+ const activation = this.activation;
71
+ if (!activation)
50
72
  return;
51
- this.started = false;
52
- if (this.dataListener) {
53
- this.stdin.removeListener("data", this.dataListener);
54
- this.dataListener = undefined;
73
+ this.activation = undefined;
74
+ try {
75
+ activation.lease.release();
55
76
  }
56
- this.parser.cancelPendingEscape();
57
- if (this.stdin.isTTY) {
58
- this.disableRightClickPasteMouseMode?.();
59
- this.disableRightClickPasteMouseMode = undefined;
60
- disableHostInputModes(this.out);
77
+ finally {
61
78
  try {
62
- this.stdin.setRawMode(this.prevRawMode);
79
+ try {
80
+ this.disableRightClickPasteMouseMode?.();
81
+ }
82
+ finally {
83
+ this.disableRightClickPasteMouseMode = undefined;
84
+ if (this.modesEnabled) {
85
+ this.modesEnabled = false;
86
+ disableHostInputModes(this.out);
87
+ }
88
+ }
89
+ }
90
+ finally {
91
+ try {
92
+ if (this.rawAcquired) {
93
+ this.rawAcquired = false;
94
+ this.stdin.setRawMode(this.prevRawMode);
95
+ }
96
+ }
97
+ finally {
98
+ if (this.ownership.kind === "private")
99
+ activation.session.dispose();
100
+ }
63
101
  }
64
- catch { /* ignore */ }
65
- }
66
- else {
67
- this.disableRightClickPasteMouseMode = undefined;
68
102
  }
69
103
  }
70
104
  onEvents(cb) {
71
105
  this.subscribers.add(cb);
72
- return () => { this.subscribers.delete(cb); };
106
+ this.activation?.lease.setEnabled(true);
107
+ return () => {
108
+ this.subscribers.delete(cb);
109
+ if (this.subscribers.size === 0)
110
+ this.activation?.lease.setEnabled(false);
111
+ };
73
112
  }
74
113
  onResize(_cb) {
75
114
  // libuv refreshes stdout.columns/stdout.rows and fires the stdout
@@ -78,11 +117,16 @@ export class StdinByteSource {
78
117
  return () => { };
79
118
  }
80
119
  fanOut(events) {
120
+ const activation = this.activation;
121
+ if (!activation)
122
+ return;
81
123
  // Snapshot only when multiple subscribers exist so a callback that
82
124
  // unsubscribes itself does not perturb iteration. The typical single
83
125
  // host subscriber goes through the direct path without an array copy.
84
126
  if (this.subscribers.size > 1) {
85
127
  for (const cb of Array.from(this.subscribers)) {
128
+ if (this.activation !== activation)
129
+ break;
86
130
  try {
87
131
  cb(events);
88
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stdin-byte-source.js","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdin-byte-source.js","sourceRoot":"","sources":["../../src/terminal/stdin-byte-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAS9B;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAUP;IACA;IACA;IACA;IAZF,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,SAAS,CAA4E;IAC9F,UAAU,CAAmE;IAC7E,+BAA+B,CAA2B;IAC1D,WAAW,GAAG,KAAK,CAAC;IACpB,YAAY,GAAG,KAAK,CAAC;IACrB,WAAW,GAAG,KAAK,CAAC;IAE5B,YACmB,KAAwB,EACxB,MAA6B,OAAO,CAAC,MAAM,EAC3C,yBAAkC,EAClC,UAAkC,EAAE;QAHpC,UAAK,GAAL,KAAK,CAAmB;QACxB,QAAG,GAAH,GAAG,CAAwC;QAC3C,8BAAyB,GAAzB,yBAAyB,CAAS;QAClC,YAAO,GAAP,OAAO,CAA6B;QAErD,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY;YACnC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE;YACrD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;YACzE,CAAC,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7F,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;gBAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,UAAW,CAAC,IAAI,CAAC,CAAC;gBAC7B,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,+BAA+B,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,yCAAyC,CAAC,CAAC;YAC7F,CAAC;oBAAS,CAAC;gBACT,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC;YACH,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,CAAC;oBACH,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;gBAC3C,CAAC;wBAAS,CAAC;oBACT,IAAI,CAAC,+BAA+B,GAAG,SAAS,CAAC;oBACjD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;wBAC1B,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBACzB,IAAI,CAAC,KAAK,CAAC,UAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;wBAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,EAAmC;QAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,GAA+B;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,2CAA2C;QAC3C,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,MAAqB;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,mEAAmE;QACnE,qEAAqE;QACrE,sEAAsE;QACtE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9C,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU;oBAAE,MAAM;gBAC1C,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,2DAA2D,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC;gBAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,2DAA2D,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
1
  import type { IBuffer, IBufferCell, IMarker } from "@xterm/headless";
2
+ import { type ColorQuery } from "./color-protocol.js";
2
3
  export interface VirtualTerminalOptions {
3
4
  onOscClipboard?: (data: string) => void;
5
+ onColorQuery?: (query: ColorQuery) => void;
4
6
  }
5
7
  /**
6
8
  * Wraps `@xterm/headless` so the rest of the host doesn't need to
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,OAAO,EAER,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;IAkCzE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0DAA0D;IAC1D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,oFAAoF;IACpF,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yEAAyE;IACzE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,oFAAoF;IACpF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wDAAwD;IACxD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,0DAA0D;IAC1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gFAAgF;IAChF,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8DAA8D;IAC9D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,8EAA8E;IAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,uDAAuD;IACvD,WAAW,IAAI,IAAI;IAInB,mDAAmD;IACnD,cAAc,IAAI,IAAI;IAItB,2DAA2D;IAC3D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKnD,oFAAoF;IACpF,OAAO,IAAI,WAAW;IAItB,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"virtual-terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,OAAO,EAER,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIzE,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;IAiDzE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0DAA0D;IAC1D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,oFAAoF;IACpF,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,8CAA8C;IAC9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gDAAgD;IAChD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,yEAAyE;IACzE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,oFAAoF;IACpF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wDAAwD;IACxD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,0DAA0D;IAC1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gFAAgF;IAChF,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,8DAA8D;IAC9D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,8EAA8E;IAC9E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpC,uDAAuD;IACvD,WAAW,IAAI,IAAI;IAInB,mDAAmD;IACnD,cAAc,IAAI,IAAI;IAItB,2DAA2D;IAC3D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKnD,oFAAoF;IACpF,OAAO,IAAI,WAAW;IAItB,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,5 +1,6 @@
1
1
  import xtermHeadless from "@xterm/headless";
2
2
  import { parseOsc52 } from "./osc52.js";
3
+ import { parseColorQueries } from "./color-protocol.js";
3
4
  const { Terminal } = xtermHeadless;
4
5
  /**
5
6
  * Wraps `@xterm/headless` so the rest of the host doesn't need to
@@ -41,6 +42,22 @@ export class VirtualTerminal {
41
42
  }
42
43
  return false;
43
44
  });
45
+ for (const command of [4, 10, 11]) {
46
+ this.term.parser.registerOscHandler(command, (data) => {
47
+ for (const query of parseColorQueries(command, data))
48
+ opts.onColorQuery?.(query);
49
+ return true;
50
+ });
51
+ }
52
+ for (const command of [104, 110, 111]) {
53
+ this.term.parser.registerOscHandler(command, () => true);
54
+ }
55
+ this.term.parser.registerCsiHandler({ prefix: "?", final: "n" }, (params) => {
56
+ if (params.length !== 1 || params[0] !== 996)
57
+ return false;
58
+ opts.onColorQuery?.({ kind: "appearance" });
59
+ return true;
60
+ });
44
61
  const onOscClipboard = opts.onOscClipboard;
45
62
  if (onOscClipboard) {
46
63
  this.term.parser.registerOscHandler(52, (data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-terminal.js","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-terminal.js","sourceRoot":"","sources":["../../src/terminal/virtual-terminal.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,15 @@
2
2
  * Shared terminal input parser — bytes → low-level key identities.
3
3
  *
4
4
  * This module owns the byte-level state machine (normal/esc/csi/utf8),
5
- * kitty keyboard protocol parsing, and escape timeout.
5
+ * kitty keyboard protocol parsing, escape timeout and bounded color-report
6
+ * separation. Covered reports use a distinct callback, never key events.
6
7
  * It produces {@link TerminalKey} events with no domain semantics.
7
8
  *
8
9
  * Consumers wrap this via composition and map TerminalKey → their own domain
9
10
  * event types. EmacsInputParser is the shared readline-style mapper for
10
11
  * prompt and TUI text-editing surfaces.
11
12
  */
13
+ import { type ColorReport, type InputClock } from "./terminal/color-protocol.js";
12
14
  export type TerminalKey = {
13
15
  kind: "printable";
14
16
  char: string;
@@ -59,6 +61,7 @@ export type TerminalKey = {
59
61
  export declare class TerminalKeyParser {
60
62
  private readonly escapeTimeoutMs;
61
63
  private readonly configuredShiftEnterBytes?;
64
+ private readonly clock;
62
65
  private state;
63
66
  private csiParams;
64
67
  private legacyMouseBytes;
@@ -70,11 +73,25 @@ export declare class TerminalKeyParser {
70
73
  private pasteEndMatch;
71
74
  private configuredShiftEnterMatch;
72
75
  private configuredShiftEnterTimer;
73
- constructor(escapeTimeoutMs?: number, configuredShiftEnterBytes?: Buffer | undefined);
76
+ private reportCandidate;
77
+ private reportFrame;
78
+ private reportDeadline;
79
+ private reportTimer;
80
+ private reportCallback;
81
+ private disposed;
82
+ constructor(escapeTimeoutMs?: number, configuredShiftEnterBytes?: Buffer | undefined, clock?: InputClock);
83
+ onReport(cb: (report: ColorReport) => void): void;
84
+ dispose(): void;
74
85
  onDeferredKeys(cb: (keys: TerminalKey[]) => void): void;
75
86
  cancelPendingEscape(): void;
76
87
  parseChunk(chunk: Buffer): TerminalKey[];
77
88
  private processByte;
89
+ private armReportTimer;
90
+ private clearReport;
91
+ private expireReport;
92
+ private flushKeyboardPrefix;
93
+ private consumeReportByte;
94
+ private processKeyboardByte;
78
95
  private processByteWithoutConfiguredShiftEnter;
79
96
  private consumeConfiguredShiftEnterByte;
80
97
  private startConfiguredShiftEnterTimer;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-input.d.ts","sourceRoot":"","sources":["../src/terminal-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAkBnC,qBAAa,iBAAiB;IAc1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAd7C,OAAO,CAAC,KAAK,CAAwE;IACrF,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,yBAAyB,CAAgB;IACjD,OAAO,CAAC,yBAAyB,CAA4C;gBAG1D,eAAe,SAAK,EACpB,yBAAyB,CAAC,EAAE,MAAM,YAAA;IAGrD,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,IAAI;IAIvD,mBAAmB,IAAI,IAAI;IAQ3B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAqBxC,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,sCAAsC;IA0G9C,OAAO,CAAC,+BAA+B;IAoCvC,OAAO,CAAC,8BAA8B;IAkBtC,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;IAiJjB,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,mBAAmB;CAM5B"}
1
+ {"version":3,"file":"terminal-input.d.ts","sourceRoot":"","sources":["../src/terminal-input.ts"],"names":[],"mappings":"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"}