@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,307 @@
1
+ import { LayoutAlign, LayoutDisplay, LayoutEdge, LayoutFlexDirection, LayoutGutter, LayoutJustify, LayoutOverflow, LayoutPositionType, LayoutWrap, } from './layout/node.js';
2
+ const applyPositionStyles = (node, style) => {
3
+ if ('position' in style) {
4
+ node.setPositionType(style.position === 'absolute'
5
+ ? LayoutPositionType.Absolute
6
+ : LayoutPositionType.Relative);
7
+ }
8
+ if ('top' in style)
9
+ applyPositionEdge(node, 'top', style.top);
10
+ if ('bottom' in style)
11
+ applyPositionEdge(node, 'bottom', style.bottom);
12
+ if ('left' in style)
13
+ applyPositionEdge(node, 'left', style.left);
14
+ if ('right' in style)
15
+ applyPositionEdge(node, 'right', style.right);
16
+ };
17
+ function applyPositionEdge(node, edge, v) {
18
+ if (typeof v === 'string') {
19
+ node.setPositionPercent(edge, Number.parseInt(v, 10));
20
+ }
21
+ else if (typeof v === 'number') {
22
+ node.setPosition(edge, v);
23
+ }
24
+ else {
25
+ node.setPosition(edge, Number.NaN);
26
+ }
27
+ }
28
+ const applyOverflowStyles = (node, style) => {
29
+ // Yoga's Overflow controls whether children expand the container.
30
+ // 'hidden' and 'scroll' both prevent expansion; 'scroll' additionally
31
+ // signals that the renderer should apply scrollTop translation.
32
+ // overflowX/Y are render-time concerns; for layout we use the union.
33
+ const y = style.overflowY ?? style.overflow;
34
+ const x = style.overflowX ?? style.overflow;
35
+ if (y === 'scroll' || x === 'scroll') {
36
+ node.setOverflow(LayoutOverflow.Scroll);
37
+ }
38
+ else if (y === 'hidden' || x === 'hidden') {
39
+ node.setOverflow(LayoutOverflow.Hidden);
40
+ }
41
+ else if ('overflow' in style ||
42
+ 'overflowX' in style ||
43
+ 'overflowY' in style) {
44
+ node.setOverflow(LayoutOverflow.Visible);
45
+ }
46
+ };
47
+ const applyMarginStyles = (node, style) => {
48
+ if ('margin' in style) {
49
+ node.setMargin(LayoutEdge.All, style.margin ?? 0);
50
+ }
51
+ if ('marginX' in style) {
52
+ node.setMargin(LayoutEdge.Horizontal, style.marginX ?? 0);
53
+ }
54
+ if ('marginY' in style) {
55
+ node.setMargin(LayoutEdge.Vertical, style.marginY ?? 0);
56
+ }
57
+ if ('marginLeft' in style) {
58
+ node.setMargin(LayoutEdge.Start, style.marginLeft || 0);
59
+ }
60
+ if ('marginRight' in style) {
61
+ node.setMargin(LayoutEdge.End, style.marginRight || 0);
62
+ }
63
+ if ('marginTop' in style) {
64
+ node.setMargin(LayoutEdge.Top, style.marginTop || 0);
65
+ }
66
+ if ('marginBottom' in style) {
67
+ node.setMargin(LayoutEdge.Bottom, style.marginBottom || 0);
68
+ }
69
+ };
70
+ const applyPaddingStyles = (node, style) => {
71
+ if ('padding' in style) {
72
+ node.setPadding(LayoutEdge.All, style.padding ?? 0);
73
+ }
74
+ if ('paddingX' in style) {
75
+ node.setPadding(LayoutEdge.Horizontal, style.paddingX ?? 0);
76
+ }
77
+ if ('paddingY' in style) {
78
+ node.setPadding(LayoutEdge.Vertical, style.paddingY ?? 0);
79
+ }
80
+ if ('paddingLeft' in style) {
81
+ node.setPadding(LayoutEdge.Left, style.paddingLeft || 0);
82
+ }
83
+ if ('paddingRight' in style) {
84
+ node.setPadding(LayoutEdge.Right, style.paddingRight || 0);
85
+ }
86
+ if ('paddingTop' in style) {
87
+ node.setPadding(LayoutEdge.Top, style.paddingTop || 0);
88
+ }
89
+ if ('paddingBottom' in style) {
90
+ node.setPadding(LayoutEdge.Bottom, style.paddingBottom || 0);
91
+ }
92
+ };
93
+ const applyFlexStyles = (node, style) => {
94
+ if ('flexGrow' in style) {
95
+ node.setFlexGrow(style.flexGrow ?? 0);
96
+ }
97
+ if ('flexShrink' in style) {
98
+ node.setFlexShrink(typeof style.flexShrink === 'number' ? style.flexShrink : 1);
99
+ }
100
+ if ('flexWrap' in style) {
101
+ if (style.flexWrap === 'nowrap') {
102
+ node.setFlexWrap(LayoutWrap.NoWrap);
103
+ }
104
+ if (style.flexWrap === 'wrap') {
105
+ node.setFlexWrap(LayoutWrap.Wrap);
106
+ }
107
+ if (style.flexWrap === 'wrap-reverse') {
108
+ node.setFlexWrap(LayoutWrap.WrapReverse);
109
+ }
110
+ }
111
+ if ('flexDirection' in style) {
112
+ if (style.flexDirection === 'row') {
113
+ node.setFlexDirection(LayoutFlexDirection.Row);
114
+ }
115
+ if (style.flexDirection === 'row-reverse') {
116
+ node.setFlexDirection(LayoutFlexDirection.RowReverse);
117
+ }
118
+ if (style.flexDirection === 'column') {
119
+ node.setFlexDirection(LayoutFlexDirection.Column);
120
+ }
121
+ if (style.flexDirection === 'column-reverse') {
122
+ node.setFlexDirection(LayoutFlexDirection.ColumnReverse);
123
+ }
124
+ }
125
+ if ('flexBasis' in style) {
126
+ if (typeof style.flexBasis === 'number') {
127
+ node.setFlexBasis(style.flexBasis);
128
+ }
129
+ else if (typeof style.flexBasis === 'string') {
130
+ node.setFlexBasisPercent(Number.parseInt(style.flexBasis, 10));
131
+ }
132
+ else {
133
+ node.setFlexBasis(Number.NaN);
134
+ }
135
+ }
136
+ if ('alignItems' in style) {
137
+ if (style.alignItems === 'stretch' || !style.alignItems) {
138
+ node.setAlignItems(LayoutAlign.Stretch);
139
+ }
140
+ if (style.alignItems === 'flex-start') {
141
+ node.setAlignItems(LayoutAlign.FlexStart);
142
+ }
143
+ if (style.alignItems === 'center') {
144
+ node.setAlignItems(LayoutAlign.Center);
145
+ }
146
+ if (style.alignItems === 'flex-end') {
147
+ node.setAlignItems(LayoutAlign.FlexEnd);
148
+ }
149
+ }
150
+ if ('alignSelf' in style) {
151
+ if (style.alignSelf === 'auto' || !style.alignSelf) {
152
+ node.setAlignSelf(LayoutAlign.Auto);
153
+ }
154
+ if (style.alignSelf === 'flex-start') {
155
+ node.setAlignSelf(LayoutAlign.FlexStart);
156
+ }
157
+ if (style.alignSelf === 'center') {
158
+ node.setAlignSelf(LayoutAlign.Center);
159
+ }
160
+ if (style.alignSelf === 'flex-end') {
161
+ node.setAlignSelf(LayoutAlign.FlexEnd);
162
+ }
163
+ }
164
+ if ('justifyContent' in style) {
165
+ if (style.justifyContent === 'flex-start' || !style.justifyContent) {
166
+ node.setJustifyContent(LayoutJustify.FlexStart);
167
+ }
168
+ if (style.justifyContent === 'center') {
169
+ node.setJustifyContent(LayoutJustify.Center);
170
+ }
171
+ if (style.justifyContent === 'flex-end') {
172
+ node.setJustifyContent(LayoutJustify.FlexEnd);
173
+ }
174
+ if (style.justifyContent === 'space-between') {
175
+ node.setJustifyContent(LayoutJustify.SpaceBetween);
176
+ }
177
+ if (style.justifyContent === 'space-around') {
178
+ node.setJustifyContent(LayoutJustify.SpaceAround);
179
+ }
180
+ if (style.justifyContent === 'space-evenly') {
181
+ node.setJustifyContent(LayoutJustify.SpaceEvenly);
182
+ }
183
+ }
184
+ };
185
+ const applyDimensionStyles = (node, style) => {
186
+ if ('width' in style) {
187
+ if (typeof style.width === 'number') {
188
+ node.setWidth(style.width);
189
+ }
190
+ else if (typeof style.width === 'string') {
191
+ node.setWidthPercent(Number.parseInt(style.width, 10));
192
+ }
193
+ else {
194
+ node.setWidthAuto();
195
+ }
196
+ }
197
+ if ('height' in style) {
198
+ if (typeof style.height === 'number') {
199
+ node.setHeight(style.height);
200
+ }
201
+ else if (typeof style.height === 'string') {
202
+ node.setHeightPercent(Number.parseInt(style.height, 10));
203
+ }
204
+ else {
205
+ node.setHeightAuto();
206
+ }
207
+ }
208
+ if ('minWidth' in style) {
209
+ if (typeof style.minWidth === 'string') {
210
+ node.setMinWidthPercent(Number.parseInt(style.minWidth, 10));
211
+ }
212
+ else {
213
+ node.setMinWidth(style.minWidth ?? 0);
214
+ }
215
+ }
216
+ if ('minHeight' in style) {
217
+ if (typeof style.minHeight === 'string') {
218
+ node.setMinHeightPercent(Number.parseInt(style.minHeight, 10));
219
+ }
220
+ else {
221
+ node.setMinHeight(style.minHeight ?? 0);
222
+ }
223
+ }
224
+ if ('maxWidth' in style) {
225
+ if (typeof style.maxWidth === 'string') {
226
+ node.setMaxWidthPercent(Number.parseInt(style.maxWidth, 10));
227
+ }
228
+ else {
229
+ node.setMaxWidth(style.maxWidth ?? 0);
230
+ }
231
+ }
232
+ if ('maxHeight' in style) {
233
+ if (typeof style.maxHeight === 'string') {
234
+ node.setMaxHeightPercent(Number.parseInt(style.maxHeight, 10));
235
+ }
236
+ else {
237
+ node.setMaxHeight(style.maxHeight ?? 0);
238
+ }
239
+ }
240
+ };
241
+ const applyDisplayStyles = (node, style) => {
242
+ if ('display' in style) {
243
+ node.setDisplay(style.display === 'flex' ? LayoutDisplay.Flex : LayoutDisplay.None);
244
+ }
245
+ };
246
+ const applyBorderStyles = (node, style, resolvedStyle) => {
247
+ // resolvedStyle is the full current style (already set on the DOM node).
248
+ // style may be a diff with only changed properties. For border side props,
249
+ // we need the resolved value because `borderStyle` in a diff may not include
250
+ // unchanged border side values (e.g. borderTop stays false but isn't in the diff).
251
+ const resolved = resolvedStyle ?? style;
252
+ if ('borderStyle' in style) {
253
+ const borderWidth = style.borderStyle ? 1 : 0;
254
+ node.setBorder(LayoutEdge.Top, resolved.borderTop !== false ? borderWidth : 0);
255
+ node.setBorder(LayoutEdge.Bottom, resolved.borderBottom !== false ? borderWidth : 0);
256
+ node.setBorder(LayoutEdge.Left, resolved.borderLeft !== false ? borderWidth : 0);
257
+ node.setBorder(LayoutEdge.Right, resolved.borderRight !== false ? borderWidth : 0);
258
+ }
259
+ else {
260
+ // Handle individual border property changes (when only borderX changes without borderStyle).
261
+ // Skip undefined values — they mean the prop was removed or never set,
262
+ // not that a border should be enabled.
263
+ if ('borderTop' in style && style.borderTop !== undefined) {
264
+ node.setBorder(LayoutEdge.Top, style.borderTop === false ? 0 : 1);
265
+ }
266
+ if ('borderBottom' in style && style.borderBottom !== undefined) {
267
+ node.setBorder(LayoutEdge.Bottom, style.borderBottom === false ? 0 : 1);
268
+ }
269
+ if ('borderLeft' in style && style.borderLeft !== undefined) {
270
+ node.setBorder(LayoutEdge.Left, style.borderLeft === false ? 0 : 1);
271
+ }
272
+ if ('borderRight' in style && style.borderRight !== undefined) {
273
+ node.setBorder(LayoutEdge.Right, style.borderRight === false ? 0 : 1);
274
+ }
275
+ }
276
+ };
277
+ const applyGapStyles = (node, style) => {
278
+ if ('gap' in style) {
279
+ node.setGap(LayoutGutter.All, style.gap ?? 0);
280
+ }
281
+ if ('columnGap' in style) {
282
+ node.setGap(LayoutGutter.Column, style.columnGap ?? 0);
283
+ }
284
+ if ('rowGap' in style) {
285
+ node.setGap(LayoutGutter.Row, style.rowGap ?? 0);
286
+ }
287
+ };
288
+ /**
289
+ * Apply a style diff to a layout node, delegating each property group to its
290
+ * Yoga setter. The node's styles must already be applied elsewhere; `style`
291
+ * may be a diff containing only changed properties.
292
+ * @param node - the layout node to style.
293
+ * @param style - the styles to apply; defaults to an empty object.
294
+ * @param resolvedStyle - the node's full current styles, used to resolve border side values.
295
+ */
296
+ const styles = (node, style = {}, resolvedStyle) => {
297
+ applyPositionStyles(node, style);
298
+ applyOverflowStyles(node, style);
299
+ applyMarginStyles(node, style);
300
+ applyPaddingStyles(node, style);
301
+ applyFlexStyles(node, style);
302
+ applyDimensionStyles(node, style);
303
+ applyDisplayStyles(node, style);
304
+ applyBorderStyles(node, style, resolvedStyle);
305
+ applyGapStyles(node, style);
306
+ };
307
+ export default styles;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Terminals that support OSC 8 hyperlinks but are not detected by the
3
+ * supports-hyperlinks library. Checked against both TERM_PROGRAM and
4
+ * LC_TERMINAL (the latter is preserved inside tmux).
5
+ */
6
+ export declare const ADDITIONAL_HYPERLINK_TERMINALS: string[];
7
+ type EnvLike = Record<string, string | undefined>;
8
+ type SupportsHyperlinksOptions = {
9
+ env?: EnvLike;
10
+ stdoutSupported?: boolean;
11
+ };
12
+ /**
13
+ * Returns whether stdout supports OSC 8 hyperlinks.
14
+ * Extends the supports-hyperlinks library with additional terminal detection.
15
+ * @param options Optional overrides for testing (env, stdoutSupported)
16
+ * @returns true when stdout or the detected terminal supports hyperlinks.
17
+ */
18
+ export declare function supportsHyperlinks(options?: SupportsHyperlinksOptions): boolean;
19
+ export {};
20
+ //# sourceMappingURL=supports-hyperlinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supports-hyperlinks.d.ts","sourceRoot":"","sources":["../../../src/ink/supports-hyperlinks.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,UAO1C,CAAA;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAEjD,KAAK,yBAAyB,GAAG;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CA6BT"}
@@ -0,0 +1,44 @@
1
+ import supportsHyperlinksLib from 'supports-hyperlinks';
2
+ /**
3
+ * Terminals that support OSC 8 hyperlinks but are not detected by the
4
+ * supports-hyperlinks library. Checked against both TERM_PROGRAM and
5
+ * LC_TERMINAL (the latter is preserved inside tmux).
6
+ */
7
+ export const ADDITIONAL_HYPERLINK_TERMINALS = [
8
+ 'ghostty',
9
+ 'Hyper',
10
+ 'kitty',
11
+ 'alacritty',
12
+ 'iTerm.app',
13
+ 'iTerm2',
14
+ ];
15
+ /**
16
+ * Returns whether stdout supports OSC 8 hyperlinks.
17
+ * Extends the supports-hyperlinks library with additional terminal detection.
18
+ * @param options Optional overrides for testing (env, stdoutSupported)
19
+ * @returns true when stdout or the detected terminal supports hyperlinks.
20
+ */
21
+ export function supportsHyperlinks(options) {
22
+ const stdoutSupported = options?.stdoutSupported ?? supportsHyperlinksLib.stdout;
23
+ if (stdoutSupported) {
24
+ return true;
25
+ }
26
+ const env = options?.env ?? process.env;
27
+ // Check for additional terminals not detected by supports-hyperlinks
28
+ const termProgram = env['TERM_PROGRAM'];
29
+ if (termProgram && ADDITIONAL_HYPERLINK_TERMINALS.includes(termProgram)) {
30
+ return true;
31
+ }
32
+ // LC_TERMINAL is set by some terminals (e.g. iTerm2) and preserved inside tmux,
33
+ // where TERM_PROGRAM is overwritten to 'tmux'.
34
+ const lcTerminal = env['LC_TERMINAL'];
35
+ if (lcTerminal && ADDITIONAL_HYPERLINK_TERMINALS.includes(lcTerminal)) {
36
+ return true;
37
+ }
38
+ // Kitty sets TERM=xterm-kitty
39
+ const term = env['TERM'];
40
+ if (term?.includes('kitty')) {
41
+ return true;
42
+ }
43
+ return false;
44
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Expand tab characters to spaces at fixed column intervals, preserving
3
+ * escape sequences and resetting the column on newlines.
4
+ * @param text - the text to expand.
5
+ * @param interval - the tab stop interval in columns; defaults to 8.
6
+ * @returns `text` with every tab replaced by the spaces needed to reach the next stop.
7
+ */
8
+ export declare function expandTabs(text: string, interval?: number): string;
9
+ //# sourceMappingURL=tabstops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabstops.d.ts","sourceRoot":"","sources":["../../../src/ink/tabstops.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAuB,GAC9B,MAAM,CAkCR"}
@@ -0,0 +1,46 @@
1
+ // Tab expansion, inspired by Ghostty's Tabstops.zig
2
+ // Uses 8-column intervals (POSIX default, hardcoded in terminals like Ghostty)
3
+ import { stringWidth } from './stringWidth.js';
4
+ import { createTokenizer } from './termio/tokenize.js';
5
+ const DEFAULT_TAB_INTERVAL = 8;
6
+ /**
7
+ * Expand tab characters to spaces at fixed column intervals, preserving
8
+ * escape sequences and resetting the column on newlines.
9
+ * @param text - the text to expand.
10
+ * @param interval - the tab stop interval in columns; defaults to 8.
11
+ * @returns `text` with every tab replaced by the spaces needed to reach the next stop.
12
+ */
13
+ export function expandTabs(text, interval = DEFAULT_TAB_INTERVAL) {
14
+ if (!text.includes('\t')) {
15
+ return text;
16
+ }
17
+ const tokenizer = createTokenizer();
18
+ const tokens = tokenizer.feed(text);
19
+ tokens.push(...tokenizer.flush());
20
+ let result = '';
21
+ let column = 0;
22
+ for (const token of tokens) {
23
+ if (token.type === 'sequence') {
24
+ result += token.value;
25
+ }
26
+ else {
27
+ const parts = token.value.split(/(\t|\n)/);
28
+ for (const part of parts) {
29
+ if (part === '\t') {
30
+ const spaces = interval - (column % interval);
31
+ result += ' '.repeat(spaces);
32
+ column += spaces;
33
+ }
34
+ else if (part === '\n') {
35
+ result += part;
36
+ column = 0;
37
+ }
38
+ else {
39
+ result += part;
40
+ column += stringWidth(part);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ return result;
46
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Terminal focus state, driven by DECSET 1004 focus events. 'unknown' is
3
+ * the default for terminals that don't support focus reporting; consumers
4
+ * treat 'unknown' identically to 'focused' (no throttling).
5
+ */
6
+ export type TerminalFocusState = 'focused' | 'blurred' | 'unknown';
7
+ /**
8
+ * Record a terminal focus change and notify subscribers synchronously.
9
+ * A blur also resolves pending focus waiters.
10
+ * @param v - true when the terminal gained focus, false when it blurred.
11
+ */
12
+ export declare function setTerminalFocused(v: boolean): void;
13
+ /**
14
+ * Whether the terminal is currently considered focused. 'unknown' counts
15
+ * as focused so terminals without focus reporting never appear blurred.
16
+ * @returns true unless the terminal is known to be blurred.
17
+ */
18
+ export declare function getTerminalFocused(): boolean;
19
+ /**
20
+ * The current terminal focus state ('focused' | 'blurred' | 'unknown').
21
+ * @returns the current focus state.
22
+ */
23
+ export declare function getTerminalFocusState(): TerminalFocusState;
24
+ /**
25
+ * Subscribe to focus-change notifications, for useSyncExternalStore.
26
+ * @param cb - callback invoked synchronously on every focus change.
27
+ * @returns a function that unsubscribes the callback.
28
+ */
29
+ export declare function subscribeTerminalFocus(cb: () => void): () => void;
30
+ /**
31
+ * Reset the focus state to 'unknown' and notify subscribers. Used when
32
+ * focus reporting is (re)initialized.
33
+ */
34
+ export declare function resetTerminalFocusState(): void;
35
+ //# sourceMappingURL=terminal-focus-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-focus-state.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal-focus-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;AAMlE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAYnD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKjE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C"}
@@ -0,0 +1,57 @@
1
+ let focusState = 'unknown';
2
+ const resolvers = new Set();
3
+ const subscribers = new Set();
4
+ /**
5
+ * Record a terminal focus change and notify subscribers synchronously.
6
+ * A blur also resolves pending focus waiters.
7
+ * @param v - true when the terminal gained focus, false when it blurred.
8
+ */
9
+ export function setTerminalFocused(v) {
10
+ focusState = v ? 'focused' : 'blurred';
11
+ // Notify useSyncExternalStore subscribers
12
+ for (const cb of subscribers) {
13
+ cb();
14
+ }
15
+ if (!v) {
16
+ for (const resolve of resolvers) {
17
+ resolve();
18
+ }
19
+ resolvers.clear();
20
+ }
21
+ }
22
+ /**
23
+ * Whether the terminal is currently considered focused. 'unknown' counts
24
+ * as focused so terminals without focus reporting never appear blurred.
25
+ * @returns true unless the terminal is known to be blurred.
26
+ */
27
+ export function getTerminalFocused() {
28
+ return focusState !== 'blurred';
29
+ }
30
+ /**
31
+ * The current terminal focus state ('focused' | 'blurred' | 'unknown').
32
+ * @returns the current focus state.
33
+ */
34
+ export function getTerminalFocusState() {
35
+ return focusState;
36
+ }
37
+ /**
38
+ * Subscribe to focus-change notifications, for useSyncExternalStore.
39
+ * @param cb - callback invoked synchronously on every focus change.
40
+ * @returns a function that unsubscribes the callback.
41
+ */
42
+ export function subscribeTerminalFocus(cb) {
43
+ subscribers.add(cb);
44
+ return () => {
45
+ subscribers.delete(cb);
46
+ };
47
+ }
48
+ /**
49
+ * Reset the focus state to 'unknown' and notify subscribers. Used when
50
+ * focus reporting is (re)initialized.
51
+ */
52
+ export function resetTerminalFocusState() {
53
+ focusState = 'unknown';
54
+ for (const cb of subscribers) {
55
+ cb();
56
+ }
57
+ }