@qduc/term2 0.4.0 → 0.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 (529) hide show
  1. package/dist/agent.d.ts +5 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +61 -8
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +122 -10
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts +13 -0
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +71 -18
  10. package/dist/app.js.map +1 -1
  11. package/dist/app.startup-banner.test.js +48 -1
  12. package/dist/app.startup-banner.test.js.map +1 -1
  13. package/dist/cli.js +197 -28
  14. package/dist/cli.js.map +1 -1
  15. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  16. package/dist/components/ApprovalPrompt.js +11 -34
  17. package/dist/components/ApprovalPrompt.js.map +1 -1
  18. package/dist/components/Banner.d.ts.map +1 -1
  19. package/dist/components/Banner.js +2 -7
  20. package/dist/components/Banner.js.map +1 -1
  21. package/dist/components/BottomArea.d.ts +7 -1
  22. package/dist/components/BottomArea.d.ts.map +1 -1
  23. package/dist/components/BottomArea.js +2 -2
  24. package/dist/components/BottomArea.js.map +1 -1
  25. package/dist/components/ChatMessage.d.ts.map +1 -1
  26. package/dist/components/ChatMessage.js +2 -1
  27. package/dist/components/ChatMessage.js.map +1 -1
  28. package/dist/components/CommandMessage.d.ts.map +1 -1
  29. package/dist/components/CommandMessage.js +45 -48
  30. package/dist/components/CommandMessage.js.map +1 -1
  31. package/dist/components/CommandMessage.test.js +69 -0
  32. package/dist/components/CommandMessage.test.js.map +1 -1
  33. package/dist/components/DiffView.d.ts +7 -0
  34. package/dist/components/DiffView.d.ts.map +1 -0
  35. package/dist/components/DiffView.js +80 -0
  36. package/dist/components/DiffView.js.map +1 -0
  37. package/dist/components/DiffView.test.d.ts +2 -0
  38. package/dist/components/DiffView.test.d.ts.map +1 -0
  39. package/dist/components/DiffView.test.js +45 -0
  40. package/dist/components/DiffView.test.js.map +1 -0
  41. package/dist/components/Input/PopupManager.d.ts +7 -0
  42. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  43. package/dist/components/Input/PopupManager.js +4 -2
  44. package/dist/components/Input/PopupManager.js.map +1 -1
  45. package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
  46. package/dist/components/Input/determine-active-menu.js +4 -1
  47. package/dist/components/Input/determine-active-menu.js.map +1 -1
  48. package/dist/components/Input/popup-props.d.ts +3 -1
  49. package/dist/components/Input/popup-props.d.ts.map +1 -1
  50. package/dist/components/Input/popup-props.js +7 -1
  51. package/dist/components/Input/popup-props.js.map +1 -1
  52. package/dist/components/InputBox.d.ts +6 -0
  53. package/dist/components/InputBox.d.ts.map +1 -1
  54. package/dist/components/InputBox.js +74 -11
  55. package/dist/components/InputBox.js.map +1 -1
  56. package/dist/components/InputBox.menu-logic.test.js +16 -1
  57. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  58. package/dist/components/InputBox.test.js +1 -0
  59. package/dist/components/InputBox.test.js.map +1 -1
  60. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  61. package/dist/components/MarkdownRenderer.js +65 -7
  62. package/dist/components/MarkdownRenderer.js.map +1 -1
  63. package/dist/components/MessageList.d.ts.map +1 -1
  64. package/dist/components/MessageList.js +62 -9
  65. package/dist/components/MessageList.js.map +1 -1
  66. package/dist/components/MessageList.test.js +128 -0
  67. package/dist/components/MessageList.test.js.map +1 -1
  68. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  69. package/dist/components/SettingsValueSelectionMenu.js +4 -1
  70. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  71. package/dist/components/StatusBar.d.ts.map +1 -1
  72. package/dist/components/StatusBar.js +8 -6
  73. package/dist/components/StatusBar.js.map +1 -1
  74. package/dist/components/StatusBar.test.js +24 -0
  75. package/dist/components/StatusBar.test.js.map +1 -1
  76. package/dist/components/SubagentActivityMessage.d.ts +12 -0
  77. package/dist/components/SubagentActivityMessage.d.ts.map +1 -0
  78. package/dist/components/SubagentActivityMessage.js +30 -0
  79. package/dist/components/SubagentActivityMessage.js.map +1 -0
  80. package/dist/components/UndoSelectionMenu.d.ts +12 -0
  81. package/dist/components/UndoSelectionMenu.d.ts.map +1 -0
  82. package/dist/components/UndoSelectionMenu.js +46 -0
  83. package/dist/components/UndoSelectionMenu.js.map +1 -0
  84. package/dist/components/UndoSelectionMenu.test.d.ts +2 -0
  85. package/dist/components/UndoSelectionMenu.test.d.ts.map +1 -0
  86. package/dist/components/UndoSelectionMenu.test.js +40 -0
  87. package/dist/components/UndoSelectionMenu.test.js.map +1 -0
  88. package/dist/components/theme.d.ts +8 -0
  89. package/dist/components/theme.d.ts.map +1 -0
  90. package/dist/components/theme.js +20 -0
  91. package/dist/components/theme.js.map +1 -0
  92. package/dist/context/InputContext.d.ts +1 -1
  93. package/dist/context/InputContext.d.ts.map +1 -1
  94. package/dist/context/InputContext.js.map +1 -1
  95. package/dist/hooks/use-app-commands.d.ts +20 -2
  96. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  97. package/dist/hooks/use-app-commands.js +138 -52
  98. package/dist/hooks/use-app-commands.js.map +1 -1
  99. package/dist/hooks/use-app-commands.test.js +264 -1
  100. package/dist/hooks/use-app-commands.test.js.map +1 -1
  101. package/dist/hooks/use-conversation.d.ts +20 -2
  102. package/dist/hooks/use-conversation.d.ts.map +1 -1
  103. package/dist/hooks/use-conversation.js +114 -14
  104. package/dist/hooks/use-conversation.js.map +1 -1
  105. package/dist/hooks/use-conversation.resume.test.d.ts +2 -0
  106. package/dist/hooks/use-conversation.resume.test.d.ts.map +1 -0
  107. package/dist/hooks/use-conversation.resume.test.js +26 -0
  108. package/dist/hooks/use-conversation.resume.test.js.map +1 -0
  109. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  110. package/dist/hooks/use-escape-key.js +14 -7
  111. package/dist/hooks/use-escape-key.js.map +1 -1
  112. package/dist/hooks/use-escape-key.test.js +168 -4
  113. package/dist/hooks/use-escape-key.test.js.map +1 -1
  114. package/dist/hooks/use-input-history.d.ts +4 -3
  115. package/dist/hooks/use-input-history.d.ts.map +1 -1
  116. package/dist/hooks/use-input-history.js +10 -8
  117. package/dist/hooks/use-input-history.js.map +1 -1
  118. package/dist/hooks/use-input-history.test.d.ts +2 -0
  119. package/dist/hooks/use-input-history.test.d.ts.map +1 -0
  120. package/dist/hooks/use-input-history.test.js +43 -0
  121. package/dist/hooks/use-input-history.test.js.map +1 -0
  122. package/dist/hooks/use-mode-handlers.d.ts +10 -2
  123. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  124. package/dist/hooks/use-mode-handlers.js +21 -2
  125. package/dist/hooks/use-mode-handlers.js.map +1 -1
  126. package/dist/hooks/use-model-selection.d.ts +3 -0
  127. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  128. package/dist/hooks/use-model-selection.js +3 -0
  129. package/dist/hooks/use-model-selection.js.map +1 -1
  130. package/dist/hooks/use-path-completion.test.d.ts +2 -0
  131. package/dist/hooks/use-path-completion.test.d.ts.map +1 -0
  132. package/dist/hooks/use-path-completion.test.js +54 -0
  133. package/dist/hooks/use-path-completion.test.js.map +1 -0
  134. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  135. package/dist/hooks/use-runtime-settings.js +15 -6
  136. package/dist/hooks/use-runtime-settings.js.map +1 -1
  137. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  138. package/dist/hooks/use-settings-completion.js +0 -1
  139. package/dist/hooks/use-settings-completion.js.map +1 -1
  140. package/dist/hooks/use-settings-value-completion.d.ts +1 -0
  141. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  142. package/dist/hooks/use-settings-value-completion.js +25 -19
  143. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  144. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  145. package/dist/hooks/use-shell-mode.js +2 -1
  146. package/dist/hooks/use-shell-mode.js.map +1 -1
  147. package/dist/hooks/use-slash-commands.d.ts +1 -0
  148. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  149. package/dist/hooks/use-slash-commands.js +10 -1
  150. package/dist/hooks/use-slash-commands.js.map +1 -1
  151. package/dist/hooks/use-undo-selection.d.ts +19 -0
  152. package/dist/hooks/use-undo-selection.d.ts.map +1 -0
  153. package/dist/hooks/use-undo-selection.js +76 -0
  154. package/dist/hooks/use-undo-selection.js.map +1 -0
  155. package/dist/lib/editor-impl.test.js +63 -50
  156. package/dist/lib/editor-impl.test.js.map +1 -1
  157. package/dist/lib/openai-agent-client.d.ts +9 -0
  158. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  159. package/dist/lib/openai-agent-client.js +104 -134
  160. package/dist/lib/openai-agent-client.js.map +1 -1
  161. package/dist/lib/openai-agent-client.test.js +30 -0
  162. package/dist/lib/openai-agent-client.test.js.map +1 -1
  163. package/dist/non-interactive.d.ts +6 -1
  164. package/dist/non-interactive.d.ts.map +1 -1
  165. package/dist/non-interactive.js +70 -4
  166. package/dist/non-interactive.js.map +1 -1
  167. package/dist/non-interactive.test.js +176 -1
  168. package/dist/non-interactive.test.js.map +1 -1
  169. package/dist/prompts/orchestrator.md +46 -0
  170. package/dist/prompts/plan-mode-info.md +17 -0
  171. package/dist/prompts/prompt-selector.d.ts +2 -1
  172. package/dist/prompts/prompt-selector.d.ts.map +1 -1
  173. package/dist/prompts/prompt-selector.js +5 -1
  174. package/dist/prompts/prompt-selector.js.map +1 -1
  175. package/dist/prompts/prompt-selector.test.js +7 -0
  176. package/dist/prompts/prompt-selector.test.js.map +1 -1
  177. package/dist/prompts/prompt-selector.test.ts +18 -0
  178. package/dist/prompts/prompt-selector.ts +7 -1
  179. package/dist/prompts/reasoning-efficiency.d.ts +7 -0
  180. package/dist/prompts/reasoning-efficiency.d.ts.map +1 -0
  181. package/dist/prompts/reasoning-efficiency.js +19 -0
  182. package/dist/prompts/reasoning-efficiency.js.map +1 -0
  183. package/dist/prompts/reasoning-efficiency.ts +18 -0
  184. package/dist/prompts/search-via-shell.test.js +17 -17
  185. package/dist/prompts/search-via-shell.test.js.map +1 -1
  186. package/dist/prompts/search-via-shell.test.ts +17 -17
  187. package/dist/prompts/shell-auto-approval.d.ts +3 -0
  188. package/dist/prompts/shell-auto-approval.d.ts.map +1 -0
  189. package/dist/prompts/shell-auto-approval.js +23 -0
  190. package/dist/prompts/shell-auto-approval.js.map +1 -0
  191. package/dist/prompts/shell-auto-approval.ts +23 -0
  192. package/dist/prompts/subagent-delegation.d.ts +10 -0
  193. package/dist/prompts/subagent-delegation.d.ts.map +1 -0
  194. package/dist/prompts/subagent-delegation.js +33 -0
  195. package/dist/prompts/subagent-delegation.js.map +1 -0
  196. package/dist/prompts/subagent-delegation.test.d.ts +2 -0
  197. package/dist/prompts/subagent-delegation.test.d.ts.map +1 -0
  198. package/dist/prompts/subagent-delegation.test.js +17 -0
  199. package/dist/prompts/subagent-delegation.test.js.map +1 -0
  200. package/dist/prompts/subagent-delegation.test.ts +21 -0
  201. package/dist/prompts/subagent-delegation.ts +40 -0
  202. package/dist/prompts/subagents/explorer.md +41 -0
  203. package/dist/prompts/subagents/mentor.md +15 -0
  204. package/dist/prompts/subagents/researcher.md +39 -0
  205. package/dist/prompts/subagents/worker.md +40 -0
  206. package/dist/providers/ai-sdk-anthropic.provider.d.ts +1 -0
  207. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  208. package/dist/providers/ai-sdk-anthropic.provider.js +67 -1
  209. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  210. package/dist/providers/ai-sdk-anthropic.provider.test.d.ts +2 -0
  211. package/dist/providers/ai-sdk-anthropic.provider.test.d.ts.map +1 -0
  212. package/dist/providers/ai-sdk-anthropic.provider.test.js +87 -0
  213. package/dist/providers/ai-sdk-anthropic.provider.test.js.map +1 -0
  214. package/dist/providers/common/openai-compatible-messages.d.ts +1 -1
  215. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  216. package/dist/providers/common/openai-compatible-messages.js +47 -16
  217. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  218. package/dist/providers/common/openai-compatible-messages.test.js +77 -14
  219. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
  220. package/dist/providers/custom-provider-adapter.test.js +39 -1
  221. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  222. package/dist/providers/openai-compatible.provider.d.ts +11 -1
  223. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  224. package/dist/providers/openai-compatible.provider.js +124 -10
  225. package/dist/providers/openai-compatible.provider.js.map +1 -1
  226. package/dist/providers/openai-compatible.provider.test.js +62 -1
  227. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  228. package/dist/providers/openrouter.provider.js +1 -1
  229. package/dist/providers/openrouter.provider.js.map +1 -1
  230. package/dist/scripts/eval-auto-approval/dataset.d.ts +1 -1
  231. package/dist/services/agent-stream.d.ts +1 -0
  232. package/dist/services/agent-stream.d.ts.map +1 -1
  233. package/dist/services/approval-flow-coordinator.d.ts +2 -0
  234. package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
  235. package/dist/services/approval-flow-coordinator.js +45 -18
  236. package/dist/services/approval-flow-coordinator.js.map +1 -1
  237. package/dist/services/approval-flow-coordinator.test.js +87 -0
  238. package/dist/services/approval-flow-coordinator.test.js.map +1 -1
  239. package/dist/services/approval-rejection-interceptor.test.js +5 -0
  240. package/dist/services/approval-rejection-interceptor.test.js.map +1 -1
  241. package/dist/services/approval-state.d.ts +4 -0
  242. package/dist/services/approval-state.d.ts.map +1 -1
  243. package/dist/services/approval-state.js +2 -0
  244. package/dist/services/approval-state.js.map +1 -1
  245. package/dist/services/approval-state.test.js +21 -0
  246. package/dist/services/approval-state.test.js.map +1 -1
  247. package/dist/services/conversation-events.d.ts +25 -1
  248. package/dist/services/conversation-events.d.ts.map +1 -1
  249. package/dist/services/conversation-persistence.d.ts +52 -0
  250. package/dist/services/conversation-persistence.d.ts.map +1 -0
  251. package/dist/services/conversation-persistence.js +163 -0
  252. package/dist/services/conversation-persistence.js.map +1 -0
  253. package/dist/services/conversation-persistence.test.d.ts +2 -0
  254. package/dist/services/conversation-persistence.test.d.ts.map +1 -0
  255. package/dist/services/conversation-persistence.test.js +418 -0
  256. package/dist/services/conversation-persistence.test.js.map +1 -0
  257. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  258. package/dist/services/conversation-result-builder.js +13 -0
  259. package/dist/services/conversation-result-builder.js.map +1 -1
  260. package/dist/services/conversation-service.d.ts +22 -0
  261. package/dist/services/conversation-service.d.ts.map +1 -1
  262. package/dist/services/conversation-service.js +18 -0
  263. package/dist/services/conversation-service.js.map +1 -1
  264. package/dist/services/conversation-session.auto-approval.test.js +57 -9
  265. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  266. package/dist/services/conversation-session.d.ts +25 -0
  267. package/dist/services/conversation-session.d.ts.map +1 -1
  268. package/dist/services/conversation-session.js +208 -40
  269. package/dist/services/conversation-session.js.map +1 -1
  270. package/dist/services/conversation-store.d.ts +42 -0
  271. package/dist/services/conversation-store.d.ts.map +1 -1
  272. package/dist/services/conversation-store.js +182 -1
  273. package/dist/services/conversation-store.js.map +1 -1
  274. package/dist/services/conversation-store.test.js +310 -1
  275. package/dist/services/conversation-store.test.js.map +1 -1
  276. package/dist/services/history-service.d.ts +6 -1
  277. package/dist/services/history-service.d.ts.map +1 -1
  278. package/dist/services/history-service.js +46 -6
  279. package/dist/services/history-service.js.map +1 -1
  280. package/dist/services/history-service.test.d.ts +2 -0
  281. package/dist/services/history-service.test.d.ts.map +1 -0
  282. package/dist/services/history-service.test.js +77 -0
  283. package/dist/services/history-service.test.js.map +1 -0
  284. package/dist/services/input-surge-guard.d.ts +37 -0
  285. package/dist/services/input-surge-guard.d.ts.map +1 -0
  286. package/dist/services/input-surge-guard.js +190 -0
  287. package/dist/services/input-surge-guard.js.map +1 -0
  288. package/dist/services/input-surge-guard.test.d.ts +2 -0
  289. package/dist/services/input-surge-guard.test.d.ts.map +1 -0
  290. package/dist/services/input-surge-guard.test.js +126 -0
  291. package/dist/services/input-surge-guard.test.js.map +1 -0
  292. package/dist/services/interruption-info.js +1 -1
  293. package/dist/services/interruption-info.js.map +1 -1
  294. package/dist/services/interruption-info.test.js +12 -0
  295. package/dist/services/interruption-info.test.js.map +1 -1
  296. package/dist/services/mode-notices.d.ts +11 -0
  297. package/dist/services/mode-notices.d.ts.map +1 -0
  298. package/dist/services/mode-notices.js +16 -0
  299. package/dist/services/mode-notices.js.map +1 -0
  300. package/dist/services/plan-mode-interceptor.d.ts +10 -0
  301. package/dist/services/plan-mode-interceptor.d.ts.map +1 -0
  302. package/dist/services/plan-mode-interceptor.js +38 -0
  303. package/dist/services/plan-mode-interceptor.js.map +1 -0
  304. package/dist/services/plan-mode-interceptor.test.d.ts +2 -0
  305. package/dist/services/plan-mode-interceptor.test.d.ts.map +1 -0
  306. package/dist/services/plan-mode-interceptor.test.js +55 -0
  307. package/dist/services/plan-mode-interceptor.test.js.map +1 -0
  308. package/dist/services/rtk-service.d.ts.map +1 -1
  309. package/dist/services/rtk-service.js +104 -9
  310. package/dist/services/rtk-service.js.map +1 -1
  311. package/dist/services/rtk-service.test.js +55 -20
  312. package/dist/services/rtk-service.test.js.map +1 -1
  313. package/dist/services/service-interfaces.d.ts +4 -1
  314. package/dist/services/service-interfaces.d.ts.map +1 -1
  315. package/dist/services/settings-persistence.js +1 -1
  316. package/dist/services/settings-schema.d.ts +107 -4
  317. package/dist/services/settings-schema.d.ts.map +1 -1
  318. package/dist/services/settings-schema.js +103 -5
  319. package/dist/services/settings-schema.js.map +1 -1
  320. package/dist/services/settings-schema.test.js +35 -1
  321. package/dist/services/settings-schema.test.js.map +1 -1
  322. package/dist/services/settings-service.d.ts +3 -1
  323. package/dist/services/settings-service.d.ts.map +1 -1
  324. package/dist/services/settings-service.js +40 -4
  325. package/dist/services/settings-service.js.map +1 -1
  326. package/dist/services/settings-sources.d.ts.map +1 -1
  327. package/dist/services/settings-sources.js +2 -1
  328. package/dist/services/settings-sources.js.map +1 -1
  329. package/dist/services/settings-sources.test.js +4 -0
  330. package/dist/services/settings-sources.test.js.map +1 -1
  331. package/dist/services/shell-auto-approval-evaluator.d.ts +2 -1
  332. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  333. package/dist/services/shell-auto-approval-evaluator.js +12 -29
  334. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  335. package/dist/services/shell-auto-approval-evaluator.test.js +2 -4
  336. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  337. package/dist/services/shell-auto-approval-resolver.test.js +1 -1
  338. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -1
  339. package/dist/services/stream-event-processor.d.ts.map +1 -1
  340. package/dist/services/stream-event-processor.js +24 -8
  341. package/dist/services/stream-event-processor.js.map +1 -1
  342. package/dist/services/stream-event-processor.test.js +27 -0
  343. package/dist/services/stream-event-processor.test.js.map +1 -1
  344. package/dist/services/subagents/subagent-manager.d.ts +16 -0
  345. package/dist/services/subagents/subagent-manager.d.ts.map +1 -0
  346. package/dist/services/subagents/subagent-manager.js +670 -0
  347. package/dist/services/subagents/subagent-manager.js.map +1 -0
  348. package/dist/services/subagents/subagent-manager.test.d.ts +2 -0
  349. package/dist/services/subagents/subagent-manager.test.d.ts.map +1 -0
  350. package/dist/services/subagents/subagent-manager.test.js +880 -0
  351. package/dist/services/subagents/subagent-manager.test.js.map +1 -0
  352. package/dist/services/subagents/subagent-session.d.ts +26 -0
  353. package/dist/services/subagents/subagent-session.d.ts.map +1 -0
  354. package/dist/services/subagents/subagent-session.js +86 -0
  355. package/dist/services/subagents/subagent-session.js.map +1 -0
  356. package/dist/services/subagents/subagent-session.test.d.ts +2 -0
  357. package/dist/services/subagents/subagent-session.test.d.ts.map +1 -0
  358. package/dist/services/subagents/subagent-session.test.js +118 -0
  359. package/dist/services/subagents/subagent-session.test.js.map +1 -0
  360. package/dist/services/subagents/types.d.ts +41 -0
  361. package/dist/services/subagents/types.d.ts.map +1 -0
  362. package/dist/services/subagents/types.js +2 -0
  363. package/dist/services/subagents/types.js.map +1 -0
  364. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  365. package/dist/services/terminal-result-collector.js +31 -5
  366. package/dist/services/terminal-result-collector.js.map +1 -1
  367. package/dist/services/terminal-result-collector.test.js +81 -0
  368. package/dist/services/terminal-result-collector.test.js.map +1 -1
  369. package/dist/slash-commands.d.ts +1 -0
  370. package/dist/slash-commands.d.ts.map +1 -1
  371. package/dist/slash-commands.js +8 -1
  372. package/dist/slash-commands.js.map +1 -1
  373. package/dist/slash-commands.test.d.ts +2 -0
  374. package/dist/slash-commands.test.d.ts.map +1 -0
  375. package/dist/slash-commands.test.js +22 -0
  376. package/dist/slash-commands.test.js.map +1 -0
  377. package/dist/tools/apply-patch.d.ts +2 -2
  378. package/dist/tools/apply-patch.d.ts.map +1 -1
  379. package/dist/tools/apply-patch.js +2 -6
  380. package/dist/tools/apply-patch.js.map +1 -1
  381. package/dist/tools/apply-patch.test.js +2 -13
  382. package/dist/tools/apply-patch.test.js.map +1 -1
  383. package/dist/tools/ask-mentor.d.ts +2 -2
  384. package/dist/tools/ask-mentor.d.ts.map +1 -1
  385. package/dist/tools/ask-mentor.js.map +1 -1
  386. package/dist/tools/code-context.d.ts +3 -3
  387. package/dist/tools/code-context.d.ts.map +1 -1
  388. package/dist/tools/code-context.js.map +1 -1
  389. package/dist/tools/code-context.test.js +2 -2
  390. package/dist/tools/code-context.test.js.map +1 -1
  391. package/dist/tools/command-message-formatters.d.ts +5 -0
  392. package/dist/tools/command-message-formatters.d.ts.map +1 -0
  393. package/dist/tools/command-message-formatters.js +13 -0
  394. package/dist/tools/command-message-formatters.js.map +1 -0
  395. package/dist/tools/command-message-formatters.test.d.ts +2 -0
  396. package/dist/tools/command-message-formatters.test.d.ts.map +1 -0
  397. package/dist/tools/command-message-formatters.test.js +23 -0
  398. package/dist/tools/command-message-formatters.test.js.map +1 -0
  399. package/dist/tools/create-file.d.ts +2 -2
  400. package/dist/tools/create-file.d.ts.map +1 -1
  401. package/dist/tools/create-file.js +14 -9
  402. package/dist/tools/create-file.js.map +1 -1
  403. package/dist/tools/create-file.test.js +13 -13
  404. package/dist/tools/create-file.test.js.map +1 -1
  405. package/dist/tools/edit-healing.d.ts +3 -3
  406. package/dist/tools/edit-healing.d.ts.map +1 -1
  407. package/dist/tools/edit-healing.js.map +1 -1
  408. package/dist/tools/edit-healing.test.js +0 -1
  409. package/dist/tools/edit-healing.test.js.map +1 -1
  410. package/dist/tools/file-locks.d.ts +1 -0
  411. package/dist/tools/file-locks.d.ts.map +1 -1
  412. package/dist/tools/file-locks.js +16 -0
  413. package/dist/tools/file-locks.js.map +1 -1
  414. package/dist/tools/find-files.d.ts +2 -2
  415. package/dist/tools/find-files.d.ts.map +1 -1
  416. package/dist/tools/find-files.js.map +1 -1
  417. package/dist/tools/find-files.test.js +1 -1
  418. package/dist/tools/find-files.test.js.map +1 -1
  419. package/dist/tools/grep.d.ts +3 -2
  420. package/dist/tools/grep.d.ts.map +1 -1
  421. package/dist/tools/grep.js +65 -4
  422. package/dist/tools/grep.js.map +1 -1
  423. package/dist/tools/grep.test.d.ts +2 -0
  424. package/dist/tools/grep.test.d.ts.map +1 -0
  425. package/dist/tools/grep.test.js +39 -0
  426. package/dist/tools/grep.test.js.map +1 -0
  427. package/dist/tools/read-file.d.ts +3 -2
  428. package/dist/tools/read-file.d.ts.map +1 -1
  429. package/dist/tools/read-file.js +7 -5
  430. package/dist/tools/read-file.js.map +1 -1
  431. package/dist/tools/read-file.test.js +2 -2
  432. package/dist/tools/read-file.test.js.map +1 -1
  433. package/dist/tools/run-subagent.d.ts +14 -0
  434. package/dist/tools/run-subagent.d.ts.map +1 -0
  435. package/dist/tools/run-subagent.js +200 -0
  436. package/dist/tools/run-subagent.js.map +1 -0
  437. package/dist/tools/run-subagent.test.d.ts +2 -0
  438. package/dist/tools/run-subagent.test.d.ts.map +1 -0
  439. package/dist/tools/run-subagent.test.js +206 -0
  440. package/dist/tools/run-subagent.test.js.map +1 -0
  441. package/dist/tools/search-replace.d.ts +15 -7
  442. package/dist/tools/search-replace.d.ts.map +1 -1
  443. package/dist/tools/search-replace.js +93 -119
  444. package/dist/tools/search-replace.js.map +1 -1
  445. package/dist/tools/search-replace.test.js +330 -217
  446. package/dist/tools/search-replace.test.js.map +1 -1
  447. package/dist/tools/search.d.ts.map +1 -1
  448. package/dist/tools/search.js.map +1 -1
  449. package/dist/tools/shell.d.ts +3 -2
  450. package/dist/tools/shell.d.ts.map +1 -1
  451. package/dist/tools/shell.js +14 -6
  452. package/dist/tools/shell.js.map +1 -1
  453. package/dist/tools/shell.test.js +189 -11
  454. package/dist/tools/shell.test.js.map +1 -1
  455. package/dist/tools/tool-parameter-schema.test.js +13 -4
  456. package/dist/tools/tool-parameter-schema.test.js.map +1 -1
  457. package/dist/tools/types.d.ts +3 -2
  458. package/dist/tools/types.d.ts.map +1 -1
  459. package/dist/tools/utils.d.ts.map +1 -1
  460. package/dist/tools/utils.js +11 -1
  461. package/dist/tools/utils.js.map +1 -1
  462. package/dist/tools/utils.test.js +13 -0
  463. package/dist/tools/utils.test.js.map +1 -1
  464. package/dist/tools/web-fetch.d.ts +2 -2
  465. package/dist/tools/web-fetch.d.ts.map +1 -1
  466. package/dist/tools/web-fetch.js +29 -4
  467. package/dist/tools/web-fetch.js.map +1 -1
  468. package/dist/tools/web-fetch.test.js +64 -0
  469. package/dist/tools/web-fetch.test.js.map +1 -1
  470. package/dist/tools/web-search.d.ts +2 -2
  471. package/dist/tools/web-search.d.ts.map +1 -1
  472. package/dist/tools/web-search.js.map +1 -1
  473. package/dist/utils/clipboard.d.ts +2 -2
  474. package/dist/utils/clipboard.d.ts.map +1 -1
  475. package/dist/utils/clipboard.js +58 -22
  476. package/dist/utils/clipboard.js.map +1 -1
  477. package/dist/utils/clipboard.test.js +25 -6
  478. package/dist/utils/clipboard.test.js.map +1 -1
  479. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  480. package/dist/utils/command-safety/handlers/sed-handler.js +10 -7
  481. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  482. package/dist/utils/command-safety/index.d.ts.map +1 -1
  483. package/dist/utils/command-safety/index.js +153 -117
  484. package/dist/utils/command-safety/index.js.map +1 -1
  485. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  486. package/dist/utils/command-safety/path-analysis.js +6 -2
  487. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  488. package/dist/utils/command-safety/utils.js +2 -2
  489. package/dist/utils/command-safety/utils.js.map +1 -1
  490. package/dist/utils/command-safety.path.test.js +15 -1
  491. package/dist/utils/command-safety.path.test.js.map +1 -1
  492. package/dist/utils/conversation-event-handler.d.ts +15 -0
  493. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  494. package/dist/utils/conversation-event-handler.js +108 -8
  495. package/dist/utils/conversation-event-handler.js.map +1 -1
  496. package/dist/utils/conversation-event-handler.test.js +207 -2
  497. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  498. package/dist/utils/conversation-utils.d.ts +1 -0
  499. package/dist/utils/conversation-utils.d.ts.map +1 -1
  500. package/dist/utils/conversation-utils.js +1 -0
  501. package/dist/utils/conversation-utils.js.map +1 -1
  502. package/dist/utils/execute-shell.d.ts +2 -0
  503. package/dist/utils/execute-shell.d.ts.map +1 -1
  504. package/dist/utils/execute-shell.js +25 -1
  505. package/dist/utils/execute-shell.js.map +1 -1
  506. package/dist/utils/execute-shell.test.js +22 -0
  507. package/dist/utils/execute-shell.test.js.map +1 -1
  508. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  509. package/dist/utils/extract-command-messages.js +2 -21
  510. package/dist/utils/extract-command-messages.js.map +1 -1
  511. package/dist/utils/model-settings.d.ts.map +1 -1
  512. package/dist/utils/model-settings.js +18 -0
  513. package/dist/utils/model-settings.js.map +1 -1
  514. package/dist/utils/output-trim.d.ts.map +1 -1
  515. package/dist/utils/output-trim.js +14 -6
  516. package/dist/utils/output-trim.js.map +1 -1
  517. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  518. package/dist/utils/streaming-session-factory.js +16 -1
  519. package/dist/utils/streaming-session-factory.js.map +1 -1
  520. package/dist/utils/streaming-session-factory.test.js +42 -0
  521. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  522. package/dist/utils/token-usage.d.ts +13 -0
  523. package/dist/utils/token-usage.d.ts.map +1 -1
  524. package/dist/utils/token-usage.js +92 -1
  525. package/dist/utils/token-usage.js.map +1 -1
  526. package/dist/utils/token-usage.test.js +93 -1
  527. package/dist/utils/token-usage.test.js.map +1 -1
  528. package/package.json +4 -4
  529. package/readme.md +271 -44
