@travisennis/acai 0.0.12 → 0.0.14

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 (242) hide show
  1. package/README.md +5 -2
  2. package/dist/agent/index.d.ts.map +1 -1
  3. package/dist/agent/index.js +91 -5
  4. package/dist/commands/history/types.d.ts +3 -2
  5. package/dist/commands/history/types.d.ts.map +1 -1
  6. package/dist/commands/init-project/utils.d.ts +0 -1
  7. package/dist/commands/init-project/utils.d.ts.map +1 -1
  8. package/dist/commands/init-project/utils.js +1 -1
  9. package/dist/commands/manager.d.ts.map +1 -1
  10. package/dist/commands/manager.js +0 -18
  11. package/dist/commands/share/html-renderer.d.ts.map +1 -1
  12. package/dist/commands/share/html-renderer.js +54 -48
  13. package/dist/commands/tools/index.js +39 -38
  14. package/dist/config/index.d.ts +0 -2
  15. package/dist/config/index.d.ts.map +1 -1
  16. package/dist/config/index.js +3 -7
  17. package/dist/index.d.ts +14 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +94 -76
  20. package/dist/models/manager.d.ts +1 -10
  21. package/dist/models/manager.d.ts.map +1 -1
  22. package/dist/models/manager.js +2 -2
  23. package/dist/models/opencode-go-provider.d.ts +6 -4
  24. package/dist/models/opencode-go-provider.d.ts.map +1 -1
  25. package/dist/models/opencode-go-provider.js +55 -35
  26. package/dist/models/providers.d.ts +1 -1
  27. package/dist/models/providers.d.ts.map +1 -1
  28. package/dist/prompts/system-prompt.d.ts +0 -2
  29. package/dist/prompts/system-prompt.d.ts.map +1 -1
  30. package/dist/prompts/system-prompt.js +6 -10
  31. package/dist/repl/index.d.ts +27 -11
  32. package/dist/repl/index.d.ts.map +1 -1
  33. package/dist/repl/index.js +238 -254
  34. package/dist/sessions/manager.d.ts +41 -0
  35. package/dist/sessions/manager.d.ts.map +1 -1
  36. package/dist/sessions/manager.js +53 -0
  37. package/dist/sessions/summary.d.ts.map +1 -1
  38. package/dist/sessions/summary.js +18 -0
  39. package/dist/skills/index.d.ts +12 -2
  40. package/dist/skills/index.d.ts.map +1 -1
  41. package/dist/skills/index.js +123 -73
  42. package/dist/terminal/control.d.ts +1 -21
  43. package/dist/terminal/control.d.ts.map +1 -1
  44. package/dist/terminal/control.js +1 -32
  45. package/dist/terminal/formatting.d.ts +0 -33
  46. package/dist/terminal/formatting.d.ts.map +1 -1
  47. package/dist/terminal/formatting.js +0 -91
  48. package/dist/terminal/highlight/theme.d.ts +0 -37
  49. package/dist/terminal/highlight/theme.d.ts.map +1 -1
  50. package/dist/terminal/highlight/theme.js +1 -79
  51. package/dist/terminal/keys.d.ts +0 -97
  52. package/dist/terminal/keys.d.ts.map +1 -1
  53. package/dist/terminal/keys.js +0 -194
  54. package/dist/terminal/select-prompt.d.ts.map +1 -1
  55. package/dist/terminal/select-prompt.js +65 -51
  56. package/dist/terminal/style.d.ts +1 -1
  57. package/dist/terminal/style.d.ts.map +1 -1
  58. package/dist/terminal/supports-color.d.ts.map +1 -1
  59. package/dist/terminal/supports-color.js +38 -20
  60. package/dist/terminal/supports-hyperlinks.d.ts +3 -0
  61. package/dist/terminal/supports-hyperlinks.d.ts.map +1 -1
  62. package/dist/terminal/supports-hyperlinks.js +72 -31
  63. package/dist/terminal/table/layout-manager.d.ts +0 -20
  64. package/dist/terminal/table/layout-manager.d.ts.map +1 -1
  65. package/dist/terminal/table/layout-manager.js +68 -44
  66. package/dist/terminal/table/utils.d.ts +0 -1
  67. package/dist/terminal/table/utils.d.ts.map +1 -1
  68. package/dist/terminal/table/utils.js +2 -4
  69. package/dist/tools/apply-patch.d.ts +5 -3
  70. package/dist/tools/apply-patch.d.ts.map +1 -1
  71. package/dist/tools/apply-patch.js +154 -123
  72. package/dist/tools/bash.d.ts.map +1 -1
  73. package/dist/tools/bash.js +11 -8
  74. package/dist/tools/dynamic-tool-loader.d.ts +6 -1
  75. package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
  76. package/dist/tools/dynamic-tool-loader.js +154 -135
  77. package/dist/tools/index.d.ts +3 -133
  78. package/dist/tools/index.d.ts.map +1 -1
  79. package/dist/tools/index.js +0 -20
  80. package/dist/tools/read-file.d.ts.map +1 -1
  81. package/dist/tools/read-file.js +32 -13
  82. package/dist/tools/skill.d.ts.map +1 -1
  83. package/dist/tools/skill.js +20 -13
  84. package/dist/tools/web-fetch.d.ts +2 -6
  85. package/dist/tools/web-fetch.d.ts.map +1 -1
  86. package/dist/tools/web-fetch.js +59 -36
  87. package/dist/tools/web-search.d.ts +0 -4
  88. package/dist/tools/web-search.d.ts.map +1 -1
  89. package/dist/tools/web-search.js +40 -32
  90. package/dist/tui/autocomplete/utils.d.ts +0 -15
  91. package/dist/tui/autocomplete/utils.d.ts.map +1 -1
  92. package/dist/tui/autocomplete/utils.js +0 -85
  93. package/dist/tui/autocomplete.d.ts +1 -1
  94. package/dist/tui/autocomplete.d.ts.map +1 -1
  95. package/dist/tui/autocomplete.js +1 -1
  96. package/dist/tui/components/editor.d.ts +12 -0
  97. package/dist/tui/components/editor.d.ts.map +1 -1
  98. package/dist/tui/components/editor.js +181 -195
  99. package/dist/tui/components/input.d.ts +4 -0
  100. package/dist/tui/components/input.d.ts.map +1 -1
  101. package/dist/tui/components/input.js +33 -31
  102. package/dist/tui/components/markdown.d.ts +30 -0
  103. package/dist/tui/components/markdown.d.ts.map +1 -1
  104. package/dist/tui/components/markdown.js +274 -242
  105. package/dist/tui/components/modal.d.ts.map +1 -1
  106. package/dist/tui/components/modal.js +11 -11
  107. package/dist/tui/components/select-list.d.ts +5 -0
  108. package/dist/tui/components/select-list.d.ts.map +1 -1
  109. package/dist/tui/components/select-list.js +69 -98
  110. package/dist/tui/components/table.d.ts +6 -0
  111. package/dist/tui/components/table.d.ts.map +1 -1
  112. package/dist/tui/components/table.js +61 -52
  113. package/dist/tui/index.d.ts +1 -8
  114. package/dist/tui/index.d.ts.map +1 -1
  115. package/dist/tui/index.js +0 -8
  116. package/dist/tui/tui.d.ts +9 -0
  117. package/dist/tui/tui.d.ts.map +1 -1
  118. package/dist/tui/tui.js +78 -48
  119. package/dist/tui/utils.d.ts +7 -0
  120. package/dist/tui/utils.d.ts.map +1 -1
  121. package/dist/tui/utils.js +117 -53
  122. package/dist/utils/bash.d.ts.map +1 -1
  123. package/dist/utils/bash.js +156 -104
  124. package/dist/utils/command-protection.d.ts +3 -6
  125. package/dist/utils/command-protection.d.ts.map +1 -1
  126. package/dist/utils/command-protection.js +213 -100
  127. package/dist/utils/filesystem/operations.d.ts +0 -15
  128. package/dist/utils/filesystem/operations.d.ts.map +1 -1
  129. package/dist/utils/filesystem/operations.js +1 -38
  130. package/dist/utils/filesystem/security.d.ts.map +1 -1
  131. package/dist/utils/filesystem/security.js +22 -15
  132. package/dist/utils/filetype-detection.d.ts +0 -1
  133. package/dist/utils/filetype-detection.d.ts.map +1 -1
  134. package/dist/utils/filetype-detection.js +0 -12
  135. package/dist/utils/formatting.d.ts +0 -30
  136. package/dist/utils/formatting.d.ts.map +1 -1
  137. package/dist/utils/formatting.js +0 -44
  138. package/dist/utils/git.d.ts +4 -6
  139. package/dist/utils/git.d.ts.map +1 -1
  140. package/dist/utils/git.js +36 -46
  141. package/dist/utils/ignore.d.ts +1 -1
  142. package/dist/utils/ignore.d.ts.map +1 -1
  143. package/dist/utils/ignore.js +1 -1
  144. package/dist/utils/process.d.ts.map +1 -1
  145. package/dist/utils/process.js +77 -79
  146. package/dist/utils/yaml.d.ts +0 -1
  147. package/dist/utils/yaml.d.ts.map +1 -1
  148. package/dist/utils/yaml.js +80 -89
  149. package/dist/utils/zod.d.ts +0 -3
  150. package/dist/utils/zod.d.ts.map +1 -1
  151. package/dist/utils/zod.js +0 -7
  152. package/package.json +25 -24
  153. package/dist/agent/sub-agent.d.ts +0 -23
  154. package/dist/agent/sub-agent.d.ts.map +0 -1
  155. package/dist/agent/sub-agent.js +0 -109
  156. package/dist/commands/add-directory/index.d.ts +0 -3
  157. package/dist/commands/add-directory/index.d.ts.map +0 -1
  158. package/dist/commands/add-directory/index.js +0 -50
  159. package/dist/commands/add-directory/utils.d.ts +0 -3
  160. package/dist/commands/add-directory/utils.d.ts.map +0 -1
  161. package/dist/commands/add-directory/utils.js +0 -15
  162. package/dist/commands/clear/index.d.ts +0 -3
  163. package/dist/commands/clear/index.d.ts.map +0 -1
  164. package/dist/commands/clear/index.js +0 -13
  165. package/dist/commands/generate-rules/index.d.ts +0 -3
  166. package/dist/commands/generate-rules/index.d.ts.map +0 -1
  167. package/dist/commands/generate-rules/index.js +0 -206
  168. package/dist/commands/generate-rules/service.d.ts +0 -22
  169. package/dist/commands/generate-rules/service.d.ts.map +0 -1
  170. package/dist/commands/generate-rules/service.js +0 -103
  171. package/dist/commands/generate-rules/utils.d.ts +0 -5
  172. package/dist/commands/generate-rules/utils.d.ts.map +0 -1
  173. package/dist/commands/generate-rules/utils.js +0 -25
  174. package/dist/commands/handoff/index.d.ts +0 -3
  175. package/dist/commands/handoff/index.d.ts.map +0 -1
  176. package/dist/commands/handoff/index.js +0 -97
  177. package/dist/commands/handoff/utils.d.ts +0 -4
  178. package/dist/commands/handoff/utils.d.ts.map +0 -1
  179. package/dist/commands/handoff/utils.js +0 -123
  180. package/dist/commands/list-directories/index.d.ts +0 -3
  181. package/dist/commands/list-directories/index.d.ts.map +0 -1
  182. package/dist/commands/list-directories/index.js +0 -35
  183. package/dist/commands/pickup/index.d.ts +0 -3
  184. package/dist/commands/pickup/index.d.ts.map +0 -1
  185. package/dist/commands/pickup/index.js +0 -141
  186. package/dist/commands/pickup/types.d.ts +0 -6
  187. package/dist/commands/pickup/types.d.ts.map +0 -1
  188. package/dist/commands/pickup/types.js +0 -1
  189. package/dist/commands/pickup/utils.d.ts +0 -7
  190. package/dist/commands/pickup/utils.d.ts.map +0 -1
  191. package/dist/commands/pickup/utils.js +0 -56
  192. package/dist/commands/remove-directory/index.d.ts +0 -3
  193. package/dist/commands/remove-directory/index.d.ts.map +0 -1
  194. package/dist/commands/remove-directory/index.js +0 -55
  195. package/dist/commands/review/index.d.ts +0 -3
  196. package/dist/commands/review/index.d.ts.map +0 -1
  197. package/dist/commands/review/index.js +0 -12
  198. package/dist/commands/review/review-panel.d.ts +0 -3
  199. package/dist/commands/review/review-panel.d.ts.map +0 -1
  200. package/dist/commands/review/review-panel.js +0 -186
  201. package/dist/commands/review/utils.d.ts +0 -18
  202. package/dist/commands/review/utils.d.ts.map +0 -1
  203. package/dist/commands/review/utils.js +0 -146
  204. package/dist/commands/shell/index.d.ts +0 -3
  205. package/dist/commands/shell/index.d.ts.map +0 -1
  206. package/dist/commands/shell/index.js +0 -96
  207. package/dist/subagents/index.d.ts +0 -16
  208. package/dist/subagents/index.d.ts.map +0 -1
  209. package/dist/subagents/index.js +0 -231
  210. package/dist/terminal/index.d.ts +0 -9
  211. package/dist/terminal/index.d.ts.map +0 -1
  212. package/dist/terminal/index.js +0 -8
  213. package/dist/tools/agent.d.ts +0 -27
  214. package/dist/tools/agent.d.ts.map +0 -1
  215. package/dist/tools/agent.js +0 -81
  216. package/dist/tools/directory-tree.d.ts +0 -28
  217. package/dist/tools/directory-tree.d.ts.map +0 -1
  218. package/dist/tools/directory-tree.js +0 -154
  219. package/dist/tools/glob.d.ts +0 -35
  220. package/dist/tools/glob.d.ts.map +0 -1
  221. package/dist/tools/glob.js +0 -167
  222. package/dist/tools/grep.d.ts +0 -100
  223. package/dist/tools/grep.d.ts.map +0 -1
  224. package/dist/tools/grep.js +0 -608
  225. package/dist/tools/ls.d.ts +0 -26
  226. package/dist/tools/ls.d.ts.map +0 -1
  227. package/dist/tools/ls.js +0 -83
  228. package/dist/tui/components/header.d.ts +0 -21
  229. package/dist/tui/components/header.d.ts.map +0 -1
  230. package/dist/tui/components/header.js +0 -63
  231. package/dist/utils/bash/parse.d.ts +0 -19
  232. package/dist/utils/bash/parse.d.ts.map +0 -1
  233. package/dist/utils/bash/parse.js +0 -223
  234. package/dist/utils/bash/quote.d.ts +0 -6
  235. package/dist/utils/bash/quote.d.ts.map +0 -1
  236. package/dist/utils/bash/quote.js +0 -23
  237. package/dist/utils/generators.d.ts +0 -3
  238. package/dist/utils/generators.d.ts.map +0 -1
  239. package/dist/utils/generators.js +0 -25
  240. package/dist/utils/glob.d.ts +0 -52
  241. package/dist/utils/glob.d.ts.map +0 -1
  242. package/dist/utils/glob.js +0 -376
