centaurus-cli 2.5.2 → 2.6.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 (310) hide show
  1. package/dist/cli-adapter.d.ts +6 -0
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +215 -29
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.js +2 -2
  6. package/dist/commands/CommandParser.js.map +1 -1
  7. package/dist/config/defaultConfig.js +1 -1
  8. package/dist/config/defaultConfig.js.map +1 -1
  9. package/dist/config/models.d.ts +50 -5
  10. package/dist/config/models.d.ts.map +1 -1
  11. package/dist/config/models.js +144 -20
  12. package/dist/config/models.js.map +1 -1
  13. package/dist/config/types.d.ts +3 -0
  14. package/dist/config/types.d.ts.map +1 -1
  15. package/dist/config/types.js +3 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/index.js +9 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/ai-service-client.d.ts +8 -2
  20. package/dist/services/ai-service-client.d.ts.map +1 -1
  21. package/dist/services/ai-service-client.js +2 -1
  22. package/dist/services/ai-service-client.js.map +1 -1
  23. package/dist/services/environment-context-injector.d.ts +69 -0
  24. package/dist/services/environment-context-injector.d.ts.map +1 -0
  25. package/dist/services/environment-context-injector.js +198 -0
  26. package/dist/services/environment-context-injector.js.map +1 -0
  27. package/dist/tools/ToolRegistry.d.ts.map +1 -1
  28. package/dist/tools/ToolRegistry.js +120 -26
  29. package/dist/tools/ToolRegistry.js.map +1 -1
  30. package/dist/tools/command.d.ts.map +1 -1
  31. package/dist/tools/command.js +30 -6
  32. package/dist/tools/command.js.map +1 -1
  33. package/dist/tools/file-ops.d.ts.map +1 -1
  34. package/dist/tools/file-ops.js +70 -23
  35. package/dist/tools/file-ops.js.map +1 -1
  36. package/dist/tools/find-files.d.ts +47 -0
  37. package/dist/tools/find-files.d.ts.map +1 -0
  38. package/dist/tools/find-files.js +190 -0
  39. package/dist/tools/find-files.js.map +1 -0
  40. package/dist/tools/get-diff.d.ts +45 -0
  41. package/dist/tools/get-diff.d.ts.map +1 -0
  42. package/dist/tools/get-diff.js +138 -0
  43. package/dist/tools/get-diff.js.map +1 -0
  44. package/dist/tools/grep-search.d.ts +85 -0
  45. package/dist/tools/grep-search.d.ts.map +1 -0
  46. package/dist/tools/grep-search.js +497 -0
  47. package/dist/tools/grep-search.js.map +1 -0
  48. package/dist/tools/inspect-symbol.d.ts +27 -0
  49. package/dist/tools/inspect-symbol.d.ts.map +1 -0
  50. package/dist/tools/inspect-symbol.js +259 -0
  51. package/dist/tools/inspect-symbol.js.map +1 -0
  52. package/dist/tools/validation.d.ts +49 -0
  53. package/dist/tools/validation.d.ts.map +1 -0
  54. package/dist/tools/validation.js +125 -0
  55. package/dist/tools/validation.js.map +1 -0
  56. package/dist/types/index.d.ts +13 -0
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/ui/components/App.d.ts +3 -0
  59. package/dist/ui/components/App.d.ts.map +1 -1
  60. package/dist/ui/components/App.js +272 -72
  61. package/dist/ui/components/App.js.map +1 -1
  62. package/dist/ui/components/ContextWindowIndicator.d.ts +8 -0
  63. package/dist/ui/components/ContextWindowIndicator.d.ts.map +1 -0
  64. package/dist/ui/components/ContextWindowIndicator.js +34 -0
  65. package/dist/ui/components/ContextWindowIndicator.js.map +1 -0
  66. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  67. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  68. package/dist/ui/components/FontRecommendation.js +1 -0
  69. package/dist/ui/components/FontRecommendation.js.map +1 -0
  70. package/dist/ui/components/InputBox.d.ts +2 -0
  71. package/dist/ui/components/InputBox.d.ts.map +1 -1
  72. package/dist/ui/components/InputBox.js +9 -4
  73. package/dist/ui/components/InputBox.js.map +1 -1
  74. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  75. package/dist/ui/components/MarkdownRenderer.js +34 -9
  76. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  77. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  78. package/dist/ui/components/MessageDisplay.js +9 -2
  79. package/dist/ui/components/MessageDisplay.js.map +1 -1
  80. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  81. package/dist/ui/components/StreamingMessageDisplay.js +11 -3
  82. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  83. package/dist/ui/components/ThinkingDisplay.d.ts +12 -0
  84. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  85. package/dist/ui/components/ThinkingDisplay.js +41 -0
  86. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  87. package/dist/utils/markdown-parser.d.ts +4 -0
  88. package/dist/utils/markdown-parser.d.ts.map +1 -1
  89. package/dist/utils/markdown-parser.js +15 -1
  90. package/dist/utils/markdown-parser.js.map +1 -1
  91. package/dist/utils/version-checker.d.ts.map +1 -1
  92. package/dist/utils/version-checker.js +3 -31
  93. package/dist/utils/version-checker.js.map +1 -1
  94. package/package.json +6 -5
  95. package/README.md +0 -501
  96. package/dist/ai/provider-factory.d.ts +0 -6
  97. package/dist/ai/provider-factory.d.ts.map +0 -1
  98. package/dist/ai/provider-factory.js +0 -27
  99. package/dist/ai/provider-factory.js.map +0 -1
  100. package/dist/ai/providers/base.d.ts +0 -25
  101. package/dist/ai/providers/base.d.ts.map +0 -1
  102. package/dist/ai/providers/base.js +0 -9
  103. package/dist/ai/providers/base.js.map +0 -1
  104. package/dist/ai/providers/gemini.d.ts +0 -34
  105. package/dist/ai/providers/gemini.d.ts.map +0 -1
  106. package/dist/ai/providers/gemini.js +0 -146
  107. package/dist/ai/providers/gemini.js.map +0 -1
  108. package/dist/commands/view-duplication-logs.d.ts +0 -5
  109. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  110. package/dist/commands/view-duplication-logs.js +0 -14
  111. package/dist/commands/view-duplication-logs.js.map +0 -1
  112. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  113. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  114. package/dist/context/__tests__/command-detector.test.js +0 -318
  115. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  116. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  117. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  118. package/dist/context/__tests__/context-manager.test.js +0 -375
  119. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  120. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  121. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  122. package/dist/context/__tests__/error-handling.test.js +0 -447
  123. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  124. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  125. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  126. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  127. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  128. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  129. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  130. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  131. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  132. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  133. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  134. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  135. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  136. package/dist/index-custom.d.ts +0 -3
  137. package/dist/index-custom.d.ts.map +0 -1
  138. package/dist/index-custom.js +0 -65
  139. package/dist/index-custom.js.map +0 -1
  140. package/dist/prompts/system-prompt.d.ts +0 -47
  141. package/dist/prompts/system-prompt.d.ts.map +0 -1
  142. package/dist/prompts/system-prompt.js +0 -377
  143. package/dist/prompts/system-prompt.js.map +0 -1
  144. package/dist/providers/GoogleProvider.d.ts +0 -26
  145. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  146. package/dist/providers/GoogleProvider.js +0 -313
  147. package/dist/providers/GoogleProvider.js.map +0 -1
  148. package/dist/providers/Provider.d.ts +0 -114
  149. package/dist/providers/Provider.d.ts.map +0 -1
  150. package/dist/providers/Provider.js +0 -44
  151. package/dist/providers/Provider.js.map +0 -1
  152. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  153. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  154. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  155. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  156. package/dist/src/context/types.js +0 -27
  157. package/dist/src/services/ai-context-injector.js +0 -96
  158. package/dist/src/services/ai-service-client.js +0 -270
  159. package/dist/src/services/api-client.js +0 -349
  160. package/dist/src/tools/types.js +0 -1
  161. package/dist/src/types/index.js +0 -1
  162. package/dist/test/context/types.js +0 -27
  163. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  164. package/dist/test/services/ai-context-injector.js +0 -96
  165. package/dist/test/services/ai-service-client.js +0 -270
  166. package/dist/test/services/api-client.js +0 -349
  167. package/dist/test/tools/types.js +0 -1
  168. package/dist/test/types/index.js +0 -1
  169. package/dist/test-ai-context-injector.js +0 -97
  170. package/dist/tests/automated-verification.d.ts +0 -27
  171. package/dist/tests/automated-verification.d.ts.map +0 -1
  172. package/dist/tests/automated-verification.js +0 -359
  173. package/dist/tests/automated-verification.js.map +0 -1
  174. package/dist/tests/integration-tests.d.ts +0 -50
  175. package/dist/tests/integration-tests.d.ts.map +0 -1
  176. package/dist/tests/integration-tests.js +0 -648
  177. package/dist/tests/integration-tests.js.map +0 -1
  178. package/dist/tools/file-ops-test.d.ts +0 -6
  179. package/dist/tools/file-ops-test.d.ts.map +0 -1
  180. package/dist/tools/file-ops-test.js +0 -197
  181. package/dist/tools/file-ops-test.js.map +0 -1
  182. package/dist/ui/DisplayHistory.d.ts +0 -53
  183. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  184. package/dist/ui/DisplayHistory.js +0 -82
  185. package/dist/ui/DisplayHistory.js.map +0 -1
  186. package/dist/ui/clack-ui.d.ts +0 -83
  187. package/dist/ui/clack-ui.d.ts.map +0 -1
  188. package/dist/ui/clack-ui.js +0 -304
  189. package/dist/ui/clack-ui.js.map +0 -1
  190. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  191. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  192. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  193. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  194. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  195. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  196. package/dist/ui/components/DynamicMessage.js +0 -27
  197. package/dist/ui/components/DynamicMessage.js.map +0 -1
  198. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  199. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  200. package/dist/ui/components/FileViewerScreen.js +0 -74
  201. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  202. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  203. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  204. package/dist/ui/components/ScrollableContent.js +0 -6
  205. package/dist/ui/components/ScrollableContent.js.map +0 -1
  206. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  207. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  208. package/dist/ui/components/ScrollableMessageList.js +0 -133
  209. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  210. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  211. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  212. package/dist/ui/components/ScrollableScreen.js +0 -22
  213. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  214. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  215. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  216. package/dist/ui/components/StaticMessageHistory.js +0 -19
  217. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  218. package/dist/ui/components/code-block.d.ts +0 -10
  219. package/dist/ui/components/code-block.d.ts.map +0 -1
  220. package/dist/ui/components/code-block.js +0 -74
  221. package/dist/ui/components/code-block.js.map +0 -1
  222. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  223. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  224. package/dist/ui/components/confirm-prompt.js +0 -104
  225. package/dist/ui/components/confirm-prompt.js.map +0 -1
  226. package/dist/ui/components/diff-viewer.d.ts +0 -9
  227. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  228. package/dist/ui/components/diff-viewer.js +0 -57
  229. package/dist/ui/components/diff-viewer.js.map +0 -1
  230. package/dist/ui/components/input-box.d.ts +0 -18
  231. package/dist/ui/components/input-box.d.ts.map +0 -1
  232. package/dist/ui/components/input-box.js +0 -157
  233. package/dist/ui/components/input-box.js.map +0 -1
  234. package/dist/ui/components/keyboard-help.d.ts +0 -7
  235. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  236. package/dist/ui/components/keyboard-help.js +0 -43
  237. package/dist/ui/components/keyboard-help.js.map +0 -1
  238. package/dist/ui/components/loading-indicator.d.ts +0 -3
  239. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  240. package/dist/ui/components/loading-indicator.js +0 -42
  241. package/dist/ui/components/loading-indicator.js.map +0 -1
  242. package/dist/ui/components/message-display.d.ts +0 -7
  243. package/dist/ui/components/message-display.d.ts.map +0 -1
  244. package/dist/ui/components/message-display.js +0 -104
  245. package/dist/ui/components/message-display.js.map +0 -1
  246. package/dist/ui/components/misc.d.ts +0 -28
  247. package/dist/ui/components/misc.d.ts.map +0 -1
  248. package/dist/ui/components/misc.js +0 -128
  249. package/dist/ui/components/misc.js.map +0 -1
  250. package/dist/ui/components/select-prompt.d.ts +0 -13
  251. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  252. package/dist/ui/components/select-prompt.js +0 -42
  253. package/dist/ui/components/select-prompt.js.map +0 -1
  254. package/dist/ui/components/status-bar.d.ts +0 -11
  255. package/dist/ui/components/status-bar.d.ts.map +0 -1
  256. package/dist/ui/components/status-bar.js +0 -47
  257. package/dist/ui/components/status-bar.js.map +0 -1
  258. package/dist/ui/components/tool-execution.d.ts +0 -3
  259. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  260. package/dist/ui/components/tool-execution.js +0 -374
  261. package/dist/ui/components/tool-execution.js.map +0 -1
  262. package/dist/ui/components/tool-result.d.ts +0 -11
  263. package/dist/ui/components/tool-result.d.ts.map +0 -1
  264. package/dist/ui/components/tool-result.js +0 -58
  265. package/dist/ui/components/tool-result.js.map +0 -1
  266. package/dist/ui/components/welcome-banner.d.ts +0 -3
  267. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  268. package/dist/ui/components/welcome-banner.js +0 -46
  269. package/dist/ui/components/welcome-banner.js.map +0 -1
  270. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  271. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  272. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  273. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  274. package/dist/ui/render-engine.d.ts +0 -69
  275. package/dist/ui/render-engine.d.ts.map +0 -1
  276. package/dist/ui/render-engine.js +0 -197
  277. package/dist/ui/render-engine.js.map +0 -1
  278. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  279. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  280. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  281. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  282. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  283. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  284. package/dist/ui/terminal/TerminalUI.js +0 -430
  285. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  286. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  287. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  288. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  289. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  290. package/dist/ui/terminal-kit-base.d.ts +0 -117
  291. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  292. package/dist/ui/terminal-kit-base.js +0 -188
  293. package/dist/ui/terminal-kit-base.js.map +0 -1
  294. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  295. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  296. package/dist/ui/utils/duplication-detector.js +0 -227
  297. package/dist/ui/utils/duplication-detector.js.map +0 -1
  298. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  299. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  300. package/dist/ui/utils/duplication-logger.js +0 -85
  301. package/dist/ui/utils/duplication-logger.js.map +0 -1
  302. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  303. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  304. package/dist/ui/utils/terminal-scanner.js +0 -217
  305. package/dist/ui/utils/terminal-scanner.js.map +0 -1
  306. package/dist/version.d.ts +0 -2
  307. package/dist/version.d.ts.map +0 -1
  308. package/dist/version.js +0 -3
  309. package/dist/version.js.map +0 -1
  310. package/scripts/generate-version.js +0 -25
