@dexto/tui 1.6.2

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 (739) hide show
  1. package/LICENSE +44 -0
  2. package/dist/InkCLIRefactored.cjs +319 -0
  3. package/dist/InkCLIRefactored.d.ts +55 -0
  4. package/dist/InkCLIRefactored.d.ts.map +1 -0
  5. package/dist/InkCLIRefactored.js +289 -0
  6. package/dist/assets/sounds/SOURCES.md +35 -0
  7. package/dist/assets/sounds/boot.wav +0 -0
  8. package/dist/assets/sounds/chime.wav +0 -0
  9. package/dist/assets/sounds/coin.wav +0 -0
  10. package/dist/assets/sounds/confirm.wav +0 -0
  11. package/dist/assets/sounds/levelup.wav +0 -0
  12. package/dist/assets/sounds/ping.wav +0 -0
  13. package/dist/assets/sounds/powerup.wav +0 -0
  14. package/dist/assets/sounds/startup.wav +0 -0
  15. package/dist/assets/sounds/success.wav +0 -0
  16. package/dist/assets/sounds/treasure.wav +0 -0
  17. package/dist/assets/sounds/win.wav +0 -0
  18. package/dist/components/ApprovalPrompt.cjs +353 -0
  19. package/dist/components/ApprovalPrompt.d.ts +44 -0
  20. package/dist/components/ApprovalPrompt.d.ts.map +1 -0
  21. package/dist/components/ApprovalPrompt.js +336 -0
  22. package/dist/components/BackgroundTasksPanel.cjs +117 -0
  23. package/dist/components/BackgroundTasksPanel.d.ts +18 -0
  24. package/dist/components/BackgroundTasksPanel.d.ts.map +1 -0
  25. package/dist/components/BackgroundTasksPanel.js +93 -0
  26. package/dist/components/CustomInput.cjs +77 -0
  27. package/dist/components/CustomInput.d.ts +17 -0
  28. package/dist/components/CustomInput.d.ts.map +1 -0
  29. package/dist/components/CustomInput.js +57 -0
  30. package/dist/components/CustomTextInput.cjs +76 -0
  31. package/dist/components/CustomTextInput.d.ts +16 -0
  32. package/dist/components/CustomTextInput.d.ts.map +1 -0
  33. package/dist/components/CustomTextInput.js +46 -0
  34. package/dist/components/EditableMultiLineInput.cjs +151 -0
  35. package/dist/components/EditableMultiLineInput.d.ts +19 -0
  36. package/dist/components/EditableMultiLineInput.d.ts.map +1 -0
  37. package/dist/components/EditableMultiLineInput.js +131 -0
  38. package/dist/components/ElicitationForm.cjs +622 -0
  39. package/dist/components/ElicitationForm.d.ts +24 -0
  40. package/dist/components/ElicitationForm.d.ts.map +1 -0
  41. package/dist/components/ElicitationForm.js +588 -0
  42. package/dist/components/ErrorBoundary.cjs +66 -0
  43. package/dist/components/ErrorBoundary.d.ts +20 -0
  44. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  45. package/dist/components/ErrorBoundary.js +32 -0
  46. package/dist/components/Footer.cjs +165 -0
  47. package/dist/components/Footer.d.ts +23 -0
  48. package/dist/components/Footer.d.ts.map +1 -0
  49. package/dist/components/Footer.js +131 -0
  50. package/dist/components/HistorySearchBar.cjs +40 -0
  51. package/dist/components/HistorySearchBar.d.ts +17 -0
  52. package/dist/components/HistorySearchBar.d.ts.map +1 -0
  53. package/dist/components/HistorySearchBar.js +16 -0
  54. package/dist/components/MultiLineInput.cjs +56 -0
  55. package/dist/components/MultiLineInput.d.ts +12 -0
  56. package/dist/components/MultiLineInput.d.ts.map +1 -0
  57. package/dist/components/MultiLineInput.js +36 -0
  58. package/dist/components/ResourceAutocomplete.cjs +344 -0
  59. package/dist/components/ResourceAutocomplete.d.ts +26 -0
  60. package/dist/components/ResourceAutocomplete.d.ts.map +1 -0
  61. package/dist/components/ResourceAutocomplete.js +322 -0
  62. package/dist/components/SlashCommandAutocomplete.cjs +389 -0
  63. package/dist/components/SlashCommandAutocomplete.d.ts +28 -0
  64. package/dist/components/SlashCommandAutocomplete.d.ts.map +1 -0
  65. package/dist/components/SlashCommandAutocomplete.js +363 -0
  66. package/dist/components/StatusBar.cjs +142 -0
  67. package/dist/components/StatusBar.d.ts +41 -0
  68. package/dist/components/StatusBar.d.ts.map +1 -0
  69. package/dist/components/StatusBar.js +118 -0
  70. package/dist/components/TextBufferInput.cjs +531 -0
  71. package/dist/components/TextBufferInput.d.ts +54 -0
  72. package/dist/components/TextBufferInput.d.ts.map +1 -0
  73. package/dist/components/TextBufferInput.js +507 -0
  74. package/dist/components/TodoPanel.cjs +129 -0
  75. package/dist/components/TodoPanel.d.ts +26 -0
  76. package/dist/components/TodoPanel.d.ts.map +1 -0
  77. package/dist/components/TodoPanel.js +105 -0
  78. package/dist/components/base/BaseAutocomplete.cjs +153 -0
  79. package/dist/components/base/BaseAutocomplete.d.ts +29 -0
  80. package/dist/components/base/BaseAutocomplete.d.ts.map +1 -0
  81. package/dist/components/base/BaseAutocomplete.js +129 -0
  82. package/dist/components/base/BaseSelector.cjs +167 -0
  83. package/dist/components/base/BaseSelector.d.ts +37 -0
  84. package/dist/components/base/BaseSelector.d.ts.map +1 -0
  85. package/dist/components/base/BaseSelector.js +151 -0
  86. package/dist/components/base/index.cjs +31 -0
  87. package/dist/components/base/index.d.ts +6 -0
  88. package/dist/components/base/index.d.ts.map +1 -0
  89. package/dist/components/base/index.js +6 -0
  90. package/dist/components/chat/ChatView.cjs +51 -0
  91. package/dist/components/chat/ChatView.d.ts +19 -0
  92. package/dist/components/chat/ChatView.d.ts.map +1 -0
  93. package/dist/components/chat/ChatView.js +27 -0
  94. package/dist/components/chat/Footer.cjs +32 -0
  95. package/dist/components/chat/Footer.d.ts +9 -0
  96. package/dist/components/chat/Footer.d.ts.map +1 -0
  97. package/dist/components/chat/Footer.js +8 -0
  98. package/dist/components/chat/Header.cjs +86 -0
  99. package/dist/components/chat/Header.d.ts +18 -0
  100. package/dist/components/chat/Header.d.ts.map +1 -0
  101. package/dist/components/chat/Header.js +62 -0
  102. package/dist/components/chat/MessageItem.cjs +269 -0
  103. package/dist/components/chat/MessageItem.d.ts +23 -0
  104. package/dist/components/chat/MessageItem.d.ts.map +1 -0
  105. package/dist/components/chat/MessageItem.js +247 -0
  106. package/dist/components/chat/MessageList.cjs +46 -0
  107. package/dist/components/chat/MessageList.d.ts +16 -0
  108. package/dist/components/chat/MessageList.d.ts.map +1 -0
  109. package/dist/components/chat/MessageList.js +22 -0
  110. package/dist/components/chat/QueuedMessagesDisplay.cjs +59 -0
  111. package/dist/components/chat/QueuedMessagesDisplay.d.ts +16 -0
  112. package/dist/components/chat/QueuedMessagesDisplay.d.ts.map +1 -0
  113. package/dist/components/chat/QueuedMessagesDisplay.js +35 -0
  114. package/dist/components/chat/ToolIcon.cjs +60 -0
  115. package/dist/components/chat/ToolIcon.d.ts +18 -0
  116. package/dist/components/chat/ToolIcon.d.ts.map +1 -0
  117. package/dist/components/chat/ToolIcon.js +36 -0
  118. package/dist/components/chat/index.cjs +43 -0
  119. package/dist/components/chat/index.d.ts +10 -0
  120. package/dist/components/chat/index.d.ts.map +1 -0
  121. package/dist/components/chat/index.js +14 -0
  122. package/dist/components/chat/styled-boxes/ConfigBox.cjs +56 -0
  123. package/dist/components/chat/styled-boxes/ConfigBox.d.ts +10 -0
  124. package/dist/components/chat/styled-boxes/ConfigBox.d.ts.map +1 -0
  125. package/dist/components/chat/styled-boxes/ConfigBox.js +32 -0
  126. package/dist/components/chat/styled-boxes/HelpBox.cjs +53 -0
  127. package/dist/components/chat/styled-boxes/HelpBox.d.ts +10 -0
  128. package/dist/components/chat/styled-boxes/HelpBox.d.ts.map +1 -0
  129. package/dist/components/chat/styled-boxes/HelpBox.js +29 -0
  130. package/dist/components/chat/styled-boxes/LogConfigBox.cjs +54 -0
  131. package/dist/components/chat/styled-boxes/LogConfigBox.d.ts +10 -0
  132. package/dist/components/chat/styled-boxes/LogConfigBox.d.ts.map +1 -0
  133. package/dist/components/chat/styled-boxes/LogConfigBox.js +30 -0
  134. package/dist/components/chat/styled-boxes/SessionHistoryBox.cjs +81 -0
  135. package/dist/components/chat/styled-boxes/SessionHistoryBox.d.ts +10 -0
  136. package/dist/components/chat/styled-boxes/SessionHistoryBox.d.ts.map +1 -0
  137. package/dist/components/chat/styled-boxes/SessionHistoryBox.js +57 -0
  138. package/dist/components/chat/styled-boxes/SessionListBox.cjs +58 -0
  139. package/dist/components/chat/styled-boxes/SessionListBox.d.ts +10 -0
  140. package/dist/components/chat/styled-boxes/SessionListBox.d.ts.map +1 -0
  141. package/dist/components/chat/styled-boxes/SessionListBox.js +34 -0
  142. package/dist/components/chat/styled-boxes/ShortcutsBox.cjs +39 -0
  143. package/dist/components/chat/styled-boxes/ShortcutsBox.d.ts +10 -0
  144. package/dist/components/chat/styled-boxes/ShortcutsBox.d.ts.map +1 -0
  145. package/dist/components/chat/styled-boxes/ShortcutsBox.js +15 -0
  146. package/dist/components/chat/styled-boxes/StatsBox.cjs +123 -0
  147. package/dist/components/chat/styled-boxes/StatsBox.d.ts +10 -0
  148. package/dist/components/chat/styled-boxes/StatsBox.d.ts.map +1 -0
  149. package/dist/components/chat/styled-boxes/StatsBox.js +99 -0
  150. package/dist/components/chat/styled-boxes/StyledBox.cjs +88 -0
  151. package/dist/components/chat/styled-boxes/StyledBox.d.ts +45 -0
  152. package/dist/components/chat/styled-boxes/StyledBox.d.ts.map +1 -0
  153. package/dist/components/chat/styled-boxes/StyledBox.js +61 -0
  154. package/dist/components/chat/styled-boxes/SyspromptBox.cjs +33 -0
  155. package/dist/components/chat/styled-boxes/SyspromptBox.d.ts +10 -0
  156. package/dist/components/chat/styled-boxes/SyspromptBox.d.ts.map +1 -0
  157. package/dist/components/chat/styled-boxes/SyspromptBox.js +9 -0
  158. package/dist/components/chat/styled-boxes/index.cjs +58 -0
  159. package/dist/components/chat/styled-boxes/index.d.ts +13 -0
  160. package/dist/components/chat/styled-boxes/index.d.ts.map +1 -0
  161. package/dist/components/chat/styled-boxes/index.js +23 -0
  162. package/dist/components/input/InputArea.cjs +74 -0
  163. package/dist/components/input/InputArea.d.ts +48 -0
  164. package/dist/components/input/InputArea.d.ts.map +1 -0
  165. package/dist/components/input/InputArea.js +50 -0
  166. package/dist/components/input/index.cjs +28 -0
  167. package/dist/components/input/index.d.ts +5 -0
  168. package/dist/components/input/index.d.ts.map +1 -0
  169. package/dist/components/input/index.js +4 -0
  170. package/dist/components/modes/AlternateBufferCLI.cjs +360 -0
  171. package/dist/components/modes/AlternateBufferCLI.d.ts +28 -0
  172. package/dist/components/modes/AlternateBufferCLI.d.ts.map +1 -0
  173. package/dist/components/modes/AlternateBufferCLI.js +339 -0
  174. package/dist/components/modes/StaticCLI.cjs +303 -0
  175. package/dist/components/modes/StaticCLI.d.ts +30 -0
  176. package/dist/components/modes/StaticCLI.d.ts.map +1 -0
  177. package/dist/components/modes/StaticCLI.js +279 -0
  178. package/dist/components/modes/index.cjs +31 -0
  179. package/dist/components/modes/index.d.ts +10 -0
  180. package/dist/components/modes/index.d.ts.map +1 -0
  181. package/dist/components/modes/index.js +6 -0
  182. package/dist/components/overlays/ApiKeyInput.cjs +131 -0
  183. package/dist/components/overlays/ApiKeyInput.d.ts +26 -0
  184. package/dist/components/overlays/ApiKeyInput.d.ts.map +1 -0
  185. package/dist/components/overlays/ApiKeyInput.js +115 -0
  186. package/dist/components/overlays/CommandOutputOverlay.cjs +103 -0
  187. package/dist/components/overlays/CommandOutputOverlay.d.ts +13 -0
  188. package/dist/components/overlays/CommandOutputOverlay.d.ts.map +1 -0
  189. package/dist/components/overlays/CommandOutputOverlay.js +69 -0
  190. package/dist/components/overlays/ContextStatsOverlay.cjs +354 -0
  191. package/dist/components/overlays/ContextStatsOverlay.d.ts +26 -0
  192. package/dist/components/overlays/ContextStatsOverlay.d.ts.map +1 -0
  193. package/dist/components/overlays/ContextStatsOverlay.js +334 -0
  194. package/dist/components/overlays/CustomModelWizard.cjs +362 -0
  195. package/dist/components/overlays/CustomModelWizard.d.ts +29 -0
  196. package/dist/components/overlays/CustomModelWizard.d.ts.map +1 -0
  197. package/dist/components/overlays/CustomModelWizard.js +356 -0
  198. package/dist/components/overlays/ExportWizard.cjs +382 -0
  199. package/dist/components/overlays/ExportWizard.d.ts +22 -0
  200. package/dist/components/overlays/ExportWizard.d.ts.map +1 -0
  201. package/dist/components/overlays/ExportWizard.js +352 -0
  202. package/dist/components/overlays/LogLevelSelector.cjs +120 -0
  203. package/dist/components/overlays/LogLevelSelector.d.ts +23 -0
  204. package/dist/components/overlays/LogLevelSelector.d.ts.map +1 -0
  205. package/dist/components/overlays/LogLevelSelector.js +100 -0
  206. package/dist/components/overlays/LoginOverlay.cjs +211 -0
  207. package/dist/components/overlays/LoginOverlay.d.ts +22 -0
  208. package/dist/components/overlays/LoginOverlay.d.ts.map +1 -0
  209. package/dist/components/overlays/LoginOverlay.js +194 -0
  210. package/dist/components/overlays/LogoutOverlay.cjs +138 -0
  211. package/dist/components/overlays/LogoutOverlay.d.ts +20 -0
  212. package/dist/components/overlays/LogoutOverlay.d.ts.map +1 -0
  213. package/dist/components/overlays/LogoutOverlay.js +130 -0
  214. package/dist/components/overlays/MarketplaceAddPrompt.cjs +119 -0
  215. package/dist/components/overlays/MarketplaceAddPrompt.d.ts +20 -0
  216. package/dist/components/overlays/MarketplaceAddPrompt.d.ts.map +1 -0
  217. package/dist/components/overlays/MarketplaceAddPrompt.js +99 -0
  218. package/dist/components/overlays/MarketplaceBrowser.cjs +364 -0
  219. package/dist/components/overlays/MarketplaceBrowser.d.ts +31 -0
  220. package/dist/components/overlays/MarketplaceBrowser.d.ts.map +1 -0
  221. package/dist/components/overlays/MarketplaceBrowser.js +358 -0
  222. package/dist/components/overlays/McpAddChoice.cjs +100 -0
  223. package/dist/components/overlays/McpAddChoice.d.ts +22 -0
  224. package/dist/components/overlays/McpAddChoice.d.ts.map +1 -0
  225. package/dist/components/overlays/McpAddChoice.js +80 -0
  226. package/dist/components/overlays/McpAddSelector.cjs +113 -0
  227. package/dist/components/overlays/McpAddSelector.d.ts +26 -0
  228. package/dist/components/overlays/McpAddSelector.d.ts.map +1 -0
  229. package/dist/components/overlays/McpAddSelector.js +93 -0
  230. package/dist/components/overlays/McpCustomTypeSelector.cjs +99 -0
  231. package/dist/components/overlays/McpCustomTypeSelector.d.ts +21 -0
  232. package/dist/components/overlays/McpCustomTypeSelector.d.ts.map +1 -0
  233. package/dist/components/overlays/McpCustomTypeSelector.js +79 -0
  234. package/dist/components/overlays/McpCustomWizard.cjs +258 -0
  235. package/dist/components/overlays/McpCustomWizard.d.ts +29 -0
  236. package/dist/components/overlays/McpCustomWizard.d.ts.map +1 -0
  237. package/dist/components/overlays/McpCustomWizard.js +238 -0
  238. package/dist/components/overlays/McpRemoveSelector.cjs +127 -0
  239. package/dist/components/overlays/McpRemoveSelector.d.ts +22 -0
  240. package/dist/components/overlays/McpRemoveSelector.d.ts.map +1 -0
  241. package/dist/components/overlays/McpRemoveSelector.js +107 -0
  242. package/dist/components/overlays/McpSelector.cjs +94 -0
  243. package/dist/components/overlays/McpSelector.d.ts +21 -0
  244. package/dist/components/overlays/McpSelector.d.ts.map +1 -0
  245. package/dist/components/overlays/McpSelector.js +74 -0
  246. package/dist/components/overlays/McpServerActions.cjs +124 -0
  247. package/dist/components/overlays/McpServerActions.d.ts +28 -0
  248. package/dist/components/overlays/McpServerActions.d.ts.map +1 -0
  249. package/dist/components/overlays/McpServerActions.js +111 -0
  250. package/dist/components/overlays/McpServerList.cjs +152 -0
  251. package/dist/components/overlays/McpServerList.d.ts +29 -0
  252. package/dist/components/overlays/McpServerList.d.ts.map +1 -0
  253. package/dist/components/overlays/McpServerList.js +139 -0
  254. package/dist/components/overlays/ModelSelectorRefactored.cjs +869 -0
  255. package/dist/components/overlays/ModelSelectorRefactored.d.ts +27 -0
  256. package/dist/components/overlays/ModelSelectorRefactored.d.ts.map +1 -0
  257. package/dist/components/overlays/ModelSelectorRefactored.js +870 -0
  258. package/dist/components/overlays/PluginActions.cjs +108 -0
  259. package/dist/components/overlays/PluginActions.d.ts +27 -0
  260. package/dist/components/overlays/PluginActions.d.ts.map +1 -0
  261. package/dist/components/overlays/PluginActions.js +95 -0
  262. package/dist/components/overlays/PluginList.cjs +115 -0
  263. package/dist/components/overlays/PluginList.d.ts +21 -0
  264. package/dist/components/overlays/PluginList.d.ts.map +1 -0
  265. package/dist/components/overlays/PluginList.js +102 -0
  266. package/dist/components/overlays/PluginManager.cjs +106 -0
  267. package/dist/components/overlays/PluginManager.d.ts +21 -0
  268. package/dist/components/overlays/PluginManager.d.ts.map +1 -0
  269. package/dist/components/overlays/PluginManager.js +86 -0
  270. package/dist/components/overlays/PromptAddChoice.cjs +92 -0
  271. package/dist/components/overlays/PromptAddChoice.d.ts +22 -0
  272. package/dist/components/overlays/PromptAddChoice.d.ts.map +1 -0
  273. package/dist/components/overlays/PromptAddChoice.js +72 -0
  274. package/dist/components/overlays/PromptAddWizard.cjs +215 -0
  275. package/dist/components/overlays/PromptAddWizard.d.ts +29 -0
  276. package/dist/components/overlays/PromptAddWizard.d.ts.map +1 -0
  277. package/dist/components/overlays/PromptAddWizard.js +195 -0
  278. package/dist/components/overlays/PromptDeleteSelector.cjs +148 -0
  279. package/dist/components/overlays/PromptDeleteSelector.d.ts +27 -0
  280. package/dist/components/overlays/PromptDeleteSelector.d.ts.map +1 -0
  281. package/dist/components/overlays/PromptDeleteSelector.js +135 -0
  282. package/dist/components/overlays/PromptList.cjs +169 -0
  283. package/dist/components/overlays/PromptList.d.ts +33 -0
  284. package/dist/components/overlays/PromptList.d.ts.map +1 -0
  285. package/dist/components/overlays/PromptList.js +157 -0
  286. package/dist/components/overlays/ReasoningOverlay.cjs +305 -0
  287. package/dist/components/overlays/ReasoningOverlay.d.ts +28 -0
  288. package/dist/components/overlays/ReasoningOverlay.d.ts.map +1 -0
  289. package/dist/components/overlays/ReasoningOverlay.js +278 -0
  290. package/dist/components/overlays/SearchOverlay.cjs +249 -0
  291. package/dist/components/overlays/SearchOverlay.d.ts +23 -0
  292. package/dist/components/overlays/SearchOverlay.d.ts.map +1 -0
  293. package/dist/components/overlays/SearchOverlay.js +236 -0
  294. package/dist/components/overlays/SessionRenameOverlay.cjs +101 -0
  295. package/dist/components/overlays/SessionRenameOverlay.d.ts +21 -0
  296. package/dist/components/overlays/SessionRenameOverlay.d.ts.map +1 -0
  297. package/dist/components/overlays/SessionRenameOverlay.js +81 -0
  298. package/dist/components/overlays/SessionSelectorRefactored.cjs +153 -0
  299. package/dist/components/overlays/SessionSelectorRefactored.d.ts +26 -0
  300. package/dist/components/overlays/SessionSelectorRefactored.d.ts.map +1 -0
  301. package/dist/components/overlays/SessionSelectorRefactored.js +133 -0
  302. package/dist/components/overlays/SessionSubcommandSelector.cjs +84 -0
  303. package/dist/components/overlays/SessionSubcommandSelector.d.ts +21 -0
  304. package/dist/components/overlays/SessionSubcommandSelector.d.ts.map +1 -0
  305. package/dist/components/overlays/SessionSubcommandSelector.js +64 -0
  306. package/dist/components/overlays/SoundsSelector.cjs +632 -0
  307. package/dist/components/overlays/SoundsSelector.d.ts +21 -0
  308. package/dist/components/overlays/SoundsSelector.d.ts.map +1 -0
  309. package/dist/components/overlays/SoundsSelector.js +619 -0
  310. package/dist/components/overlays/StreamSelector.cjs +104 -0
  311. package/dist/components/overlays/StreamSelector.d.ts +20 -0
  312. package/dist/components/overlays/StreamSelector.d.ts.map +1 -0
  313. package/dist/components/overlays/StreamSelector.js +84 -0
  314. package/dist/components/overlays/ToolBrowser.cjs +854 -0
  315. package/dist/components/overlays/ToolBrowser.d.ts +26 -0
  316. package/dist/components/overlays/ToolBrowser.d.ts.map +1 -0
  317. package/dist/components/overlays/ToolBrowser.js +831 -0
  318. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.cjs +784 -0
  319. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.d.ts +25 -0
  320. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.d.ts.map +1 -0
  321. package/dist/components/overlays/custom-model-wizard/LocalModelWizard.js +768 -0
  322. package/dist/components/overlays/custom-model-wizard/index.cjs +26 -0
  323. package/dist/components/overlays/custom-model-wizard/index.d.ts +15 -0
  324. package/dist/components/overlays/custom-model-wizard/index.d.ts.map +1 -0
  325. package/dist/components/overlays/custom-model-wizard/index.js +3 -0
  326. package/dist/components/overlays/custom-model-wizard/provider-config.cjs +549 -0
  327. package/dist/components/overlays/custom-model-wizard/provider-config.d.ts +42 -0
  328. package/dist/components/overlays/custom-model-wizard/provider-config.d.ts.map +1 -0
  329. package/dist/components/overlays/custom-model-wizard/provider-config.js +516 -0
  330. package/dist/components/overlays/custom-model-wizard/provider-config.test.cjs +31 -0
  331. package/dist/components/overlays/custom-model-wizard/provider-config.test.d.ts +2 -0
  332. package/dist/components/overlays/custom-model-wizard/provider-config.test.d.ts.map +1 -0
  333. package/dist/components/overlays/custom-model-wizard/provider-config.test.js +30 -0
  334. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.cjs +59 -0
  335. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts +25 -0
  336. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.d.ts.map +1 -0
  337. package/dist/components/overlays/custom-model-wizard/shared/ApiKeyStep.js +33 -0
  338. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.cjs +64 -0
  339. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts +17 -0
  340. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.d.ts.map +1 -0
  341. package/dist/components/overlays/custom-model-wizard/shared/ProviderSelector.js +40 -0
  342. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.cjs +48 -0
  343. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts +20 -0
  344. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.d.ts.map +1 -0
  345. package/dist/components/overlays/custom-model-wizard/shared/SetupInfoBanner.js +24 -0
  346. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.cjs +58 -0
  347. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts +30 -0
  348. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.d.ts.map +1 -0
  349. package/dist/components/overlays/custom-model-wizard/shared/WizardStepInput.js +34 -0
  350. package/dist/components/overlays/custom-model-wizard/shared/index.cjs +41 -0
  351. package/dist/components/overlays/custom-model-wizard/shared/index.d.ts +8 -0
  352. package/dist/components/overlays/custom-model-wizard/shared/index.d.ts.map +1 -0
  353. package/dist/components/overlays/custom-model-wizard/shared/index.js +12 -0
  354. package/dist/components/overlays/custom-model-wizard/types.cjs +53 -0
  355. package/dist/components/overlays/custom-model-wizard/types.d.ts +85 -0
  356. package/dist/components/overlays/custom-model-wizard/types.d.ts.map +1 -0
  357. package/dist/components/overlays/custom-model-wizard/types.js +29 -0
  358. package/dist/components/renderers/DiffRenderer.cjs +145 -0
  359. package/dist/components/renderers/DiffRenderer.d.ts +21 -0
  360. package/dist/components/renderers/DiffRenderer.d.ts.map +1 -0
  361. package/dist/components/renderers/DiffRenderer.js +118 -0
  362. package/dist/components/renderers/FilePreviewRenderer.cjs +146 -0
  363. package/dist/components/renderers/FilePreviewRenderer.d.ts +30 -0
  364. package/dist/components/renderers/FilePreviewRenderer.d.ts.map +1 -0
  365. package/dist/components/renderers/FilePreviewRenderer.js +119 -0
  366. package/dist/components/renderers/FileRenderer.cjs +95 -0
  367. package/dist/components/renderers/FileRenderer.d.ts +21 -0
  368. package/dist/components/renderers/FileRenderer.d.ts.map +1 -0
  369. package/dist/components/renderers/FileRenderer.js +71 -0
  370. package/dist/components/renderers/GenericRenderer.cjs +63 -0
  371. package/dist/components/renderers/GenericRenderer.d.ts +21 -0
  372. package/dist/components/renderers/GenericRenderer.d.ts.map +1 -0
  373. package/dist/components/renderers/GenericRenderer.js +39 -0
  374. package/dist/components/renderers/SearchRenderer.cjs +77 -0
  375. package/dist/components/renderers/SearchRenderer.d.ts +20 -0
  376. package/dist/components/renderers/SearchRenderer.d.ts.map +1 -0
  377. package/dist/components/renderers/SearchRenderer.js +43 -0
  378. package/dist/components/renderers/ShellRenderer.cjs +61 -0
  379. package/dist/components/renderers/ShellRenderer.d.ts +21 -0
  380. package/dist/components/renderers/ShellRenderer.d.ts.map +1 -0
  381. package/dist/components/renderers/ShellRenderer.js +37 -0
  382. package/dist/components/renderers/diff-shared.cjs +172 -0
  383. package/dist/components/renderers/diff-shared.d.ts +61 -0
  384. package/dist/components/renderers/diff-shared.d.ts.map +1 -0
  385. package/dist/components/renderers/diff-shared.js +142 -0
  386. package/dist/components/renderers/index.cjs +75 -0
  387. package/dist/components/renderers/index.d.ts +28 -0
  388. package/dist/components/renderers/index.d.ts.map +1 -0
  389. package/dist/components/renderers/index.js +44 -0
  390. package/dist/components/shared/FocusOverlayFrame.cjs +39 -0
  391. package/dist/components/shared/FocusOverlayFrame.d.ts +7 -0
  392. package/dist/components/shared/FocusOverlayFrame.d.ts.map +1 -0
  393. package/dist/components/shared/FocusOverlayFrame.js +15 -0
  394. package/dist/components/shared/HintBar.cjs +33 -0
  395. package/dist/components/shared/HintBar.d.ts +6 -0
  396. package/dist/components/shared/HintBar.d.ts.map +1 -0
  397. package/dist/components/shared/HintBar.js +9 -0
  398. package/dist/components/shared/MarkdownText.cjs +409 -0
  399. package/dist/components/shared/MarkdownText.d.ts +38 -0
  400. package/dist/components/shared/MarkdownText.d.ts.map +1 -0
  401. package/dist/components/shared/MarkdownText.js +373 -0
  402. package/dist/components/shared/VirtualizedList.cjs +365 -0
  403. package/dist/components/shared/VirtualizedList.d.ts +44 -0
  404. package/dist/components/shared/VirtualizedList.d.ts.map +1 -0
  405. package/dist/components/shared/VirtualizedList.js +349 -0
  406. package/dist/components/shared/text-buffer.cjs +1220 -0
  407. package/dist/components/shared/text-buffer.d.ts +185 -0
  408. package/dist/components/shared/text-buffer.d.ts.map +1 -0
  409. package/dist/components/shared/text-buffer.js +1194 -0
  410. package/dist/constants/processingPhrases.cjs +114 -0
  411. package/dist/constants/processingPhrases.d.ts +10 -0
  412. package/dist/constants/processingPhrases.d.ts.map +1 -0
  413. package/dist/constants/processingPhrases.js +89 -0
  414. package/dist/constants/spinnerFrames.cjs +28 -0
  415. package/dist/constants/spinnerFrames.d.ts +2 -0
  416. package/dist/constants/spinnerFrames.d.ts.map +1 -0
  417. package/dist/constants/spinnerFrames.js +4 -0
  418. package/dist/constants/tips.cjs +76 -0
  419. package/dist/constants/tips.d.ts +15 -0
  420. package/dist/constants/tips.d.ts.map +1 -0
  421. package/dist/constants/tips.js +51 -0
  422. package/dist/containers/InputContainer.cjs +706 -0
  423. package/dist/containers/InputContainer.d.ts +62 -0
  424. package/dist/containers/InputContainer.d.ts.map +1 -0
  425. package/dist/containers/InputContainer.js +672 -0
  426. package/dist/containers/OverlayContainer.cjs +2372 -0
  427. package/dist/containers/OverlayContainer.d.ts +42 -0
  428. package/dist/containers/OverlayContainer.d.ts.map +1 -0
  429. package/dist/containers/OverlayContainer.js +2356 -0
  430. package/dist/containers/index.cjs +31 -0
  431. package/dist/containers/index.d.ts +6 -0
  432. package/dist/containers/index.d.ts.map +1 -0
  433. package/dist/containers/index.js +6 -0
  434. package/dist/contexts/KeypressContext.cjs +436 -0
  435. package/dist/contexts/KeypressContext.d.ts +36 -0
  436. package/dist/contexts/KeypressContext.d.ts.map +1 -0
  437. package/dist/contexts/KeypressContext.js +408 -0
  438. package/dist/contexts/MouseContext.cjs +122 -0
  439. package/dist/contexts/MouseContext.d.ts +27 -0
  440. package/dist/contexts/MouseContext.d.ts.map +1 -0
  441. package/dist/contexts/MouseContext.js +101 -0
  442. package/dist/contexts/ScrollProvider.cjs +180 -0
  443. package/dist/contexts/ScrollProvider.d.ts +33 -0
  444. package/dist/contexts/ScrollProvider.d.ts.map +1 -0
  445. package/dist/contexts/ScrollProvider.js +163 -0
  446. package/dist/contexts/SoundContext.cjs +38 -0
  447. package/dist/contexts/SoundContext.d.ts +23 -0
  448. package/dist/contexts/SoundContext.d.ts.map +1 -0
  449. package/dist/contexts/SoundContext.js +13 -0
  450. package/dist/contexts/index.cjs +47 -0
  451. package/dist/contexts/index.d.ts +8 -0
  452. package/dist/contexts/index.d.ts.map +1 -0
  453. package/dist/contexts/index.js +25 -0
  454. package/dist/hooks/index.cjs +54 -0
  455. package/dist/hooks/index.d.ts +12 -0
  456. package/dist/hooks/index.d.ts.map +1 -0
  457. package/dist/hooks/index.js +28 -0
  458. package/dist/hooks/useAgentEvents.cjs +382 -0
  459. package/dist/hooks/useAgentEvents.d.ts +49 -0
  460. package/dist/hooks/useAgentEvents.d.ts.map +1 -0
  461. package/dist/hooks/useAgentEvents.js +360 -0
  462. package/dist/hooks/useAnimationTick.cjs +71 -0
  463. package/dist/hooks/useAnimationTick.d.ts +11 -0
  464. package/dist/hooks/useAnimationTick.d.ts.map +1 -0
  465. package/dist/hooks/useAnimationTick.js +47 -0
  466. package/dist/hooks/useBatchedScroll.cjs +44 -0
  467. package/dist/hooks/useBatchedScroll.d.ts +14 -0
  468. package/dist/hooks/useBatchedScroll.d.ts.map +1 -0
  469. package/dist/hooks/useBatchedScroll.js +20 -0
  470. package/dist/hooks/useCLIState.cjs +222 -0
  471. package/dist/hooks/useCLIState.d.ts +53 -0
  472. package/dist/hooks/useCLIState.d.ts.map +1 -0
  473. package/dist/hooks/useCLIState.js +201 -0
  474. package/dist/hooks/useElapsedTime.cjs +79 -0
  475. package/dist/hooks/useElapsedTime.d.ts +24 -0
  476. package/dist/hooks/useElapsedTime.d.ts.map +1 -0
  477. package/dist/hooks/useElapsedTime.js +55 -0
  478. package/dist/hooks/useGitBranch.cjs +47 -0
  479. package/dist/hooks/useGitBranch.d.ts +13 -0
  480. package/dist/hooks/useGitBranch.d.ts.map +1 -0
  481. package/dist/hooks/useGitBranch.js +23 -0
  482. package/dist/hooks/useHistorySearch.cjs +219 -0
  483. package/dist/hooks/useHistorySearch.d.ts +61 -0
  484. package/dist/hooks/useHistorySearch.d.ts.map +1 -0
  485. package/dist/hooks/useHistorySearch.js +195 -0
  486. package/dist/hooks/useInputHistory.cjs +47 -0
  487. package/dist/hooks/useInputHistory.d.ts +18 -0
  488. package/dist/hooks/useInputHistory.d.ts.map +1 -0
  489. package/dist/hooks/useInputHistory.js +23 -0
  490. package/dist/hooks/useInputOrchestrator.cjs +663 -0
  491. package/dist/hooks/useInputOrchestrator.d.ts +136 -0
  492. package/dist/hooks/useInputOrchestrator.d.ts.map +1 -0
  493. package/dist/hooks/useInputOrchestrator.js +635 -0
  494. package/dist/hooks/useKeyboardShortcuts.cjs +87 -0
  495. package/dist/hooks/useKeyboardShortcuts.d.ts +21 -0
  496. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  497. package/dist/hooks/useKeyboardShortcuts.js +63 -0
  498. package/dist/hooks/useKeypress.cjs +41 -0
  499. package/dist/hooks/useKeypress.d.ts +18 -0
  500. package/dist/hooks/useKeypress.d.ts.map +1 -0
  501. package/dist/hooks/useKeypress.js +17 -0
  502. package/dist/hooks/usePhraseCycler.cjs +74 -0
  503. package/dist/hooks/usePhraseCycler.d.ts +30 -0
  504. package/dist/hooks/usePhraseCycler.d.ts.map +1 -0
  505. package/dist/hooks/usePhraseCycler.js +50 -0
  506. package/dist/hooks/useStreaming.cjs +43 -0
  507. package/dist/hooks/useStreaming.d.ts +19 -0
  508. package/dist/hooks/useStreaming.d.ts.map +1 -0
  509. package/dist/hooks/useStreaming.js +24 -0
  510. package/dist/hooks/useTerminalSize.cjs +48 -0
  511. package/dist/hooks/useTerminalSize.d.ts +14 -0
  512. package/dist/hooks/useTerminalSize.d.ts.map +1 -0
  513. package/dist/hooks/useTerminalSize.js +24 -0
  514. package/dist/hooks/useTokenCounter.cjs +105 -0
  515. package/dist/hooks/useTokenCounter.d.ts +46 -0
  516. package/dist/hooks/useTokenCounter.d.ts.map +1 -0
  517. package/dist/hooks/useTokenCounter.js +81 -0
  518. package/dist/host/index.cjs +144 -0
  519. package/dist/host/index.d.ts +108 -0
  520. package/dist/host/index.d.ts.map +1 -0
  521. package/dist/host/index.js +104 -0
  522. package/dist/index.cjs +33 -0
  523. package/dist/index.d.cts +195 -0
  524. package/dist/index.d.ts +3 -0
  525. package/dist/index.d.ts.map +1 -0
  526. package/dist/index.js +7 -0
  527. package/dist/interactive-commands/auth/index.cjs +44 -0
  528. package/dist/interactive-commands/auth/index.d.ts +13 -0
  529. package/dist/interactive-commands/auth/index.d.ts.map +1 -0
  530. package/dist/interactive-commands/auth/index.js +19 -0
  531. package/dist/interactive-commands/command-parser.cjs +184 -0
  532. package/dist/interactive-commands/command-parser.d.ts +56 -0
  533. package/dist/interactive-commands/command-parser.d.ts.map +1 -0
  534. package/dist/interactive-commands/command-parser.js +146 -0
  535. package/dist/interactive-commands/commands.cjs +135 -0
  536. package/dist/interactive-commands/commands.d.ts +52 -0
  537. package/dist/interactive-commands/commands.d.ts.map +1 -0
  538. package/dist/interactive-commands/commands.js +99 -0
  539. package/dist/interactive-commands/documentation-commands.cjs +61 -0
  540. package/dist/interactive-commands/documentation-commands.d.ts +15 -0
  541. package/dist/interactive-commands/documentation-commands.d.ts.map +1 -0
  542. package/dist/interactive-commands/documentation-commands.js +27 -0
  543. package/dist/interactive-commands/exit-handler.cjs +40 -0
  544. package/dist/interactive-commands/exit-handler.d.ts +12 -0
  545. package/dist/interactive-commands/exit-handler.d.ts.map +1 -0
  546. package/dist/interactive-commands/exit-handler.js +15 -0
  547. package/dist/interactive-commands/exit-stats.cjs +41 -0
  548. package/dist/interactive-commands/exit-stats.d.ts +24 -0
  549. package/dist/interactive-commands/exit-stats.d.ts.map +1 -0
  550. package/dist/interactive-commands/exit-stats.js +15 -0
  551. package/dist/interactive-commands/export/index.cjs +36 -0
  552. package/dist/interactive-commands/export/index.d.ts +13 -0
  553. package/dist/interactive-commands/export/index.d.ts.map +1 -0
  554. package/dist/interactive-commands/export/index.js +12 -0
  555. package/dist/interactive-commands/general-commands.cjs +478 -0
  556. package/dist/interactive-commands/general-commands.d.ts +22 -0
  557. package/dist/interactive-commands/general-commands.d.ts.map +1 -0
  558. package/dist/interactive-commands/general-commands.js +443 -0
  559. package/dist/interactive-commands/mcp/index.cjs +35 -0
  560. package/dist/interactive-commands/mcp/index.d.ts +13 -0
  561. package/dist/interactive-commands/mcp/index.d.ts.map +1 -0
  562. package/dist/interactive-commands/mcp/index.js +11 -0
  563. package/dist/interactive-commands/model/index.cjs +36 -0
  564. package/dist/interactive-commands/model/index.d.ts +13 -0
  565. package/dist/interactive-commands/model/index.d.ts.map +1 -0
  566. package/dist/interactive-commands/model/index.js +12 -0
  567. package/dist/interactive-commands/plugin/index.cjs +35 -0
  568. package/dist/interactive-commands/plugin/index.d.ts +13 -0
  569. package/dist/interactive-commands/plugin/index.d.ts.map +1 -0
  570. package/dist/interactive-commands/plugin/index.js +11 -0
  571. package/dist/interactive-commands/prompt-commands.cjs +269 -0
  572. package/dist/interactive-commands/prompt-commands.d.ts +25 -0
  573. package/dist/interactive-commands/prompt-commands.d.ts.map +1 -0
  574. package/dist/interactive-commands/prompt-commands.js +244 -0
  575. package/dist/interactive-commands/session/index.cjs +32 -0
  576. package/dist/interactive-commands/session/index.d.ts +16 -0
  577. package/dist/interactive-commands/session/index.d.ts.map +1 -0
  578. package/dist/interactive-commands/session/index.js +6 -0
  579. package/dist/interactive-commands/session/session-commands.cjs +64 -0
  580. package/dist/interactive-commands/session/session-commands.d.ts +32 -0
  581. package/dist/interactive-commands/session/session-commands.d.ts.map +1 -0
  582. package/dist/interactive-commands/session/session-commands.js +38 -0
  583. package/dist/interactive-commands/system/index.cjs +28 -0
  584. package/dist/interactive-commands/system/index.d.ts +13 -0
  585. package/dist/interactive-commands/system/index.d.ts.map +1 -0
  586. package/dist/interactive-commands/system/index.js +4 -0
  587. package/dist/interactive-commands/system/system-commands.cjs +217 -0
  588. package/dist/interactive-commands/system/system-commands.d.ts +6 -0
  589. package/dist/interactive-commands/system/system-commands.d.ts.map +1 -0
  590. package/dist/interactive-commands/system/system-commands.js +195 -0
  591. package/dist/interactive-commands/tool-commands.cjs +38 -0
  592. package/dist/interactive-commands/tool-commands.d.ts +15 -0
  593. package/dist/interactive-commands/tool-commands.d.ts.map +1 -0
  594. package/dist/interactive-commands/tool-commands.js +14 -0
  595. package/dist/interactive-commands/utils/arg-parser.cjs +59 -0
  596. package/dist/interactive-commands/utils/arg-parser.d.ts +57 -0
  597. package/dist/interactive-commands/utils/arg-parser.d.ts.map +1 -0
  598. package/dist/interactive-commands/utils/arg-parser.js +34 -0
  599. package/dist/interactive-commands/utils/command-output.cjs +75 -0
  600. package/dist/interactive-commands/utils/command-output.d.ts +40 -0
  601. package/dist/interactive-commands/utils/command-output.d.ts.map +1 -0
  602. package/dist/interactive-commands/utils/command-output.js +51 -0
  603. package/dist/interactive-commands/utils/format-output.cjs +36 -0
  604. package/dist/interactive-commands/utils/format-output.d.ts +14 -0
  605. package/dist/interactive-commands/utils/format-output.d.ts.map +1 -0
  606. package/dist/interactive-commands/utils/format-output.js +11 -0
  607. package/dist/services/CommandService.cjs +68 -0
  608. package/dist/services/CommandService.d.ts +58 -0
  609. package/dist/services/CommandService.d.ts.map +1 -0
  610. package/dist/services/CommandService.js +41 -0
  611. package/dist/services/InputService.cjs +97 -0
  612. package/dist/services/InputService.d.ts +40 -0
  613. package/dist/services/InputService.d.ts.map +1 -0
  614. package/dist/services/InputService.js +78 -0
  615. package/dist/services/MessageService.cjs +69 -0
  616. package/dist/services/MessageService.d.ts +35 -0
  617. package/dist/services/MessageService.d.ts.map +1 -0
  618. package/dist/services/MessageService.js +51 -0
  619. package/dist/services/index.cjs +39 -0
  620. package/dist/services/index.d.ts +8 -0
  621. package/dist/services/index.d.ts.map +1 -0
  622. package/dist/services/index.js +16 -0
  623. package/dist/services/processStream.cjs +877 -0
  624. package/dist/services/processStream.d.ts +79 -0
  625. package/dist/services/processStream.d.ts.map +1 -0
  626. package/dist/services/processStream.js +843 -0
  627. package/dist/services/processStream.test.cjs +255 -0
  628. package/dist/services/processStream.test.d.ts +2 -0
  629. package/dist/services/processStream.test.d.ts.map +1 -0
  630. package/dist/services/processStream.test.js +254 -0
  631. package/dist/state/actions.cjs +16 -0
  632. package/dist/state/actions.d.ts +124 -0
  633. package/dist/state/actions.d.ts.map +1 -0
  634. package/dist/state/actions.js +0 -0
  635. package/dist/state/index.cjs +28 -0
  636. package/dist/state/index.d.ts +10 -0
  637. package/dist/state/index.d.ts.map +1 -0
  638. package/dist/state/index.js +4 -0
  639. package/dist/state/initialState.cjs +78 -0
  640. package/dist/state/initialState.d.ts +12 -0
  641. package/dist/state/initialState.d.ts.map +1 -0
  642. package/dist/state/initialState.js +54 -0
  643. package/dist/state/reducer.cjs +340 -0
  644. package/dist/state/reducer.d.ts +15 -0
  645. package/dist/state/reducer.d.ts.map +1 -0
  646. package/dist/state/reducer.js +316 -0
  647. package/dist/state/streaming-state.cjs +52 -0
  648. package/dist/state/streaming-state.d.ts +27 -0
  649. package/dist/state/streaming-state.d.ts.map +1 -0
  650. package/dist/state/streaming-state.js +25 -0
  651. package/dist/state/types.cjs +16 -0
  652. package/dist/state/types.d.ts +388 -0
  653. package/dist/state/types.d.ts.map +1 -0
  654. package/dist/state/types.js +0 -0
  655. package/dist/utils/bracketedPaste.cjs +37 -0
  656. package/dist/utils/bracketedPaste.d.ts +22 -0
  657. package/dist/utils/bracketedPaste.d.ts.map +1 -0
  658. package/dist/utils/bracketedPaste.js +12 -0
  659. package/dist/utils/clipboardUtils.cjs +297 -0
  660. package/dist/utils/clipboardUtils.d.ts +49 -0
  661. package/dist/utils/clipboardUtils.d.ts.map +1 -0
  662. package/dist/utils/clipboardUtils.js +261 -0
  663. package/dist/utils/commandOverlays.cjs +69 -0
  664. package/dist/utils/commandOverlays.d.ts +22 -0
  665. package/dist/utils/commandOverlays.d.ts.map +1 -0
  666. package/dist/utils/commandOverlays.js +44 -0
  667. package/dist/utils/debugLog.cjs +63 -0
  668. package/dist/utils/debugLog.d.ts +38 -0
  669. package/dist/utils/debugLog.d.ts.map +1 -0
  670. package/dist/utils/debugLog.js +39 -0
  671. package/dist/utils/elicitationSchema.cjs +85 -0
  672. package/dist/utils/elicitationSchema.d.ts +11 -0
  673. package/dist/utils/elicitationSchema.d.ts.map +1 -0
  674. package/dist/utils/elicitationSchema.js +61 -0
  675. package/dist/utils/elicitationSchema.test.cjs +78 -0
  676. package/dist/utils/elicitationSchema.test.d.ts +2 -0
  677. package/dist/utils/elicitationSchema.test.d.ts.map +1 -0
  678. package/dist/utils/elicitationSchema.test.js +77 -0
  679. package/dist/utils/idGenerator.cjs +31 -0
  680. package/dist/utils/idGenerator.d.ts +10 -0
  681. package/dist/utils/idGenerator.d.ts.map +1 -0
  682. package/dist/utils/idGenerator.js +7 -0
  683. package/dist/utils/index.cjs +62 -0
  684. package/dist/utils/index.d.ts +9 -0
  685. package/dist/utils/index.d.ts.map +1 -0
  686. package/dist/utils/index.js +39 -0
  687. package/dist/utils/input.cjs +72 -0
  688. package/dist/utils/input.d.ts +25 -0
  689. package/dist/utils/input.d.ts.map +1 -0
  690. package/dist/utils/input.js +39 -0
  691. package/dist/utils/inputParsing.cjs +76 -0
  692. package/dist/utils/inputParsing.d.ts +31 -0
  693. package/dist/utils/inputParsing.d.ts.map +1 -0
  694. package/dist/utils/inputParsing.js +48 -0
  695. package/dist/utils/llm-provider-display.cjs +49 -0
  696. package/dist/utils/llm-provider-display.d.ts +3 -0
  697. package/dist/utils/llm-provider-display.d.ts.map +1 -0
  698. package/dist/utils/llm-provider-display.js +25 -0
  699. package/dist/utils/messageFormatting.cjs +447 -0
  700. package/dist/utils/messageFormatting.d.ts +131 -0
  701. package/dist/utils/messageFormatting.d.ts.map +1 -0
  702. package/dist/utils/messageFormatting.js +393 -0
  703. package/dist/utils/messageFormatting.test.cjs +16 -0
  704. package/dist/utils/messageFormatting.test.d.ts +2 -0
  705. package/dist/utils/messageFormatting.test.d.ts.map +1 -0
  706. package/dist/utils/messageFormatting.test.js +15 -0
  707. package/dist/utils/mouse.cjs +196 -0
  708. package/dist/utils/mouse.d.ts +61 -0
  709. package/dist/utils/mouse.d.ts.map +1 -0
  710. package/dist/utils/mouse.js +172 -0
  711. package/dist/utils/overlayPresentation.cjs +48 -0
  712. package/dist/utils/overlayPresentation.d.ts +19 -0
  713. package/dist/utils/overlayPresentation.d.ts.map +1 -0
  714. package/dist/utils/overlayPresentation.js +22 -0
  715. package/dist/utils/overlaySizing.cjs +39 -0
  716. package/dist/utils/overlaySizing.d.ts +19 -0
  717. package/dist/utils/overlaySizing.d.ts.map +1 -0
  718. package/dist/utils/overlaySizing.js +15 -0
  719. package/dist/utils/soundNotification.cjs +217 -0
  720. package/dist/utils/soundNotification.d.ts +77 -0
  721. package/dist/utils/soundNotification.d.ts.map +1 -0
  722. package/dist/utils/soundNotification.js +188 -0
  723. package/dist/utils/soundNotification.test.cjs +126 -0
  724. package/dist/utils/soundNotification.test.d.ts +2 -0
  725. package/dist/utils/soundNotification.test.d.ts.map +1 -0
  726. package/dist/utils/soundNotification.test.js +125 -0
  727. package/dist/utils/streamSplitter.cjs +126 -0
  728. package/dist/utils/streamSplitter.d.ts +44 -0
  729. package/dist/utils/streamSplitter.d.ts.map +1 -0
  730. package/dist/utils/streamSplitter.js +100 -0
  731. package/dist/utils/textUtils.cjs +223 -0
  732. package/dist/utils/textUtils.d.ts +63 -0
  733. package/dist/utils/textUtils.d.ts.map +1 -0
  734. package/dist/utils/textUtils.js +174 -0
  735. package/dist/utils/toolUtils.cjs +40 -0
  736. package/dist/utils/toolUtils.d.ts +20 -0
  737. package/dist/utils/toolUtils.d.ts.map +1 -0
  738. package/dist/utils/toolUtils.js +14 -0
  739. package/package.json +51 -0
