@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,369 @@
1
+ /**
2
+ * Simple Input Buffer for Nexus Cortex Ink UI
3
+ *
4
+ * A standalone text buffer implementation that handles:
5
+ * - Cursor navigation (arrow keys, home, end, word movement)
6
+ * - Text insertion with proper cursor positioning
7
+ * - Paste support via bracketed paste mode
8
+ * - Multi-line editing
9
+ * - Undo support
10
+ *
11
+ * This is a simplified version that doesn't require the complex
12
+ * gemini-cli infrastructure.
13
+ */
14
+ /**
15
+ * Create a simple input buffer for text editing
16
+ */
17
+ export function createInputBuffer() {
18
+ let state = {
19
+ lines: [''],
20
+ cursorRow: 0,
21
+ cursorCol: 0,
22
+ undoStack: [],
23
+ };
24
+ const getText = () => state.lines.join('\n');
25
+ const pushUndo = () => {
26
+ state.undoStack.push({
27
+ lines: [...state.lines],
28
+ cursorRow: state.cursorRow,
29
+ cursorCol: state.cursorCol,
30
+ });
31
+ // Limit undo stack size
32
+ if (state.undoStack.length > 100) {
33
+ state.undoStack.shift();
34
+ }
35
+ };
36
+ const setText = (text) => {
37
+ pushUndo();
38
+ state.lines = text.split('\n');
39
+ if (state.lines.length === 0)
40
+ state.lines = [''];
41
+ // Move cursor to end
42
+ state.cursorRow = state.lines.length - 1;
43
+ state.cursorCol = state.lines[state.cursorRow].length;
44
+ };
45
+ const insert = (text, options) => {
46
+ pushUndo();
47
+ // Normalize line endings for any text with newlines
48
+ const normalizedText = text
49
+ .replace(/\r\n/g, '\n') // Windows CRLF -> LF
50
+ .replace(/\r/g, '\n'); // Old Mac CR -> LF
51
+ // Handle paste or text with newlines
52
+ if (options?.isPaste || normalizedText.includes('\n')) {
53
+ const parts = normalizedText.split('\n');
54
+ const currentLine = state.lines[state.cursorRow] || '';
55
+ const before = currentLine.slice(0, state.cursorCol);
56
+ const after = currentLine.slice(state.cursorCol);
57
+ if (parts.length === 1) {
58
+ // Single line paste/insert
59
+ state.lines[state.cursorRow] = before + parts[0] + after;
60
+ state.cursorCol = before.length + parts[0].length;
61
+ }
62
+ else {
63
+ // Multi-line paste/insert
64
+ // First line: content before cursor + first part of paste
65
+ const firstLine = before + parts[0];
66
+ // Middle lines: unchanged from paste
67
+ const middleLines = parts.slice(1, -1);
68
+ // Last line: last part of paste + content after cursor
69
+ const lastPart = parts[parts.length - 1] || '';
70
+ const lastLine = lastPart + after;
71
+ // Build the new lines array
72
+ const newLines = [firstLine, ...middleLines, lastLine];
73
+ // Replace current line with all new lines
74
+ state.lines.splice(state.cursorRow, 1, ...newLines);
75
+ // Move cursor to end of pasted content (before 'after')
76
+ state.cursorRow += parts.length - 1;
77
+ state.cursorCol = lastPart.length;
78
+ }
79
+ return;
80
+ }
81
+ // Single character insert (no newlines)
82
+ const currentLine = state.lines[state.cursorRow] || '';
83
+ state.lines[state.cursorRow] =
84
+ currentLine.slice(0, state.cursorCol) + normalizedText + currentLine.slice(state.cursorCol);
85
+ state.cursorCol += normalizedText.length;
86
+ };
87
+ const backspace = () => {
88
+ if (state.cursorCol > 0) {
89
+ pushUndo();
90
+ const currentLine = state.lines[state.cursorRow];
91
+ state.lines[state.cursorRow] =
92
+ currentLine.slice(0, state.cursorCol - 1) + currentLine.slice(state.cursorCol);
93
+ state.cursorCol--;
94
+ }
95
+ else if (state.cursorRow > 0) {
96
+ pushUndo();
97
+ const currentLine = state.lines[state.cursorRow];
98
+ const prevLine = state.lines[state.cursorRow - 1];
99
+ state.cursorCol = prevLine.length;
100
+ state.lines[state.cursorRow - 1] = prevLine + currentLine;
101
+ state.lines.splice(state.cursorRow, 1);
102
+ state.cursorRow--;
103
+ }
104
+ };
105
+ const del = () => {
106
+ const currentLine = state.lines[state.cursorRow];
107
+ if (state.cursorCol < currentLine.length) {
108
+ pushUndo();
109
+ state.lines[state.cursorRow] =
110
+ currentLine.slice(0, state.cursorCol) + currentLine.slice(state.cursorCol + 1);
111
+ }
112
+ else if (state.cursorRow < state.lines.length - 1) {
113
+ pushUndo();
114
+ state.lines[state.cursorRow] = currentLine + state.lines[state.cursorRow + 1];
115
+ state.lines.splice(state.cursorRow + 1, 1);
116
+ }
117
+ };
118
+ const deleteWordLeft = () => {
119
+ if (state.cursorCol === 0 && state.cursorRow === 0)
120
+ return;
121
+ pushUndo();
122
+ const line = state.lines[state.cursorRow] || '';
123
+ // If at start of line, join with previous line
124
+ if (state.cursorCol === 0 && state.cursorRow > 0) {
125
+ const prevLine = state.lines[state.cursorRow - 1] || '';
126
+ state.cursorCol = prevLine.length;
127
+ state.lines[state.cursorRow - 1] = prevLine + line;
128
+ state.lines.splice(state.cursorRow, 1);
129
+ state.cursorRow--;
130
+ return;
131
+ }
132
+ // Find word boundary to the left
133
+ let col = state.cursorCol;
134
+ // Skip spaces
135
+ while (col > 0 && line[col - 1] === ' ')
136
+ col--;
137
+ // Skip word chars
138
+ while (col > 0 && line[col - 1] !== ' ')
139
+ col--;
140
+ // Delete from col to cursorCol
141
+ state.lines[state.cursorRow] = line.slice(0, col) + line.slice(state.cursorCol);
142
+ state.cursorCol = col;
143
+ };
144
+ const moveLeft = () => {
145
+ if (state.cursorCol > 0) {
146
+ state.cursorCol--;
147
+ }
148
+ else if (state.cursorRow > 0) {
149
+ state.cursorRow--;
150
+ state.cursorCol = state.lines[state.cursorRow].length;
151
+ }
152
+ };
153
+ const moveRight = () => {
154
+ const currentLine = state.lines[state.cursorRow];
155
+ if (state.cursorCol < currentLine.length) {
156
+ state.cursorCol++;
157
+ }
158
+ else if (state.cursorRow < state.lines.length - 1) {
159
+ state.cursorRow++;
160
+ state.cursorCol = 0;
161
+ }
162
+ };
163
+ const moveUp = () => {
164
+ if (state.cursorRow > 0) {
165
+ state.cursorRow--;
166
+ state.cursorCol = Math.min(state.cursorCol, state.lines[state.cursorRow].length);
167
+ }
168
+ };
169
+ const moveDown = () => {
170
+ if (state.cursorRow < state.lines.length - 1) {
171
+ state.cursorRow++;
172
+ state.cursorCol = Math.min(state.cursorCol, state.lines[state.cursorRow].length);
173
+ }
174
+ };
175
+ const moveWordLeft = () => {
176
+ const line = state.lines[state.cursorRow];
177
+ if (state.cursorCol === 0 && state.cursorRow > 0) {
178
+ state.cursorRow--;
179
+ state.cursorCol = state.lines[state.cursorRow].length;
180
+ return;
181
+ }
182
+ let col = state.cursorCol - 1;
183
+ // Skip spaces
184
+ while (col > 0 && line[col] === ' ')
185
+ col--;
186
+ // Skip word chars
187
+ while (col > 0 && line[col - 1] !== ' ')
188
+ col--;
189
+ state.cursorCol = col;
190
+ };
191
+ const moveWordRight = () => {
192
+ const line = state.lines[state.cursorRow];
193
+ if (state.cursorCol >= line.length && state.cursorRow < state.lines.length - 1) {
194
+ state.cursorRow++;
195
+ state.cursorCol = 0;
196
+ return;
197
+ }
198
+ let col = state.cursorCol;
199
+ // Skip word chars
200
+ while (col < line.length && line[col] !== ' ')
201
+ col++;
202
+ // Skip spaces
203
+ while (col < line.length && line[col] === ' ')
204
+ col++;
205
+ state.cursorCol = col;
206
+ };
207
+ const moveHome = () => {
208
+ state.cursorCol = 0;
209
+ };
210
+ const moveEnd = () => {
211
+ state.cursorCol = state.lines[state.cursorRow].length;
212
+ };
213
+ const newline = () => {
214
+ pushUndo();
215
+ const currentLine = state.lines[state.cursorRow];
216
+ const before = currentLine.slice(0, state.cursorCol);
217
+ const after = currentLine.slice(state.cursorCol);
218
+ state.lines[state.cursorRow] = before;
219
+ state.lines.splice(state.cursorRow + 1, 0, after);
220
+ state.cursorRow++;
221
+ state.cursorCol = 0;
222
+ };
223
+ const undo = () => {
224
+ const prev = state.undoStack.pop();
225
+ if (prev) {
226
+ state.lines = prev.lines;
227
+ state.cursorRow = prev.cursorRow;
228
+ state.cursorCol = prev.cursorCol;
229
+ }
230
+ };
231
+ return {
232
+ get lines() { return state.lines; },
233
+ get text() { return getText(); },
234
+ get cursor() { return [state.cursorRow, state.cursorCol]; },
235
+ setText,
236
+ insert,
237
+ backspace,
238
+ delete: del,
239
+ deleteWordLeft,
240
+ moveLeft,
241
+ moveRight,
242
+ moveUp,
243
+ moveDown,
244
+ moveWordLeft,
245
+ moveWordRight,
246
+ moveHome,
247
+ moveEnd,
248
+ newline,
249
+ undo,
250
+ };
251
+ }
252
+ const ESCAPE_SEQUENCES = {
253
+ '[A': { name: 'up' },
254
+ '[B': { name: 'down' },
255
+ '[C': { name: 'right' },
256
+ '[D': { name: 'left' },
257
+ '[H': { name: 'home' },
258
+ '[F': { name: 'end' },
259
+ '[1~': { name: 'home' },
260
+ '[4~': { name: 'end' },
261
+ '[3~': { name: 'delete' },
262
+ '[5~': { name: 'pageup' },
263
+ '[6~': { name: 'pagedown' },
264
+ '[1;5C': { name: 'right', ctrl: true }, // Ctrl+Right
265
+ '[1;5D': { name: 'left', ctrl: true }, // Ctrl+Left
266
+ '[1;5A': { name: 'up', ctrl: true }, // Ctrl+Up
267
+ '[1;5B': { name: 'down', ctrl: true }, // Ctrl+Down
268
+ 'OA': { name: 'up' },
269
+ 'OB': { name: 'down' },
270
+ 'OC': { name: 'right' },
271
+ 'OD': { name: 'left' },
272
+ 'OH': { name: 'home' },
273
+ 'OF': { name: 'end' },
274
+ '[Z': { name: 'tab', shift: true },
275
+ };
276
+ export function parseRawInput(data) {
277
+ const results = [];
278
+ let i = 0;
279
+ while (i < data.length) {
280
+ const char = data[i];
281
+ // Check for bracketed paste start
282
+ if (data.slice(i, i + 6) === '\x1b[200~') {
283
+ const endIdx = data.indexOf('\x1b[201~', i + 6);
284
+ if (endIdx !== -1) {
285
+ const pasteContent = data.slice(i + 6, endIdx);
286
+ results.push({ type: 'paste', value: pasteContent });
287
+ i = endIdx + 6;
288
+ continue;
289
+ }
290
+ }
291
+ // Check for escape sequence
292
+ if (char === '\x1b') {
293
+ // Check for known sequences
294
+ let matched = false;
295
+ for (const [seq, info] of Object.entries(ESCAPE_SEQUENCES)) {
296
+ if (data.slice(i + 1, i + 1 + seq.length) === seq) {
297
+ results.push({
298
+ type: 'special',
299
+ value: '\x1b' + seq,
300
+ name: info.name,
301
+ ctrl: info.ctrl,
302
+ shift: info.shift,
303
+ });
304
+ i += 1 + seq.length;
305
+ matched = true;
306
+ break;
307
+ }
308
+ }
309
+ if (!matched) {
310
+ // Unknown escape sequence or just Escape key
311
+ // Try to skip entire sequence
312
+ let j = i + 1;
313
+ if (j < data.length && (data[j] === '[' || data[j] === 'O')) {
314
+ j++;
315
+ // Skip digits and semicolons
316
+ while (j < data.length && /[0-9;]/.test(data[j]))
317
+ j++;
318
+ // Include final char if it's a letter
319
+ if (j < data.length && /[a-zA-Z~$^]/.test(data[j]))
320
+ j++;
321
+ }
322
+ if (j === i + 1) {
323
+ // Just Escape key
324
+ results.push({ type: 'special', value: '\x1b', name: 'escape' });
325
+ i++;
326
+ }
327
+ else {
328
+ // Unknown sequence - skip it
329
+ i = j;
330
+ }
331
+ }
332
+ continue;
333
+ }
334
+ // Control characters
335
+ if (char === '\r') {
336
+ results.push({ type: 'special', value: '\r', name: 'return' });
337
+ i++;
338
+ continue;
339
+ }
340
+ if (char === '\n') {
341
+ results.push({ type: 'special', value: '\n', name: 'enter' });
342
+ i++;
343
+ continue;
344
+ }
345
+ if (char === '\t') {
346
+ results.push({ type: 'special', value: '\t', name: 'tab' });
347
+ i++;
348
+ continue;
349
+ }
350
+ if (char === '\x7f' || char === '\b') {
351
+ results.push({ type: 'special', value: char, name: 'backspace' });
352
+ i++;
353
+ continue;
354
+ }
355
+ // Ctrl combinations
356
+ const code = char.charCodeAt(0);
357
+ if (code < 32) {
358
+ const letter = String.fromCharCode(code + 96); // 'a' = 97, Ctrl+A = 1
359
+ results.push({ type: 'special', value: char, name: letter, ctrl: true });
360
+ i++;
361
+ continue;
362
+ }
363
+ // Regular character
364
+ results.push({ type: 'char', value: char });
365
+ i++;
366
+ }
367
+ return results;
368
+ }
369
+ //# sourceMappingURL=SimpleInputBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleInputBuffer.js","sourceRoot":"","sources":["../../src/ink-ui/SimpleInputBuffer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Slash Command Registry for Neocortex Command Palette
3
+ *
4
+ * This module wraps the core library's slashCommandRegistry to provide
5
+ * command suggestions for the neoncortex UI. All command definitions
6
+ * come from @nexus-cortex/core, ensuring consistency with fuzzycortex.
7
+ *
8
+ * @module ink-ui/commands/slashCommands
9
+ */
10
+ /**
11
+ * Flatten commands with their full paths for search
12
+ * (Compatible interface for CommandSuggestions component)
13
+ */
14
+ export interface FlatCommand {
15
+ fullPath: string;
16
+ command: string;
17
+ subcommand?: string;
18
+ description: string;
19
+ category: string;
20
+ }
21
+ /**
22
+ * Get flattened list of all commands (including subcommands)
23
+ * Uses core library's slashCommandRegistry
24
+ */
25
+ export declare function getFlatCommands(): FlatCommand[];
26
+ /**
27
+ * Simple fuzzy match scoring
28
+ * Returns score 0-100, higher is better match
29
+ */
30
+ export declare function fuzzyMatch(query: string, target: string): number;
31
+ /**
32
+ * Search commands with fuzzy matching
33
+ */
34
+ export declare function searchCommands(query: string): FlatCommand[];
35
+ /**
36
+ * Get suggestions for partial input
37
+ * Note: Default maxResults is high (200) to allow scrolling through all commands
38
+ */
39
+ export declare function getSuggestions(input: string, maxResults?: number): FlatCommand[];
40
+ //# sourceMappingURL=slashCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["../../../src/ink-ui/commands/slashCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,EAAE,CA4B/C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkChE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CA0B3D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,GAAG,WAAW,EAAE,CAMrF"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Slash Command Registry for Neocortex Command Palette
3
+ *
4
+ * This module wraps the core library's slashCommandRegistry to provide
5
+ * command suggestions for the neoncortex UI. All command definitions
6
+ * come from @nexus-cortex/core, ensuring consistency with fuzzycortex.
7
+ *
8
+ * @module ink-ui/commands/slashCommands
9
+ */
10
+ import { slashCommandRegistry } from '@nexus-cortex/core';
11
+ /**
12
+ * Get flattened list of all commands (including subcommands)
13
+ * Uses core library's slashCommandRegistry
14
+ */
15
+ export function getFlatCommands() {
16
+ const flat = [];
17
+ const commands = slashCommandRegistry.getAllCommands();
18
+ for (const cmd of commands) {
19
+ // Add main command
20
+ flat.push({
21
+ fullPath: `/${cmd.name}`,
22
+ command: cmd.name,
23
+ description: cmd.description,
24
+ category: cmd.category,
25
+ });
26
+ // Add subcommands
27
+ if (cmd.subcommands) {
28
+ for (const sub of cmd.subcommands) {
29
+ flat.push({
30
+ fullPath: `/${cmd.name} ${sub.name}`,
31
+ command: cmd.name,
32
+ subcommand: sub.name,
33
+ description: sub.description,
34
+ category: cmd.category,
35
+ });
36
+ }
37
+ }
38
+ }
39
+ return flat;
40
+ }
41
+ /**
42
+ * Simple fuzzy match scoring
43
+ * Returns score 0-100, higher is better match
44
+ */
45
+ export function fuzzyMatch(query, target) {
46
+ const q = query.toLowerCase();
47
+ const t = target.toLowerCase();
48
+ // Exact match
49
+ if (t === q)
50
+ return 100;
51
+ // Starts with query
52
+ if (t.startsWith(q))
53
+ return 90;
54
+ // Contains query as substring
55
+ if (t.includes(q))
56
+ return 70;
57
+ // Fuzzy: all query chars appear in order
58
+ let qi = 0;
59
+ let score = 0;
60
+ let consecutive = 0;
61
+ for (let ti = 0; ti < t.length && qi < q.length; ti++) {
62
+ if (t[ti] === q[qi]) {
63
+ qi++;
64
+ consecutive++;
65
+ score += consecutive * 2; // Reward consecutive matches
66
+ }
67
+ else {
68
+ consecutive = 0;
69
+ }
70
+ }
71
+ if (qi === q.length) {
72
+ // All query chars found
73
+ return Math.min(60, 30 + score);
74
+ }
75
+ return 0;
76
+ }
77
+ /**
78
+ * Search commands with fuzzy matching
79
+ */
80
+ export function searchCommands(query) {
81
+ // Remove leading slash if present
82
+ const q = query.startsWith('/') ? query.slice(1) : query;
83
+ if (!q) {
84
+ // Return all commands sorted by category
85
+ return getFlatCommands();
86
+ }
87
+ const flat = getFlatCommands();
88
+ const results = [];
89
+ for (const cmd of flat) {
90
+ // Match against fullPath (without /)
91
+ const pathWithoutSlash = cmd.fullPath.slice(1);
92
+ const score = fuzzyMatch(q, pathWithoutSlash);
93
+ if (score > 0) {
94
+ results.push({ cmd, score });
95
+ }
96
+ }
97
+ // Sort by score descending
98
+ results.sort((a, b) => b.score - a.score);
99
+ return results.map(r => r.cmd);
100
+ }
101
+ /**
102
+ * Get suggestions for partial input
103
+ * Note: Default maxResults is high (200) to allow scrolling through all commands
104
+ */
105
+ export function getSuggestions(input, maxResults = 200) {
106
+ if (!input.startsWith('/')) {
107
+ return [];
108
+ }
109
+ return searchCommands(input).slice(0, maxResults);
110
+ }
111
+ //# sourceMappingURL=slashCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../../src/ink-ui/commands/slashCommands.ts"],"names":[],"mappings":"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"}