@@ -3,55 +3,7 @@
3
3
  *
4
4
  * Provides functions for formatting and displaying text in the terminal.
5
5
  */
6
- import style from "./style.js";
7
6
  import { supportsHyperlinks } from "./supports-hyperlinks.js";
8
- /**
9
- * Create a horizontal rule
10
- */
11
- export function hr(width) {
12
- return `${style.gray("─").repeat(width)}`;
13
- }
14
- /**
15
- * Word wrap text to the specified width
16
- */
17
- export function wordWrap(text, width) {
18
- const lines = text.split("\n");
19
- return lines.map((line) => wrapLine(line, width)).join("\n");
20
- }
21
- function wrapLine(line, width) {
22
- // If the line is a code block or already shorter than the width, leave it as is
23
- if (line.trim().startsWith("┃") || line.length <= width) {
24
- return line;
25
- }
26
- // Word wrap the line
27
- const words = line.split(" ");
28
- const wrappedLines = [];
29
- let currentLine = "";
30
- for (const word of words) {
31
- // If adding this word would exceed the width
32
- if (currentLine.length + word.length + 1 > width) {
33
- // Add the current line to wrapped lines if it's not empty
34
- if (currentLine) {
35
- wrappedLines.push(currentLine);
36
- currentLine = word;
37
- }
38
- else {
39
- // If the current line is empty, it means the word itself is longer than the width
40
- wrappedLines.push(word);
41
- }
42
- }
43
- else {
44
- // Add the word to the current line
45
- currentLine = currentLine ? `${currentLine} ${word}` : word;
46
- }
47
- }
48
- // Add the last line if it's not empty
49
- if (currentLine) {
50
- wrappedLines.push(currentLine);
51
- }
52
- return wrappedLines.join("\n");
53
- }
54
- // const ESC = "\u001B[";
55
7
  const OSC = "\u001B]";
