@kenkaiiii/ggcoder 4.3.219 → 4.3.220

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 (368) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +39 -20
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/agent-session-compaction.test.js +0 -7
  5. package/dist/core/agent-session-compaction.test.js.map +1 -1
  6. package/dist/core/agent-session.d.ts +0 -23
  7. package/dist/core/agent-session.d.ts.map +1 -1
  8. package/dist/core/agent-session.js +4 -98
  9. package/dist/core/agent-session.js.map +1 -1
  10. package/dist/core/continue-replay-inventory.test.js +1 -1
  11. package/dist/core/continue-replay-inventory.test.js.map +1 -1
  12. package/dist/core/goal-controller.d.ts +2 -0
  13. package/dist/core/goal-controller.d.ts.map +1 -1
  14. package/dist/core/goal-controller.js +152 -8
  15. package/dist/core/goal-controller.js.map +1 -1
  16. package/dist/core/goal-controller.test.js +232 -3
  17. package/dist/core/goal-controller.test.js.map +1 -1
  18. package/dist/core/goal-overhead-harness.d.ts +33 -0
  19. package/dist/core/goal-overhead-harness.d.ts.map +1 -0
  20. package/dist/core/goal-overhead-harness.js +268 -0
  21. package/dist/core/goal-overhead-harness.js.map +1 -0
  22. package/dist/core/goal-store.d.ts +1 -0
  23. package/dist/core/goal-store.d.ts.map +1 -1
  24. package/dist/core/goal-store.js +43 -3
  25. package/dist/core/goal-store.js.map +1 -1
  26. package/dist/core/goal-store.test.js +13 -0
  27. package/dist/core/goal-store.test.js.map +1 -1
  28. package/dist/core/goal-worker.d.ts.map +1 -1
  29. package/dist/core/goal-worker.js +17 -11
  30. package/dist/core/goal-worker.js.map +1 -1
  31. package/dist/core/goal-worker.test.js +41 -8
  32. package/dist/core/goal-worker.test.js.map +1 -1
  33. package/dist/core/goal-worktree.d.ts +21 -0
  34. package/dist/core/goal-worktree.d.ts.map +1 -1
  35. package/dist/core/goal-worktree.js +71 -1
  36. package/dist/core/goal-worktree.js.map +1 -1
  37. package/dist/core/goal-worktree.test.js +127 -2
  38. package/dist/core/goal-worktree.test.js.map +1 -1
  39. package/dist/core/prompt-commands.js +2 -2
  40. package/dist/core/prompt-commands.test.js +1 -1
  41. package/dist/core/prompt-commands.test.js.map +1 -1
  42. package/dist/core/runtime-mode.d.ts +7 -0
  43. package/dist/core/runtime-mode.d.ts.map +1 -1
  44. package/dist/core/runtime-mode.js +6 -0
  45. package/dist/core/runtime-mode.js.map +1 -1
  46. package/dist/core/session-manager.d.ts +3 -0
  47. package/dist/core/session-manager.d.ts.map +1 -1
  48. package/dist/core/session-manager.js +16 -0
  49. package/dist/core/session-manager.js.map +1 -1
  50. package/dist/core/session-restore-display.test.js +84 -0
  51. package/dist/core/session-restore-display.test.js.map +1 -1
  52. package/dist/core/slash-commands.d.ts +0 -2
  53. package/dist/core/slash-commands.d.ts.map +1 -1
  54. package/dist/core/slash-commands.js +0 -15
  55. package/dist/core/slash-commands.js.map +1 -1
  56. package/dist/system-prompt.d.ts +1 -1
  57. package/dist/system-prompt.d.ts.map +1 -1
  58. package/dist/system-prompt.js +13 -1
  59. package/dist/system-prompt.js.map +1 -1
  60. package/dist/system-prompt.test.js +2 -2
  61. package/dist/system-prompt.test.js.map +1 -1
  62. package/dist/tools/bash.d.ts +2 -0
  63. package/dist/tools/bash.d.ts.map +1 -1
  64. package/dist/tools/bash.js +5 -2
  65. package/dist/tools/bash.js.map +1 -1
  66. package/dist/tools/edit.d.ts +2 -0
  67. package/dist/tools/edit.d.ts.map +1 -1
  68. package/dist/tools/edit.js +16 -3
  69. package/dist/tools/edit.js.map +1 -1
  70. package/dist/tools/enter-plan.d.ts +8 -0
  71. package/dist/tools/enter-plan.d.ts.map +1 -0
  72. package/dist/tools/enter-plan.js +27 -0
  73. package/dist/tools/enter-plan.js.map +1 -0
  74. package/dist/tools/exit-plan.d.ts +8 -0
  75. package/dist/tools/exit-plan.d.ts.map +1 -0
  76. package/dist/tools/exit-plan.js +35 -0
  77. package/dist/tools/exit-plan.js.map +1 -0
  78. package/dist/tools/goals.d.ts +8 -5
  79. package/dist/tools/goals.d.ts.map +1 -1
  80. package/dist/tools/goals.js +124 -49
  81. package/dist/tools/goals.js.map +1 -1
  82. package/dist/tools/goals.test.js +356 -11
  83. package/dist/tools/goals.test.js.map +1 -1
  84. package/dist/tools/index.d.ts +10 -0
  85. package/dist/tools/index.d.ts.map +1 -1
  86. package/dist/tools/index.js +15 -4
  87. package/dist/tools/index.js.map +1 -1
  88. package/dist/tools/plan-mode.test.js +63 -24
  89. package/dist/tools/plan-mode.test.js.map +1 -1
  90. package/dist/tools/prompt-hints.d.ts.map +1 -1
  91. package/dist/tools/prompt-hints.js +4 -0
  92. package/dist/tools/prompt-hints.js.map +1 -1
  93. package/dist/tools/subagent.d.ts +3 -1
  94. package/dist/tools/subagent.d.ts.map +1 -1
  95. package/dist/tools/subagent.js +5 -2
  96. package/dist/tools/subagent.js.map +1 -1
  97. package/dist/tools/write.d.ts +2 -0
  98. package/dist/tools/write.d.ts.map +1 -1
  99. package/dist/tools/write.js +23 -3
  100. package/dist/tools/write.js.map +1 -1
  101. package/dist/ui/App.d.ts +9 -6
  102. package/dist/ui/App.d.ts.map +1 -1
  103. package/dist/ui/App.js +572 -925
  104. package/dist/ui/App.js.map +1 -1
  105. package/dist/ui/app-items.d.ts +1 -0
  106. package/dist/ui/app-items.d.ts.map +1 -1
  107. package/dist/ui/app-items.js +1 -1
  108. package/dist/ui/app-items.js.map +1 -1
  109. package/dist/ui/app-state-persistence.test.js +22 -22
  110. package/dist/ui/app-state-persistence.test.js.map +1 -1
  111. package/dist/ui/components/AssistantMessage.test.js +7 -7
  112. package/dist/ui/components/AssistantMessage.test.js.map +1 -1
  113. package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -1
  114. package/dist/ui/components/BackgroundTasksBar.js +6 -6
  115. package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
  116. package/dist/ui/components/ChatFooterPane.d.ts +29 -0
  117. package/dist/ui/components/ChatFooterPane.d.ts.map +1 -0
  118. package/dist/ui/components/ChatFooterPane.js +16 -0
  119. package/dist/ui/components/ChatFooterPane.js.map +1 -0
  120. package/dist/ui/components/ChatInputStack.d.ts +34 -0
  121. package/dist/ui/components/ChatInputStack.d.ts.map +1 -0
  122. package/dist/ui/components/ChatInputStack.js +9 -0
  123. package/dist/ui/components/ChatInputStack.js.map +1 -0
  124. package/dist/ui/components/ChatLayout.d.ts +23 -0
  125. package/dist/ui/components/ChatLayout.d.ts.map +1 -0
  126. package/dist/ui/components/ChatLayout.js +16 -0
  127. package/dist/ui/components/ChatLayout.js.map +1 -0
  128. package/dist/ui/components/ChatLivePane.d.ts +18 -0
  129. package/dist/ui/components/ChatLivePane.d.ts.map +1 -0
  130. package/dist/ui/components/ChatLivePane.js +8 -0
  131. package/dist/ui/components/ChatLivePane.js.map +1 -0
  132. package/dist/ui/components/ChatScreen.d.ts +118 -0
  133. package/dist/ui/components/ChatScreen.d.ts.map +1 -0
  134. package/dist/ui/components/ChatScreen.js +14 -0
  135. package/dist/ui/components/ChatScreen.js.map +1 -0
  136. package/dist/ui/components/ChatStatusRow.d.ts +34 -0
  137. package/dist/ui/components/ChatStatusRow.d.ts.map +1 -0
  138. package/dist/ui/components/ChatStatusRow.js +11 -0
  139. package/dist/ui/components/ChatStatusRow.js.map +1 -0
  140. package/dist/ui/components/CompactionNotice.d.ts +4 -2
  141. package/dist/ui/components/CompactionNotice.d.ts.map +1 -1
  142. package/dist/ui/components/CompactionNotice.js +4 -4
  143. package/dist/ui/components/CompactionNotice.js.map +1 -1
  144. package/dist/ui/components/Footer.d.ts +6 -3
  145. package/dist/ui/components/Footer.d.ts.map +1 -1
  146. package/dist/ui/components/Footer.js +14 -4
  147. package/dist/ui/components/Footer.js.map +1 -1
  148. package/dist/ui/components/FooterStatusRow.d.ts +20 -0
  149. package/dist/ui/components/FooterStatusRow.d.ts.map +1 -0
  150. package/dist/ui/components/FooterStatusRow.js +10 -0
  151. package/dist/ui/components/FooterStatusRow.js.map +1 -0
  152. package/dist/ui/components/FullScreenOverlayRouter.d.ts +19 -0
  153. package/dist/ui/components/FullScreenOverlayRouter.d.ts.map +1 -0
  154. package/dist/ui/components/FullScreenOverlayRouter.js +18 -0
  155. package/dist/ui/components/FullScreenOverlayRouter.js.map +1 -0
  156. package/dist/ui/components/GoalOverlay.d.ts +2 -1
  157. package/dist/ui/components/GoalOverlay.d.ts.map +1 -1
  158. package/dist/ui/components/GoalOverlay.js +11 -6
  159. package/dist/ui/components/GoalOverlay.js.map +1 -1
  160. package/dist/ui/components/GoalStatusBar.d.ts +2 -0
  161. package/dist/ui/components/GoalStatusBar.d.ts.map +1 -1
  162. package/dist/ui/components/GoalStatusBar.js +27 -11
  163. package/dist/ui/components/GoalStatusBar.js.map +1 -1
  164. package/dist/ui/components/GoalStatusBar.test.d.ts +2 -0
  165. package/dist/ui/components/GoalStatusBar.test.d.ts.map +1 -0
  166. package/dist/ui/components/GoalStatusBar.test.js +17 -0
  167. package/dist/ui/components/GoalStatusBar.test.js.map +1 -0
  168. package/dist/ui/components/InputArea.d.ts.map +1 -1
  169. package/dist/ui/components/InputArea.js +6 -5
  170. package/dist/ui/components/InputArea.js.map +1 -1
  171. package/dist/ui/components/PlanOverlay.d.ts +7 -0
  172. package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
  173. package/dist/ui/components/PlanOverlay.js +16 -2
  174. package/dist/ui/components/PlanOverlay.js.map +1 -1
  175. package/dist/ui/components/PlanOverlay.test.d.ts +2 -0
  176. package/dist/ui/components/PlanOverlay.test.d.ts.map +1 -0
  177. package/dist/ui/components/PlanOverlay.test.js +24 -0
  178. package/dist/ui/components/PlanOverlay.test.js.map +1 -0
  179. package/dist/ui/components/QueueIndicator.d.ts +9 -0
  180. package/dist/ui/components/QueueIndicator.d.ts.map +1 -0
  181. package/dist/ui/components/QueueIndicator.js +9 -0
  182. package/dist/ui/components/QueueIndicator.js.map +1 -0
  183. package/dist/ui/components/ServerToolExecution.d.ts +2 -0
  184. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
  185. package/dist/ui/components/ServerToolExecution.js +3 -2
  186. package/dist/ui/components/ServerToolExecution.js.map +1 -1
  187. package/dist/ui/components/StreamingArea.js +1 -1
  188. package/dist/ui/components/StreamingArea.js.map +1 -1
  189. package/dist/ui/components/SubAgentPanel.d.ts +2 -1
  190. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
  191. package/dist/ui/components/SubAgentPanel.js +2 -2
  192. package/dist/ui/components/SubAgentPanel.js.map +1 -1
  193. package/dist/ui/components/ToolExecution.d.ts +2 -0
  194. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  195. package/dist/ui/components/ToolExecution.js +13 -11
  196. package/dist/ui/components/ToolExecution.js.map +1 -1
  197. package/dist/ui/components/ToolGroupExecution.d.ts +2 -1
  198. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
  199. package/dist/ui/components/ToolGroupExecution.js +5 -3
  200. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  201. package/dist/ui/duration-format.d.ts +2 -0
  202. package/dist/ui/duration-format.d.ts.map +1 -0
  203. package/dist/ui/duration-format.js +9 -0
  204. package/dist/ui/duration-format.js.map +1 -0
  205. package/dist/ui/duration-summary.d.ts +2 -0
  206. package/dist/ui/duration-summary.d.ts.map +1 -0
  207. package/dist/ui/duration-summary.js +66 -0
  208. package/dist/ui/duration-summary.js.map +1 -0
  209. package/dist/ui/error-item.d.ts +8 -0
  210. package/dist/ui/error-item.d.ts.map +1 -0
  211. package/dist/ui/error-item.js +32 -0
  212. package/dist/ui/error-item.js.map +1 -0
  213. package/dist/ui/footer-status-layout.test.js +4 -3
  214. package/dist/ui/footer-status-layout.test.js.map +1 -1
  215. package/dist/ui/goal-events.d.ts +1 -0
  216. package/dist/ui/goal-events.d.ts.map +1 -1
  217. package/dist/ui/goal-events.js +2 -1
  218. package/dist/ui/goal-events.js.map +1 -1
  219. package/dist/ui/goal-events.test.js +16 -0
  220. package/dist/ui/goal-events.test.js.map +1 -1
  221. package/dist/ui/goal-lifecycle-orchestration.test.js +105 -18
  222. package/dist/ui/goal-lifecycle-orchestration.test.js.map +1 -1
  223. package/dist/ui/goal-progress.d.ts +1 -1
  224. package/dist/ui/goal-progress.d.ts.map +1 -1
  225. package/dist/ui/goal-progress.js +11 -13
  226. package/dist/ui/goal-progress.js.map +1 -1
  227. package/dist/ui/goal-run-helpers.d.ts +16 -0
  228. package/dist/ui/goal-run-helpers.d.ts.map +1 -0
  229. package/dist/ui/goal-run-helpers.js +61 -0
  230. package/dist/ui/goal-run-helpers.js.map +1 -0
  231. package/dist/ui/goal-status-bar.test.js +8 -6
  232. package/dist/ui/goal-status-bar.test.js.map +1 -1
  233. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +38 -0
  234. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +1 -0
  235. package/dist/ui/hooks/useChatLayoutMeasurements.js +71 -0
  236. package/dist/ui/hooks/useChatLayoutMeasurements.js.map +1 -0
  237. package/dist/ui/hooks/useGoalPickerController.d.ts +22 -0
  238. package/dist/ui/hooks/useGoalPickerController.d.ts.map +1 -0
  239. package/dist/ui/hooks/useGoalPickerController.js +35 -0
  240. package/dist/ui/hooks/useGoalPickerController.js.map +1 -0
  241. package/dist/ui/hooks/useTaskPickerController.d.ts +19 -0
  242. package/dist/ui/hooks/useTaskPickerController.d.ts.map +1 -0
  243. package/dist/ui/hooks/useTaskPickerController.js +41 -0
  244. package/dist/ui/hooks/useTaskPickerController.js.map +1 -0
  245. package/dist/ui/hooks/useTranscriptHistory.d.ts +34 -0
  246. package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -0
  247. package/dist/ui/hooks/useTranscriptHistory.js +96 -0
  248. package/dist/ui/hooks/useTranscriptHistory.js.map +1 -0
  249. package/dist/ui/layout-decisions.d.ts +3 -12
  250. package/dist/ui/layout-decisions.d.ts.map +1 -1
  251. package/dist/ui/layout-decisions.js +7 -65
  252. package/dist/ui/layout-decisions.js.map +1 -1
  253. package/dist/ui/prompt-routing.d.ts.map +1 -1
  254. package/dist/ui/prompt-routing.js +36 -2
  255. package/dist/ui/prompt-routing.js.map +1 -1
  256. package/dist/ui/prompt-routing.test.d.ts +2 -0
  257. package/dist/ui/prompt-routing.test.d.ts.map +1 -0
  258. package/dist/ui/prompt-routing.test.js +48 -0
  259. package/dist/ui/prompt-routing.test.js.map +1 -0
  260. package/dist/ui/render.d.ts +9 -6
  261. package/dist/ui/render.d.ts.map +1 -1
  262. package/dist/ui/render.js +3 -2
  263. package/dist/ui/render.js.map +1 -1
  264. package/dist/ui/slash-command-images.test.js +3 -2
  265. package/dist/ui/slash-command-images.test.js.map +1 -1
  266. package/dist/ui/submit-prompt-command.d.ts +40 -0
  267. package/dist/ui/submit-prompt-command.d.ts.map +1 -0
  268. package/dist/ui/submit-prompt-command.js +92 -0
  269. package/dist/ui/submit-prompt-command.js.map +1 -0
  270. package/dist/ui/submit-slash-commands.d.ts +13 -0
  271. package/dist/ui/submit-slash-commands.d.ts.map +1 -0
  272. package/dist/ui/submit-slash-commands.js +36 -0
  273. package/dist/ui/submit-slash-commands.js.map +1 -0
  274. package/dist/ui/terminal-history-format.d.ts +1 -0
  275. package/dist/ui/terminal-history-format.d.ts.map +1 -1
  276. package/dist/ui/terminal-history-format.js +2 -1
  277. package/dist/ui/terminal-history-format.js.map +1 -1
  278. package/dist/ui/terminal-history-spacing.d.ts +1 -2
  279. package/dist/ui/terminal-history-spacing.d.ts.map +1 -1
  280. package/dist/ui/terminal-history-spacing.js +1 -28
  281. package/dist/ui/terminal-history-spacing.js.map +1 -1
  282. package/dist/ui/terminal-history-status-renderers.d.ts +2 -2
  283. package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -1
  284. package/dist/ui/terminal-history-status-renderers.js +36 -17
  285. package/dist/ui/terminal-history-status-renderers.js.map +1 -1
  286. package/dist/ui/terminal-history.d.ts.map +1 -1
  287. package/dist/ui/terminal-history.js +55 -24
  288. package/dist/ui/terminal-history.js.map +1 -1
  289. package/dist/ui/terminal-history.test.js +2 -1
  290. package/dist/ui/terminal-history.test.js.map +1 -1
  291. package/dist/ui/tool-group-summary.d.ts +2 -2
  292. package/dist/ui/tool-group-summary.d.ts.map +1 -1
  293. package/dist/ui/tool-group-summary.js +18 -18
  294. package/dist/ui/tool-group-summary.js.map +1 -1
  295. package/dist/ui/transcript/GoalRows.d.ts +10 -0
  296. package/dist/ui/transcript/GoalRows.d.ts.map +1 -0
  297. package/dist/ui/transcript/GoalRows.js +35 -0
  298. package/dist/ui/transcript/GoalRows.js.map +1 -0
  299. package/dist/ui/transcript/MiscRows.d.ts +23 -0
  300. package/dist/ui/transcript/MiscRows.d.ts.map +1 -0
  301. package/dist/ui/transcript/MiscRows.js +41 -0
  302. package/dist/ui/transcript/MiscRows.js.map +1 -0
  303. package/dist/ui/transcript/StatusRow.d.ts +14 -0
  304. package/dist/ui/transcript/StatusRow.d.ts.map +1 -0
  305. package/dist/ui/transcript/StatusRow.js +14 -0
  306. package/dist/ui/transcript/StatusRow.js.map +1 -0
  307. package/dist/ui/transcript/ToolRows.d.ts +20 -0
  308. package/dist/ui/transcript/ToolRows.d.ts.map +1 -0
  309. package/dist/ui/transcript/ToolRows.js +25 -0
  310. package/dist/ui/transcript/ToolRows.js.map +1 -0
  311. package/dist/ui/transcript/TranscriptItemFrame.d.ts +8 -0
  312. package/dist/ui/transcript/TranscriptItemFrame.d.ts.map +1 -0
  313. package/dist/ui/transcript/TranscriptItemFrame.js +9 -0
  314. package/dist/ui/transcript/TranscriptItemFrame.js.map +1 -0
  315. package/dist/ui/transcript/TranscriptRenderer.d.ts +22 -0
  316. package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -0
  317. package/dist/ui/transcript/TranscriptRenderer.js +84 -0
  318. package/dist/ui/transcript/TranscriptRenderer.js.map +1 -0
  319. package/dist/ui/transcript/presentation.d.ts +76 -0
  320. package/dist/ui/transcript/presentation.d.ts.map +1 -0
  321. package/dist/ui/transcript/presentation.js +109 -0
  322. package/dist/ui/transcript/presentation.js.map +1 -0
  323. package/dist/ui/transcript/spacing.d.ts +29 -0
  324. package/dist/ui/transcript/spacing.d.ts.map +1 -0
  325. package/dist/ui/transcript/spacing.js +91 -0
  326. package/dist/ui/transcript/spacing.js.map +1 -0
  327. package/dist/ui/transcript/spacing.test.d.ts +2 -0
  328. package/dist/ui/transcript/spacing.test.d.ts.map +1 -0
  329. package/dist/ui/transcript/spacing.test.js +21 -0
  330. package/dist/ui/transcript/spacing.test.js.map +1 -0
  331. package/dist/ui/transcript/tool-presentation.d.ts +12 -0
  332. package/dist/ui/transcript/tool-presentation.d.ts.map +1 -0
  333. package/dist/ui/transcript/tool-presentation.js +55 -0
  334. package/dist/ui/transcript/tool-presentation.js.map +1 -0
  335. package/dist/ui/tui-history-parity.test.js +3 -2
  336. package/dist/ui/tui-history-parity.test.js.map +1 -1
  337. package/dist/utils/plan-steps.d.ts.map +1 -1
  338. package/dist/utils/plan-steps.js +5 -1
  339. package/dist/utils/plan-steps.js.map +1 -1
  340. package/dist/utils/plan-steps.test.d.ts +2 -0
  341. package/dist/utils/plan-steps.test.d.ts.map +1 -0
  342. package/dist/utils/plan-steps.test.js +16 -0
  343. package/dist/utils/plan-steps.test.js.map +1 -0
  344. package/package.json +6 -6
  345. package/dist/core/repomap-budget.d.ts +0 -7
  346. package/dist/core/repomap-budget.d.ts.map +0 -1
  347. package/dist/core/repomap-budget.js +0 -10
  348. package/dist/core/repomap-budget.js.map +0 -1
  349. package/dist/core/repomap-budget.test.d.ts +0 -2
  350. package/dist/core/repomap-budget.test.d.ts.map +0 -1
  351. package/dist/core/repomap-budget.test.js +0 -26
  352. package/dist/core/repomap-budget.test.js.map +0 -1
  353. package/dist/core/repomap-context.d.ts +0 -11
  354. package/dist/core/repomap-context.d.ts.map +0 -1
  355. package/dist/core/repomap-context.js +0 -68
  356. package/dist/core/repomap-context.js.map +0 -1
  357. package/dist/core/repomap-context.test.d.ts +0 -2
  358. package/dist/core/repomap-context.test.d.ts.map +0 -1
  359. package/dist/core/repomap-context.test.js +0 -47
  360. package/dist/core/repomap-context.test.js.map +0 -1
  361. package/dist/core/repomap.d.ts +0 -74
  362. package/dist/core/repomap.d.ts.map +0 -1
  363. package/dist/core/repomap.js +0 -906
  364. package/dist/core/repomap.js.map +0 -1
  365. package/dist/core/repomap.test.d.ts +0 -2
  366. package/dist/core/repomap.test.d.ts.map +0 -1
  367. package/dist/core/repomap.test.js +0 -494
  368. package/dist/core/repomap.test.js.map +0 -1
