@kenkaiiii/ggcoder 4.3.232 → 4.3.234

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 (348) hide show
  1. package/README.md +1 -2
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +7 -89
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/agent-session.d.ts.map +1 -1
  6. package/dist/core/agent-session.js +2 -2
  7. package/dist/core/agent-session.js.map +1 -1
  8. package/dist/core/prompt-commands.d.ts.map +1 -1
  9. package/dist/core/prompt-commands.js +8 -16
  10. package/dist/core/prompt-commands.js.map +1 -1
  11. package/dist/core/prompt-commands.test.js +14 -44
  12. package/dist/core/prompt-commands.test.js.map +1 -1
  13. package/dist/core/runtime-mode.d.ts +0 -11
  14. package/dist/core/runtime-mode.d.ts.map +1 -1
  15. package/dist/core/runtime-mode.js +0 -9
  16. package/dist/core/runtime-mode.js.map +1 -1
  17. package/dist/core/session-restore-display.test.js +4 -110
  18. package/dist/core/session-restore-display.test.js.map +1 -1
  19. package/dist/interactive.d.ts.map +1 -1
  20. package/dist/interactive.js +1 -1
  21. package/dist/interactive.js.map +1 -1
  22. package/dist/system-prompt.d.ts +1 -2
  23. package/dist/system-prompt.d.ts.map +1 -1
  24. package/dist/system-prompt.js +11 -58
  25. package/dist/system-prompt.js.map +1 -1
  26. package/dist/system-prompt.test.js +3 -158
  27. package/dist/system-prompt.test.js.map +1 -1
  28. package/dist/tools/bash.d.ts +1 -4
  29. package/dist/tools/bash.d.ts.map +1 -1
  30. package/dist/tools/bash.js +3 -12
  31. package/dist/tools/bash.js.map +1 -1
  32. package/dist/tools/checkpoint-hook.test.js +3 -3
  33. package/dist/tools/checkpoint-hook.test.js.map +1 -1
  34. package/dist/tools/edit.d.ts +1 -4
  35. package/dist/tools/edit.d.ts.map +1 -1
  36. package/dist/tools/edit.js +5 -13
  37. package/dist/tools/edit.js.map +1 -1
  38. package/dist/tools/enter-plan.js +1 -1
  39. package/dist/tools/enter-plan.js.map +1 -1
  40. package/dist/tools/index.d.ts +0 -9
  41. package/dist/tools/index.d.ts.map +1 -1
  42. package/dist/tools/index.js +4 -8
  43. package/dist/tools/index.js.map +1 -1
  44. package/dist/tools/prompt-hints.d.ts.map +1 -1
  45. package/dist/tools/prompt-hints.js +0 -2
  46. package/dist/tools/prompt-hints.js.map +1 -1
  47. package/dist/tools/screenshot.d.ts +1 -1
  48. package/dist/tools/subagent.d.ts +1 -4
  49. package/dist/tools/subagent.d.ts.map +1 -1
  50. package/dist/tools/subagent.js +2 -5
  51. package/dist/tools/subagent.js.map +1 -1
  52. package/dist/tools/write.d.ts +1 -4
  53. package/dist/tools/write.d.ts.map +1 -1
  54. package/dist/tools/write.js +5 -13
  55. package/dist/tools/write.js.map +1 -1
  56. package/dist/ui/App.d.ts +5 -20
  57. package/dist/ui/App.d.ts.map +1 -1
  58. package/dist/ui/App.js +134 -309
  59. package/dist/ui/App.js.map +1 -1
  60. package/dist/ui/app-items.d.ts +23 -25
  61. package/dist/ui/app-items.d.ts.map +1 -1
  62. package/dist/ui/app-items.js +37 -0
  63. package/dist/ui/app-items.js.map +1 -1
  64. package/dist/ui/app-items.test.d.ts +2 -0
  65. package/dist/ui/app-items.test.d.ts.map +1 -0
  66. package/dist/ui/app-items.test.js +38 -0
  67. package/dist/ui/app-items.test.js.map +1 -0
  68. package/dist/ui/app-state-persistence.test.js +14 -318
  69. package/dist/ui/app-state-persistence.test.js.map +1 -1
  70. package/dist/ui/chat-layout-pinning.test.js +74 -4
  71. package/dist/ui/chat-layout-pinning.test.js.map +1 -1
  72. package/dist/ui/components/AssistantMessage.test.js +6 -9
  73. package/dist/ui/components/AssistantMessage.test.js.map +1 -1
  74. package/dist/ui/components/Banner.js +1 -1
  75. package/dist/ui/components/Banner.js.map +1 -1
  76. package/dist/ui/components/ChatFooterPane.d.ts +1 -5
  77. package/dist/ui/components/ChatFooterPane.d.ts.map +1 -1
  78. package/dist/ui/components/ChatFooterPane.js +3 -4
  79. package/dist/ui/components/ChatFooterPane.js.map +1 -1
  80. package/dist/ui/components/ChatInputStack.d.ts +3 -1
  81. package/dist/ui/components/ChatInputStack.d.ts.map +1 -1
  82. package/dist/ui/components/ChatInputStack.js +4 -3
  83. package/dist/ui/components/ChatInputStack.js.map +1 -1
  84. package/dist/ui/components/ChatScreen.d.ts +3 -16
  85. package/dist/ui/components/ChatScreen.d.ts.map +1 -1
  86. package/dist/ui/components/ChatScreen.js +2 -3
  87. package/dist/ui/components/ChatScreen.js.map +1 -1
  88. package/dist/ui/components/Footer.d.ts +3 -8
  89. package/dist/ui/components/Footer.d.ts.map +1 -1
  90. package/dist/ui/components/Footer.js +5 -25
  91. package/dist/ui/components/Footer.js.map +1 -1
  92. package/dist/ui/components/InputArea.d.ts +1 -9
  93. package/dist/ui/components/InputArea.d.ts.map +1 -1
  94. package/dist/ui/components/InputArea.js +2 -44
  95. package/dist/ui/components/InputArea.js.map +1 -1
  96. package/dist/ui/components/LiveToolPanel.d.ts +30 -0
  97. package/dist/ui/components/LiveToolPanel.d.ts.map +1 -0
  98. package/dist/ui/components/LiveToolPanel.js +66 -0
  99. package/dist/ui/components/LiveToolPanel.js.map +1 -0
  100. package/dist/ui/components/ToolExecution.js +0 -2
  101. package/dist/ui/components/ToolExecution.js.map +1 -1
  102. package/dist/ui/components/TranscriptViewport.d.ts +1 -1
  103. package/dist/ui/components/TranscriptViewport.js +1 -1
  104. package/dist/ui/footer-jump-regression.test.js +12 -2
  105. package/dist/ui/footer-jump-regression.test.js.map +1 -1
  106. package/dist/ui/footer-status-layout.test.js +4 -12
  107. package/dist/ui/footer-status-layout.test.js.map +1 -1
  108. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +3 -4
  109. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +1 -1
  110. package/dist/ui/hooks/useChatLayoutMeasurements.js +26 -4
  111. package/dist/ui/hooks/useChatLayoutMeasurements.js.map +1 -1
  112. package/dist/ui/hooks/useModeState.d.ts +4 -19
  113. package/dist/ui/hooks/useModeState.d.ts.map +1 -1
  114. package/dist/ui/hooks/useModeState.js +5 -45
  115. package/dist/ui/hooks/useModeState.js.map +1 -1
  116. package/dist/ui/hooks/usePixelFixFlow.js +2 -2
  117. package/dist/ui/layout-decisions.d.ts +11 -34
  118. package/dist/ui/layout-decisions.d.ts.map +1 -1
  119. package/dist/ui/layout-decisions.js +15 -42
  120. package/dist/ui/layout-decisions.js.map +1 -1
  121. package/dist/ui/live-area-height.d.ts.map +1 -1
  122. package/dist/ui/live-area-height.js +6 -1
  123. package/dist/ui/live-area-height.js.map +1 -1
  124. package/dist/ui/live-frame-height.test.js +26 -1
  125. package/dist/ui/live-frame-height.test.js.map +1 -1
  126. package/dist/ui/plan-overlay.test.js +1 -1
  127. package/dist/ui/plan-overlay.test.js.map +1 -1
  128. package/dist/ui/prompt-routing.d.ts +1 -19
  129. package/dist/ui/prompt-routing.d.ts.map +1 -1
  130. package/dist/ui/prompt-routing.js +1 -79
  131. package/dist/ui/prompt-routing.js.map +1 -1
  132. package/dist/ui/render.d.ts +3 -18
  133. package/dist/ui/render.d.ts.map +1 -1
  134. package/dist/ui/render.js +0 -10
  135. package/dist/ui/render.js.map +1 -1
  136. package/dist/ui/scroll-stabilization.test.js +1 -7
  137. package/dist/ui/scroll-stabilization.test.js.map +1 -1
  138. package/dist/ui/slash-command-images.test.js +11 -86
  139. package/dist/ui/slash-command-images.test.js.map +1 -1
  140. package/dist/ui/streaming-flush-bounce.test.d.ts +2 -0
  141. package/dist/ui/streaming-flush-bounce.test.d.ts.map +1 -0
  142. package/dist/ui/streaming-flush-bounce.test.js +156 -0
  143. package/dist/ui/streaming-flush-bounce.test.js.map +1 -0
  144. package/dist/ui/submit-prompt-command.d.ts +1 -16
  145. package/dist/ui/submit-prompt-command.d.ts.map +1 -1
  146. package/dist/ui/submit-prompt-command.js +4 -54
  147. package/dist/ui/submit-prompt-command.js.map +1 -1
  148. package/dist/ui/submit-slash-commands.d.ts +0 -1
  149. package/dist/ui/submit-slash-commands.d.ts.map +1 -1
  150. package/dist/ui/submit-slash-commands.js +0 -4
  151. package/dist/ui/submit-slash-commands.js.map +1 -1
  152. package/dist/ui/terminal-history-status-renderers.d.ts +0 -1
  153. package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -1
  154. package/dist/ui/terminal-history-status-renderers.js +0 -3
  155. package/dist/ui/terminal-history-status-renderers.js.map +1 -1
  156. package/dist/ui/terminal-history.d.ts.map +1 -1
  157. package/dist/ui/terminal-history.js +11 -56
  158. package/dist/ui/terminal-history.js.map +1 -1
  159. package/dist/ui/terminal-history.test.js +6 -33
  160. package/dist/ui/terminal-history.test.js.map +1 -1
  161. package/dist/ui/tool-line-summary.d.ts +29 -0
  162. package/dist/ui/tool-line-summary.d.ts.map +1 -0
  163. package/dist/ui/tool-line-summary.js +153 -0
  164. package/dist/ui/tool-line-summary.js.map +1 -0
  165. package/dist/ui/transcript/TranscriptRenderer.d.ts +1 -1
  166. package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -1
  167. package/dist/ui/transcript/TranscriptRenderer.js +18 -12
  168. package/dist/ui/transcript/TranscriptRenderer.js.map +1 -1
  169. package/dist/ui/transcript/presentation.d.ts +1 -17
  170. package/dist/ui/transcript/presentation.d.ts.map +1 -1
  171. package/dist/ui/transcript/presentation.js +0 -26
  172. package/dist/ui/transcript/presentation.js.map +1 -1
  173. package/dist/ui/transcript/spacing.d.ts +2 -2
  174. package/dist/ui/transcript/spacing.d.ts.map +1 -1
  175. package/dist/ui/transcript/spacing.js +14 -9
  176. package/dist/ui/transcript/spacing.js.map +1 -1
  177. package/dist/ui/transcript/spacing.test.js +5 -8
  178. package/dist/ui/transcript/spacing.test.js.map +1 -1
  179. package/dist/ui/transcript/tool-presentation.js +1 -1
  180. package/dist/ui/transcript/tool-presentation.js.map +1 -1
  181. package/dist/ui/transcript/transcript-lines.d.ts.map +1 -1
  182. package/dist/ui/transcript/transcript-lines.js +4 -0
  183. package/dist/ui/transcript/transcript-lines.js.map +1 -1
  184. package/dist/ui/tui-history-parity.test.js +0 -47
  185. package/dist/ui/tui-history-parity.test.js.map +1 -1
  186. package/dist/ui/tui-simulation.test.js +2 -1
  187. package/dist/ui/tui-simulation.test.js.map +1 -1
  188. package/package.json +3 -3
  189. package/dist/core/goal-controller.d.ts +0 -82
  190. package/dist/core/goal-controller.d.ts.map +0 -1
  191. package/dist/core/goal-controller.js +0 -838
  192. package/dist/core/goal-controller.js.map +0 -1
  193. package/dist/core/goal-controller.test.d.ts +0 -2
  194. package/dist/core/goal-controller.test.d.ts.map +0 -1
  195. package/dist/core/goal-controller.test.js +0 -1279
  196. package/dist/core/goal-controller.test.js.map +0 -1
  197. package/dist/core/goal-engine.d.ts +0 -61
  198. package/dist/core/goal-engine.d.ts.map +0 -1
  199. package/dist/core/goal-engine.js +0 -123
  200. package/dist/core/goal-engine.js.map +0 -1
  201. package/dist/core/goal-engine.test.d.ts +0 -2
  202. package/dist/core/goal-engine.test.d.ts.map +0 -1
  203. package/dist/core/goal-engine.test.js +0 -295
  204. package/dist/core/goal-engine.test.js.map +0 -1
  205. package/dist/core/goal-integration.d.ts +0 -80
  206. package/dist/core/goal-integration.d.ts.map +0 -1
  207. package/dist/core/goal-integration.js +0 -296
  208. package/dist/core/goal-integration.js.map +0 -1
  209. package/dist/core/goal-integration.test.d.ts +0 -2
  210. package/dist/core/goal-integration.test.d.ts.map +0 -1
  211. package/dist/core/goal-integration.test.js +0 -369
  212. package/dist/core/goal-integration.test.js.map +0 -1
  213. package/dist/core/goal-lifecycle-smoke.test.d.ts +0 -2
  214. package/dist/core/goal-lifecycle-smoke.test.d.ts.map +0 -1
  215. package/dist/core/goal-lifecycle-smoke.test.js +0 -248
  216. package/dist/core/goal-lifecycle-smoke.test.js.map +0 -1
  217. package/dist/core/goal-overhead-harness.d.ts +0 -33
  218. package/dist/core/goal-overhead-harness.d.ts.map +0 -1
  219. package/dist/core/goal-overhead-harness.js +0 -268
  220. package/dist/core/goal-overhead-harness.js.map +0 -1
  221. package/dist/core/goal-prerequisites.d.ts +0 -23
  222. package/dist/core/goal-prerequisites.d.ts.map +0 -1
  223. package/dist/core/goal-prerequisites.js +0 -114
  224. package/dist/core/goal-prerequisites.js.map +0 -1
  225. package/dist/core/goal-prerequisites.test.d.ts +0 -2
  226. package/dist/core/goal-prerequisites.test.d.ts.map +0 -1
  227. package/dist/core/goal-prerequisites.test.js +0 -154
  228. package/dist/core/goal-prerequisites.test.js.map +0 -1
  229. package/dist/core/goal-references.d.ts +0 -14
  230. package/dist/core/goal-references.d.ts.map +0 -1
  231. package/dist/core/goal-references.js +0 -153
  232. package/dist/core/goal-references.js.map +0 -1
  233. package/dist/core/goal-references.test.d.ts +0 -2
  234. package/dist/core/goal-references.test.d.ts.map +0 -1
  235. package/dist/core/goal-references.test.js +0 -77
  236. package/dist/core/goal-references.test.js.map +0 -1
  237. package/dist/core/goal-store.d.ts +0 -289
  238. package/dist/core/goal-store.d.ts.map +0 -1
  239. package/dist/core/goal-store.js +0 -1156
  240. package/dist/core/goal-store.js.map +0 -1
  241. package/dist/core/goal-store.test.d.ts +0 -2
  242. package/dist/core/goal-store.test.d.ts.map +0 -1
  243. package/dist/core/goal-store.test.js +0 -530
  244. package/dist/core/goal-store.test.js.map +0 -1
  245. package/dist/core/goal-verifier.d.ts +0 -17
  246. package/dist/core/goal-verifier.d.ts.map +0 -1
  247. package/dist/core/goal-verifier.js +0 -87
  248. package/dist/core/goal-verifier.js.map +0 -1
  249. package/dist/core/goal-verifier.test.d.ts +0 -2
  250. package/dist/core/goal-verifier.test.d.ts.map +0 -1
  251. package/dist/core/goal-verifier.test.js +0 -131
  252. package/dist/core/goal-verifier.test.js.map +0 -1
  253. package/dist/core/goal-worker-dev-server-lifecycle.test.d.ts +0 -2
  254. package/dist/core/goal-worker-dev-server-lifecycle.test.d.ts.map +0 -1
  255. package/dist/core/goal-worker-dev-server-lifecycle.test.js +0 -68
  256. package/dist/core/goal-worker-dev-server-lifecycle.test.js.map +0 -1
  257. package/dist/core/goal-worker.d.ts +0 -61
  258. package/dist/core/goal-worker.d.ts.map +0 -1
  259. package/dist/core/goal-worker.js +0 -467
  260. package/dist/core/goal-worker.js.map +0 -1
  261. package/dist/core/goal-worker.test.d.ts +0 -2
  262. package/dist/core/goal-worker.test.d.ts.map +0 -1
  263. package/dist/core/goal-worker.test.js +0 -493
  264. package/dist/core/goal-worker.test.js.map +0 -1
  265. package/dist/core/goal-worktree.d.ts +0 -108
  266. package/dist/core/goal-worktree.d.ts.map +0 -1
  267. package/dist/core/goal-worktree.js +0 -300
  268. package/dist/core/goal-worktree.js.map +0 -1
  269. package/dist/core/goal-worktree.test.d.ts +0 -2
  270. package/dist/core/goal-worktree.test.d.ts.map +0 -1
  271. package/dist/core/goal-worktree.test.js +0 -448
  272. package/dist/core/goal-worktree.test.js.map +0 -1
  273. package/dist/tools/goal-mode.test.d.ts +0 -2
  274. package/dist/tools/goal-mode.test.d.ts.map +0 -1
  275. package/dist/tools/goal-mode.test.js +0 -121
  276. package/dist/tools/goal-mode.test.js.map +0 -1
  277. package/dist/tools/goals.d.ts +0 -143
  278. package/dist/tools/goals.d.ts.map +0 -1
  279. package/dist/tools/goals.js +0 -1038
  280. package/dist/tools/goals.js.map +0 -1
  281. package/dist/tools/goals.test.d.ts +0 -2
  282. package/dist/tools/goals.test.d.ts.map +0 -1
  283. package/dist/tools/goals.test.js +0 -1444
  284. package/dist/tools/goals.test.js.map +0 -1
  285. package/dist/ui/components/GoalOverlay.d.ts +0 -83
  286. package/dist/ui/components/GoalOverlay.d.ts.map +0 -1
  287. package/dist/ui/components/GoalOverlay.js +0 -710
  288. package/dist/ui/components/GoalOverlay.js.map +0 -1
  289. package/dist/ui/components/GoalPickerMenu.d.ts +0 -9
  290. package/dist/ui/components/GoalPickerMenu.d.ts.map +0 -1
  291. package/dist/ui/components/GoalPickerMenu.js +0 -37
  292. package/dist/ui/components/GoalPickerMenu.js.map +0 -1
  293. package/dist/ui/components/GoalStatusBar.d.ts +0 -26
  294. package/dist/ui/components/GoalStatusBar.d.ts.map +0 -1
  295. package/dist/ui/components/GoalStatusBar.js +0 -130
  296. package/dist/ui/components/GoalStatusBar.js.map +0 -1
  297. package/dist/ui/components/GoalStatusBar.test.d.ts +0 -2
  298. package/dist/ui/components/GoalStatusBar.test.d.ts.map +0 -1
  299. package/dist/ui/components/GoalStatusBar.test.js +0 -17
  300. package/dist/ui/components/GoalStatusBar.test.js.map +0 -1
  301. package/dist/ui/goal-events.d.ts +0 -125
  302. package/dist/ui/goal-events.d.ts.map +0 -1
  303. package/dist/ui/goal-events.js +0 -407
  304. package/dist/ui/goal-events.js.map +0 -1
  305. package/dist/ui/goal-events.test.d.ts +0 -2
  306. package/dist/ui/goal-events.test.d.ts.map +0 -1
  307. package/dist/ui/goal-events.test.js +0 -416
  308. package/dist/ui/goal-events.test.js.map +0 -1
  309. package/dist/ui/goal-lifecycle-orchestration.test.d.ts +0 -2
  310. package/dist/ui/goal-lifecycle-orchestration.test.d.ts.map +0 -1
  311. package/dist/ui/goal-lifecycle-orchestration.test.js +0 -555
  312. package/dist/ui/goal-lifecycle-orchestration.test.js.map +0 -1
  313. package/dist/ui/goal-overlay.test.d.ts +0 -2
  314. package/dist/ui/goal-overlay.test.d.ts.map +0 -1
  315. package/dist/ui/goal-overlay.test.js +0 -384
  316. package/dist/ui/goal-overlay.test.js.map +0 -1
  317. package/dist/ui/goal-progress.d.ts +0 -31
  318. package/dist/ui/goal-progress.d.ts.map +0 -1
  319. package/dist/ui/goal-progress.js +0 -149
  320. package/dist/ui/goal-progress.js.map +0 -1
  321. package/dist/ui/goal-run-helpers.d.ts +0 -12
  322. package/dist/ui/goal-run-helpers.d.ts.map +0 -1
  323. package/dist/ui/goal-run-helpers.js +0 -42
  324. package/dist/ui/goal-run-helpers.js.map +0 -1
  325. package/dist/ui/goal-status-bar.test.d.ts +0 -2
  326. package/dist/ui/goal-status-bar.test.d.ts.map +0 -1
  327. package/dist/ui/goal-status-bar.test.js +0 -174
  328. package/dist/ui/goal-status-bar.test.js.map +0 -1
  329. package/dist/ui/goal-summary.d.ts +0 -14
  330. package/dist/ui/goal-summary.d.ts.map +0 -1
  331. package/dist/ui/goal-summary.js +0 -194
  332. package/dist/ui/goal-summary.js.map +0 -1
  333. package/dist/ui/hooks/useGoalOrchestration.d.ts +0 -82
  334. package/dist/ui/hooks/useGoalOrchestration.d.ts.map +0 -1
  335. package/dist/ui/hooks/useGoalOrchestration.js +0 -863
  336. package/dist/ui/hooks/useGoalOrchestration.js.map +0 -1
  337. package/dist/ui/hooks/useGoalPickerController.d.ts +0 -22
  338. package/dist/ui/hooks/useGoalPickerController.d.ts.map +0 -1
  339. package/dist/ui/hooks/useGoalPickerController.js +0 -35
  340. package/dist/ui/hooks/useGoalPickerController.js.map +0 -1
  341. package/dist/ui/prompt-routing.test.d.ts +0 -2
  342. package/dist/ui/prompt-routing.test.d.ts.map +0 -1
  343. package/dist/ui/prompt-routing.test.js +0 -48
  344. package/dist/ui/prompt-routing.test.js.map +0 -1
  345. package/dist/ui/transcript/GoalRows.d.ts +0 -10
  346. package/dist/ui/transcript/GoalRows.d.ts.map +0 -1
  347. package/dist/ui/transcript/GoalRows.js +0 -35
  348. package/dist/ui/transcript/GoalRows.js.map +0 -1