56
8
  const BEL = "\u0007";
57
9
  const SEP = ";";
@@ -61,46 +13,3 @@ export const link = (text, url) => {
61
13
  }
62
14
  return null;
63
15
  };
64
- export const image = (data, options = {}) => {
65
- let returnValue = `${OSC}1337;File=inline=1`;
66
- if (options.width) {
67
- returnValue += `;width=${options.width}`;
68
- }
69
- if (options.height) {
70
- returnValue += `;height=${options.height}`;
71
- }
72
- if (options.preserveAspectRatio === false) {
73
- returnValue += ";preserveAspectRatio=0";
74
- }
75
- return `${returnValue}:${Buffer.from(data).toString("base64")}${BEL}`;
76
- };
77
- /**
78
- * Display a message with emphasis
79
- */
80
- export function emphasize(message) {
81
- return style.cyan.bold(message);
82
- }
83
- /**
84
- * Display an informational message
85
- */
86
- export function info(message) {
87
- return style.blue(`ℹ ${message}`);
88
- }
89
- /**
90
- * Display a success message
91
- */
92
- export function success(message) {
93
- return style.green(`✓ ${message}`);
94
- }
95
- /**
96
- * Display a warning message
97
- */
98
- export function warn(message) {
99
- return style.yellow(`⚠ ${message}`);
100
- }
101
- /**
102
- * Display an error message
103
- */
104
- export function error(message) {
105
- return style.red(`✗ ${message}`);
106
- }
@@ -192,42 +192,5 @@ export interface Theme extends Tokens<(codePart: string) => string> {
192
192
  */
193
193
  default?: (codePart: string) => string;
194
194
  }
