@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,182 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { enableMouseEvents, disableMouseEvents } from '../core-stubs.js';
7
+ import { SGR_MOUSE_REGEX, X11_MOUSE_REGEX, SGR_EVENT_PREFIX, X11_EVENT_PREFIX, couldBeMouseSequence as inputCouldBeMouseSequence, } from './input.js';
8
+ export function getMouseEventName(buttonCode, isRelease) {
9
+ const isMove = (buttonCode & 32) !== 0;
10
+ if (buttonCode === 66) {
11
+ return 'scroll-left';
12
+ }
13
+ else if (buttonCode === 67) {
14
+ return 'scroll-right';
15
+ }
16
+ else if ((buttonCode & 64) === 64) {
17
+ if ((buttonCode & 1) === 0) {
18
+ return 'scroll-up';
19
+ }
20
+ else {
21
+ return 'scroll-down';
22
+ }
23
+ }
24
+ else if (isMove) {
25
+ return 'move';
26
+ }
27
+ else {
28
+ const button = buttonCode & 3;
29
+ const type = isRelease ? 'release' : 'press';
30
+ switch (button) {
31
+ case 0:
32
+ return `left-${type}`;
33
+ case 1:
34
+ return `middle-${type}`;
35
+ case 2:
36
+ return `right-${type}`;
37
+ default:
38
+ return null;
39
+ }
40
+ }
41
+ }
42
+ function getButtonFromCode(code) {
43
+ const button = code & 3;
44
+ switch (button) {
45
+ case 0:
46
+ return 'left';
47
+ case 1:
48
+ return 'middle';
49
+ case 2:
50
+ return 'right';
51
+ default:
52
+ return 'none';
53
+ }
54
+ }
55
+ export function parseSGRMouseEvent(buffer) {
56
+ const match = buffer.match(SGR_MOUSE_REGEX);
57
+ if (match && match[1] && match[2] && match[3] && match[4]) {
58
+ const buttonCode = parseInt(match[1], 10);
59
+ const col = parseInt(match[2], 10);
60
+ const row = parseInt(match[3], 10);
61
+ const action = match[4];
62
+ const isRelease = action === 'm';
63
+ const shift = (buttonCode & 4) !== 0;
64
+ const meta = (buttonCode & 8) !== 0;
65
+ const ctrl = (buttonCode & 16) !== 0;
66
+ const name = getMouseEventName(buttonCode, isRelease);
67
+ if (name) {
68
+ return {
69
+ event: {
70
+ name,
71
+ ctrl,
72
+ meta,
73
+ shift,
74
+ col,
75
+ row,
76
+ button: getButtonFromCode(buttonCode),
77
+ },
78
+ length: match[0].length,
79
+ };
80
+ }
81
+ return null;
82
+ }
83
+ return null;
84
+ }
85
+ export function parseX11MouseEvent(buffer) {
86
+ const match = buffer.match(X11_MOUSE_REGEX);
87
+ if (!match || !match[1])
88
+ return null;
89
+ // The 3 bytes are in match[1]
90
+ const matchData = match[1];
91
+ const b = matchData.charCodeAt(0) - 32;
92
+ const col = matchData.charCodeAt(1) - 32;
93
+ const row = matchData.charCodeAt(2) - 32;
94
+ const shift = (b & 4) !== 0;
95
+ const meta = (b & 8) !== 0;
96
+ const ctrl = (b & 16) !== 0;
97
+ const isMove = (b & 32) !== 0;
98
+ const isWheel = (b & 64) !== 0;
99
+ let name = null;
100
+ if (isWheel) {
101
+ const button = b & 3;
102
+ switch (button) {
103
+ case 0:
104
+ name = 'scroll-up';
105
+ break;
106
+ case 1:
107
+ name = 'scroll-down';
108
+ break;
109
+ default:
110
+ break;
111
+ }
112
+ }
113
+ else if (isMove) {
114
+ name = 'move';
115
+ }
116
+ else {
117
+ const button = b & 3;
118
+ if (button === 3) {
119
+ // X11 reports 'release' (3) for all button releases without specifying which one.
120
+ // We'll default to 'left-release' as a best-effort guess if we don't track state.
121
+ name = 'left-release';
122
+ }
123
+ else {
124
+ switch (button) {
125
+ case 0:
126
+ name = 'left-press';
127
+ break;
128
+ case 1:
129
+ name = 'middle-press';
130
+ break;
131
+ case 2:
132
+ name = 'right-press';
133
+ break;
134
+ default:
135
+ break;
136
+ }
137
+ }
138
+ }
139
+ if (name) {
140
+ let button = getButtonFromCode(b);
141
+ if (name === 'left-release' && button === 'none') {
142
+ button = 'left';
143
+ }
144
+ return {
145
+ event: {
146
+ name,
147
+ ctrl,
148
+ meta,
149
+ shift,
150
+ col,
151
+ row,
152
+ button,
153
+ },
154
+ length: match[0].length,
155
+ };
156
+ }
157
+ return null;
158
+ }
159
+ export function parseMouseEvent(buffer) {
160
+ return parseSGRMouseEvent(buffer) || parseX11MouseEvent(buffer);
161
+ }
162
+ export function isIncompleteMouseSequence(buffer) {
163
+ if (!inputCouldBeMouseSequence(buffer))
164
+ return false;
165
+ // If it matches a complete sequence, it's not incomplete.
166
+ if (parseMouseEvent(buffer))
167
+ return false;
168
+ if (buffer.startsWith(X11_EVENT_PREFIX)) {
169
+ // X11 needs exactly 3 bytes after prefix.
170
+ return buffer.length < X11_EVENT_PREFIX.length + 3;
171
+ }
172
+ if (buffer.startsWith(SGR_EVENT_PREFIX)) {
173
+ // SGR sequences end with 'm' or 'M'.
174
+ // If it doesn't have it yet, it's incomplete.
175
+ // Add a reasonable max length check to fail early on garbage.
176
+ return !/[mM]/.test(buffer) && buffer.length < 50;
177
+ }
178
+ // It's a prefix of the prefix (e.g. "ESC" or "ESC [")
179
+ return true;
180
+ }
181
+ export { enableMouseEvents, disableMouseEvents };
182
+ //# sourceMappingURL=mouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../../src/ink-ui/utils/mouse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * BuiltinCommandLoader - Loads built-in slash commands
3
+ *
4
+ * Provides core commands like /mentorship, /model, /session, etc.
5
+ */
6
+ import type { CommandLoader } from './CommandService.js';
7
+ import type { SlashCommand } from '../ink-ui/commands/types.js';
8
+ import type { Config } from '../ink-ui/core-stubs.js';
9
+ /**
10
+ * BuiltinCommandLoader loads all built-in slash commands
11
+ */
12
+ export declare class BuiltinCommandLoader implements CommandLoader {
13
+ private config;
14
+ constructor(config: Config | null);
15
+ loadCommands(_signal?: AbortSignal): Promise<SlashCommand[]>;
16
+ /**
17
+ * Create the /mentorship command with subcommands
18
+ */
19
+ private createMentorshipCommand;
20
+ }
21
+ //# sourceMappingURL=BuiltinCommandLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuiltinCommandLoader.d.ts","sourceRoot":"","sources":["../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAErG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AA2CtD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAclE;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA4HhC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * BuiltinCommandLoader - Loads built-in slash commands
3
+ *
4
+ * Provides core commands like /mentorship, /model, /session, etc.
5
+ */
6
+ import { CommandKind } from '../ink-ui/commands/types.js';
7
+ import { MentorshipConfigService } from '@nexus-cortex/core';
8
+ import { existsSync, readFileSync, realpathSync } from 'fs';
9
+ import { dirname, join } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ // Get installation root from this file's location
12
+ // Use realpathSync to resolve symlinks (important for npm link)
13
+ // Compiled file is at: packages/cli/dist/services/BuiltinCommandLoader.js
14
+ // Installation root is 4 levels up: services -> dist -> cli -> packages -> root
15
+ const __filename = realpathSync(fileURLToPath(import.meta.url));
16
+ const __dirname = dirname(__filename);
17
+ const CLI_INSTALLATION_ROOT = join(__dirname, '..', '..', '..', '..');
18
+ /**
19
+ * Find the Nexus Cortex installation root
20
+ * Priority:
21
+ * 1. CORTEX_ROOT env var (set by launcher)
22
+ * 2. CLI_INSTALLATION_ROOT (derived from this file's location)
23
+ */
24
+ function findInstallationRoot(_config) {
25
+ // Priority 1: Environment variable
26
+ const cortexRoot = (process.env.CORTEX_ROOT);
27
+ if (cortexRoot && existsSync(cortexRoot)) {
28
+ return cortexRoot;
29
+ }
30
+ // Priority 2: Use CLI's own installation location (most reliable)
31
+ if (existsSync(join(CLI_INSTALLATION_ROOT, 'package.json'))) {
32
+ try {
33
+ const packageJson = JSON.parse(readFileSync(join(CLI_INSTALLATION_ROOT, 'package.json'), 'utf-8'));
34
+ if (packageJson.name === 'nexus-cortex-monorepo') {
35
+ return CLI_INSTALLATION_ROOT;
36
+ }
37
+ }
38
+ catch {
39
+ // Invalid package.json, continue
40
+ }
41
+ }
42
+ // Fallback: return CLI installation root anyway
43
+ return CLI_INSTALLATION_ROOT;
44
+ }
45
+ /**
46
+ * BuiltinCommandLoader loads all built-in slash commands
47
+ */
48
+ export class BuiltinCommandLoader {
49
+ config;
50
+ constructor(config) {
51
+ this.config = config;
52
+ }
53
+ async loadCommands(_signal) {
54
+ const commands = [];
55
+ // Add mentorship command
56
+ commands.push(this.createMentorshipCommand());
57
+ // Add other built-in commands here as needed
58
+ // commands.push(this.createHelpCommand());
59
+ // commands.push(this.createClearCommand());
60
+ // etc.
61
+ return commands;
62
+ }
63
+ /**
64
+ * Create the /mentorship command with subcommands
65
+ */
66
+ createMentorshipCommand() {
67
+ const config = this.config;
68
+ const getProjectPath = () => {
69
+ return findInstallationRoot(config);
70
+ };
71
+ return {
72
+ name: 'mentorship',
73
+ description: 'AI-to-AI mentorship system',
74
+ kind: CommandKind.BUILT_IN,
75
+ subCommands: [
76
+ {
77
+ name: 'status',
78
+ description: 'Show mentorship status',
79
+ kind: CommandKind.BUILT_IN,
80
+ action: () => {
81
+ const projectPath = getProjectPath();
82
+ const service = new MentorshipConfigService(projectPath);
83
+ const summary = service.getSummary();
84
+ const statusIcon = summary.status === 'enabled' ? '[ON]' : '[OFF]';
85
+ const content = [
86
+ '',
87
+ ` Mentorship: ${statusIcon} ${summary.status.toUpperCase()}`,
88
+ ` Helper: ${summary.helperModel}`,
89
+ ` Triggers: ${summary.triggers.join(', ')}`,
90
+ '',
91
+ ' /mentorship enable|disable|config',
92
+ '',
93
+ ].join('\n');
94
+ return { type: 'message', messageType: 'info', content };
95
+ },
96
+ },
97
+ {
98
+ name: 'enable',
99
+ description: 'Enable mentorship',
100
+ kind: CommandKind.BUILT_IN,
101
+ action: async () => {
102
+ const projectPath = getProjectPath();
103
+ const service = new MentorshipConfigService(projectPath);
104
+ await service.quickEnable();
105
+ return {
106
+ type: 'message',
107
+ messageType: 'info',
108
+ content: '\n Mentorship enabled\n',
109
+ };
110
+ },
111
+ },
112
+ {
113
+ name: 'disable',
114
+ description: 'Disable mentorship',
115
+ kind: CommandKind.BUILT_IN,
116
+ action: async () => {
117
+ const projectPath = getProjectPath();
118
+ const service = new MentorshipConfigService(projectPath);
119
+ await service.quickDisable();
120
+ return {
121
+ type: 'message',
122
+ messageType: 'info',
123
+ content: '\n Mentorship disabled\n',
124
+ };
125
+ },
126
+ },
127
+ {
128
+ name: 'config',
129
+ description: 'Open configuration menu',
130
+ kind: CommandKind.BUILT_IN,
131
+ action: (_context) => {
132
+ // For now, show a message that config menu is not yet implemented in Ink UI
133
+ // TODO: Implement MenuRenderer integration here
134
+ const projectPath = getProjectPath();
135
+ const service = new MentorshipConfigService(projectPath);
136
+ const summary = service.getSummary();
137
+ const config = service.getConfig();
138
+ const content = [
139
+ '',
140
+ ' Mentorship Configuration',
141
+ ' ========================',
142
+ '',
143
+ ` Status: ${summary.status === 'enabled' ? 'ENABLED' : 'DISABLED'}`,
144
+ ` Helper Model: ${config.helperModel}`,
145
+ '',
146
+ ' Triggers:',
147
+ ` Error Trigger: ${config.triggerOnError ? 'ON' : 'OFF'} (threshold: ${config.errorThreshold})`,
148
+ ` Keywords: ${config.keywordsEnabled ? 'ON' : 'OFF'}`,
149
+ ` Turn-Based: ${config.turnBasedEnabled ? 'ON' : 'OFF'} (every ${config.turnInterval} turns)`,
150
+ ` Pattern Detection: ${config.patternDetection ? 'ON' : 'OFF'} (threshold: ${config.patternThreshold})`,
151
+ '',
152
+ ' Advanced:',
153
+ ` Interleaved: ${config.interleavedThinking ? 'ON' : 'OFF'}`,
154
+ '',
155
+ ' Use /mentorship enable|disable for quick toggles',
156
+ '',
157
+ ].join('\n');
158
+ return { type: 'message', messageType: 'info', content };
159
+ },
160
+ },
161
+ ],
162
+ // Default action when just /mentorship is called - show status
163
+ action: () => {
164
+ const projectPath = getProjectPath();
165
+ const service = new MentorshipConfigService(projectPath);
166
+ const summary = service.getSummary();
167
+ const statusIcon = summary.status === 'enabled' ? '[ON]' : '[OFF]';
168
+ const content = [
169
+ '',
170
+ ` Mentorship: ${statusIcon} ${summary.status.toUpperCase()}`,
171
+ ` Helper: ${summary.helperModel}`,
172
+ ` Triggers: ${summary.triggers.join(', ')}`,
173
+ '',
174
+ ' /mentorship enable|disable|config',
175
+ '',
176
+ ].join('\n');
177
+ return { type: 'message', messageType: 'info', content };
178
+ },
179
+ };
180
+ }
181
+ }
182
+ //# sourceMappingURL=BuiltinCommandLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * CommandService - Manages slash command loading and registration
3
+ *
4
+ * Provides a unified interface for loading commands from multiple sources:
5
+ * - Built-in commands (mentorship, model, session, etc.)
6
+ * - File-based commands (.cortex/commands/*.md)
7
+ * - MCP prompts (from enabled MCP servers)
8
+ */
9
+ import type { SlashCommand } from '../ink-ui/commands/types.js';
10
+ /**
11
+ * Interface for command loaders
12
+ */
13
+ export interface CommandLoader {
14
+ /**
15
+ * Load commands from this source
16
+ * @param signal Abort signal for cancellation
17
+ */
18
+ loadCommands(signal?: AbortSignal): Promise<SlashCommand[]>;
19
+ }
20
+ /**
21
+ * CommandService manages all slash commands
22
+ */
23
+ export declare class CommandService {
24
+ private commands;
25
+ private constructor();
26
+ /**
27
+ * Create a CommandService by loading commands from all loaders
28
+ */
29
+ static create(loaders: CommandLoader[], signal?: AbortSignal): Promise<CommandService>;
30
+ /**
31
+ * Get all loaded commands
32
+ */
33
+ getCommands(): readonly SlashCommand[];
34
+ /**
35
+ * Find a command by name
36
+ */
37
+ findCommand(name: string): SlashCommand | undefined;
38
+ }
39
+ //# sourceMappingURL=CommandService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandService.d.ts","sourceRoot":"","sources":["../../src/services/CommandService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA0B;IAE1C,OAAO;IAIP;;OAEG;WACU,MAAM,CACjB,OAAO,EAAE,aAAa,EAAE,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;IAkB1B;;OAEG;IACH,WAAW,IAAI,SAAS,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;CAKpD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * CommandService - Manages slash command loading and registration
3
+ *
4
+ * Provides a unified interface for loading commands from multiple sources:
5
+ * - Built-in commands (mentorship, model, session, etc.)
6
+ * - File-based commands (.cortex/commands/*.md)
7
+ * - MCP prompts (from enabled MCP servers)
8
+ */
9
+ /**
10
+ * CommandService manages all slash commands
11
+ */
12
+ export class CommandService {
13
+ commands;
14
+ constructor(commands) {
15
+ this.commands = Object.freeze(commands);
16
+ }
17
+ /**
18
+ * Create a CommandService by loading commands from all loaders
19
+ */
20
+ static async create(loaders, signal) {
21
+ const allCommands = [];
22
+ for (const loader of loaders) {
23
+ if (signal?.aborted)
24
+ break;
25
+ try {
26
+ const commands = await loader.loadCommands(signal);
27
+ allCommands.push(...commands);
28
+ }
29
+ catch (error) {
30
+ // Log but don't fail - allow other loaders to continue
31
+ console.error('Failed to load commands from loader:', error);
32
+ }
33
+ }
34
+ return new CommandService(allCommands);
35
+ }
36
+ /**
37
+ * Get all loaded commands
38
+ */
39
+ getCommands() {
40
+ return this.commands;
41
+ }
42
+ /**
43
+ * Find a command by name
44
+ */
45
+ findCommand(name) {
46
+ return this.commands.find(cmd => cmd.name === name || cmd.altNames?.includes(name));
47
+ }
48
+ }
49
+ //# sourceMappingURL=CommandService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandService.js","sourceRoot":"","sources":["../../src/services/CommandService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,CAA0B;IAE1C,YAAoB,QAAwB;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAwB,EACxB,MAAoB;QAEpB,MAAM,WAAW,GAAmB,EAAE,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM;YAE3B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACnD,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,uDAAuD;gBACvD,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,OAAO,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CACzD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * FileCommandLoader - Loads slash commands from .cortex/commands/*.md files
3
+ *
4
+ * Allows users to define custom commands in markdown files.
5
+ */
6
+ import type { CommandLoader } from './CommandService.js';
7
+ import type { SlashCommand } from '../ink-ui/commands/types.js';
8
+ import type { Config } from '../ink-ui/core-stubs.js';
9
+ /**
10
+ * FileCommandLoader loads commands from markdown files
11
+ */
12
+ export declare class FileCommandLoader implements CommandLoader {
13
+ constructor(_config: Config | null);
14
+ loadCommands(_signal?: AbortSignal): Promise<SlashCommand[]>;
15
+ }
16
+ //# sourceMappingURL=FileCommandLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileCommandLoader.d.ts","sourceRoot":"","sources":["../../src/services/FileCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;gBACzC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAKnE"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * FileCommandLoader - Loads slash commands from .cortex/commands/*.md files
3
+ *
4
+ * Allows users to define custom commands in markdown files.
5
+ */
6
+ /**
7
+ * FileCommandLoader loads commands from markdown files
8
+ */
9
+ export class FileCommandLoader {
10
+ constructor(_config) {
11
+ // Config will be used when implementing file-based command loading
12
+ }
13
+ async loadCommands(_signal) {
14
+ // TODO: Implement file-based command loading from .cortex/commands/*.md
15
+ // For now, return empty array
16
+ return [];
17
+ }
18
+ }
19
+ //# sourceMappingURL=FileCommandLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileCommandLoader.js","sourceRoot":"","sources":["../../src/services/FileCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B,YAAY,OAAsB;QAChC,mEAAmE;IACrE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAqB;QACtC,wEAAwE;QACxE,8BAA8B;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * McpPromptLoader - Loads slash commands from MCP prompts
3
+ *
4
+ * Discovers prompts from enabled MCP servers and exposes them as commands.
5
+ */
6
+ import type { CommandLoader } from './CommandService.js';
7
+ import type { SlashCommand } from '../ink-ui/commands/types.js';
8
+ import type { Config } from '../ink-ui/core-stubs.js';
9
+ /**
10
+ * McpPromptLoader loads commands from MCP server prompts
11
+ */
12
+ export declare class McpPromptLoader implements CommandLoader {
13
+ constructor(_config: Config | null);
14
+ loadCommands(_signal?: AbortSignal): Promise<SlashCommand[]>;
15
+ }
16
+ //# sourceMappingURL=McpPromptLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpPromptLoader.d.ts","sourceRoot":"","sources":["../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;gBACvC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAKnE"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * McpPromptLoader - Loads slash commands from MCP prompts
3
+ *
4
+ * Discovers prompts from enabled MCP servers and exposes them as commands.
5
+ */
6
+ /**
7
+ * McpPromptLoader loads commands from MCP server prompts
8
+ */
9
+ export class McpPromptLoader {
10
+ constructor(_config) {
11
+ // Config will be used when implementing MCP prompt loading
12
+ }
13
+ async loadCommands(_signal) {
14
+ // TODO: Implement MCP prompt loading from enabled servers
15
+ // For now, return empty array
16
+ return [];
17
+ }
18
+ }
19
+ //# sourceMappingURL=McpPromptLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,YAAY,OAAsB;QAChC,2DAA2D;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAqB;QACtC,0DAA0D;QAC1D,8BAA8B;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Services - Shared service classes for CLI
3
+ */
4
+ export { CommandService, type CommandLoader } from './CommandService.js';
5
+ export { BuiltinCommandLoader } from './BuiltinCommandLoader.js';
6
+ export { FileCommandLoader } from './FileCommandLoader.js';
7
+ export { McpPromptLoader } from './McpPromptLoader.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Services - Shared service classes for CLI
3
+ */
4
+ export { CommandService } from './CommandService.js';
5
+ export { BuiltinCommandLoader } from './BuiltinCommandLoader.js';
6
+ export { FileCommandLoader } from './FileCommandLoader.js';
7
+ export { McpPromptLoader } from './McpPromptLoader.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Chalk-based Menu Renderer for Nexus Cortex
3
+ *
4
+ * Generic renderer for InteractiveMenuDefinition that works with any menu.
5
+ * Uses raw terminal input for interactive navigation.
6
+ */
7
+ import type { InteractiveMenuDefinition, MenuResult, MenuRenderer } from '@nexus-cortex/core';
8
+ /**
9
+ * ChalkMenuRenderer - Interactive menu renderer using raw terminal input
10
+ */
11
+ export declare class ChalkMenuRenderer implements MenuRenderer {
12
+ render(definition: InteractiveMenuDefinition, initialValues: Record<string, unknown>, onLiveUpdate?: (key: string, value: unknown) => Promise<void>): Promise<MenuResult>;
13
+ }
14
+ /**
15
+ * Create a ChalkMenuRenderer instance
16
+ */
17
+ export declare function createChalkMenuRenderer(): ChalkMenuRenderer;
18
+ /**
19
+ * Helper to show a menu and handle the result
20
+ */
21
+ export declare function showInteractiveMenu(definition: InteractiveMenuDefinition, initialValues: Record<string, unknown>, onLiveUpdate?: (key: string, value: unknown) => Promise<void>): Promise<MenuResult>;
22
+ //# sourceMappingURL=ChalkMenuRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChalkMenuRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/ChalkMenuRenderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,yBAAyB,EAEzB,UAAU,EACV,YAAY,EACb,MAAM,oBAAoB,CAAC;AA8R5B;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAC9C,MAAM,CACV,UAAU,EAAE,yBAAyB,EACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAC5D,OAAO,CAAC,UAAU,CAAC;CA6QvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,yBAAyB,EACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAC5D,OAAO,CAAC,UAAU,CAAC,CAGrB"}