@deepseek-harness-tui/dsh-tui 0.6.0 → 0.7.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 (379) hide show
  1. package/README.md +74 -21
  2. package/bin/dsh-tui.js +115 -25
  3. package/cordis.patch.yml +69 -17
  4. package/cordis.yml +50 -12
  5. package/lib/types/activityPrefs.d.ts +1 -1
  6. package/lib/types/activityPrefs.js +3 -3
  7. package/lib/types/cc/figures.d.ts +27 -20
  8. package/lib/types/cc/figures.d.ts.map +1 -1
  9. package/lib/types/cc/figures.js +43 -34
  10. package/lib/types/cc/format.d.ts +18 -9
  11. package/lib/types/cc/format.d.ts.map +1 -1
  12. package/lib/types/cc/format.js +26 -18
  13. package/lib/types/cc/markdown.d.ts +31 -16
  14. package/lib/types/cc/markdown.d.ts.map +1 -1
  15. package/lib/types/cc/markdown.js +283 -260
  16. package/lib/types/cc/terminal.d.ts +10 -7
  17. package/lib/types/cc/terminal.d.ts.map +1 -1
  18. package/lib/types/cc/terminal.js +62 -50
  19. package/lib/types/command-trees.d.ts +3 -0
  20. package/lib/types/command-trees.d.ts.map +1 -0
  21. package/lib/types/command-trees.js +4 -0
  22. package/lib/types/commands.d.ts +37 -1
  23. package/lib/types/commands.d.ts.map +1 -1
  24. package/lib/types/commands.js +68 -3
  25. package/lib/types/components/ActivityLine.d.ts +1 -1
  26. package/lib/types/components/ActivityLine.d.ts.map +1 -1
  27. package/lib/types/components/ActivityPicker.d.ts.map +1 -1
  28. package/lib/types/components/ActivityPicker.js +3 -4
  29. package/lib/types/components/BtwPanel.d.ts +16 -0
  30. package/lib/types/components/BtwPanel.d.ts.map +1 -0
  31. package/lib/types/components/BtwPanel.js +47 -0
  32. package/lib/types/components/CommandSuggestions.d.ts +4 -2
  33. package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
  34. package/lib/types/components/CommandSuggestions.js +2 -2
  35. package/lib/types/components/EffortSlider.d.ts +15 -0
  36. package/lib/types/components/EffortSlider.d.ts.map +1 -0
  37. package/lib/types/components/EffortSlider.js +17 -0
  38. package/lib/types/components/GoalTodoPanel.d.ts +1 -1
  39. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  40. package/lib/types/components/HelpMenu.d.ts +5 -2
  41. package/lib/types/components/HelpMenu.d.ts.map +1 -1
  42. package/lib/types/components/HelpMenu.js +8 -3
  43. package/lib/types/components/HistorySearchDialog.d.ts +1 -1
  44. package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
  45. package/lib/types/components/HistorySearchDialog.js +21 -10
  46. package/lib/types/components/InterruptedByUser.d.ts +2 -2
  47. package/lib/types/components/InterruptedByUser.d.ts.map +1 -1
  48. package/lib/types/components/InterruptedByUser.js +4 -3
  49. package/lib/types/components/LoadedContextPanel.d.ts +1 -1
  50. package/lib/types/components/LoadedContextPanel.d.ts.map +1 -1
  51. package/lib/types/components/LogoV2.d.ts.map +1 -1
  52. package/lib/types/components/LogoV2.js +2 -1
  53. package/lib/types/components/Markdown.d.ts +11 -11
  54. package/lib/types/components/Markdown.d.ts.map +1 -1
  55. package/lib/types/components/Markdown.js +63 -57
  56. package/lib/types/components/MarkdownTable.d.ts +1 -1
  57. package/lib/types/components/MarkdownTable.js +2 -2
  58. package/lib/types/components/MessageList.d.ts +10 -2
  59. package/lib/types/components/MessageList.d.ts.map +1 -1
  60. package/lib/types/components/MessageList.js +17 -10
  61. package/lib/types/components/ModelPicker.d.ts +4 -1
  62. package/lib/types/components/ModelPicker.d.ts.map +1 -1
  63. package/lib/types/components/ModelPicker.js +16 -4
  64. package/lib/types/components/OverlayAbove.d.ts +20 -0
  65. package/lib/types/components/OverlayAbove.d.ts.map +1 -0
  66. package/lib/types/components/OverlayAbove.js +18 -0
  67. package/lib/types/components/PresetPicker.d.ts +1 -1
  68. package/lib/types/components/PresetPicker.d.ts.map +1 -1
  69. package/lib/types/components/PresetPicker.js +2 -3
  70. package/lib/types/components/PromptInput.d.ts +5 -4
  71. package/lib/types/components/PromptInput.d.ts.map +1 -1
  72. package/lib/types/components/PromptInput.js +186 -39
  73. package/lib/types/components/ResumePicker.d.ts +15 -4
  74. package/lib/types/components/ResumePicker.d.ts.map +1 -1
  75. package/lib/types/components/ResumePicker.js +25 -9
  76. package/lib/types/components/RewindPicker.d.ts +1 -1
  77. package/lib/types/components/RewindPicker.d.ts.map +1 -1
  78. package/lib/types/components/RewindPicker.js +14 -5
  79. package/lib/types/components/SearchBox.d.ts +1 -1
  80. package/lib/types/components/SearchBox.js +1 -1
  81. package/lib/types/components/Spinner/GlimmerMessage.d.ts +1 -2
  82. package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -1
  83. package/lib/types/components/Spinner/GlimmerMessage.js +1 -2
  84. package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +1 -1
  85. package/lib/types/components/Spinner/SpinnerAnimationRow.js +2 -2
  86. package/lib/types/components/Spinner/SpinnerGlyph.d.ts +1 -1
  87. package/lib/types/components/Spinner/SpinnerGlyph.js +1 -1
  88. package/lib/types/components/Spinner/spinnerUtils.d.ts +13 -18
  89. package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -1
  90. package/lib/types/components/Spinner/spinnerUtils.js +67 -71
  91. package/lib/types/components/Spinner/useStalledAnimation.d.ts +1 -2
  92. package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -1
  93. package/lib/types/components/Spinner/useStalledAnimation.js +1 -2
  94. package/lib/types/components/StreamingMarkdown.d.ts +1 -1
  95. package/lib/types/components/StreamingMarkdown.js +1 -1
  96. package/lib/types/components/ThemePicker.d.ts +13 -9
  97. package/lib/types/components/ThemePicker.d.ts.map +1 -1
  98. package/lib/types/components/ThemePicker.js +21 -15
  99. package/lib/types/components/ThinkingToggle.d.ts +1 -1
  100. package/lib/types/components/ThinkingToggle.d.ts.map +1 -1
  101. package/lib/types/components/ThinkingToggle.js +8 -8
  102. package/lib/types/components/ToolUseLoader.d.ts +1 -1
  103. package/lib/types/components/ToolUseLoader.js +1 -1
  104. package/lib/types/components/WorkingSpinner.d.ts +2 -2
  105. package/lib/types/components/WorkingSpinner.js +2 -2
  106. package/lib/types/components/WorkspaceFlowPicker.d.ts +15 -0
  107. package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -0
  108. package/lib/types/components/WorkspaceFlowPicker.js +19 -0
  109. package/lib/types/components/WorkspacePicker.d.ts +9 -0
  110. package/lib/types/components/WorkspacePicker.d.ts.map +1 -0
  111. package/lib/types/components/WorkspacePicker.js +13 -0
  112. package/lib/types/components/approvals/ApprovalPanel.d.ts +1 -1
  113. package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
  114. package/lib/types/components/approvals/ApprovalPanel.js +2 -1
  115. package/lib/types/components/design-system/Byline.d.ts +1 -1
  116. package/lib/types/components/design-system/Byline.js +1 -1
  117. package/lib/types/components/design-system/Divider.d.ts +1 -1
  118. package/lib/types/components/design-system/Divider.js +1 -1
  119. package/lib/types/components/design-system/HintLine.d.ts +12 -0
  120. package/lib/types/components/design-system/HintLine.d.ts.map +1 -0
  121. package/lib/types/components/design-system/HintLine.js +15 -0
  122. package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +1 -1
  123. package/lib/types/components/design-system/KeyboardShortcutHint.js +1 -1
  124. package/lib/types/components/design-system/ListItem.d.ts +2 -2
  125. package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
  126. package/lib/types/components/design-system/ListItem.js +35 -3
  127. package/lib/types/components/design-system/LoadingState.d.ts +1 -2
  128. package/lib/types/components/design-system/LoadingState.d.ts.map +1 -1
  129. package/lib/types/components/design-system/LoadingState.js +1 -2
  130. package/lib/types/components/design-system/Pane.d.ts +2 -2
  131. package/lib/types/components/design-system/Pane.js +2 -2
  132. package/lib/types/components/design-system/ProgressBar.d.ts +1 -2
  133. package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -1
  134. package/lib/types/components/design-system/ProgressBar.js +1 -2
  135. package/lib/types/components/design-system/StatusIcon.d.ts +2 -2
  136. package/lib/types/components/design-system/StatusIcon.js +2 -2
  137. package/lib/types/components/design-system/ThemeProvider.d.ts +1 -1
  138. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  139. package/lib/types/components/design-system/ThemeProvider.js +87 -26
  140. package/lib/types/components/design-system/ThemedBox.d.ts +1 -1
  141. package/lib/types/components/design-system/ThemedBox.js +1 -1
  142. package/lib/types/components/design-system/ThemedText.d.ts +2 -2
  143. package/lib/types/components/design-system/ThemedText.js +2 -2
  144. package/lib/types/components/listWindow.d.ts +26 -0
  145. package/lib/types/components/listWindow.d.ts.map +1 -0
  146. package/lib/types/components/listWindow.js +47 -0
  147. package/lib/types/components/messages/AssistantTextMessage.d.ts +1 -2
  148. package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -1
  149. package/lib/types/components/messages/AssistantTextMessage.js +1 -2
  150. package/lib/types/components/messages/AssistantThinkingMessage.d.ts +2 -2
  151. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
  152. package/lib/types/components/messages/AssistantThinkingMessage.js +6 -6
  153. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +12 -4
  154. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  155. package/lib/types/components/messages/AssistantToolUseMessage.js +9 -5
  156. package/lib/types/components/messages/MessageMetadata.d.ts +1 -1
  157. package/lib/types/components/messages/MessageMetadata.js +1 -1
  158. package/lib/types/components/messages/UserPromptMessage.d.ts +1 -1
  159. package/lib/types/components/messages/UserPromptMessage.js +1 -1
  160. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +5 -1
  161. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  162. package/lib/types/components/questions/AskUserQuestionPanel.js +11 -9
  163. package/lib/types/components/questions/PlanReviewPanel.d.ts +1 -1
  164. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  165. package/lib/types/components/questions/PlanReviewPanel.js +3 -2
  166. package/lib/types/components/trajectory/HotspotView.d.ts +14 -0
  167. package/lib/types/components/trajectory/HotspotView.d.ts.map +1 -0
  168. package/lib/types/components/trajectory/HotspotView.js +83 -0
  169. package/lib/types/components/trajectory/Inspector.d.ts +31 -0
  170. package/lib/types/components/trajectory/Inspector.d.ts.map +1 -0
  171. package/lib/types/components/trajectory/Inspector.js +67 -0
  172. package/lib/types/components/trajectory/Ledger.d.ts +20 -0
  173. package/lib/types/components/trajectory/Ledger.d.ts.map +1 -0
  174. package/lib/types/components/trajectory/Ledger.js +112 -0
  175. package/lib/types/components/trajectory/MiniWake.d.ts +24 -0
  176. package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -0
  177. package/lib/types/components/trajectory/MiniWake.js +99 -0
  178. package/lib/types/components/trajectory/WaveBand.d.ts +33 -0
  179. package/lib/types/components/trajectory/WaveBand.d.ts.map +1 -0
  180. package/lib/types/components/trajectory/WaveBand.js +145 -0
  181. package/lib/types/customTheme.d.ts +6 -6
  182. package/lib/types/customTheme.d.ts.map +1 -1
  183. package/lib/types/customTheme.js +15 -12
  184. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -0
  185. package/lib/types/{channel.d.ts → dsh-adapter/channel.d.ts} +184 -43
  186. package/lib/types/dsh-adapter/channel.d.ts.map +1 -0
  187. package/lib/types/{channel.js → dsh-adapter/channel.js} +972 -201
  188. package/lib/types/dsh-adapter/childStderr.d.ts.map +1 -0
  189. package/lib/types/{childStderr.js → dsh-adapter/childStderr.js} +1 -1
  190. package/lib/types/dsh-adapter/command-trees.d.ts +27 -0
  191. package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -0
  192. package/lib/types/dsh-adapter/command-trees.js +42 -0
  193. package/lib/types/dsh-adapter/compat/index.d.ts +22 -0
  194. package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -0
  195. package/lib/types/{compat → dsh-adapter/compat}/index.js +7 -4
  196. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +86 -0
  197. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -0
  198. package/lib/types/dsh-adapter/compat/sessionLog.js +347 -0
  199. package/lib/types/dsh-adapter/contract.d.ts +20 -0
  200. package/lib/types/dsh-adapter/contract.d.ts.map +1 -0
  201. package/lib/types/dsh-adapter/contract.js +109 -0
  202. package/lib/types/dsh-adapter/index.d.ts +80 -0
  203. package/lib/types/dsh-adapter/index.d.ts.map +1 -0
  204. package/lib/types/dsh-adapter/index.js +45 -0
  205. package/lib/types/dsh-adapter/invariant.d.ts.map +1 -0
  206. package/lib/types/dsh-adapter/packaged-skills.d.ts.map +1 -0
  207. package/lib/types/{plugin.d.ts → dsh-adapter/plugin.d.ts} +17 -0
  208. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -0
  209. package/lib/types/{plugin.js → dsh-adapter/plugin.js} +280 -80
  210. package/lib/types/dsh-adapter/presets.d.ts.map +1 -0
  211. package/lib/types/dsh-adapter/providerWizard.d.ts +91 -0
  212. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -0
  213. package/lib/types/dsh-adapter/providerWizard.js +332 -0
  214. package/lib/types/{questions.d.ts → dsh-adapter/questions.d.ts} +7 -2
  215. package/lib/types/dsh-adapter/questions.d.ts.map +1 -0
  216. package/lib/types/{questions.js → dsh-adapter/questions.js} +15 -7
  217. package/lib/types/dsh-adapter/sideQuestion.d.ts +38 -0
  218. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -0
  219. package/lib/types/dsh-adapter/sideQuestion.js +69 -0
  220. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +46 -0
  221. package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -0
  222. package/lib/types/dsh-adapter/trajectory/aggregate.js +207 -0
  223. package/lib/types/dsh-adapter/trajectory/guards.d.ts +177 -0
  224. package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -0
  225. package/lib/types/dsh-adapter/trajectory/guards.js +235 -0
  226. package/lib/types/dsh-adapter/trajectory/index.d.ts +16 -0
  227. package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -0
  228. package/lib/types/dsh-adapter/trajectory/index.js +15 -0
  229. package/lib/types/dsh-adapter/trajectory/inspect.d.ts +40 -0
  230. package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -0
  231. package/lib/types/dsh-adapter/trajectory/inspect.js +160 -0
  232. package/lib/types/dsh-adapter/trajectory/projection.d.ts +128 -0
  233. package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -0
  234. package/lib/types/dsh-adapter/trajectory/projection.js +653 -0
  235. package/lib/types/dsh-adapter/trajectory/types.d.ts +232 -0
  236. package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -0
  237. package/lib/types/dsh-adapter/trajectory/types.js +70 -0
  238. package/lib/types/dsh-adapter/trajectory/wave.d.ts +45 -0
  239. package/lib/types/dsh-adapter/trajectory/wave.d.ts.map +1 -0
  240. package/lib/types/dsh-adapter/trajectory/wave.js +210 -0
  241. package/lib/types/dsh-adapter/types.d.ts +23 -0
  242. package/lib/types/dsh-adapter/types.d.ts.map +1 -0
  243. package/lib/types/dsh-adapter/types.js +1 -0
  244. package/lib/types/dsh-adapter/workspace.d.ts +22 -0
  245. package/lib/types/dsh-adapter/workspace.d.ts.map +1 -0
  246. package/lib/types/dsh-adapter/workspace.js +16 -0
  247. package/lib/types/dsh-adapter/workspaces.d.ts +118 -0
  248. package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -0
  249. package/lib/types/dsh-adapter/workspaces.js +290 -0
  250. package/lib/types/effortPrefs.d.ts +1 -1
  251. package/lib/types/effortPrefs.js +3 -3
  252. package/lib/types/history.js +2 -2
  253. package/lib/types/hooks/useBlink.d.ts +1 -1
  254. package/lib/types/hooks/useBlink.js +1 -1
  255. package/lib/types/i18n.d.ts +977 -36
  256. package/lib/types/i18n.d.ts.map +1 -1
  257. package/lib/types/i18n.js +307 -30
  258. package/lib/types/index.d.ts +1 -69
  259. package/lib/types/index.d.ts.map +1 -1
  260. package/lib/types/index.js +3 -31
  261. package/lib/types/ink/components/App.d.ts.map +1 -1
  262. package/lib/types/ink/components/App.js +33 -19
  263. package/lib/types/ink/dom.d.ts +15 -0
  264. package/lib/types/ink/dom.d.ts.map +1 -1
  265. package/lib/types/ink/dom.js +32 -0
  266. package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
  267. package/lib/types/ink/hooks/use-input.js +8 -0
  268. package/lib/types/ink/hooks/use-terminal-size.d.ts +1 -1
  269. package/lib/types/ink/hooks/use-terminal-size.js +1 -1
  270. package/lib/types/ink/ink.d.ts.map +1 -1
  271. package/lib/types/ink/ink.js +109 -28
  272. package/lib/types/ink/input-suppression.d.ts +20 -0
  273. package/lib/types/ink/input-suppression.d.ts.map +1 -0
  274. package/lib/types/ink/input-suppression.js +26 -0
  275. package/lib/types/ink/log-update.js +21 -6
  276. package/lib/types/ink/parse-keypress.d.ts +31 -0
  277. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  278. package/lib/types/ink/parse-keypress.js +442 -8
  279. package/lib/types/ink/terminal-querier.d.ts +5 -1
  280. package/lib/types/ink/terminal-querier.d.ts.map +1 -1
  281. package/lib/types/ink/terminal-querier.js +27 -3
  282. package/lib/types/ink/terminal.d.ts +18 -0
  283. package/lib/types/ink/terminal.d.ts.map +1 -1
  284. package/lib/types/ink/terminal.js +32 -4
  285. package/lib/types/ink/termio/csi.d.ts +10 -0
  286. package/lib/types/ink/termio/csi.d.ts.map +1 -1
  287. package/lib/types/ink/termio/csi.js +20 -0
  288. package/lib/types/ink/termio/tokenize.js +10 -0
  289. package/lib/types/modelPrefs.d.ts +1 -1
  290. package/lib/types/modelPrefs.js +3 -3
  291. package/lib/types/presetPrefs.d.ts +1 -1
  292. package/lib/types/presetPrefs.js +3 -3
  293. package/lib/types/screens/Chat.d.ts +20 -4
  294. package/lib/types/screens/Chat.d.ts.map +1 -1
  295. package/lib/types/screens/Chat.js +655 -55
  296. package/lib/types/screens/StatusLine.d.ts +17 -2
  297. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  298. package/lib/types/screens/StatusLine.js +12 -4
  299. package/lib/types/screens/TrajectoryScene.d.ts +16 -0
  300. package/lib/types/screens/TrajectoryScene.d.ts.map +1 -0
  301. package/lib/types/screens/TrajectoryScene.js +305 -0
  302. package/lib/types/sessionHistory.d.ts +9 -1
  303. package/lib/types/sessionHistory.d.ts.map +1 -1
  304. package/lib/types/sessionHistory.js +56 -16
  305. package/lib/types/sessionModes.d.ts +29 -0
  306. package/lib/types/sessionModes.d.ts.map +1 -0
  307. package/lib/types/sessionModes.js +45 -0
  308. package/lib/types/theme.d.ts +27 -3
  309. package/lib/types/theme.d.ts.map +1 -1
  310. package/lib/types/theme.js +48 -4
  311. package/lib/types/themePrefs.d.ts +3 -3
  312. package/lib/types/themePrefs.js +5 -5
  313. package/lib/types/trajectory/format.d.ts +100 -0
  314. package/lib/types/trajectory/format.d.ts.map +1 -0
  315. package/lib/types/trajectory/format.js +213 -0
  316. package/lib/types/trajectory/motion.d.ts +99 -0
  317. package/lib/types/trajectory/motion.d.ts.map +1 -0
  318. package/lib/types/trajectory/motion.js +143 -0
  319. package/lib/types/trajectory/query.d.ts +83 -0
  320. package/lib/types/trajectory/query.d.ts.map +1 -0
  321. package/lib/types/trajectory/query.js +187 -0
  322. package/lib/types/trajectoryPrefs.d.ts +36 -0
  323. package/lib/types/trajectoryPrefs.d.ts.map +1 -0
  324. package/lib/types/trajectoryPrefs.js +65 -0
  325. package/lib/types/update.d.ts +3 -3
  326. package/lib/types/update.d.ts.map +1 -1
  327. package/lib/types/update.js +18 -7
  328. package/lib/types/utils/clipboard.d.ts +101 -29
  329. package/lib/types/utils/clipboard.d.ts.map +1 -1
  330. package/lib/types/utils/clipboard.js +533 -55
  331. package/lib/types/utils/debug.d.ts +1 -1
  332. package/lib/types/utils/debug.js +2 -2
  333. package/lib/types/utils/execFileNoThrow.d.ts.map +1 -1
  334. package/lib/types/utils/execFileNoThrow.js +16 -6
  335. package/lib/types/utils/externalEditor.d.ts +115 -0
  336. package/lib/types/utils/externalEditor.d.ts.map +1 -0
  337. package/lib/types/utils/externalEditor.js +270 -0
  338. package/lib/types/utils/fullscreen.d.ts +2 -2
  339. package/lib/types/utils/fullscreen.js +3 -3
  340. package/lib/types/utils/loaded-context.d.ts +1 -1
  341. package/lib/types/utils/loaded-context.d.ts.map +1 -1
  342. package/lib/types/utils/modifiers.d.ts +24 -0
  343. package/lib/types/utils/modifiers.d.ts.map +1 -1
  344. package/lib/types/utils/modifiers.js +27 -0
  345. package/lib/types/utils/paths.d.ts +45 -0
  346. package/lib/types/utils/paths.d.ts.map +1 -0
  347. package/lib/types/utils/paths.js +69 -0
  348. package/lib/types/utils/shellQuote.d.ts +14 -0
  349. package/lib/types/utils/shellQuote.d.ts.map +1 -0
  350. package/lib/types/utils/shellQuote.js +39 -0
  351. package/lib/types/utils/workspaceRoot.d.ts +21 -0
  352. package/lib/types/utils/workspaceRoot.d.ts.map +1 -0
  353. package/lib/types/utils/workspaceRoot.js +47 -0
  354. package/lib/types/workspaces.d.ts +3 -0
  355. package/lib/types/workspaces.d.ts.map +1 -0
  356. package/lib/types/workspaces.js +4 -0
  357. package/package.json +26 -8
  358. package/lib/types/approvals.d.ts.map +0 -1
  359. package/lib/types/channel.d.ts.map +0 -1
  360. package/lib/types/childStderr.d.ts.map +0 -1
  361. package/lib/types/compat/index.d.ts +0 -20
  362. package/lib/types/compat/index.d.ts.map +0 -1
  363. package/lib/types/compat/sessionLog.d.ts +0 -40
  364. package/lib/types/compat/sessionLog.d.ts.map +0 -1
  365. package/lib/types/compat/sessionLog.js +0 -226
  366. package/lib/types/invariant.d.ts.map +0 -1
  367. package/lib/types/packaged-skills.d.ts.map +0 -1
  368. package/lib/types/plugin.d.ts.map +0 -1
  369. package/lib/types/presets.d.ts.map +0 -1
  370. package/lib/types/questions.d.ts.map +0 -1
  371. /package/lib/types/{approvals.d.ts → dsh-adapter/approvals.d.ts} +0 -0
  372. /package/lib/types/{approvals.js → dsh-adapter/approvals.js} +0 -0
  373. /package/lib/types/{childStderr.d.ts → dsh-adapter/childStderr.d.ts} +0 -0
  374. /package/lib/types/{invariant.d.ts → dsh-adapter/invariant.d.ts} +0 -0
  375. /package/lib/types/{invariant.js → dsh-adapter/invariant.js} +0 -0
  376. /package/lib/types/{packaged-skills.d.ts → dsh-adapter/packaged-skills.d.ts} +0 -0
  377. /package/lib/types/{packaged-skills.js → dsh-adapter/packaged-skills.js} +0 -0
  378. /package/lib/types/{presets.d.ts → dsh-adapter/presets.d.ts} +0 -0
  379. /package/lib/types/{presets.js → dsh-adapter/presets.js} +0 -0