195
- /**
196
- * Stringifies a [[Theme]] with formatter functions to a JSON string.
197
- *
198
- * ```ts
199
- * import style from '../terminal/style.ts';
200
- * import {stringify} from './highlight/theme.ts';
201
- * import * as fs from 'node:fs';
202
- *
203
- * const myTheme: Theme = {
204
- * keyword: style.red.bold,
205
- * addition: style.green,
206
- * deletion: style.red.strikethrough,
207
- * number: plain
208
- * }
209
- * const json = stringify(myTheme);
210
- * fs.writeFile('mytheme.json', json, (err: any) => {
211
- * if (err) throw err;
212
- * console.log('Theme saved');
213
- * });
214
- * ```
215
- */
216
- export declare function stringify(theme: Theme): string;
217
- /**
218
- * Parses a JSON string into a [[Theme]] with formatter functions.
219
- *
220
- * ```ts
221
- * import * as fs from 'node:fs';
222
- * import {parse, highlight} from './highlight/index.ts';
223
- *
224
- * fs.readFile('mytheme.json', 'utf-8', (err: any, json: string) => {
225
- * if (err) throw err;
226
- * const code = highlight('SELECT * FROM table', {theme: parse(json)});
227
- * console.log(code);
228
- * });
229
- * ```
230
- */
231
- export declare function parse(json: string): Theme;
232
195
  export {};
233
196
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../source/terminal/highlight/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../source/terminal/highlight/theme.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,UAAU,MAAM,CAAC,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;OAEG;IAEH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IAER;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC;IAElB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAErB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC;IAEnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,KAAM,SAAQ,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC"}
@@ -1,79 +1 @@
1
- import { id } from "../../utils/funcs.js";
2
- import style from "../style.js";
3
- /**
4
- * Converts a [[JsonTheme]] with string values to a [[Theme]] with formatter functions. Used by [[parse]].
5
- */
6
- function fromJson(json) {
7
- const theme = {};
8
- for (const key of Object.keys(json)) {
9
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic theme access needed for highlight compatibility
10
- const styleValue = json[key];
11
- if (Array.isArray(styleValue)) {
12
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic theme access needed for highlight compatibility
13
- theme[key] = styleValue.reduce((previous, current) =>
14
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic theme access needed for highlight compatibility
15
- current === "plain" ? id : previous[current], style);
16
- }
17
- else {
18
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic theme access needed for highlight compatibility
19
- theme[key] = style[styleValue];
20
- }
21
- }
22
- return theme;
23
- }
24
- /**
25
- * Converts a [[Theme]] with formatter functions to a [[JsonTheme]] with string values. Used by [[stringify]].
26
- */
27
- function toJson(theme) {
28
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic theme access needed for highlight compatibility
29
- const jsonTheme = {};
30
- for (const key of Object.keys(theme)) {
31
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic theme access needed for highlight compatibility
32
- const style = theme[key];
33
- if (style?._styles) {
34
- jsonTheme[key] = style._styles;
35
- }
36
- }
37
- return jsonTheme;
38
- }
39
- /**
40
- * Stringifies a [[Theme]] with formatter functions to a JSON string.
41
- *
42
- * ```ts
43
- * import style from '../terminal/style.ts';
44
- * import {stringify} from './highlight/theme.ts';
45
- * import * as fs from 'node:fs';
46
- *
47
- * const myTheme: Theme = {
48
- * keyword: style.red.bold,
49
- * addition: style.green,
50
- * deletion: style.red.strikethrough,
51
- * number: plain
52
- * }
53
- * const json = stringify(myTheme);
54
- * fs.writeFile('mytheme.json', json, (err: any) => {
55
- * if (err) throw err;
56
- * console.log('Theme saved');
57
- * });
58
- * ```
59
- */
60
- export function stringify(theme) {
61
- return JSON.stringify(toJson(theme));
62
- }
63
- /**
64
- * Parses a JSON string into a [[Theme]] with formatter functions.
65
- *
66
- * ```ts
67
- * import * as fs from 'node:fs';
68
- * import {parse, highlight} from './highlight/index.ts';
69
- *
70
- * fs.readFile('mytheme.json', 'utf-8', (err: any, json: string) => {
71
- * if (err) throw err;
72
- * const code = highlight('SELECT * FROM table', {theme: parse(json)});
73
- * console.log(code);
74
- * });
75
- * ```
76
- */
77
- export function parse(json) {
78
- return fromJson(JSON.parse(json));
79
- }
1
+ export {};
@@ -1,20 +1,5 @@
1
1
  /** biome-ignore-all lint/suspicious/noControlCharactersInRegex: handle terminal ansii codes */
