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,139 +0,0 @@
1
- /**
2
- * Terminal UI Manager
3
- * Manages the UI state and rendering without React/Ink
4
- */
5
- interface ApprovalRequest {
6
- message: string;
7
- risky: boolean;
8
- preview?: {
9
- type: 'code' | 'diff';
10
- content: string;
11
- language?: string;
12
- };
13
- resolve: (approved: boolean) => void;
14
- }
15
- interface PickerOptions {
16
- message: string;
17
- choices: Array<{
18
- label: string;
19
- value: string;
20
- }>;
21
- type: 'model' | 'provider';
22
- }
23
- interface PlanApprovalRequest {
24
- tasks: string[];
25
- question: string;
26
- resolve: (approved: boolean) => void;
27
- }
28
- export declare class TerminalUI {
29
- private renderer;
30
- private screen;
31
- private messageHistory;
32
- private currentMessage;
33
- private isLoading;
34
- private loadingMessage;
35
- private currentModel;
36
- private planMode;
37
- private autoAcceptMode;
38
- private approvalRequest?;
39
- private pickerOptions?;
40
- private planApprovalRequest?;
41
- private selectedPickerIndex;
42
- private inputBuffer;
43
- private onMessageCallback?;
44
- private onPickerSelectionCallback?;
45
- private onToggleAutoAcceptCallback?;
46
- constructor(initialModel: string, initialPlanMode: boolean);
47
- /**
48
- * Initialize the UI
49
- */
50
- init(): void;
51
- /**
52
- * Render the welcome banner
53
- */
54
- private renderBanner;
55
- /**
56
- * Update the status bar
57
- */
58
- private updateStatusBar;
59
- /**
60
- * Setup input handling
61
- */
62
- private setupInputHandling;
63
- /**
64
- * Handle chat screen input
65
- */
66
- private handleChatInput;
67
- /**
68
- * Handle approval screen input
69
- */
70
- private handleApprovalInput;
71
- /**
72
- * Handle picker screen input
73
- */
74
- private handlePickerInput;
75
- /**
76
- * Handle plan approval input
77
- */
78
- private handlePlanApprovalInput;
79
- /**
80
- * Add a user message
81
- */
82
- private addUserMessage;
83
- /**
84
- * Add an assistant message
85
- */
86
- addAssistantMessage(content: string): void;
87
- /**
88
- * Add a system message
89
- */
90
- private addSystemMessage;
91
- /**
92
- * Add a tool execution message
93
- */
94
- addToolMessage(toolName: string, status: 'executing' | 'completed' | 'error', details?: any): void;
95
- /**
96
- * Set loading state
97
- */
98
- setLoading(loading: boolean, message?: string): void;
99
- /**
100
- * Show approval request
101
- */
102
- showApprovalRequest(request: ApprovalRequest): void;
103
- /**
104
- * Show picker
105
- */
106
- showPicker(options: PickerOptions): void;
107
- /**
108
- * Show plan approval
109
- */
110
- showPlanApproval(request: PlanApprovalRequest): void;
111
- /**
112
- * Render chat screen
113
- */
114
- private renderChatScreen;
115
- /**
116
- * Get tool emoji
117
- */
118
- private getToolEmoji;
119
- /**
120
- * Get tool label
121
- */
122
- private getToolLabel;
123
- /**
124
- * Format timestamp
125
- */
126
- private formatTime;
127
- /**
128
- * Set callbacks
129
- */
130
- setOnMessage(callback: (message: string) => Promise<void>): void;
131
- setOnPickerSelection(callback: (value: string, type: 'model' | 'provider') => Promise<void>): void;
132
- setOnToggleAutoAccept(callback: () => void): void;
133
- /**
134
- * Cleanup
135
- */
136
- cleanup(): void;
137
- }
138
- export {};
139
- //# sourceMappingURL=TerminalUI.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TerminalUI.d.ts","sourceRoot":"","sources":["../../../src/ui/terminal/TerminalUI.ts"],"names":[],"mappings":"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"}
@@ -1,430 +0,0 @@
1
- /**
2
- * Terminal UI Manager
3
- * Manages the UI state and rendering without React/Ink
4
- */
5
- import { TerminalRenderer } from './TerminalRenderer.js';
6
- import chalk from 'chalk';
7
- export class TerminalUI {
8
- renderer;
9
- screen = 'chat';
10
- messageHistory = [];
11
- currentMessage = null;
12
- isLoading = false;
13
- loadingMessage = '';
14
- currentModel = '';
15
- planMode = false;
16
- autoAcceptMode = false;
17
- approvalRequest;
18
- pickerOptions;
19
- planApprovalRequest;
20
- selectedPickerIndex = 0;
21
- inputBuffer = '';
22
- // Callbacks
23
- onMessageCallback;
24
- onPickerSelectionCallback;
25
- onToggleAutoAcceptCallback;
26
- constructor(initialModel, initialPlanMode) {
27
- this.renderer = new TerminalRenderer();
28
- this.currentModel = initialModel;
29
- this.planMode = initialPlanMode;
30
- }
31
- /**
32
- * Initialize the UI
33
- */
34
- init() {
35
- this.renderer.init();
36
- this.renderBanner();
37
- this.updateStatusBar();
38
- this.renderer.setInputPrompt('> ');
39
- this.renderer.render();
40
- this.setupInputHandling();
41
- }
42
- /**
43
- * Render the welcome banner
44
- */
45
- renderBanner() {
46
- const banner = `
47
- ${chalk.cyan('██████╗███████╗███╗ ██╗████████╗ █████╗ ██╗ ██╗██████╗ ██╗ ██╗███████╗')}
48
- ${chalk.cyan('██╔════╝██╔════╝████╗ ██║╚══██╔══╝██╔══██╗██║ ██║██╔══██╗██║ ██║██╔════╝')}
49
- ${chalk.cyan('██║ █████╗ ██╔██╗ ██║ ██║ ███████║██║ ██║██████╔╝██║ ██║███████╗')}
50
- ${chalk.cyan('██║ ██╔══╝ ██║╚██╗██║ ██║ ██╔══██║██║ ██║██╔══██╗██║ ██║╚════██║')}
51
- ${chalk.cyan('╚██████╗███████╗██║ ╚████║ ██║ ██║ ██║╚██████╔╝██║ ██║╚██████╔╝███████║')}
52
- ${chalk.cyan(' ╚═════╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝')}
53
- ${chalk.cyan('██████╗██╗ ██╗')}
54
- ${chalk.cyan('██╔════╝██║ ██║')}
55
- ${chalk.cyan('██║ ██║ ██║')}
56
- ${chalk.cyan('██║ ██║ ██║')}
57
- ${chalk.cyan('╚██████╗███████╗██║')}
58
- ${chalk.cyan(' ╚═════╝╚══════╝╚═╝')}
59
-
60
- ${chalk.gray('Type /help for commands')}
61
- `;
62
- console.log(banner);
63
- }
64
- /**
65
- * Update the status bar
66
- */
67
- updateStatusBar() {
68
- const cwd = process.cwd();
69
- const mode = this.planMode ? 'Planning' : 'Execution';
70
- const autoAccept = this.autoAcceptMode ? 'ON' : 'OFF';
71
- const status = chalk.gray(`CWD: ${cwd} | Model: ${this.currentModel} | Mode: ${mode} | [AUTO-ACCEPT: ${autoAccept}] | Ctrl+T: toggle | Ctrl+C: exit`);
72
- this.renderer.setStatusLine(status);
73
- }
74
- /**
75
- * Setup input handling
76
- */
77
- setupInputHandling() {
78
- process.stdin.on('data', (data) => {
79
- const key = data.toString();
80
- // Handle different screens
81
- if (this.screen === 'chat') {
82
- this.handleChatInput(key);
83
- }
84
- else if (this.screen === 'approval') {
85
- this.handleApprovalInput(key);
86
- }
87
- else if (this.screen === 'picker') {
88
- this.handlePickerInput(key);
89
- }
90
- else if (this.screen === 'plan-approval') {
91
- this.handlePlanApprovalInput(key);
92
- }
93
- });
94
- }
95
- /**
96
- * Handle chat screen input
97
- */
98
- handleChatInput(key) {
99
- // Ctrl+C to exit
100
- if (key === '\x03') {
101
- this.cleanup();
102
- process.exit(0);
103
- }
104
- // Ctrl+T to toggle auto-accept
105
- if (key === '\x14') {
106
- this.autoAcceptMode = !this.autoAcceptMode;
107
- this.updateStatusBar();
108
- this.renderer.render();
109
- return;
110
- }
111
- // Enter to submit
112
- if (key === '\r' || key === '\n') {
113
- const input = this.inputBuffer.trim();
114
- if (input && this.onMessageCallback) {
115
- this.addUserMessage(input);
116
- this.inputBuffer = '';
117
- this.renderer.clearInput();
118
- this.setLoading(true, 'Processing...');
119
- this.onMessageCallback(input).catch(err => {
120
- this.addSystemMessage(`Error: ${err.message}`);
121
- this.setLoading(false);
122
- });
123
- }
124
- return;
125
- }
126
- // Backspace
127
- if (key === '\x7f' || key === '\b') {
128
- if (this.inputBuffer.length > 0) {
129
- this.inputBuffer = this.inputBuffer.slice(0, -1);
130
- this.renderer.updateInput(this.inputBuffer);
131
- }
132
- return;
133
- }
134
- // Regular character
135
- if (key.length === 1 && key >= ' ') {
136
- this.inputBuffer += key;
137
- this.renderer.updateInput(this.inputBuffer);
138
- }
139
- }
140
- /**
141
- * Handle approval screen input
142
- */
143
- handleApprovalInput(key) {
144
- if (!this.approvalRequest)
145
- return;
146
- const lowerKey = key.toLowerCase();
147
- if (lowerKey === 'y') {
148
- // Add response to display
149
- console.log(chalk.green('✓ Approved'));
150
- this.approvalRequest.resolve(true);
151
- this.approvalRequest = undefined;
152
- this.screen = 'chat';
153
- this.renderer.setInputPrompt('> ');
154
- this.renderer.render();
155
- }
156
- else if (lowerKey === 'n') {
157
- // Add response to display
158
- console.log(chalk.red('✗ Rejected'));
159
- this.approvalRequest.resolve(false);
160
- this.approvalRequest = undefined;
161
- this.screen = 'chat';
162
- this.renderer.setInputPrompt('> ');
163
- this.renderer.render();
164
- }
165
- }
166
- /**
167
- * Handle picker screen input
168
- */
169
- handlePickerInput(key) {
170
- if (!this.pickerOptions)
171
- return;
172
- // Arrow up
173
- if (key === '\x1b[A') {
174
- this.selectedPickerIndex = Math.max(0, this.selectedPickerIndex - 1);
175
- // Re-render picker with updated selection
176
- this.showPicker(this.pickerOptions);
177
- return;
178
- }
179
- // Arrow down
180
- if (key === '\x1b[B') {
181
- this.selectedPickerIndex = Math.min(this.pickerOptions.choices.length - 1, this.selectedPickerIndex + 1);
182
- // Re-render picker with updated selection
183
- this.showPicker(this.pickerOptions);
184
- return;
185
- }
186
- // Enter to select
187
- if (key === '\r' || key === '\n') {
188
- const selected = this.pickerOptions.choices[this.selectedPickerIndex];
189
- const type = this.pickerOptions.type;
190
- // Add selection to display
191
- this.renderer.addLine(chalk.green(`✓ Selected: ${selected.label}`));
192
- this.pickerOptions = undefined;
193
- this.screen = 'chat';
194
- this.renderer.setInputPrompt('> ');
195
- this.setLoading(true, 'Updating...');
196
- if (this.onPickerSelectionCallback) {
197
- this.onPickerSelectionCallback(selected.value, type).then(() => {
198
- if (type === 'model') {
199
- this.currentModel = selected.value;
200
- this.updateStatusBar();
201
- }
202
- this.setLoading(false);
203
- this.renderer.render();
204
- });
205
- }
206
- }
207
- }
208
- /**
209
- * Handle plan approval input
210
- */
211
- handlePlanApprovalInput(key) {
212
- if (!this.planApprovalRequest)
213
- return;
214
- const lowerKey = key.toLowerCase();
215
- if (lowerKey === 'y') {
216
- this.renderer.addLine(chalk.green('✓ Plan approved'));
217
- this.planApprovalRequest.resolve(true);
218
- this.planApprovalRequest = undefined;
219
- this.screen = 'chat';
220
- this.renderer.setInputPrompt('> ');
221
- this.setLoading(true, 'Implementing plan...');
222
- }
223
- else if (lowerKey === 'n') {
224
- this.renderer.addLine(chalk.red('✗ Plan rejected'));
225
- this.planApprovalRequest.resolve(false);
226
- this.planApprovalRequest = undefined;
227
- this.screen = 'chat';
228
- this.renderer.setInputPrompt('> ');
229
- this.renderer.render();
230
- }
231
- }
232
- /**
233
- * Add a user message
234
- */
235
- addUserMessage(content) {
236
- const message = {
237
- id: `user-${Date.now()}`,
238
- role: 'user',
239
- content,
240
- timestamp: new Date()
241
- };
242
- this.messageHistory.push(message);
243
- // Output directly to terminal
244
- console.log('');
245
- console.log(chalk.blue(`You: ${this.formatTime(message.timestamp)}`));
246
- console.log(content);
247
- this.renderer.render();
248
- }
249
- /**
250
- * Add an assistant message
251
- */
252
- addAssistantMessage(content) {
253
- const message = {
254
- id: `assistant-${Date.now()}`,
255
- role: 'assistant',
256
- content,
257
- timestamp: new Date()
258
- };
259
- this.messageHistory.push(message);
260
- // Output directly to terminal
261
- console.log('');
262
- console.log(chalk.cyan(`Centaurus: ${this.formatTime(message.timestamp)}`));
263
- console.log(content);
264
- this.setLoading(false);
265
- this.renderer.render();
266
- }
267
- /**
268
- * Add a system message
269
- */
270
- addSystemMessage(content) {
271
- console.log('');
272
- console.log(chalk.red(content));
273
- this.renderer.render();
274
- }
275
- /**
276
- * Add a tool execution message
277
- */
278
- addToolMessage(toolName, status, details) {
279
- const emoji = this.getToolEmoji(toolName);
280
- if (status === 'executing') {
281
- console.log('');
282
- console.log(chalk.cyan(`⏳ ${emoji} ${this.getToolLabel(toolName)}...`));
283
- }
284
- else if (status === 'completed') {
285
- console.log(chalk.green(`✓ ${emoji} ${this.getToolLabel(toolName)}`));
286
- }
287
- else if (status === 'error') {
288
- console.log(chalk.red(`✗ ${emoji} ${this.getToolLabel(toolName)} failed`));
289
- }
290
- this.renderer.render();
291
- }
292
- /**
293
- * Set loading state
294
- */
295
- setLoading(loading, message = '') {
296
- this.isLoading = loading;
297
- this.loadingMessage = message;
298
- if (loading && message) {
299
- console.log('');
300
- console.log(chalk.cyan(`⏳ ${message}`));
301
- this.renderer.render();
302
- }
303
- }
304
- /**
305
- * Show approval request
306
- */
307
- showApprovalRequest(request) {
308
- this.approvalRequest = request;
309
- this.screen = 'approval';
310
- // Add approval message inline
311
- console.log('');
312
- console.log(chalk.yellow(`⚠️ ${request.message}`));
313
- console.log('');
314
- console.log(chalk.white('▶ [Y]es [N]o'));
315
- this.renderer.setInputPrompt('');
316
- this.renderer.render();
317
- }
318
- /**
319
- * Show picker
320
- */
321
- showPicker(options) {
322
- this.pickerOptions = options;
323
- this.selectedPickerIndex = 0;
324
- this.screen = 'picker';
325
- // Add picker inline
326
- this.renderer.addLine('');
327
- this.renderer.addLine(chalk.cyan(options.message));
328
- this.renderer.addLine('');
329
- options.choices.forEach((choice, index) => {
330
- const prefix = index === this.selectedPickerIndex ? '▶ ' : ' ';
331
- const color = index === this.selectedPickerIndex ? chalk.cyan : chalk.white;
332
- this.renderer.addLine(color(`${prefix}${choice.label}`));
333
- });
334
- this.renderer.addLine('');
335
- this.renderer.addLine(chalk.gray('Use arrow keys to navigate, Enter to select'));
336
- this.renderer.setInputPrompt('');
337
- this.renderer.render();
338
- }
339
- /**
340
- * Show plan approval
341
- */
342
- showPlanApproval(request) {
343
- this.planApprovalRequest = request;
344
- this.screen = 'plan-approval';
345
- // Add plan approval inline
346
- this.renderer.addLine('');
347
- this.renderer.addLine(chalk.cyan('📋 Implementation Plan'));
348
- this.renderer.addLine('');
349
- this.renderer.addLine(chalk.yellow('Tasks:'));
350
- request.tasks.forEach((task, index) => {
351
- this.renderer.addLine(chalk.white(` ${index + 1}. ${task}`));
352
- });
353
- this.renderer.addLine('');
354
- this.renderer.addLine(chalk.cyan(request.question));
355
- this.renderer.addLine('');
356
- this.renderer.addLine(chalk.white('▶ [Y]es [N]o'));
357
- this.renderer.setInputPrompt('');
358
- this.renderer.render();
359
- }
360
- /**
361
- * Render chat screen
362
- */
363
- renderChatScreen() {
364
- // Don't clear lines or re-render banner - just update what's needed
365
- this.renderer.setInputPrompt('> ');
366
- this.updateStatusBar();
367
- this.renderer.render();
368
- }
369
- /**
370
- * Get tool emoji
371
- */
372
- getToolEmoji(toolName) {
373
- const emojis = {
374
- read_file: '📖',
375
- write_file: '✍️',
376
- edit_file: '✏️',
377
- list_directory: '📁',
378
- execute_command: '⚡',
379
- grep_search: '🔍',
380
- web_search: '🌐',
381
- fetch_url: '📡'
382
- };
383
- return emojis[toolName] || '🔧';
384
- }
385
- /**
386
- * Get tool label
387
- */
388
- getToolLabel(toolName) {
389
- const labels = {
390
- read_file: 'Reading file',
391
- write_file: 'Writing file',
392
- edit_file: 'Editing file',
393
- list_directory: 'Listing directory',
394
- execute_command: 'Executing command',
395
- grep_search: 'Searching files',
396
- web_search: 'Searching web',
397
- fetch_url: 'Fetching URL'
398
- };
399
- return labels[toolName] || 'Executing';
400
- }
401
- /**
402
- * Format timestamp
403
- */
404
- formatTime(date) {
405
- return date.toLocaleTimeString('en-US', {
406
- hour: 'numeric',
407
- minute: '2-digit',
408
- hour12: true
409
- });
410
- }
411
- /**
412
- * Set callbacks
413
- */
414
- setOnMessage(callback) {
415
- this.onMessageCallback = callback;
416
- }
417
- setOnPickerSelection(callback) {
418
- this.onPickerSelectionCallback = callback;
419
- }
420
- setOnToggleAutoAccept(callback) {
421
- this.onToggleAutoAcceptCallback = callback;
422
- }
423
- /**
424
- * Cleanup
425
- */
426
- cleanup() {
427
- this.renderer.cleanup();
428
- }
429
- }
430
- //# sourceMappingURL=TerminalUI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TerminalUI.js","sourceRoot":"","sources":["../../../src/ui/terminal/TerminalUI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAuB1B,MAAM,OAAO,UAAU;IACb,QAAQ,CAAmB;IAC3B,MAAM,GAAgB,MAAM,CAAC;IAC7B,cAAc,GAAc,EAAE,CAAC;IAC/B,cAAc,GAAmB,IAAI,CAAC;IACtC,SAAS,GAAY,KAAK,CAAC;IAC3B,cAAc,GAAW,EAAE,CAAC;IAC5B,YAAY,GAAW,EAAE,CAAC;IAC1B,QAAQ,GAAY,KAAK,CAAC;IAC1B,cAAc,GAAY,KAAK,CAAC;IAChC,eAAe,CAAmB;IAClC,aAAa,CAAiB;IAC9B,mBAAmB,CAAuB;IAC1C,mBAAmB,GAAW,CAAC,CAAC;IAChC,WAAW,GAAW,EAAE,CAAC;IAEjC,YAAY;IACJ,iBAAiB,CAAsC;IACvD,yBAAyB,CAAgE;IACzF,0BAA0B,CAAc;IAEhD,YAAY,YAAoB,EAAE,eAAwB;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,MAAM,GAAG;EACjB,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC;EAC1F,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC;EAC3F,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC;EAC3F,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC;EAC3F,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC;EAC3F,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC;EAC3F,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;EAChC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;EACjC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;EACjC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;EACjC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;EACjC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;EAEjC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;CACtC,CAAC;QACE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,QAAQ,GAAG,aAAa,IAAI,CAAC,YAAY,YAAY,IAAI,oBAAoB,UAAU,mCAAmC,CAC3H,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE5B,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC3C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,GAAW;QACjC,iBAAiB;QACjB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACxC,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,YAAY;QACZ,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,GAAW;QACrC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAEnC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrB,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;aAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YAC5B,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,GAAW;QACnC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhC,WAAW;QACX,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YACrE,0CAA0C;YAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,aAAa;QACb,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CACjC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACrC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAC7B,CAAC;YACF,0CAA0C;YAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAErC,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEpE,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACnC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC7D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;wBACrB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;wBACnC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,GAAW;QACzC,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAEtC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAEnC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,EAAE,MAAM;YACZ,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAe;QACjC,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;YAC7B,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAe;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,MAA2C,EAAE,OAAa;QACzF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB,EAAE,UAAkB,EAAE;QAC/C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAE9B,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAwB;QAC1C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QAEzB,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAsB;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QAEvB,oBAAoB;QACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAC5E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAA4B;QAC3C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;QAE9B,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAID;;OAEG;IACK,YAAY,CAAC,QAAgB;QACnC,MAAM,MAAM,GAA2B;YACrC,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,GAAG;YACpB,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,QAAgB;QACnC,MAAM,MAAM,GAA2B;YACrC,SAAS,EAAE,cAAc;YACzB,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,mBAAmB;YACpC,WAAW,EAAE,iBAAiB;YAC9B,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,cAAc;SAC1B,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,IAAU;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACtC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAA4C;QACvD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,oBAAoB,CAAC,QAAsE;QACzF,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC;IAC5C,CAAC;IAED,qBAAqB,CAAC,QAAoB;QACxC,IAAI,CAAC,0BAA0B,GAAG,QAAQ,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -1,32 +0,0 @@
1
- export type Role = 'user' | 'assistant' | 'system' | 'tool';
2
- export interface ChatEntry {
3
- id: string;
4
- role: Role;
5
- text?: string;
6
- timestamp: Date;
7
- tool?: {
8
- name: string;
9
- status: 'executing' | 'completed' | 'error';
10
- result?: string;
11
- error?: string;
12
- arguments?: Record<string, any>;
13
- };
14
- }
15
- export interface ToolLive {
16
- id: string;
17
- name: string;
18
- status: 'executing' | 'completed' | 'error';
19
- result?: string;
20
- error?: string;
21
- arguments?: Record<string, any>;
22
- }
23
- export declare class VirtualChatBuffer {
24
- finalized: ChatEntry[];
25
- live: Map<string, ToolLive>;
26
- appendUser(text: string): void;
27
- appendAssistant(text: string): void;
28
- startTool(id: string, name: string, args?: Record<string, any>): void;
29
- updateTool(id: string, patch: Partial<ToolLive>): void;
30
- finalizeTool(id: string, status: 'completed' | 'error', result?: string, error?: string): void;
31
- }
32
- //# sourceMappingURL=VirtualChatBuffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualChatBuffer.d.ts","sourceRoot":"","sources":["../../../src/ui/terminal/VirtualChatBuffer.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,qBAAa,iBAAiB;IAC5B,SAAS,EAAE,SAAS,EAAE,CAAM;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAExC,UAAU,CAAC,IAAI,EAAE,MAAM;IAIvB,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI9D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;IAM/C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAiBxF"}
@@ -1,37 +0,0 @@
1
- export class VirtualChatBuffer {
2
- finalized = [];
3
- live = new Map();
4
- appendUser(text) {
5
- this.finalized.push({ id: `user-${Date.now()}-${Math.random()}`, role: 'user', text, timestamp: new Date() });
6
- }
7
- appendAssistant(text) {
8
- this.finalized.push({ id: `assistant-${Date.now()}-${Math.random()}`, role: 'assistant', text, timestamp: new Date() });
9
- }
10
- startTool(id, name, args) {
11
- this.live.set(id, { id, name, status: 'executing', arguments: args });
12
- }
13
- updateTool(id, patch) {
14
- const cur = this.live.get(id);
15
- if (!cur)
16
- return;
17
- this.live.set(id, { ...cur, ...patch });
18
- }
19
- finalizeTool(id, status, result, error) {
20
- const cur = this.live.get(id);
21
- const entry = {
22
- id: `tool-${id}-${Date.now()}`,
23
- role: 'tool',
24
- timestamp: new Date(),
25
- tool: {
26
- name: cur?.name || id,
27
- status,
28
- result,
29
- error,
30
- arguments: cur?.arguments,
31
- },
32
- };
33
- this.finalized.push(entry);
34
- this.live.delete(id);
35
- }
36
- }
37
- //# sourceMappingURL=VirtualChatBuffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualChatBuffer.js","sourceRoot":"","sources":["../../../src/ui/terminal/VirtualChatBuffer.ts"],"names":[],"mappings":"AA2BA,MAAM,OAAO,iBAAiB;IAC5B,SAAS,GAAgB,EAAE,CAAC;IAC5B,IAAI,GAA0B,IAAI,GAAG,EAAE,CAAC;IAExC,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,IAAY,EAAE,IAA0B;QAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,KAAwB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,MAA6B,EAAE,MAAe,EAAE,KAAc;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAc;YACvB,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC9B,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,IAAI,EAAE;gBACJ,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM;gBACN,MAAM;gBACN,KAAK;gBACL,SAAS,EAAE,GAAG,EAAE,SAAS;aAC1B;SACF,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;CACF"}