@@ -105,13 +105,15 @@ export declare function xtversion(): TerminalQuery<XtversionResponse>;
105
105
  */
106
106
  export declare class TerminalQuerier {
107
107
  private stdout;
108
+ private setRawMode?;
108
109
  /**
109
110
  * Interleaved queue of queries and sentinels in send order. Terminals
110
111
  * respond in order, so each flush() barrier only drains queries queued
111
112
  * before it — concurrent batches from independent callers stay isolated.
112
113
  */
113
114
  private queue;
114
- constructor(stdout: NodeJS.WriteStream);
115
+ constructor(stdout: NodeJS.WriteStream, setRawMode?: ((enabled: boolean) => void) | undefined);
116
+ private holdRawMode;
115
117
  /**
116
118
  * Send a query and wait for its response.
117
119
  *
@@ -136,6 +138,8 @@ export declare class TerminalQuerier {
136
138
  * Safe to call with no pending queries — still waits for a round-trip.
137
139
  */
138
140
  flush(): Promise<void>;
141
+ /** Resolve and release all pending queries when their owning app unmounts. */
142
+ dispose(): void;
139
143
  /**
140
144
  * Dispatch a response parsed from stdin. Called by App.tsx's
141
145
  * processKeysInBatch for every `kind: 'response'` item.
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-querier.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal-querier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAI3D;;4CAE4C;AAC5C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACzE,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAA;CACvC,CAAA;AAED,KAAK,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AACnE,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAAA;AACzE,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAA;AAC9E,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAA;AAIzE;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAKlE;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;GAGG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAKjE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAK5D;AAeD;;;GAGG;AACH,qBAAa,eAAe;IAQd,OAAO,CAAC,MAAM;IAP1B;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAgB;gBAET,MAAM,EAAE,MAAM,CAAC,WAAW;IAE9C;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,gBAAgB,EAC7B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAWzB;;;;;;;;OAQG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI;CAiBtC"}
1
+ {"version":3,"file":"terminal-querier.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal-querier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAI3D;;4CAE4C;AAC5C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACzE,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAA;CACvC,CAAA;AAED,KAAK,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AACnE,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAAA;AACzE,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAA;AAC9E,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAC7D,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAA;AAIzE;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAKlE;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;GAGG;AACH,wBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAKjE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAK5D;AAgBD;;;GAGG;AACH,qBAAa,eAAe;IASxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;IATrB;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAgB;gBAGnB,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,UAAU,CAAC,GAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,aAAA;IAGjD,OAAO,CAAC,WAAW;IAKnB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,gBAAgB,EAC7B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYzB;;;;;;;;OAQG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,8EAA8E;IAC9E,OAAO,IAAI,IAAI;IAQf;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI;CAqBtC"}
@@ -115,14 +115,20 @@ const SENTINEL = csi('c');
115
115
  */
116
116
  export class TerminalQuerier {
117
117
  stdout;
118
+ setRawMode;
118
119
  /**
119
120
  * Interleaved queue of queries and sentinels in send order. Terminals
120
121
  * respond in order, so each flush() barrier only drains queries queued
121
122
  * before it — concurrent batches from independent callers stay isolated.
122
123
  */
123
124
  queue = [];
124
- constructor(stdout) {
125
+ constructor(stdout, setRawMode) {
125
126
  this.stdout = stdout;
127
+ this.setRawMode = setRawMode;
128
+ }
129
+ holdRawMode() {
130
+ this.setRawMode?.(true);
131
+ return () => this.setRawMode?.(false);
126
132
  }
127
133
  /**
128
134
  * Send a query and wait for its response.
@@ -143,6 +149,7 @@ export class TerminalQuerier {
143
149
  kind: 'query',
144
150
  match: query.match,
145
151
  resolve: r => resolve(r),
152
+ releaseRawMode: this.holdRawMode(),
146
153
  });
147
154
  this.stdout.write(query.request);
148
155
  });
@@ -158,10 +165,24 @@ export class TerminalQuerier {
158
165
  */
159
166
  flush() {
160
167
  return new Promise(resolve => {
161
- this.queue.push({ kind: 'sentinel', resolve });
168
+ this.queue.push({
169
+ kind: 'sentinel',
170
+ resolve,
171
+ releaseRawMode: this.holdRawMode(),
172
+ });
162
173
  this.stdout.write(SENTINEL);
163
174
  });
164
175
  }
176
+ /** Resolve and release all pending queries when their owning app unmounts. */
177
+ dispose() {
178
+ for (const pending of this.queue.splice(0)) {
179
+ if (pending.kind === 'query')
180
+ pending.resolve(undefined);
181
+ else
182
+ pending.resolve();
183
+ pending.releaseRawMode();
184
+ }
185
+ }
165
186
  /**
166
187
  * Dispatch a response parsed from stdin. Called by App.tsx's
167
188
  * processKeysInBatch for every `kind: 'response'` item.
@@ -185,8 +206,10 @@ export class TerminalQuerier {
185
206
  const idx = this.queue.findIndex(p => p.kind === 'query' && p.match(r));
186
207
  if (idx !== -1) {
187
208
  const [q] = this.queue.splice(idx, 1);
188
- if (q?.kind === 'query')
209
+ if (q?.kind === 'query') {
189
210
  q.resolve(r);
211
+ q.releaseRawMode();
212
+ }
190
213
  return;
191
214
  }
192
215
  if (r.type === 'da1') {
@@ -198,6 +221,7 @@ export class TerminalQuerier {
198
221
  p.resolve(undefined);
199
222
  else
200
223
  p.resolve();
224
+ p.releaseRawMode();
201
225
  }
202
226
  }
203
227
  }
@@ -42,9 +42,27 @@ export declare function isXtermJs(): boolean;
42
42
  /**
43
43
  * True if this terminal correctly handles extended key reporting
44
44
  * (Kitty keyboard protocol + xterm modifyOtherKeys).
45
+ * WT_SESSION catches Windows Terminal regardless of TERM_PROGRAM (which WT
46
+ * doesn't set and SSH doesn't forward) — its modifyOtherKeys implementation
47
+ * covers navigation keys. It does NOT cover Enter (microsoft/terminal#530);
48
+ * Shift+Enter on native Windows needs win32-input-mode instead — see
49
+ * supportsWin32InputMode (issue #147).
45
50
  * @returns true when the terminal is on the extended-keys allowlist.
46
51
  */
47
52
  export declare function supportsExtendedKeys(): boolean;
53
+ /**
54
+ * True when win32-input-mode (DECSET 9001, `CSI ? 9001 h`) should drive
55
+ * keyboard input. This is a ConPTY feature — both Windows Terminal and
56
+ * classic conhost switch into it when the app emits the sequence, so a
57
+ * platform check alone covers both. In this mode every key arrives as a
58
+ * full INPUT_RECORD (`CSI Vk;Sc;Uc;Kd;Cs;Rc _`), the only encoding that
59
+ * preserves Enter's Shift/Ctrl bits on Windows (issue #147). It replaces
60
+ * the kitty/modifyOtherKeys push — callers must treat them as mutually
61
+ * exclusive. Non-ConPTY Windows terminals (mintty via winpty) ignore the
62
+ * unknown private mode and fall back to classic VT input unchanged.
63
+ * @returns true on native Windows (never in WSL — platform is linux there).
64
+ */
65
+ export declare function supportsWin32InputMode(): boolean;
48
66
  /**
49
67
  * True if the terminal scrolls the viewport when it receives cursor-up
50
68
  * sequences that reach above the visible area. On Windows, conhost's
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAKtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAKtC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,eAAe,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAuCtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAgDvD;AAcD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAmBD;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,SAAkC,CAAA;AAuBpE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAA;IAChB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,eAAe,UAAQ,GACtB,IAAI,CAqEN"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/ink/terminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAKtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAKtC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,eAAe,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAuCtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAgDvD;AAcD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,SAAkC,CAAA;AAuBpE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAA;IAChB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,eAAe,UAAQ,GACtB,IAAI,CAqEN"}
@@ -138,22 +138,50 @@ export function isXtermJs() {
138
138
  // in xterm.js-based terminals like VS Code). tmux is allowlisted because it
139
139
  // accepts modifyOtherKeys and doesn't forward the kitty sequence to the outer
140
140
  // terminal.
141
+ // env.terminal is lowercased (utils/env.ts) and falls back to TERM when
142
+ // TERM_PROGRAM is unset — kitty doesn't set TERM_PROGRAM, so its TERM
143
+ // (xterm-kitty) is listed too. Warp sets TERM_PROGRAM=WarpTerminal and
144
+ // implements the kitty keyboard protocol (issue #110).
141
145
  const EXTENDED_KEYS_TERMINALS = [
142
- 'iTerm.app',
146
+ 'iterm.app',
143
147
  'kitty',
144
- 'WezTerm',
148
+ 'xterm-kitty',
149
+ 'wezterm',
145
150
  'ghostty',
146
151
  'tmux',
152
+ 'warpterminal',
147
153
  'windows-terminal',
148
154
  ];
149
155
  /**
150
156
  * True if this terminal correctly handles extended key reporting
151
157
  * (Kitty keyboard protocol + xterm modifyOtherKeys).
158
+ * WT_SESSION catches Windows Terminal regardless of TERM_PROGRAM (which WT
159
+ * doesn't set and SSH doesn't forward) — its modifyOtherKeys implementation
160
+ * covers navigation keys. It does NOT cover Enter (microsoft/terminal#530);
161
+ * Shift+Enter on native Windows needs win32-input-mode instead — see
162
+ * supportsWin32InputMode (issue #147).
152
163
  * @returns true when the terminal is on the extended-keys allowlist.
153
164
  */
154
165
  export function supportsExtendedKeys() {
166
+ if (process.env.WT_SESSION)
167
+ return true;
155
168
  return EXTENDED_KEYS_TERMINALS.includes(env.terminal ?? '');
156
169
  }
170
+ /**
171
+ * True when win32-input-mode (DECSET 9001, `CSI ? 9001 h`) should drive
172
+ * keyboard input. This is a ConPTY feature — both Windows Terminal and
173
+ * classic conhost switch into it when the app emits the sequence, so a
174
+ * platform check alone covers both. In this mode every key arrives as a
175
+ * full INPUT_RECORD (`CSI Vk;Sc;Uc;Kd;Cs;Rc _`), the only encoding that
176
+ * preserves Enter's Shift/Ctrl bits on Windows (issue #147). It replaces
177
+ * the kitty/modifyOtherKeys push — callers must treat them as mutually
178
+ * exclusive. Non-ConPTY Windows terminals (mintty via winpty) ignore the
179
+ * unknown private mode and fall back to classic VT input unchanged.
180
+ * @returns true on native Windows (never in WSL — platform is linux there).
181
+ */
182
+ export function supportsWin32InputMode() {
183
+ return process.platform === 'win32';
184
+ }
157
185
  /**
158
186
  * True if the terminal scrolls the viewport when it receives cursor-up
159
187
  * sequences that reach above the visible area. On Windows, conhost's
@@ -173,7 +201,7 @@ export function hasCursorUpViewportYankBug() {
173
201
  */
174
202
  export const SYNC_OUTPUT_SUPPORTED = isSynchronizedOutputSupported();
175
203
  /**
176
- * Render forensics: when DSH_CC_RENDER_LOG names a file path, every painted
204
+ * Render forensics: when DSH_TUI_RENDER_LOG names a file path, every painted
177
205
  * frame's raw ANSI bytes append to it (one JSON-escaped line per frame,
178
206
  * prefixed with a timestamp header). Real-terminal rendering corruption
179
207
  * (missing rows, stale attributes) cannot be reproduced in headless xterm
@@ -181,7 +209,7 @@ export const SYNC_OUTPUT_SUPPORTED = isSynchronizedOutputSupported();
181
209
  * the corrupt frame can be diffed against the expected screen. Opt-in and
182
210
  * zero-cost when unset: the env read happens once at module load.
183
211
  */
184
- const RENDER_LOG_PATH = process.env.DSH_CC_RENDER_LOG ?? '';
212
+ const RENDER_LOG_PATH = process.env.DSH_TUI_RENDER_LOG ?? '';
185
213
  function dumpFrame(buffer) {
186
214
  if (RENDER_LOG_PATH === '')
187
215
  return;
@@ -250,4 +250,14 @@ export declare const ENABLE_MODIFY_OTHER_KEYS: string;
250
250
  * Disable xterm modifyOtherKeys (reset to default).
251
251
  */
252
252
  export declare const DISABLE_MODIFY_OTHER_KEYS: string;
253
+ /**
254
+ * Enable win32-input-mode.
255
+ * CSI ? 9001 h — every key arrives as CSI Vk;Sc;Uc;Kd;Cs;Rc _
256
+ */
257
+ export declare const ENABLE_WIN32_INPUT_MODE: string;
258
+ /**
259
+ * Disable win32-input-mode (restore classic VT input).
260
+ * CSI ? 9001 l
261
+ */
262
+ export declare const DISABLE_WIN32_INPUT_MODE: string;
253
263
  //# sourceMappingURL=csi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"csi.d.ts","sourceRoot":"","sources":["../../../../src/ink/termio/csi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csi.d.ts","sourceRoot":"","sources":["../../../../src/ink/termio/csi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,kDAAkD;AAClD,eAAO,MAAM,UAAU,QAA0C,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAMxD;AAED;;GAEG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CN,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,aAAa,oDAAqD,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,iBAAiB,sCAAuC,CAAA;AAErE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAQ1E,CAAA;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAI,GAAG,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAI,GAAG,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAI,GAAG,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAI,GAAG,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,sCAAsC;AACtC,eAAO,MAAM,WAAW,QAAW,CAAA;AAEnC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,2CAA2C;AAC3C,eAAO,MAAM,WAAW,QAAW,CAAA;AAEnC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAevD;AAID,mCAAmC;AACnC,eAAO,MAAM,WAAW,QAAW,CAAA;AAEnC,sCAAsC;AACtC,eAAO,MAAM,cAAc,QAAW,CAAA;AAItC;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wCAAwC;AACxC,eAAO,MAAM,UAAU,QAAc,CAAA;AAErC;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,QAAc,CAAA;AAEvC,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,QAAc,CAAA;AAE3C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5C;AAED;;;0DAG0D;AAC1D,eAAO,MAAM,SAAS,QAAc,CAAA;AAIpC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAI,GAAG,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAI,GAAG,MAAM,CAExC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,QAAW,CAAA;AAM3C,yDAAyD;AACzD,eAAO,MAAM,WAAW,QAAc,CAAA;AAEtC,wDAAwD;AACxD,eAAO,MAAM,SAAS,QAAc,CAAA;AAMpC,mDAAmD;AACnD,eAAO,MAAM,QAAQ,QAAW,CAAA;AAEhC,mDAAmD;AACnD,eAAO,MAAM,SAAS,QAAW,CAAA;AAMjC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAY,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAe,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAa,CAAA;AAanD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAgB,CAAA;AAEpD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAgB,CAAA"}
@@ -345,3 +345,23 @@ export const ENABLE_MODIFY_OTHER_KEYS = csi('>4;2m');
345
345
  * Disable xterm modifyOtherKeys (reset to default).
346
346
  */
347
347
  export const DISABLE_MODIFY_OTHER_KEYS = csi('>4m');
348
+ // win32-input-mode (ConPTY, DECSET 9001)
349
+ // Windows-only keyboard protocol: the terminal reports every key as a full
350
+ // INPUT_RECORD (CSI Vk;Sc;Uc;Kd;Cs;Rc _), which is the ONLY way Enter's
351
+ // modifier bits survive on Windows — Windows Terminal/conhost implement
352
+ // kitty/modifyOtherKeys but never attach modifiers to Enter
353
+ // (microsoft/terminal#530), so Shift+Enter is indistinguishable from Enter
354
+ // over classic VT sequences. Supported by both Windows Terminal and classic
355
+ // conhost (anything fronting ConPTY); terminals that don't know the private
356
+ // mode (mintty/winpty) ignore it.
357
+ // See: doc/specs/#4999 - Improved keyboard handling in Conpty (microsoft/terminal)
358
+ /**
359
+ * Enable win32-input-mode.
360
+ * CSI ? 9001 h — every key arrives as CSI Vk;Sc;Uc;Kd;Cs;Rc _
361
+ */
362
+ export const ENABLE_WIN32_INPUT_MODE = csi('?9001h');
363
+ /**
364
+ * Disable win32-input-mode (restore classic VT input).
365
+ * CSI ? 9001 l
366
+ */
367
+ export const DISABLE_WIN32_INPUT_MODE = csi('?9001l');
@@ -118,6 +118,16 @@ function tokenize(input, initialState, initialBuffer, flush, x10Mouse) {
118
118
  i++;
119
119
  emitSequence(data.slice(seqStart, i));
120
120
  }
121
+ else if (code === C0.CR || code === C0.LF) {
122
+ // Meta+Enter: ESC CR / ESC LF is how Option+Enter arrives from
123
+ // terminals without extended key reporting ("Use Option as Meta").
124
+ // CR/LF aren't ESC final bytes, but emitting the pair as a
125
+ // sequence lets the keypress parser recognize it — otherwise it
126
+ // merges with following text ('\x1b\rabc') and the CR submits
127
+ // the prompt instead of inserting a newline (#110).
128
+ i++;
129
+ emitSequence(data.slice(seqStart, i));
130
+ }
121
131
  else if (code === C0.ESC) {
122
132
  // Double escape - emit first, start new
123
133
  emitSequence(data.slice(seqStart, i));
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Persisted model-route preference (`/model` picker choice), kept at
3
- * `~/.dsh-cc/model.json` (`provider` + `model` keys) so the choice survives
3
+ * `~/.dsh-tui/model.json` (`provider` + `model` keys) so the choice survives
4
4
  * restarts — same pattern as agent-preset.json. The file is best-effort: a
5
5
  * missing/corrupt file or an incomplete route simply falls back to the
6
6
  * harness default. Explicit `provider`/`model` keys in cordis.yml win over
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Persisted model-route preference (`/model` picker choice), kept at
3
- * `~/.dsh-cc/model.json` (`provider` + `model` keys) so the choice survives
3
+ * `~/.dsh-tui/model.json` (`provider` + `model` keys) so the choice survives
4
4
  * restarts — same pattern as agent-preset.json. The file is best-effort: a
5
5
  * missing/corrupt file or an incomplete route simply falls back to the
6
6
  * harness default. Explicit `provider`/`model` keys in cordis.yml win over
@@ -9,9 +9,9 @@
9
9
  * atomic resolution itself lives in modelRoute.ts (issue #67).
10
10
  */
11
11
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
12
- import { homedir } from 'node:os';
13
12
  import { join } from 'node:path';
14
- const PREFS_DIR = join(homedir(), '.dsh-cc');
13
+ import { DATA_DIR } from './utils/paths.js';
14
+ const PREFS_DIR = DATA_DIR;
15
15
  /**
16
16
  * Parse a persisted `{ provider, model }` value; anything else yields
17
17
  * undefined.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Persisted agent-preset preference (`/preset` picker choice), kept at
3
- * `~/.dsh-cc/agent-preset.json` (`preset` key) so the choice survives
3
+ * `~/.dsh-tui/agent-preset.json` (`preset` key) so the choice survives
4
4
  * restarts — same pattern as working-activity.json. The file is best-effort:
5
5
  * a missing/corrupt file or an id the roster no longer supplies simply falls
6
6
  * back to the roster default (`standard`). An explicit `preset` key in
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Persisted agent-preset preference (`/preset` picker choice), kept at
3
- * `~/.dsh-cc/agent-preset.json` (`preset` key) so the choice survives
3
+ * `~/.dsh-tui/agent-preset.json` (`preset` key) so the choice survives
4
4
  * restarts — same pattern as working-activity.json. The file is best-effort:
5
5
  * a missing/corrupt file or an id the roster no longer supplies simply falls
6
6
  * back to the roster default (`standard`). An explicit `preset` key in
@@ -8,9 +8,9 @@
8
8
  * preference, matching activityFrames).
9
9
  */
10
10
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
11
- import { homedir } from 'node:os';
12
11
  import { join } from 'node:path';
13
- const PREFS_DIR = join(homedir(), '.dsh-cc');
12
+ import { DATA_DIR } from './utils/paths.js';
13
+ const PREFS_DIR = DATA_DIR;
14
14
  /** Ids a preset directory may use (dsh-agent-presets' own boundary). */
15
15
  const PRESET_ID = /^[a-z0-9][a-z0-9-]*$/;
16
16
  /**
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import type { Channel } from '../channel.js';
3
- import type { QuestionStore } from '../questions.js';
4
- import { ApprovalStore } from '../approvals.js';
5
- export declare function Chat({ channel, questionStore, approvalStore, onExit, onUpdate, }: {
2
+ import type { Channel } from '../dsh-adapter/channel.js';
3
+ import type { QuestionStore } from '../dsh-adapter/questions.js';
4
+ import { ApprovalStore } from '../dsh-adapter/approvals.js';
5
+ export declare function Chat({ channel, questionStore, approvalStore, onExit, onUpdate, fullscreen, trajectorySeen: trajectorySeenProp, }: {
6
6
  channel: Channel;
7
7
  questionStore: QuestionStore;
8
8
  /**
@@ -14,5 +14,21 @@ export declare function Chat({ channel, questionStore, approvalStore, onExit, on
14
14
  onExit: () => void;
15
15
  /** Update the installed package and restart the current TUI process. */
16
16
  onUpdate?: () => void;
17
+ /**
18
+ * True when the host already wrapped this tree in `<AlternateScreen>`
19
+ * (`fullscreen: true`). The trajectory scene needs this: entering the alt
20
+ * screen a second time is harmless, but the inner unmount's DEC 1049 exit
21
+ * would drop the whole app back to the main screen.
22
+ */
23
+ fullscreen?: boolean;
24
+ /**
25
+ * Whether the trajectory has been opened before on this machine.
26
+ *
27
+ * A prop rather than a filesystem read inside the component: a render
28
+ * initializer touching disk is the wrong layer, and hosts that already know
29
+ * (or tests that need determinism) can simply say. Falls back to the
30
+ * persisted flag when the host does not supply one.
31
+ */
32
+ trajectorySeen?: boolean;
17
33
  }): React.JSX.Element;
18
34
  //# sourceMappingURL=Chat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/screens/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,eAAe,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA0G/C,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,aAAa,EACb,aAAa,EACb,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,qBAsyCA"}
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/screens/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,OAAO,EAAuC,MAAM,2BAA2B,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AA2H3D,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,aAAa,EACb,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAkB,EAClB,cAAc,EAAE,kBAAkB,GACnC,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,qBA65DA"}