@@ -1,46 +0,0 @@
1
- import { ensureScreenBuffer, createColorAttr, colors } from '../terminal-kit-base.js';
2
- // ASCII art from UI_ELEMENTS_REFERENCE.md (exact)
3
- const BANNER = ` ██████╗███████╗███╗ ██╗████████╗ █████╗ ██╗ ██╗██████╗ ██╗ ██╗███████╗
4
- ██╔════╝██╔════╝████╗ ██║╚══██╔══╝██╔══██╗██║ ██║██╔══██╗██║ ██║██╔════╝
5
- ██║ █████╗ ██╔██╗ ██║ ██║ ███████║██║ ██║██████╔╝██║ ██║███████╗
6
- ██║ ██╔══╝ ██║╚██╗██║ ██║ ██╔══██║██║ ██║██╔══██╗██║ ██║╚════██║
7
- ╚██████╗███████╗██║ ╚████║ ██║ ██║ ██║╚██████╔╝██║ ██║╚██████╔╝███████║
8
- ╚═════╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
9
-
10
- ██████╗██╗ ██╗
11
- ██╔════╝██║ ██║
12
- ██║ ██║ ██║
13
- ██║ ██║ ██║
14
- ╚██████╗███████╗██║
15
- ╚═════╝╚══════╝╚═╝`;
16
- const HELP_TEXT = ' Type /help for commands';
17
- let hasRendered = false; // Ensure banner only renders once
18
- export function renderWelcomeBanner(x, y) {
19
- const lines = BANNER.split('\n');
20
- const bannerHeight = lines.length + 2; // banner + help text + margin
21
- // Only actually render once
22
- if (hasRendered) {
23
- return y + bannerHeight; // Return where next content should start
24
- }
25
- hasRendered = true;
26
- const cyanAttr = createColorAttr(colors.primary); // #00ccff
27
- const dimmedAttr = createColorAttr(colors.dimmed, false, true); // #666666, dimmed
28
- const buffer = ensureScreenBuffer();
29
- let currentY = y;
30
- // Render ASCII art banner in cyan
31
- for (const line of lines) {
32
- buffer.put({ x, y: currentY, attr: cyanAttr }, line);
33
- currentY++;
34
- }
35
- // Render help text (dimmed gray)
36
- buffer.put({ x, y: currentY, attr: dimmedAttr }, HELP_TEXT);
37
- currentY++;
38
- // Add bottom margin (1 line)
39
- currentY++;
40
- // Return position after banner
41
- return currentY;
42
- }
43
- export function resetWelcomeBanner() {
44
- hasRendered = false;
45
- }
46
- //# sourceMappingURL=welcome-banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"welcome-banner.js","sourceRoot":"","sources":["../../../src/ui/components/welcome-banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtF,kDAAkD;AAClD,MAAM,MAAM,GAAG;;;;;;;;;;;;0BAYW,CAAC;AAE3B,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,kCAAkC;AAE3D,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,CAAS;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAErE,4BAA4B;IAC5B,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,yCAAyC;IACpE,CAAC;IAED,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;IAC5D,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB;IAClF,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,kCAAkC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACrD,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5D,QAAQ,EAAE,CAAC;IAEX,6BAA6B;IAC7B,QAAQ,EAAE,CAAC;IAEX,+BAA+B;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC"}
@@ -1,13 +0,0 @@
1
- import { DisplayItem } from '../DisplayHistory.js';
2
- /**
3
- * React hook for managing display history with proper state updates
4
- */
5
- export declare function useDisplayHistory(): {
6
- items: DisplayItem[];
7
- addItem: (item: Omit<DisplayItem, "id" | "timestamp">) => string;
8
- updateItem: (id: string, updates: Partial<Omit<DisplayItem, "id" | "timestamp">>) => boolean;
9
- removeItem: (id: string) => boolean;
10
- clear: () => void;
11
- getRecentItems: (count: number) => DisplayItem[];
12
- };
13
- //# sourceMappingURL=useDisplayHistory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDisplayHistory.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useDisplayHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,wBAAgB,iBAAiB;;oBAII,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,KAAG,MAAM;qBAM7C,MAAM,WAAW,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,KAAG,OAAO;qBAQzE,MAAM,KAAG,OAAO;;4BAaT,MAAM,KAAG,WAAW,EAAE;EAalE"}
@@ -1,45 +0,0 @@
1
- import { useState, useCallback, useRef, useMemo } from 'react';
2
- import { DisplayHistory } from '../DisplayHistory.js';
3
- /**
4
- * React hook for managing display history with proper state updates
5
- */
6
- export function useDisplayHistory() {
7
- const historyRef = useRef(new DisplayHistory());
8
- const [items, setItems] = useState([]);
9
- const addItem = useCallback((item) => {
10
- const id = historyRef.current.addItem(item);
11
- setItems(historyRef.current.getItems());
12
- return id;
13
- }, []);
14
- const updateItem = useCallback((id, updates) => {
15
- const success = historyRef.current.updateItem(id, updates);
16
- if (success) {
17
- setItems(historyRef.current.getItems());
18
- }
19
- return success;
20
- }, []);
21
- const removeItem = useCallback((id) => {
22
- const success = historyRef.current.removeItem(id);
23
- if (success) {
24
- setItems(historyRef.current.getItems());
25
- }
26
- return success;
27
- }, []);
28
- const clear = useCallback(() => {
29
- historyRef.current.clear();
30
- setItems([]);
31
- }, []);
32
- const getRecentItems = useCallback((count) => {
33
- return historyRef.current.getRecentItems(count);
34
- }, []);
35
- // Return a stable object reference using useMemo
36
- return useMemo(() => ({
37
- items,
38
- addItem,
39
- updateItem,
40
- removeItem,
41
- clear,
42
- getRecentItems,
43
- }), [items, addItem, updateItem, removeItem, clear, getRecentItems]);
44
- }
45
- //# sourceMappingURL=useDisplayHistory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDisplayHistory.js","sourceRoot":"","sources":["../../../src/ui/hooks/useDisplayHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,IAA2C,EAAU,EAAE;QAClF,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,OAAuD,EAAW,EAAE;QAC9G,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAU,EAAW,EAAE;QACrD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAAa,EAAiB,EAAE;QAClE,OAAO,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iDAAiD;IACjD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB,KAAK;QACL,OAAO;QACP,UAAU;QACV,UAAU;QACV,KAAK;QACL,cAAc;KACf,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AACvE,CAAC"}
@@ -1,69 +0,0 @@
1
- export interface ComponentRegion {
2
- name: string;
3
- x: number;
4
- y: number;
5
- width: number;
6
- height: number;
7
- zIndex: number;
8
- dirty: boolean;
9
- }
10
- export declare function registerComponent(name: string, width: number, height: number, options?: {
11
- x?: number;
12
- y?: number;
13
- zIndex?: number;
14
- }): ComponentRegion;
15
- export declare function updateComponent(name: string, updates: Partial<ComponentRegion>): void;
16
- export declare function markDirty(name: string): void;
17
- export declare function clearComponent(name: string): void;
18
- export declare function unregisterComponent(name: string): void;
19
- export declare function getComponent(name: string): ComponentRegion | undefined;
20
- export declare function resetLayout(): void;
21
- export declare function getCurrentY(): number;
22
- export declare function setCurrentY(y: number): void;
23
- export declare function renderDirtyComponents(): void;
24
- export declare function renderAll(): void;
25
- export declare function clearScreen(): void;
26
- export declare function getScrollOffset(): number;
27
- export declare function setScrollOffset(offset: number): void;
28
- export declare function setMaxScrollOffset(max: number): void;
29
- export declare function scrollUp(lines?: number): void;
30
- export declare function scrollDown(lines?: number): void;
31
- export declare function scrollToTop(): void;
32
- export declare function scrollToBottom(): void;
33
- export interface InputState {
34
- value: string;
35
- cursorPosition: number;
36
- placeholder?: string;
37
- }
38
- export declare function getInputState(): InputState;
39
- export declare function setInputState(state: Partial<InputState>): void;
40
- export declare function clearInput(): void;
41
- export interface RenderedMessage {
42
- id: string;
43
- y: number;
44
- height: number;
45
- }
46
- export declare function registerRenderedMessage(id: string, y: number, height: number): void;
47
- export declare function getRenderedMessage(id: string): RenderedMessage | undefined;
48
- export declare function clearRenderedMessages(): void;
49
- export declare function getVisibleMessageRange(totalMessages: number, viewportHeight: number): {
50
- start: number;
51
- end: number;
52
- };
53
- export declare function registerOverlay(name: string, x: number, y: number, width: number, height: number): void;
54
- export declare function showOverlay(name: string): void;
55
- export declare function hideOverlay(name: string): void;
56
- export declare function isOverlayActive(name: string): boolean;
57
- export declare function getTerminalSize(): {
58
- width: number;
59
- height: number;
60
- };
61
- export declare function calculateComponentDimensions(widthPercent: number, heightPercent: number, minWidth?: number, minHeight?: number): {
62
- width: number;
63
- height: number;
64
- };
65
- export declare function centerComponent(width: number, height: number): {
66
- x: number;
67
- y: number;
68
- };
69
- //# sourceMappingURL=render-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-engine.d.ts","sourceRoot":"","sources":["../../src/ui/render-engine.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAOD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,eAAe,CAmBjB;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,QAM9E;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,QAKrC;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,QAM1C;AAGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,QAM/C;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEtE;AAGD,wBAAgB,WAAW,SAE1B;AAGD,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,QAEpC;AAGD,wBAAgB,qBAAqB,SAapC;AAGD,wBAAgB,SAAS,SAMxB;AAGD,wBAAgB,WAAW,SAK1B;AAMD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,QAE7C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,QAE7C;AAED,wBAAgB,QAAQ,CAAC,KAAK,SAAI,QAEjC;AAED,wBAAgB,UAAU,CAAC,KAAK,SAAI,QAEnC;AAED,wBAAgB,WAAW,SAE1B;AAED,wBAAgB,cAAc,SAE7B;AAGD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,QAEvD;AAED,wBAAgB,UAAU,SAMzB;AAGD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAE5E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE1E;AAED,wBAAgB,qBAAqB,SAEpC;AAGD,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAQpH;AAcD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,QAGf;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,QAKvC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,QAOvC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAGD,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKnE;AAGD,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,SAAK,EACb,SAAS,SAAI,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKnC;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAKvF"}
@@ -1,197 +0,0 @@
1
- import { term, render as doRender, clearRegion } from './terminal-kit-base.js';
2
- // Global state for component management
3
- const components = new Map();
4
- let currentY = 1; // Track vertical position for auto-layout
5
- // Register a component region
6
- export function registerComponent(name, width, height, options = {}) {
7
- const region = {
8
- name,
9
- x: options.x ?? 1,
10
- y: options.y ?? currentY,
11
- width,
12
- height,
13
- zIndex: options.zIndex ?? 0,
14
- dirty: true,
15
- };
16
- components.set(name, region);
17
- // Auto-increment Y position for next component if not manually positioned
18
- if (options.y === undefined) {
19
- currentY += height;
20
- }
21
- return region;
22
- }
23
- // Update component region
24
- export function updateComponent(name, updates) {
25
- const component = components.get(name);
26
- if (!component)
27
- return;
28
- Object.assign(component, updates);
29
- component.dirty = true;
30
- }
31
- // Mark component as dirty (needs re-render)
32
- export function markDirty(name) {
33
- const component = components.get(name);
34
- if (component) {
35
- component.dirty = true;
36
- }
37
- }
38
- // Clear component region
39
- export function clearComponent(name) {
40
- const component = components.get(name);
41
- if (!component)
42
- return;
43
- clearRegion(component.x, component.y, component.width, component.height);
44
- component.dirty = false;
45
- }
46
- // Unregister component
47
- export function unregisterComponent(name) {
48
- const component = components.get(name);
49
- if (component) {
50
- clearComponent(name);
51
- components.delete(name);
52
- }
53
- }
54
- // Get component region
55
- export function getComponent(name) {
56
- return components.get(name);
57
- }
58
- // Reset vertical position (for re-layout)
59
- export function resetLayout() {
60
- currentY = 1;
61
- }
62
- // Get current Y position (for manual layout)
63
- export function getCurrentY() {
64
- return currentY;
65
- }
66
- // Set current Y position (for manual layout)
67
- export function setCurrentY(y) {
68
- currentY = y;
69
- }
70
- // Render all dirty components (sorted by z-index)
71
- export function renderDirtyComponents() {
72
- const dirtyComponents = Array.from(components.values())
73
- .filter(c => c.dirty)
74
- .sort((a, b) => a.zIndex - b.zIndex);
75
- if (dirtyComponents.length > 0) {
76
- doRender();
77
- // Mark components as clean
78
- dirtyComponents.forEach(c => {
79
- c.dirty = false;
80
- });
81
- }
82
- }
83
- // Force render all components
84
- export function renderAll() {
85
- components.forEach(c => {
86
- c.dirty = true;
87
- });
88
- renderDirtyComponents();
89
- }
90
- // Clear entire screen and reset layout
91
- export function clearScreen() {
92
- term.clear();
93
- clearRegion(1, 1, term.width, term.height);
94
- resetLayout();
95
- components.clear();
96
- }
97
- // Scroll management (for message history)
98
- let scrollOffset = 0;
99
- let maxScrollOffset = 0;
100
- export function getScrollOffset() {
101
- return scrollOffset;
102
- }
103
- export function setScrollOffset(offset) {
104
- scrollOffset = Math.max(0, Math.min(offset, maxScrollOffset));
105
- }
106
- export function setMaxScrollOffset(max) {
107
- maxScrollOffset = max;
108
- }
109
- export function scrollUp(lines = 1) {
110
- setScrollOffset(scrollOffset - lines);
111
- }
112
- export function scrollDown(lines = 1) {
113
- setScrollOffset(scrollOffset + lines);
114
- }
115
- export function scrollToTop() {
116
- setScrollOffset(0);
117
- }
118
- export function scrollToBottom() {
119
- setScrollOffset(maxScrollOffset);
120
- }
121
- let inputState = {
122
- value: '',
123
- cursorPosition: 0,
124
- };
125
- export function getInputState() {
126
- return inputState;
127
- }
128
- export function setInputState(state) {
129
- inputState = { ...inputState, ...state };
130
- }
131
- export function clearInput() {
132
- inputState = {
133
- value: '',
134
- cursorPosition: 0,
135
- placeholder: inputState.placeholder,
136
- };
137
- }
138
- const renderedMessages = new Map();
139
- export function registerRenderedMessage(id, y, height) {
140
- renderedMessages.set(id, { id, y, height });
141
- }
142
- export function getRenderedMessage(id) {
143
- return renderedMessages.get(id);
144
- }
145
- export function clearRenderedMessages() {
146
- renderedMessages.clear();
147
- }
148
- // Calculate visible message range based on scroll
149
- export function getVisibleMessageRange(totalMessages, viewportHeight) {
150
- const messagesPerPage = Math.floor(viewportHeight / 3); // Assume ~3 lines per message
151
- const totalPages = Math.ceil(totalMessages / messagesPerPage);
152
- const start = Math.max(0, totalMessages - messagesPerPage - scrollOffset);
153
- const end = Math.min(totalMessages, start + messagesPerPage);
154
- return { start, end };
155
- }
156
- const overlays = new Map();
157
- export function registerOverlay(name, x, y, width, height) {
158
- overlays.set(name, { name, x, y, width, height, active: false });
159
- }
160
- export function showOverlay(name) {
161
- const overlay = overlays.get(name);
162
- if (overlay) {
163
- overlay.active = true;
164
- }
165
- }
166
- export function hideOverlay(name) {
167
- const overlay = overlays.get(name);
168
- if (overlay) {
169
- overlay.active = false;
170
- // Clear overlay region
171
- clearRegion(overlay.x, overlay.y, overlay.width, overlay.height);
172
- }
173
- }
174
- export function isOverlayActive(name) {
175
- return overlays.get(name)?.active ?? false;
176
- }
177
- // Terminal dimensions helper
178
- export function getTerminalSize() {
179
- return {
180
- width: term.width,
181
- height: term.height,
182
- };
183
- }
184
- // Calculate component dimensions based on terminal size
185
- export function calculateComponentDimensions(widthPercent, heightPercent, minWidth = 40, minHeight = 5) {
186
- const width = Math.max(minWidth, Math.floor(term.width * widthPercent));
187
- const height = Math.max(minHeight, Math.floor(term.height * heightPercent));
188
- return { width, height };
189
- }
190
- // Center component on screen
191
- export function centerComponent(width, height) {
192
- return {
193
- x: Math.max(1, Math.floor((term.width - width) / 2)),
194
- y: Math.max(1, Math.floor((term.height - height) / 2)),
195
- };
196
- }
197
- //# sourceMappingURL=render-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-engine.js","sourceRoot":"","sources":["../../src/ui/render-engine.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Custom Terminal Renderer
3
- * Replaces Ink with direct terminal control for better performance and no duplication
4
- */
5
- export interface TerminalLine {
6
- content: string;
7
- color?: string;
8
- }
9
- export declare class TerminalRenderer {
10
- private lines;
11
- private cursorLine;
12
- private inputLine;
13
- private inputPrompt;
14
- private statusLine;
15
- private rl;
16
- private stdout;
17
- private stdin;
18
- constructor();
19
- /**
20
- * Initialize the terminal
21
- */
22
- init(): void;
23
- /**
24
- * Clear the entire screen
25
- */
26
- clearScreen(): void;
27
- /**
28
- * Hide cursor
29
- */
30
- hideCursor(): void;
31
- /**
32
- * Show cursor
33
- */
34
- showCursor(): void;
35
- /**
36
- * Move cursor to specific position
37
- */
38
- moveCursor(row: number, col: number): void;
39
- /**
40
- * Clear current line
41
- */
42
- clearLine(): void;
43
- /**
44
- * Add a line to the display buffer
45
- */
46
- addLine(content: string): void;
47
- /**
48
- * Set the status line (bottom bar)
49
- */
50
- setStatusLine(content: string): void;
51
- /**
52
- * Set the input prompt
53
- */
54
- setInputPrompt(prompt: string): void;
55
- /**
56
- * Render the entire screen
57
- */
58
- render(): void;
59
- /**
60
- * Render a new line of content (for messages, tool output, etc.)
61
- */
62
- renderNewLine(content: string): void;
63
- /**
64
- * Update input line
65
- */
66
- updateInput(input: string): void;
67
- /**
68
- * Clear all lines
69
- */
70
- clearLines(): void;
71
- /**
72
- * Get current input
73
- */
74
- getInput(): string;
75
- /**
76
- * Clear input
77
- */
78
- clearInput(): void;
79
- /**
80
- * Cleanup and restore terminal
81
- */
82
- cleanup(): void;
83
- }
84
- //# sourceMappingURL=TerminalRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TerminalRenderer.d.ts","sourceRoot":"","sources":["../../../src/ui/terminal/TerminalRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAa;;IAiB1B;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1C;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAqBd;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAcpC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
@@ -1,154 +0,0 @@
1
- /**
2
- * Custom Terminal Renderer
3
- * Replaces Ink with direct terminal control for better performance and no duplication
4
- */
5
- import * as readline from 'readline';
6
- export class TerminalRenderer {
7
- lines = [];
8
- cursorLine = 0;
9
- inputLine = '';
10
- inputPrompt = '> ';
11
- statusLine = '';
12
- rl;
13
- stdout;
14
- stdin;
15
- constructor() {
16
- this.stdout = process.stdout;
17
- this.stdin = process.stdin;
18
- // Create readline interface
19
- this.rl = readline.createInterface({
20
- input: this.stdin,
21
- output: this.stdout,
22
- terminal: true
23
- });
24
- // Hide cursor initially
25
- this.hideCursor();
26
- }
27
- /**
28
- * Initialize the terminal
29
- */
30
- init() {
31
- // Clear screen
32
- this.clearScreen();
33
- // Enable raw mode for better control
34
- if (this.stdin.isTTY) {
35
- this.stdin.setRawMode(true);
36
- }
37
- }
38
- /**
39
- * Clear the entire screen
40
- */
41
- clearScreen() {
42
- this.stdout.write('\x1b[2J\x1b[H');
43
- }
44
- /**
45
- * Hide cursor
46
- */
47
- hideCursor() {
48
- this.stdout.write('\x1b[?25l');
49
- }
50
- /**
51
- * Show cursor
52
- */
53
- showCursor() {
54
- this.stdout.write('\x1b[?25h');
55
- }
56
- /**
57
- * Move cursor to specific position
58
- */
59
- moveCursor(row, col) {
60
- this.stdout.write(`\x1b[${row};${col}H`);
61
- }
62
- /**
63
- * Clear current line
64
- */
65
- clearLine() {
66
- this.stdout.write('\x1b[2K');
67
- }
68
- /**
69
- * Add a line to the display buffer
70
- */
71
- addLine(content) {
72
- this.lines.push(content);
73
- }
74
- /**
75
- * Set the status line (bottom bar)
76
- */
77
- setStatusLine(content) {
78
- this.statusLine = content;
79
- }
80
- /**
81
- * Set the input prompt
82
- */
83
- setInputPrompt(prompt) {
84
- this.inputPrompt = prompt;
85
- }
86
- /**
87
- * Render the entire screen
88
- */
89
- render() {
90
- const rows = this.stdout.rows || 24;
91
- // Just update the status and input lines at the bottom
92
- // Don't clear or redraw content - let it scroll naturally
93
- // Render status line at bottom
94
- this.moveCursor(rows - 1, 1);
95
- this.clearLine();
96
- this.stdout.write(this.statusLine);
97
- // Render input line at very bottom
98
- this.moveCursor(rows, 1);
99
- this.clearLine();
100
- this.stdout.write(this.inputPrompt + this.inputLine);
101
- // Position cursor at end of input
102
- this.moveCursor(rows, this.inputPrompt.length + this.inputLine.length + 1);
103
- this.showCursor();
104
- }
105
- /**
106
- * Render a new line of content (for messages, tool output, etc.)
107
- */
108
- renderNewLine(content) {
109
- const rows = this.stdout.rows || 24;
110
- // Move to line before status bar
111
- this.moveCursor(rows - 2, 1);
112
- this.clearLine();
113
- // Write the content
114
- this.stdout.write(content + '\n');
115
- // Re-render status and input
116
- this.render();
117
- }
118
- /**
119
- * Update input line
120
- */
121
- updateInput(input) {
122
- this.inputLine = input;
123
- this.render();
124
- }
125
- /**
126
- * Clear all lines
127
- */
128
- clearLines() {
129
- this.lines = [];
130
- }
131
- /**
132
- * Get current input
133
- */
134
- getInput() {
135
- return this.inputLine;
136
- }
137
- /**
138
- * Clear input
139
- */
140
- clearInput() {
141
- this.inputLine = '';
142
- }
143
- /**
144
- * Cleanup and restore terminal
145
- */
146
- cleanup() {
147
- this.showCursor();
148
- if (this.stdin.isTTY) {
149
- this.stdin.setRawMode(false);
150
- }
151
- this.rl.close();
152
- }
153
- }
154
- //# sourceMappingURL=TerminalRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TerminalRenderer.js","sourceRoot":"","sources":["../../../src/ui/terminal/TerminalRenderer.ts"],"names":[],"mappings":"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"}