lonny-agent 0.1.2 → 0.1.8

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 (216) hide show
  1. package/.kilo/plans/1780064105789-mighty-pixel.md +171 -0
  2. package/.lonny/fix-new-command-session-cleanup.md +65 -0
  3. package/.lonny/tui-autocomplete-above.md +62 -0
  4. package/dist/agent/__tests__/compaction.test.js +6 -4
  5. package/dist/agent/__tests__/compaction.test.js.map +1 -1
  6. package/dist/agent/llm.d.ts +1 -1
  7. package/dist/agent/llm.d.ts.map +1 -1
  8. package/dist/agent/prompt-builder.d.ts.map +1 -1
  9. package/dist/agent/prompt-builder.js +26 -8
  10. package/dist/agent/prompt-builder.js.map +1 -1
  11. package/dist/agent/providers/anthropic.d.ts +1 -1
  12. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  13. package/dist/agent/providers/anthropic.js +2 -2
  14. package/dist/agent/providers/anthropic.js.map +1 -1
  15. package/dist/agent/providers/google.d.ts +1 -1
  16. package/dist/agent/providers/google.d.ts.map +1 -1
  17. package/dist/agent/providers/google.js +2 -1
  18. package/dist/agent/providers/google.js.map +1 -1
  19. package/dist/agent/providers/ollama.d.ts +1 -1
  20. package/dist/agent/providers/ollama.d.ts.map +1 -1
  21. package/dist/agent/providers/ollama.js +2 -1
  22. package/dist/agent/providers/ollama.js.map +1 -1
  23. package/dist/agent/providers/openai.d.ts +1 -1
  24. package/dist/agent/providers/openai.d.ts.map +1 -1
  25. package/dist/agent/providers/openai.js +2 -2
  26. package/dist/agent/providers/openai.js.map +1 -1
  27. package/dist/agent/session.d.ts +1 -0
  28. package/dist/agent/session.d.ts.map +1 -1
  29. package/dist/agent/session.js +8 -2
  30. package/dist/agent/session.js.map +1 -1
  31. package/dist/pi-tui/autocomplete.d.ts +54 -0
  32. package/dist/pi-tui/autocomplete.d.ts.map +1 -0
  33. package/dist/pi-tui/autocomplete.js +636 -0
  34. package/dist/pi-tui/autocomplete.js.map +1 -0
  35. package/dist/pi-tui/components/box.d.ts +22 -0
  36. package/dist/pi-tui/components/box.d.ts.map +1 -0
  37. package/dist/pi-tui/components/box.js +104 -0
  38. package/dist/pi-tui/components/box.js.map +1 -0
  39. package/dist/pi-tui/components/cancellable-loader.d.ts +22 -0
  40. package/dist/pi-tui/components/cancellable-loader.d.ts.map +1 -0
  41. package/dist/pi-tui/components/cancellable-loader.js +35 -0
  42. package/dist/pi-tui/components/cancellable-loader.js.map +1 -0
  43. package/dist/pi-tui/components/editor.d.ts +249 -0
  44. package/dist/pi-tui/components/editor.d.ts.map +1 -0
  45. package/dist/pi-tui/components/editor.js +1883 -0
  46. package/dist/pi-tui/components/editor.js.map +1 -0
  47. package/dist/pi-tui/components/image.d.ts +28 -0
  48. package/dist/pi-tui/components/image.d.ts.map +1 -0
  49. package/dist/pi-tui/components/image.js +90 -0
  50. package/dist/pi-tui/components/image.js.map +1 -0
  51. package/dist/pi-tui/components/input.d.ts +37 -0
  52. package/dist/pi-tui/components/input.d.ts.map +1 -0
  53. package/dist/pi-tui/components/input.js +382 -0
  54. package/dist/pi-tui/components/input.js.map +1 -0
  55. package/dist/pi-tui/components/loader.d.ts +31 -0
  56. package/dist/pi-tui/components/loader.d.ts.map +1 -0
  57. package/dist/pi-tui/components/loader.js +70 -0
  58. package/dist/pi-tui/components/loader.js.map +1 -0
  59. package/dist/pi-tui/components/markdown.d.ts +96 -0
  60. package/dist/pi-tui/components/markdown.d.ts.map +1 -0
  61. package/dist/pi-tui/components/markdown.js +647 -0
  62. package/dist/pi-tui/components/markdown.js.map +1 -0
  63. package/dist/pi-tui/components/select-list.d.ts +50 -0
  64. package/dist/pi-tui/components/select-list.d.ts.map +1 -0
  65. package/dist/pi-tui/components/select-list.js +167 -0
  66. package/dist/pi-tui/components/select-list.js.map +1 -0
  67. package/dist/pi-tui/components/settings-list.d.ts +50 -0
  68. package/dist/pi-tui/components/settings-list.d.ts.map +1 -0
  69. package/dist/pi-tui/components/settings-list.js +189 -0
  70. package/dist/pi-tui/components/settings-list.js.map +1 -0
  71. package/dist/pi-tui/components/spacer.d.ts +12 -0
  72. package/dist/pi-tui/components/spacer.d.ts.map +1 -0
  73. package/dist/pi-tui/components/spacer.js +23 -0
  74. package/dist/pi-tui/components/spacer.js.map +1 -0
  75. package/dist/pi-tui/components/text.d.ts +19 -0
  76. package/dist/pi-tui/components/text.d.ts.map +1 -0
  77. package/dist/pi-tui/components/text.js +91 -0
  78. package/dist/pi-tui/components/text.js.map +1 -0
  79. package/dist/pi-tui/components/truncated-text.d.ts +13 -0
  80. package/dist/pi-tui/components/truncated-text.d.ts.map +1 -0
  81. package/dist/pi-tui/components/truncated-text.js +51 -0
  82. package/dist/pi-tui/components/truncated-text.js.map +1 -0
  83. package/dist/pi-tui/editor-component.d.ts +39 -0
  84. package/dist/pi-tui/editor-component.d.ts.map +1 -0
  85. package/dist/pi-tui/editor-component.js +2 -0
  86. package/dist/pi-tui/editor-component.js.map +1 -0
  87. package/dist/pi-tui/fuzzy.d.ts +16 -0
  88. package/dist/pi-tui/fuzzy.d.ts.map +1 -0
  89. package/dist/pi-tui/fuzzy.js +110 -0
  90. package/dist/pi-tui/fuzzy.js.map +1 -0
  91. package/dist/pi-tui/index.d.ts +23 -0
  92. package/dist/pi-tui/index.d.ts.map +1 -0
  93. package/dist/pi-tui/index.js +32 -0
  94. package/dist/pi-tui/index.js.map +1 -0
  95. package/dist/pi-tui/keybindings.d.ts +193 -0
  96. package/dist/pi-tui/keybindings.d.ts.map +1 -0
  97. package/dist/pi-tui/keybindings.js +174 -0
  98. package/dist/pi-tui/keybindings.js.map +1 -0
  99. package/dist/pi-tui/keys.d.ts +184 -0
  100. package/dist/pi-tui/keys.d.ts.map +1 -0
  101. package/dist/pi-tui/keys.js +1182 -0
  102. package/dist/pi-tui/keys.js.map +1 -0
  103. package/dist/pi-tui/kill-ring.d.ts +28 -0
  104. package/dist/pi-tui/kill-ring.d.ts.map +1 -0
  105. package/dist/pi-tui/kill-ring.js +44 -0
  106. package/dist/pi-tui/kill-ring.js.map +1 -0
  107. package/dist/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  108. package/dist/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  109. package/dist/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  110. package/dist/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  111. package/dist/pi-tui/native-modifiers.d.ts +3 -0
  112. package/dist/pi-tui/native-modifiers.d.ts.map +1 -0
  113. package/dist/pi-tui/native-modifiers.js +53 -0
  114. package/dist/pi-tui/native-modifiers.js.map +1 -0
  115. package/dist/pi-tui/stdin-buffer.d.ts +50 -0
  116. package/dist/pi-tui/stdin-buffer.d.ts.map +1 -0
  117. package/dist/pi-tui/stdin-buffer.js +361 -0
  118. package/dist/pi-tui/stdin-buffer.js.map +1 -0
  119. package/dist/pi-tui/terminal-image.d.ts +90 -0
  120. package/dist/pi-tui/terminal-image.d.ts.map +1 -0
  121. package/dist/pi-tui/terminal-image.js +343 -0
  122. package/dist/pi-tui/terminal-image.js.map +1 -0
  123. package/dist/pi-tui/terminal.d.ts +113 -0
  124. package/dist/pi-tui/terminal.d.ts.map +1 -0
  125. package/dist/pi-tui/terminal.js +478 -0
  126. package/dist/pi-tui/terminal.js.map +1 -0
  127. package/dist/pi-tui/tui.d.ts +227 -0
  128. package/dist/pi-tui/tui.d.ts.map +1 -0
  129. package/dist/pi-tui/tui.js +1091 -0
  130. package/dist/pi-tui/tui.js.map +1 -0
  131. package/dist/pi-tui/undo-stack.d.ts +17 -0
  132. package/dist/pi-tui/undo-stack.d.ts.map +1 -0
  133. package/dist/pi-tui/undo-stack.js +25 -0
  134. package/dist/pi-tui/undo-stack.js.map +1 -0
  135. package/dist/pi-tui/utils.d.ts +84 -0
  136. package/dist/pi-tui/utils.d.ts.map +1 -0
  137. package/dist/pi-tui/utils.js +1024 -0
  138. package/dist/pi-tui/utils.js.map +1 -0
  139. package/dist/pi-tui/word-navigation.d.ts +25 -0
  140. package/dist/pi-tui/word-navigation.d.ts.map +1 -0
  141. package/dist/pi-tui/word-navigation.js +98 -0
  142. package/dist/pi-tui/word-navigation.js.map +1 -0
  143. package/dist/tools/__tests__/edit.test.js +85 -0
  144. package/dist/tools/__tests__/edit.test.js.map +1 -1
  145. package/dist/tools/edit.d.ts.map +1 -1
  146. package/dist/tools/edit.js +23 -1
  147. package/dist/tools/edit.js.map +1 -1
  148. package/dist/tui/components.d.ts +1 -1
  149. package/dist/tui/components.d.ts.map +1 -1
  150. package/dist/tui/components.js +1 -1
  151. package/dist/tui/components.js.map +1 -1
  152. package/dist/tui/editor-patch.d.ts +13 -0
  153. package/dist/tui/editor-patch.d.ts.map +1 -0
  154. package/dist/tui/editor-patch.js +41 -0
  155. package/dist/tui/editor-patch.js.map +1 -0
  156. package/dist/tui/index.d.ts.map +1 -1
  157. package/dist/tui/index.js +15 -3
  158. package/dist/tui/index.js.map +1 -1
  159. package/dist/web/index.d.ts.map +1 -1
  160. package/dist/web/index.js +9 -2
  161. package/dist/web/index.js.map +1 -1
  162. package/dist/web/public/app.js +65 -4
  163. package/dist/web/public/style.css +49 -0
  164. package/dist/web/session-bridge.d.ts +0 -4
  165. package/dist/web/session-bridge.d.ts.map +1 -1
  166. package/dist/web/session-bridge.js +16 -2
  167. package/dist/web/session-bridge.js.map +1 -1
  168. package/package.json +5 -3
  169. package/src/agent/__tests__/compaction.test.ts +6 -4
  170. package/src/agent/llm.ts +5 -1
  171. package/src/agent/prompt-builder.ts +27 -8
  172. package/src/agent/providers/anthropic.ts +15 -8
  173. package/src/agent/providers/google.ts +6 -1
  174. package/src/agent/providers/ollama.ts +6 -1
  175. package/src/agent/providers/openai.ts +21 -12
  176. package/src/agent/session.ts +12 -2
  177. package/src/pi-tui/autocomplete.ts +808 -0
  178. package/src/pi-tui/components/box.ts +137 -0
  179. package/src/pi-tui/components/cancellable-loader.ts +40 -0
  180. package/src/pi-tui/components/editor.ts +2321 -0
  181. package/src/pi-tui/components/image.ts +130 -0
  182. package/src/pi-tui/components/input.ts +456 -0
  183. package/src/pi-tui/components/loader.ts +93 -0
  184. package/src/pi-tui/components/markdown.ts +839 -0
  185. package/src/pi-tui/components/select-list.ts +263 -0
  186. package/src/pi-tui/components/settings-list.ts +264 -0
  187. package/src/pi-tui/components/spacer.ts +28 -0
  188. package/src/pi-tui/components/text.ts +113 -0
  189. package/src/pi-tui/components/truncated-text.ts +65 -0
  190. package/src/pi-tui/editor-component.ts +74 -0
  191. package/src/pi-tui/fuzzy.ts +137 -0
  192. package/src/pi-tui/index.ts +115 -0
  193. package/src/pi-tui/keybindings.ts +245 -0
  194. package/src/pi-tui/keys.ts +1440 -0
  195. package/src/pi-tui/kill-ring.ts +46 -0
  196. package/src/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  197. package/src/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  198. package/src/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  199. package/src/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  200. package/src/pi-tui/native-modifiers.ts +65 -0
  201. package/src/pi-tui/stdin-buffer.ts +434 -0
  202. package/src/pi-tui/terminal-image.ts +469 -0
  203. package/src/pi-tui/terminal.ts +594 -0
  204. package/src/pi-tui/tui.ts +1376 -0
  205. package/src/pi-tui/undo-stack.ts +28 -0
  206. package/src/pi-tui/utils.ts +1176 -0
  207. package/src/pi-tui/word-navigation.ts +127 -0
  208. package/src/tools/__tests__/edit.test.ts +91 -0
  209. package/src/tools/edit.ts +27 -1
  210. package/src/tui/components.ts +2 -2
  211. package/src/tui/index.ts +24 -10
  212. package/src/web/index.ts +9 -2
  213. package/src/web/public/app.js +65 -4
  214. package/src/web/public/style.css +49 -0
  215. package/src/web/session-bridge.ts +13 -2
  216. package/tsconfig.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/pi-tui/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Ring buffer for Emacs-style kill/yank operations.