@@ -0,0 +1,156 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Regression for the per-chunk footer "bounce" during streaming.
3
+ //
4
+ // The assistant response is flushed to native scrollback paragraph-by-paragraph
5
+ // while it streams (see assistant-stream-split). The scrollback print happens in
6
+ // an effect AFTER paint, while `flushedChars` only advances in that same effect.
7
+ // If the live frame is sliced solely by the already-committed `flushedChars`,
8
+ // the just-flushed paragraph renders BOTH in scrollback and still live for one
9
+ // frame — a transient height bump that shoves the footer up, then back down on
10
+ // every paragraph boundary. App fixes this by slicing the live text with the
11
+ // PROSPECTIVE flush computed during render. This test models that flow and
12
+ // asserts the footer offset from the bottom stays constant across flushes.
13
+ import React, { useEffect, useRef, useState } from "react";
14
+ import { render, Text, useStdout } from "ink";
15
+ import { describe, expect, it } from "vitest";
16
+ import stripAnsi from "strip-ansi";
17
+ import { ChatControls, ChatLayout } from "./components/ChatLayout.js";
18
+ import { ChatLivePane } from "./components/ChatLivePane.js";
19
+ import { TerminalSizeProvider } from "./hooks/useTerminalSize.js";
20
+ import { renderTranscriptItem } from "./transcript/TranscriptRenderer.js";
21
+ import { loadTheme, ThemeContext } from "./theme/theme.js";
22
+ import { createTerminalHistoryPrinter } from "./terminal-history.js";
23
+ import { useTranscriptHistory } from "./hooks/useTranscriptHistory.js";
24
+ import { ScreenRecorder, makeRecordingStdout } from "./testing/screen-recorder.js";
25
+ import { splitAssistantStreamingText } from "./utils/assistant-stream-split.js";
26
+ import { stripDoneMarkers } from "../utils/plan-steps.js";
27
+ const COLUMNS = 80;
28
+ const ROWS = 24;
29
+ const theme = loadTheme("dark");
30
+ const terminalContext = {
31
+ theme,
32
+ columns: COLUMNS,
33
+ version: "sim",
34
+ model: "sim-model",
35
+ provider: "anthropic",
36
+ cwd: "/tmp/sim-project",
37
+ };
38
+ const FOOTER_BOTTOM = "SIM_ACTIVITY_BAR";
39
+ let idCounter = 0;
40
+ const getId = () => `chunk-${idCounter++}`;
41
+ function Controls() {
42
+ return (_jsxs(ChatControls, { controlsRef: () => { }, children: [_jsx(Text, { children: "SIM_STATUS" }), _jsx(Text, { children: "SIM_INPUT" }), _jsx(Text, { children: "SIM_FOOTER" }), _jsx(Text, { children: FOOTER_BOTTOM })] }));
43
+ }
44
+ // Mirrors App.tsx: prospective flush is computed during render so the live
45
+ // frame drops the to-be-flushed prefix immediately; the scrollback print is
46
+ // deferred to the effect.
47
+ function Driver({ rawText }) {
48
+ const { write: writeStdout } = useStdout();
49
+ const [history, setHistory] = useState([]);
50
+ const [liveItems, setLiveItems] = useState([]);
51
+ const flushRef = useRef({ flushedChars: 0, text: "" });
52
+ const { queueFlush } = useTranscriptHistory({
53
+ terminalHistoryPrinter: createTerminalHistoryPrinter(),
54
+ terminalHistoryContext: terminalContext,
55
+ writeStdout,
56
+ sessionPathRef: { current: undefined },
57
+ sessionManagerRef: { current: null },
58
+ history,
59
+ setHistory,
60
+ setLiveItems,
61
+ });
62
+ const alreadyFlushed = flushRef.current.flushedChars;
63
+ const pendingFlushChars = rawText
64
+ ? splitAssistantStreamingText(rawText.slice(alreadyFlushed)).flushedText.length
65
+ : 0;
66
+ useEffect(() => {
67
+ if (!rawText) {
68
+ flushRef.current = { flushedChars: 0, text: "" };
69
+ return;
70
+ }
71
+ if (rawText === flushRef.current.text)
72
+ return;
73
+ const split = splitAssistantStreamingText(rawText.slice(flushRef.current.flushedChars));
74
+ if (split.flushedText.length > 0) {
75
+ queueFlush([
76
+ {
77
+ kind: "assistant",
78
+ text: stripDoneMarkers(split.flushedText),
79
+ continuation: flushRef.current.flushedChars > 0,
80
+ id: getId(),
81
+ },
82
+ ]);
83
+ flushRef.current = {
84
+ flushedChars: flushRef.current.flushedChars + split.flushedText.length,
85
+ text: rawText,
86
+ };
87
+ return;
88
+ }
89
+ flushRef.current = { ...flushRef.current, text: rawText };
90
+ }, [rawText, queueFlush]);
91
+ const visibleStreamingText = stripDoneMarkers(rawText.slice(alreadyFlushed + pendingFlushChars));
92
+ const renderItem = (item, index, items) => renderTranscriptItem({
93
+ item,
94
+ index,
95
+ items,
96
+ version: "sim",
97
+ currentModel: "sim-model",
98
+ currentProvider: "anthropic",
99
+ displayedCwd: "/tmp/sim-project",
100
+ columns: COLUMNS,
101
+ theme,
102
+ renderMarkdown: true,
103
+ measuredLiveAreaRows: ROWS,
104
+ });
105
+ return (_jsx(ThemeContext.Provider, { value: theme, children: _jsx(TerminalSizeProvider, { children: _jsxs(ChatLayout, { columns: COLUMNS, children: [_jsx(ChatLivePane, { liveItems: liveItems, renderItem: renderItem, isRunning: true, visibleStreamingText: visibleStreamingText, streamingThinking: "", thinkingMs: 0, reserveStreamingSpacing: false, renderMarkdown: true, measuredLiveAreaRows: ROWS, assistantMarginTop: 0, streamingContinuation: alreadyFlushed + pendingFlushChars > 0 }), _jsx(Controls, {})] }) }) }));
106
+ }
107
+ async function tick() {
108
+ await new Promise((resolve) => setTimeout(resolve, 45));
109
+ }
110
+ function paragraph(n) {
111
+ return Array.from({ length: 3 }, (_, i) => `P${n}_LINE_${i + 1}`).join("\n");
112
+ }
113
+ describe("streaming flush footer bounce", () => {
114
+ it("keeps the footer at a constant offset across paragraph flush boundaries", async () => {
115
+ const recorder = new ScreenRecorder({ columns: COLUMNS, rows: ROWS });
116
+ const stdout = makeRecordingStdout(recorder);
117
+ const footerOffsets = [];
118
+ const capture = () => {
119
+ const lines = recorder.viewportLines().map((line) => stripAnsi(line));
120
+ const footerIdx = lines.findIndex((line) => line.includes(FOOTER_BOTTOM));
121
+ footerOffsets.push(footerIdx === -1 ? -1 : lines.length - footerIdx);
122
+ };
123
+ // Stream a 3-paragraph response: text grows, then crosses a blank-line
124
+ // boundary (flush), then grows again, etc. The boundary frames are where the
125
+ // bounce used to occur.
126
+ const steps = [
127
+ paragraph(1),
128
+ `${paragraph(1)}\n\n`,
129
+ `${paragraph(1)}\n\n${paragraph(2)}`,
130
+ `${paragraph(1)}\n\n${paragraph(2)}\n\n`,
131
+ `${paragraph(1)}\n\n${paragraph(2)}\n\n${paragraph(3)}`,
132
+ ];
133
+ const mounted = render(_jsx(Driver, { rawText: steps[0] }), {
134
+ stdout,
135
+ columns: COLUMNS,
136
+ rows: ROWS,
137
+ patchConsole: false,
138
+ maxFps: 1000,
139
+ });
140
+ await tick();
141
+ capture();
142
+ for (let i = 1; i < steps.length; i++) {
143
+ mounted.rerender(_jsx(Driver, { rawText: steps[i] }));
144
+ await tick();
145
+ await tick();
146
+ capture();
147
+ }
148
+ mounted.unmount();
149
+ // The footer (controls block) must stay pinned the same distance from the
150
+ // bottom on every frame — no transient grow/shrink as paragraphs flush.
151
+ for (const offset of footerOffsets) {
152
+ expect(offset).toBe(footerOffsets[0]);
153
+ }
154
+ });
155
+ });
156
+ //# sourceMappingURL=streaming-flush-bounce.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-flush-bounce.test.js","sourceRoot":"","sources":["../../src/ui/streaming-flush-bounce.test.tsx"],"names":[],"mappings":"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"}
@@ -1,22 +1,13 @@
1
1
  import type React from "react";
