@nexus-cortex/tui 4.47.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 (409) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +2 -0
  3. package/README.md +13 -0
  4. package/bin/cli-full.js +23 -0
  5. package/bin/cortex-ui.js +26 -0
  6. package/bin/ink-ui.js +108 -0
  7. package/bin/launcher-dev.js +266 -0
  8. package/bin/launcher.js +516 -0
  9. package/dist/commands/agent/InteractiveAgentMenu.d.ts +100 -0
  10. package/dist/commands/agent/InteractiveAgentMenu.d.ts.map +1 -0
  11. package/dist/commands/agent/InteractiveAgentMenu.js +909 -0
  12. package/dist/commands/agent/InteractiveAgentMenu.js.map +1 -0
  13. package/dist/commands/agent/index.d.ts +55 -0
  14. package/dist/commands/agent/index.d.ts.map +1 -0
  15. package/dist/commands/agent/index.js +714 -0
  16. package/dist/commands/agent/index.js.map +1 -0
  17. package/dist/commands/chat/interactive.d.ts +13 -0
  18. package/dist/commands/chat/interactive.d.ts.map +1 -0
  19. package/dist/commands/chat/interactive.js +2055 -0
  20. package/dist/commands/chat/interactive.js.map +1 -0
  21. package/dist/commands/system-message/EditorLauncher.d.ts +65 -0
  22. package/dist/commands/system-message/EditorLauncher.d.ts.map +1 -0
  23. package/dist/commands/system-message/EditorLauncher.js +143 -0
  24. package/dist/commands/system-message/EditorLauncher.js.map +1 -0
  25. package/dist/commands/system-message/InlineEditor.d.ts +23 -0
  26. package/dist/commands/system-message/InlineEditor.d.ts.map +1 -0
  27. package/dist/commands/system-message/InlineEditor.js +225 -0
  28. package/dist/commands/system-message/InlineEditor.js.map +1 -0
  29. package/dist/commands/system-message/InteractiveMenu.d.ts +76 -0
  30. package/dist/commands/system-message/InteractiveMenu.d.ts.map +1 -0
  31. package/dist/commands/system-message/InteractiveMenu.js +979 -0
  32. package/dist/commands/system-message/InteractiveMenu.js.map +1 -0
  33. package/dist/commands/system-message/index.d.ts +56 -0
  34. package/dist/commands/system-message/index.d.ts.map +1 -0
  35. package/dist/commands/system-message/index.js +694 -0
  36. package/dist/commands/system-message/index.js.map +1 -0
  37. package/dist/commands/ui/artifacts.d.ts +14 -0
  38. package/dist/commands/ui/artifacts.d.ts.map +1 -0
  39. package/dist/commands/ui/artifacts.js +22 -0
  40. package/dist/commands/ui/artifacts.js.map +1 -0
  41. package/dist/commands/ui/config.d.ts +12 -0
  42. package/dist/commands/ui/config.d.ts.map +1 -0
  43. package/dist/commands/ui/config.js +26 -0
  44. package/dist/commands/ui/config.js.map +1 -0
  45. package/dist/commands/ui/context.d.ts +16 -0
  46. package/dist/commands/ui/context.d.ts.map +1 -0
  47. package/dist/commands/ui/context.js +28 -0
  48. package/dist/commands/ui/context.js.map +1 -0
  49. package/dist/commands/ui/middleware.d.ts +14 -0
  50. package/dist/commands/ui/middleware.d.ts.map +1 -0
  51. package/dist/commands/ui/middleware.js +22 -0
  52. package/dist/commands/ui/middleware.js.map +1 -0
  53. package/dist/commands/ui/models.d.ts +14 -0
  54. package/dist/commands/ui/models.d.ts.map +1 -0
  55. package/dist/commands/ui/models.js +50 -0
  56. package/dist/commands/ui/models.js.map +1 -0
  57. package/dist/commands/ui/permissions.d.ts +14 -0
  58. package/dist/commands/ui/permissions.d.ts.map +1 -0
  59. package/dist/commands/ui/permissions.js +22 -0
  60. package/dist/commands/ui/permissions.js.map +1 -0
  61. package/dist/commands/ui/sessions.d.ts +13 -0
  62. package/dist/commands/ui/sessions.d.ts.map +1 -0
  63. package/dist/commands/ui/sessions.js +45 -0
  64. package/dist/commands/ui/sessions.js.map +1 -0
  65. package/dist/commands/ui/system-messages.d.ts +5 -0
  66. package/dist/commands/ui/system-messages.d.ts.map +1 -0
  67. package/dist/commands/ui/system-messages.js +19 -0
  68. package/dist/commands/ui/system-messages.js.map +1 -0
  69. package/dist/commands/ui/themes.d.ts +12 -0
  70. package/dist/commands/ui/themes.d.ts.map +1 -0
  71. package/dist/commands/ui/themes.js +40 -0
  72. package/dist/commands/ui/themes.js.map +1 -0
  73. package/dist/commands/ui/tmux.d.ts +5 -0
  74. package/dist/commands/ui/tmux.d.ts.map +1 -0
  75. package/dist/commands/ui/tmux.js +19 -0
  76. package/dist/commands/ui/tmux.js.map +1 -0
  77. package/dist/cortex.d.ts +12 -0
  78. package/dist/cortex.d.ts.map +1 -0
  79. package/dist/cortex.js +320 -0
  80. package/dist/cortex.js.map +1 -0
  81. package/dist/index.d.ts +3 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +112 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/ink-ui/CortexApp.d.ts +28 -0
  86. package/dist/ink-ui/CortexApp.d.ts.map +1 -0
  87. package/dist/ink-ui/CortexApp.js +2291 -0
  88. package/dist/ink-ui/CortexApp.js.map +1 -0
  89. package/dist/ink-ui/SimpleInputBuffer.d.ts +63 -0
  90. package/dist/ink-ui/SimpleInputBuffer.d.ts.map +1 -0
  91. package/dist/ink-ui/SimpleInputBuffer.js +369 -0
  92. package/dist/ink-ui/SimpleInputBuffer.js.map +1 -0
  93. package/dist/ink-ui/commands/slashCommands.d.ts +40 -0
  94. package/dist/ink-ui/commands/slashCommands.d.ts.map +1 -0
  95. package/dist/ink-ui/commands/slashCommands.js +111 -0
  96. package/dist/ink-ui/commands/slashCommands.js.map +1 -0
  97. package/dist/ink-ui/commands/types.d.ts +161 -0
  98. package/dist/ink-ui/commands/types.d.ts.map +1 -0
  99. package/dist/ink-ui/commands/types.js +12 -0
  100. package/dist/ink-ui/commands/types.js.map +1 -0
  101. package/dist/ink-ui/components/ApprovalDialog.d.ts +21 -0
  102. package/dist/ink-ui/components/ApprovalDialog.d.ts.map +1 -0
  103. package/dist/ink-ui/components/ApprovalDialog.js +81 -0
  104. package/dist/ink-ui/components/ApprovalDialog.js.map +1 -0
  105. package/dist/ink-ui/components/CommandSuggestions.d.ts +19 -0
  106. package/dist/ink-ui/components/CommandSuggestions.d.ts.map +1 -0
  107. package/dist/ink-ui/components/CommandSuggestions.js +36 -0
  108. package/dist/ink-ui/components/CommandSuggestions.js.map +1 -0
  109. package/dist/ink-ui/components/DiffPreview.d.ts +60 -0
  110. package/dist/ink-ui/components/DiffPreview.d.ts.map +1 -0
  111. package/dist/ink-ui/components/DiffPreview.js +195 -0
  112. package/dist/ink-ui/components/DiffPreview.js.map +1 -0
  113. package/dist/ink-ui/components/DocumentPreview.d.ts +50 -0
  114. package/dist/ink-ui/components/DocumentPreview.d.ts.map +1 -0
  115. package/dist/ink-ui/components/DocumentPreview.js +92 -0
  116. package/dist/ink-ui/components/DocumentPreview.js.map +1 -0
  117. package/dist/ink-ui/components/MarkdownText.d.ts +27 -0
  118. package/dist/ink-ui/components/MarkdownText.d.ts.map +1 -0
  119. package/dist/ink-ui/components/MarkdownText.js +342 -0
  120. package/dist/ink-ui/components/MarkdownText.js.map +1 -0
  121. package/dist/ink-ui/components/MenuRenderer.d.ts +26 -0
  122. package/dist/ink-ui/components/MenuRenderer.d.ts.map +1 -0
  123. package/dist/ink-ui/components/MenuRenderer.js +264 -0
  124. package/dist/ink-ui/components/MenuRenderer.js.map +1 -0
  125. package/dist/ink-ui/components/ModelPickerDialog.d.ts +33 -0
  126. package/dist/ink-ui/components/ModelPickerDialog.d.ts.map +1 -0
  127. package/dist/ink-ui/components/ModelPickerDialog.js +98 -0
  128. package/dist/ink-ui/components/ModelPickerDialog.js.map +1 -0
  129. package/dist/ink-ui/components/StreamDisplay.d.ts +31 -0
  130. package/dist/ink-ui/components/StreamDisplay.d.ts.map +1 -0
  131. package/dist/ink-ui/components/StreamDisplay.js +573 -0
  132. package/dist/ink-ui/components/StreamDisplay.js.map +1 -0
  133. package/dist/ink-ui/components/SubAgentPanel.d.ts +98 -0
  134. package/dist/ink-ui/components/SubAgentPanel.d.ts.map +1 -0
  135. package/dist/ink-ui/components/SubAgentPanel.js +155 -0
  136. package/dist/ink-ui/components/SubAgentPanel.js.map +1 -0
  137. package/dist/ink-ui/components/ThinkingDisplay.d.ts +46 -0
  138. package/dist/ink-ui/components/ThinkingDisplay.d.ts.map +1 -0
  139. package/dist/ink-ui/components/ThinkingDisplay.js +176 -0
  140. package/dist/ink-ui/components/ThinkingDisplay.js.map +1 -0
  141. package/dist/ink-ui/components/ToolCallDisplay.d.ts +51 -0
  142. package/dist/ink-ui/components/ToolCallDisplay.d.ts.map +1 -0
  143. package/dist/ink-ui/components/ToolCallDisplay.js +378 -0
  144. package/dist/ink-ui/components/ToolCallDisplay.js.map +1 -0
  145. package/dist/ink-ui/components/WritePreview.d.ts +42 -0
  146. package/dist/ink-ui/components/WritePreview.d.ts.map +1 -0
  147. package/dist/ink-ui/components/WritePreview.js +100 -0
  148. package/dist/ink-ui/components/WritePreview.js.map +1 -0
  149. package/dist/ink-ui/contexts/KeypressContext.d.ts +32 -0
  150. package/dist/ink-ui/contexts/KeypressContext.d.ts.map +1 -0
  151. package/dist/ink-ui/contexts/KeypressContext.js +529 -0
  152. package/dist/ink-ui/contexts/KeypressContext.js.map +1 -0
  153. package/dist/ink-ui/contexts/SessionContext.d.ts +46 -0
  154. package/dist/ink-ui/contexts/SessionContext.d.ts.map +1 -0
  155. package/dist/ink-ui/contexts/SessionContext.js +162 -0
  156. package/dist/ink-ui/contexts/SessionContext.js.map +1 -0
  157. package/dist/ink-ui/core-stubs.d.ts +270 -0
  158. package/dist/ink-ui/core-stubs.d.ts.map +1 -0
  159. package/dist/ink-ui/core-stubs.js +276 -0
  160. package/dist/ink-ui/core-stubs.js.map +1 -0
  161. package/dist/ink-ui/cortex-types.d.ts +214 -0
  162. package/dist/ink-ui/cortex-types.d.ts.map +1 -0
  163. package/dist/ink-ui/cortex-types.js +52 -0
  164. package/dist/ink-ui/cortex-types.js.map +1 -0
  165. package/dist/ink-ui/hooks/useCortexStream.d.ts +75 -0
  166. package/dist/ink-ui/hooks/useCortexStream.d.ts.map +1 -0
  167. package/dist/ink-ui/hooks/useCortexStream.js +518 -0
  168. package/dist/ink-ui/hooks/useCortexStream.js.map +1 -0
  169. package/dist/ink-ui/hooks/useFocus.d.ts +11 -0
  170. package/dist/ink-ui/hooks/useFocus.d.ts.map +1 -0
  171. package/dist/ink-ui/hooks/useFocus.js +51 -0
  172. package/dist/ink-ui/hooks/useFocus.js.map +1 -0
  173. package/dist/ink-ui/hooks/useHistoryManager.d.ts +23 -0
  174. package/dist/ink-ui/hooks/useHistoryManager.d.ts.map +1 -0
  175. package/dist/ink-ui/hooks/useHistoryManager.js +63 -0
  176. package/dist/ink-ui/hooks/useHistoryManager.js.map +1 -0
  177. package/dist/ink-ui/hooks/useKeypress.d.ts +18 -0
  178. package/dist/ink-ui/hooks/useKeypress.d.ts.map +1 -0
  179. package/dist/ink-ui/hooks/useKeypress.js +27 -0
  180. package/dist/ink-ui/hooks/useKeypress.js.map +1 -0
  181. package/dist/ink-ui/hooks/useReactApprovalHandler.d.ts +74 -0
  182. package/dist/ink-ui/hooks/useReactApprovalHandler.d.ts.map +1 -0
  183. package/dist/ink-ui/hooks/useReactApprovalHandler.js +83 -0
  184. package/dist/ink-ui/hooks/useReactApprovalHandler.js.map +1 -0
  185. package/dist/ink-ui/hooks/useTerminalSize.d.ts +10 -0
  186. package/dist/ink-ui/hooks/useTerminalSize.d.ts.map +1 -0
  187. package/dist/ink-ui/hooks/useTerminalSize.js +28 -0
  188. package/dist/ink-ui/hooks/useTerminalSize.js.map +1 -0
  189. package/dist/ink-ui/semantic-colors.d.ts +8 -0
  190. package/dist/ink-ui/semantic-colors.d.ts.map +1 -0
  191. package/dist/ink-ui/semantic-colors.js +24 -0
  192. package/dist/ink-ui/semantic-colors.js.map +1 -0
  193. package/dist/ink-ui/state/extensions.d.ts +68 -0
  194. package/dist/ink-ui/state/extensions.d.ts.map +1 -0
  195. package/dist/ink-ui/state/extensions.js +97 -0
  196. package/dist/ink-ui/state/extensions.js.map +1 -0
  197. package/dist/ink-ui/themes/ansi-light.d.ts +8 -0
  198. package/dist/ink-ui/themes/ansi-light.d.ts.map +1 -0
  199. package/dist/ink-ui/themes/ansi-light.js +143 -0
  200. package/dist/ink-ui/themes/ansi-light.js.map +1 -0
  201. package/dist/ink-ui/themes/ansi.d.ts +8 -0
  202. package/dist/ink-ui/themes/ansi.d.ts.map +1 -0
  203. package/dist/ink-ui/themes/ansi.js +153 -0
  204. package/dist/ink-ui/themes/ansi.js.map +1 -0
  205. package/dist/ink-ui/themes/atom-one-dark.d.ts +8 -0
  206. package/dist/ink-ui/themes/atom-one-dark.d.ts.map +1 -0
  207. package/dist/ink-ui/themes/atom-one-dark.js +140 -0
  208. package/dist/ink-ui/themes/atom-one-dark.js.map +1 -0
  209. package/dist/ink-ui/themes/ayu-light.d.ts +8 -0
  210. package/dist/ink-ui/themes/ayu-light.d.ts.map +1 -0
  211. package/dist/ink-ui/themes/ayu-light.js +132 -0
  212. package/dist/ink-ui/themes/ayu-light.js.map +1 -0
  213. package/dist/ink-ui/themes/ayu.d.ts +8 -0
  214. package/dist/ink-ui/themes/ayu.d.ts.map +1 -0
  215. package/dist/ink-ui/themes/ayu.js +106 -0
  216. package/dist/ink-ui/themes/ayu.js.map +1 -0
  217. package/dist/ink-ui/themes/color-utils.d.ts +23 -0
  218. package/dist/ink-ui/themes/color-utils.d.ts.map +1 -0
  219. package/dist/ink-ui/themes/color-utils.js +237 -0
  220. package/dist/ink-ui/themes/color-utils.js.map +1 -0
  221. package/dist/ink-ui/themes/default-light.d.ts +8 -0
  222. package/dist/ink-ui/themes/default-light.d.ts.map +1 -0
  223. package/dist/ink-ui/themes/default-light.js +100 -0
  224. package/dist/ink-ui/themes/default-light.js.map +1 -0
  225. package/dist/ink-ui/themes/default.d.ts +8 -0
  226. package/dist/ink-ui/themes/default.d.ts.map +1 -0
  227. package/dist/ink-ui/themes/default.js +143 -0
  228. package/dist/ink-ui/themes/default.js.map +1 -0
  229. package/dist/ink-ui/themes/dracula.d.ts +8 -0
  230. package/dist/ink-ui/themes/dracula.d.ts.map +1 -0
  231. package/dist/ink-ui/themes/dracula.js +117 -0
  232. package/dist/ink-ui/themes/dracula.js.map +1 -0
  233. package/dist/ink-ui/themes/github-dark.d.ts +8 -0
  234. package/dist/ink-ui/themes/github-dark.d.ts.map +1 -0
  235. package/dist/ink-ui/themes/github-dark.js +140 -0
  236. package/dist/ink-ui/themes/github-dark.js.map +1 -0
  237. package/dist/ink-ui/themes/github-light.d.ts +8 -0
  238. package/dist/ink-ui/themes/github-light.d.ts.map +1 -0
  239. package/dist/ink-ui/themes/github-light.js +142 -0
  240. package/dist/ink-ui/themes/github-light.js.map +1 -0
  241. package/dist/ink-ui/themes/googlecode.d.ts +8 -0
  242. package/dist/ink-ui/themes/googlecode.d.ts.map +1 -0
  243. package/dist/ink-ui/themes/googlecode.js +139 -0
  244. package/dist/ink-ui/themes/googlecode.js.map +1 -0
  245. package/dist/ink-ui/themes/no-color.d.ts +8 -0
  246. package/dist/ink-ui/themes/no-color.d.ts.map +1 -0
  247. package/dist/ink-ui/themes/no-color.js +118 -0
  248. package/dist/ink-ui/themes/no-color.js.map +1 -0
  249. package/dist/ink-ui/themes/semantic-tokens.d.ts +40 -0
  250. package/dist/ink-ui/themes/semantic-tokens.d.ts.map +1 -0
  251. package/dist/ink-ui/themes/semantic-tokens.js +100 -0
  252. package/dist/ink-ui/themes/semantic-tokens.js.map +1 -0
  253. package/dist/ink-ui/themes/shades-of-purple.d.ts +12 -0
  254. package/dist/ink-ui/themes/shades-of-purple.d.ts.map +1 -0
  255. package/dist/ink-ui/themes/shades-of-purple.js +306 -0
  256. package/dist/ink-ui/themes/shades-of-purple.js.map +1 -0
  257. package/dist/ink-ui/themes/theme-manager.d.ts +67 -0
  258. package/dist/ink-ui/themes/theme-manager.d.ts.map +1 -0
  259. package/dist/ink-ui/themes/theme-manager.js +263 -0
  260. package/dist/ink-ui/themes/theme-manager.js.map +1 -0
  261. package/dist/ink-ui/themes/theme.d.ts +134 -0
  262. package/dist/ink-ui/themes/theme.d.ts.map +1 -0
  263. package/dist/ink-ui/themes/theme.js +390 -0
  264. package/dist/ink-ui/themes/theme.js.map +1 -0
  265. package/dist/ink-ui/themes/xcode.d.ts +8 -0
  266. package/dist/ink-ui/themes/xcode.d.ts.map +1 -0
  267. package/dist/ink-ui/themes/xcode.js +147 -0
  268. package/dist/ink-ui/themes/xcode.js.map +1 -0
  269. package/dist/ink-ui/types.d.ts +306 -0
  270. package/dist/ink-ui/types.d.ts.map +1 -0
  271. package/dist/ink-ui/types.js +65 -0
  272. package/dist/ink-ui/types.js.map +1 -0
  273. package/dist/ink-ui/utils/input.d.ts +18 -0
  274. package/dist/ink-ui/utils/input.d.ts.map +1 -0
  275. package/dist/ink-ui/utils/input.js +51 -0
  276. package/dist/ink-ui/utils/input.js.map +1 -0
  277. package/dist/ink-ui/utils/mouse.d.ts +33 -0
  278. package/dist/ink-ui/utils/mouse.d.ts.map +1 -0
  279. package/dist/ink-ui/utils/mouse.js +182 -0
  280. package/dist/ink-ui/utils/mouse.js.map +1 -0
  281. package/dist/services/BuiltinCommandLoader.d.ts +21 -0
  282. package/dist/services/BuiltinCommandLoader.d.ts.map +1 -0
  283. package/dist/services/BuiltinCommandLoader.js +182 -0
  284. package/dist/services/BuiltinCommandLoader.js.map +1 -0
  285. package/dist/services/CommandService.d.ts +39 -0
  286. package/dist/services/CommandService.d.ts.map +1 -0
  287. package/dist/services/CommandService.js +49 -0
  288. package/dist/services/CommandService.js.map +1 -0
  289. package/dist/services/FileCommandLoader.d.ts +16 -0
  290. package/dist/services/FileCommandLoader.d.ts.map +1 -0
  291. package/dist/services/FileCommandLoader.js +19 -0
  292. package/dist/services/FileCommandLoader.js.map +1 -0
  293. package/dist/services/McpPromptLoader.d.ts +16 -0
  294. package/dist/services/McpPromptLoader.d.ts.map +1 -0
  295. package/dist/services/McpPromptLoader.js +19 -0
  296. package/dist/services/McpPromptLoader.js.map +1 -0
  297. package/dist/services/index.d.ts +8 -0
  298. package/dist/services/index.d.ts.map +1 -0
  299. package/dist/services/index.js +8 -0
  300. package/dist/services/index.js.map +1 -0
  301. package/dist/ui/ChalkMenuRenderer.d.ts +22 -0
  302. package/dist/ui/ChalkMenuRenderer.d.ts.map +1 -0
  303. package/dist/ui/ChalkMenuRenderer.js +478 -0
  304. package/dist/ui/ChalkMenuRenderer.js.map +1 -0
  305. package/dist/ui/ChalkModelPicker.d.ts +20 -0
  306. package/dist/ui/ChalkModelPicker.d.ts.map +1 -0
  307. package/dist/ui/ChalkModelPicker.js +363 -0
  308. package/dist/ui/ChalkModelPicker.js.map +1 -0
  309. package/dist/ui/ChalkThemePicker.d.ts +20 -0
  310. package/dist/ui/ChalkThemePicker.d.ts.map +1 -0
  311. package/dist/ui/ChalkThemePicker.js +370 -0
  312. package/dist/ui/ChalkThemePicker.js.map +1 -0
  313. package/dist/ui/InkApprovalDialog.d.ts +8 -0
  314. package/dist/ui/InkApprovalDialog.d.ts.map +1 -0
  315. package/dist/ui/InkApprovalDialog.js +25 -0
  316. package/dist/ui/InkApprovalDialog.js.map +1 -0
  317. package/dist/ui/InkCommandPalette.d.ts +43 -0
  318. package/dist/ui/InkCommandPalette.d.ts.map +1 -0
  319. package/dist/ui/InkCommandPalette.js +105 -0
  320. package/dist/ui/InkCommandPalette.js.map +1 -0
  321. package/dist/ui/InkConfigMenu.d.ts +24 -0
  322. package/dist/ui/InkConfigMenu.d.ts.map +1 -0
  323. package/dist/ui/InkConfigMenu.js +259 -0
  324. package/dist/ui/InkConfigMenu.js.map +1 -0
  325. package/dist/ui/InkHelp.d.ts +25 -0
  326. package/dist/ui/InkHelp.d.ts.map +1 -0
  327. package/dist/ui/InkHelp.js +55 -0
  328. package/dist/ui/InkHelp.js.map +1 -0
  329. package/dist/ui/InkMenuPicker.d.ts +19 -0
  330. package/dist/ui/InkMenuPicker.d.ts.map +1 -0
  331. package/dist/ui/InkMenuPicker.js +33 -0
  332. package/dist/ui/InkMenuPicker.js.map +1 -0
  333. package/dist/ui/InkModelPicker.d.ts +23 -0
  334. package/dist/ui/InkModelPicker.d.ts.map +1 -0
  335. package/dist/ui/InkModelPicker.js +53 -0
  336. package/dist/ui/InkModelPicker.js.map +1 -0
  337. package/dist/ui/PersistentInput.d.ts +91 -0
  338. package/dist/ui/PersistentInput.d.ts.map +1 -0
  339. package/dist/ui/PersistentInput.js +283 -0
  340. package/dist/ui/PersistentInput.js.map +1 -0
  341. package/dist/ui/RawInput.d.ts +27 -0
  342. package/dist/ui/RawInput.d.ts.map +1 -0
  343. package/dist/ui/RawInput.js +731 -0
  344. package/dist/ui/RawInput.js.map +1 -0
  345. package/dist/ui/SlashCommandAutocomplete.d.ts +94 -0
  346. package/dist/ui/SlashCommandAutocomplete.d.ts.map +1 -0
  347. package/dist/ui/SlashCommandAutocomplete.js +274 -0
  348. package/dist/ui/SlashCommandAutocomplete.js.map +1 -0
  349. package/dist/ui/SplashScreen.d.ts +76 -0
  350. package/dist/ui/SplashScreen.d.ts.map +1 -0
  351. package/dist/ui/SplashScreen.js +316 -0
  352. package/dist/ui/SplashScreen.js.map +1 -0
  353. package/dist/ui/components/ArtifactDashboard.d.ts +16 -0
  354. package/dist/ui/components/ArtifactDashboard.d.ts.map +1 -0
  355. package/dist/ui/components/ArtifactDashboard.js +102 -0
  356. package/dist/ui/components/ArtifactDashboard.js.map +1 -0
  357. package/dist/ui/components/ChatInput.d.ts +36 -0
  358. package/dist/ui/components/ChatInput.d.ts.map +1 -0
  359. package/dist/ui/components/ChatInput.js +11 -0
  360. package/dist/ui/components/ChatInput.js.map +1 -0
  361. package/dist/ui/components/ConfigWizard.d.ts +17 -0
  362. package/dist/ui/components/ConfigWizard.d.ts.map +1 -0
  363. package/dist/ui/components/ConfigWizard.js +134 -0
  364. package/dist/ui/components/ConfigWizard.js.map +1 -0
  365. package/dist/ui/components/ContextViewer.d.ts +18 -0
  366. package/dist/ui/components/ContextViewer.d.ts.map +1 -0
  367. package/dist/ui/components/ContextViewer.js +85 -0
  368. package/dist/ui/components/ContextViewer.js.map +1 -0
  369. package/dist/ui/components/MiddlewareDashboard.d.ts +16 -0
  370. package/dist/ui/components/MiddlewareDashboard.d.ts.map +1 -0
  371. package/dist/ui/components/MiddlewareDashboard.js +98 -0
  372. package/dist/ui/components/MiddlewareDashboard.js.map +1 -0
  373. package/dist/ui/components/ModelPicker.d.ts +24 -0
  374. package/dist/ui/components/ModelPicker.d.ts.map +1 -0
  375. package/dist/ui/components/ModelPicker.js +96 -0
  376. package/dist/ui/components/ModelPicker.js.map +1 -0
  377. package/dist/ui/components/MultiLineInput.d.ts +27 -0
  378. package/dist/ui/components/MultiLineInput.d.ts.map +1 -0
  379. package/dist/ui/components/MultiLineInput.js +182 -0
  380. package/dist/ui/components/MultiLineInput.js.map +1 -0
  381. package/dist/ui/components/PermissionsBrowser.d.ts +16 -0
  382. package/dist/ui/components/PermissionsBrowser.d.ts.map +1 -0
  383. package/dist/ui/components/PermissionsBrowser.js +110 -0
  384. package/dist/ui/components/PermissionsBrowser.js.map +1 -0
  385. package/dist/ui/components/SessionBrowser.d.ts +19 -0
  386. package/dist/ui/components/SessionBrowser.d.ts.map +1 -0
  387. package/dist/ui/components/SessionBrowser.js +66 -0
  388. package/dist/ui/components/SessionBrowser.js.map +1 -0
  389. package/dist/ui/components/StatusBar.d.ts +32 -0
  390. package/dist/ui/components/StatusBar.d.ts.map +1 -0
  391. package/dist/ui/components/StatusBar.js +27 -0
  392. package/dist/ui/components/StatusBar.js.map +1 -0
  393. package/dist/ui/components/SystemMessageBrowser.d.ts +11 -0
  394. package/dist/ui/components/SystemMessageBrowser.d.ts.map +1 -0
  395. package/dist/ui/components/SystemMessageBrowser.js +106 -0
  396. package/dist/ui/components/SystemMessageBrowser.js.map +1 -0
  397. package/dist/ui/components/ThemePicker.d.ts +11 -0
  398. package/dist/ui/components/ThemePicker.d.ts.map +1 -0
  399. package/dist/ui/components/ThemePicker.js +62 -0
  400. package/dist/ui/components/ThemePicker.js.map +1 -0
  401. package/dist/ui/components/TmuxBrowser.d.ts +11 -0
  402. package/dist/ui/components/TmuxBrowser.d.ts.map +1 -0
  403. package/dist/ui/components/TmuxBrowser.js +85 -0
  404. package/dist/ui/components/TmuxBrowser.js.map +1 -0
  405. package/dist/ui/components/index.d.ts +22 -0
  406. package/dist/ui/components/index.d.ts.map +1 -0
  407. package/dist/ui/components/index.js +21 -0
  408. package/dist/ui/components/index.js.map +1 -0
  409. package/package.json +70 -0