3
+ *
4
+ * Tracks killed (deleted) text entries. Consecutive kills can accumulate
5
+ * into a single entry. Supports yank (paste most recent) and yank-pop
6
+ * (cycle through older entries).
7
+ */
8
+ export declare class KillRing {
9
+ private ring;
10
+ /**
11
+ * Add text to the kill ring.
12
+ *
13
+ * @param text - The killed text to add
14
+ * @param opts - Push options
15
+ * @param opts.prepend - If accumulating, prepend (backward deletion) or append (forward deletion)
16
+ * @param opts.accumulate - Merge with the most recent entry instead of creating a new one
17
+ */
18
+ push(text: string, opts: {
19
+ prepend: boolean;
20
+ accumulate?: boolean;
21
+ }): void;
22
+ /** Get most recent entry without modifying the ring. */
23
+ peek(): string | undefined;
24
+ /** Move last entry to front (for yank-pop cycling). */
25
+ rotate(): void;
26
+ get length(): number;
27
+ }
28
+ //# sourceMappingURL=kill-ring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kill-ring.d.ts","sourceRoot":"","sources":["../../src/pi-tui/kill-ring.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,IAAI,CAAe;IAE3B;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAW1E,wDAAwD;IACxD,IAAI,IAAI,MAAM,GAAG,SAAS;IAI1B,uDAAuD;IACvD,MAAM,IAAI,IAAI;IAOd,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Ring buffer for Emacs-style kill/yank operations.
3
+ *
4
+ * Tracks killed (deleted) text entries. Consecutive kills can accumulate
5
+ * into a single entry. Supports yank (paste most recent) and yank-pop
6
+ * (cycle through older entries).
7
+ */
8
+ export class KillRing {
9
+ ring = [];
10
+ /**
11
+ * Add text to the kill ring.
12
+ *
13
+ * @param text - The killed text to add
14
+ * @param opts - Push options
15
+ * @param opts.prepend - If accumulating, prepend (backward deletion) or append (forward deletion)
16
+ * @param opts.accumulate - Merge with the most recent entry instead of creating a new one
17
+ */
18
+ push(text, opts) {
19
+ if (!text)
20
+ return;
21
+ if (opts.accumulate && this.ring.length > 0) {
22
+ const last = this.ring.pop();
23
+ this.ring.push(opts.prepend ? text + last : last + text);
24
+ }
25
+ else {
26
+ this.ring.push(text);
27
+ }
28
+ }
29
+ /** Get most recent entry without modifying the ring. */
30
+ peek() {
31
+ return this.ring.length > 0 ? this.ring[this.ring.length - 1] : undefined;
32
+ }
33
+ /** Move last entry to front (for yank-pop cycling). */
34
+ rotate() {
35
+ if (this.ring.length > 1) {
36
+ const last = this.ring.pop();
37
+ this.ring.unshift(last);
38
+ }
39
+ }
40
+ get length() {
41
+ return this.ring.length;
42
+ }
43
+ }
44
+ //# sourceMappingURL=kill-ring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kill-ring.js","sourceRoot":"","sources":["../../src/pi-tui/kill-ring.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IACX,IAAI,GAAa,EAAE,CAAA;IAE3B;;;;;;;OAOG;IACH,IAAI,CAAC,IAAY,EAAE,IAAgD;QACjE,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3E,CAAC;IAED,uDAAuD;IACvD,MAAM;QACJ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IACzB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export type ModifierKey = 'shift' | 'command' | 'control' | 'option';
2
+ export declare function isNativeModifierPressed(key: ModifierKey): boolean;
3
+ //# sourceMappingURL=native-modifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-modifiers.d.ts","sourceRoot":"","sources":["../../src/pi-tui/native-modifiers.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAkDpE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAQjE"}
@@ -0,0 +1,53 @@
1
+ import { createRequire } from 'node:module';
2
+ import * as path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ const cjsRequire = createRequire(import.meta.url);
5
+ let nativeModifiersHelper;
6
+ function isNativeModifiersHelper(value) {
7
+ if (typeof value !== 'object' || value === null)
8
+ return false;
9
+ const candidate = value.isModifierPressed;
10
+ return typeof candidate === 'function';
11
+ }
12
+ function loadNativeModifiersHelper() {
13
+ if (nativeModifiersHelper !== undefined)
14
+ return nativeModifiersHelper ?? undefined;
15
+ nativeModifiersHelper = null;
16
+ if (process.platform !== 'darwin')
17
+ return undefined;
18
+ const arch = process.arch;
19
+ if (arch !== 'x64' && arch !== 'arm64')
20
+ return undefined;
21
+ const moduleDir = path.dirname(fileURLToPath(import.meta.url));
22
+ const nativePath = path.join('native', 'darwin', 'prebuilds', `darwin-${arch}`, 'darwin-modifiers.node');
23
+ const candidates = [
24
+ path.join(moduleDir, '..', nativePath),
25
+ path.join(moduleDir, nativePath),
26
+ path.join(path.dirname(process.execPath), nativePath),
27
+ ];
28
+ for (const modulePath of candidates) {
29
+ try {
30
+ const helper = cjsRequire(modulePath);
31
+ if (isNativeModifiersHelper(helper)) {
32
+ nativeModifiersHelper = helper;
33
+ return helper;
34
+ }
35
+ }
36
+ catch {
37
+ // Try the next possible packaging location.
38
+ }
39
+ }
40
+ return undefined;
41
+ }
42
+ export function isNativeModifierPressed(key) {
43
+ const helper = loadNativeModifiersHelper();
44
+ if (!helper)
45
+ return false;
46
+ try {
47
+ return helper.isModifierPressed(key) === true;
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ //# sourceMappingURL=native-modifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-modifiers.js","sourceRoot":"","sources":["../../src/pi-tui/native-modifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAQjD,IAAI,qBAA+D,CAAA;AAEnE,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,MAAM,SAAS,GAAI,KAAyC,CAAC,iBAAiB,CAAA;IAC9E,OAAO,OAAO,SAAS,KAAK,UAAU,CAAA;AACxC,CAAC;AAED,SAAS,yBAAyB;IAChC,IAAI,qBAAqB,KAAK,SAAS;QAAE,OAAO,qBAAqB,IAAI,SAAS,CAAA;IAClF,qBAAqB,GAAG,IAAI,CAAA;IAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACzB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IAExD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,IAAI,EAAE,EAChB,uBAAuB,CACxB,CAAA;IACD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;KACtD,CAAA;IAED,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAY,CAAA;YAChD,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,qBAAqB,GAAG,MAAM,CAAA;gBAC9B,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAgB;IACtD,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAA;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * StdinBuffer buffers input and emits complete sequences.
3
+ *
4
+ * This is necessary because stdin data events can arrive in partial chunks,
5
+ * especially for escape sequences like mouse events. Without buffering,
6
+ * partial sequences can be misinterpreted as regular keypresses.
7
+ *
8
+ * For example, the mouse SGR sequence `\x1b[<35;20;5m` might arrive as:
9
+ * - Event 1: `\x1b`
10
+ * - Event 2: `[<35`
11
+ * - Event 3: `;20;5m`
12
+ *
13
+ * The buffer accumulates these until a complete sequence is detected.
14
+ * Call the `process()` method to feed input data.
15
+ *
16
+ * Based on code from OpenTUI (https://github.com/anomalyco/opentui)
17
+ * MIT License - Copyright (c) 2025 opentui
18
+ */
19
+ import { EventEmitter } from 'events';
20
+ export type StdinBufferOptions = {
21
+ /**
22
+ * Maximum time to wait for sequence completion (default: 10ms)
23
+ * After this time, the buffer is flushed even if incomplete
24
+ */
25
+ timeout?: number;
26
+ };
27
+ export type StdinBufferEventMap = {
28
+ data: [string];
29
+ paste: [string];
30
+ };
31
+ /**
32
+ * Buffers stdin input and emits complete sequences via the 'data' event.
33
+ * Handles partial escape sequences that arrive across multiple chunks.
34
+ */
35
+ export declare class StdinBuffer extends EventEmitter<StdinBufferEventMap> {
36
+ private buffer;
37
+ private timeout;
38
+ private readonly timeoutMs;
39
+ private pasteMode;
40
+ private pasteBuffer;
41
+ private pendingKittyPrintableCodepoint;
42
+ constructor(options?: StdinBufferOptions);
43
+ process(data: string | Buffer): void;
44
+ private emitDataSequence;
45
+ flush(): string[];
46
+ clear(): void;
47
+ getBuffer(): string;
48
+ destroy(): void;
49
+ }
50
+ //# sourceMappingURL=stdin-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin-buffer.d.ts","sourceRoot":"","sources":["../../src/pi-tui/stdin-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AA6OrC,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;IACd,KAAK,EAAE,CAAC,MAAM,CAAC,CAAA;CAChB,CAAA;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAChE,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,8BAA8B,CAAoB;gBAE9C,OAAO,GAAE,kBAAuB;IAKrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsG3C,OAAO,CAAC,gBAAgB;IAWxB,KAAK,IAAI,MAAM,EAAE;IAgBjB,KAAK,IAAI,IAAI;IAWb,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,361 @@
1
+ /**
2
+ * StdinBuffer buffers input and emits complete sequences.
3
+ *
4
+ * This is necessary because stdin data events can arrive in partial chunks,
5
+ * especially for escape sequences like mouse events. Without buffering,
6
+ * partial sequences can be misinterpreted as regular keypresses.
7
+ *
8
+ * For example, the mouse SGR sequence `\x1b[<35;20;5m` might arrive as:
9
+ * - Event 1: `\x1b`
10
+ * - Event 2: `[<35`
11
+ * - Event 3: `;20;5m`
12
+ *
13
+ * The buffer accumulates these until a complete sequence is detected.
14
+ * Call the `process()` method to feed input data.
15
+ *
16
+ * Based on code from OpenTUI (https://github.com/anomalyco/opentui)
17
+ * MIT License - Copyright (c) 2025 opentui
18
+ */
19
+ import { EventEmitter } from 'events';
20
+ const ESC = '\x1b';
21
+ const BRACKETED_PASTE_START = '\x1b[200~';
22
+ const BRACKETED_PASTE_END = '\x1b[201~';
23
+ /**
24
+ * Check if a string is a complete escape sequence or needs more data
25
+ */
26
+ function isCompleteSequence(data) {
27
+ if (!data.startsWith(ESC)) {
28
+ return 'not-escape';
29
+ }
30
+ if (data.length === 1) {
31
+ return 'incomplete';
32
+ }
33
+ const afterEsc = data.slice(1);
34
+ // CSI sequences: ESC [
35
+ if (afterEsc.startsWith('[')) {
36
+ // Check for old-style mouse sequence: ESC[M + 3 bytes
37
+ if (afterEsc.startsWith('[M')) {
38
+ // Old-style mouse needs ESC[M + 3 bytes = 6 total
39
+ return data.length >= 6 ? 'complete' : 'incomplete';
40
+ }
41
+ return isCompleteCsiSequence(data);
42
+ }
43
+ // OSC sequences: ESC ]
44
+ if (afterEsc.startsWith(']')) {
45
+ return isCompleteOscSequence(data);
46
+ }
47
+ // DCS sequences: ESC P ... ESC \ (includes XTVersion responses)
48
+ if (afterEsc.startsWith('P')) {
49
+ return isCompleteDcsSequence(data);
50
+ }
51
+ // APC sequences: ESC _ ... ESC \ (includes Kitty graphics responses)
52
+ if (afterEsc.startsWith('_')) {
53
+ return isCompleteApcSequence(data);
54
+ }
55
+ // SS3 sequences: ESC O
56
+ if (afterEsc.startsWith('O')) {
57
+ // ESC O followed by a single character
58
+ return afterEsc.length >= 2 ? 'complete' : 'incomplete';
59
+ }
60
+ // Meta key sequences: ESC followed by a single character
61
+ if (afterEsc.length === 1) {
62
+ return 'complete';
63
+ }
64
+ // Unknown escape sequence - treat as complete
65
+ return 'complete';
66
+ }
67
+ /**
68
+ * Check if CSI sequence is complete
69
+ * CSI sequences: ESC [ ... followed by a final byte (0x40-0x7E)
70
+ */
71
+ function isCompleteCsiSequence(data) {
72
+ if (!data.startsWith(`${ESC}[`)) {
73
+ return 'complete';
74
+ }
75
+ // Need at least ESC [ and one more character
76
+ if (data.length < 3) {
77
+ return 'incomplete';
78
+ }
79
+ const payload = data.slice(2);
80
+ // CSI sequences end with a byte in the range 0x40-0x7E (@-~)
81
+ // This includes all letters and several special characters
82
+ const lastChar = payload[payload.length - 1];
83
+ const lastCharCode = lastChar.charCodeAt(0);
84
+ if (lastCharCode >= 0x40 && lastCharCode <= 0x7e) {
85
+ // Special handling for SGR mouse sequences
86
+ // Format: ESC[<B;X;Ym or ESC[<B;X;YM
87
+ if (payload.startsWith('<')) {
88
+ // Must have format: <digits;digits;digits[Mm]
89
+ const mouseMatch = /^<\d+;\d+;\d+[Mm]$/.test(payload);
90
+ if (mouseMatch) {
91
+ return 'complete';
92
+ }
93
+ // If it ends with M or m but doesn't match the pattern, still incomplete
94
+ if (lastChar === 'M' || lastChar === 'm') {
95
+ // Check if we have the right structure
96
+ const parts = payload.slice(1, -1).split(';');
97
+ if (parts.length === 3 && parts.every(p => /^\d+$/.test(p))) {
98
+ return 'complete';
99
+ }
100
+ }
101
+ return 'incomplete';
102
+ }
103
+ return 'complete';
104
+ }
105
+ return 'incomplete';
106
+ }
107
+ /**
108
+ * Check if OSC sequence is complete
109
+ * OSC sequences: ESC ] ... ST (where ST is ESC \ or BEL)
110
+ */
111
+ function isCompleteOscSequence(data) {
112
+ if (!data.startsWith(`${ESC}]`)) {
113
+ return 'complete';
114
+ }
115
+ // OSC sequences end with ST (ESC \) or BEL (\x07)
116
+ if (data.endsWith(`${ESC}\\`) || data.endsWith('\x07')) {
117
+ return 'complete';
118
+ }
119
+ return 'incomplete';
120
+ }
121
+ /**
122
+ * Check if DCS (Device Control String) sequence is complete
123
+ * DCS sequences: ESC P ... ST (where ST is ESC \)
124
+ * Used for XTVersion responses like ESC P >| ... ESC \
125
+ */
126
+ function isCompleteDcsSequence(data) {
127
+ if (!data.startsWith(`${ESC}P`)) {
128
+ return 'complete';
129
+ }
130
+ // DCS sequences end with ST (ESC \)
131
+ if (data.endsWith(`${ESC}\\`)) {
132
+ return 'complete';
133
+ }
134
+ return 'incomplete';
135
+ }
136
+ /**
137
+ * Check if APC (Application Program Command) sequence is complete
138
+ * APC sequences: ESC _ ... ST (where ST is ESC \)
139
+ * Used for Kitty graphics responses like ESC _ G ... ESC \
140
+ */
141
+ function isCompleteApcSequence(data) {
142
+ if (!data.startsWith(`${ESC}_`)) {
143
+ return 'complete';
144
+ }
145
+ // APC sequences end with ST (ESC \)
146
+ if (data.endsWith(`${ESC}\\`)) {
147
+ return 'complete';
148
+ }
149
+ return 'incomplete';
150
+ }
151
+ /**
152
+ * Split accumulated buffer into complete sequences
153
+ */
154
+ function parseUnmodifiedKittyPrintableCodepoint(sequence) {
155
+ const match = sequence.match(/^\x1b\[(\d+)(?::\d*)?(?::\d+)?u$/);
156
+ if (!match)
157
+ return undefined;
158
+ const codepoint = parseInt(match[1], 10);
159
+ return codepoint >= 32 ? codepoint : undefined;
160
+ }
161
+ function extractCompleteSequences(buffer) {
162
+ const sequences = [];
163
+ let pos = 0;
164
+ while (pos < buffer.length) {
165
+ const remaining = buffer.slice(pos);
166
+ // Try to extract a sequence starting at this position
167
+ if (remaining.startsWith(ESC)) {
168
+ // Find the end of this escape sequence
169
+ let seqEnd = 1;
170
+ while (seqEnd <= remaining.length) {
171
+ const candidate = remaining.slice(0, seqEnd);
172
+ const status = isCompleteSequence(candidate);
173
+ if (status === 'complete') {
174
+ // WezTerm with enable_kitty_keyboard sends the Escape key press as a
175
+ // raw '\x1b' byte (simple text path in encode_kitty, ignoring
176
+ // DISAMBIGUATE_ESCAPE_CODES) and the release as a full Kitty CSI-u
177
+ // sequence. These arrive concatenated as '\x1b\x1b[27;...u'.
178
+ // The buffer would normally treat '\x1b\x1b' as a complete meta-key
179
+ // sequence (ESC + single char), leaving '[27;...u' to be typed as
180
+ // plain text. If the character immediately following '\x1b\x1b'
181
+ // would begin a new escape sequence, emit only the first ESC and
182
+ // restart from the second.
183
+ if (candidate === '\x1b\x1b') {
184
+ const nextChar = remaining[seqEnd];
185
+ if (nextChar === '[' || // CSI
186
+ nextChar === ']' || // OSC
187
+ nextChar === 'O' || // SS3
188
+ nextChar === 'P' || // DCS
189
+ nextChar === '_' // APC
190
+ ) {
191
+ sequences.push(ESC);
192
+ pos += 1;
193
+ break;
194
+ }
195
+ }
196
+ sequences.push(candidate);
197
+ pos += seqEnd;
198
+ break;
199
+ }
200
+ else if (status === 'incomplete') {
201
+ seqEnd++;
202
+ }
203
+ else {
204
+ // Should not happen when starting with ESC
205
+ sequences.push(candidate);
206
+ pos += seqEnd;
207
+ break;
208
+ }
209
+ }
210
+ if (seqEnd > remaining.length) {
211
+ return { sequences, remainder: remaining };
212
+ }
213
+ }
214
+ else {
215
+ // Not an escape sequence - take a single character
216
+ sequences.push(remaining[0]);
217
+ pos++;
218
+ }
219
+ }
220
+ return { sequences, remainder: '' };
221
+ }
222
+ /**
223
+ * Buffers stdin input and emits complete sequences via the 'data' event.
224
+ * Handles partial escape sequences that arrive across multiple chunks.
225
+ */
226
+ export class StdinBuffer extends EventEmitter {
227
+ buffer = '';
228
+ timeout = null;
229
+ timeoutMs;
230
+ pasteMode = false;
231
+ pasteBuffer = '';
232
+ pendingKittyPrintableCodepoint;
233
+ constructor(options = {}) {
234
+ super();
235
+ this.timeoutMs = options.timeout ?? 10;
236
+ }
237
+ process(data) {
238
+ // Clear any pending timeout
239
+ if (this.timeout) {
240
+ clearTimeout(this.timeout);
241
+ this.timeout = null;
242
+ }
243
+ // Handle high-byte conversion (for compatibility with parseKeypress)
244
+ // If buffer has single byte > 127, convert to ESC + (byte - 128)
245
+ let str;
246
+ if (Buffer.isBuffer(data)) {
247
+ if (data.length === 1 && data[0] > 127) {
248
+ const byte = data[0] - 128;
249
+ str = `\x1b${String.fromCharCode(byte)}`;
250
+ }
251
+ else {
252
+ str = data.toString();
253
+ }
254
+ }
255
+ else {
256
+ str = data;
257
+ }
258
+ if (str.length === 0 && this.buffer.length === 0) {
259
+ this.emitDataSequence('');
260
+ return;
261
+ }
262
+ this.buffer += str;
263
+ if (this.pasteMode) {
264
+ this.pasteBuffer += this.buffer;
265
+ this.buffer = '';
266
+ const endIndex = this.pasteBuffer.indexOf(BRACKETED_PASTE_END);
267
+ if (endIndex !== -1) {
268
+ const pastedContent = this.pasteBuffer.slice(0, endIndex);
269
+ const remaining = this.pasteBuffer.slice(endIndex + BRACKETED_PASTE_END.length);
270
+ this.pasteMode = false;
271
+ this.pasteBuffer = '';
272
+ this.pendingKittyPrintableCodepoint = undefined;
273
+ this.emit('paste', pastedContent);
274
+ if (remaining.length > 0) {
275
+ this.process(remaining);
276
+ }
277
+ }
278
+ return;
279
+ }
280
+ const startIndex = this.buffer.indexOf(BRACKETED_PASTE_START);
281
+ if (startIndex !== -1) {
282
+ if (startIndex > 0) {
283
+ const beforePaste = this.buffer.slice(0, startIndex);
284
+ const result = extractCompleteSequences(beforePaste);
285
+ for (const sequence of result.sequences) {
286
+ this.emitDataSequence(sequence);
287
+ }
288
+ }
289
+ this.pendingKittyPrintableCodepoint = undefined;
290
+ this.buffer = this.buffer.slice(startIndex + BRACKETED_PASTE_START.length);
291
+ this.pasteMode = true;
292
+ this.pasteBuffer = this.buffer;
293
+ this.buffer = '';
294
+ const endIndex = this.pasteBuffer.indexOf(BRACKETED_PASTE_END);
295
+ if (endIndex !== -1) {
296
+ const pastedContent = this.pasteBuffer.slice(0, endIndex);
297
+ const remaining = this.pasteBuffer.slice(endIndex + BRACKETED_PASTE_END.length);
298
+ this.pasteMode = false;
299
+ this.pasteBuffer = '';
300
+ this.pendingKittyPrintableCodepoint = undefined;
301
+ this.emit('paste', pastedContent);
302
+ if (remaining.length > 0) {
303
+ this.process(remaining);
304
+ }
305
+ }
306
+ return;
307
+ }
308
+ const result = extractCompleteSequences(this.buffer);
309
+ this.buffer = result.remainder;
310
+ for (const sequence of result.sequences) {
311
+ this.emitDataSequence(sequence);
312
+ }
313
+ if (this.buffer.length > 0) {
314
+ this.timeout = setTimeout(() => {
315
+ const flushed = this.flush();
316
+ for (const sequence of flushed) {
317
+ this.emitDataSequence(sequence);
318
+ }
319
+ }, this.timeoutMs);
320
+ }
321
+ }
322
+ emitDataSequence(sequence) {
323
+ const rawCodepoint = sequence.length === 1 ? sequence.codePointAt(0) : undefined;
324
+ if (rawCodepoint !== undefined && rawCodepoint === this.pendingKittyPrintableCodepoint) {
325
+ this.pendingKittyPrintableCodepoint = undefined;
326
+ return;
327
+ }
328
+ this.pendingKittyPrintableCodepoint = parseUnmodifiedKittyPrintableCodepoint(sequence);
329
+ this.emit('data', sequence);
330
+ }
331
+ flush() {
332
+ if (this.timeout) {
333
+ clearTimeout(this.timeout);
334
+ this.timeout = null;
335
+ }
336
+ if (this.buffer.length === 0) {
337
+ return [];
338
+ }
339
+ const sequences = [this.buffer];
340
+ this.buffer = '';
341
+ this.pendingKittyPrintableCodepoint = undefined;
342
+ return sequences;
343
+ }
344
+ clear() {
345
+ if (this.timeout) {
346
+ clearTimeout(this.timeout);
347
+ this.timeout = null;
348
+ }
349
+ this.buffer = '';
350
+ this.pasteMode = false;
351
+ this.pasteBuffer = '';
352
+ this.pendingKittyPrintableCodepoint = undefined;
353
+ }
354
+ getBuffer() {
355
+ return this.buffer;
356
+ }
357
+ destroy() {
358
+ this.clear();
359
+ }
360
+ }
361
+ //# sourceMappingURL=stdin-buffer.js.map