@@ -4,7 +4,6 @@ import { useSetting } from '../hooks/use-setting.js';
4
4
  import { getProvider } from '../providers/index.js';
5
5
  const Banner = ({ settingsService, isShellMode = false }) => {
6
6
  const mentorMode = useSetting(settingsService, 'app.mentorMode') ?? false;
7
- const editMode = useSetting(settingsService, 'app.editMode') ?? false;
8
7
  const liteMode = useSetting(settingsService, 'app.liteMode') ?? false;
9
8
  const model = useSetting(settingsService, 'agent.model');
10
9
  const mentorModel = useSetting(settingsService, 'agent.mentorModel');
@@ -34,17 +33,13 @@ const Banner = ({ settingsService, isShellMode = false }) => {
34
33
  ' ',
35
34
  "LITE",
36
35
  ' '))),
37
- editMode && (React.createElement(Text, { backgroundColor: "#1d4ed8", color: "white", bold: true },
38
- ' ',
39
- "EDIT",
40
- ' ')),
41
36
  mentorMode && (React.createElement(Text, { backgroundColor: "#7c3aed", color: "white", bold: true },
42
37
  ' ',
43
38
  "MENTOR",
44
39
  ' ')),
45
- !editMode && !mentorMode && !liteMode && (React.createElement(Text, { backgroundColor: "#0f766e", color: "white", bold: true },
40
+ !mentorMode && !liteMode && (React.createElement(Text, { backgroundColor: "#0f766e", color: "white", bold: true },
46
41
  ' ',
47
- "DEFAULT",
42
+ "STANDARD",
48
43
  ' ')))),