2
2
  /** biome-ignore-all lint/style/useNamingConvention: will fix later */
3
- /**
4
- * Check if input matches a Kitty protocol Ctrl+<key> sequence.
5
- * Ignores lock key bits (Caps Lock, Num Lock).
6
- * @param data - The input data to check
7
- * @param key - Single lowercase letter (e.g., 'c' for Ctrl+C)
8
- */
9
- export declare function isKittyCtrl(data: string, key: string): boolean;
10
- /**
11
- * Check if input matches a Kitty protocol key sequence with specific modifier.
12
- * Ignores lock key bits (Caps Lock, Num Lock).
13
- * @param data - The input data to check
14
- * @param codepoint - ASCII codepoint of the key
15
- * @param modifier - Modifier value (use MODIFIERS constants)
16
- */
17
- export declare function isKittyKey(data: string, codepoint: number, modifier: number): boolean;
18
3
  /**
19
4
  * Check if input matches Ctrl+A (raw byte or Kitty protocol).
20
5
  * Ignores lock key bits.
@@ -40,18 +25,6 @@ export declare function isCtrlE(data: string): boolean;
40
25
  * Ignores lock key bits.
41
26
  */
42
27
  export declare function isCtrlG(data: string): boolean;
43
- /**
44
- * Check if input matches Ctrl+K (raw byte or Kitty protocol).
45
- * Ignores lock key bits.
46
- * Also checks if first byte is 0x0b for compatibility with terminals
47
- * that may send trailing bytes.
48
- */
49
- export declare function isCtrlK(data: string): boolean;
50
- /**
51
- * Check if input matches Ctrl+L (raw byte or Kitty protocol).
52
- * Ignores lock key bits.
53
- */
54
- export declare function isCtrlL(data: string): boolean;
55
28
  /**
56
29
  * Check if input matches Ctrl+M (Kitty protocol only).
57
30
  * The raw Ctrl+M byte (\x0d) is identical to Enter/Return,
@@ -69,56 +42,16 @@ export declare function isCtrlN(data: string): boolean;
69
42
  * Ignores lock key bits.
70
43
  */
71
44
  export declare function isCtrlO(data: string): boolean;
72
- /**
73
- * Check if input matches Shift+Ctrl+O (Kitty protocol only).
74
- * Ignores lock key bits.
75
- */
76
- export declare function isShiftCtrlO(data: string): boolean;
77
- /**
78
- * Check if input matches Ctrl+P (raw byte or Kitty protocol).
79
- * Ignores lock key bits.
80
- */
81
- export declare function isCtrlP(data: string): boolean;
82
- /**
83
- * Check if input matches Shift+Ctrl+P (Kitty protocol only).
84
- * Ignores lock key bits.
85
- */
86
- export declare function isShiftCtrlP(data: string): boolean;
87
45
  /**
88
46
  * Check if input matches Ctrl+R (raw byte or Kitty protocol).
89
47
  * Ignores lock key bits.
90
48
  */
91
49
  export declare function isCtrlR(data: string): boolean;
92
- /**
93
- * Check if input matches Shift+Ctrl+D (Kitty protocol only, for debug).
94
- * Ignores lock key bits.
95
- */
96
- export declare function isShiftCtrlD(data: string): boolean;
97
- /**
98
- * Check if input matches Ctrl+T (raw byte or Kitty protocol).
99
- * Ignores lock key bits.
100
- */
101
- export declare function isCtrlT(data: string): boolean;
102
- /**
103
- * Check if input matches Ctrl+U (raw byte or Kitty protocol).
104
- * Ignores lock key bits.
105
- */
106
- export declare function isCtrlU(data: string): boolean;
107
- /**
108
- * Check if input matches Ctrl+W (raw byte or Kitty protocol).
109
- * Ignores lock key bits.
110
- */
111
- export declare function isCtrlW(data: string): boolean;
112
50
  /**
113
51
  * Check if input matches Ctrl+Z (raw byte or Kitty protocol).
114
52
  * Ignores lock key bits.
115
53
  */