@@ -0,0 +1,98 @@
1
+ /**
2
+ * SubAgentPanel - Compact display for parallel sub-agent activity
3
+ *
4
+ * Claude Code style display:
5
+ * ● Task(agent name - task summary)
6
+ * ⎿ > current action/output
7
+ * … +N lines (ctrl+o to expand)
8
+ */
9
+ import React from 'react';
10
+ /**
11
+ * Status of a sub-agent
12
+ */
13
+ export type SubAgentStatus = 'starting' | 'running' | 'completed' | 'error' | 'interrupted' | 'timeout';
14
+ /**
15
+ * Tool call info for display
16
+ */
17
+ export interface SubAgentToolCall {
18
+ toolName: string;
19
+ summary: string;
20
+ timestamp: Date;
21
+ }
22
+ /**
23
+ * State of a single sub-agent for UI display
24
+ */
25
+ export interface SubAgentState {
26
+ agentId: string;
27
+ agentName: string;
28
+ model: string;
29
+ status: SubAgentStatus;
30
+ startTime: Date;
31
+ turnNumber: number;
32
+ totalTokens: number;
33
+ elapsedMs: number;
34
+ recentToolCalls: SubAgentToolCall[];
35
+ lastResponse?: string;
36
+ error?: string;
37
+ }
38
+ /**
39
+ * Props for SubAgentPanel
40
+ */
41
+ export interface SubAgentPanelProps {
42
+ /** Map of active sub-agents by ID */
43
+ agents: Map<string, SubAgentState>;
44
+ /** Maximum tool calls to show per agent */
45
+ maxToolCalls?: number;
46
+ /** Terminal width for proper display */
47
+ terminalWidth?: number;
48
+ }
49
+ /**
50
+ * Main SubAgentPanel component
51
+ *
52
+ * Displays all active sub-agents in Claude Code style
53
+ */
54
+ export declare const SubAgentPanel: React.FC<SubAgentPanelProps>;
55
+ /**
56
+ * Hook to manage sub-agent state from IPC events
57
+ */
58
+ export declare function createSubAgentStateManager(): {
59
+ agents: Map<string, SubAgentState>;
60
+ handleStarted(payload: {
61
+ agentId: string;
62
+ agentName: string;
63
+ model: string;
64
+ }): void;
65
+ handleProgress(payload: {
66
+ agentId: string;
67
+ turnNumber: number;
68
+ totalTokens: number;
69
+ elapsedMs: number;
70
+ }): void;
71
+ handleToolCall(payload: {
72
+ agentId: string;
73
+ toolName: string;
74
+ toolInput: Record<string, unknown>;
75
+ }): void;
76
+ handleText(payload: {
77
+ agentId: string;
78
+ text: string;
79
+ isFinal: boolean;
80
+ }): void;
81
+ handleCompleted(payload: {
82
+ agentId: string;
83
+ result: {
84
+ status: string;
85
+ durationMs: number;
86
+ turnCount: number;
87
+ };
88
+ }): void;
89
+ handleError(payload: {
90
+ agentId: string;
91
+ agentName: string;
92
+ error: Error;
93
+ }): void;
94
+ clear(): void;
95
+ removeCompleted(): void;
96
+ };
97
+ export default SubAgentPanel;
98
+ //# sourceMappingURL=SubAgentPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubAgentPanel.d.ts","sourceRoot":"","sources":["../../../src/ink-ui/components/SubAgentPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAExG;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgHD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8BtD,CAAC;AAEF;;GAEG;AACH,wBAAgB,0BAA0B;;2BAMf;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;4BAcpD;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;4BAS/E;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;wBA2B7E;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;6BAO9C;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;yBAS1F;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE;;;EAoB5E;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,155 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { Colors } from '@nexus-cortex/cli/dist/themes/colors.js';
4
+ /**
5
+ * Get status indicator
6
+ */
7
+ function getStatusIndicator(status) {
8
+ switch (status) {
9
+ case 'starting':
10
+ return { icon: '○', color: Colors.AccentYellow };
11
+ case 'running':
12
+ return { icon: '●', color: Colors.AccentCyan };
13
+ case 'completed':
14
+ return { icon: '●', color: Colors.AccentGreen };
15
+ case 'error':
16
+ return { icon: '●', color: Colors.AccentRed };
17
+ case 'interrupted':
18
+ return { icon: '○', color: Colors.AccentYellow };
19
+ case 'timeout':
20
+ return { icon: '○', color: Colors.AccentYellow };
21
+ default:
22
+ return { icon: '○', color: Colors.Gray };
23
+ }
24
+ }
25
+ /**
26
+ * Format elapsed time compactly
27
+ */
28
+ function formatElapsed(ms) {
29
+ if (ms < 1000)
30
+ return `${ms}ms`;
31
+ return `${(ms / 1000).toFixed(1)}s`;
32
+ }
33
+ /**
34
+ * Single sub-agent line item display
35
+ */
36
+ const SubAgentItem = ({ agent, maxToolCalls = 2 }) => {
37
+ const { icon, color } = getStatusIndicator(agent.status);
38
+ // Get the most recent tool calls
39
+ const recentCalls = agent.recentToolCalls.slice(-maxToolCalls);
40
+ const hiddenCount = Math.max(0, agent.recentToolCalls.length - maxToolCalls);
41
+ // Build the header: ● Task(agent name)
42
+ const isActive = agent.status === 'starting' || agent.status === 'running';
43
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 0, children: [_jsxs(Box, { children: [_jsxs(Text, { color: color, children: [icon, " "] }), _jsx(Text, { color: Colors.AccentCyan, children: "Task" }), _jsx(Text, { color: Colors.Gray, children: "(" }), _jsx(Text, { color: Colors.text, children: agent.agentName }), _jsx(Text, { color: Colors.Gray, children: ")" }), isActive && (_jsxs(Text, { color: Colors.Gray, children: [" ", formatElapsed(agent.elapsedMs)] })), agent.status === 'completed' && (_jsx(Text, { color: Colors.AccentGreen, children: " \u2713" })), agent.status === 'error' && (_jsx(Text, { color: Colors.AccentRed, children: " \u2717" }))] }), recentCalls.length > 0 && (_jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [recentCalls.map((tc, idx) => (_jsxs(Box, { children: [_jsx(Text, { color: Colors.Gray, children: idx === 0 ? '⎿ ' : ' ' }), _jsx(Text, { color: Colors.AccentCyan, children: "> " }), _jsx(Text, { color: Colors.text, children: tc.toolName }), tc.summary && (_jsxs(Text, { color: Colors.Gray, children: [" ", tc.summary] }))] }, idx))), hiddenCount > 0 && (_jsx(Box, { marginLeft: 3, children: _jsxs(Text, { color: Colors.Gray, children: ["\u2026 +", hiddenCount, " actions"] }) }))] })), agent.error && (_jsxs(Box, { marginLeft: 2, children: [_jsx(Text, { color: Colors.Gray, children: "\u23BF " }), _jsx(Text, { color: Colors.AccentRed, children: agent.error })] })), agent.status === 'completed' && agent.lastResponse && (_jsxs(Box, { marginLeft: 2, children: [_jsx(Text, { color: Colors.Gray, children: "\u23BF " }), _jsxs(Text, { color: Colors.Gray, wrap: "truncate-end", children: [agent.lastResponse.slice(0, 60), agent.lastResponse.length > 60 ? '…' : ''] })] }))] }));
44
+ };
45
+ /**
46
+ * Main SubAgentPanel component
47
+ *
48
+ * Displays all active sub-agents in Claude Code style
49
+ */
50
+ export const SubAgentPanel = ({ agents, maxToolCalls = 2, }) => {
51
+ const agentList = Array.from(agents.values());
52
+ if (agentList.length === 0) {
53
+ return null;
54
+ }
55
+ // Sort: active agents first, then completed
56
+ const sortedAgents = agentList.sort((a, b) => {
57
+ const aActive = a.status === 'starting' || a.status === 'running';
58
+ const bActive = b.status === 'starting' || b.status === 'running';
59
+ if (aActive && !bActive)
60
+ return -1;
61
+ if (!aActive && bActive)
62
+ return 1;
63
+ return 0;
64
+ });
65
+ return (_jsx(Box, { flexDirection: "column", marginY: 1, children: sortedAgents.map(agent => (_jsx(SubAgentItem, { agent: agent, maxToolCalls: maxToolCalls }, agent.agentId))) }));
66
+ };
67
+ /**
68
+ * Hook to manage sub-agent state from IPC events
69
+ */
70
+ export function createSubAgentStateManager() {
71
+ const agents = new Map();
72
+ return {
73
+ agents,
74
+ handleStarted(payload) {
75
+ agents.set(payload.agentId, {
76
+ agentId: payload.agentId,
77
+ agentName: payload.agentName,
78
+ model: payload.model,
79
+ status: 'running',
80
+ startTime: new Date(),
81
+ turnNumber: 0,
82
+ totalTokens: 0,
83
+ elapsedMs: 0,
84
+ recentToolCalls: [],
85
+ });
86
+ },
87
+ handleProgress(payload) {
88
+ const agent = agents.get(payload.agentId);
89
+ if (agent) {
90
+ agent.turnNumber = payload.turnNumber;
91
+ agent.totalTokens = payload.totalTokens;
92
+ agent.elapsedMs = payload.elapsedMs;
93
+ }
94
+ },
95
+ handleToolCall(payload) {
96
+ const agent = agents.get(payload.agentId);
97
+ if (agent) {
98
+ // Build compact summary from input
99
+ let summary = '';
100
+ if (payload.toolInput.file_path) {
101
+ summary = String(payload.toolInput.file_path);
102
+ }
103
+ else if (payload.toolInput.command) {
104
+ const cmd = String(payload.toolInput.command);
105
+ summary = cmd.length > 40 ? cmd.slice(0, 40) + '…' : cmd;
106
+ }
107
+ else if (payload.toolInput.pattern) {
108
+ summary = `"${payload.toolInput.pattern}"`;
109
+ }
110
+ agent.recentToolCalls.push({
111
+ toolName: payload.toolName,
112
+ summary,
113
+ timestamp: new Date(),
114
+ });
115
+ // Keep only last 10
116
+ if (agent.recentToolCalls.length > 10) {
117
+ agent.recentToolCalls = agent.recentToolCalls.slice(-10);
118
+ }
119
+ }
120
+ },
121
+ handleText(payload) {
122
+ const agent = agents.get(payload.agentId);
123
+ if (agent && payload.isFinal) {
124
+ agent.lastResponse = payload.text;
125
+ }
126
+ },
127
+ handleCompleted(payload) {
128
+ const agent = agents.get(payload.agentId);
129
+ if (agent) {
130
+ agent.status = payload.result.status;
131
+ agent.elapsedMs = payload.result.durationMs;
132
+ agent.turnNumber = payload.result.turnCount;
133
+ }
134
+ },
135
+ handleError(payload) {
136
+ const agent = agents.get(payload.agentId);
137
+ if (agent) {
138
+ agent.status = 'error';
139
+ agent.error = payload.error.message;
140
+ }
141
+ },
142
+ clear() {
143
+ agents.clear();
144
+ },
145
+ removeCompleted() {
146
+ for (const [id, agent] of agents) {
147
+ if (agent.status !== 'starting' && agent.status !== 'running') {
148
+ agents.delete(id);
149
+ }
150
+ }
151
+ },
152
+ };
153
+ }
154
+ export default SubAgentPanel;
155
+ //# sourceMappingURL=SubAgentPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubAgentPanel.js","sourceRoot":"","sources":["../../../src/ink-ui/components/SubAgentPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * ThinkingDisplay - Component for rendering AI thinking/reasoning blocks
3
+ *
4
+ * Displays thinking content with proper styling:
5
+ * - Dimmed, italic text for in-progress thinking
6
+ * - Collapsible display for completed thinking
7
+ * - Visual prefix icon (brain emoji)
8
+ */
9
+ import React from 'react';
10
+ /** Type of thinking block for visual distinction */
11
+ export type ThinkingType = 'native' | 'extended' | 'mentorship';
12
+ export interface ThinkingDisplayProps {
13
+ /** The thinking text content */
14
+ text: string;
15
+ /** Whether the thinking block is complete */
16
+ isComplete: boolean;
17
+ /** Whether to show in expanded or collapsed mode */
18
+ expanded?: boolean;
19
+ /** Maximum lines to show when collapsed */
20
+ maxCollapsedLines?: number;
21
+ /** Terminal width for wrapping */
22
+ terminalWidth?: number;
23
+ /** Whether this is inline (during streaming) vs in history */
24
+ isInline?: boolean;
25
+ /** Type of thinking for visual distinction */
26
+ thinkingType?: ThinkingType;
27
+ }
28
+ /**
29
+ * Component that displays AI thinking/reasoning content
30
+ */
31
+ export declare const ThinkingDisplay: React.FC<ThinkingDisplayProps>;
32
+ /**
33
+ * Inline thinking display for during streaming
34
+ * Claude Code style: bullet prefix with type-aware styling
35
+ * Each paragraph gets its own bullet
36
+ */
37
+ export declare const InlineThinkingDisplay: React.FC<{
38
+ text: string;
39
+ isComplete: boolean;
40
+ /** Available width for text wrapping */
41
+ width?: number;
42
+ /** Type of thinking for visual distinction */
43
+ thinkingType?: ThinkingType;
44
+ }>;
45
+ export default ThinkingDisplay;
46
+ //# sourceMappingURL=ThinkingDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThinkingDisplay.d.ts","sourceRoot":"","sources":["../../../src/ink-ui/components/ThinkingDisplay.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAsCD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6E1D,CAAC;AAuEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAmDA,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,176 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * ThinkingDisplay - Component for rendering AI thinking/reasoning blocks
4
+ *
5
+ * Displays thinking content with proper styling:
6
+ * - Dimmed, italic text for in-progress thinking
7
+ * - Collapsible display for completed thinking
8
+ * - Visual prefix icon (brain emoji)
9
+ */
10
+ import { useState } from 'react';
11
+ import { Box, Text, useInput, useStdout } from 'ink';
12
+ import { Colors } from '@nexus-cortex/cli/dist/themes/colors.js';
13
+ /**
14
+ * Get display configuration based on thinking type
15
+ */
16
+ function getThinkingConfig(thinkingType, isComplete) {
17
+ switch (thinkingType) {
18
+ case 'extended':
19
+ // Extended thinking (Opus + Tab): dimmed, brain icon, "Extended Thinking"
20
+ return {
21
+ icon: '',
22
+ label: isComplete ? 'Extended Thinking' : 'Extended Thinking',
23
+ color: Colors.AccentPurple,
24
+ dimContent: true,
25
+ borderColor: Colors.AccentPurple,
26
+ };
27
+ case 'mentorship':
28
+ // Mentorship thinking: lightbulb icon, "Mentor Insight"
29
+ return {
30
+ icon: '',
31
+ label: 'Mentor Insight',
32
+ color: Colors.AccentYellow,
33
+ dimContent: false,
34
+ borderColor: Colors.AccentYellow,
35
+ };
36
+ case 'native':
37
+ default:
38
+ // Native interleaved (Haiku): thought bubble, "Thinking"
39
+ return {
40
+ icon: '',
41
+ label: isComplete ? 'Thinking' : 'Thinking',
42
+ color: Colors.AccentBlue,
43
+ dimContent: false,
44
+ borderColor: Colors.Gray,
45
+ };
46
+ }
47
+ }
48
+ /**
49
+ * Component that displays AI thinking/reasoning content
50
+ */
51
+ export const ThinkingDisplay = ({ text, isComplete, expanded = true, maxCollapsedLines = 3, terminalWidth = 80, isInline = false, thinkingType = 'native', }) => {
52
+ const [isExpanded, setIsExpanded] = useState(expanded);
53
+ // Only allow toggle when viewing completed thinking in history
54
+ useInput((_input, key) => {
55
+ if (key.return && isComplete && !isInline) {
56
+ setIsExpanded(prev => !prev);
57
+ }
58
+ });
59
+ if (!text) {
60
+ return null;
61
+ }
62
+ const lines = text.split('\n');
63
+ const displayLines = isExpanded ? lines : lines.slice(0, maxCollapsedLines);
64
+ const hasMoreLines = !isExpanded && lines.length > maxCollapsedLines;
65
+ // Calculate available width for content (accounting for prefix)
66
+ const contentWidth = Math.max(terminalWidth - 6, 40);
67
+ // Get config based on thinking type
68
+ const config = getThinkingConfig(thinkingType, isComplete);
69
+ const statusIndicator = isComplete ? '' : ' ...';
70
+ // Style based on thinking type
71
+ const textStyle = {
72
+ dimColor: config.dimContent,
73
+ italic: true,
74
+ };
75
+ return (_jsxs(Box, { flexDirection: "column", marginY: isInline ? 0 : 1, paddingLeft: 1, borderStyle: isComplete && !isInline ? 'single' : undefined, borderColor: config.borderColor, width: contentWidth + 4, children: [_jsxs(Box, { children: [_jsxs(Text, { color: config.color, children: [config.icon, " "] }), _jsxs(Text, { bold: true, color: config.color, children: [config.label, statusIndicator] }), isComplete && !isInline && (_jsxs(Text, { dimColor: true, children: [" (press Enter to ", isExpanded ? 'collapse' : 'expand', ")"] }))] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, paddingLeft: 2, children: [displayLines.map((line, lineIndex) => {
76
+ // Word-wrap each line to fit within content width
77
+ const wrappedLines = wordWrap(line, contentWidth - 2);
78
+ return wrappedLines.map((wrappedLine, wrapIndex) => (_jsx(Text, { ...textStyle, children: wrappedLine }, `${lineIndex}-${wrapIndex}`)));
79
+ }), hasMoreLines && (_jsxs(Text, { dimColor: true, children: ["... (", lines.length - maxCollapsedLines, " more lines)"] }))] })] }));
80
+ };
81
+ /**
82
+ * Word-wrap text to a specific width, breaking at word boundaries
83
+ */
84
+ function wordWrap(text, width) {
85
+ if (width <= 0 || !text)
86
+ return [text];
87
+ // Normalize whitespace first
88
+ const normalized = text
89
+ .replace(/[\r\n]+/g, ' ')
90
+ .replace(/\s+/g, ' ')
91
+ .trim();
92
+ const words = normalized.split(' ');
93
+ const lines = [];
94
+ let currentLine = '';
95
+ for (const word of words) {
96
+ if (!word)
97
+ continue;
98
+ if (!currentLine) {
99
+ currentLine = word;
100
+ }
101
+ else if (currentLine.length + 1 + word.length <= width) {
102
+ currentLine += ' ' + word;
103
+ }
104
+ else {
105
+ lines.push(currentLine);
106
+ currentLine = word;
107
+ }
108
+ }
109
+ if (currentLine) {
110
+ lines.push(currentLine);
111
+ }
112
+ return lines.length > 0 ? lines : [''];
113
+ }
114
+ /**
115
+ * Get inline display configuration based on thinking type
116
+ */
117
+ function getInlineThinkingConfig(thinkingType) {
118
+ switch (thinkingType) {
119
+ case 'extended':
120
+ // Extended thinking: dimmed, no bullet, brain prefix on first line
121
+ return {
122
+ bullet: ' ',
123
+ bulletContinue: ' ',
124
+ dimContent: true,
125
+ color: Colors.AccentPurple,
126
+ };
127
+ case 'mentorship':
128
+ // Mentorship: not dimmed, lightbulb bullet
129
+ return {
130
+ bullet: ' ',
131
+ bulletContinue: ' ',
132
+ dimContent: false,
133
+ color: Colors.AccentYellow,
134
+ };
135
+ case 'native':
136
+ default:
137
+ // Native interleaved: standard bullet style
138
+ return {
139
+ bullet: '● ',
140
+ bulletContinue: ' ',
141
+ dimContent: false,
142
+ color: Colors.AccentBlue,
143
+ };
144
+ }
145
+ }
146
+ /**
147
+ * Inline thinking display for during streaming
148
+ * Claude Code style: bullet prefix with type-aware styling
149
+ * Each paragraph gets its own bullet
150
+ */
151
+ export const InlineThinkingDisplay = ({ text, isComplete, width, thinkingType = 'native' }) => {
152
+ const { stdout } = useStdout();
153
+ const terminalWidth = stdout?.columns || 80;
154
+ if (!text) {
155
+ return null;
156
+ }
157
+ // Get config based on thinking type
158
+ const config = getInlineThinkingConfig(thinkingType);
159
+ // Split into paragraphs for bullet display
160
+ const paragraphs = text.split(/\n\n+/).filter(p => p.trim());
161
+ // Only show last few paragraphs during streaming to avoid overwhelming
162
+ const maxParagraphs = 4;
163
+ const displayParagraphs = paragraphs.slice(-maxParagraphs);
164
+ // Calculate content width (accounting for bullet prefix)
165
+ const effectiveWidth = width || terminalWidth;
166
+ const contentWidth = effectiveWidth - config.bullet.length;
167
+ return (_jsx(Box, { flexDirection: "column", marginY: 1, children: displayParagraphs.map((paragraph, index) => {
168
+ const isLastParagraph = index === displayParagraphs.length - 1;
169
+ const trimmedText = paragraph.trim();
170
+ // Word wrap text to fit within content width
171
+ const lines = wordWrap(trimmedText, contentWidth);
172
+ return (_jsx(Box, { flexDirection: "column", marginBottom: isLastParagraph ? 0 : 1, children: lines.map((line, lineIndex) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: config.dimContent, color: lineIndex === 0 ? config.color : undefined, children: lineIndex === 0 ? config.bullet : config.bulletContinue }), _jsxs(Text, { dimColor: config.dimContent, italic: true, children: [line, !isComplete && isLastParagraph && lineIndex === lines.length - 1 && (_jsx(Text, { color: Colors.AccentCyan, children: " \u258C" }))] })] }, lineIndex))) }, index));
173
+ }) }));
174
+ };
175
+ export default ThinkingDisplay;
176
+ //# sourceMappingURL=ThinkingDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThinkingDisplay.js","sourceRoot":"","sources":["../../../src/ink-ui/components/ThinkingDisplay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * ToolCallDisplay - Component for rendering tool calls with proper formatting
3
+ *
4
+ * Displays tool calls with:
5
+ * - Tool name with icon
6
+ * - Formatted input display (not raw JSON)
7
+ * - Status indicator
8
+ * - Result formatting based on tool type
9
+ */
10
+ import React from 'react';
11
+ import type { IndividualToolCallDisplay } from '../cortex-types.js';
12
+ export interface ToolCallDisplayProps {
13
+ /** Tool call data */
14
+ toolCall: IndividualToolCallDisplay;
15
+ /** Terminal width for proper display */
16
+ terminalWidth?: number;
17
+ /** Whether to show in compact mode */
18
+ compact?: boolean;
19
+ /** Raw input args if available */
20
+ inputArgs?: Record<string, any>;
21
+ }
22
+ /**
23
+ * Main ToolCallDisplay component
24
+ */
25
+ export declare const ToolCallDisplay: React.FC<ToolCallDisplayProps>;
26
+ /**
27
+ * Tool group display - shows multiple tool calls
28
+ */
29
+ export declare const ToolGroupDisplay: React.FC<{
30
+ tools: IndividualToolCallDisplay[];
31
+ terminalWidth?: number;
32
+ inputArgsMap?: Map<string, Record<string, any>>;
33
+ }>;
34
+ /**
35
+ * Claude Code style inline tool call
36
+ * Format: ● ToolName(args)
37
+ * ⎿ Result summary
38
+ */
39
+ export declare const InlineToolCall: React.FC<{
40
+ toolCall: IndividualToolCallDisplay;
41
+ inputArgs?: Record<string, any>;
42
+ }>;
43
+ /**
44
+ * Inline tool group - shows tool calls in message stream style
45
+ */
46
+ export declare const InlineToolGroup: React.FC<{
47
+ tools: IndividualToolCallDisplay[];
48
+ inputArgsMap?: Map<string, Record<string, any>>;
49
+ }>;
50
+ export default ToolCallDisplay;
51
+ //# sourceMappingURL=ToolCallDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCallDisplay.d.ts","sourceRoot":"","sources":["../../../src/ink-ui/components/ToolCallDisplay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAIpE,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAgXD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6J1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACjD,CAmBA,CAAC;AA4EF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,yBAAyB,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC,CA+BA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CACjD,CAcA,CAAC;AAEF,eAAe,eAAe,CAAC"}