2
- import type { Message } from "@kenkaiiii/gg-ai";
3
2
  import type { ImageAttachment } from "../utils/image.js";
4
3
  import type { CustomCommand } from "../core/custom-commands.js";
5
- import type { GoalMode } from "../core/runtime-mode.js";
6
- import type { GoalReference } from "../core/goal-store.js";
7
4
  import type { CompletedItem, UserItem } from "./app-items.js";
8
5
  import type { UserContent } from "./hooks/useAgentLoop.js";
9
6
  interface PromptCommandSubmitOptions {
10
7
  trimmed: string;
11
8
  inputImages: ImageAttachment[];
12
- cwd: string;
13
9
  currentModel: string;
14
10
  customCommands: CustomCommand[];
15
- messagesRef: React.MutableRefObject<Message[]>;
16
- goalSetupPanePendingRef: React.MutableRefObject<boolean>;
17
- goalModeStateRef: React.MutableRefObject<GoalMode>;
18
- goalAutoExpandRef: React.MutableRefObject<boolean>;
19
- setActiveGoalReferences: (references: readonly GoalReference[] | undefined) => void;
20
11
  setLastUserMessage: (message: string) => void;
21
12
  setDoneStatus: (status: {
22
13
  verb: string;
@@ -24,17 +15,11 @@ interface PromptCommandSubmitOptions {
24
15
  toolsUsed: string[];
25
16
  } | null) => void;
26
17
  finalizeSubmittedUserItem: (item: UserItem) => void;
27
- setGoalModeAndPrompt: (mode: GoalMode) => Promise<void>;
28
18
  runAgent: (content: UserContent) => Promise<void>;
29
- appendGoalAgentTransition: (text: string) => void;
30
19
  setLiveItems: React.Dispatch<React.SetStateAction<CompletedItem[]>>;
31
20
  getId: () => string;
32
- setGoalAutoExpand: (value: boolean) => void;
33
- setPlanAutoExpand: (value: boolean) => void;
34
- closeTaskPicker: () => void;
35
- openGoalPicker: () => void;
36
21
  reloadCustomCommands: () => void;
37
22
  }
38
- export declare function submitPromptCommand({ trimmed, inputImages, cwd, currentModel, customCommands, messagesRef, goalSetupPanePendingRef, goalModeStateRef, goalAutoExpandRef, setActiveGoalReferences, setLastUserMessage, setDoneStatus, finalizeSubmittedUserItem, setGoalModeAndPrompt, runAgent, appendGoalAgentTransition, setLiveItems, getId, setGoalAutoExpand, setPlanAutoExpand, closeTaskPicker, openGoalPicker, reloadCustomCommands, }: PromptCommandSubmitOptions): Promise<boolean>;
23
+ export declare function submitPromptCommand({ trimmed, inputImages, currentModel, customCommands, setLastUserMessage, setDoneStatus, finalizeSubmittedUserItem, runAgent, setLiveItems, getId, reloadCustomCommands, }: PromptCommandSubmitOptions): Promise<boolean>;
39
24
  export {};
40
25
  //# sourceMappingURL=submit-prompt-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit-prompt-command.d.ts","sourceRoot":"","sources":["../../src/ui/submit-prompt-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS3D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,uBAAuB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnD,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,uBAAuB,EAAE,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IACpF,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAClG,yBAAyB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpD,oBAAoB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,yBAAyB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACpE,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,WAAW,EACX,GAAG,EACH,YAAY,EACZ,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,EACR,yBAAyB,EACzB,YAAY,EACZ,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAwF/C"}
1
+ {"version":3,"file":"submit-prompt-command.d.ts","sourceRoot":"","sources":["../../src/ui/submit-prompt-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAClG,yBAAyB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACpE,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,oBAAoB,GACrB,EAAE,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAuC/C"}
@@ -1,33 +1,18 @@
1
1
  import { getModel } from "../core/model-registry.js";
2
2
  import { PROMPT_COMMANDS } from "../core/prompt-commands.js";
3
- import { buildGoalReferenceContext } from "../core/goal-references.js";
4
3
  import { log } from "../core/logger.js";
5
- import { buildUserContentWithAttachments, isGoalPromptCommandName, routePromptCommandInput, runGoalPromptSetupSequence, } from "./prompt-routing.js";
6
- import { getGoalSetupPaneTransitionAfterRun } from "./layout-decisions.js";
4
+ import { buildUserContentWithAttachments, routePromptCommandInput } from "./prompt-routing.js";
7
5
  import { toErrorItem } from "./error-item.js";
8
- export async function submitPromptCommand({ trimmed, inputImages, cwd, currentModel, customCommands, messagesRef, goalSetupPanePendingRef, goalModeStateRef, goalAutoExpandRef, setActiveGoalReferences, setLastUserMessage, setDoneStatus, finalizeSubmittedUserItem, setGoalModeAndPrompt, runAgent, appendGoalAgentTransition, setLiveItems, getId, setGoalAutoExpand, setPlanAutoExpand, closeTaskPicker, openGoalPicker, reloadCustomCommands, }) {
6
+ export async function submitPromptCommand({ trimmed, inputImages, currentModel, customCommands, setLastUserMessage, setDoneStatus, finalizeSubmittedUserItem, runAgent, setLiveItems, getId, reloadCustomCommands, }) {
9
7
  const promptCommandRoute = routePromptCommandInput(trimmed, PROMPT_COMMANDS, customCommands);
10
8
  if (!promptCommandRoute)
11
9
  return false;
12
10
  const { cmdName, cmdArgs, fullPrompt } = promptCommandRoute;
13
11
  log("INFO", "command", `Prompt command: /${cmdName}${cmdArgs ? ` (args: ${cmdArgs})` : ""}`);
14
12
  const hasImages = inputImages.length > 0;
15
- const isGoalSetupCommand = isGoalPromptCommandName(cmdName);
16
- let promptForAgent = fullPrompt;
17
- if (isGoalSetupCommand) {
18
- const referenceContext = await buildGoalReferenceContext({
19
- cwd,
20
- originalGoalPrompt: fullPrompt,
21
- attachments: inputImages,
22
- });
23
- setActiveGoalReferences(referenceContext.references);
24
- promptForAgent = referenceContext.promptSection
25
- ? `${fullPrompt}\n\n${referenceContext.promptSection}`
26
- : fullPrompt;
27
- }
28
13
  const modelInfo = getModel(currentModel);
29
14
  const modelSupportsImages = modelInfo?.supportsImages ?? true;
30
- const userContent = buildUserContentWithAttachments(promptForAgent, inputImages, modelSupportsImages);
15
+ const userContent = buildUserContentWithAttachments(fullPrompt, inputImages, modelSupportsImages);
31
16
  const userItem = {
32
17
  kind: "user",
33
18
  text: trimmed,
@@ -38,27 +23,12 @@ export async function submitPromptCommand({ trimmed, inputImages, cwd, currentMo
38
23
  setDoneStatus(null);
39
24
  finalizeSubmittedUserItem(userItem);
40
25
  try {
41
- if (isGoalSetupCommand) {
42
- goalSetupPanePendingRef.current = true;
43
- await runGoalPromptSetupSequence({
44
- userContent,
45
- fullPrompt: promptForAgent,
46
- messagesRef,
47
- setGoalModeAndPrompt,
48
- runAgent,
49
- onStage: appendGoalAgentTransition,
50
- });
51
- }
52
- else {
53
- await runAgent(userContent);
54
- }
26
+ await runAgent(userContent);
55
27
  }
56
28
  catch (err) {
57
29
  const msg = err instanceof Error ? err.message : String(err);
58
30
  log("ERROR", "error", msg);
59
31
  const isAbort = msg.includes("aborted") || msg.includes("abort");
60
- if (isGoalSetupCommand)
61
- goalSetupPanePendingRef.current = false;
62
32
  setLiveItems((prev) => [
63
33
  ...prev,
64
34
  isAbort
@@ -66,26 +36,6 @@ export async function submitPromptCommand({ trimmed, inputImages, cwd, currentMo
66
36
  : toErrorItem(err, getId()),
67
37
  ]);
68
38
  }
69
- finally {
70
- if (isGoalSetupCommand) {
71
- setActiveGoalReferences(undefined);
72
- const paneTransition = getGoalSetupPaneTransitionAfterRun({
73
- isGoalSetupCommand,
74
- setupPanePending: goalSetupPanePendingRef.current,
75
- });
76
- goalSetupPanePendingRef.current = false;
77
- if (goalModeStateRef.current !== "off") {
78
- await setGoalModeAndPrompt("off");
79
- }
80
- if (paneTransition) {
81
- goalAutoExpandRef.current = false;
82
- setGoalAutoExpand(false);
83
- setPlanAutoExpand(false);
84
- closeTaskPicker();
85
- openGoalPicker();
86
- }
87
- }
88
- }
89
39
  reloadCustomCommands();
90
40
  return true;
91
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"submit-prompt-command.js","sourceRoot":"","sources":["../../src/ui/submit-prompt-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit-prompt-command.js","sourceRoot":"","sources":["../../src/ui/submit-prompt-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG/F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB9C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,oBAAoB,GACO;IAC3B,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC7F,IAAI,CAAC,kBAAkB;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC;IAC5D,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,oBAAoB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE7F,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,mBAAmB,GAAG,SAAS,EAAE,cAAc,IAAI,IAAI,CAAC;IAC9D,MAAM,WAAW,GAAG,+BAA+B,CAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAElG,MAAM,QAAQ,GAAa;QACzB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACtD,EAAE,EAAE,KAAK,EAAE;KACZ,CAAC;IACF,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,GAAG,IAAI;YACP,OAAO;gBACL,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;gBAChE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,EAAE,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -6,7 +6,6 @@ interface UiSlashCommandActions {
6
6
  openThemeSelector: () => void;
7
7
  toggleMarkdown: () => void;
8
8
  clearApprovedPlan: () => void;
9
- openGoalsPicker: () => void;
10
9
  }
11
10
  export declare function handleUiSlashCommand(trimmed: string, actions: UiSlashCommandActions): Promise<boolean>;
12
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"submit-slash-commands.d.ts","sourceRoot":"","sources":["../../src/ui/submit-slash-commands.ts"],"names":[],"mappings":"AAAA,UAAU,qBAAqB;IAC7B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CA0ClB"}
1
+ {"version":3,"file":"submit-slash-commands.d.ts","sourceRoot":"","sources":["../../src/ui/submit-slash-commands.ts"],"names":[],"mappings":"AAAA,UAAU,qBAAqB;IAC7B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAqClB"}
@@ -27,10 +27,6 @@ export async function handleUiSlashCommand(trimmed, actions) {
27
27
  actions.clearApprovedPlan();
28
28
  return true;
29
29
  }
30
- if (trimmed === "/goals") {
31
- actions.openGoalsPicker();
32
- return true;
33
- }
34
30
  return false;
35
31
  }
36
32
  //# sourceMappingURL=submit-slash-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit-slash-commands.js","sourceRoot":"","sources":["../../src/ui/submit-slash-commands.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,OAA8B;IAE9B,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACnE,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACjD,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"submit-slash-commands.js","sourceRoot":"","sources":["../../src/ui/submit-slash-commands.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,OAA8B;IAE9B,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACnE,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACjD,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -3,7 +3,6 @@ import type { TerminalHistoryContext } from "./terminal-history.js";
3
3
  import { BLACK_CIRCLE } from "./constants/figures.js";
4
4
  import { normalizeStatusText } from "./terminal-history-format.js";
5
5
  export declare function renderStatusLine(glyph: string, text: string, context: TerminalHistoryContext, glyphColor: string, bold: boolean, textAlreadyStyled?: boolean): string;
6
- export declare function renderGoal(title: string, workerId: string | undefined, context: TerminalHistoryContext): string;
7
6
  export declare function renderError(headline: string, message: string, guidance: string, context: TerminalHistoryContext): string;
8
7
  export declare function renderStylePack(added: readonly LanguageId[], showSetupHint: boolean, context: TerminalHistoryContext): string;
9
8
  export declare function renderSetupHint(context: TerminalHistoryContext): string;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-status-renderers.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history-status-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAOL,mBAAmB,EAIpB,MAAM,8BAA8B,CAAC;AAStC,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EACb,iBAAiB,UAAQ,GACxB,MAAM,CAOR;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAER;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAcR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAkBR;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAYvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAOzF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAQxE;AAED,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAYR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,EAC5C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CASR;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAQR;AAED,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"terminal-history-status-renderers.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history-status-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAOL,mBAAmB,EAIpB,MAAM,8BAA8B,CAAC;AAStC,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EACb,iBAAiB,UAAQ,GACxB,MAAM,CAOR;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAcR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAkBR;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAYvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAOzF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAQxE;AAED,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAYR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,EAC5C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CASR;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAQR;AAED,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -9,9 +9,6 @@ export function renderStatusLine(glyph, text, context, glyphColor, bold, textAlr
9
9
  : color(bold ? glyphColor : context.theme.textDim, text, bold);
10
10
  return prefixFirstLine(body, prefix, continuation);
11
11
  }
12
- export function renderGoal(title, workerId, context) {
13
- return `${RESPONSE_LEFT_PADDING}${color(context.theme.success, "▶", true)} ${dim(context, "Goal: ")}${color(context.theme.success, title)}${workerId ? dim(context, ` · worker ${workerId}`) : ""}`;
14
- }
15
12
  export function renderError(headline, message, guidance, context) {
16
13
  const presentation = presentError({
17
14
  kind: "error",
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-status-renderers.js","sourceRoot":"","sources":["../../src/ui/terminal-history-status-renderers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,KAAK,EACL,KAAK,EACL,GAAG,EACH,gBAAgB,EAChB,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,IAAY,EACZ,OAA+B,EAC/B,UAAkB,EAClB,IAAa,EACb,iBAAiB,GAAG,KAAK;IAEzB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;IACrD,MAAM,YAAY,GAAG,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,iBAAiB;QAC5B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjE,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,QAA4B,EAC5B,OAA+B;IAE/B,OAAO,GAAG,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtM,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,OAAe,EACf,QAAgB,EAChB,OAA+B;IAE/B,MAAM,YAAY,GAAG,YAAY,CAAC;QAChC,IAAI,EAAE,OAAO;QACb,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,EAAE,EAAE,eAAe;KACpB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC5F,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAA4B,EAC5B,aAAsB,EACtB,OAA+B;IAE/B,MAAM,YAAY,GAAG,gBAAgB,CAAC;QACpC,IAAI,EAAE,YAAY;QAClB,KAAK;QACL,aAAa;QACb,EAAE,EAAE,oBAAoB;KACzB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;QAC9G,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KACpD,CAAC;IACF,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,CACtH,CAAC;IACJ,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,OAAO,oBAAoB,CACzB;QACE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;QAC9G,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC;QAC/B,EAAE;QACF,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;KACtH,EACD,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,QAAQ,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,OAA+B;IAC/E,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,OAAO,oBAAoB,CACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAC5D,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,YAAY,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA+B;IAC9D,OAAO,mBAAmB,CACxB;QACE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,yBAAyB,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;KACxG,EACD,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,EAAE,OAAO,EAAE,CAAC,EAAE,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,aAAqB,EACrB,QAAgB,EAChB,YAAoB,EACpB,WAAmB,EACnB,OAA+B;IAE/B,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,mBAAmB,CACxB;QACE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAAE;QAChF,GAAG,CACD,OAAO,EACP,KAAK,aAAa,MAAM,QAAQ,eAAe,gBAAgB,CAAC,YAAY,CAAC,MAAM,gBAAgB,CAAC,WAAW,CAAC,aAAa,SAAS,aAAa,CACpJ;KACF,EACD,OAAO,CAAC,KAAK,CAAC,OAAO,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAA4C,EAC5C,MAA0B,EAC1B,OAA+B;IAE/B,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,gBAAgB;KACW,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,MAAM;QAAE,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,WAAmB,EACnB,OAA+B;IAE/B,MAAM,YAAY,GAAG,eAAe,CAAC;QACnC,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,WAAW;QACX,EAAE,EAAE,mBAAmB;KACxB,CAAC,CAAC;IACH,OAAO,GAAG,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtO,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAE7C,SAAS,eAAe,CAAC,IAAY,EAAE,WAAmB,EAAE,UAAkB;IAC5E,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC;IAChE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"terminal-history-status-renderers.js","sourceRoot":"","sources":["../../src/ui/terminal-history-status-renderers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA4F9C,MAAM,WAAW,sBAAsB;IACrC,KAAK,CACH,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC5D,IAAI,CAAC;IACR,KAAK,IAAI,IAAI,CAAC;IACd,YAAY,IAAI,IAAI,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,MAAuB,GACxB,GAAE,6BAAkC,GAAG,sBAAsB,CA+E7D;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAiJR"}
1
+ {"version":3,"file":"terminal-history.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA0F9C,MAAM,WAAW,sBAAsB;IACrC,KAAK,CACH,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC5D,IAAI,CAAC;IACR,KAAK,IAAI,IAAI,CAAC;IACd,YAAY,IAAI,IAAI,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,MAAuB,GACxB,GAAE,6BAAkC,GAAG,sBAAsB,CAmF7D;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAmIR"}
@@ -2,6 +2,7 @@ import chalk from "chalk";
2
2
  import stringWidth from "string-width";
3
3
  import wrapAnsi from "wrap-ansi";
4
4
  import { getModel } from "../core/model-registry.js";
5
+ import { isPanelReplacedToolItem } from "./app-items.js";
5
6
  import { BLACK_CIRCLE, RETURN_SYMBOL } from "./constants/figures.js";
6
7
  import { SPINNER_FRAMES } from "./spinner-frames.js";
7
8
  import { getUserMessageDisplayParts } from "./utils/user-message-display.js";
@@ -14,8 +15,8 @@ import { createHyperlink } from "./utils/hyperlink.js";
14
15
  import { supportsHyperlinks } from "./utils/supports-hyperlinks.js";
15
16
  import { shouldSeparateTranscriptItems } from "./transcript/spacing.js";
16
17
  import { MAX_OUTPUT_LINES, RESPONSE_LEFT_PADDING, USER_MESSAGE_BACKGROUND, USER_MESSAGE_BOTTOM_FILL, USER_MESSAGE_HORIZONTAL_PADDING, USER_MESSAGE_PREFIX, USER_MESSAGE_TOP_FILL, block, color, dim, formatCompactTokens, formatDuration, formatHistoryWrite, gradientLine, indent, stripAnsi, truncatePlain, userChipSegment, wrapPlain, } from "./terminal-history-format.js";
17
- import { renderCompacted, renderCompacting, renderError, renderGoal, renderSetupHint, renderStatusLine, renderStepDone, renderStylePack, renderUpdateNotice, } from "./terminal-history-status-renderers.js";
18
- import { presentDuration, presentGoalAgentTransition, presentInfo, presentModelTransition, presentPlanEvent, presentQueued, presentStopped, presentTask, presentThemeTransition, } from "./transcript/presentation.js";
18
+ import { renderCompacted, renderCompacting, renderError, renderSetupHint, renderStatusLine, renderStepDone, renderStylePack, renderUpdateNotice, } from "./terminal-history-status-renderers.js";
19
+ import { presentDuration, presentInfo, presentModelTransition, presentPlanEvent, presentQueued, presentStopped, presentTask, presentThemeTransition, } from "./transcript/presentation.js";
19
20
  import { toolTonePalette } from "./transcript/tool-presentation.js";
20
21
  const LOGO_LINES = [" ▄▀▀▀ ▄▀▀▀", " █ ▀█ █ ▀█", " ▀▄▄▀ ▀▄▄▀"];
21
22
  const PLAN_MODE_LOGO = [
@@ -51,7 +52,7 @@ const GAP = " ";
51
52
  const LOGO_WIDTH = 9;
52
53
  const SIDE_BY_SIDE_MIN = LOGO_WIDTH + GAP.length + 62;
53
54
  const COMPACT_TOOLS = new Set(["read", "grep", "find", "ls", "source_path"]);
54
- const STATE_TOOLS = new Set(["tasks", "goals"]);
55
+ const STATE_TOOLS = new Set(["tasks"]);
55
56
  const SERVER_STYLE_TOOLS = new Set(["web_search"]);
56
57
  export function createTerminalHistoryPrinter({ stream = process.stdout, } = {}) {
57
58
  const printed = new Set();
@@ -62,6 +63,11 @@ export function createTerminalHistoryPrinter({ stream = process.stdout, } = {})
62
63
  for (const item of items) {
63
64
  if (!options?.force && printed.has(item.id))
64
65
  continue;
66
+ // Tool activity is shown live in the pinned LiveToolPanel, not the
67
+ // scrollback transcript. Skip without touching spacing state so the
68
+ // surrounding non-tool rows keep their separators.
69
+ if (isPanelReplacedToolItem(item))
70
+ continue;
65
71
  const output = serializeCompletedItemToTerminalHistory(item, context);
66
72
  const endsWithBlankLine = item.kind === "banner";
67
73
  // A continuation assistant chunk is the next paragraph of a response
@@ -159,14 +165,10 @@ export function serializeCompletedItemToTerminalHistory(item, context) {
159
165
  return renderServerToolDone(item.name, item.input, item.resultType, item.durationMs, context);
160
166
  case "subagent_group":
161
167
  return renderSubAgentGroup(item.agents, item.aborted, context);
162
- case "goal":
163
- return renderGoal(item.title, item.workerId, context);
164
168
  case "task": {
165
169
  const presentation = presentTask(item);
166
170
  return renderStatusLine(presentation.glyph.trim(), `${dim(context, presentation.label ?? "")}${color(context.theme.commandColor, presentation.text, true)}`, context, context.theme.commandColor, presentation.bold, true);
167
171
  }
168
- case "goal_progress":
169
- return renderGoalProgress(item, context);
170
172
  case "error":
171
173
  return renderError(item.headline, item.message, item.guidance, context);
172
174
  case "info": {
@@ -191,10 +193,6 @@ export function serializeCompletedItemToTerminalHistory(item, context) {
191
193
  return renderSessionSummary(item.summary, context);
192
194
  case "plan_transition":
193
195
  return renderPlanModeLogo(context);
194
- case "goal_agent_transition": {
195
- const presentation = presentGoalAgentTransition(item);
196
- return renderStatusLine(presentation.glyph.trim(), presentation.text, context, context.theme.commandColor, presentation.bold);
197
- }
198
196
  case "model_transition": {
199
197
  const presentation = presentModelTransition(item);
200
198
  return renderStatusLine(presentation.glyph.trim(), `${dim(context, presentation.label ?? "")}${color(context.theme.commandColor, presentation.text, true)}`, context, context.theme.commandColor, presentation.bold, true);
@@ -259,7 +257,7 @@ function renderBanner(context) {
259
257
  const home = process.env.HOME ?? "";
260
258
  const displayPath = home && context.cwd.startsWith(home) ? `~${context.cwd.slice(home.length)}` : context.cwd;
261
259
  const logo = LOGO_LINES.map((lineText) => gradientLine(lineText, GRADIENT));
262
- const shortcuts = `${color(context.theme.primary, "/goal")} ${dim(context, "start goal · ")}${color(context.theme.primary, "Ctrl+T")} ${dim(context, "tasks · ")}${color(context.theme.primary, "Shift+Tab")} ${dim(context, "toggle thinking")}`;
260
+ const shortcuts = `${color(context.theme.primary, "Ctrl+T")} ${dim(context, "tasks · ")}${color(context.theme.primary, "Ctrl+S")} ${dim(context, "skills · ")}${color(context.theme.primary, "Shift+Tab")} ${dim(context, "toggle thinking")}`;
263
261
  if (context.columns < SIDE_BY_SIDE_MIN) {
264
262
  return block([
265
263
  "",
@@ -434,45 +432,6 @@ function renderSubAgentGroup(agents, aborted, context) {
434
432
  });
435
433
  return block(lines);
436
434
  }
437
- function renderGoalProgress(item, context) {
438
- const isError = item.status === "failed" || item.status === "fail" || item.status === "blocked";
439
- const status = isError
440
- ? "error"
441
- : item.phase === "worker_finished" ||
442
- item.phase === "verifier_finished" ||
443
- item.phase === "terminal"
444
- ? "done"
445
- : "running";
446
- const labelColor = isError
447
- ? context.theme.error
448
- : item.phase === "worker_finished" || item.phase === "terminal"
449
- ? context.theme.success
450
- : item.phase === "verifier_finished" || item.phase === "verifier_started"
451
- ? context.theme.accent
452
- : item.phase === "orchestrator_reviewing" || item.phase === "orchestrator_working"
453
- ? context.theme.secondary
454
- : item.phase === "continuing"
455
- ? context.theme.warning
456
- : context.theme.primary;
457
- const header = `${toolHeader(status, color(labelColor, item.title, true), "", context, {
458
- dotColor: labelColor,
459
- indicator: BLACK_CIRCLE,
460
- })}${item.workerId ? dim(context, ` · worker ${item.workerId}`) : ""}`;
461
- const bodyLines = [];
462
- if (item.detail) {
463
- bodyLines.push(dim(context, wrapPlain(item.detail, context.columns - 8)));
464
- }
465
- for (const row of item.summaryRows ?? []) {
466
- bodyLines.push(`${dim(context, row.label.padEnd(12))}${color(context.theme.text, row.value)}${row.detail ? dim(context, ` · ${row.detail}`) : ""}`);
467
- }
468
- for (const section of item.summarySections ?? []) {
469
- bodyLines.push(dim(context, section.title));
470
- for (const sectionLine of section.lines) {
471
- bodyLines.push(`${color(context.theme.text, "• ")}${color(context.theme.text, sectionLine)}`);
472
- }
473
- }
474
- return block([header, ...messageResponse(bodyLines, context)]);
475
- }
476
435
  function renderServerStyleToolDone(name, args, result, isError, context) {
477
436
  const { label, detail } = getToolHeaderParts(name, args);
478
437
  const searchCount = (result.match(/^\d+\./gm) ?? []).length;
@@ -638,7 +597,6 @@ function getToolHeaderParts(name, args) {
638
597
  return { label: displayName, detail: url.length > 60 ? `${url.slice(0, 57)}…` : url };
639
598
  }
640
599
  case "tasks":
641
- case "goals":
642
600
  return { label: displayName, detail: String(args.action ?? "") };
643
601
  default:
644
602
  return { label: displayName, detail: name.startsWith("mcp__") ? getMCPDetailArg(args) : "" };
@@ -680,8 +638,6 @@ function toolDisplayName(name) {
680
638
  return "Source";
681
639
  case "tasks":
682
640
  return "Task";
683
- case "goals":
684
- return "Goal";
685
641
  default:
686
642
  return snakeToTitle(name);
687
643
  }
@@ -784,8 +740,7 @@ function getInlineSummary(name, result, isError) {
784
740
  return extractSourcePath(result) ? shortenPath(extractSourcePath(result) ?? "") : "resolved";
785
741
  case "task_stop":
786
742
  return result.split("\n")[0] ?? "stopped";
787
- case "tasks":
788
- case "goals": {
743
+ case "tasks": {
789
744
  const quoted = result.match(/"([^"]+)"/)?.[1];
790
745
  if (quoted)
791
746
  return quoted.length > 50 ? `${quoted.slice(0, 47)}…` : quoted;