116
54
  export declare function isCtrlZ(data: string): boolean;
117
- /**
118
- * Check if input matches Alt+Backspace (legacy or Kitty protocol).
119
- * Ignores lock key bits.
120
- */
121
- export declare function isAltBackspace(data: string): boolean;
122
55
  /**
123
56
  * Check if input matches Shift+Tab (legacy or Kitty protocol).
124
57
  * Ignores lock key bits.
@@ -166,36 +99,6 @@ export declare function isEnter(data: string): boolean;
166
99
  * Handles both legacy (\x7f, \x08) and Kitty protocol.
167
100
  */
168
101
  export declare function isBackspace(data: string): boolean;
169
- /**
170
- * Check if input matches Shift+Enter.
171
- * Ignores lock key bits.
172
- */
173
- export declare function isShiftEnter(data: string): boolean;
174
- /**
175
- * Check if input matches Alt+Enter.
176
- * Ignores lock key bits.
177
- */
178
- export declare function isAltEnter(data: string): boolean;
179
- /**
180
- * Check if input matches Option/Alt+Left (word navigation).
181
- * Handles multiple formats including Kitty protocol.
182
- */
183
- export declare function isAltLeft(data: string): boolean;
184
- /**
185
- * Check if input matches Option/Alt+Right (word navigation).
186
- * Handles multiple formats including Kitty protocol.
187
- */
188
- export declare function isAltRight(data: string): boolean;
189
- /**
190
- * Check if input matches Ctrl+Left (word navigation).
191
- * Handles multiple formats including Kitty protocol.
192
- */
193
- export declare function isCtrlLeft(data: string): boolean;
194
- /**
195
- * Check if input matches Ctrl+Right (word navigation).
196
- * Handles multiple formats including Kitty protocol.
197
- */
198
- export declare function isCtrlRight(data: string): boolean;
199
102
  /**
200
103
  * Check if input matches Home key.
201
104
  * Handles legacy formats and Kitty protocol with lock key modifiers.
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../source/terminal/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../source/terminal/keys.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,sEAAsE;AAoMtE;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM9C;AAUD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIlD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO5C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO3C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK9C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK9C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOxD"}
@@ -30,16 +30,10 @@ const CODEPOINTS = {
30
30
  d: 100,
31
31
  e: 101,
32
32
  g: 103,
33
- k: 107,
34
- l: 108,
35
33
  m: 109,
36
34
  n: 110,
37
35
  o: 111,
38
- p: 112,
39
36
  r: 114,
40
- t: 116,
41
- u: 117,
42
- w: 119,
43
37
  z: 122,
44
38
  // Special keys
45
39
  escape: 27,
@@ -149,56 +143,14 @@ const Keys = {
149
143
  CTRL_D: kittySequence(CODEPOINTS.d, MODIFIERS.ctrl),
150
144
  CTRL_E: kittySequence(CODEPOINTS.e, MODIFIERS.ctrl),
151
145
  CTRL_G: kittySequence(CODEPOINTS.g, MODIFIERS.ctrl),
152
- CTRL_K: kittySequence(CODEPOINTS.k, MODIFIERS.ctrl),
153
- CTRL_L: kittySequence(CODEPOINTS.l, MODIFIERS.ctrl),
154
146
  CTRL_M: kittySequence(CODEPOINTS.m, MODIFIERS.ctrl),
155
147
  CTRL_O: kittySequence(CODEPOINTS.o, MODIFIERS.ctrl),
156
148
  CTRL_N: kittySequence(CODEPOINTS.n, MODIFIERS.ctrl),
157
- CTRL_P: kittySequence(CODEPOINTS.p, MODIFIERS.ctrl),
158
149
  CTRL_R: kittySequence(CODEPOINTS.r, MODIFIERS.ctrl),
159
- CTRL_T: kittySequence(CODEPOINTS.t, MODIFIERS.ctrl),
160
- CTRL_U: kittySequence(CODEPOINTS.u, MODIFIERS.ctrl),
161
- CTRL_W: kittySequence(CODEPOINTS.w, MODIFIERS.ctrl),
162
150
  CTRL_Z: kittySequence(CODEPOINTS.z, MODIFIERS.ctrl),
163
- // Enter combinations
164
- SHIFT_ENTER: kittySequence(CODEPOINTS.enter, MODIFIERS.shift),
165
- ALT_ENTER: kittySequence(CODEPOINTS.enter, MODIFIERS.alt),
166
- CTRL_ENTER: kittySequence(CODEPOINTS.enter, MODIFIERS.ctrl),
167
151
  // Tab combinations
168
152
  SHIFT_TAB: kittySequence(CODEPOINTS.tab, MODIFIERS.shift),
169
- // Backspace combinations
170
- ALT_BACKSPACE: kittySequence(CODEPOINTS.backspace, MODIFIERS.alt),
171
153
  };
172
- /**
173
- * Check if input matches a Kitty protocol Ctrl+<key> sequence.
174
- * Ignores lock key bits (Caps Lock, Num Lock).
175
- * @param data - The input data to check
176
- * @param key - Single lowercase letter (e.g., 'c' for Ctrl+C)
177
- */
178
- export function isKittyCtrl(data, key) {
179
- if (key.length !== 1)
180
- return false;
181
- const codepoint = key.charCodeAt(0);
182
- // Check exact match first (fast path)
183
- if (data === kittySequence(codepoint, MODIFIERS.ctrl))
184
- return true;
185
- // Check with lock bits masked out
186
- return matchesKittySequence(data, codepoint, MODIFIERS.ctrl);
187
- }
188
- /**
189
- * Check if input matches a Kitty protocol key sequence with specific modifier.
190
- * Ignores lock key bits (Caps Lock, Num Lock).
191
- * @param data - The input data to check
192
- * @param codepoint - ASCII codepoint of the key
193
- * @param modifier - Modifier value (use MODIFIERS constants)
194
- */
195
- export function isKittyKey(data, codepoint, modifier) {
196
- // Check exact match first (fast path)
197
- if (data === kittySequence(codepoint, modifier))
198
- return true;
199
- // Check with lock bits masked out
200
- return matchesKittySequence(data, codepoint, modifier);
201
- }
202
154
  // Raw control character codes
