@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,316 @@
1
+ /**
2
+ * Splash Screen for Nexus Cortex Chalk CLI
3
+ *
4
+ * Renders a themed chip art and CORTEX title at startup.
5
+ * Ported from the Ink UI (CortexApp.tsx) to work with chalk.
6
+ */
7
+ import chalk from 'chalk';
8
+ import { themeDefinitions } from '@nexus-cortex/cli/dist/themes/themeDefinitions.js';
9
+ import { loadPersistedTheme } from '@nexus-cortex/cli/dist/themes/colors.js';
10
+ /**
11
+ * Get the current theme definition
12
+ * Uses .cortex/config.json persistence (same as Ink UI)
13
+ */
14
+ function getCurrentThemeDefinition() {
15
+ const themeName = loadPersistedTheme();
16
+ if (themeName && themeDefinitions[themeName]) {
17
+ return themeDefinitions[themeName];
18
+ }
19
+ // Default to Tokyo Night
20
+ return themeDefinitions.tokyoNight;
21
+ }
22
+ const FUZZY_CHIP_ART = [
23
+ ' ● ● ● ● ● ',
24
+ ' │ ╰──╮ │ ╭──╯ │ ',
25
+ ' ●───╯ ●──╮ │ │ │ ╭──● ╰───● ',
26
+ ' ╰─╮ │ │ │ ╭─╯ ',
27
+ ' ╭───────┴─────┴──┴──┴─────┴───────╮ ',
28
+ ' ●───┤■ ▀ ▀ ▀ ▀ ▀ ■├───● ',
29
+ ' │ ╔═════════════════════════╗ │ ',
30
+ ' ●───┤■ ║ █▀▀ █ ▐ ▀▀█ ▀▀█ ▚ ▞ ║ ■├───● ',
31
+ ' │ ║ █▀ █ ▐ █ █ █ ║ │ ',
32
+ ' ●───┤■ ║ █ █▄▟ █▄▄ █▄▄ █ ║ ■├───● ',
33
+ ' │ ╚═════════════════════════╝ │ ',
34
+ ' ●───┤■ ▄ ▄ ▄ ▄ ▄ ■├───● ',
35
+ ' ╰───────┬─────┬──┬──┬─────┬───────╯ ',
36
+ ' ╭─╯ │ │ │ ╰─╮ ',
37
+ ' ●───╮ ●──╯ │ │ │ ╰──● ╭───● ',
38
+ ' │ ╭──╯ │ ╰──╮ │ ',
39
+ ' ● ● ● ● ● ',
40
+ ];
41
+ const FUZZY_TITLE = [
42
+ '•●●●●●●●●●· ·●●●●●●●●●· ●●●●●●●●●● ●●●●●●●●●●· ●●●●●●●●●• ●●● ·●●•',
43
+ '●●• •●● •●● ●●· ●●· ●●• ●●•······ •●●••●●· ',
44
+ '●●· •●● •●● ●●●●●●●●●●· ●●· ●●●●●●●● ●●●● ',
45
+ '●●• •●● •●● ●●••••●●● ●●· ●●•····· •●●•●●●· ',
46
+ '•●●●●●●●●●· ·●●●●●●●●●· ●●· ●●● ●●· ●●●●●●●●●● ●●●· ·●●•',
47
+ ];
48
+ const NEON_CHIP_ART = [
49
+ ' ● ● ● ● ● ',
50
+ ' │ ╰──╮ │ ╭──╯ │ ',
51
+ ' ●───╯ ●──╮ │ │ │ ╭──● ╰───● ',
52
+ ' ╰─╮ │ │ │ ╭─╯ ',
53
+ ' ╭───────┴─────┴──┴──┴─────┴───────╮ ',
54
+ ' ●───┤■ ▀ ▀ ▀ ▀ ▀ ■├───● ',
55
+ ' │ ╔═════════════════════════╗ │ ',
56
+ ' ●───┤■ ║ █▜▐ █▀▀ █▀▜ █▜▐ ║ ■├───● ',
57
+ ' │ ║ █▐▐ █▀ █▌▐ █▐▐ ║ │ ',
58
+ ' ●───┤■ ║ ▌ █ █▄▄ █▄▟ ▌ █ ║ ■├───● ',
59
+ ' │ ╚═════════════════════════╝ │ ',
60
+ ' ●───┤■ ▄ ▄ ▄ ▄ ▄ ■├───● ',
61
+ ' ╰───────┬─────┬──┬──┬─────┬───────╯ ',
62
+ ' ╭─╯ │ │ │ ╰─╮ ',
63
+ ' ●───╮ ●──╯ │ │ │ ╰──● ╭───● ',
64
+ ' │ ╭──╯ │ ╰──╮ │ ',
65
+ ' ● ● ● ● ● ',
66
+ ];
67
+ const NEON_TITLE = [
68
+ '•●●●●●●●●●· ·●●●●●●●●●· ●●●●●●●●●● ●●●●●●●●●●· ●●●●●●●●●• ●●● ·●●•',
69
+ '●●• •●● •●● ●●· ●●· ●●• ●●•······ •●●••●●· ',
70
+ '●●· •●● •●● ●●●●●●●●●●· ●●· ●●●●●●●● ●●●● ',
71
+ '●●• •●● •●● ●●••••●●● ●●· ●●•····· •●●•●●●· ',
72
+ '•●●●●●●●●●· ·●●●●●●●●●· ●●· ●●● ●●· ●●●●●●●●●● ●●●· ·●●•',
73
+ ];
74
+ const SPLASH_ART = {
75
+ fuzzy: { chip: FUZZY_CHIP_ART, title: FUZZY_TITLE },
76
+ neon: { chip: NEON_CHIP_ART, title: NEON_TITLE },
77
+ };
78
+ /**
79
+ * Character sets for coloring
80
+ */
81
+ const PIN_CHARS = new Set(['■']);
82
+ const TOP_BOTTOM_PIN_CHARS = new Set(['▀', '▄']);
83
+ const SOLDER_CHARS = new Set(['●']);
84
+ const INNER_BOX_CHARS = new Set(['╔', '═', '╗', '║', '╚', '╝']);
85
+ const INNER_TEXT_CHARS = new Set(['▛', '▜', '▌', '▐', '▙', '▟', '▚', '▞', '█']);
86
+ const SHARED_CHARS = new Set(['─', '│', '╭', '╮', '╯', '╰', '┴', '┬', '┤', '├']);
87
+ const SOLID_TITLE_CHARS = new Set(['█', '▀', '▄']);
88
+ /**
89
+ * Render a single chip art line with themed colors
90
+ * Position-based coloring for characters that appear in both traces and chip border
91
+ */
92
+ function renderChipArtLine(line, lineIndex, theme) {
93
+ // Lines 5 and 11 have top/bottom pins that should be error color
94
+ const isPinLine = lineIndex === 5 || lineIndex === 11;
95
+ // Chip box boundary: lines 4-12, columns 11-45
96
+ const isChipBoxLine = lineIndex >= 4 && lineIndex <= 12;
97
+ const chipBoxLeft = 11;
98
+ const chipBoxRight = 45;
99
+ const getColorForChar = (char, colIndex) => {
100
+ if (PIN_CHARS.has(char))
101
+ return theme.error;
102
+ if (TOP_BOTTOM_PIN_CHARS.has(char))
103
+ return isPinLine ? theme.error : theme.secondary;
104
+ if (SOLDER_CHARS.has(char))
105
+ return theme.success;
106
+ if (INNER_BOX_CHARS.has(char))
107
+ return theme.text;
108
+ if (INNER_TEXT_CHARS.has(char))
109
+ return theme.secondary;
110
+ // Position-based coloring for shared characters
111
+ if (SHARED_CHARS.has(char)) {
112
+ if (isChipBoxLine && colIndex >= chipBoxLeft && colIndex <= chipBoxRight) {
113
+ return theme.info;
114
+ }
115
+ return theme.warning;
116
+ }
117
+ return theme.warning; // default for other chars
118
+ };
119
+ let result = '';
120
+ for (let i = 0; i < line.length; i++) {
121
+ const char = line[i];
122
+ const color = getColorForChar(char, i);
123
+ result += chalk.hex(color)(char);
124
+ }
125
+ return result;
126
+ }
127
+ /**
128
+ * Render a CORTEX title line with themed colors
129
+ * Solid blocks (█) get primary color, line-drawing gets info color
130
+ */
131
+ function renderTitleLine(line, theme) {
132
+ let result = '';
133
+ for (const char of line) {
134
+ if (SOLID_TITLE_CHARS.has(char)) {
135
+ result += chalk.hex(theme.primary).bold(char);
136
+ }
137
+ else if (char === ' ') {
138
+ result += char;
139
+ }
140
+ else {
141
+ // Line drawing characters (╔═╗║╚╝╝)
142
+ result += chalk.hex(theme.info).bold(char);
143
+ }
144
+ }
145
+ return result;
146
+ }
147
+ /**
148
+ * Render a compact CC-style header: logo + version + model + cwd in 3 lines
149
+ */
150
+ export function renderCompactHeader(opts) {
151
+ const theme = getCurrentThemeDefinition();
152
+ const model = opts.model || process.env.DEFAULT_MODEL_ID || 'default';
153
+ const cwd = opts.cwd || process.cwd();
154
+ const home = process.env.HOME || '';
155
+ const displayCwd = home && cwd.startsWith(home) ? '~' + cwd.slice(home.length) : cwd;
156
+ const lines = [];
157
+ lines.push('');
158
+ lines.push(chalk.hex(theme.primary).bold(' CORTEX') +
159
+ chalk.hex(theme.dimmed)(' · ') +
160
+ chalk.hex(theme.secondary)(model) +
161
+ chalk.hex(theme.dimmed)(' · ') +
162
+ chalk.hex(theme.info)(displayCwd));
163
+ lines.push(chalk.hex(theme.dimmed)(' Tab: thinking | Shift+Tab: auto-approve | /help: commands | ESC: abort'));
164
+ lines.push('');
165
+ return lines.join('\n');
166
+ }
167
+ /**
168
+ * Render the full splash screen (chip art + block title)
169
+ * Used by /about command
170
+ */
171
+ export function renderSplashScreen(terminalWidth, variant = 'fuzzy') {
172
+ const theme = getCurrentThemeDefinition();
173
+ const width = terminalWidth || process.stdout.columns || 80;
174
+ const art = SPLASH_ART[variant];
175
+ // Use the chip art width as reference for centering all elements
176
+ // This ensures tagline, providers, etc. align with the art
177
+ const artWidth = art.chip[0]?.length || 57;
178
+ const lines = [];
179
+ // Add some top padding
180
+ lines.push('');
181
+ // Render chip art (centered based on terminal width)
182
+ for (let i = 0; i < art.chip.length; i++) {
183
+ const artLine = art.chip[i];
184
+ const coloredLine = renderChipArtLine(artLine, i, theme);
185
+ const padding = Math.max(0, Math.floor((width - artLine.length) / 2));
186
+ lines.push(' '.repeat(padding) + coloredLine);
187
+ }
188
+ lines.push('');
189
+ // Render CORTEX title (centered based on terminal width)
190
+ for (const titleLine of art.title) {
191
+ const coloredLine = renderTitleLine(titleLine, theme);
192
+ const padding = Math.max(0, Math.floor((width - titleLine.length) / 2));
193
+ lines.push(' '.repeat(padding) + coloredLine);
194
+ }
195
+ lines.push('');
196
+ // Calculate base padding to align with the art block
197
+ const artPadding = Math.max(0, Math.floor((width - artWidth) / 2));
198
+ // Tagline (centered within the art width, then offset by art padding)
199
+ const tagline = '"AI-Powered Development Interface"';
200
+ const taglinePadding = Math.max(0, Math.floor((artWidth - tagline.length) / 2));
201
+ lines.push(' '.repeat(artPadding + taglinePadding) + chalk.hex(theme.dimmed)(tagline));
202
+ lines.push('');
203
+ // Provider list (centered within the art width)
204
+ const providers = 'Anthropic • OpenAI • Google • XAI • DeepSeek';
205
+ const providersPadding = Math.max(0, Math.floor((artWidth - providers.length) / 2));
206
+ lines.push(' '.repeat(artPadding + providersPadding) + chalk.hex(theme.dimmed)(providers));
207
+ lines.push('');
208
+ // Help hint (centered within the art width)
209
+ const helpHint = 'Type /help for commands';
210
+ const helpPadding = Math.max(0, Math.floor((artWidth - helpHint.length) / 2));
211
+ lines.push(' '.repeat(artPadding + helpPadding) + chalk.hex(theme.dimmed)(helpHint));
212
+ lines.push('');
213
+ return lines.join('\n');
214
+ }
215
+ /**
216
+ * Render a minimal header for continuing sessions
217
+ * Shows just the model and keyboard shortcuts
218
+ */
219
+ export function renderMinimalHeader(modelDisplay, theme) {
220
+ const width = process.stdout.columns || 80;
221
+ const lines = [];
222
+ lines.push('');
223
+ lines.push(chalk.hex(theme.dimmed)('─'.repeat(Math.min(60, width))));
224
+ lines.push(chalk.hex(theme.primary)(' Nexus Cortex') +
225
+ chalk.hex(theme.dimmed)(' │ ') +
226
+ chalk.hex(theme.secondary).bold(modelDisplay));
227
+ lines.push(chalk.hex(theme.dimmed)('─'.repeat(Math.min(60, width))));
228
+ lines.push(chalk.hex(theme.dimmed)(' Tab: thinking │ Shift+Tab: auto-approve │ /: commands │ ESC: abort'));
229
+ lines.push(chalk.hex(theme.dimmed)('─'.repeat(Math.min(60, width))));
230
+ lines.push('');
231
+ return lines.join('\n');
232
+ }
233
+ /**
234
+ * Print splash screen to stdout
235
+ */
236
+ export function printSplashScreen(variant = 'fuzzy') {
237
+ console.log(renderSplashScreen(undefined, variant));
238
+ }
239
+ /**
240
+ * Print a horizontal divider line
241
+ */
242
+ export function printDivider(width) {
243
+ const theme = getCurrentThemeDefinition();
244
+ const w = width || Math.min(70, process.stdout.columns || 80);
245
+ console.log(chalk.hex(theme.dimmed)('─'.repeat(w)));
246
+ }
247
+ /**
248
+ * Render the status line showing model and mode indicators
249
+ * Matches the Ink UI StatusLine component
250
+ */
251
+ export function renderStatusLine(state) {
252
+ const theme = getCurrentThemeDefinition();
253
+ const parts = [];
254
+ // Model name in success/green color
255
+ parts.push(chalk.hex(theme.success)(state.model));
256
+ // [Think] indicator in info/blue color
257
+ if (state.showThinking) {
258
+ parts.push(chalk.hex(theme.info)(' [Think]'));
259
+ }
260
+ // [R:effort] indicator in secondary/purple color for reasoning models
261
+ if (state.supportsReasoning && state.reasoningEffort && state.reasoningEffort !== 'none') {
262
+ parts.push(chalk.hex(theme.secondary)(` [R:${state.reasoningEffort}]`));
263
+ }
264
+ // [YOLO] or [Auto-Approve] indicator in warning/yellow color
265
+ if (state.yoloMode) {
266
+ parts.push(chalk.hex(theme.error)(' [YOLO]'));
267
+ }
268
+ else if (state.autoApprove) {
269
+ parts.push(chalk.hex(theme.warning)(' [Auto-Approve]'));
270
+ }
271
+ return parts.join('');
272
+ }
273
+ /**
274
+ * Print the input prompt area (for after splash)
275
+ */
276
+ export function printInputPromptArea(statusState) {
277
+ const theme = getCurrentThemeDefinition();
278
+ const width = Math.min(70, process.stdout.columns || 80);
279
+ console.log(chalk.hex(theme.dimmed)('─'.repeat(width)));
280
+ console.log(chalk.hex(theme.dimmed)(' Type your message...'));
281
+ console.log(chalk.hex(theme.dimmed)('─'.repeat(width)));
282
+ console.log(chalk.hex(theme.dimmed)(' / commands • ↑↓ history • Ctrl+J new line • ←→ cursor'));
283
+ // Print status line if state provided
284
+ if (statusState) {
285
+ console.log();
286
+ console.log(renderStatusLine(statusState));
287
+ }
288
+ }
289
+ /**
290
+ * Print just the status line (for updates during session)
291
+ */
292
+ export function printStatusLine(state) {
293
+ console.log(renderStatusLine(state));
294
+ }
295
+ /**
296
+ * Render the input box frame (top border, placeholder, bottom border)
297
+ * Returns the lines without printing, for more control
298
+ */
299
+ export function renderInputBox(placeholder) {
300
+ const theme = getCurrentThemeDefinition();
301
+ const width = Math.min(70, process.stdout.columns || 80);
302
+ const text = placeholder || 'Type your message...';
303
+ return [
304
+ chalk.hex(theme.dimmed)('─'.repeat(width)),
305
+ chalk.hex(theme.dimmed)(` ${text}`),
306
+ chalk.hex(theme.dimmed)('─'.repeat(width)),
307
+ ];
308
+ }
309
+ /**
310
+ * Render keyboard shortcuts help line
311
+ */
312
+ export function renderKeyboardShortcuts() {
313
+ const theme = getCurrentThemeDefinition();
314
+ return chalk.hex(theme.dimmed)(' / commands • ↑↓ history • Ctrl+J new line • ←→ cursor');
315
+ }
316
+ //# sourceMappingURL=SplashScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplashScreen.js","sourceRoot":"","sources":["../../src/ui/SplashScreen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ArtifactDashboard - Interactive artifact viewer
3
+ *
4
+ * View and manage running artifacts (web apps, dashboards, etc.)
5
+ * in an interactive terminal UI.
6
+ */
7
+ import React from 'react';
8
+ interface ArtifactDashboardProps {
9
+ /** Server URL */
10
+ serverUrl?: string;
11
+ /** Callback when user exits dashboard */
12
+ onExit?: () => void;
13
+ }
14
+ export declare const ArtifactDashboard: React.FC<ArtifactDashboardProps>;
15
+ export {};
16
+ //# sourceMappingURL=ArtifactDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactDashboard.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ArtifactDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AA2BnD,UAAU,sBAAsB;IAC9B,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAkS9D,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * ArtifactDashboard - Interactive artifact viewer
4
+ *
5
+ * View and manage running artifacts (web apps, dashboards, etc.)
6
+ * in an interactive terminal UI.
7
+ */
8
+ import { useState, useEffect } from 'react';
9
+ import { Box, Text, useInput } from 'ink';
10
+ import SelectInput from 'ink-select-input';
11
+ import Spinner from 'ink-spinner';
12
+ import { CortexClient } from '@nexus-cortex/cli/dist/client/CortexClient.js';
13
+ export const ArtifactDashboard = ({ serverUrl = 'http://localhost:4000', onExit, }) => {
14
+ const [viewMode, setViewMode] = useState('list');
15
+ const [loading, setLoading] = useState(true);
16
+ const [error, setError] = useState(null);
17
+ const [artifacts, setArtifacts] = useState([]);
18
+ const [selectedArtifact, setSelectedArtifact] = useState(null);
19
+ const [detailLoading, setDetailLoading] = useState(false);
20
+ // Handle keyboard input
21
+ useInput((input, key) => {
22
+ if (key.escape || (input === 'q' && viewMode === 'list')) {
23
+ onExit?.();
24
+ }
25
+ if ((key.escape || input === 'b') && viewMode === 'detail') {
26
+ setViewMode('list');
27
+ setSelectedArtifact(null);
28
+ setError(null);
29
+ }
30
+ if (key.ctrl && input === 'c') {
31
+ onExit?.();
32
+ }
33
+ if (input === 'r' && viewMode === 'list') {
34
+ // Refresh list
35
+ fetchArtifacts();
36
+ }
37
+ });
38
+ const fetchArtifacts = async () => {
39
+ setLoading(true);
40
+ setError(null);
41
+ const client = new CortexClient(serverUrl);
42
+ try {
43
+ const response = await client.get('/artifact/list');
44
+ setArtifacts(response.artifacts || []);
45
+ setLoading(false);
46
+ }
47
+ catch (err) {
48
+ setError(err.message);
49
+ setLoading(false);
50
+ }
51
+ };
52
+ const fetchArtifactDetail = async (id) => {
53
+ setDetailLoading(true);
54
+ setError(null);
55
+ const client = new CortexClient(serverUrl);
56
+ try {
57
+ const response = await client.get(`/artifact/status/${id}`);
58
+ setSelectedArtifact(response);
59
+ setDetailLoading(false);
60
+ }
61
+ catch (err) {
62
+ setError(err.message);
63
+ setDetailLoading(false);
64
+ }
65
+ };
66
+ // Initial load
67
+ useEffect(() => {
68
+ fetchArtifacts();
69
+ }, [serverUrl]);
70
+ const handleArtifactSelect = (item) => {
71
+ const artifact = artifacts.find(a => a.id === item.value);
72
+ if (artifact) {
73
+ setViewMode('detail');
74
+ fetchArtifactDetail(artifact.id);
75
+ }
76
+ };
77
+ const renderList = () => {
78
+ if (loading) {
79
+ return (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { children: " Loading artifacts..." })] }));
80
+ }
81
+ if (artifacts.length === 0) {
82
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "No artifacts found." }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Create artifacts through chat or use artifact commands." }) })] }));
83
+ }
84
+ const runningCount = artifacts.filter(a => a.status === 'running').length;
85
+ const stoppedCount = artifacts.length - runningCount;
86
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { bold: true, color: "cyan", children: [" Artifacts Dashboard (", artifacts.length, " total)"] }) }), _jsx(Box, { marginBottom: 1, flexDirection: "column", children: _jsxs(Text, { children: [_jsxs(Text, { color: "green", children: ["Running: ", runningCount] }), _jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Stopped: ", stoppedCount] })] }) }), _jsx(Text, { dimColor: true, children: "Select an artifact to view details:" }), _jsx(Box, { marginTop: 1, children: _jsx(SelectInput, { items: artifacts.map(artifact => ({
87
+ label: `${artifact.status === 'running' ? '● ' : '○ '}${artifact.name || artifact.id} ${artifact.type ? `(${artifact.type})` : ''} ${artifact.port ? `:${artifact.port}` : ''}`,
88
+ value: artifact.id
89
+ })), onSelect: handleArtifactSelect }) }), _jsx(Box, { marginTop: 2, children: _jsx(Text, { dimColor: true, children: "Press R to refresh, Q to exit" }) })] }));
90
+ };
91
+ const renderDetail = () => {
92
+ if (detailLoading) {
93
+ return (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { children: " Loading artifact details..." })] }));
94
+ }
95
+ if (!selectedArtifact)
96
+ return null;
97
+ const isRunning = selectedArtifact.status === 'running';
98
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: "cyan", children: selectedArtifact.name || selectedArtifact.id }) }), _jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: "white", children: "Basic Information" }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "ID: " }), _jsx(Text, { dimColor: true, children: selectedArtifact.id })] }), selectedArtifact.type && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Type: " }), _jsx(Text, { children: selectedArtifact.type })] })), selectedArtifact.mode && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Mode: " }), _jsx(Text, { children: selectedArtifact.mode })] })), _jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Status: " }), _jsx(Text, { color: isRunning ? 'green' : 'red', children: selectedArtifact.status })] }), selectedArtifact.created && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Created:" }), _jsxs(Text, { dimColor: true, children: [" ", selectedArtifact.created] })] }))] })] }), (selectedArtifact.port || selectedArtifact.pid || selectedArtifact.uptime) && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: "white", children: "Runtime Information" }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [selectedArtifact.port && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Port: " }), _jsx(Text, { color: "cyan", children: selectedArtifact.port })] })), selectedArtifact.url && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "URL: " }), _jsx(Text, { color: "cyan", children: selectedArtifact.url })] })), selectedArtifact.pid && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "PID: " }), _jsx(Text, { dimColor: true, children: selectedArtifact.pid })] })), selectedArtifact.uptime && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Uptime: " }), _jsx(Text, { dimColor: true, children: selectedArtifact.uptime })] }))] })] })), selectedArtifact.resources && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: "white", children: "Resource Usage" }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [selectedArtifact.resources.cpu && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "CPU: " }), _jsxs(Text, { color: "yellow", children: [selectedArtifact.resources.cpu, "%"] })] })), selectedArtifact.resources.memory && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Memory: " }), _jsx(Text, { color: "yellow", children: selectedArtifact.resources.memory })] })), selectedArtifact.resources.disk && (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Disk: " }), _jsx(Text, { dimColor: true, children: selectedArtifact.resources.disk })] }))] })] })), selectedArtifact.env && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: "white", children: "Environment" }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { dimColor: true, children: selectedArtifact.env }) })] })), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "Available commands:" }), _jsxs(Text, { dimColor: true, children: [" cortex artifact view ", selectedArtifact.id, " - Open in browser"] }), _jsxs(Text, { dimColor: true, children: [" cortex artifact stop ", selectedArtifact.id, " - Stop artifact"] })] }), _jsx(Box, { marginTop: 2, children: _jsx(Text, { dimColor: true, children: "Press ESC or B to go back, Ctrl+C to exit" }) })] }));
99
+ };
100
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [error ? (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "red", children: ["\u2717 Error: ", error] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["Press ESC to ", viewMode === 'detail' ? 'go back' : 'exit'] }) })] })) : (_jsxs(_Fragment, { children: [viewMode === 'list' && renderList(), viewMode === 'detail' && renderDetail()] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Press Ctrl+C to exit" }) })] }));
101
+ };
102
+ //# sourceMappingURL=ArtifactDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactDashboard.js","sourceRoot":"","sources":["../../../src/ui/components/ArtifactDashboard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * ChatInput - Combined input area with multi-line text and status bar
3
+ *
4
+ * This is the main input component for the CLI chat interface.
5
+ * It combines MultiLineInput and StatusBar into a cohesive input area.
6
+ */
7
+ import React from 'react';
8
+ export interface ChatInputProps {
9
+ /** Called when user submits input */
10
+ onSubmit: (text: string) => void;
11
+ /** Current model name */
12
+ model?: string;
13
+ /** Auto-approve mode */
14
+ autoApprove?: boolean;
15
+ /** Show thinking mode */
16
+ showThinking?: boolean;
17
+ /** Debug mode */
18
+ debug?: boolean;
19
+ /** Whether currently streaming */
20
+ streaming?: boolean;
21
+ /** Whether input is focused */
22
+ focus?: boolean;
23
+ /** Custom status message */
24
+ statusMessage?: string;
25
+ /** Theme color functions */
26
+ theme?: {
27
+ primary?: (text: string) => string;
28
+ dimmed?: (text: string) => string;
29
+ success?: (text: string) => string;
30
+ warning?: (text: string) => string;
31
+ info?: (text: string) => string;
32
+ };
33
+ }
34
+ export declare const ChatInput: React.FC<ChatInputProps>;
35
+ export default ChatInput;
36
+ //# sourceMappingURL=ChatInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ChatInput.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yBAAyB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAClC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KACjC,CAAC;CACH;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkD9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import chalk from 'chalk';
4
+ import { MultiLineInput } from './MultiLineInput.js';
5
+ import { StatusBar } from './StatusBar.js';
6
+ export const ChatInput = ({ onSubmit, model, autoApprove = false, showThinking = false, debug = false, streaming = false, focus = true, statusMessage, theme = {}, }) => {
7
+ const { primary = chalk.cyan, dimmed = chalk.gray, success = chalk.green, warning = chalk.yellow, info = chalk.blue, } = theme;
8
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: dimmed('─'.repeat(60)) }), _jsx(MultiLineInput, { onSubmit: onSubmit, focus: focus, prompt: "> ", placeholder: "Type your message... (Shift+Enter for new line)", promptColor: info, textColor: chalk.white, placeholderColor: dimmed }), _jsx(StatusBar, { model: model, autoApprove: autoApprove, showThinking: showThinking, debug: debug, streaming: streaming, message: statusMessage, dimColor: dimmed, accentColor: primary, successColor: success, warningColor: warning })] }));
9
+ };
10
+ export default ChatInput;
11
+ //# sourceMappingURL=ChatInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/ui/components/ChatInput.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA6B3C,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAClD,QAAQ,EACR,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,KAAK,EACpB,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,IAAI,EACZ,aAAa,EACb,KAAK,GAAG,EAAE,GACX,EAAE,EAAE;IACH,MAAM,EACJ,OAAO,GAAG,KAAK,CAAC,IAAI,EACpB,MAAM,GAAG,KAAK,CAAC,IAAI,EACnB,OAAO,GAAG,KAAK,CAAC,KAAK,EACrB,OAAO,GAAG,KAAK,CAAC,MAAM,EACtB,IAAI,GAAG,KAAK,CAAC,IAAI,GAClB,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,KAAC,IAAI,cAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAQ,EAGrC,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAC,IAAI,EACX,WAAW,EAAC,iDAAiD,EAC7D,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,KAAK,CAAC,KAAK,EACtB,gBAAgB,EAAE,MAAM,GACxB,EAGF,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,GACrB,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ConfigWizard - Interactive configuration setup wizard
3
+ *
4
+ * Guides users through setting up their Cortex CLI configuration
5
+ * with step-by-step prompts and validation.
6
+ */
7
+ import React from 'react';
8
+ import { CLIConfig } from '@nexus-cortex/cli/dist/config/ConfigManager.js';
9
+ interface ConfigWizardProps {
10
+ /** Callback when configuration is complete */
11
+ onComplete?: (config: CLIConfig) => void;
12
+ /** Callback when user exits wizard */
13
+ onExit?: () => void;
14
+ }
15
+ export declare const ConfigWizard: React.FC<ConfigWizardProps>;
16
+ export {};
17
+ //# sourceMappingURL=ConfigWizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigWizard.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ConfigWizard.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,EAAiB,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAW1F,UAAU,iBAAiB;IACzB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsRpD,CAAC"}