@deepseek-harness-tui/dsh-tui 0.5.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 (638) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/bin/dsh-tui.js +95 -0
  4. package/cordis.patch.yml +218 -0
  5. package/cordis.yml +185 -0
  6. package/lib/invariant.js +28 -0
  7. package/lib/types/activityPrefs.d.ts +29 -0
  8. package/lib/types/activityPrefs.d.ts.map +1 -0
  9. package/lib/types/activityPrefs.js +60 -0
  10. package/lib/types/bootstrap/state.d.ts +13 -0
  11. package/lib/types/bootstrap/state.d.ts.map +1 -0
  12. package/lib/types/bootstrap/state.js +12 -0
  13. package/lib/types/cc/cliHighlight.d.ts +20 -0
  14. package/lib/types/cc/cliHighlight.d.ts.map +1 -0
  15. package/lib/types/cc/cliHighlight.js +53 -0
  16. package/lib/types/cc/figures.d.ts +59 -0
  17. package/lib/types/cc/figures.d.ts.map +1 -0
  18. package/lib/types/cc/figures.js +69 -0
  19. package/lib/types/cc/format.d.ts +26 -0
  20. package/lib/types/cc/format.d.ts.map +1 -0
  21. package/lib/types/cc/format.js +55 -0
  22. package/lib/types/cc/hash.d.ts +25 -0
  23. package/lib/types/cc/hash.d.ts.map +1 -0
  24. package/lib/types/cc/hash.js +41 -0
  25. package/lib/types/cc/hyperlink.d.ts +21 -0
  26. package/lib/types/cc/hyperlink.d.ts.map +1 -0
  27. package/lib/types/cc/hyperlink.js +31 -0
  28. package/lib/types/cc/markdown.d.ts +43 -0
  29. package/lib/types/cc/markdown.d.ts.map +1 -0
  30. package/lib/types/cc/markdown.js +345 -0
  31. package/lib/types/cc/spinnerVerbs.d.ts +3 -0
  32. package/lib/types/cc/spinnerVerbs.d.ts.map +1 -0
  33. package/lib/types/cc/spinnerVerbs.js +190 -0
  34. package/lib/types/cc/terminal.d.ts +15 -0
  35. package/lib/types/cc/terminal.d.ts.map +1 -0
  36. package/lib/types/cc/terminal.js +84 -0
  37. package/lib/types/channel.d.ts +672 -0
  38. package/lib/types/channel.d.ts.map +1 -0
  39. package/lib/types/channel.js +2427 -0
  40. package/lib/types/childStderr.d.ts +63 -0
  41. package/lib/types/childStderr.d.ts.map +1 -0
  42. package/lib/types/childStderr.js +161 -0
  43. package/lib/types/commands.d.ts +55 -0
  44. package/lib/types/commands.d.ts.map +1 -0
  45. package/lib/types/commands.js +101 -0
  46. package/lib/types/components/ActivityLine.d.ts +29 -0
  47. package/lib/types/components/ActivityLine.d.ts.map +1 -0
  48. package/lib/types/components/ActivityLine.js +47 -0
  49. package/lib/types/components/ActivityPicker.d.ts +13 -0
  50. package/lib/types/components/ActivityPicker.d.ts.map +1 -0
  51. package/lib/types/components/ActivityPicker.js +24 -0
  52. package/lib/types/components/CommandSuggestions.d.ts +14 -0
  53. package/lib/types/components/CommandSuggestions.d.ts.map +1 -0
  54. package/lib/types/components/CommandSuggestions.js +33 -0
  55. package/lib/types/components/FileSuggestions.d.ts +12 -0
  56. package/lib/types/components/FileSuggestions.d.ts.map +1 -0
  57. package/lib/types/components/FileSuggestions.js +26 -0
  58. package/lib/types/components/GoalTodoPanel.d.ts +13 -0
  59. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -0
  60. package/lib/types/components/GoalTodoPanel.js +57 -0
  61. package/lib/types/components/HelpMenu.d.ts +12 -0
  62. package/lib/types/components/HelpMenu.d.ts.map +1 -0
  63. package/lib/types/components/HelpMenu.js +12 -0
  64. package/lib/types/components/HistorySearchDialog.d.ts +16 -0
  65. package/lib/types/components/HistorySearchDialog.d.ts.map +1 -0
  66. package/lib/types/components/HistorySearchDialog.js +31 -0
  67. package/lib/types/components/InterruptedByUser.d.ts +7 -0
  68. package/lib/types/components/InterruptedByUser.d.ts.map +1 -0
  69. package/lib/types/components/InterruptedByUser.js +9 -0
  70. package/lib/types/components/LoadedContextPanel.d.ts +20 -0
  71. package/lib/types/components/LoadedContextPanel.d.ts.map +1 -0
  72. package/lib/types/components/LoadedContextPanel.js +30 -0
  73. package/lib/types/components/LogoV2.d.ts +23 -0
  74. package/lib/types/components/LogoV2.d.ts.map +1 -0
  75. package/lib/types/components/LogoV2.js +95 -0
  76. package/lib/types/components/Markdown.d.ts +24 -0
  77. package/lib/types/components/Markdown.d.ts.map +1 -0
  78. package/lib/types/components/Markdown.js +106 -0
  79. package/lib/types/components/MarkdownTable.d.ts +17 -0
  80. package/lib/types/components/MarkdownTable.d.ts.map +1 -0
  81. package/lib/types/components/MarkdownTable.js +272 -0
  82. package/lib/types/components/MessageList.d.ts +41 -0
  83. package/lib/types/components/MessageList.d.ts.map +1 -0
  84. package/lib/types/components/MessageList.js +303 -0
  85. package/lib/types/components/ModelPicker.d.ts +14 -0
  86. package/lib/types/components/ModelPicker.d.ts.map +1 -0
  87. package/lib/types/components/ModelPicker.js +15 -0
  88. package/lib/types/components/PresetPicker.d.ts +17 -0
  89. package/lib/types/components/PresetPicker.d.ts.map +1 -0
  90. package/lib/types/components/PresetPicker.js +25 -0
  91. package/lib/types/components/PromptInput.d.ts +67 -0
  92. package/lib/types/components/PromptInput.d.ts.map +1 -0
  93. package/lib/types/components/PromptInput.js +778 -0
  94. package/lib/types/components/ResumePicker.d.ts +15 -0
  95. package/lib/types/components/ResumePicker.d.ts.map +1 -0
  96. package/lib/types/components/ResumePicker.js +34 -0
  97. package/lib/types/components/RewindPicker.d.ts +14 -0
  98. package/lib/types/components/RewindPicker.d.ts.map +1 -0
  99. package/lib/types/components/RewindPicker.js +23 -0
  100. package/lib/types/components/SearchBox.d.ts +20 -0
  101. package/lib/types/components/SearchBox.d.ts.map +1 -0
  102. package/lib/types/components/SearchBox.js +33 -0
  103. package/lib/types/components/Select.d.ts +22 -0
  104. package/lib/types/components/Select.d.ts.map +1 -0
  105. package/lib/types/components/Select.js +19 -0
  106. package/lib/types/components/Spinner/GlimmerMessage.d.ts +19 -0
  107. package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -0
  108. package/lib/types/components/Spinner/GlimmerMessage.js +78 -0
  109. package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +31 -0
  110. package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts.map +1 -0
  111. package/lib/types/components/Spinner/SpinnerAnimationRow.js +162 -0
  112. package/lib/types/components/Spinner/SpinnerGlyph.d.ts +16 -0
  113. package/lib/types/components/Spinner/SpinnerGlyph.d.ts.map +1 -0
  114. package/lib/types/components/Spinner/SpinnerGlyph.js +36 -0
  115. package/lib/types/components/Spinner/spinnerMode.d.ts +6 -0
  116. package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -0
  117. package/lib/types/components/Spinner/spinnerMode.js +1 -0
  118. package/lib/types/components/Spinner/spinnerUtils.d.ts +41 -0
  119. package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -0
  120. package/lib/types/components/Spinner/spinnerUtils.js +104 -0
  121. package/lib/types/components/Spinner/useStalledAnimation.d.ts +16 -0
  122. package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -0
  123. package/lib/types/components/Spinner/useStalledAnimation.js +71 -0
  124. package/lib/types/components/StreamingMarkdown.d.ts +12 -0
  125. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -0
  126. package/lib/types/components/StreamingMarkdown.js +39 -0
  127. package/lib/types/components/ThemePicker.d.ts +22 -0
  128. package/lib/types/components/ThemePicker.d.ts.map +1 -0
  129. package/lib/types/components/ThemePicker.js +51 -0
  130. package/lib/types/components/ThinkingToggle.d.ts +17 -0
  131. package/lib/types/components/ThinkingToggle.d.ts.map +1 -0
  132. package/lib/types/components/ThinkingToggle.js +30 -0
  133. package/lib/types/components/ToolUseLoader.d.ts +13 -0
  134. package/lib/types/components/ToolUseLoader.d.ts.map +1 -0
  135. package/lib/types/components/ToolUseLoader.js +17 -0
  136. package/lib/types/components/Whale.d.ts +22 -0
  137. package/lib/types/components/Whale.d.ts.map +1 -0
  138. package/lib/types/components/Whale.js +78 -0
  139. package/lib/types/components/WorkingSpinner.d.ts +26 -0
  140. package/lib/types/components/WorkingSpinner.d.ts.map +1 -0
  141. package/lib/types/components/WorkingSpinner.js +68 -0
  142. package/lib/types/components/activityFrames.d.ts +31 -0
  143. package/lib/types/components/activityFrames.d.ts.map +1 -0
  144. package/lib/types/components/activityFrames.js +83 -0
  145. package/lib/types/components/bigfont.d.ts +28 -0
  146. package/lib/types/components/bigfont.d.ts.map +1 -0
  147. package/lib/types/components/bigfont.js +91 -0
  148. package/lib/types/components/design-system/Byline.d.ts +14 -0
  149. package/lib/types/components/design-system/Byline.d.ts.map +1 -0
  150. package/lib/types/components/design-system/Byline.js +17 -0
  151. package/lib/types/components/design-system/Divider.d.ts +40 -0
  152. package/lib/types/components/design-system/Divider.d.ts.map +1 -0
  153. package/lib/types/components/design-system/Divider.js +24 -0
  154. package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +19 -0
  155. package/lib/types/components/design-system/KeyboardShortcutHint.d.ts.map +1 -0
  156. package/lib/types/components/design-system/KeyboardShortcutHint.js +14 -0
  157. package/lib/types/components/design-system/ListItem.d.ts +36 -0
  158. package/lib/types/components/design-system/ListItem.d.ts.map +1 -0
  159. package/lib/types/components/design-system/ListItem.js +48 -0
  160. package/lib/types/components/design-system/LoadingState.d.ts +19 -0
  161. package/lib/types/components/design-system/LoadingState.d.ts.map +1 -0
  162. package/lib/types/components/design-system/LoadingState.js +22 -0
  163. package/lib/types/components/design-system/Pane.d.ts +17 -0
  164. package/lib/types/components/design-system/Pane.d.ts.map +1 -0
  165. package/lib/types/components/design-system/Pane.js +15 -0
  166. package/lib/types/components/design-system/ProgressBar.d.ts +22 -0
  167. package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -0
  168. package/lib/types/components/design-system/ProgressBar.js +27 -0
  169. package/lib/types/components/design-system/StatusIcon.d.ts +15 -0
  170. package/lib/types/components/design-system/StatusIcon.d.ts.map +1 -0
  171. package/lib/types/components/design-system/StatusIcon.js +20 -0
  172. package/lib/types/components/design-system/ThemeProvider.d.ts +11 -0
  173. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -0
  174. package/lib/types/components/design-system/ThemeProvider.js +135 -0
  175. package/lib/types/components/design-system/ThemedBox.d.ts +37 -0
  176. package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -0
  177. package/lib/types/components/design-system/ThemedBox.js +26 -0
  178. package/lib/types/components/design-system/ThemedText.d.ts +56 -0
  179. package/lib/types/components/design-system/ThemedText.d.ts.map +1 -0
  180. package/lib/types/components/design-system/ThemedText.js +45 -0
  181. package/lib/types/components/messages/AssistantTextMessage.d.ts +18 -0
  182. package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -0
  183. package/lib/types/components/messages/AssistantTextMessage.js +15 -0
  184. package/lib/types/components/messages/AssistantThinkingMessage.d.ts +23 -0
  185. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -0
  186. package/lib/types/components/messages/AssistantThinkingMessage.js +23 -0
  187. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +23 -0
  188. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -0
  189. package/lib/types/components/messages/AssistantToolUseMessage.js +220 -0
  190. package/lib/types/components/messages/MessageMetadata.d.ts +15 -0
  191. package/lib/types/components/messages/MessageMetadata.d.ts.map +1 -0
  192. package/lib/types/components/messages/MessageMetadata.js +20 -0
  193. package/lib/types/components/messages/UserPromptMessage.d.ts +19 -0
  194. package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -0
  195. package/lib/types/components/messages/UserPromptMessage.js +15 -0
  196. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +39 -0
  197. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -0
  198. package/lib/types/components/questions/AskUserQuestionPanel.js +228 -0
  199. package/lib/types/components/shimmer.d.ts +35 -0
  200. package/lib/types/components/shimmer.d.ts.map +1 -0
  201. package/lib/types/components/shimmer.js +43 -0
  202. package/lib/types/components/whaleFrames.d.ts +25 -0
  203. package/lib/types/components/whaleFrames.d.ts.map +1 -0
  204. package/lib/types/components/whaleFrames.js +419 -0
  205. package/lib/types/customTheme.d.ts +104 -0
  206. package/lib/types/customTheme.d.ts.map +1 -0
  207. package/lib/types/customTheme.js +268 -0
  208. package/lib/types/effortPrefs.d.ts +22 -0
  209. package/lib/types/effortPrefs.d.ts.map +1 -0
  210. package/lib/types/effortPrefs.js +45 -0
  211. package/lib/types/history.d.ts +24 -0
  212. package/lib/types/history.d.ts.map +1 -0
  213. package/lib/types/history.js +75 -0
  214. package/lib/types/hooks/useBlink.d.ts +11 -0
  215. package/lib/types/hooks/useBlink.d.ts.map +1 -0
  216. package/lib/types/hooks/useBlink.js +20 -0
  217. package/lib/types/i18n.d.ts +926 -0
  218. package/lib/types/i18n.d.ts.map +1 -0
  219. package/lib/types/i18n.js +356 -0
  220. package/lib/types/index.d.ts +70 -0
  221. package/lib/types/index.d.ts.map +1 -0
  222. package/lib/types/index.js +31 -0
  223. package/lib/types/ink/Ansi.d.ts +11 -0
  224. package/lib/types/ink/Ansi.d.ts.map +1 -0
  225. package/lib/types/ink/Ansi.js +269 -0
  226. package/lib/types/ink/bidi.d.ts +18 -0
  227. package/lib/types/ink/bidi.d.ts.map +1 -0
  228. package/lib/types/ink/bidi.js +119 -0
  229. package/lib/types/ink/clearTerminal.d.ts +22 -0
  230. package/lib/types/ink/clearTerminal.d.ts.map +1 -0
  231. package/lib/types/ink/clearTerminal.js +72 -0
  232. package/lib/types/ink/colorize.d.ts +33 -0
  233. package/lib/types/ink/colorize.d.ts.map +1 -0
  234. package/lib/types/ink/colorize.js +213 -0
  235. package/lib/types/ink/components/AlternateScreen.d.ts +22 -0
  236. package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -0
  237. package/lib/types/ink/components/AlternateScreen.js +74 -0
  238. package/lib/types/ink/components/App.d.ts +73 -0
  239. package/lib/types/ink/components/App.d.ts.map +1 -0
  240. package/lib/types/ink/components/App.js +597 -0
  241. package/lib/types/ink/components/AppContext.d.ts +15 -0
  242. package/lib/types/ink/components/AppContext.d.ts.map +1 -0
  243. package/lib/types/ink/components/AppContext.js +11 -0
  244. package/lib/types/ink/components/Box.d.ts +49 -0
  245. package/lib/types/ink/components/Box.d.ts.map +1 -0
  246. package/lib/types/ink/components/Box.js +153 -0
  247. package/lib/types/ink/components/Button.d.ts +37 -0
  248. package/lib/types/ink/components/Button.d.ts.map +1 -0
  249. package/lib/types/ink/components/Button.js +166 -0
  250. package/lib/types/ink/components/ClockContext.d.ts +10 -0
  251. package/lib/types/ink/components/ClockContext.d.ts.map +1 -0
  252. package/lib/types/ink/components/ClockContext.js +108 -0
  253. package/lib/types/ink/components/CursorDeclarationContext.d.ts +30 -0
  254. package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -0
  255. package/lib/types/ink/components/CursorDeclarationContext.js +6 -0
  256. package/lib/types/ink/components/ErrorOverview.d.ts +7 -0
  257. package/lib/types/ink/components/ErrorOverview.d.ts.map +1 -0
  258. package/lib/types/ink/components/ErrorOverview.js +49 -0
  259. package/lib/types/ink/components/Link.d.ts +8 -0
  260. package/lib/types/ink/components/Link.d.ts.map +1 -0
  261. package/lib/types/ink/components/Link.js +33 -0
  262. package/lib/types/ink/components/Newline.d.ts +13 -0
  263. package/lib/types/ink/components/Newline.d.ts.map +1 -0
  264. package/lib/types/ink/components/Newline.js +29 -0
  265. package/lib/types/ink/components/NoSelect.d.ts +20 -0
  266. package/lib/types/ink/components/NoSelect.d.ts.map +1 -0
  267. package/lib/types/ink/components/NoSelect.js +56 -0
  268. package/lib/types/ink/components/RawAnsi.d.ts +17 -0
  269. package/lib/types/ink/components/RawAnsi.d.ts.map +1 -0
  270. package/lib/types/ink/components/RawAnsi.js +45 -0
  271. package/lib/types/ink/components/ScrollBox.d.ts +78 -0
  272. package/lib/types/ink/components/ScrollBox.d.ts.map +1 -0
  273. package/lib/types/ink/components/ScrollBox.js +174 -0
  274. package/lib/types/ink/components/Spacer.d.ts +6 -0
  275. package/lib/types/ink/components/Spacer.d.ts.map +1 -0
  276. package/lib/types/ink/components/Spacer.js +19 -0
  277. package/lib/types/ink/components/StdinContext.d.ts +32 -0
  278. package/lib/types/ink/components/StdinContext.d.ts.map +1 -0
  279. package/lib/types/ink/components/StdinContext.js +16 -0
  280. package/lib/types/ink/components/TerminalFocusContext.d.ts +11 -0
  281. package/lib/types/ink/components/TerminalFocusContext.d.ts.map +1 -0
  282. package/lib/types/ink/components/TerminalFocusContext.js +45 -0
  283. package/lib/types/ink/components/TerminalSizeContext.d.ts +6 -0
  284. package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -0
  285. package/lib/types/ink/components/TerminalSizeContext.js +3 -0
  286. package/lib/types/ink/components/Text.d.ts +56 -0
  287. package/lib/types/ink/components/Text.d.ts.map +1 -0
  288. package/lib/types/ink/components/Text.js +194 -0
  289. package/lib/types/ink/constants.d.ts +3 -0
  290. package/lib/types/ink/constants.d.ts.map +1 -0
  291. package/lib/types/ink/constants.js +2 -0
  292. package/lib/types/ink/cursor.d.ts +11 -0
  293. package/lib/types/ink/cursor.d.ts.map +1 -0
  294. package/lib/types/ink/cursor.js +1 -0
  295. package/lib/types/ink/devtools.d.ts +7 -0
  296. package/lib/types/ink/devtools.d.ts.map +1 -0
  297. package/lib/types/ink/devtools.js +1 -0
  298. package/lib/types/ink/dom.d.ts +178 -0
  299. package/lib/types/ink/dom.d.ts.map +1 -0
  300. package/lib/types/ink/dom.js +424 -0
  301. package/lib/types/ink/events/click-event.d.ts +32 -0
  302. package/lib/types/ink/events/click-event.d.ts.map +1 -0
  303. package/lib/types/ink/events/click-event.js +36 -0
  304. package/lib/types/ink/events/dispatcher.d.ts +63 -0
  305. package/lib/types/ink/events/dispatcher.d.ts.map +1 -0
  306. package/lib/types/ink/events/dispatcher.js +194 -0
  307. package/lib/types/ink/events/emitter.d.ts +20 -0
  308. package/lib/types/ink/events/emitter.d.ts.map +1 -0
  309. package/lib/types/ink/events/emitter.js +43 -0
  310. package/lib/types/ink/events/event-handlers.d.ts +47 -0
  311. package/lib/types/ink/events/event-handlers.d.ts.map +1 -0
  312. package/lib/types/ink/events/event-handlers.js +30 -0
  313. package/lib/types/ink/events/event.d.ts +19 -0
  314. package/lib/types/ink/events/event.d.ts.map +1 -0
  315. package/lib/types/ink/events/event.js +22 -0
  316. package/lib/types/ink/events/focus-event.d.ts +19 -0
  317. package/lib/types/ink/events/focus-event.d.ts.map +1 -0
  318. package/lib/types/ink/events/focus-event.js +21 -0
  319. package/lib/types/ink/events/input-event.d.ts +53 -0
  320. package/lib/types/ink/events/input-event.d.ts.map +1 -0
  321. package/lib/types/ink/events/input-event.js +180 -0
  322. package/lib/types/ink/events/keyboard-event.d.ts +40 -0
  323. package/lib/types/ink/events/keyboard-event.d.ts.map +1 -0
  324. package/lib/types/ink/events/keyboard-event.js +65 -0
  325. package/lib/types/ink/events/paste-event.d.ts +11 -0
  326. package/lib/types/ink/events/paste-event.d.ts.map +1 -0
  327. package/lib/types/ink/events/paste-event.js +13 -0
  328. package/lib/types/ink/events/resize-event.d.ts +13 -0
  329. package/lib/types/ink/events/resize-event.d.ts.map +1 -0
  330. package/lib/types/ink/events/resize-event.js +16 -0
  331. package/lib/types/ink/events/terminal-event.d.ts +112 -0
  332. package/lib/types/ink/events/terminal-event.d.ts.map +1 -0
  333. package/lib/types/ink/events/terminal-event.js +131 -0
  334. package/lib/types/ink/events/terminal-focus-event.d.ts +21 -0
  335. package/lib/types/ink/events/terminal-focus-event.d.ts.map +1 -0
  336. package/lib/types/ink/events/terminal-focus-event.js +18 -0
  337. package/lib/types/ink/focus.d.ts +74 -0
  338. package/lib/types/ink/focus.d.ts.map +1 -0
  339. package/lib/types/ink/focus.js +188 -0
  340. package/lib/types/ink/frame.d.ts +119 -0
  341. package/lib/types/ink/frame.d.ts.map +1 -0
  342. package/lib/types/ink/frame.js +43 -0
  343. package/lib/types/ink/get-max-width.d.ts +20 -0
  344. package/lib/types/ink/get-max-width.d.ts.map +1 -0
  345. package/lib/types/ink/get-max-width.js +25 -0
  346. package/lib/types/ink/hit-test.d.ts +47 -0
  347. package/lib/types/ink/hit-test.d.ts.map +1 -0
  348. package/lib/types/ink/hit-test.js +126 -0
  349. package/lib/types/ink/hooks/use-animation-frame.d.ts +27 -0
  350. package/lib/types/ink/hooks/use-animation-frame.d.ts.map +1 -0
  351. package/lib/types/ink/hooks/use-animation-frame.js +48 -0
  352. package/lib/types/ink/hooks/use-app.d.ts +8 -0
  353. package/lib/types/ink/hooks/use-app.d.ts.map +1 -0
  354. package/lib/types/ink/hooks/use-app.js +8 -0
  355. package/lib/types/ink/hooks/use-copy-on-select.d.ts +22 -0
  356. package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -0
  357. package/lib/types/ink/hooks/use-copy-on-select.js +40 -0
  358. package/lib/types/ink/hooks/use-declared-cursor.d.ts +31 -0
  359. package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -0
  360. package/lib/types/ink/hooks/use-declared-cursor.js +65 -0
  361. package/lib/types/ink/hooks/use-input.d.ts +41 -0
  362. package/lib/types/ink/hooks/use-input.d.ts.map +1 -0
  363. package/lib/types/ink/hooks/use-input.js +73 -0
  364. package/lib/types/ink/hooks/use-interval.d.ts +23 -0
  365. package/lib/types/ink/hooks/use-interval.d.ts.map +1 -0
  366. package/lib/types/ink/hooks/use-interval.js +58 -0
  367. package/lib/types/ink/hooks/use-search-highlight.d.ts +34 -0
  368. package/lib/types/ink/hooks/use-search-highlight.d.ts.map +1 -0
  369. package/lib/types/ink/hooks/use-search-highlight.js +35 -0
  370. package/lib/types/ink/hooks/use-selection.d.ts +44 -0
  371. package/lib/types/ink/hooks/use-selection.d.ts.map +1 -0
  372. package/lib/types/ink/hooks/use-selection.js +64 -0
  373. package/lib/types/ink/hooks/use-stdin.d.ts +8 -0
  374. package/lib/types/ink/hooks/use-stdin.d.ts.map +1 -0
  375. package/lib/types/ink/hooks/use-stdin.js +8 -0
  376. package/lib/types/ink/hooks/use-tab-status.d.ts +18 -0
  377. package/lib/types/ink/hooks/use-tab-status.d.ts.map +1 -0
  378. package/lib/types/ink/hooks/use-tab-status.js +58 -0
  379. package/lib/types/ink/hooks/use-terminal-focus.d.ts +11 -0
  380. package/lib/types/ink/hooks/use-terminal-focus.d.ts.map +1 -0
  381. package/lib/types/ink/hooks/use-terminal-focus.js +15 -0
  382. package/lib/types/ink/hooks/use-terminal-size.d.ts +6 -0
  383. package/lib/types/ink/hooks/use-terminal-size.d.ts.map +1 -0
  384. package/lib/types/ink/hooks/use-terminal-size.js +12 -0
  385. package/lib/types/ink/hooks/use-terminal-title.d.ts +14 -0
  386. package/lib/types/ink/hooks/use-terminal-title.d.ts.map +1 -0
  387. package/lib/types/ink/hooks/use-terminal-title.js +30 -0
  388. package/lib/types/ink/hooks/use-terminal-viewport.d.ts +32 -0
  389. package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -0
  390. package/lib/types/ink/hooks/use-terminal-viewport.js +79 -0
  391. package/lib/types/ink/ink.d.ts +370 -0
  392. package/lib/types/ink/ink.d.ts.map +1 -0
  393. package/lib/types/ink/ink.js +1665 -0
  394. package/lib/types/ink/instances.d.ts +10 -0
  395. package/lib/types/ink/instances.d.ts.map +1 -0
  396. package/lib/types/ink/instances.js +13 -0
  397. package/lib/types/ink/layout/engine.d.ts +7 -0
  398. package/lib/types/ink/layout/engine.d.ts.map +1 -0
  399. package/lib/types/ink/layout/engine.js +8 -0
  400. package/lib/types/ink/layout/geometry.d.ts +86 -0
  401. package/lib/types/ink/layout/geometry.d.ts.map +1 -0
  402. package/lib/types/ink/layout/geometry.js +95 -0
  403. package/lib/types/ink/layout/node.d.ts +151 -0
  404. package/lib/types/ink/layout/node.d.ts.map +1 -0
  405. package/lib/types/ink/layout/node.js +72 -0
  406. package/lib/types/ink/layout/yoga.d.ts +69 -0
  407. package/lib/types/ink/layout/yoga.d.ts.map +1 -0
  408. package/lib/types/ink/layout/yoga.js +249 -0
  409. package/lib/types/ink/line-width-cache.d.ts +9 -0
  410. package/lib/types/ink/line-width-cache.d.ts.map +1 -0
  411. package/lib/types/ink/line-width-cache.js +45 -0
  412. package/lib/types/ink/log-update.d.ts +57 -0
  413. package/lib/types/ink/log-update.d.ts.map +1 -0
  414. package/lib/types/ink/log-update.js +710 -0
  415. package/lib/types/ink/measure-element.d.ts +19 -0
  416. package/lib/types/ink/measure-element.d.ts.map +1 -0
  417. package/lib/types/ink/measure-element.js +10 -0
  418. package/lib/types/ink/measure-text.d.ts +13 -0
  419. package/lib/types/ink/measure-text.d.ts.map +1 -0
  420. package/lib/types/ink/measure-text.js +38 -0
  421. package/lib/types/ink/node-cache.d.ts +33 -0
  422. package/lib/types/ink/node-cache.d.ts.map +1 -0
  423. package/lib/types/ink/node-cache.js +42 -0
  424. package/lib/types/ink/optimizer.d.ts +18 -0
  425. package/lib/types/ink/optimizer.d.ts.map +1 -0
  426. package/lib/types/ink/optimizer.js +83 -0
  427. package/lib/types/ink/output.d.ts +200 -0
  428. package/lib/types/ink/output.d.ts.map +1 -0
  429. package/lib/types/ink/output.js +663 -0
  430. package/lib/types/ink/parse-keypress.d.ts +132 -0
  431. package/lib/types/ink/parse-keypress.d.ts.map +1 -0
  432. package/lib/types/ink/parse-keypress.js +707 -0
  433. package/lib/types/ink/reconciler.d.ts +43 -0
  434. package/lib/types/ink/reconciler.d.ts.map +1 -0
  435. package/lib/types/ink/reconciler.js +413 -0
  436. package/lib/types/ink/render-border.d.ts +36 -0
  437. package/lib/types/ink/render-border.d.ts.map +1 -0
  438. package/lib/types/ink/render-border.js +143 -0
  439. package/lib/types/ink/render-node-to-output.d.ts +93 -0
  440. package/lib/types/ink/render-node-to-output.d.ts.map +1 -0
  441. package/lib/types/ink/render-node-to-output.js +1290 -0
  442. package/lib/types/ink/render-to-screen.d.ts +65 -0
  443. package/lib/types/ink/render-to-screen.d.ts.map +1 -0
  444. package/lib/types/ink/render-to-screen.js +189 -0
  445. package/lib/types/ink/renderer.d.ts +24 -0
  446. package/lib/types/ink/renderer.d.ts.map +1 -0
  447. package/lib/types/ink/renderer.js +136 -0
  448. package/lib/types/ink/root.d.ts +91 -0
  449. package/lib/types/ink/root.d.ts.map +1 -0
  450. package/lib/types/ink/root.js +93 -0
  451. package/lib/types/ink/screen.d.ts +443 -0
  452. package/lib/types/ink/screen.d.ts.map +1 -0
  453. package/lib/types/ink/screen.js +1295 -0
  454. package/lib/types/ink/searchHighlight.d.ts +25 -0
  455. package/lib/types/ink/searchHighlight.d.ts.map +1 -0
  456. package/lib/types/ink/searchHighlight.js +82 -0
  457. package/lib/types/ink/selection.d.ts +323 -0
  458. package/lib/types/ink/selection.d.ts.map +1 -0
  459. package/lib/types/ink/selection.js +881 -0
  460. package/lib/types/ink/squash-text-nodes.d.ts +30 -0
  461. package/lib/types/ink/squash-text-nodes.d.ts.map +1 -0
  462. package/lib/types/ink/squash-text-nodes.js +63 -0
  463. package/lib/types/ink/stringWidth.d.ts +11 -0
  464. package/lib/types/ink/stringWidth.d.ts.map +1 -0
  465. package/lib/types/ink/stringWidth.js +209 -0
  466. package/lib/types/ink/styles.d.ts +324 -0
  467. package/lib/types/ink/styles.d.ts.map +1 -0
  468. package/lib/types/ink/styles.js +307 -0
  469. package/lib/types/ink/supports-hyperlinks.d.ts +20 -0
  470. package/lib/types/ink/supports-hyperlinks.d.ts.map +1 -0
  471. package/lib/types/ink/supports-hyperlinks.js +44 -0
  472. package/lib/types/ink/tabstops.d.ts +9 -0
  473. package/lib/types/ink/tabstops.d.ts.map +1 -0
  474. package/lib/types/ink/tabstops.js +46 -0
  475. package/lib/types/ink/terminal-focus-state.d.ts +35 -0
  476. package/lib/types/ink/terminal-focus-state.d.ts.map +1 -0
  477. package/lib/types/ink/terminal-focus-state.js +57 -0
  478. package/lib/types/ink/terminal-querier.d.ts +161 -0
  479. package/lib/types/ink/terminal-querier.d.ts.map +1 -0
  480. package/lib/types/ink/terminal-querier.js +204 -0
  481. package/lib/types/ink/terminal.d.ts +80 -0
  482. package/lib/types/ink/terminal.d.ts.map +1 -0
  483. package/lib/types/ink/terminal.js +268 -0
  484. package/lib/types/ink/termio/ansi.d.ts +75 -0
  485. package/lib/types/ink/termio/ansi.d.ts.map +1 -0
  486. package/lib/types/ink/termio/ansi.js +79 -0
  487. package/lib/types/ink/termio/csi.d.ts +253 -0
  488. package/lib/types/ink/termio/csi.d.ts.map +1 -0
  489. package/lib/types/ink/termio/csi.js +347 -0
  490. package/lib/types/ink/termio/dec.d.ts +61 -0
  491. package/lib/types/ink/termio/dec.d.ts.map +1 -0
  492. package/lib/types/ink/termio/dec.js +76 -0
  493. package/lib/types/ink/termio/esc.d.ts +15 -0
  494. package/lib/types/ink/termio/esc.d.ts.map +1 -0
  495. package/lib/types/ink/termio/esc.js +57 -0
  496. package/lib/types/ink/termio/osc.d.ts +208 -0
  497. package/lib/types/ink/termio/osc.d.ts.map +1 -0
  498. package/lib/types/ink/termio/osc.js +466 -0
  499. package/lib/types/ink/termio/parser.d.ts +46 -0
  500. package/lib/types/ink/termio/parser.d.ts.map +1 -0
  501. package/lib/types/ink/termio/parser.js +366 -0
  502. package/lib/types/ink/termio/sgr.d.ts +17 -0
  503. package/lib/types/ink/termio/sgr.d.ts.map +1 -0
  504. package/lib/types/ink/termio/sgr.js +300 -0
  505. package/lib/types/ink/termio/tokenize.d.ts +50 -0
  506. package/lib/types/ink/termio/tokenize.d.ts.map +1 -0
  507. package/lib/types/ink/termio/tokenize.js +266 -0
  508. package/lib/types/ink/termio/types.d.ts +211 -0
  509. package/lib/types/ink/termio/types.d.ts.map +1 -0
  510. package/lib/types/ink/termio/types.js +68 -0
  511. package/lib/types/ink/termio.d.ts +25 -0
  512. package/lib/types/ink/termio.d.ts.map +1 -0
  513. package/lib/types/ink/termio.js +24 -0
  514. package/lib/types/ink/truncateToWidth.d.ts +7 -0
  515. package/lib/types/ink/truncateToWidth.d.ts.map +1 -0
  516. package/lib/types/ink/truncateToWidth.js +18 -0
  517. package/lib/types/ink/useTerminalNotification.d.ts +45 -0
  518. package/lib/types/ink/useTerminalNotification.d.ts.map +1 -0
  519. package/lib/types/ink/useTerminalNotification.js +70 -0
  520. package/lib/types/ink/warn.d.ts +7 -0
  521. package/lib/types/ink/warn.d.ts.map +1 -0
  522. package/lib/types/ink/warn.js +15 -0
  523. package/lib/types/ink/widest-line.d.ts +7 -0
  524. package/lib/types/ink/widest-line.d.ts.map +1 -0
  525. package/lib/types/ink/widest-line.js +19 -0
  526. package/lib/types/ink/wrap-text.d.ts +10 -0
  527. package/lib/types/ink/wrap-text.d.ts.map +1 -0
  528. package/lib/types/ink/wrap-text.js +61 -0
  529. package/lib/types/ink/wrapAnsi.d.ts +18 -0
  530. package/lib/types/ink/wrapAnsi.d.ts.map +1 -0
  531. package/lib/types/ink/wrapAnsi.js +16 -0
  532. package/lib/types/invariant.d.ts +20 -0
  533. package/lib/types/invariant.d.ts.map +1 -0
  534. package/lib/types/invariant.js +26 -0
  535. package/lib/types/modelPrefs.d.ts +37 -0
  536. package/lib/types/modelPrefs.d.ts.map +1 -0
  537. package/lib/types/modelPrefs.js +66 -0
  538. package/lib/types/modelRoute.d.ts +79 -0
  539. package/lib/types/modelRoute.d.ts.map +1 -0
  540. package/lib/types/modelRoute.js +96 -0
  541. package/lib/types/native-ts/yoga-layout/enums.d.ts +183 -0
  542. package/lib/types/native-ts/yoga-layout/enums.d.ts.map +1 -0
  543. package/lib/types/native-ts/yoga-layout/enums.js +150 -0
  544. package/lib/types/native-ts/yoga-layout/index.d.ts +788 -0
  545. package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -0
  546. package/lib/types/native-ts/yoga-layout/index.js +2571 -0
  547. package/lib/types/packaged-skills.d.ts +10 -0
  548. package/lib/types/packaged-skills.d.ts.map +1 -0
  549. package/lib/types/packaged-skills.js +63 -0
  550. package/lib/types/plugin.d.ts +33 -0
  551. package/lib/types/plugin.d.ts.map +1 -0
  552. package/lib/types/plugin.js +454 -0
  553. package/lib/types/presetPrefs.d.ts +29 -0
  554. package/lib/types/presetPrefs.d.ts.map +1 -0
  555. package/lib/types/presetPrefs.js +61 -0
  556. package/lib/types/presets.d.ts +110 -0
  557. package/lib/types/presets.d.ts.map +1 -0
  558. package/lib/types/presets.js +114 -0
  559. package/lib/types/questions.d.ts +97 -0
  560. package/lib/types/questions.d.ts.map +1 -0
  561. package/lib/types/questions.js +201 -0
  562. package/lib/types/screens/Chat.d.ts +23 -0
  563. package/lib/types/screens/Chat.d.ts.map +1 -0
  564. package/lib/types/screens/Chat.js +1263 -0
  565. package/lib/types/screens/StatusLine.d.ts +16 -0
  566. package/lib/types/screens/StatusLine.d.ts.map +1 -0
  567. package/lib/types/screens/StatusLine.js +105 -0
  568. package/lib/types/screens/StatusMetrics.d.ts +87 -0
  569. package/lib/types/screens/StatusMetrics.d.ts.map +1 -0
  570. package/lib/types/screens/StatusMetrics.js +252 -0
  571. package/lib/types/sessionHistory.d.ts +32 -0
  572. package/lib/types/sessionHistory.d.ts.map +1 -0
  573. package/lib/types/sessionHistory.js +87 -0
  574. package/lib/types/theme.d.ts +115 -0
  575. package/lib/types/theme.d.ts.map +1 -0
  576. package/lib/types/theme.js +300 -0
  577. package/lib/types/themePrefs.d.ts +28 -0
  578. package/lib/types/themePrefs.d.ts.map +1 -0
  579. package/lib/types/themePrefs.js +59 -0
  580. package/lib/types/ui.d.ts +28 -0
  581. package/lib/types/ui.d.ts.map +1 -0
  582. package/lib/types/ui.js +25 -0
  583. package/lib/types/update.d.ts +76 -0
  584. package/lib/types/update.d.ts.map +1 -0
  585. package/lib/types/update.js +203 -0
  586. package/lib/types/utils/clipboard.d.ts +43 -0
  587. package/lib/types/utils/clipboard.d.ts.map +1 -0
  588. package/lib/types/utils/clipboard.js +82 -0
  589. package/lib/types/utils/debug.d.ts +8 -0
  590. package/lib/types/utils/debug.d.ts.map +1 -0
  591. package/lib/types/utils/debug.js +12 -0
  592. package/lib/types/utils/earlyInput.d.ts +7 -0
  593. package/lib/types/utils/earlyInput.d.ts.map +1 -0
  594. package/lib/types/utils/earlyInput.js +6 -0
  595. package/lib/types/utils/env.d.ts +10 -0
  596. package/lib/types/utils/env.d.ts.map +1 -0
  597. package/lib/types/utils/env.js +9 -0
  598. package/lib/types/utils/envUtils.d.ts +8 -0
  599. package/lib/types/utils/envUtils.d.ts.map +1 -0
  600. package/lib/types/utils/envUtils.js +13 -0
  601. package/lib/types/utils/execFileNoThrow.d.ts +34 -0
  602. package/lib/types/utils/execFileNoThrow.d.ts.map +1 -0
  603. package/lib/types/utils/execFileNoThrow.js +31 -0
  604. package/lib/types/utils/fullscreen.d.ts +8 -0
  605. package/lib/types/utils/fullscreen.d.ts.map +1 -0
  606. package/lib/types/utils/fullscreen.js +10 -0
  607. package/lib/types/utils/intl.d.ts +7 -0
  608. package/lib/types/utils/intl.d.ts.map +1 -0
  609. package/lib/types/utils/intl.js +9 -0
  610. package/lib/types/utils/loaded-context.d.ts +20 -0
  611. package/lib/types/utils/loaded-context.d.ts.map +1 -0
  612. package/lib/types/utils/loaded-context.js +36 -0
  613. package/lib/types/utils/log.d.ts +7 -0
  614. package/lib/types/utils/log.d.ts.map +1 -0
  615. package/lib/types/utils/log.js +9 -0
  616. package/lib/types/utils/mentions.d.ts +30 -0
  617. package/lib/types/utils/mentions.d.ts.map +1 -0
  618. package/lib/types/utils/mentions.js +72 -0
  619. package/lib/types/utils/narration.d.ts +11 -0
  620. package/lib/types/utils/narration.d.ts.map +1 -0
  621. package/lib/types/utils/narration.js +16 -0
  622. package/lib/types/utils/semver.d.ts +9 -0
  623. package/lib/types/utils/semver.d.ts.map +1 -0
  624. package/lib/types/utils/semver.js +24 -0
  625. package/lib/types/utils/sliceAnsi.d.ts +12 -0
  626. package/lib/types/utils/sliceAnsi.d.ts.map +1 -0
  627. package/lib/types/utils/sliceAnsi.js +79 -0
  628. package/lib/types/working-activity.d.ts +19 -0
  629. package/lib/types/working-activity.d.ts.map +1 -0
  630. package/lib/types/working-activity.js +18 -0
  631. package/package.json +141 -0
  632. package/skills/audit/SKILL.md +24 -0
  633. package/skills/bug/SKILL.md +27 -0
  634. package/skills/pr-comments/SKILL.md +20 -0
  635. package/skills/practice/SKILL.md +22 -0
  636. package/skills/release-notes/SKILL.md +25 -0
  637. package/skills/review/SKILL.md +25 -0
  638. package/skills/vuln-check/SKILL.md +25 -0