@@ -0,0 +1,92 @@
1
+ import { getModel } from "../core/model-registry.js";
2
+ import { PROMPT_COMMANDS } from "../core/prompt-commands.js";
3
+ import { buildGoalReferenceContext } from "../core/goal-references.js";
4
+ import { log } from "../core/logger.js";
5
+ import { buildUserContentWithAttachments, isGoalPromptCommandName, routePromptCommandInput, runGoalPromptSetupSequence, } from "./prompt-routing.js";
6
+ import { getGoalSetupPaneTransitionAfterRun } from "./layout-decisions.js";
7
+ 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, }) {
9
+ const promptCommandRoute = routePromptCommandInput(trimmed, PROMPT_COMMANDS, customCommands);
10
+ if (!promptCommandRoute)
11
+ return false;
12
+ const { cmdName, cmdArgs, fullPrompt } = promptCommandRoute;
13
+ log("INFO", "command", `Prompt command: /${cmdName}${cmdArgs ? ` (args: ${cmdArgs})` : ""}`);
14
+ 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
+ const modelInfo = getModel(currentModel);
29
+ const modelSupportsImages = modelInfo?.supportsImages ?? true;
30
+ const userContent = buildUserContentWithAttachments(promptForAgent, inputImages, modelSupportsImages);
31
+ const userItem = {
32
+ kind: "user",
33
+ text: trimmed,
34
+ imageCount: hasImages ? inputImages.length : undefined,
35
+ id: getId(),
36
+ };
37
+ setLastUserMessage(trimmed);
38
+ setDoneStatus(null);
39
+ finalizeSubmittedUserItem(userItem);
40
+ 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
+ }
55
+ }
56
+ catch (err) {
57
+ const msg = err instanceof Error ? err.message : String(err);
58
+ log("ERROR", "error", msg);
59
+ const isAbort = msg.includes("aborted") || msg.includes("abort");
60
+ if (isGoalSetupCommand)
61
+ goalSetupPanePendingRef.current = false;
62
+ setLiveItems((prev) => [
63
+ ...prev,
64
+ isAbort
65
+ ? { kind: "stopped", text: "Request was stopped.", id: getId() }
66
+ : toErrorItem(err, getId()),
67
+ ]);
68
+ }
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
+ reloadCustomCommands();
90
+ return true;
91
+ }
92
+ //# sourceMappingURL=submit-prompt-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-prompt-command.js","sourceRoot":"","sources":["../../src/ui/submit-prompt-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ interface UiSlashCommandActions {
2
+ openModelSelector: () => void;
3
+ compactConversation: () => Promise<void>;
4
+ quit: () => void;
5
+ clearSession: () => void;
6
+ openThemeSelector: () => void;
7
+ toggleMarkdown: () => void;
8
+ clearApprovedPlan: () => void;
9
+ openGoalsPicker: () => void;
10
+ }
11
+ export declare function handleUiSlashCommand(trimmed: string, actions: UiSlashCommandActions): Promise<boolean>;
12
+ export {};
13
+ //# sourceMappingURL=submit-slash-commands.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,36 @@
1
+ export async function handleUiSlashCommand(trimmed, actions) {
2
+ if (trimmed === "/model" || trimmed === "/m" || trimmed === "/models") {
3
+ actions.openModelSelector();
4
+ return true;
5
+ }
6
+ if (trimmed === "/compact" || trimmed === "/c") {
7
+ await actions.compactConversation();
8
+ return true;
9
+ }
10
+ if (trimmed === "/quit" || trimmed === "/q" || trimmed === "/exit") {
11
+ actions.quit();
12
+ return true;
13
+ }
14
+ if (trimmed === "/clear") {
15
+ actions.clearSession();
16
+ return true;
17
+ }
18
+ if (trimmed === "/theme" || trimmed === "/t") {
19
+ actions.openThemeSelector();
20
+ return true;
21
+ }
22
+ if (trimmed === "/markdown" || trimmed === "/md") {
23
+ actions.toggleMarkdown();
24
+ return true;
25
+ }
26
+ if (trimmed === "/clearplan") {
27
+ actions.clearApprovedPlan();
28
+ return true;
29
+ }
30
+ if (trimmed === "/goals") {
31
+ actions.openGoalsPicker();
32
+ return true;
33
+ }
34
+ return false;
35
+ }
36
+ //# sourceMappingURL=submit-slash-commands.js.map
@@ -0,0 +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"}
@@ -19,6 +19,7 @@ export declare const ROUND_BORDER: {
19
19
  export declare function formatHistoryWrite(output: string, options: {
20
20
  leadingSeparator: boolean;
21
21
  trailingBlankLine: boolean;
22
+ trailingNewlines?: number;
22
23
  }): string;
23
24
  export declare function normalizeStatusText(text: string): string;
24
25
  export declare function renderRoundBorderBox(lines: readonly string[], context: TerminalHistoryContext, borderColor: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-format.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history-format.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,qBAAqB,WAAM,CAAC;AACzC,eAAO,MAAM,wBAAwB,WAAM,CAAC;AAC5C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AACjD,eAAO,MAAM,mBAAmB,QAA0D,CAAC;AAC3F,eAAO,MAAM,kBAAkB,WAAM,CAAC;AACtC,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC;AAEX,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACjE,MAAM,CAMR;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,MAAM,GAClB,MAAM,CAiBR;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,MAAM,CAQR;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKjE;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CASjE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAGrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAGzF;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAY9E"}
1
+ {"version":3,"file":"terminal-history-format.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history-format.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,qBAAqB,WAAM,CAAC;AACzC,eAAO,MAAM,wBAAwB,WAAM,CAAC;AAC5C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AACjD,eAAO,MAAM,mBAAmB,QAA0D,CAAC;AAC3F,eAAO,MAAM,kBAAkB,WAAM,CAAC;AACtC,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAC;AAEX,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,gBAAgB,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5F,MAAM,CAOR;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,MAAM,GAClB,MAAM,CAiBR;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,MAAM,CAQR;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKjE;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CASjE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAGrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAGzF;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAY9E"}
@@ -23,7 +23,8 @@ export function formatHistoryWrite(output, options) {
23
23
  if (trimmed.length === 0)
24
24
  return "";
25
25
  const leading = options.leadingSeparator ? "\n" : "";
26
- const trailing = options.trailingBlankLine ? "\n\n" : "\n";
26
+ const trailingCount = options.trailingNewlines ?? (options.trailingBlankLine ? 2 : 1);
27
+ const trailing = "\n".repeat(trailingCount);
27
28
  return `${leading}${trimmed}${trailing}`;
28
29
  }
29
30
  export function normalizeStatusText(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-format.js","sourceRoot":"","sources":["../../src/ui/terminal-history-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-history-format.js","sourceRoot":"","sources":["../../src/ui/terminal-history-format.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- import type { CompletedItem } from "./App.js";
2
- export declare function isAgentSpacingKind(kind: CompletedItem["kind"]): boolean;
1
+ export { isTranscriptSpacingKind as isAgentSpacingKind } from "./transcript/spacing.js";
3
2
  //# sourceMappingURL=terminal-history-spacing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-spacing.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history-spacing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CA2BvE"}
1
+ {"version":3,"file":"terminal-history-spacing.d.ts","sourceRoot":"","sources":["../../src/ui/terminal-history-spacing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,29 +1,2 @@
1
- export function isAgentSpacingKind(kind) {
2
- return [
3
- "assistant",
4
- "queued",
5
- "task",
6
- "goal_progress",
7
- "tool_start",
8
- "tool_done",
9
- "tool_group",
10
- "server_tool_start",
11
- "server_tool_done",
12
- "subagent_group",
13
- "info",
14
- "error",
15
- "stopped",
16
- "plan_transition",
17
- "goal_agent_transition",
18
- "thinking_transition",
19
- "model_transition",
20
- "theme_transition",
21
- "plan_event",
22
- "update_notice",
23
- "compacting",
24
- "compacted",
25
- "style_pack",
26
- "setup_hint",
27
- ].includes(kind);
28
- }
1
+ export { isTranscriptSpacingKind as isAgentSpacingKind } from "./transcript/spacing.js";
29
2
  //# sourceMappingURL=terminal-history-spacing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-spacing.js","sourceRoot":"","sources":["../../src/ui/terminal-history-spacing.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,IAA2B;IAC5D,OAAO;QACL,WAAW;QACX,QAAQ;QACR,MAAM;QACN,eAAe;QACf,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,mBAAmB;QACnB,kBAAkB;QAClB,gBAAgB;QAChB,MAAM;QACN,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kBAAkB;QAClB,kBAAkB;QAClB,YAAY;QACZ,eAAe;QACf,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;KACb,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"terminal-history-spacing.js","sourceRoot":"","sources":["../../src/ui/terminal-history-spacing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type LanguageId } from "../core/language-detector.js";
1
+ import type { LanguageId } from "../core/language-detector.js";
2
2
  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";
@@ -7,7 +7,7 @@ export declare function renderGoal(title: string, workerId: string | undefined,
7
7
  export declare function renderError(headline: string, message: string, guidance: string, context: TerminalHistoryContext): string;
8
8
  export declare function renderStylePack(added: readonly LanguageId[], showSetupHint: boolean, context: TerminalHistoryContext): string;
9
9
  export declare function renderSetupHint(context: TerminalHistoryContext): string;
10
- export declare function renderUpdateNotice(text: string, context: TerminalHistoryContext): string;
10
+ export declare function renderUpdateNotice(_text: string, context: TerminalHistoryContext): string;
11
11
  export declare function renderCompacting(context: TerminalHistoryContext): string;
12
12
  export declare function renderCompacted(originalCount: number, newCount: number, tokensBefore: number, tokensAfter: number, context: TerminalHistoryContext): string;
13
13
  export declare function renderPlanEvent(event: "approved" | "rejected" | "dismissed", detail: string | undefined, 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,EAA0B,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAOL,mBAAmB,EAIpB,MAAM,8BAA8B,CAAC;AAEtC,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,CAOR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAcR;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAWvE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAMxF;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,CAER;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,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,6 +1,6 @@
1
- import { LANGUAGE_DISPLAY_NAMES } from "../core/language-detector.js";
2
1
  import { BLACK_CIRCLE } from "./constants/figures.js";
3
2
  import { RESPONSE_LEFT_PADDING, block, color, dim, formatTokenCount, indent, normalizeStatusText, renderLeftBorderBox, renderRoundBorderBox, wrapPlain, } from "./terminal-history-format.js";
3
+ import { presentError, presentSetupHint, presentStepDone, presentStylePack, presentUpdateNotice, } from "./transcript/presentation.js";
4
4
  export function renderStatusLine(glyph, text, context, glyphColor, bold, textAlreadyStyled = false) {
5
5
  const prefix = ` ${color(glyphColor, glyph, true)} `;
6
6
  const continuation = " ";
@@ -13,35 +13,48 @@ export function renderGoal(title, workerId, context) {
13
13
  return `${RESPONSE_LEFT_PADDING}${color(context.theme.success, "▶", true)} ${dim(context, "Goal: ")}${color(context.theme.success, title)}${workerId ? dim(context, ` · worker ${workerId}`) : ""}`;
14
14
  }
15
15
  export function renderError(headline, message, guidance, context) {
16
- const lines = [color(context.theme.error, `✗ ${headline}`)];
17
- if (message && message !== headline) {
18
- lines.push(dim(context, indent(wrapPlain(message, context.columns - 4), " ")));
16
+ const presentation = presentError({
17
+ kind: "error",
18
+ headline,
19
+ message,
20
+ guidance,
21
+ id: "history-error",
22
+ });
23
+ const lines = [color(context.theme.error, `${presentation.glyph}${presentation.headline}`)];
24
+ if (presentation.message) {
25
+ lines.push(dim(context, indent(wrapPlain(presentation.message, context.columns - 4), " ")));
19
26
  }
20
- lines.push(dim(context, indent(wrapPlain(`→ ${guidance}`, context.columns - 4), " ")));
27
+ lines.push(dim(context, indent(wrapPlain(presentation.guidance, context.columns - 4), " ")));
21
28
  return indent(block(lines), RESPONSE_LEFT_PADDING);
22
29
  }
23
30
  export function renderStylePack(added, showSetupHint, context) {
24
- const names = added.map((id) => LANGUAGE_DISPLAY_NAMES[id] ?? id).join(", ");
25
- const headerLabel = added.length > 1 ? "STYLE PACKS ACTIVE" : "STYLE PACK ACTIVE";
31
+ const presentation = presentStylePack({
32
+ kind: "style_pack",
33
+ added,
34
+ showSetupHint,
35
+ id: "history-style-pack",
36
+ });
26
37
  const lines = [
27
- `${color(context.theme.language, "◆ ", true)}${color(context.theme.language, headerLabel, true)}`,
28
- color(context.theme.text, names, true),
38
+ `${color(context.theme.language, "◆ ", true)}${color(context.theme.language, presentation.headerLabel, true)}`,
39
+ color(context.theme.text, presentation.names, true),
29
40
  ];
30
- if (showSetupHint) {
31
- lines.push("", `${dim(context, "Tip: run ")}${color(context.theme.language, "/setup", true)}${dim(context, " to audit this project against the active pack(s)")}`);
41
+ if (presentation.showSetupHint) {
42
+ lines.push("", `${dim(context, "Tip: run ")}${color(context.theme.language, "/setup", true)}${dim(context, presentation.setupHint)}`);
32
43
  }
33
44
  return renderRoundBorderBox(lines, context, context.theme.language);
34
45
  }
35
46
  export function renderSetupHint(context) {
47
+ const presentation = presentSetupHint();
36
48
  return renderRoundBorderBox([
37
- `${color(context.theme.language, "◆ ", true)}${color(context.theme.language, "NO STYLE PACKS DETECTED", true)}`,
38
- dim(context, "This directory has no recognized language manifest at its root."),
49
+ `${color(context.theme.language, "◆ ", true)}${color(context.theme.language, presentation.headerLabel, true)}`,
50
+ dim(context, presentation.body),
39
51
  "",
40
- `${dim(context, "Tip: run ")}${color(context.theme.language, "/setup", true)}${dim(context, " to audit project hygiene or bootstrap a new project from scratch")}`,
52
+ `${dim(context, "Tip: run ")}${color(context.theme.language, "/setup", true)}${dim(context, presentation.setupHint)}`,
41
53
  ], context, context.theme.language);
42
54
  }
43
- export function renderUpdateNotice(text, context) {
44
- return renderRoundBorderBox([color(context.theme.commandColor, `✨ ${text}`, true)], context, context.theme.commandColor);
55
+ export function renderUpdateNotice(_text, context) {
56
+ const presentation = presentUpdateNotice();
57
+ return renderRoundBorderBox([color(context.theme.commandColor, presentation.text, true)], context, context.theme.commandColor);
45
58
  }
46
59
  export function renderCompacting(context) {
47
60
  return renderLeftBorderBox([
@@ -67,7 +80,13 @@ export function renderPlanEvent(event, detail, context) {
67
80
  return block(lines);
68
81
  }
69
82
  export function renderStepDone(stepNum, description, context) {
70
- return `${RESPONSE_LEFT_PADDING}${color(context.theme.success, "✓", true)} ${color(context.theme.success, `Step ${stepNum} done`, true)}${description ? dim(context, ` — ${description}`) : ""}`;
83
+ const presentation = presentStepDone({
84
+ kind: "step_done",
85
+ stepNum,
86
+ description,
87
+ id: "history-step-done",
88
+ });
89
+ return `${RESPONSE_LEFT_PADDING}${color(context.theme.success, presentation.glyph.trim(), true)} ${color(context.theme.success, presentation.text, true)}${presentation.description ? dim(context, presentation.description) : ""}`;
71
90
  }
72
91
  export { BLACK_CIRCLE, normalizeStatusText };
73
92
  function prefixFirstLine(text, firstPrefix, nextPrefix) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-history-status-renderers.js","sourceRoot":"","sources":["../../src/ui/terminal-history-status-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAmB,MAAM,8BAA8B,CAAC;AAEvF,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;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,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxF,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,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAClF,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,WAAW,EAAE,IAAI,CAAC,EAAE;QACjG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;KACvC,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,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,mDAAmD,CAAC,EAAE,CACnJ,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,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,yBAAyB,EAAE,IAAI,CAAC,EAAE;QAC/G,GAAG,CAAC,OAAO,EAAE,iEAAiE,CAAC;QAC/E,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,mEAAmE,CAAC,EAAE;KACnK,EACD,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,QAAQ,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,OAA+B;IAC9E,OAAO,oBAAoB,CACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,EACtD,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,OAAO,GAAG,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,OAAO,OAAO,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnM,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;AA8D9C,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,CAoC7D;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CA0HR"}
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;AAyE9C,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,CAqC7D;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAmJR"}
@@ -5,11 +5,13 @@ import { getModel } from "../core/model-registry.js";
5
5
  import { BLACK_CIRCLE, RETURN_SYMBOL } from "./constants/figures.js";
6
6
  import { SPINNER_FRAMES } from "./spinner-frames.js";
7
7
  import { getUserMessageDisplayParts } from "./utils/user-message-display.js";
8
- import { buildToolGroupSummary, segmentsToPlainText } from "./tool-group-summary.js";
8
+ import { buildToolGroupSummary } from "./tool-group-summary.js";
9
9
  import { renderMarkdownToAnsiLines } from "./utils/markdown-renderer.js";
10
10
  import { isAgentSpacingKind } from "./terminal-history-spacing.js";
11
11
  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";
12
- import { normalizeStatusText, renderCompacted, renderCompacting, renderError, renderGoal, renderPlanEvent, renderSetupHint, renderStatusLine, renderStepDone, renderStylePack, renderUpdateNotice, } from "./terminal-history-status-renderers.js";
12
+ import { renderCompacted, renderCompacting, renderError, renderGoal, renderSetupHint, renderStatusLine, renderStepDone, renderStylePack, renderUpdateNotice, } from "./terminal-history-status-renderers.js";
13
+ import { presentDuration, presentGoalAgentTransition, presentInfo, presentModelTransition, presentPlanEvent, presentPlanTransition, presentQueued, presentStopped, presentTask, presentThemeTransition, } from "./transcript/presentation.js";
14
+ import { toolTonePalette } from "./transcript/tool-presentation.js";
13
15
  const LOGO_LINES = [" ▄▀▀▀ ▄▀▀▀", " █ ▀█ █ ▀█", " ▀▄▄▀ ▀▄▄▀"];
14
16
  const GRADIENT = [
15
17
  "#60a5fa",
@@ -47,6 +49,7 @@ export function createTerminalHistoryPrinter({ stream = process.stdout, } = {})
47
49
  isAgentSpacingKind(previousPrintedKind) &&
48
50
  isAgentSpacingKind(item.kind),
49
51
  trailingBlankLine: endsWithBlankLine,
52
+ trailingNewlines: item.kind === "user" ? 0 : undefined,
50
53
  });
51
54
  if (formatted.length === 0)
52
55
  continue;
@@ -92,14 +95,18 @@ export function serializeCompletedItemToTerminalHistory(item, context) {
92
95
  return renderSubAgentGroup(item.agents, item.aborted, context);
93
96
  case "goal":
94
97
  return renderGoal(item.title, item.workerId, context);
95
- case "task":
96
- return renderStatusLine("▸", `${dim(context, "Task: ")}${color(context.theme.commandColor, item.title, true)}`, context, context.theme.commandColor, true, true);
98
+ case "task": {
99
+ const presentation = presentTask(item);
100
+ return renderStatusLine(presentation.glyph.trim(), `${dim(context, presentation.label ?? "")}${color(context.theme.commandColor, presentation.text, true)}`, context, context.theme.commandColor, presentation.bold, true);
101
+ }
97
102
  case "goal_progress":
98
103
  return renderGoalProgress(item, context);
99
104
  case "error":
100
105
  return renderError(item.headline, item.message, item.guidance, context);
101
- case "info":
102
- return renderStatusLine("○", normalizeStatusText(item.text), context, context.theme.commandColor, false);
106
+ case "info": {
107
+ const presentation = presentInfo(item);
108
+ return renderStatusLine(presentation.glyph.trim(), presentation.text, context, context.theme.commandColor, presentation.bold);
109
+ }
103
110
  case "style_pack":
104
111
  return renderStylePack(item.added, item.showSetupHint, context);
105
112
  case "setup_hint":
@@ -110,20 +117,34 @@ export function serializeCompletedItemToTerminalHistory(item, context) {
110
117
  return renderCompacting(context);
111
118
  case "compacted":
112
119
  return renderCompacted(item.originalCount, item.newCount, item.tokensBefore, item.tokensAfter, context);
113
- case "duration":
114
- return indent(dim(context, `✻ ${item.verb} ${formatDuration(item.durationMs)}`), RESPONSE_LEFT_PADDING);
115
- case "plan_transition":
116
- return renderStatusLine(BLACK_CIRCLE, normalizeStatusText(item.text), context, context.theme.commandColor, true);
117
- case "goal_agent_transition":
118
- return renderStatusLine(BLACK_CIRCLE, normalizeStatusText(item.text), context, context.theme.commandColor, true);
119
- case "model_transition":
120
- return renderStatusLine("▸", `${dim(context, "Switched to ")}${color(context.theme.commandColor, item.modelName, true)}`, context, context.theme.commandColor, true, true);
121
- case "theme_transition":
122
- return renderStatusLine("◐", `${dim(context, "Theme switched to ")}${color(context.theme.commandColor, item.themeName, true)}`, context, context.theme.commandColor, true, true);
123
- case "plan_event":
124
- return renderPlanEvent(item.event, item.detail, context);
125
- case "stopped":
126
- return renderStatusLine("⊘", normalizeStatusText(item.text), context, context.theme.commandColor, true);
120
+ case "duration": {
121
+ const presentation = presentDuration(item);
122
+ return indent(dim(context, `${presentation.glyph}${presentation.text}`), RESPONSE_LEFT_PADDING);
123
+ }
124
+ case "plan_transition": {
125
+ const presentation = presentPlanTransition(item);
126
+ return renderStatusLine(presentation.glyph.trim(), presentation.text, context, context.theme.commandColor, presentation.bold);
127
+ }
128
+ case "goal_agent_transition": {
129
+ const presentation = presentGoalAgentTransition(item);
130
+ return renderStatusLine(presentation.glyph.trim(), presentation.text, context, context.theme.commandColor, presentation.bold);
131
+ }
132
+ case "model_transition": {
133
+ const presentation = presentModelTransition(item);
134
+ return renderStatusLine(presentation.glyph.trim(), `${dim(context, presentation.label ?? "")}${color(context.theme.commandColor, presentation.text, true)}`, context, context.theme.commandColor, presentation.bold, true);
135
+ }
136
+ case "theme_transition": {
137
+ const presentation = presentThemeTransition(item);
138
+ return renderStatusLine(presentation.glyph.trim(), `${dim(context, presentation.label ?? "")}${color(context.theme.commandColor, presentation.text, true)}`, context, context.theme.commandColor, presentation.bold, true);
139
+ }
140
+ case "plan_event": {
141
+ const presentation = presentPlanEvent(item);
142
+ return renderStatusLine(presentation.glyph.trim(), `${color(context.theme.commandColor, presentation.text, true)}${presentation.detail ? dim(context, presentation.detail) : ""}`, context, context.theme.commandColor, presentation.bold, true);
143
+ }
144
+ case "stopped": {
145
+ const presentation = presentStopped(item);
146
+ return renderStatusLine(presentation.glyph.trim(), presentation.text, context, context.theme.commandColor, presentation.bold);
147
+ }
127
148
  case "step_done":
128
149
  return renderStepDone(item.stepNum, item.description, context);
129
150
  case "tombstone":
@@ -185,8 +206,8 @@ function renderUser(text, imageCount, pasteInfo, context) {
185
206
  return [top, ...rows, bottom].join("\n");
186
207
  }
187
208
  function renderQueued(text, imageCount, context) {
188
- const suffix = imageCount ? ` (+${imageCount} image${imageCount > 1 ? "s" : ""})` : "";
189
- return prefixFirstLine(wrapPlain(`${dim(context, "Queued: ")}${color(context.theme.text, text || "(empty)")}${color(context.theme.text, suffix)}`, context.columns - 4), ` ${color(context.theme.warning, "•", true)} `, " ");
209
+ const presentation = presentQueued({ kind: "queued", text, imageCount, id: "history-queued" });
210
+ return prefixFirstLine(wrapPlain(`${dim(context, presentation.label)}${color(context.theme.text, presentation.text)}${color(context.theme.text, presentation.suffix)}`, context.columns - 4), ` ${color(context.theme.warning, presentation.glyph.trim(), true)} `, " ");
190
211
  }
191
212
  function renderAssistant(text, context, continuation = false) {
192
213
  const lines = [];
@@ -257,7 +278,9 @@ function renderToolGroup(tools, context) {
257
278
  const allDone = tools.every((tool) => tool.status === "done");
258
279
  const hasError = tools.some((tool) => tool.isError);
259
280
  const status = allDone ? (hasError ? "error" : "done") : "running";
260
- return toolHeader(status, segmentsToPlainText(buildToolGroupSummary(tools, allDone)), "", context);
281
+ return toolHeader(status, renderSummarySegments(buildToolGroupSummary(tools, allDone), context), "", context, {
282
+ labelAlreadyStyled: true,
283
+ });
261
284
  }
262
285
  function renderServerToolStart(name, input, context) {
263
286
  const { label, detail } = getServerToolHeaderParts(name, input);
@@ -413,7 +436,15 @@ function toolHeader(status, label, detail, context, options = {}) {
413
436
  ? color(context.theme.text, options.quoteDetail ? `(${dim(context, '"')}${detail}${dim(context, '"')})` : `(${detail})`)
414
437
  : "";
415
438
  const suffixText = options.suffix ? dim(context, ` ${options.suffix}`) : "";
416
- return `${RESPONSE_LEFT_PADDING}${color(dotColor, indicator)} ${color(labelColor, label, true)}${detailText}${suffixText}`;
439
+ const labelText = options.labelAlreadyStyled ? label : color(labelColor, label, true);
440
+ return `${RESPONSE_LEFT_PADDING}${color(dotColor, indicator)} ${labelText}${detailText}${suffixText}`;
441
+ }
442
+ function renderSummarySegments(segments, context) {
443
+ return segments
444
+ .map((segment) => segment.tone
445
+ ? color(toolTonePalette(context.theme, segment.tone).primary, segment.text, segment.bold)
446
+ : color(context.theme.text, segment.text, segment.bold))
447
+ .join("");
417
448
  }
418
449
  function stateToolHeader(status, label, detail, inline, context) {
419
450
  const suffix = [detail, inline ? `· ${inline}` : ""]