@@ -0,0 +1,622 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ElicitationForm_exports = {};
30
+ __export(ElicitationForm_exports, {
31
+ ElicitationForm: () => ElicitationForm
32
+ });
33
+ module.exports = __toCommonJS(ElicitationForm_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_react = require("react");
36
+ var import_ink = require("ink");
37
+ var import_wrap_ansi = __toESM(require("wrap-ansi"), 1);
38
+ var import_useTerminalSize = require("../hooks/useTerminalSize.js");
39
+ var import_elicitationSchema = require("../utils/elicitationSchema.js");
40
+ function hasOwn(obj, key) {
41
+ return Object.prototype.hasOwnProperty.call(obj, key);
42
+ }
43
+ function getDisplayValue(value) {
44
+ if (value === void 0 || value === null || value === "") return "\u2014";
45
+ if (Array.isArray(value)) return value.length > 0 ? value.join(", ") : "\u2014";
46
+ if (value === true) return "Yes";
47
+ if (value === false) return "No";
48
+ return String(value ?? "");
49
+ }
50
+ function clamp(value, min, max) {
51
+ return Math.max(min, Math.min(max, value));
52
+ }
53
+ const ElicitationForm = (0, import_react.forwardRef)(
54
+ ({ metadata, onSubmit, onCancel }, ref) => {
55
+ const { rows: terminalRows, columns: terminalColumns } = (0, import_useTerminalSize.useTerminalSize)();
56
+ const headerLineCount = 1;
57
+ const stepHeaderLineCount = 2;
58
+ const spacerAfterStepLineCount = 1;
59
+ const questionLineCount = 2;
60
+ const helpLineCount = 2;
61
+ const errorLineCount = 1;
62
+ const questionHeaderHeight = headerLineCount + stepHeaderLineCount + spacerAfterStepLineCount + questionLineCount + helpLineCount + errorLineCount;
63
+ const reviewHeaderHeight = headerLineCount + spacerAfterStepLineCount;
64
+ const maxHeaderHeight = Math.max(questionHeaderHeight, reviewHeaderHeight);
65
+ const footerHeight = 1;
66
+ const minContentHeight = 4;
67
+ const viewportHeight = (0, import_react.useMemo)(() => {
68
+ const reservedRows = 8;
69
+ const minViewportHeight = maxHeaderHeight + footerHeight + minContentHeight;
70
+ const maxHeight = Math.max(minViewportHeight, terminalRows - reservedRows);
71
+ const desired = Math.max(minViewportHeight, Math.floor(terminalRows * 0.6));
72
+ return Math.min(maxHeight, desired);
73
+ }, [footerHeight, maxHeaderHeight, minContentHeight, terminalRows]);
74
+ const availableWidth = Math.max(20, terminalColumns - 2);
75
+ const fields = (0, import_react.useMemo)(() => {
76
+ return (0, import_elicitationSchema.parseElicitationSchema)(metadata.schema);
77
+ }, [metadata.schema]);
78
+ const wrapClampedLines = (0, import_react.useCallback)(
79
+ (text, maxLines) => {
80
+ if (maxLines <= 0) return [];
81
+ const wrapped = (0, import_wrap_ansi.default)(text, availableWidth, {
82
+ hard: true,
83
+ wordWrap: true,
84
+ trim: false
85
+ });
86
+ const rawLines = wrapped.length > 0 ? wrapped.split("\n") : [""];
87
+ const didTruncate = rawLines.length > maxLines;
88
+ const lines = rawLines.slice(0, maxLines);
89
+ if (didTruncate && lines.length > 0) {
90
+ const lastIndex = lines.length - 1;
91
+ const lastLine = (lines[lastIndex] ?? "").replace(/\s+$/, "");
92
+ const safe = lastLine.length > 0 ? `${lastLine.slice(0, Math.max(0, lastLine.length - 1))}\u2026` : "\u2026";
93
+ lines[lastIndex] = safe;
94
+ }
95
+ while (lines.length < maxLines) {
96
+ lines.push("");
97
+ }
98
+ return lines;
99
+ },
100
+ [availableWidth]
101
+ );
102
+ const [activeFieldIndex, setActiveFieldIndex] = (0, import_react.useState)(0);
103
+ const [formData, setFormData] = (0, import_react.useState)({});
104
+ const [draftInputs, setDraftInputs] = (0, import_react.useState)({});
105
+ const [enumIndex, setEnumIndex] = (0, import_react.useState)(0);
106
+ const [arraySelections, setArraySelections] = (0, import_react.useState)(/* @__PURE__ */ new Set());
107
+ const [errors, setErrors] = (0, import_react.useState)({});
108
+ const [isReviewing, setIsReviewing] = (0, import_react.useState)(false);
109
+ const [reviewScrollTop, setReviewScrollTop] = (0, import_react.useState)(0);
110
+ const activeField = fields[activeFieldIndex];
111
+ const contentHeight = (0, import_react.useMemo)(() => {
112
+ const activeHeaderHeight = isReviewing ? reviewHeaderHeight : questionHeaderHeight;
113
+ return Math.max(1, viewportHeight - activeHeaderHeight - footerHeight);
114
+ }, [footerHeight, isReviewing, questionHeaderHeight, reviewHeaderHeight, viewportHeight]);
115
+ const updateField = (0, import_react.useCallback)((name, value2) => {
116
+ setFormData((prev) => ({ ...prev, [name]: value2 }));
117
+ setErrors((prev) => {
118
+ if (!hasOwn(prev, name)) return prev;
119
+ const next = { ...prev };
120
+ delete next[name];
121
+ return next;
122
+ });
123
+ }, []);
124
+ const goToFieldIndex = (0, import_react.useCallback)(
125
+ (index, data = formData) => {
126
+ if (index < 0 || index >= fields.length) return;
127
+ setActiveFieldIndex(index);
128
+ const field = fields[index];
129
+ if (!field) return;
130
+ if (field.type === "boolean") {
131
+ const currentValue = data[field.name];
132
+ setEnumIndex(currentValue === false ? 1 : 0);
133
+ setArraySelections(/* @__PURE__ */ new Set());
134
+ return;
135
+ }
136
+ if (field.type === "enum") {
137
+ const values = field.enumValues ?? [];
138
+ const currentValue = data[field.name];
139
+ const currentIndex = values.findIndex((v) => v === currentValue);
140
+ setEnumIndex(currentIndex >= 0 ? currentIndex : 0);
141
+ setArraySelections(/* @__PURE__ */ new Set());
142
+ return;
143
+ }
144
+ if (field.type === "array-enum") {
145
+ const values = field.enumValues ?? [];
146
+ const currentValue = data[field.name];
147
+ const currentValues = Array.isArray(currentValue) ? currentValue : [];
148
+ const selections = /* @__PURE__ */ new Set();
149
+ for (const selectedValue of currentValues) {
150
+ const selectedIndex = values.findIndex((v) => v === selectedValue);
151
+ if (selectedIndex >= 0) selections.add(selectedIndex);
152
+ }
153
+ setArraySelections(selections);
154
+ const firstSelected = selections.values().next().value;
155
+ const maxIndex = Math.max(0, values.length - 1);
156
+ setEnumIndex(Math.min(firstSelected ?? 0, maxIndex));
157
+ return;
158
+ }
159
+ setEnumIndex(0);
160
+ setArraySelections(/* @__PURE__ */ new Set());
161
+ },
162
+ [fields, formData]
163
+ );
164
+ const nextField = (0, import_react.useCallback)(() => {
165
+ if (activeFieldIndex < fields.length - 1) {
166
+ goToFieldIndex(activeFieldIndex + 1);
167
+ }
168
+ }, [activeFieldIndex, fields.length, goToFieldIndex]);
169
+ const prevField = (0, import_react.useCallback)(() => {
170
+ if (activeFieldIndex > 0) {
171
+ goToFieldIndex(activeFieldIndex - 1);
172
+ }
173
+ }, [activeFieldIndex, goToFieldIndex]);
174
+ const handleSubmit = (0, import_react.useCallback)(
175
+ (currentFieldValue) => {
176
+ const newErrors = {};
177
+ const finalFormData = currentFieldValue ? { ...formData, [currentFieldValue.name]: currentFieldValue.value } : { ...formData };
178
+ for (const field of fields) {
179
+ if (!hasOwn(draftInputs, field.name)) continue;
180
+ const rawDraft = draftInputs[field.name] ?? "";
181
+ if (field.type === "number") {
182
+ const trimmed = rawDraft.trim();
183
+ if (trimmed === "") {
184
+ finalFormData[field.name] = "";
185
+ continue;
186
+ }
187
+ const parsed = Number(trimmed);
188
+ if (Number.isNaN(parsed)) {
189
+ newErrors[field.name] = "Invalid number";
190
+ continue;
191
+ }
192
+ finalFormData[field.name] = parsed;
193
+ }
194
+ if (field.type === "string") {
195
+ finalFormData[field.name] = rawDraft;
196
+ }
197
+ }
198
+ for (const field of fields) {
199
+ if (!field.required) continue;
200
+ const value2 = finalFormData[field.name];
201
+ if (field.type === "array-enum") {
202
+ if (!Array.isArray(value2) || value2.length === 0) {
203
+ newErrors[field.name] = "Required";
204
+ }
205
+ continue;
206
+ }
207
+ if (value2 === void 0 || value2 === null || value2 === "") {
208
+ newErrors[field.name] = "Required";
209
+ }
210
+ }
211
+ if (Object.keys(newErrors).length > 0) {
212
+ setErrors(newErrors);
213
+ const firstErrorField = fields.findIndex((f) => newErrors[f.name]);
214
+ if (firstErrorField >= 0) {
215
+ goToFieldIndex(firstErrorField, finalFormData);
216
+ }
217
+ setIsReviewing(false);
218
+ return;
219
+ }
220
+ setFormData(finalFormData);
221
+ setReviewScrollTop(0);
222
+ setIsReviewing(true);
223
+ },
224
+ [draftInputs, fields, formData, goToFieldIndex]
225
+ );
226
+ const confirmSubmit = (0, import_react.useCallback)(() => {
227
+ onSubmit(formData);
228
+ }, [formData, onSubmit]);
229
+ (0, import_react.useImperativeHandle)(
230
+ ref,
231
+ () => ({
232
+ handleInput: (input, key) => {
233
+ if (isReviewing) {
234
+ const maxScrollTop = Math.max(0, fields.length - contentHeight);
235
+ if (key.return) {
236
+ confirmSubmit();
237
+ return true;
238
+ }
239
+ if (key.backspace || key.delete) {
240
+ setIsReviewing(false);
241
+ goToFieldIndex(Math.max(0, fields.length - 1));
242
+ return true;
243
+ }
244
+ if (key.leftArrow || key.tab && key.shift) {
245
+ setIsReviewing(false);
246
+ goToFieldIndex(Math.max(0, fields.length - 1));
247
+ return true;
248
+ }
249
+ if (key.upArrow) {
250
+ setReviewScrollTop((prev) => Math.max(0, prev - 1));
251
+ return true;
252
+ }
253
+ if (key.downArrow) {
254
+ setReviewScrollTop((prev) => Math.min(maxScrollTop, prev + 1));
255
+ return true;
256
+ }
257
+ if (key.pageUp) {
258
+ setReviewScrollTop((prev) => Math.max(0, prev - 5));
259
+ return true;
260
+ }
261
+ if (key.pageDown) {
262
+ setReviewScrollTop((prev) => Math.min(maxScrollTop, prev + 5));
263
+ return true;
264
+ }
265
+ if (key.escape) {
266
+ onCancel();
267
+ return true;
268
+ }
269
+ return false;
270
+ }
271
+ if (key.escape) {
272
+ onCancel();
273
+ return true;
274
+ }
275
+ if (!activeField) return false;
276
+ if (key.leftArrow || key.tab && key.shift) {
277
+ prevField();
278
+ return true;
279
+ }
280
+ if (key.rightArrow || key.tab && !key.shift) {
281
+ if (activeFieldIndex === fields.length - 1) {
282
+ handleSubmit();
283
+ } else {
284
+ nextField();
285
+ }
286
+ return true;
287
+ }
288
+ const setDraftValue = (updater) => {
289
+ const hadError = hasOwn(errors, activeField.name);
290
+ setDraftInputs((prev) => {
291
+ const current = hasOwn(prev, activeField.name) ? prev[activeField.name] ?? "" : (() => {
292
+ const existing = formData[activeField.name];
293
+ return existing === void 0 || existing === null ? "" : String(existing);
294
+ })();
295
+ return { ...prev, [activeField.name]: updater(current) };
296
+ });
297
+ if (hadError) {
298
+ setErrors((prevErrors) => {
299
+ const nextErrors = { ...prevErrors };
300
+ delete nextErrors[activeField.name];
301
+ return nextErrors;
302
+ });
303
+ }
304
+ };
305
+ switch (activeField.type) {
306
+ case "boolean": {
307
+ if (key.upArrow) {
308
+ setEnumIndex((prev) => clamp(prev - 1, 0, 1));
309
+ return true;
310
+ }
311
+ if (key.downArrow) {
312
+ setEnumIndex((prev) => clamp(prev + 1, 0, 1));
313
+ return true;
314
+ }
315
+ if (input === " ") {
316
+ setEnumIndex((prev) => prev === 0 ? 1 : 0);
317
+ return true;
318
+ }
319
+ if (key.return) {
320
+ const nextValue = enumIndex === 0;
321
+ updateField(activeField.name, nextValue);
322
+ if (activeFieldIndex === fields.length - 1) {
323
+ handleSubmit({ name: activeField.name, value: nextValue });
324
+ } else {
325
+ nextField();
326
+ }
327
+ return true;
328
+ }
329
+ break;
330
+ }
331
+ case "enum": {
332
+ const values = activeField.enumValues || [];
333
+ if (key.upArrow) {
334
+ setEnumIndex((prev) => prev > 0 ? prev - 1 : values.length - 1);
335
+ return true;
336
+ }
337
+ if (key.downArrow) {
338
+ setEnumIndex((prev) => prev < values.length - 1 ? prev + 1 : 0);
339
+ return true;
340
+ }
341
+ if (key.return) {
342
+ const selectedValue = values[enumIndex];
343
+ updateField(activeField.name, selectedValue);
344
+ if (activeFieldIndex === fields.length - 1) {
345
+ handleSubmit({ name: activeField.name, value: selectedValue });
346
+ } else {
347
+ nextField();
348
+ }
349
+ return true;
350
+ }
351
+ break;
352
+ }
353
+ case "array-enum": {
354
+ const values = activeField.enumValues || [];
355
+ if (key.upArrow) {
356
+ setEnumIndex((prev) => prev > 0 ? prev - 1 : values.length - 1);
357
+ return true;
358
+ }
359
+ if (key.downArrow) {
360
+ setEnumIndex((prev) => prev < values.length - 1 ? prev + 1 : 0);
361
+ return true;
362
+ }
363
+ if (input === " ") {
364
+ const nextSelections = new Set(arraySelections);
365
+ if (nextSelections.has(enumIndex)) nextSelections.delete(enumIndex);
366
+ else nextSelections.add(enumIndex);
367
+ setArraySelections(nextSelections);
368
+ const selected = Array.from(nextSelections).map((i) => values[i]);
369
+ updateField(activeField.name, selected);
370
+ return true;
371
+ }
372
+ if (key.return) {
373
+ const selected = Array.from(arraySelections).map((i) => values[i]);
374
+ if (activeFieldIndex === fields.length - 1) {
375
+ handleSubmit({ name: activeField.name, value: selected });
376
+ } else {
377
+ nextField();
378
+ }
379
+ return true;
380
+ }
381
+ break;
382
+ }
383
+ case "string":
384
+ case "number": {
385
+ const hasDraft = hasOwn(draftInputs, activeField.name);
386
+ const rawInput = hasDraft ? draftInputs[activeField.name] ?? "" : (() => {
387
+ const existing = formData[activeField.name];
388
+ return existing === void 0 || existing === null ? "" : String(existing);
389
+ })();
390
+ if (key.return) {
391
+ let value2 = hasDraft ? rawInput : formData[activeField.name];
392
+ if (activeField.type === "number" && hasDraft) {
393
+ const trimmed = rawInput.trim();
394
+ if (trimmed === "") {
395
+ value2 = "";
396
+ } else {
397
+ const parsed = Number(trimmed);
398
+ if (Number.isNaN(parsed)) {
399
+ setErrors((prev) => ({
400
+ ...prev,
401
+ [activeField.name]: "Invalid number"
402
+ }));
403
+ return true;
404
+ }
405
+ value2 = parsed;
406
+ }
407
+ }
408
+ if (hasDraft) {
409
+ updateField(activeField.name, value2);
410
+ }
411
+ if (activeFieldIndex === fields.length - 1) {
412
+ handleSubmit(
413
+ value2 !== void 0 ? { name: activeField.name, value: value2 } : void 0
414
+ );
415
+ } else {
416
+ nextField();
417
+ }
418
+ return true;
419
+ }
420
+ if (key.backspace || key.delete) {
421
+ setDraftValue((prev) => prev.slice(0, -1));
422
+ return true;
423
+ }
424
+ if (input && !key.ctrl && !key.meta) {
425
+ if (activeField.type === "number") {
426
+ const filtered = input.replace(/[^\d.-]/g, "");
427
+ if (filtered.length > 0) {
428
+ setDraftValue((prev) => prev + filtered);
429
+ }
430
+ } else {
431
+ setDraftValue((prev) => prev + input);
432
+ }
433
+ return true;
434
+ }
435
+ break;
436
+ }
437
+ }
438
+ return false;
439
+ }
440
+ }),
441
+ [
442
+ activeField,
443
+ activeFieldIndex,
444
+ arraySelections,
445
+ contentHeight,
446
+ confirmSubmit,
447
+ draftInputs,
448
+ enumIndex,
449
+ errors,
450
+ fields,
451
+ formData,
452
+ handleSubmit,
453
+ isReviewing,
454
+ goToFieldIndex,
455
+ nextField,
456
+ onCancel,
457
+ prevField,
458
+ reviewScrollTop,
459
+ updateField
460
+ ]
461
+ );
462
+ if (fields.length === 0) {
463
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { flexDirection: "column", paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "red", children: "Invalid form schema" }) });
464
+ }
465
+ const isAnswered = (field) => {
466
+ if (field.type === "boolean") return hasOwn(formData, field.name);
467
+ if (field.type === "enum") return hasOwn(formData, field.name);
468
+ if (field.type === "array-enum") {
469
+ const value3 = formData[field.name];
470
+ return Array.isArray(value3) && value3.length > 0;
471
+ }
472
+ const draft = draftInputs[field.name];
473
+ if (typeof draft === "string" && draft.trim() !== "") return true;
474
+ const value2 = formData[field.name];
475
+ return value2 !== void 0 && value2 !== null && value2 !== "";
476
+ };
477
+ if (!isReviewing && !activeField) {
478
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { flexDirection: "column", paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "red", children: "Invalid form state" }) });
479
+ }
480
+ const value = activeField ? formData[activeField.name] : void 0;
481
+ const currentInput = activeField && hasOwn(draftInputs, activeField.name) ? draftInputs[activeField.name] ?? "" : value === void 0 || value === null ? "" : String(value);
482
+ const errorText = activeField ? errors[activeField.name] ?? "" : "";
483
+ const renderContent = () => {
484
+ if (isReviewing) {
485
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
486
+ import_ink.Box,
487
+ {
488
+ overflowY: "scroll",
489
+ overflowX: "hidden",
490
+ scrollTop: reviewScrollTop,
491
+ scrollbarThumbColor: "gray",
492
+ flexDirection: "column",
493
+ height: contentHeight,
494
+ paddingRight: 1,
495
+ children: fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Text, { wrap: "truncate-end", children: [
496
+ field.question,
497
+ ": ",
498
+ getDisplayValue(formData[field.name])
499
+ ] }, field.name))
500
+ }
501
+ );
502
+ }
503
+ if (!activeField) return null;
504
+ if (activeField.type === "string" || activeField.type === "number") {
505
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Box, { height: contentHeight, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Text, { wrap: "truncate-end", children: [
506
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "cyan", children: "> " }),
507
+ currentInput || /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", children: "Type your answer\u2026" }),
508
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "cyan", children: "\u258B" })
509
+ ] }) });
510
+ }
511
+ const options = [];
512
+ if (activeField.type === "boolean") {
513
+ options.push({
514
+ key: "yes",
515
+ label: "Yes",
516
+ isFocused: enumIndex === 0,
517
+ isSelected: false
518
+ });
519
+ options.push({
520
+ key: "no",
521
+ label: "No",
522
+ isFocused: enumIndex === 1,
523
+ isSelected: false
524
+ });
525
+ }
526
+ if ((activeField.type === "enum" || activeField.type === "array-enum") && activeField.enumValues) {
527
+ activeField.enumValues.forEach((opt, i) => {
528
+ const isFocused = i === enumIndex;
529
+ const isSelected = activeField.type === "enum" ? false : arraySelections.has(i);
530
+ options.push({
531
+ key: `${String(opt)}-${i}`,
532
+ label: String(opt),
533
+ isFocused,
534
+ isSelected
535
+ });
536
+ });
537
+ }
538
+ const focusedIndex = Math.max(
539
+ 0,
540
+ options.findIndex((o) => o.isFocused)
541
+ );
542
+ const maxScrollTop = Math.max(0, options.length - contentHeight);
543
+ const targetScrollTop = clamp(
544
+ focusedIndex - Math.floor(contentHeight / 2),
545
+ 0,
546
+ maxScrollTop
547
+ );
548
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
549
+ import_ink.Box,
550
+ {
551
+ overflowY: "scroll",
552
+ overflowX: "hidden",
553
+ scrollbarThumbColor: "gray",
554
+ height: contentHeight,
555
+ scrollTop: targetScrollTop,
556
+ flexDirection: "column",
557
+ paddingRight: 1,
558
+ children: options.map((opt) => {
559
+ const prefix = opt.isFocused ? "\u25B6 " : " ";
560
+ const mark = activeField.type === "array-enum" ? opt.isSelected ? "[\u2713] " : "[ ] " : "";
561
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
562
+ import_ink.Text,
563
+ {
564
+ color: opt.isFocused ? "cyan" : "gray",
565
+ wrap: "truncate-end",
566
+ children: [
567
+ prefix,
568
+ mark,
569
+ opt.label
570
+ ]
571
+ },
572
+ opt.key
573
+ );
574
+ })
575
+ }
576
+ );
577
+ };
578
+ const hintLine = (() => {
579
+ if (isReviewing) return "Enter submit \u2022 Backspace/\u2190 edit \u2022 \u2191\u2193 scroll \u2022 Esc cancel";
580
+ switch (activeField?.type) {
581
+ case "string":
582
+ case "number":
583
+ return "Type to answer \u2022 Enter next \u2022 \u2190/\u2192 question \u2022 Esc cancel";
584
+ case "array-enum":
585
+ return "\u2191/\u2193 option \u2022 Space toggle \u2022 Enter next \u2022 \u2190/\u2192 question \u2022 Esc cancel";
586
+ default:
587
+ return "\u2191/\u2193 option \u2022 Enter select \u2022 \u2190/\u2192 question \u2022 Esc cancel";
588
+ }
589
+ })();
590
+ const headerText = isReviewing ? "\u{1F4DD} Review your answers" : `\u{1F4DD} Please answer ${fields.length === 1 ? "this" : "these"} ${fields.length} ${fields.length === 1 ? "question" : "questions"}.`;
591
+ const stepText = (() => {
592
+ if (isReviewing) {
593
+ return "";
594
+ }
595
+ if (!activeField) return "";
596
+ return `Question ${activeFieldIndex + 1}/${fields.length}: ${activeField.stepLabel}`;
597
+ })();
598
+ const questionText = !isReviewing && activeField ? `${activeField.question}${activeField.required ? "*" : ""}` : "";
599
+ const helpText = !isReviewing && activeField?.helpText ? activeField.helpText : "";
600
+ const errorLineText = !isReviewing ? errorText : "";
601
+ const headerLines = wrapClampedLines(headerText, headerLineCount);
602
+ const stepLines = wrapClampedLines(stepText, stepHeaderLineCount);
603
+ const questionLines = wrapClampedLines(questionText, questionLineCount);
604
+ const helpLines = wrapClampedLines(helpText, helpLineCount);
605
+ const errorLines = wrapClampedLines(errorLineText, errorLineCount);
606
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ink.Box, { flexDirection: "column", paddingX: 0, height: viewportHeight, children: [
607
+ headerLines.map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "yellowBright", bold: true, wrap: "truncate-end", children: line || " " }, `header-${index}`)),
608
+ !isReviewing && stepLines.map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", dimColor: true, wrap: "truncate-end", children: line || " " }, `step-${index}`)),
609
+ Array.from({ length: spacerAfterStepLineCount }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { wrap: "truncate-end", children: " " }, `spacer-step-${index}`)),
610
+ !isReviewing && questionLines.map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "white", bold: true, wrap: "truncate-end", children: line || " " }, `question-${index}`)),
611
+ !isReviewing && helpLines.map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", dimColor: true, wrap: "truncate-end", children: line || " " }, `help-${index}`)),
612
+ !isReviewing && errorLines.map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "red", wrap: "truncate-end", children: line || " " }, `error-${index}`)),
613
+ renderContent(),
614
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ink.Text, { color: "gray", dimColor: true, wrap: "truncate-end", children: hintLine })
615
+ ] });
616
+ }
617
+ );
618
+ ElicitationForm.displayName = "ElicitationForm";
619
+ // Annotate the CommonJS export names for ESM import in node:
620
+ 0 && (module.exports = {
621
+ ElicitationForm
622
+ });
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ElicitationForm Component
3
+ * Renders a form for ask_user/elicitation requests in the CLI.
4
+ *
5
+ * Uses a wizard flow (one question at a time) to avoid huge modals and improve
6
+ * usability on small terminals.
7
+ */
8
+ import React from 'react';
9
+ import type { ElicitationMetadata } from '@dexto/core';
10
+ import type { Key } from '../hooks/useInputOrchestrator.js';
11
+ export interface ElicitationFormHandle {
12
+ handleInput: (input: string, key: Key) => boolean;
13
+ }
14
+ interface ElicitationFormProps {
15
+ metadata: ElicitationMetadata;
16
+ onSubmit: (formData: Record<string, unknown>) => void;
17
+ onCancel: () => void;
18
+ }
19
+ /**
20
+ * Form component for elicitation/ask_user requests
21
+ */
22
+ export declare const ElicitationForm: React.ForwardRefExoticComponent<ElicitationFormProps & React.RefAttributes<ElicitationFormHandle>>;
23
+ export {};
24
+ //# sourceMappingURL=ElicitationForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElicitationForm.d.ts","sourceRoot":"","sources":["../../src/components/ElicitationForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAA0E,MAAM,OAAO,CAAC;AAG/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAI5D,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;CACrD;AAED,UAAU,oBAAoB;IAC1B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAkBD;;GAEG;AACH,eAAO,MAAM,eAAe,oGA6uB3B,CAAC"}