@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,269 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { c as _c } from "react/compiler-runtime";
3
+ import React from 'react';
4
+ import Link from './components/Link.js';
5
+ import Text from './components/Text.js';
6
+ import { Parser } from './termio.js';
7
+ /**
8
+ * Component that parses ANSI escape codes and renders them using Text components.
9
+ *
10
+ * Use this as an escape hatch when you have pre-formatted ANSI strings from
11
+ * external tools (like cli-highlight) that need to be rendered in Ink.
12
+ *
13
+ * Memoized to prevent re-renders when parent changes but children string is the same.
14
+ */
15
+ export const Ansi = React.memo(function Ansi(t0) {
16
+ const $ = _c(12);
17
+ const { children, dimColor } = t0;
18
+ if (typeof children !== "string") {
19
+ let t1;
20
+ if ($[0] !== children || $[1] !== dimColor) {
21
+ t1 = dimColor ? _jsx(Text, { dim: true, children: String(children) }) : _jsx(Text, { children: String(children) });
22
+ $[0] = children;
23
+ $[1] = dimColor;
24
+ $[2] = t1;
25
+ }
26
+ else {
27
+ t1 = $[2];
28
+ }
29
+ return t1;
30
+ }
31
+ if (children === "") {
32
+ return null;
33
+ }
34
+ let t1;
35
+ let t2;
36
+ if ($[3] !== children || $[4] !== dimColor) {
37
+ t2 = Symbol.for("react.early_return_sentinel");
38
+ bb0: {
39
+ const spans = parseToSpans(children);
40
+ if (spans.length === 0) {
41
+ t2 = null;
42
+ break bb0;
43
+ }
44
+ if (spans.length === 1 && !hasAnyProps(spans[0].props)) {
45
+ t2 = dimColor ? _jsx(Text, { dim: true, children: spans[0].text }) : _jsx(Text, { children: spans[0].text });
46
+ break bb0;
47
+ }
48
+ let t3;
49
+ if ($[7] !== dimColor) {
50
+ t3 = (span, i) => {
51
+ const hyperlink = span.props.hyperlink;
52
+ if (dimColor) {
53
+ span.props.dim = true;
54
+ }
55
+ const hasTextProps = hasAnyTextProps(span.props);
56
+ if (hyperlink) {
57
+ return hasTextProps ? _jsx(Link, { url: hyperlink, children: _jsx(StyledText, { color: span.props.color, backgroundColor: span.props.backgroundColor, dim: span.props.dim, bold: span.props.bold, italic: span.props.italic, underline: span.props.underline, strikethrough: span.props.strikethrough, inverse: span.props.inverse, children: span.text }) }, i) : _jsx(Link, { url: hyperlink, children: span.text }, i);
58
+ }
59
+ return hasTextProps ? _jsx(StyledText, { color: span.props.color, backgroundColor: span.props.backgroundColor, dim: span.props.dim, bold: span.props.bold, italic: span.props.italic, underline: span.props.underline, strikethrough: span.props.strikethrough, inverse: span.props.inverse, children: span.text }, i) : span.text;
60
+ };
61
+ $[7] = dimColor;
62
+ $[8] = t3;
63
+ }
64
+ else {
65
+ t3 = $[8];
66
+ }
67
+ t1 = spans.map(t3);
68
+ }
69
+ $[3] = children;
70
+ $[4] = dimColor;
71
+ $[5] = t1;
72
+ $[6] = t2;
73
+ }
74
+ else {
75
+ t1 = $[5];
76
+ t2 = $[6];
77
+ }
78
+ if (t2 !== Symbol.for("react.early_return_sentinel")) {
79
+ return t2;
80
+ }
81
+ const content = t1;
82
+ let t3;
83
+ if ($[9] !== content || $[10] !== dimColor) {
84
+ t3 = dimColor ? _jsx(Text, { dim: true, children: content }) : _jsx(Text, { children: content });
85
+ $[9] = content;
86
+ $[10] = dimColor;
87
+ $[11] = t3;
88
+ }
89
+ else {
90
+ t3 = $[11];
91
+ }
92
+ return t3;
93
+ });
94
+ /**
95
+ * Parse an ANSI string into spans using the termio parser.
96
+ */
97
+ function parseToSpans(input) {
98
+ const parser = new Parser();
99
+ const actions = parser.feed(input);
100
+ const spans = [];
101
+ let currentHyperlink;
102
+ for (const action of actions) {
103
+ if (action.type === 'link') {
104
+ if (action.action.type === 'start') {
105
+ currentHyperlink = action.action.url;
106
+ }
107
+ else {
108
+ currentHyperlink = undefined;
109
+ }
110
+ continue;
111
+ }
112
+ if (action.type === 'text') {
113
+ const text = action.graphemes.map(g => g.value).join('');
114
+ if (!text)
115
+ continue;
116
+ const props = textStyleToSpanProps(action.style);
117
+ if (currentHyperlink) {
118
+ props.hyperlink = currentHyperlink;
119
+ }
120
+ // Try to merge with previous span if props match
121
+ const lastSpan = spans[spans.length - 1];
122
+ if (lastSpan && propsEqual(lastSpan.props, props)) {
123
+ lastSpan.text += text;
124
+ }
125
+ else {
126
+ spans.push({
127
+ text,
128
+ props
129
+ });
130
+ }
131
+ }
132
+ }
133
+ return spans;
134
+ }
135
+ /**
136
+ * Convert termio's TextStyle to SpanProps.
137
+ */
138
+ function textStyleToSpanProps(style) {
139
+ const props = {};
140
+ if (style.bold)
141
+ props.bold = true;
142
+ if (style.dim)
143
+ props.dim = true;
144
+ if (style.italic)
145
+ props.italic = true;
146
+ if (style.underline !== 'none')
147
+ props.underline = true;
148
+ if (style.strikethrough)
149
+ props.strikethrough = true;
150
+ if (style.inverse)
151
+ props.inverse = true;
152
+ const fgColor = colorToString(style.fg);
153
+ if (fgColor)
154
+ props.color = fgColor;
155
+ const bgColor = colorToString(style.bg);
156
+ if (bgColor)
157
+ props.backgroundColor = bgColor;
158
+ return props;
159
+ }
160
+ // Map termio named colors to the ansi: format
161
+ const NAMED_COLOR_MAP = {
162
+ black: 'ansi:black',
163
+ red: 'ansi:red',
164
+ green: 'ansi:green',
165
+ yellow: 'ansi:yellow',
166
+ blue: 'ansi:blue',
167
+ magenta: 'ansi:magenta',
168
+ cyan: 'ansi:cyan',
169
+ white: 'ansi:white',
170
+ brightBlack: 'ansi:blackBright',
171
+ brightRed: 'ansi:redBright',
172
+ brightGreen: 'ansi:greenBright',
173
+ brightYellow: 'ansi:yellowBright',
174
+ brightBlue: 'ansi:blueBright',
175
+ brightMagenta: 'ansi:magentaBright',
176
+ brightCyan: 'ansi:cyanBright',
177
+ brightWhite: 'ansi:whiteBright'
178
+ };
179
+ /**
180
+ * Convert termio's Color to the string format used by Ink.
181
+ */
182
+ function colorToString(color) {
183
+ switch (color.type) {
184
+ case 'named':
185
+ return NAMED_COLOR_MAP[color.name];
186
+ case 'indexed':
187
+ return `ansi256(${color.index})`;
188
+ case 'rgb':
189
+ return `rgb(${color.r},${color.g},${color.b})`;
190
+ case 'default':
191
+ return undefined;
192
+ }
193
+ }
194
+ /**
195
+ * Check if two SpanProps are equal for merging.
196
+ */
197
+ function propsEqual(a, b) {
198
+ return a.color === b.color && a.backgroundColor === b.backgroundColor && a.bold === b.bold && a.dim === b.dim && a.italic === b.italic && a.underline === b.underline && a.strikethrough === b.strikethrough && a.inverse === b.inverse && a.hyperlink === b.hyperlink;
199
+ }
200
+ function hasAnyProps(props) {
201
+ return props.color !== undefined || props.backgroundColor !== undefined || props.dim === true || props.bold === true || props.italic === true || props.underline === true || props.strikethrough === true || props.inverse === true || props.hyperlink !== undefined;
202
+ }
203
+ function hasAnyTextProps(props) {
204
+ return props.color !== undefined || props.backgroundColor !== undefined || props.dim === true || props.bold === true || props.italic === true || props.underline === true || props.strikethrough === true || props.inverse === true;
205
+ }
206
+ // Wrapper component that handles bold/dim mutual exclusivity for Text
207
+ function StyledText(t0) {
208
+ const $ = _c(14);
209
+ let bold;
210
+ let children;
211
+ let dim;
212
+ let rest;
213
+ if ($[0] !== t0) {
214
+ ({
215
+ bold,
216
+ dim,
217
+ children,
218
+ ...rest
219
+ } = t0);
220
+ $[0] = t0;
221
+ $[1] = bold;
222
+ $[2] = children;
223
+ $[3] = dim;
224
+ $[4] = rest;
225
+ }
226
+ else {
227
+ bold = $[1];
228
+ children = $[2];
229
+ dim = $[3];
230
+ rest = $[4];
231
+ }
232
+ if (dim) {
233
+ let t1;
234
+ if ($[5] !== children || $[6] !== rest) {
235
+ t1 = _jsx(Text, { ...rest, dim: true, children: children });
236
+ $[5] = children;
237
+ $[6] = rest;
238
+ $[7] = t1;
239
+ }
240
+ else {
241
+ t1 = $[7];
242
+ }
243
+ return t1;
244
+ }
245
+ if (bold) {
246
+ let t1;
247
+ if ($[8] !== children || $[9] !== rest) {
248
+ t1 = _jsx(Text, { ...rest, bold: true, children: children });
249
+ $[8] = children;
250
+ $[9] = rest;
251
+ $[10] = t1;
252
+ }
253
+ else {
254
+ t1 = $[10];
255
+ }
256
+ return t1;
257
+ }
258
+ let t1;
259
+ if ($[11] !== children || $[12] !== rest) {
260
+ t1 = _jsx(Text, { ...rest, children: children });
261
+ $[11] = children;
262
+ $[12] = rest;
263
+ $[13] = t1;
264
+ }
265
+ else {
266
+ t1 = $[13];
267
+ }
268
+ return t1;
269
+ }
@@ -0,0 +1,18 @@
1
+ type ClusteredChar = {
2
+ value: string;
3
+ width: number;
4
+ styleId: number;
5
+ hyperlink: string | undefined;
6
+ };
7
+ /**
8
+ * Reorder an array of ClusteredChars from logical order to visual order
9
+ * using the Unicode Bidi Algorithm. Active on terminals that lack native
10
+ * bidi support (Windows Terminal, conhost, WSL).
11
+ *
12
+ * Returns the same array on bidi-capable terminals (no-op).
13
+ * @param characters - clustered chars in logical order.
14
+ * @returns the characters in visual order, or the same array when no reordering applies.
15
+ */
16
+ export declare function reorderBidi(characters: ClusteredChar[]): ClusteredChar[];
17
+ export {};
18
+ //# sourceMappingURL=bidi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bidi.d.ts","sourceRoot":"","sources":["../../../src/ink/bidi.ts"],"names":[],"mappings":"AAkBA,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B,CAAA;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAoDxE"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Bidirectional text reordering for terminal rendering.
3
+ *
4
+ * Terminals on Windows do not implement the Unicode Bidi Algorithm,
5
+ * so RTL text (Hebrew, Arabic, etc.) appears reversed. This module
6
+ * applies the bidi algorithm to reorder ClusteredChar arrays from
7
+ * logical order to visual order before Ink's LTR cell placement loop.
8
+ *
9
+ * On macOS terminals (Terminal.app, iTerm2) bidi works natively.
10
+ * Windows Terminal (including WSL) does not implement bidi
11
+ * (https://github.com/microsoft/terminal/issues/538).
12
+ *
13
+ * Detection: Windows Terminal sets WT_SESSION; native Windows cmd/conhost
14
+ * also lacks bidi. We enable bidi reordering when running on Windows or
15
+ * inside Windows Terminal (covers WSL).
16
+ */
17
+ import bidiFactory from 'bidi-js';
18
+ let bidiInstance;
19
+ let needsSoftwareBidi;
20
+ function needsBidi() {
21
+ if (needsSoftwareBidi === undefined) {
22
+ needsSoftwareBidi =
23
+ process.platform === 'win32' ||
24
+ typeof process.env['WT_SESSION'] === 'string' || // WSL in Windows Terminal
25
+ process.env['TERM_PROGRAM'] === 'vscode'; // VS Code integrated terminal (xterm.js)
26
+ }
27
+ return needsSoftwareBidi;
28
+ }
29
+ function getBidi() {
30
+ if (!bidiInstance) {
31
+ bidiInstance = bidiFactory();
32
+ }
33
+ return bidiInstance;
34
+ }
35
+ /**
36
+ * Reorder an array of ClusteredChars from logical order to visual order
37
+ * using the Unicode Bidi Algorithm. Active on terminals that lack native
38
+ * bidi support (Windows Terminal, conhost, WSL).
39
+ *
40
+ * Returns the same array on bidi-capable terminals (no-op).
41
+ * @param characters - clustered chars in logical order.
42
+ * @returns the characters in visual order, or the same array when no reordering applies.
43
+ */
44
+ export function reorderBidi(characters) {
45
+ if (!needsBidi() || characters.length === 0) {
46
+ return characters;
47
+ }
48
+ // Build a plain string from the clustered chars to run through bidi
49
+ const plainText = characters.map(c => c.value).join('');
50
+ // Check if there are any RTL characters — skip bidi if pure LTR
51
+ if (!hasRTLCharacters(plainText)) {
52
+ return characters;
53
+ }
54
+ const bidi = getBidi();
55
+ const { levels } = bidi.getEmbeddingLevels(plainText, 'auto');
56
+ // Map bidi levels back to ClusteredChar indices.
57
+ // Each ClusteredChar may be multiple code units in the joined string.
58
+ const charLevels = [];
59
+ let offset = 0;
60
+ for (let i = 0; i < characters.length; i++) {
61
+ charLevels.push(levels[offset]);
62
+ offset += characters[i].value.length;
63
+ }
64
+ // Get reorder segments from bidi-js, but we need to work at the
65
+ // ClusteredChar level, not the string level. We'll implement the
66
+ // standard bidi reordering: find the max level, then for each level
67
+ // from max down to 1, reverse all contiguous runs >= that level.
68
+ const reordered = [...characters];
69
+ const maxLevel = Math.max(...charLevels);
70
+ for (let level = maxLevel; level >= 1; level--) {
71
+ let i = 0;
72
+ while (i < reordered.length) {
73
+ if (charLevels[i] >= level) {
74
+ // Find the end of this run
75
+ let j = i + 1;
76
+ while (j < reordered.length && charLevels[j] >= level) {
77
+ j++;
78
+ }
79
+ // Reverse the run in both arrays
80
+ reverseRange(reordered, i, j - 1);
81
+ reverseRangeNumbers(charLevels, i, j - 1);
82
+ i = j;
83
+ }
84
+ else {
85
+ i++;
86
+ }
87
+ }
88
+ }
89
+ return reordered;
90
+ }
91
+ function reverseRange(arr, start, end) {
92
+ while (start < end) {
93
+ const temp = arr[start];
94
+ arr[start] = arr[end];
95
+ arr[end] = temp;
96
+ start++;
97
+ end--;
98
+ }
99
+ }
100
+ function reverseRangeNumbers(arr, start, end) {
101
+ while (start < end) {
102
+ const temp = arr[start];
103
+ arr[start] = arr[end];
104
+ arr[end] = temp;
105
+ start++;
106
+ end--;
107
+ }
108
+ }
109
+ /**
110
+ * Quick check for RTL characters (Hebrew, Arabic, and related scripts).
111
+ * Avoids running the full bidi algorithm on pure-LTR text.
112
+ */
113
+ function hasRTLCharacters(text) {
114
+ // Hebrew: U+0590-U+05FF, U+FB1D-U+FB4F
115
+ // Arabic: U+0600-U+06FF, U+0750-U+077F, U+08A0-U+08FF, U+FB50-U+FDFF, U+FE70-U+FEFF
116
+ // Thaana: U+0780-U+07BF
117
+ // Syriac: U+0700-U+074F
118
+ return /[\u0590-\u05FF\uFB1D-\uFB4F\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\u0780-\u07BF\u0700-\u074F]/u.test(text);
119
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Cross-platform terminal clearing with scrollback support.
3
+ * Detects modern terminals that support ESC[3J for clearing scrollback.
4
+ */
5
+ /**
6
+ * Returns the ANSI escape sequence to blank the screen while PRESERVING the
7
+ * scrollback (user-scrolled history).
8
+ *
9
+ * NOT using ESC[2J / ESC[3J: inside a DEC 2026 sync-output block (BSU/ESU)
10
+ * Windows Terminal snaps the viewport back to the top on those sequences
11
+ * (claude-code#35580), and dsh-tui's full resets run inside sync blocks.
12
+ * Scrolling the content far above the viewport (CSI <n> S) blanks the
13
+ * screen the same way — everything is pushed into the scrollback, the
14
+ * viewport shows empty rows — without moving the viewport.
15
+ * @returns the escape sequence that pushes content into the scrollback and homes the cursor.
16
+ */
17
+ export declare function getClearTerminalSequence(rows?: number): string;
18
+ /**
19
+ * Clears the terminal screen. On supported terminals, also clears scrollback.
20
+ */
21
+ export declare const clearTerminal: string;
22
+ //# sourceMappingURL=clearTerminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearTerminal.d.ts","sourceRoot":"","sources":["../../../src/ink/clearTerminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmDH;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB9D;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,QAA6B,CAAA"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Cross-platform terminal clearing with scrollback support.
3
+ * Detects modern terminals that support ESC[3J for clearing scrollback.
4
+ */
5
+ import { CURSOR_HOME, csi, SGR_RESET, scrollUp, } from './termio/csi.js';
6
+ // HVP (Horizontal Vertical Position) - legacy Windows cursor home
7
+ const CURSOR_HOME_WINDOWS = csi(0, 'f');
8
+ function isWindowsTerminal() {
9
+ return process.platform === 'win32' && !!process.env.WT_SESSION;
10
+ }
11
+ function isMintty() {
12
+ // mintty 3.1.5+ sets TERM_PROGRAM to 'mintty'
13
+ if (process.env.TERM_PROGRAM === 'mintty') {
14
+ return true;
15
+ }
16
+ // GitBash/MSYS2/MINGW use mintty and set MSYSTEM
17
+ if (process.platform === 'win32' && process.env.MSYSTEM) {
18
+ return true;
19
+ }
20
+ return false;
21
+ }
22
+ function isModernWindowsTerminal() {
23
+ // Windows Terminal sets WT_SESSION environment variable
24
+ if (isWindowsTerminal()) {
25
+ return true;
26
+ }
27
+ // VS Code integrated terminal on Windows with ConPTY support
28
+ if (process.platform === 'win32' &&
29
+ process.env.TERM_PROGRAM === 'vscode' &&
30
+ process.env.TERM_PROGRAM_VERSION) {
31
+ return true;
32
+ }
33
+ // mintty (GitBash/MSYS2/Cygwin) supports modern escape sequences
34
+ if (isMintty()) {
35
+ return true;
36
+ }
37
+ return false;
38
+ }
39
+ /**
40
+ * Returns the ANSI escape sequence to blank the screen while PRESERVING the
41
+ * scrollback (user-scrolled history).
42
+ *
43
+ * NOT using ESC[2J / ESC[3J: inside a DEC 2026 sync-output block (BSU/ESU)
44
+ * Windows Terminal snaps the viewport back to the top on those sequences
45
+ * (claude-code#35580), and dsh-tui's full resets run inside sync blocks.
46
+ * Scrolling the content far above the viewport (CSI <n> S) blanks the
47
+ * screen the same way — everything is pushed into the scrollback, the
48
+ * viewport shows empty rows — without moving the viewport.
49
+ * @returns the escape sequence that pushes content into the scrollback and homes the cursor.
50
+ */
51
+ export function getClearTerminalSequence(rows) {
52
+ // SGR_RESET first: CSI S fills the scrolled-in rows with the CURRENT
53
+ // background color (BCE). Frame-end resets normally guarantee SGR=none,
54
+ // but a truncated frame (dropped bytes, interrupted write) can leave a
55
+ // colored background active — without the reset, this scroll floods the
56
+ // blanked viewport with that color (seen in the wild as a full-screen
57
+ // red wash, issue #10).
58
+ //
59
+ // Scroll by ONE viewport height, not a huge constant: blanking the screen
60
+ // only needs the visible rows pushed out. The former scrollUp(10000)
61
+ // overshot the terminal's finite scrollback capacity (Windows Terminal
62
+ // defaults to 9001 lines) and evicted the user's ENTIRE scroll history,
63
+ // replacing it with blank rows — the opposite of the "preserving the
64
+ // scrollback" intent documented above. xterm.js-family terminals splice
65
+ // on CSI S, so the overshoot also cost O(10000) buffer operations there.
66
+ const n = rows && rows > 0 ? rows : (process.stdout.rows ?? 80);
67
+ return SGR_RESET + scrollUp(n) + CURSOR_HOME;
68
+ }
69
+ /**
70
+ * Clears the terminal screen. On supported terminals, also clears scrollback.
71
+ */
72
+ export const clearTerminal = getClearTerminalSequence();
@@ -0,0 +1,33 @@
1
+ import type { Color, TextStyles } from './styles.js';
2
+ /** Whether chalk's color level was boosted to 3 for xterm.js terminals. */
3
+ export declare const CHALK_BOOSTED_FOR_XTERMJS: boolean;
4
+ /** Whether chalk's color level was clamped to 2 for tmux passthrough. */
5
+ export declare const CHALK_CLAMPED_FOR_TMUX: boolean;
6
+ /** Which part of a cell a color applies to: text or background. */
7
+ export type ColorType = 'foreground' | 'background';
8
+ /**
9
+ * Apply a raw color value to a string using chalk.
10
+ * @param str - the text to color.
11
+ * @param color - the raw color value (ansi:*, hex, ansi256, or rgb); empty or unparsable values leave `str` unchanged.
12
+ * @param type - whether the color applies to foreground or background.
13
+ * @returns `str` wrapped in the chalk color sequence, or `str` unchanged when no color applies.
14
+ */
15
+ export declare const colorize: (str: string, color: string | undefined, type: ColorType) => string;
16
+ /**
17
+ * Apply TextStyles to a string using chalk.
18
+ * This is the inverse of parsing ANSI codes - we generate them from structured styles.
19
+ * Theme resolution happens at component layer, not here.
20
+ * @param text - the text to style.
21
+ * @param styles - the structured styles to apply.
22
+ * @returns `text` wrapped in the chalk sequences for the enabled styles.
23
+ */
24
+ export declare function applyTextStyles(text: string, styles: TextStyles): string;
25
+ /**
26
+ * Apply a raw color value to text.
27
+ * Theme resolution should happen at component layer, not here.
28
+ * @param text - the text to color.
29
+ * @param color - the raw foreground color value; undefined or empty leaves `text` unchanged.
30
+ * @returns `text` wrapped in the foreground color sequence.
31
+ */
32
+ export declare function applyColor(text: string, color: Color | undefined): string;
33
+ //# sourceMappingURL=colorize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorize.d.ts","sourceRoot":"","sources":["../../../src/ink/colorize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA2DpD,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,SAA8B,CAAA;AACpE,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,SAA2B,CAAA;AAE9D,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,CAAA;AAKnD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,MAAM,EACX,OAAO,MAAM,GAAG,SAAS,EACzB,MAAM,SAAS,KACd,MAgGF,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CA4CxE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAKzE"}