49
44
  React.createElement(Box, { justifyContent: "space-between", marginTop: 1, flexWrap: "wrap" },
50
45
  React.createElement(Box, { flexDirection: "column", marginRight: 3 },
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../source/components/Banner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../source/components/Banner.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
1
+ import React, { FC } from 'react';
2
2
  import type { SlashCommand } from '../slash-commands.js';
3
3
  import type { SettingsService } from '../services/settings-service.js';
4
4
  import type { LoggingService } from '../services/logging-service.js';
@@ -7,6 +7,7 @@ import type { SSHInfo } from '../hooks/use-shell-mode.js';
7
7
  import type { NormalizedUsage } from '../utils/token-usage.js';
8
8
  import type { PendingApproval } from '../contracts/conversation.js';
9
9
  import type { UserTurn } from '../types/user-turn.js';
10
+ import type { UndoItem } from '../hooks/use-undo-selection.js';
10
11
  export type BottomAreaProps = {
11
12
  pendingApproval: PendingApproval | null;
12
13
  waitingForApproval: boolean;
@@ -23,6 +24,11 @@ export type BottomAreaProps = {
23
24
  onApprove: () => void;
24
25
  onReject: () => void;
25
26
  sshInfo?: SSHInfo;
27
+ undoMenuRef?: React.MutableRefObject<{
28
+ open: (items: UndoItem[]) => void;
29
+ } | null>;
30
+ onUndoSelect?: (item: UndoItem) => void;
31
+ onSettingChange?: (key: string, value: any) => void;
26
32
  };
27
33
  declare const BottomArea: FC<BottomAreaProps>;
28
34
  export default BottomArea;
@@ -1 +1 @@
1
- {"version":3,"file":"BottomArea.d.ts","sourceRoot":"","sources":["../../source/components/BottomArea.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAKvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yBAAyB,EAAE,OAAO,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA2DnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"BottomArea.d.ts","sourceRoot":"","sources":["../../source/components/BottomArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAKvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yBAAyB,EAAE,OAAO,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAiEnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -3,7 +3,7 @@ import { Box, Text } from 'ink';
3
3
  import ApprovalPrompt from './ApprovalPrompt.js';
4
4
  import InputBox from './InputBox.js';
5
5
  import StatusBar from './StatusBar.js';
6
- const BottomArea = ({ pendingApproval, waitingForApproval, waitingForRejectionReason, isProcessing, isShellMode = false, onSubmit, slashCommands, hasConversationHistory, settingsService, loggingService, historyService, onApprove, onReject, sshInfo, lastUsage, }) => {
6
+ const BottomArea = ({ pendingApproval, waitingForApproval, waitingForRejectionReason, isProcessing, isShellMode = false, onSubmit, slashCommands, hasConversationHistory, settingsService, loggingService, historyService, onApprove, onReject, sshInfo, lastUsage, undoMenuRef, onUndoSelect, onSettingChange, }) => {
7
7
  const [dotCount, setDotCount] = useState(1);
8
8
  useEffect(() => {
9
9
  if (!isProcessing) {
@@ -20,7 +20,7 @@ const BottomArea = ({ pendingApproval, waitingForApproval, waitingForRejectionRe
20
20
  return (React.createElement(Box, { flexDirection: "column", width: "100%" },
21
21
  React.createElement(Box, { flexDirection: "column", marginTop: 1 }, showApprovalPrompt ? (React.createElement(ApprovalPrompt, { approval: pendingApproval, onApprove: onApprove, onReject: onReject })) : isProcessing ? (React.createElement(Text, { color: "#64748b" },
22
22
  "processing",
23
- '.'.repeat(dotCount))) : showInput ? (React.createElement(InputBox, { onSubmit: onSubmit, slashCommands: slashCommands, hasConversationHistory: hasConversationHistory, waitingForRejectionReason: waitingForRejectionReason, isShellMode: isShellMode, settingsService: settingsService, loggingService: loggingService, historyService: historyService })) : null),
23
+ '.'.repeat(dotCount))) : showInput ? (React.createElement(InputBox, { onSubmit: onSubmit, slashCommands: slashCommands, hasConversationHistory: hasConversationHistory, waitingForRejectionReason: waitingForRejectionReason, isShellMode: isShellMode, settingsService: settingsService, loggingService: loggingService, historyService: historyService, undoMenuRef: undoMenuRef, onUndoSelect: onUndoSelect, onSettingChange: onSettingChange })) : null),
24
24
  React.createElement(StatusBar, { settingsService: settingsService, isShellMode: isShellMode, sshInfo: sshInfo, lastUsage: lastUsage })));
25
25
  };
26
26
  export default BottomArea;
@@ -1 +1 @@
1
- {"version":3,"file":"BottomArea.js","sourceRoot":"","sources":["../../source/components/BottomArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AA4BvC,MAAM,UAAU,GAAwB,CAAC,EACvC,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,WAAW,GAAG,KAAK,EACnB,QAAQ,EACR,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,kBAAkB,GAAG,kBAAkB,IAAI,CAAC,YAAY,IAAI,CAAC,yBAAyB,IAAI,eAAe,CAAC;IAChH,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,IAAI,yBAAyB,CAAC;IAEtF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM;QACtC,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,IACrC,kBAAkB,CAAC,CAAC,CAAC,CACpB,oBAAC,cAAc,IAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACxF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACjB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;YAAY,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAQ,CAC9D,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,oBAAC,QAAQ,IACP,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,yBAAyB,EACpD,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC,CAAC,CAAC,IAAI,CACJ;QAEN,oBAAC,SAAS,IAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7G,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"BottomArea.js","sourceRoot":"","sources":["../../source/components/BottomArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAgCvC,MAAM,UAAU,GAAwB,CAAC,EACvC,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,EACZ,WAAW,GAAG,KAAK,EACnB,QAAQ,EACR,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,kBAAkB,GAAG,kBAAkB,IAAI,CAAC,YAAY,IAAI,CAAC,yBAAyB,IAAI,eAAe,CAAC;IAChH,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,IAAI,yBAAyB,CAAC;IAEtF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM;QACtC,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,IACrC,kBAAkB,CAAC,CAAC,CAAC,CACpB,oBAAC,cAAc,IAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACxF,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACjB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;YAAY,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAQ,CAC9D,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,oBAAC,QAAQ,IACP,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,yBAAyB,EACpD,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAChC,CACH,CAAC,CAAC,CAAC,IAAI,CACJ;QAEN,oBAAC,SAAS,IAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7G,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../source/components/ChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAIlC,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;;AAoBF,wBAAuC"}
1
+ {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../source/components/ChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAKlC,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;;AAoBF,wBAAuC"}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
3
  import MarkdownRenderer from './MarkdownRenderer.js';
4
+ import { COLOR_REASONING } from './theme.js';
4
5
  const ChatMessage = ({ msg, maxWidth }) => {
5
6
  return (React.createElement(Box, { flexDirection: "column" }, msg.sender === 'user' ? (React.createElement(Text, { color: "#22d3ee" },
6
7
  "\u276F ",
7
- msg.text)) : msg.sender === 'system' ? (React.createElement(Text, { color: "#64748b" }, msg.text)) : msg.sender === 'reasoning' ? (React.createElement(MarkdownRenderer, { defaultColor: "#64748b", maxWidth: maxWidth }, msg.text)) : (React.createElement(MarkdownRenderer, { maxWidth: maxWidth }, msg.text))));
8
+ msg.text)) : msg.sender === 'system' ? (React.createElement(Text, { color: COLOR_REASONING }, msg.text)) : msg.sender === 'reasoning' ? (React.createElement(MarkdownRenderer, { defaultColor: COLOR_REASONING, maxWidth: maxWidth }, msg.text)) : (React.createElement(MarkdownRenderer, { maxWidth: maxWidth }, msg.text))));
8
9
  };
9
10
  export default React.memo(ChatMessage);
10
11
  //# sourceMappingURL=ChatMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessage.js","sourceRoot":"","sources":["../../source/components/ChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAOrD,MAAM,WAAW,GAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;QAAI,GAAG,CAAC,IAAI,CAAQ,CAC1C,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC5B,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,IAAI,CAAQ,CACxC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAC/B,oBAAC,gBAAgB,IAAC,YAAY,EAAC,SAAS,EAAC,QAAQ,EAAE,QAAQ,IACxD,GAAG,CAAC,IAAI,CACQ,CACpB,CAAC,CAAC,CAAC,CACF,oBAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,IAAG,GAAG,CAAC,IAAI,CAAoB,CACpE,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"ChatMessage.js","sourceRoot":"","sources":["../../source/components/ChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO7C,MAAM,WAAW,GAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;QAAI,GAAG,CAAC,IAAI,CAAQ,CAC1C,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC5B,oBAAC,IAAI,IAAC,KAAK,EAAE,eAAe,IAAG,GAAG,CAAC,IAAI,CAAQ,CAChD,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAC/B,oBAAC,gBAAgB,IAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,IAChE,GAAG,CAAC,IAAI,CACQ,CACpB,CAAC,CAAC,CAAC,CACF,oBAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,IAAG,GAAG,CAAC,IAAI,CAAoB,CACpE,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandMessage.d.ts","sourceRoot":"","sources":["../../source/components/CommandMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAKhE,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;;AAwRF,wBAA0C"}
1
+ {"version":3,"file":"CommandMessage.d.ts","sourceRoot":"","sources":["../../source/components/CommandMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAOhE,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;;AAsQF,wBAA0C"}
@@ -2,36 +2,8 @@ import React, { useState, useEffect, useMemo } from 'react';
2
2
  import { Box, Text } from 'ink';
3
3
  import { generateDiff } from '../utils/diff.js';
4
4
  import { TOOL_NAME_APPLY_PATCH, TOOL_NAME_CREATE_FILE, TOOL_NAME_SEARCH_REPLACE } from '../tools/tool-names.js';
5
- const DiffView = ({ diff }) => {
6
- try {
7
- const lines = diff.split('\n');
8
- const maxLines = 30;
9
- const truncated = lines.length > maxLines;
10
- const displayLines = truncated ? lines.slice(0, maxLines) : lines;
11
- return (React.createElement(Box, { flexDirection: "column", marginLeft: 2 },
12
- displayLines.map((line, i) => {
13
- let color;
14
- if (line.startsWith('+')) {
15
- color = 'green';
16
- }
17
- else if (line.startsWith('-')) {
18
- color = 'red';
19
- }
20
- else if (line.startsWith('@@')) {
21
- color = 'cyan';
22
- }
23
- return (React.createElement(Text, { key: i, color: color || '#64748b' }, line));
24
- }),
25
- truncated && React.createElement(Text, { color: "#64748b" },
26
- "... (",
27
- lines.length - maxLines,
28
- " more lines)")));
29
- }
30
- catch (error) {
31
- return (React.createElement(Box, { flexDirection: "row", marginLeft: 2 },
32
- React.createElement(Text, { color: "red" }, "[Failed to render diff preview]")));
33
- }
34
- };
5
+ import { COLOR_TOOL_OUTPUT } from './theme.js';
6
+ import DiffView from './DiffView.js';
35
7
  const formatToolArgs = (toolName, args) => {
36
8
  if (!args || !toolName) {
37
9
  return '';
@@ -83,12 +55,24 @@ const formatToolArgs = (toolName, args) => {
83
55
  return `${type} ${path}`;
84
56
  }
85
57
  case TOOL_NAME_SEARCH_REPLACE: {
86
- const searchContent = normalizedArgs.search_content || '';
87
- const replaceContent = normalizedArgs.replace_content || '';
88
58
  const path = normalizedArgs.path || 'unknown';
89
- const search = searchContent.length > 30 ? `${searchContent.slice(0, 30)}...` : searchContent;
90
- const replace = replaceContent.length > 30 ? `${replaceContent.slice(0, 30)}...` : replaceContent;
91
- return `"${search}" "${replace}" "${path}"`;
59
+ if (normalizedArgs.replacements) {
60
+ const replacements = normalizedArgs.replacements || [];
61
+ const firstRep = replacements[0] || {};
62
+ const searchContent = firstRep.search_content || '';
63
+ const replaceContent = firstRep.replace_content || '';
64
+ const search = searchContent.length > 30 ? `${searchContent.slice(0, 30)}...` : searchContent;
65
+ const replace = replaceContent.length > 30 ? `${replaceContent.slice(0, 30)}...` : replaceContent;
66
+ const countText = replacements.length > 1 ? ` (+ ${replacements.length - 1} more)` : '';
67
+ return `"${search}" → "${replace}" "${path}"${countText}`;
68
+ }
69
+ else {
70
+ const searchContent = normalizedArgs.search_content || '';
71
+ const replaceContent = normalizedArgs.replace_content || '';
72
+ const search = searchContent.length > 30 ? `${searchContent.slice(0, 30)}...` : searchContent;
73
+ const replace = replaceContent.length > 30 ? `${replaceContent.slice(0, 30)}...` : replaceContent;
74
+ return `"${search}" → "${replace}" "${path}"`;
75
+ }
92
76
  }
93
77
  case TOOL_NAME_CREATE_FILE: {
94
78
  const filePath = normalizedArgs.path || 'unknown';
@@ -122,9 +106,16 @@ const formatToolArgs = (toolName, args) => {
122
106
  const CommandMessage = ({ command, output, status, success, failureReason, toolName, toolArgs, hadApproval, }) => {
123
107
  const isRunning = status === 'pending' || status === 'running';
124
108
  const [isVisible, setIsVisible] = useState(!isRunning);
125
- const diff = useMemo(() => toolName === TOOL_NAME_SEARCH_REPLACE && toolArgs
126
- ? generateDiff(toolArgs.search_content, toolArgs.replace_content)
127
- : '', [toolName, toolArgs?.search_content, toolArgs?.replace_content]);
109
+ const diff = useMemo(() => {
110
+ if (toolName !== TOOL_NAME_SEARCH_REPLACE || !toolArgs)
111
+ return '';
112
+ if (toolArgs.replacements) {
113
+ return (toolArgs.replacements || [])
114
+ .map((rep) => generateDiff(rep.search_content, rep.replace_content))
115
+ .join('\n');
116
+ }
117
+ return generateDiff(toolArgs.search_content, toolArgs.replace_content);
118
+ }, [toolName, toolArgs?.search_content, toolArgs?.replace_content, toolArgs?.replacements]);
128
119
  const createFileDiffLines = useMemo(() => toolName === TOOL_NAME_CREATE_FILE && toolArgs
129
120
  ? (toolArgs.content ?? '')
130
121
  .split('\n')
@@ -147,15 +138,22 @@ const CommandMessage = ({ command, output, status, success, failureReason, toolN
147
138
  const outputText = output?.trim() ? output : isRunning ? '(running...)' : '(no output)';
148
139
  const displayed = outputText && outputText !== '(no output)'
149
140
  ? (() => {
150
- const lines = (output || '').split('\n');
151
- return lines.length > 3 ? `${lines.slice(0, 3).join('\n')}\n... (${lines.length - 3} more lines)` : output;
141
+ const trimmedOutput = (output || '').trimEnd();
142
+ const lines = trimmedOutput.split('\n');
143
+ const maxLines = 3;
144
+ if (lines.length > maxLines + 1) {
145
+ const firstPart = lines.slice(0, maxLines).join('\n');
146
+ const lastLine = lines[lines.length - 1];
147
+ return `${firstPart}\n... (${lines.length - maxLines - 1} more lines)\n${lastLine}`;
148
+ }
149
+ return output;
152
150
  })()
153
151
  : outputText;
154
152
  // Special handling for apply_patch
155
153
  if (toolName === TOOL_NAME_APPLY_PATCH && toolArgs) {
156
154
  if (hadApproval) {
157
155
  return (React.createElement(Box, { flexDirection: "column" },
158
- React.createElement(Text, { color: success === false ? 'red' : '#64748b' }, displayed)));
156
+ React.createElement(Text, { color: success === false ? 'red' : COLOR_TOOL_OUTPUT }, displayed)));
159
157
  }
160
158
  const isCreate = toolArgs.type === 'create_file';
161
159
  return (React.createElement(Box, { flexDirection: "column" },
@@ -168,14 +166,14 @@ const CommandMessage = ({ command, output, status, success, failureReason, toolN
168
166
  failureReason && React.createElement(Text, { color: "red" },
169
167
  "Error: ",
170
168
  failureReason),
171
- React.createElement(Text, { color: success === false ? 'red' : '#64748b' }, displayed)));
169
+ React.createElement(Text, { color: success === false ? 'red' : COLOR_TOOL_OUTPUT }, displayed)));
172
170
  }
173
171
  // Special handling for search_replace
174
172
  if (toolName === TOOL_NAME_SEARCH_REPLACE && toolArgs) {
175
173
  // For search_replace that had an approval prompt (user said 'y'), only show output
176
174
  if (hadApproval) {
177
175
  return (React.createElement(Box, { flexDirection: "column" },
178
- React.createElement(Text, { color: success === false ? 'red' : '#64748b' }, displayed)));
176
+ React.createElement(Text, { color: success === false ? 'red' : COLOR_TOOL_OUTPUT }, displayed)));
179
177
  }
180
178
  // For auto-approved search_replace (no approval prompt), show diff + output
181
179
  return (React.createElement(Box, { flexDirection: "column" },
@@ -183,13 +181,12 @@ const CommandMessage = ({ command, output, status, success, failureReason, toolN
183
181
  React.createElement(Text, { color: "yellow", bold: true }, "[SEARCH & REPLACE]"),
184
182
  React.createElement(Text, null,
185
183
  " ",
186
- toolArgs.path),
187
- toolArgs.replace_all && React.createElement(Text, { color: "magenta" }, " (all occurrences)")),
184
+ toolArgs.path)),
188
185
  React.createElement(DiffView, { diff: diff }),
189
186
  failureReason && React.createElement(Text, { color: "red" },
190
187
  "Error: ",
191
188
  failureReason),
192
- React.createElement(Text, { color: success === false ? 'red' : '#64748b' }, displayed)));
189
+ React.createElement(Text, { color: success === false ? 'red' : COLOR_TOOL_OUTPUT }, displayed)));
193
190
  }
194
191
  // Special handling for create_file
195
192
  if (toolName === TOOL_NAME_CREATE_FILE && toolArgs) {
@@ -203,7 +200,7 @@ const CommandMessage = ({ command, output, status, success, failureReason, toolN
203
200
  failureReason && React.createElement(Text, { color: "red" },
204
201
  "Error: ",
205
202
  failureReason),
206
- React.createElement(Text, { color: success === false ? 'red' : '#64748b' }, displayed)));
203
+ React.createElement(Text, { color: success === false ? 'red' : COLOR_TOOL_OUTPUT }, displayed)));
207
204
  }
208
205
  const formattedArgs = toolArgs ? formatToolArgs(toolName, toolArgs) : '';
209
206
  return (React.createElement(Box, { flexDirection: "column" },
@@ -216,7 +213,7 @@ const CommandMessage = ({ command, output, status, success, failureReason, toolN
216
213
  failureReason && React.createElement(Text, { color: "red" },
217
214
  "Error: ",
218
215
  failureReason),
219
- React.createElement(Text, { color: success === false ? 'red' : '#64748b' }, displayed)));
216
+ React.createElement(Text, { color: success === false ? 'red' : COLOR_TOOL_OUTPUT }, displayed)));
220
217
  };
221
218
  export default React.memo(CommandMessage);
222
219
  //# sourceMappingURL=CommandMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandMessage.js","sourceRoot":"","sources":["../../source/components/CommandMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAchH,MAAM,QAAQ,GAAyB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAElE,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC;YACtC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,KAAyB,CAAC;gBAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,KAAK,GAAG,OAAO,CAAC;gBAClB,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,KAAK,GAAG,KAAK,CAAC;gBAChB,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,KAAK,GAAG,MAAM,CAAC;gBACjB,CAAC;gBAED,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,IACpC,IAAI,CACA,CACR,CAAC;YACJ,CAAC,CAAC;YACD,SAAS,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;gBAAO,KAAK,CAAC,MAAM,GAAG,QAAQ;+BAAoB,CACjF,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC;YACpC,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,sCAAuC,CACpD,CACP,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAA4B,EAAE,IAAS,EAAU,EAAE;IACzE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAQ,CAAC,GAAG,EAAE;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,iEAAiE;QACjE,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC;gBAElE,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE/G,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1D,OAAO,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;gBAClF,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,GAAG,CAAC;gBACxC,MAAM,KAAK,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;gBAE5C,IAAI,cAAc,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAClE,IAAI,cAAc,CAAC,YAAY;oBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC1F,IAAI,cAAc,CAAC,eAAe;oBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC;gBAEhG,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,SAAS,CAAC;gBAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,SAAS,CAAC;gBAC9C,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;YAC3B,CAAC;YAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,IAAI,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,cAAc,CAAC,eAAe,IAAI,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,SAAS,CAAC;gBAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC9F,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;gBAClG,OAAO,IAAI,MAAM,QAAQ,OAAO,MAAM,IAAI,GAAG,CAAC;YAChD,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,IAAI,SAAS,CAAC;gBAClD,OAAO,IAAI,QAAQ,GAAG,CAAC;YACzB,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,kBAAkB,CAAC;gBAC/D,OAAO,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzE,CAAC;YAED;gBACE,qCAAqC;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBAEpC,OAAO,OAAO;qBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACpB,MAAM,WAAW,GACf,OAAO,KAAK,KAAK,QAAQ;wBACvB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;4BACjB,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;4BAC5B,CAAC,CAAC,KAAK;wBACT,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC5B,OAAO,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;gBACjC,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAc,CAAC,EACjC,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;IAC/D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CACH,QAAQ,KAAK,wBAAwB,IAAI,QAAQ;QAC/C,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,eAAe,CAAC;QACjE,CAAC,CAAC,EAAE,EACR,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,CAAC,CAChE,CAAC;IAEF,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CACH,QAAQ,KAAK,qBAAqB,IAAI,QAAQ;QAC5C,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;aACrB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,EAAE,EACR,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAC9B,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IACxF,MAAM,SAAS,GACb,UAAU,IAAI,UAAU,KAAK,aAAa;QACxC,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7G,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,UAAU,CAAC;IAEjB,mCAAmC;IACnC,IAAI,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,EAAE,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;gBACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAG,SAAS,CAAQ,CAClE,CACP,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC;QACjD,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;YACzB,oBAAC,GAAG;gBACF,oBAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,UAC7C,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAClC;gBACP,oBAAC,IAAI;;oBAAG,QAAQ,CAAC,IAAI,CAAQ,CACzB;YACL,QAAQ,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,oBAAC,QAAQ,IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAI;YACvE,aAAa,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK;;gBAAS,aAAa,CAAQ;YACjE,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAG,SAAS,CAAQ,CAClE,CACP,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,IAAI,QAAQ,KAAK,wBAAwB,IAAI,QAAQ,EAAE,CAAC;QACtD,mFAAmF;QACnF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;gBACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAG,SAAS,CAAQ,CAClE,CACP,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;YACzB,oBAAC,GAAG;gBACF,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,+BAElB;gBACP,oBAAC,IAAI;;oBAAG,QAAQ,CAAC,IAAI,CAAQ;gBAC5B,QAAQ,CAAC,WAAW,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,yBAA0B,CACpE;YACN,oBAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI;YACvB,aAAa,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK;;gBAAS,aAAa,CAAQ;YACjE,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAG,SAAS,CAAQ,CAClE,CACP,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,EAAE,CAAC;QACnD,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;YACzB,oBAAC,GAAG;gBACF,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,qBAE/C;gBACP,oBAAC,IAAI;;oBAAG,QAAQ,CAAC,IAAI,CAAQ,CACzB;YACL,OAAO,KAAK,KAAK,IAAI,oBAAC,QAAQ,IAAC,IAAI,EAAE,mBAAmB,GAAI;YAC5D,aAAa,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK;;gBAAS,aAAa,CAAQ;YACjE,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAG,SAAS,CAAQ,CAClE,CACP,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzE,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;QACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;;YAClE,oBAAC,IAAI,IAAC,IAAI,UAAE,OAAO,CAAQ;YAC5B,SAAS,IAAI,aAAa,IAAI,OAAO,KAAK,QAAQ,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;;gBAAG,aAAa,CAAQ,CAC9F;QACN,aAAa,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK;;YAAS,aAAa,CAAQ;QACjE,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAG,SAAS,CAAQ,CAClE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"CommandMessage.js","sourceRoot":"","sources":["../../source/components/CommandMessage.tsx"],"names":[],"mappings":"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"}
@@ -122,4 +122,73 @@ test('CommandMessage renders create_file failure in red', async (t) => {
122
122
  t.true(output.includes('[CREATE]'), `Expected "[CREATE]" in output: ${output}`);
123
123
  t.true(output.includes('Error'), `Expected error message in output: ${output}`);
124
124
  });
125
+ test('CommandMessage truncates output and shows the last line when output is longer than 4 lines', async (t) => {
126
+ const props = {
127
+ command: 'shell: echo',
128
+ toolName: 'shell',
129
+ toolArgs: { command: 'echo' },
130
+ status: 'completed',
131
+ success: true,
132
+ output: 'line 1\nline 2\nline 3\nline 4\nline 5\nline 6',
133
+ };
134
+ const { lastFrame } = render(React.createElement(CommandMessage, { ...props }));
135
+ const output = lastFrame() ?? '';
136
+ t.true(output.includes('line 1'), `Expected "line 1" in output: ${output}`);
137
+ t.true(output.includes('line 2'), `Expected "line 2" in output: ${output}`);
138
+ t.true(output.includes('line 3'), `Expected "line 3" in output: ${output}`);
139
+ t.false(output.includes('line 4'), `Expected "line 4" to be truncated: ${output}`);
140
+ t.false(output.includes('line 5'), `Expected "line 5" to be truncated: ${output}`);
141
+ t.true(output.includes('line 6'), `Expected "line 6" (the last line) in output: ${output}`);
142
+ t.true(output.includes('... (2 more lines)'), `Expected truncation count of 2: ${output}`);
143
+ });
144
+ test('CommandMessage does not truncate output and shows all lines when output is exactly 4 lines', async (t) => {
145
+ const props = {
146
+ command: 'shell: echo',
147
+ toolName: 'shell',
148
+ toolArgs: { command: 'echo' },
149
+ status: 'completed',
150
+ success: true,
151
+ output: 'line 1\nline 2\nline 3\nline 4',
152
+ };
153
+ const { lastFrame } = render(React.createElement(CommandMessage, { ...props }));
154
+ const output = lastFrame() ?? '';
155
+ t.true(output.includes('line 1'));
156
+ t.true(output.includes('line 2'));
157
+ t.true(output.includes('line 3'));
158
+ t.true(output.includes('line 4'));
159
+ t.false(output.includes('more lines'));
160
+ });
161
+ test('CommandMessage does not truncate output when output is 3 lines', async (t) => {
162
+ const props = {
163
+ command: 'shell: echo',
164
+ toolName: 'shell',
165
+ toolArgs: { command: 'echo' },
166
+ status: 'completed',
167
+ success: true,
168
+ output: 'line 1\nline 2\nline 3',
169
+ };
170
+ const { lastFrame } = render(React.createElement(CommandMessage, { ...props }));
171
+ const output = lastFrame() ?? '';
172
+ t.true(output.includes('line 1'));
173
+ t.true(output.includes('line 2'));
174
+ t.true(output.includes('line 3'));
175
+ t.false(output.includes('more lines'));
176
+ });
177
+ test('CommandMessage trims trailing newlines when checking for truncation', async (t) => {
178
+ const props = {
179
+ command: 'shell: echo',
180
+ toolName: 'shell',
181
+ toolArgs: { command: 'echo' },
182
+ status: 'completed',
183
+ success: true,
184
+ output: 'line 1\nline 2\nline 3\nline 4\n\n\n',
185
+ };
186
+ const { lastFrame } = render(React.createElement(CommandMessage, { ...props }));
187
+ const output = lastFrame() ?? '';
188
+ t.true(output.includes('line 1'));
189
+ t.true(output.includes('line 2'));
190
+ t.true(output.includes('line 3'));
191
+ t.true(output.includes('line 4'));
192
+ t.false(output.includes('more lines'));
193
+ });
125
194
  //# sourceMappingURL=CommandMessage.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandMessage.test.js","sourceRoot":"","sources":["../../source/components/CommandMessage.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandMessage.test.js","sourceRoot":"","sources":["../../source/components/CommandMessage.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ interface DiffViewProps {
3
+ diff: string;
4
+ }
5
+ export declare const DiffView: FC<DiffViewProps>;
6
+ export default DiffView;
7
+ //# sourceMappingURL=DiffView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffView.d.ts","sourceRoot":"","sources":["../../source/components/DiffView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAgDD,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA0CtC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,80 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { COLOR_TOOL_OUTPUT } from './theme.js';
4
+ const collapseUnchangedLines = (lines) => {
5
+ const result = [];
6
+ let i = 0;
7
+ while (i < lines.length) {
8
+ const line = lines[i];
9
+ const isUnchanged = (l) => l !== undefined && !l.startsWith('+') && !l.startsWith('-') && !l.startsWith('@@');
10
+ if (!isUnchanged(line)) {
11
+ result.push(line);
12
+ i++;
13
+ continue;
14
+ }
15
+ // Find the end of the consecutive unchanged lines block
16
+ let j = i;
17
+ while (j < lines.length && isUnchanged(lines[j])) {
18
+ j++;
19
+ }
20
+ const unchangedCount = j - i;
21
+ const maxUnchangedContext = 3;
22
+ if (unchangedCount <= maxUnchangedContext * 2 + 1) {
23
+ for (let k = i; k < j; k++) {
24
+ result.push(lines[k]);
25
+ }
26
+ }
27
+ else {
28
+ // Keep first 3 lines
29
+ for (let k = i; k < i + maxUnchangedContext; k++) {
30
+ result.push(lines[k]);
31
+ }
32
+ // Add placeholder line
33
+ const skippedCount = unchangedCount - maxUnchangedContext * 2;
34
+ result.push(` ... (${skippedCount} unchanged lines) ...`);
35
+ // Keep last 3 lines
36
+ for (let k = j - maxUnchangedContext; k < j; k++) {
37
+ result.push(lines[k]);
38
+ }
39
+ }
40
+ i = j;
41
+ }
42
+ return result;
43
+ };
44
+ export const DiffView = ({ diff }) => {
45
+ try {
46
+ const trimmedDiff = diff.trimEnd();
47
+ const rawLines = trimmedDiff.split('\n');
48
+ const collapsedLines = collapseUnchangedLines(rawLines);
49
+ const maxLines = 30;
50
+ const truncated = collapsedLines.length > maxLines + 1;
51
+ const displayLines = truncated ? collapsedLines.slice(0, maxLines) : collapsedLines;
52
+ const lastLine = truncated ? collapsedLines[collapsedLines.length - 1] : null;
53
+ const renderLine = (line, key) => {
54
+ let color;
55
+ if (line.startsWith('+')) {
56
+ color = 'green';
57
+ }
58
+ else if (line.startsWith('-')) {
59
+ color = 'red';
60
+ }
61
+ else if (line.startsWith('@@')) {
62
+ color = 'cyan';
63
+ }
64
+ return (React.createElement(Text, { key: key, color: color || COLOR_TOOL_OUTPUT }, line));
65
+ };
66
+ return (React.createElement(Box, { flexDirection: "column", marginLeft: 2 },
67
+ displayLines.map((line, i) => renderLine(line, i)),
68
+ truncated && React.createElement(Text, { color: COLOR_TOOL_OUTPUT },
69
+ "... (",
70
+ collapsedLines.length - maxLines - 1,
71
+ " more lines)"),
72
+ truncated && lastLine !== null && renderLine(lastLine, 'last')));
73
+ }
74
+ catch (error) {
75
+ return (React.createElement(Box, { flexDirection: "column", marginLeft: 2 },
76
+ React.createElement(Text, { color: "red" }, "[Failed to render diff preview]")));
77
+ }
78
+ };
79
+ export default DiffView;
80
+ //# sourceMappingURL=DiffView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../source/components/DiffView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C,MAAM,sBAAsB,GAAG,CAAC,KAAe,EAAY,EAAE;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,WAAW,GAAG,CAAC,CAAqB,EAAE,EAAE,CAC5C,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAErF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,CAAC,EAAE,CAAC;QACN,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,mBAAmB,GAAG,CAAC,CAAC;QAE9B,IAAI,cAAc,IAAI,mBAAmB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YACD,uBAAuB;YACvB,MAAM,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,SAAS,YAAY,uBAAuB,CAAC,CAAC;YAC1D,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACpF,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9E,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,GAAQ,EAAE,EAAE;YAC5C,IAAI,KAAyB,CAAC;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,KAAK,GAAG,OAAO,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;YAED,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,iBAAiB,IAC9C,IAAI,CACA,CACR,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC;YACtC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,SAAS,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAE,iBAAiB;;gBAAQ,cAAc,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC;+BAAoB;YAC3G,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC3D,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC;YACvC,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,sCAAuC,CACpD,CACP,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DiffView.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffView.test.d.ts","sourceRoot":"","sources":["../../source/components/DiffView.test.tsx"],"names":[],"mappings":""}