203
155
  const RAW = {
204
156
  CTRL_A: "\x01",
@@ -206,18 +158,10 @@ const RAW = {
206
158
  CTRL_D: "\x04",
207
159
  CTRL_E: "\x05",
208
160
  CTRL_G: "\x07",
209
- CTRL_K: "\x0b",
210
- CTRL_L: "\x0c",
211
- CTRL_M: "\x0d",
212
161
  CTRL_N: "\x0e",
213
162
  CTRL_O: "\x0f",
214
- CTRL_P: "\x10",
215
163
  CTRL_R: "\x12",
216
- CTRL_T: "\x14",
217
- CTRL_U: "\x15",
218
- CTRL_W: "\x17",
219
164
  CTRL_Z: "\x1a",
220
- ALT_BACKSPACE: "\x1b\x7f",
221
165
  SHIFT_TAB: "\x1b[Z",
222
166
  };
223
167
  /**
@@ -265,27 +209,6 @@ export function isCtrlG(data) {
265
209
  data === Keys.CTRL_G ||
266
210
  matchesKittySequence(data, CODEPOINTS.g, MODIFIERS.ctrl));
267
211
  }
268
- /**
269
- * Check if input matches Ctrl+K (raw byte or Kitty protocol).
270
- * Ignores lock key bits.
271
- * Also checks if first byte is 0x0b for compatibility with terminals
272
- * that may send trailing bytes.
273
- */
274
- export function isCtrlK(data) {
275
- return (data === RAW.CTRL_K ||
276
- (data.length > 0 && data.charCodeAt(0) === 0x0b) || // compatibility with terminals that may send trailing bytes
277
- data === Keys.CTRL_K ||
278
- matchesKittySequence(data, CODEPOINTS.k, MODIFIERS.ctrl));
279
- }
280
- /**
281
- * Check if input matches Ctrl+L (raw byte or Kitty protocol).
282
- * Ignores lock key bits.
283
- */
284
- export function isCtrlL(data) {
285
- return (data === RAW.CTRL_L ||
286
- data === Keys.CTRL_L ||
287
- matchesKittySequence(data, CODEPOINTS.l, MODIFIERS.ctrl));
288
- }
289
212
  /**
290
213
  * Check if input matches Ctrl+M (Kitty protocol only).
291
214
  * The raw Ctrl+M byte (\x0d) is identical to Enter/Return,
@@ -314,29 +237,6 @@ export function isCtrlO(data) {
314
237
  data === Keys.CTRL_O ||
315
238
  matchesKittySequence(data, CODEPOINTS.o, MODIFIERS.ctrl));
316
239
  }
317
- /**
318
- * Check if input matches Shift+Ctrl+O (Kitty protocol only).
319
- * Ignores lock key bits.
320
- */
321
- export function isShiftCtrlO(data) {
322
- return matchesKittySequence(data, CODEPOINTS.o, MODIFIERS.shift + MODIFIERS.ctrl);
323
- }
324
- /**
325
- * Check if input matches Ctrl+P (raw byte or Kitty protocol).
326
- * Ignores lock key bits.
327
- */
328
- export function isCtrlP(data) {
329
- return (data === RAW.CTRL_P ||
330
- data === Keys.CTRL_P ||
331
- matchesKittySequence(data, CODEPOINTS.p, MODIFIERS.ctrl));
332
- }
333
- /**
334
- * Check if input matches Shift+Ctrl+P (Kitty protocol only).
335
- * Ignores lock key bits.
336
- */
337
- export function isShiftCtrlP(data) {
338
- return matchesKittySequence(data, CODEPOINTS.p, MODIFIERS.shift + MODIFIERS.ctrl);
339
- }
340
240
  /**
341
241
  * Check if input matches Ctrl+R (raw byte or Kitty protocol).
342
242
  * Ignores lock key bits.
@@ -346,40 +246,6 @@ export function isCtrlR(data) {
346
246
  data === Keys.CTRL_R ||
347
247
  matchesKittySequence(data, CODEPOINTS.r, MODIFIERS.ctrl));
348
248
  }
349
- /**
350
- * Check if input matches Shift+Ctrl+D (Kitty protocol only, for debug).
351
- * Ignores lock key bits.
352
- */
353
- export function isShiftCtrlD(data) {
354
- return matchesKittySequence(data, CODEPOINTS.d, MODIFIERS.shift + MODIFIERS.ctrl);
355
- }
356
- /**
357
- * Check if input matches Ctrl+T (raw byte or Kitty protocol).
358
- * Ignores lock key bits.
359
- */
360
- export function isCtrlT(data) {
361
- return (data === RAW.CTRL_T ||
362
- data === Keys.CTRL_T ||
363
- matchesKittySequence(data, CODEPOINTS.t, MODIFIERS.ctrl));
364
- }
365
- /**
366
- * Check if input matches Ctrl+U (raw byte or Kitty protocol).
367
- * Ignores lock key bits.
368
- */
369
- export function isCtrlU(data) {
370
- return (data === RAW.CTRL_U ||
371
- data === Keys.CTRL_U ||
372
- matchesKittySequence(data, CODEPOINTS.u, MODIFIERS.ctrl));
373
- }
374
- /**
375
- * Check if input matches Ctrl+W (raw byte or Kitty protocol).
376
- * Ignores lock key bits.
377
- */
378
- export function isCtrlW(data) {
379
- return (data === RAW.CTRL_W ||
380
- data === Keys.CTRL_W ||
381
- matchesKittySequence(data, CODEPOINTS.w, MODIFIERS.ctrl));
382
- }
383
249
  /**
384
250
  * Check if input matches Ctrl+Z (raw byte or Kitty protocol).
385
251
  * Ignores lock key bits.
@@ -389,15 +255,6 @@ export function isCtrlZ(data) {
389
255
  data === Keys.CTRL_Z ||
390
256
  matchesKittySequence(data, CODEPOINTS.z, MODIFIERS.ctrl));
391
257
  }
392
- /**
393
- * Check if input matches Alt+Backspace (legacy or Kitty protocol).
394
- * Ignores lock key bits.
395
- */
396
- export function isAltBackspace(data) {
397
- return (data === RAW.ALT_BACKSPACE ||
398
- data === Keys.ALT_BACKSPACE ||
399
- matchesKittySequence(data, CODEPOINTS.backspace, MODIFIERS.alt));
400
- }
401
258
  /**
402
259
  * Check if input matches Shift+Tab (legacy or Kitty protocol).
403
260
  * Ignores lock key bits.
@@ -477,57 +334,6 @@ export function isBackspace(data) {
477
334
  data === "\x08" ||
478
335
  matchesKittySequence(data, CODEPOINTS.backspace, 0));
479
336
  }
480
- /**
481
- * Check if input matches Shift+Enter.
482
- * Ignores lock key bits.
483
- */
484
- export function isShiftEnter(data) {
485
- return (data === Keys.SHIFT_ENTER ||
486
- matchesKittySequence(data, CODEPOINTS.enter, MODIFIERS.shift));
487
- }
488
- /**
489
- * Check if input matches Alt+Enter.
490
- * Ignores lock key bits.
491
- */
492
- export function isAltEnter(data) {
493
- return (data === Keys.ALT_ENTER ||
494
- data === "\x1b\r" ||
495
- matchesKittySequence(data, CODEPOINTS.enter, MODIFIERS.alt));
496
- }
497
- /**
498
- * Check if input matches Option/Alt+Left (word navigation).
499
- * Handles multiple formats including Kitty protocol.
500
- */
501
- export function isAltLeft(data) {
502
- return (data === "\x1b[1;3D" ||
503
- data === "\x1bb" ||
504
- matchesKittySequence(data, ARROW_CODEPOINTS.left, MODIFIERS.alt));
505
- }
506
- /**
507
- * Check if input matches Option/Alt+Right (word navigation).
508
- * Handles multiple formats including Kitty protocol.
509
- */
510
- export function isAltRight(data) {
511
- return (data === "\x1b[1;3C" ||
512
- data === "\x1bf" ||
513
- matchesKittySequence(data, ARROW_CODEPOINTS.right, MODIFIERS.alt));
514
- }
515
- /**
516
- * Check if input matches Ctrl+Left (word navigation).
517
- * Handles multiple formats including Kitty protocol.
518
- */
519
- export function isCtrlLeft(data) {
520
- return (data === "\x1b[1;5D" ||
521
- matchesKittySequence(data, ARROW_CODEPOINTS.left, MODIFIERS.ctrl));
522
- }
523
- /**
524
- * Check if input matches Ctrl+Right (word navigation).
525
- * Handles multiple formats including Kitty protocol.
526
- */
527
- export function isCtrlRight(data) {
528
- return (data === "\x1b[1;5C" ||
529
- matchesKittySequence(data, ARROW_CODEPOINTS.right, MODIFIERS.ctrl));
530
- }
531
337
  /**
532
338
  * Check if input matches Home key.
533
339
  * Handles legacy formats and Kitty protocol with lock key modifiers.
@@ -1 +1 @@
1
- {"version":3,"file":"select-prompt.d.ts","sourceRoot":"","sources":["../../source/terminal/select-prompt.ts"],"names":[],"mappings":";AAEA;;;GAGG;AA2BH,UAAU,YAAY,CAAC,CAAC,GAAG,OAAO;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAQpD,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;CAC5B;AAED,UAAU,aAAa,CAAC,CAAC,GAAG,OAAO;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAoHD,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,EACxC,OAAkB,EAClB,OAAO,EACP,OAAW,EACX,QAAY,EACZ,MAAM,EACN,QAA2D,GAC5D,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA6M/B"}
1
+ {"version":3,"file":"select-prompt.d.ts","sourceRoot":"","sources":["../../source/terminal/select-prompt.ts"],"names":[],"mappings":";AAEA;;;GAGG;AA2BH,UAAU,YAAY,CAAC,CAAC,GAAG,OAAO;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,KAAK,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAQpD,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;CAC5B;AAED,UAAU,aAAa,CAAC,CAAC,GAAG,OAAO;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAoHD,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,EACxC,OAAkB,EAClB,OAAO,EACP,OAAW,EACX,QAAY,EACZ,MAAM,EACN,QAA2D,GAC5D,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAkO/B"}