@@ -0,0 +1,180 @@
1
+ import { nonAlphanumericKeys } from '../parse-keypress.js';
2
+ import { Event } from './event.js';
3
+ function parseKey(keypress) {
4
+ const key = {
5
+ upArrow: keypress.name === 'up',
6
+ downArrow: keypress.name === 'down',
7
+ leftArrow: keypress.name === 'left',
8
+ rightArrow: keypress.name === 'right',
9
+ pageDown: keypress.name === 'pagedown',
10
+ pageUp: keypress.name === 'pageup',
11
+ wheelUp: keypress.name === 'wheelup',
12
+ wheelDown: keypress.name === 'wheeldown',
13
+ home: keypress.name === 'home',
14
+ end: keypress.name === 'end',
15
+ return: keypress.name === 'return',
16
+ escape: keypress.name === 'escape',
17
+ fn: keypress.fn,
18
+ ctrl: keypress.ctrl,
19
+ shift: keypress.shift,
20
+ tab: keypress.name === 'tab',
21
+ backspace: keypress.name === 'backspace',
22
+ delete: keypress.name === 'delete',
23
+ // `parseKeypress` parses \u001B\u001B[A (meta + up arrow) as meta = false
24
+ // but with option = true, so we need to take this into account here
25
+ // to avoid breaking changes in Ink.
26
+ // TODO(vadimdemedes): consider removing this in the next major version.
27
+ meta: keypress.meta || keypress.name === 'escape' || keypress.option,
28
+ // Super (Cmd on macOS / Win key) — only arrives via kitty keyboard
29
+ // protocol CSI u sequences. Distinct from meta (Alt/Option) so
30
+ // bindings like cmd+c can be expressed separately from opt+c.
31
+ super: keypress.super,
32
+ };
33
+ let input = keypress.ctrl ? keypress.name : keypress.sequence;
34
+ // Handle undefined input case
35
+ if (input === undefined) {
36
+ input = '';
37
+ }
38
+ // When ctrl is set, keypress.name for space is the literal word "space".
39
+ // Convert to actual space character for consistency with the CSI u branch
40
+ // (which maps 'space' → ' '). Without this, ctrl+space leaks the literal
41
+ // word "space" into text input.
42
+ if (keypress.ctrl && input === 'space') {
43
+ input = ' ';
44
+ }
45
+ // Suppress unrecognized escape sequences that were parsed as function keys
46
+ // (matched by FN_KEY_RE) but have no name in the keyName map.
47
+ // Examples: ESC[25~ (F13/Right Alt on Windows), ESC[26~ (F14), etc.
48
+ // Without this, the ESC prefix is stripped below and the remainder (e.g.,
49
+ // "[25~") leaks into the input as literal text.
50
+ if (keypress.code && !keypress.name) {
51
+ input = '';
52
+ }
53
+ // Suppress ESC-less SGR mouse fragments. When a heavy React commit blocks
54
+ // the event loop past App's 50ms NORMAL_TIMEOUT flush, a CSI split across
55
+ // stdin chunks gets its buffered ESC flushed as a lone Escape key, and the
56
+ // continuation arrives as a text token with name='' — which falls through
57
+ // all of parseKeypress's ESC-anchored regexes and the nonAlphanumericKeys
58
+ // clear below (name is falsy). The fragment then leaks into the prompt as
59
+ // literal `[<64;74;16M`. This is the same defensive sink as the F13 guard
60
+ // above; the underlying tokenizer-flush race is upstream of this layer.
61
+ if (!keypress.name && /^\[<\d+;\d+;\d+[Mm]/.test(input)) {
62
+ input = '';
63
+ }
64
+ // Strip meta if it's still remaining after `parseKeypress`
65
+ // TODO(vadimdemedes): remove this in the next major version.
66
+ if (input.startsWith('\u001B')) {
67
+ input = input.slice(1);
68
+ }
69
+ // Track whether we've already processed this as a special sequence
70
+ // that converted input to the key name (CSI u or application keypad mode).
71
+ // For these, we don't want to clear input with nonAlphanumericKeys check.
72
+ let processedAsSpecialSequence = false;
73
+ // Handle CSI u sequences (Kitty keyboard protocol): after stripping ESC,
74
+ // we're left with "[codepoint;modifieru" (e.g., "[98;3u" for Alt+b).
75
+ // Use the parsed key name instead for input handling. Require a digit
76
+ // after [ — real CSI u is always [<digits>…u, and a bare startsWith('[')
77
+ // false-matches X10 mouse at row 85 (Cy = 85+32 = 'u'), leaking the
78
+ // literal text "mouse" into the prompt via processedAsSpecialSequence.
79
+ if (/^\[\d/.test(input) && input.endsWith('u')) {
80
+ if (!keypress.name) {
81
+ // Unmapped Kitty functional key (Caps Lock 57358, F13–F35, KP nav,
82
+ // bare modifiers, etc.) — keycodeToName() returned undefined. Swallow
83
+ // so the raw "[57358u" doesn't leak into the prompt. See #38781.
84
+ input = '';
85
+ }
86
+ else {
87
+ // 'space' → ' '; 'escape' → '' (key.escape carries it;
88
+ // processedAsSpecialSequence bypasses the nonAlphanumericKeys
89
+ // clear below, so we must handle it explicitly here);
90
+ // otherwise use key name.
91
+ input =
92
+ keypress.name === 'space'
93
+ ? ' '
94
+ : keypress.name === 'escape'
95
+ ? ''
96
+ : keypress.name;
97
+ }
98
+ processedAsSpecialSequence = true;
99
+ }
100
+ // Handle xterm modifyOtherKeys sequences: after stripping ESC, we're left
101
+ // with "[27;modifier;keycode~" (e.g., "[27;3;98~" for Alt+b). Same
102
+ // extraction as CSI u — without this, printable-char keycodes (single-letter
103
+ // names) skip the nonAlphanumericKeys clear and leak "[27;..." as input.
104
+ if (input.startsWith('[27;') && input.endsWith('~')) {
105
+ if (!keypress.name) {
106
+ // Unmapped modifyOtherKeys keycode — swallow for consistency with
107
+ // the CSI u handler above. Practically untriggerable today (xterm
108
+ // modifyOtherKeys only sends ASCII keycodes, all mapped), but
109
+ // guards against future terminal behavior.
110
+ input = '';
111
+ }
112
+ else {
113
+ input =
114
+ keypress.name === 'space'
115
+ ? ' '
116
+ : keypress.name === 'escape'
117
+ ? ''
118
+ : keypress.name;
119
+ }
120
+ processedAsSpecialSequence = true;
121
+ }
122
+ // Handle application keypad mode sequences: after stripping ESC,
123
+ // we're left with "O<letter>" (e.g., "Op" for numpad 0, "Oy" for numpad 9).
124
+ // Use the parsed key name (the digit character) for input handling.
125
+ if (input.startsWith('O') &&
126
+ input.length === 2 &&
127
+ keypress.name &&
128
+ keypress.name.length === 1) {
129
+ input = keypress.name;
130
+ processedAsSpecialSequence = true;
131
+ }
132
+ // Clear input for non-alphanumeric keys (arrows, function keys, etc.)
133
+ // Skip this for CSI u and application keypad mode sequences since
134
+ // those were already converted to their proper input characters.
135
+ if (!processedAsSpecialSequence &&
136
+ keypress.name &&
137
+ nonAlphanumericKeys.includes(keypress.name)) {
138
+ input = '';
139
+ }
140
+ // Set shift=true for uppercase letters (A-Z)
141
+ // Must check it's actually a letter, not just any char unchanged by toUpperCase
142
+ if (input.length === 1 &&
143
+ typeof input[0] === 'string' &&
144
+ input[0] >= 'A' &&
145
+ input[0] <= 'Z') {
146
+ key.shift = true;
147
+ }
148
+ return [key, input];
149
+ }
150
+ /**
151
+ * Event fired for each input chunk received from stdin (a typed character or
152
+ * a paste), carrying the parsed key flags and the text it produced.
153
+ */
154
+ export class InputEvent extends Event {
155
+ /**
156
+ * The raw parsed keypress this event was built from.
157
+ */
158
+ keypress;
159
+ /**
160
+ * Named-key flags describing which keys the keypress reports as pressed.
161
+ */
162
+ key;
163
+ /**
164
+ * The text input produced by this keypress ('' for non-printing keys).
165
+ */
166
+ input;
167
+ /** True when this input arrived as a bracketed paste (terminal paste —
168
+ * Ctrl+Shift+V / right-click) rather than typed characters. Handlers use
169
+ * this to insert paste content verbatim instead of treating newlines as
170
+ * Enter/submit. */
171
+ isPasted;
172
+ constructor(keypress) {
173
+ super();
174
+ const [key, input] = parseKey(keypress);
175
+ this.keypress = keypress;
176
+ this.key = key;
177
+ this.input = input;
178
+ this.isPasted = keypress.isPasted === true;
179
+ }
180
+ }
@@ -0,0 +1,40 @@
1
+ import type { ParsedKey } from '../parse-keypress.js';
2
+ import { TerminalEvent } from './terminal-event.js';
3
+ /**
4
+ * Keyboard event dispatched through the DOM tree via capture/bubble.
5
+ *
6
+ * Follows browser KeyboardEvent semantics: `key` is the literal character
7
+ * for printable keys ('a', '3', ' ', '/') and a multi-char name for
8
+ * special keys ('down', 'return', 'escape', 'f1'). The idiomatic
9
+ * printable-char check is `e.key.length === 1`.
10
+ */
11
+ export declare class KeyboardEvent extends TerminalEvent {
12
+ /**
13
+ * The pressed key: the literal character for printable keys ('a', '3', ' '),
14
+ * a multi-char name for special keys ('down', 'return', 'escape', 'f1').
15
+ */
16
+ readonly key: string;
17
+ /**
18
+ * Whether the Ctrl modifier was held.
19
+ */
20
+ readonly ctrl: boolean;
21
+ /**
22
+ * Whether the Shift modifier was held.
23
+ */
24
+ readonly shift: boolean;
25
+ /**
26
+ * Whether the Meta (Alt/Option) modifier was held.
27
+ */
28
+ readonly meta: boolean;
29
+ /**
30
+ * Whether the Super (Cmd/Win) modifier was held; only reported by the kitty
31
+ * keyboard protocol.
32
+ */
33
+ readonly superKey: boolean;
34
+ /**
35
+ * Whether the Fn modifier was held.
36
+ */
37
+ readonly fn: boolean;
38
+ constructor(parsedKey: ParsedKey);
39
+ }
40
+ //# sourceMappingURL=keyboard-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-event.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/keyboard-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;gBAER,SAAS,EAAE,SAAS;CAUjC"}
@@ -0,0 +1,65 @@
1
+ import { TerminalEvent } from './terminal-event.js';
2
+ /**
3
+ * Keyboard event dispatched through the DOM tree via capture/bubble.
4
+ *
5
+ * Follows browser KeyboardEvent semantics: `key` is the literal character
6
+ * for printable keys ('a', '3', ' ', '/') and a multi-char name for
7
+ * special keys ('down', 'return', 'escape', 'f1'). The idiomatic
8
+ * printable-char check is `e.key.length === 1`.
9
+ */
10
+ export class KeyboardEvent extends TerminalEvent {
11
+ /**
12
+ * The pressed key: the literal character for printable keys ('a', '3', ' '),
13
+ * a multi-char name for special keys ('down', 'return', 'escape', 'f1').
14
+ */
15
+ key;
16
+ /**
17
+ * Whether the Ctrl modifier was held.
18
+ */
19
+ ctrl;
20
+ /**
21
+ * Whether the Shift modifier was held.
22
+ */
23
+ shift;
24
+ /**
25
+ * Whether the Meta (Alt/Option) modifier was held.
26
+ */
27
+ meta;
28
+ /**
29
+ * Whether the Super (Cmd/Win) modifier was held; only reported by the kitty
30
+ * keyboard protocol.
31
+ */
32
+ superKey;
33
+ /**
34
+ * Whether the Fn modifier was held.
35
+ */
36
+ fn;
37
+ constructor(parsedKey) {
38
+ super('keydown', { bubbles: true, cancelable: true });
39
+ this.key = keyFromParsed(parsedKey);
40
+ this.ctrl = parsedKey.ctrl;
41
+ this.shift = parsedKey.shift;
42
+ this.meta = parsedKey.meta || parsedKey.option;
43
+ this.superKey = parsedKey.super;
44
+ this.fn = parsedKey.fn;
45
+ }
46
+ }
47
+ function keyFromParsed(parsed) {
48
+ const seq = parsed.sequence ?? '';
49
+ const name = parsed.name ?? '';
50
+ // Ctrl combos: sequence is a control byte (\x03 for ctrl+c), name is the
51
+ // letter. Browsers report e.key === 'c' with e.ctrlKey === true.
52
+ if (parsed.ctrl)
53
+ return name;
54
+ // Single printable char (space through ~, plus anything above ASCII):
55
+ // use the literal char. Browsers report e.key === '3', not 'Digit3'.
56
+ if (seq.length === 1) {
57
+ const code = seq.charCodeAt(0);
58
+ if (code >= 0x20 && code !== 0x7f)
59
+ return seq;
60
+ }
61
+ // Special keys (arrows, F-keys, return, tab, escape, etc.): sequence is
62
+ // either an escape sequence (\x1b[B) or a control byte (\r, \t), so use
63
+ // the parsed name. Browsers report e.key === 'ArrowDown'.
64
+ return name || seq;
65
+ }
@@ -0,0 +1,11 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Terminal paste event (bracketed-paste protocol). Not yet dispatched by the
4
+ * ported core; declared for the event-handler props surface.
5
+ */
6
+ export declare class PasteEvent extends Event {
7
+ /** The pasted text content. */
8
+ readonly data: string;
9
+ constructor(data: string);
10
+ }
11
+ //# sourceMappingURL=paste-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste-event.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/paste-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAIzB"}
@@ -0,0 +1,13 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Terminal paste event (bracketed-paste protocol). Not yet dispatched by the
4
+ * ported core; declared for the event-handler props surface.
5
+ */
6
+ export class PasteEvent extends Event {
7
+ /** The pasted text content. */
8
+ data;
9
+ constructor(data) {
10
+ super();
11
+ this.data = data;
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Terminal resize event. Not yet dispatched by the ported core; declared for
4
+ * the event-handler props surface.
5
+ */
6
+ export declare class ResizeEvent extends Event {
7
+ /** The new terminal width in columns. */
8
+ readonly columns: number;
9
+ /** The new terminal height in rows. */
10
+ readonly rows: number;
11
+ constructor(columns: number, rows: number);
12
+ }
13
+ //# sourceMappingURL=resize-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize-event.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/resize-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C"}
@@ -0,0 +1,16 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Terminal resize event. Not yet dispatched by the ported core; declared for
4
+ * the event-handler props surface.
5
+ */
6
+ export class ResizeEvent extends Event {
7
+ /** The new terminal width in columns. */
8
+ columns;
9
+ /** The new terminal height in rows. */
10
+ rows;
11
+ constructor(columns, rows) {
12
+ super();
13
+ this.columns = columns;
14
+ this.rows = rows;
15
+ }
16
+ }
@@ -0,0 +1,112 @@
1
+ import { Event } from './event.js';
2
+ type EventPhase = 'none' | 'capturing' | 'at_target' | 'bubbling';
3
+ type TerminalEventInit = {
4
+ bubbles?: boolean;
5
+ cancelable?: boolean;
6
+ };
7
+ /**
8
+ * Base class for all terminal events with DOM-style propagation.
9
+ *
10
+ * Extends Event so existing event types (ClickEvent, InputEvent,
11
+ * TerminalFocusEvent) share a common ancestor and can migrate later.
12
+ *
13
+ * Mirrors the browser's Event API: target, currentTarget, eventPhase,
14
+ * stopPropagation(), preventDefault(), timeStamp.
15
+ */
16
+ export declare class TerminalEvent extends Event {
17
+ /**
18
+ * The event type name, e.g. 'keydown', 'focus', or 'resize'.
19
+ */
20
+ readonly type: string;
21
+ /**
22
+ * The time the event was created, in milliseconds via `performance.now()`.
23
+ */
24
+ readonly timeStamp: number;
25
+ /**
26
+ * Whether the event bubbles from the target up through its ancestors.
27
+ */
28
+ readonly bubbles: boolean;
29
+ /**
30
+ * Whether `preventDefault()` can cancel the event's default behavior.
31
+ */
32
+ readonly cancelable: boolean;
33
+ private _target;
34
+ private _currentTarget;
35
+ private _eventPhase;
36
+ private _propagationStopped;
37
+ private _defaultPrevented;
38
+ constructor(type: string, init?: TerminalEventInit);
39
+ /**
40
+ * The node the event was dispatched to, or null before and after dispatch.
41
+ */
42
+ get target(): EventTarget | null;
43
+ /**
44
+ * The node whose listener is currently running, or null outside dispatch.
45
+ */
46
+ get currentTarget(): EventTarget | null;
47
+ /**
48
+ * The current propagation phase: 'none', 'capturing', 'at_target', or 'bubbling'.
49
+ */
50
+ get eventPhase(): EventPhase;
51
+ /**
52
+ * Whether `preventDefault()` was called on this event.
53
+ */
54
+ get defaultPrevented(): boolean;
55
+ /**
56
+ * Stop the event from reaching listeners on any further nodes; listeners on
57
+ * the current node still run.
58
+ */
59
+ stopPropagation(): void;
60
+ stopImmediatePropagation(): void;
61
+ /**
62
+ * Cancel the event's default behavior when the event is cancelable.
63
+ */
64
+ preventDefault(): void;
65
+ /**
66
+ * Set the node the event was dispatched to. Used by the dispatcher.
67
+ * @internal
68
+ * @param target - the dispatch target node.
69
+ */
70
+ _setTarget(target: EventTarget): void;
71
+ /**
72
+ * Set the node whose listener is currently running. Used by the dispatcher.
73
+ * @internal
74
+ * @param target - the current target node, or null outside dispatch.
75
+ */
76
+ _setCurrentTarget(target: EventTarget | null): void;
77
+ /**
78
+ * Set the current propagation phase. Used by the dispatcher.
79
+ * @internal
80
+ * @param phase - the phase to record.
81
+ */
82
+ _setEventPhase(phase: EventPhase): void;
83
+ /**
84
+ * Whether `stopPropagation()` was called on this event. Used by the dispatcher.
85
+ * @internal
86
+ * @returns true when propagation has been stopped.
87
+ */
88
+ _isPropagationStopped(): boolean;
89
+ /**
90
+ * Whether `stopImmediatePropagation()` was called on this event. Used by the
91
+ * dispatcher.
92
+ * @internal
93
+ * @returns true when immediate propagation has been stopped.
94
+ */
95
+ _isImmediatePropagationStopped(): boolean;
96
+ /**
97
+ * Hook for subclasses to do per-node setup before each handler fires.
98
+ * Default is a no-op.
99
+ * @param _target - the node the next listener belongs to.
100
+ */
101
+ _prepareForTarget(_target: EventTarget): void;
102
+ }
103
+ /**
104
+ * A node in the component tree that can receive events: its parent node and
105
+ * its per-event-type handler maps.
106
+ */
107
+ export type EventTarget = {
108
+ parentNode: EventTarget | undefined;
109
+ _eventHandlers?: Record<string, unknown>;
110
+ };
111
+ export {};
112
+ //# sourceMappingURL=terminal-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-event.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/terminal-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,KAAK,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAEjE,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAE5B,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,iBAAiB,CAAQ;gBAErB,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB;IAQlD;;OAEG;IACH,IAAI,MAAM,IAAI,WAAW,GAAG,IAAI,CAE/B;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;OAGG;IACH,eAAe,IAAI,IAAI;IAId,wBAAwB,IAAI,IAAI;IAKzC;;OAEG;IACH,cAAc,IAAI,IAAI;IAQtB;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIrC;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAInD;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIvC;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;;;;OAKG;IACH,8BAA8B,IAAI,OAAO;IAIzC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAC9C;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC,CAAA"}
@@ -0,0 +1,131 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Base class for all terminal events with DOM-style propagation.
4
+ *
5
+ * Extends Event so existing event types (ClickEvent, InputEvent,
6
+ * TerminalFocusEvent) share a common ancestor and can migrate later.
7
+ *
8
+ * Mirrors the browser's Event API: target, currentTarget, eventPhase,
9
+ * stopPropagation(), preventDefault(), timeStamp.
10
+ */
11
+ export class TerminalEvent extends Event {
12
+ /**
13
+ * The event type name, e.g. 'keydown', 'focus', or 'resize'.
14
+ */
15
+ type;
16
+ /**
17
+ * The time the event was created, in milliseconds via `performance.now()`.
18
+ */
19
+ timeStamp;
20
+ /**
21
+ * Whether the event bubbles from the target up through its ancestors.
22
+ */
23
+ bubbles;
24
+ /**
25
+ * Whether `preventDefault()` can cancel the event's default behavior.
26
+ */
27
+ cancelable;
28
+ _target = null;
29
+ _currentTarget = null;
30
+ _eventPhase = 'none';
31
+ _propagationStopped = false;
32
+ _defaultPrevented = false;
33
+ constructor(type, init) {
34
+ super();
35
+ this.type = type;
36
+ this.timeStamp = performance.now();
37
+ this.bubbles = init?.bubbles ?? true;
38
+ this.cancelable = init?.cancelable ?? true;
39
+ }
40
+ /**
41
+ * The node the event was dispatched to, or null before and after dispatch.
42
+ */
43
+ get target() {
44
+ return this._target;
45
+ }
46
+ /**
47
+ * The node whose listener is currently running, or null outside dispatch.
48
+ */
49
+ get currentTarget() {
50
+ return this._currentTarget;
51
+ }
52
+ /**
53
+ * The current propagation phase: 'none', 'capturing', 'at_target', or 'bubbling'.
54
+ */
55
+ get eventPhase() {
56
+ return this._eventPhase;
57
+ }
58
+ /**
59
+ * Whether `preventDefault()` was called on this event.
60
+ */
61
+ get defaultPrevented() {
62
+ return this._defaultPrevented;
63
+ }
64
+ /**
65
+ * Stop the event from reaching listeners on any further nodes; listeners on
66
+ * the current node still run.
67
+ */
68
+ stopPropagation() {
69
+ this._propagationStopped = true;
70
+ }
71
+ stopImmediatePropagation() {
72
+ super.stopImmediatePropagation();
73
+ this._propagationStopped = true;
74
+ }
75
+ /**
76
+ * Cancel the event's default behavior when the event is cancelable.
77
+ */
78
+ preventDefault() {
79
+ if (this.cancelable) {
80
+ this._defaultPrevented = true;
81
+ }
82
+ }
83
+ // -- Internal setters used by the Dispatcher
84
+ /**
85
+ * Set the node the event was dispatched to. Used by the dispatcher.
86
+ * @internal
87
+ * @param target - the dispatch target node.
88
+ */
89
+ _setTarget(target) {
90
+ this._target = target;
91
+ }
92
+ /**
93
+ * Set the node whose listener is currently running. Used by the dispatcher.
94
+ * @internal
95
+ * @param target - the current target node, or null outside dispatch.
96
+ */
97
+ _setCurrentTarget(target) {
98
+ this._currentTarget = target;
99
+ }
100
+ /**
101
+ * Set the current propagation phase. Used by the dispatcher.
102
+ * @internal
103
+ * @param phase - the phase to record.
104
+ */
105
+ _setEventPhase(phase) {
106
+ this._eventPhase = phase;
107
+ }
108
+ /**
109
+ * Whether `stopPropagation()` was called on this event. Used by the dispatcher.
110
+ * @internal
111
+ * @returns true when propagation has been stopped.
112
+ */
113
+ _isPropagationStopped() {
114
+ return this._propagationStopped;
115
+ }
116
+ /**
117
+ * Whether `stopImmediatePropagation()` was called on this event. Used by the
118
+ * dispatcher.
119
+ * @internal
120
+ * @returns true when immediate propagation has been stopped.
121
+ */
122
+ _isImmediatePropagationStopped() {
123
+ return this.didStopImmediatePropagation();
124
+ }
125
+ /**
126
+ * Hook for subclasses to do per-node setup before each handler fires.
127
+ * Default is a no-op.
128
+ * @param _target - the node the next listener belongs to.
129
+ */
130
+ _prepareForTarget(_target) { }
131
+ }
@@ -0,0 +1,21 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * The focus change kind: 'terminalfocus' when the terminal gains focus,
4
+ * 'terminalblur' when it loses focus.
5
+ */
6
+ export type TerminalFocusEventType = 'terminalfocus' | 'terminalblur';
7
+ /**
8
+ * Event fired when the terminal window gains or loses focus.
9
+ *
10
+ * Uses DECSET 1004 focus reporting - the terminal sends:
11
+ * - CSI I (\x1b[I) when the terminal gains focus
12
+ * - CSI O (\x1b[O) when the terminal loses focus
13
+ */
14
+ export declare class TerminalFocusEvent extends Event {
15
+ /**
16
+ * The focus change kind, 'terminalfocus' or 'terminalblur'.
17
+ */
18
+ readonly type: TerminalFocusEventType;
19
+ constructor(type: TerminalFocusEventType);
20
+ }
21
+ //# sourceMappingURL=terminal-focus-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-focus-event.d.ts","sourceRoot":"","sources":["../../../../src/ink/events/terminal-focus-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,cAAc,CAAA;AAErE;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;gBAEzB,IAAI,EAAE,sBAAsB;CAIzC"}
@@ -0,0 +1,18 @@
1
+ import { Event } from './event.js';
2
+ /**
3
+ * Event fired when the terminal window gains or loses focus.
4
+ *
5
+ * Uses DECSET 1004 focus reporting - the terminal sends:
6
+ * - CSI I (\x1b[I) when the terminal gains focus
7
+ * - CSI O (\x1b[O) when the terminal loses focus
8
+ */
9
+ export class TerminalFocusEvent extends Event {
10
+ /**
11
+ * The focus change kind, 'terminalfocus' or 'terminalblur'.
12
+ */
13
+ type;
14
+ constructor(type) {
15
+ super();
16
+ this.type = type;
17
+ }
18
+ }